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

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 (57) hide show
  1. package/helpers/global-defines.d.ts +55 -0
  2. package/helpers/global-defines.js +81 -0
  3. package/helpers/global-defines.js.map +1 -1
  4. package/helpers/logging.d.ts +1 -0
  5. package/helpers/logging.js +36 -3
  6. package/helpers/logging.js.map +1 -1
  7. package/hmr/client/hmr-pending-overlay.d.ts +27 -0
  8. package/hmr/client/hmr-pending-overlay.js +50 -0
  9. package/hmr/client/hmr-pending-overlay.js.map +1 -0
  10. package/hmr/client/index.js +72 -1
  11. package/hmr/client/index.js.map +1 -1
  12. package/hmr/client/utils.d.ts +5 -0
  13. package/hmr/client/utils.js +153 -15
  14. package/hmr/client/utils.js.map +1 -1
  15. package/hmr/entry-runtime.js +95 -31
  16. package/hmr/entry-runtime.js.map +1 -1
  17. package/hmr/frameworks/angular/client/index.d.ts +1 -0
  18. package/hmr/frameworks/angular/client/index.js +424 -11
  19. package/hmr/frameworks/angular/client/index.js.map +1 -1
  20. package/hmr/server/perf-instrumentation.d.ts +118 -0
  21. package/hmr/server/perf-instrumentation.js +198 -0
  22. package/hmr/server/perf-instrumentation.js.map +1 -0
  23. package/hmr/server/shared-transform-request.js +12 -5
  24. package/hmr/server/shared-transform-request.js.map +1 -1
  25. package/hmr/server/websocket-angular-hot-update.d.ts +16 -0
  26. package/hmr/server/websocket-angular-hot-update.js +163 -1
  27. package/hmr/server/websocket-angular-hot-update.js.map +1 -1
  28. package/hmr/server/websocket-graph-upsert.d.ts +15 -0
  29. package/hmr/server/websocket-graph-upsert.js +20 -0
  30. package/hmr/server/websocket-graph-upsert.js.map +1 -1
  31. package/hmr/server/websocket-hmr-pending.d.ts +43 -0
  32. package/hmr/server/websocket-hmr-pending.js +55 -0
  33. package/hmr/server/websocket-hmr-pending.js.map +1 -0
  34. package/hmr/server/websocket-ns-m-finalize.js +1 -1
  35. package/hmr/server/websocket-ns-m-finalize.js.map +1 -1
  36. package/hmr/server/websocket-ns-m-paths.d.ts +1 -1
  37. package/hmr/server/websocket-ns-m-paths.js +59 -13
  38. package/hmr/server/websocket-ns-m-paths.js.map +1 -1
  39. package/hmr/server/websocket-ns-m-request.js +1 -16
  40. package/hmr/server/websocket-ns-m-request.js.map +1 -1
  41. package/hmr/server/websocket-runtime-compat.js.map +1 -1
  42. package/hmr/server/websocket-served-module-helpers.js +42 -18
  43. package/hmr/server/websocket-served-module-helpers.js.map +1 -1
  44. package/hmr/server/websocket-vue-sfc.js +3 -6
  45. package/hmr/server/websocket-vue-sfc.js.map +1 -1
  46. package/hmr/server/websocket.d.ts +4 -4
  47. package/hmr/server/websocket.js +614 -177
  48. package/hmr/server/websocket.js.map +1 -1
  49. package/hmr/shared/runtime/boot-timeline.d.ts +17 -0
  50. package/hmr/shared/runtime/boot-timeline.js +54 -0
  51. package/hmr/shared/runtime/boot-timeline.js.map +1 -0
  52. package/hmr/shared/runtime/dev-overlay.d.ts +49 -2
  53. package/hmr/shared/runtime/dev-overlay.js +587 -12
  54. package/hmr/shared/runtime/dev-overlay.js.map +1 -1
  55. package/hmr/shared/runtime/session-bootstrap.js +49 -0
  56. package/hmr/shared/runtime/session-bootstrap.js.map +1 -1
  57. package/package.json +1 -1
@@ -0,0 +1,198 @@
1
+ // Server-side perf instrumentation helpers.
2
+ //
3
+ // All exports are pure so they can be unit-tested without spinning up
4
+ // Vite. The websocket middleware wires them in with its own logger.
5
+ //
6
+ // The three primitives are:
7
+ // 1. `formatServerStartupBanner` — the always-on banner that prints
8
+ // on dev server startup so the user can confirm which build is
9
+ // live and which perf knobs are active.
10
+ // 2. `createColdBootRequestCounter` — a richer counter that tracks
11
+ // the first burst of NativeScript dev routes (`/ns/m/**`, `/ns/rt/**`,
12
+ // `/ns/core/**`, `/__ns_boot__/**`, `/ns/import-map.json`,
13
+ // `/@nativescript/vendor.mjs`). Emits a rolling + final summary so
14
+ // cold-boot traffic is visible without flipping verbose mode.
15
+ // 3. `formatPopulateInitialGraphSummary` — the single line we print
16
+ // when `populateInitialGraph` finishes. Includes module count and
17
+ // duration so it's trivial to spot regressions.
18
+ //
19
+ // See HMR_CORE_REALM_DETERMINISTIC_PLAN.md — "Track 1 + 2 — diagnostic
20
+ // instrumentation (2026-04)" for the rationale.
21
+ // Single-line, human-scannable banner. We avoid pretty-printing (no
22
+ // boxes/colors) so it plays well with piped logs and the Vite custom
23
+ // logger. Format:
24
+ // [hmr-ws] @nativescript/vite@8.0.0-alpha.48 — transformConcurrency=8 transformCacheMs=60000ms lazyInitialGraph=on graphVersion=1
25
+ export function formatServerStartupBanner(input) {
26
+ const parts = [`transformConcurrency=${Math.max(1, Math.floor(input.transformConcurrency))}`, `transformCacheMs=${Math.max(0, Math.floor(input.transformCacheMs))}ms`, `lazyInitialGraph=${input.lazyInitialGraph ? 'on' : 'off'}`, `graphVersion=${Math.max(0, Math.floor(input.graphVersion))}`];
27
+ return `[hmr-ws] @nativescript/vite@${input.version} — ${parts.join(' ')}`;
28
+ }
29
+ /**
30
+ * Classify a URL path into a coarse route category. Any pathname that
31
+ * doesn't match a known NativeScript dev route is reported as `other`;
32
+ * callers are expected to filter their own irrelevant routes before
33
+ * calling `record()`.
34
+ */
35
+ export function classifyBootRoute(pathname) {
36
+ if (!pathname || typeof pathname !== 'string')
37
+ return 'other';
38
+ if (pathname === '/ns/import-map.json')
39
+ return 'ns/import-map';
40
+ if (pathname === '/@nativescript/vendor.mjs' || pathname.startsWith('/@nativescript/'))
41
+ return 'ns/vendor';
42
+ if (pathname.startsWith('/ns/m/'))
43
+ return 'ns/m';
44
+ if (pathname.startsWith('/ns/rt/'))
45
+ return 'ns/rt';
46
+ if (pathname.startsWith('/ns/core/'))
47
+ return 'ns/core';
48
+ if (pathname.startsWith('/__ns_boot__/'))
49
+ return 'ns/boot';
50
+ if (pathname.startsWith('/__ns_hmr__/'))
51
+ return 'ns/hmr';
52
+ if (pathname.startsWith('/ns/'))
53
+ return 'ns/other';
54
+ return 'other';
55
+ }
56
+ // Factory for the cold-boot counter. Encapsulates all state in a closure
57
+ // so the websocket module doesn't have to track timers itself, and so
58
+ // this is trivially testable with a fake clock.
59
+ export function createColdBootRequestCounter(options) {
60
+ const summaryEvery = Math.max(0, Math.floor(options.summaryEvery ?? 100));
61
+ const idleWindowMs = Math.max(100, Math.floor(options.idleWindowMs ?? 5000));
62
+ const now = options.now ?? (() => Date.now());
63
+ const setTimer = options.setTimer ?? ((handler, ms) => setTimeout(handler, ms));
64
+ const clearTimer = options.clearTimer ?? ((handle) => clearTimeout(handle));
65
+ let active = true;
66
+ let count = 0;
67
+ let inFlight = 0;
68
+ let maxConcurrent = 0;
69
+ let startedAt = null;
70
+ let firstRequestUrl = null;
71
+ let idleTimer = null;
72
+ const perRoute = {};
73
+ const formatPerRoute = () => {
74
+ const entries = Object.entries(perRoute);
75
+ if (entries.length === 0)
76
+ return '';
77
+ entries.sort((a, b) => b[1] - a[1]);
78
+ return entries.map(([k, v]) => `${k}=${v}`).join(',');
79
+ };
80
+ const fireFinal = () => {
81
+ if (!active)
82
+ return;
83
+ active = false;
84
+ // `startedAt` is set the first time `record()` fires. Use an explicit
85
+ // null check — `startedAt` can be 0 on deterministic test clocks and
86
+ // `startedAt ? ... : 0` would mis-treat that as "never started".
87
+ const ms = startedAt !== null ? now() - startedAt : 0;
88
+ const routes = formatPerRoute();
89
+ const routesPart = routes ? ` routes=${routes}` : '';
90
+ options.log(`[hmr-ws][cold-boot] window closed modules=${count} ms=${ms} maxConcurrent=${maxConcurrent}${routesPart}`);
91
+ };
92
+ const scheduleIdleClose = () => {
93
+ if (idleTimer !== null)
94
+ clearTimer(idleTimer);
95
+ idleTimer = setTimer(() => {
96
+ idleTimer = null;
97
+ fireFinal();
98
+ }, idleWindowMs);
99
+ };
100
+ return {
101
+ record(url) {
102
+ if (!active) {
103
+ return { finish: () => { } };
104
+ }
105
+ count += 1;
106
+ inFlight += 1;
107
+ if (inFlight > maxConcurrent)
108
+ maxConcurrent = inFlight;
109
+ if (startedAt === null) {
110
+ startedAt = now();
111
+ firstRequestUrl = url;
112
+ }
113
+ const route = classifyBootRoute(url);
114
+ perRoute[route] = (perRoute[route] ?? 0) + 1;
115
+ if (summaryEvery > 0 && count % summaryEvery === 0) {
116
+ // Same `startedAt === 0` consideration as in fireFinal().
117
+ const ms = startedAt !== null ? now() - startedAt : 0;
118
+ options.log(`[hmr-ws][cold-boot] progress modules=${count} ms=${ms} inFlight=${inFlight} maxConcurrent=${maxConcurrent}`);
119
+ }
120
+ scheduleIdleClose();
121
+ let finished = false;
122
+ return {
123
+ finish() {
124
+ if (finished)
125
+ return;
126
+ finished = true;
127
+ if (inFlight > 0)
128
+ inFlight -= 1;
129
+ },
130
+ };
131
+ },
132
+ finalize() {
133
+ if (idleTimer !== null) {
134
+ clearTimer(idleTimer);
135
+ idleTimer = null;
136
+ }
137
+ fireFinal();
138
+ },
139
+ getState() {
140
+ return { active, count, inFlight, maxConcurrent, startedAt, firstRequestUrl, perRoute: { ...perRoute } };
141
+ },
142
+ };
143
+ }
144
+ // Summary line for `populateInitialGraph`. Stable shape so CI greps or
145
+ // external dashboards can pick it up without fragile regexes.
146
+ export function formatPopulateInitialGraphSummary(input) {
147
+ return `[hmr-ws][populate] modules=${Math.max(0, Math.floor(input.moduleCount))} ms=${Math.max(0, Math.floor(input.durationMs))} graphVersion=${Math.max(0, Math.floor(input.graphVersion))} bumpedVersion=${input.bumpedVersion ? 'yes' : 'no'}`;
148
+ }
149
+ /**
150
+ * Classify a file's HMR update kind by extension. Used by the server-side
151
+ * update summary so a quick log line tells us which pipeline ran. Returns
152
+ * `'unknown'` for anything that doesn't match a known dev-time extension —
153
+ * the caller decides whether to log it or skip it entirely.
154
+ */
155
+ export function classifyHmrUpdateKind(file) {
156
+ if (!file || typeof file !== 'string')
157
+ return 'unknown';
158
+ const lower = file.toLowerCase();
159
+ if (lower.endsWith('.ts'))
160
+ return 'ts';
161
+ if (lower.endsWith('.tsx'))
162
+ return 'tsx';
163
+ if (lower.endsWith('.jsx'))
164
+ return 'jsx';
165
+ if (lower.endsWith('.html') || lower.endsWith('.htm'))
166
+ return 'html';
167
+ if (lower.endsWith('.css') || lower.endsWith('.scss') || lower.endsWith('.sass') || lower.endsWith('.less'))
168
+ return 'css';
169
+ if (lower.endsWith('.vue'))
170
+ return 'vue';
171
+ if (lower.endsWith('.mjs'))
172
+ return 'mjs';
173
+ if (lower.endsWith('.js'))
174
+ return 'js';
175
+ return 'unknown';
176
+ }
177
+ /**
178
+ * Single-line summary for the server side of an HMR update. Always-on so
179
+ * a 6-second `.ts` save is immediately visible without flipping verbose.
180
+ * Format:
181
+ * [hmr-ws][update] kind=ts file=/src/foo.ts await=12ms framework=180ms broadcast=2ms total=194ms invalidated=23 recipients=1
182
+ *
183
+ * For Angular `.ts` updates, `narrowed=yes|no` is appended so the
184
+ * Round-Seven decision is immediately visible without flipping verbose:
185
+ * [hmr-ws][update] kind=ts file=/src/app/foo.constants.ts ... invalidated=1 recipients=1 narrowed=yes
186
+ * [hmr-ws][update] kind=ts file=/src/app/foo.component.ts ... invalidated=132 recipients=1 narrowed=no
187
+ */
188
+ export function formatHmrUpdateSummary(input) {
189
+ const parts = [`kind=${input.kind || 'unknown'}`, `file=${input.file || '<unknown>'}`, `await=${Math.max(0, Math.floor(input.awaitMs))}ms`, `framework=${Math.max(0, Math.floor(input.frameworkMs))}ms`, `broadcast=${Math.max(0, Math.floor(input.broadcastMs))}ms`, `total=${Math.max(0, Math.floor(input.totalMs))}ms`, `invalidated=${Math.max(0, Math.floor(input.invalidated))}`, `recipients=${Math.max(0, Math.floor(input.recipients))}`];
190
+ if (input.narrowed === true) {
191
+ parts.push('narrowed=yes');
192
+ }
193
+ else if (input.narrowed === false) {
194
+ parts.push('narrowed=no');
195
+ }
196
+ return `[hmr-ws][update] ${parts.join(' ')}`;
197
+ }
198
+ //# sourceMappingURL=perf-instrumentation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"perf-instrumentation.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/perf-instrumentation.ts"],"names":[],"mappings":"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"}
@@ -101,8 +101,15 @@ export function createSharedTransformRequestRunner(transformRequest, onTimeout,
101
101
  if (recent && recent.expiresAt > Date.now()) {
102
102
  return Promise.resolve(recent.result);
103
103
  }
104
- const existingExecution = inFlight.get(url);
105
- if (existingExecution && existingExecution.generation === generation && existingExecution.cacheKey === cacheKey) {
104
+ // Key the in-flight map on the canonical `cacheKey`, not the raw URL,
105
+ // so two concurrent calls for `/foo.ts?t=1` and `/foo.ts?t=2` share a
106
+ // single transform rather than doing the same work twice. The cache
107
+ // key already strips `?t=` and `?v=` cache-busters and sorts the
108
+ // remaining query — see `canonicalizeTransformRequestCacheKey`. This
109
+ // pairs with `rememberRecentResult`, which was always keyed by
110
+ // cacheKey.
111
+ const existingExecution = inFlight.get(cacheKey);
112
+ if (existingExecution && existingExecution.generation === generation) {
106
113
  return withTimeout(existingExecution, url, timeoutMs);
107
114
  }
108
115
  const scheduled = schedule(async () => {
@@ -112,12 +119,12 @@ export function createSharedTransformRequestRunner(transformRequest, onTimeout,
112
119
  });
113
120
  let execution;
114
121
  execution = scheduled.execution.finally(() => {
115
- if (inFlight.get(url)?.execution === execution) {
116
- inFlight.delete(url);
122
+ if (inFlight.get(cacheKey)?.execution === execution) {
123
+ inFlight.delete(cacheKey);
117
124
  }
118
125
  });
119
126
  const entry = { execution, started: scheduled.started, cacheKey, generation };
120
- inFlight.set(url, entry);
127
+ inFlight.set(cacheKey, entry);
121
128
  return withTimeout(entry, url, timeoutMs);
122
129
  });
123
130
  runner.invalidate = (url) => {
@@ -1 +1 @@
1
- {"version":3,"file":"shared-transform-request.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/shared-transform-request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared-transform-request.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/shared-transform-request.ts"],"names":[],"mappings":"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"}
@@ -28,9 +28,11 @@ export declare function collectAngularTransitiveImportersForInvalidation(options
28
28
  isExcluded?: (id: string) => boolean;
29
29
  maxDepth?: number;
30
30
  }): TransitiveImporterModuleLike[];
31
+ export declare function angularSourceHasSemanticDecorator(source: string): boolean;
31
32
  export declare function shouldInvalidateAngularTransitiveImporters(options: {
32
33
  flavor: string;
33
34
  file: string;
35
+ source?: string | null;
34
36
  }): boolean;
35
37
  export declare function collectAngularTransformCacheInvalidationUrls(options: {
36
38
  file: string;
@@ -43,6 +45,20 @@ export declare function collectAngularTransformCacheInvalidationUrls(options: {
43
45
  }>;
44
46
  projectRoot?: string;
45
47
  }): string[];
48
+ export declare function collectAngularEvictionUrls(options: {
49
+ file: string;
50
+ hotUpdateRoots?: Iterable<{
51
+ id?: string | null;
52
+ file?: string | null;
53
+ }>;
54
+ transitiveImporters?: Iterable<{
55
+ id?: string | null;
56
+ file?: string | null;
57
+ }>;
58
+ projectRoot: string;
59
+ origin: string;
60
+ bootstrapEntry?: string | null;
61
+ }): string[];
46
62
  export declare function shouldSuppressDefaultViteHotUpdate(options: {
47
63
  flavor: string;
48
64
  file: string;
@@ -161,11 +161,49 @@ export function collectAngularTransitiveImportersForInvalidation(options) {
161
161
  }
162
162
  return Array.from(collected.values());
163
163
  }
164
+ // Round-six narrowing: a TS/JS file needs to invalidate its transitive
165
+ // importers only when it carries Angular semantics (a top-level @Component,
166
+ // @Directive, @Pipe, @Injectable, or @NgModule decorator). Files that only
167
+ // export constants, types, enums, plain functions, or plain classes are
168
+ // "leaf" modules — ES modules' live bindings deliver the new exports to
169
+ // importers automatically once V8 re-evaluates the changed module. Forcing
170
+ // every importer to re-transform on a constants edit is what produces the
171
+ // 132-module invalidation wave that dominates the 3.6s `refresh` phase
172
+ // reported on heykiddo-talk-angular for a one-line constants change.
173
+ //
174
+ // Regex anchors at line start with only whitespace before `@Decorator(` so
175
+ // we don't false-match on string literals, JSDoc references, or commented-
176
+ // out blocks. Tests pin the matching/non-matching shapes that have come up
177
+ // in real Angular sources.
178
+ const ANGULAR_SEMANTIC_DECORATOR_REGEX = /^[ \t]*@(?:Component|Directive|Pipe|Injectable|NgModule)\b\s*\(/m;
179
+ export function angularSourceHasSemanticDecorator(source) {
180
+ if (!source || source.length === 0)
181
+ return false;
182
+ return ANGULAR_SEMANTIC_DECORATOR_REGEX.test(source);
183
+ }
164
184
  export function shouldInvalidateAngularTransitiveImporters(options) {
165
185
  if (options.flavor !== 'angular') {
166
186
  return false;
167
187
  }
168
- return /\.(?:html|htm|(m|c)?[jt]sx?)$/i.test(options.file);
188
+ // Template-only (.html/.htm) edits change the component's view but never
189
+ // its exported symbol shape, so importers of the component do not need to
190
+ // re-transform. Skipping the transitive walk here is the single biggest
191
+ // latency win for template HMR (Track 2.1 in
192
+ // HMR_CORE_REALM_DETERMINISTIC_PLAN.md).
193
+ if (!/\.(?:(m|c)?[jt]sx?)$/i.test(options.file)) {
194
+ return false;
195
+ }
196
+ // Round-six: when source is available, narrow to "files whose changes
197
+ // can affect the Angular semantics of their importers". Files without a
198
+ // top-level @Component/@Directive/@Pipe/@Injectable/@NgModule decorator
199
+ // are leaf modules — invalidating the file itself is sufficient.
200
+ // When source is undefined/null (e.g. ctx.read() failed or the caller
201
+ // didn't plumb it through), fall back to the conservative pre-round-six
202
+ // behavior: invalidate transitively, same as before.
203
+ if (typeof options.source === 'string') {
204
+ return angularSourceHasSemanticDecorator(options.source);
205
+ }
206
+ return true;
169
207
  }
170
208
  function isExtensionlessAngularAppTransformCandidate(id) {
171
209
  return id.startsWith(APP_VIRTUAL_WITH_SLASH) && /\.(?:[mc]?[jt]sx?)$/i.test(id);
@@ -196,6 +234,130 @@ export function collectAngularTransformCacheInvalidationUrls(options) {
196
234
  }
197
235
  return Array.from(urls);
198
236
  }
237
+ // alpha.59 — Stable URL + Explicit Invalidation.
238
+ //
239
+ // Compute the set of fully-qualified `/ns/m/<rel>` URLs that the runtime
240
+ // should drop from `g_moduleRegistry` before re-importing main.ts. The set
241
+ // must satisfy the eviction invariants documented in
242
+ // HMR_STABLE_URL_INVALIDATION_PLAN.md §5:
243
+ //
244
+ // * The changed file itself (so V8 fetches the new source).
245
+ // * Every transitive importer up to the entry (so the new exports are
246
+ // re-bound; ESM live bindings only "see" new exports if the importer
247
+ // re-evaluates).
248
+ // * No `/node_modules/` paths (vendor packages are stable in dev; evicting
249
+ // them would force unnecessary re-fetch + re-transform).
250
+ // * No virtual / runtime-graph-excluded ids (e.g. `\0` rollup virtuals).
251
+ // * No duplicates — the set is deduped on canonical relative path.
252
+ //
253
+ // The output URLs are origin-absolute (e.g.
254
+ // `http://localhost:5173/ns/m/src/main.ts`) so the runtime can feed the
255
+ // list directly into `__nsInvalidateModules` without any further
256
+ // resolution work. The runtime canonicalizer (HMRSupport.mm) collapses
257
+ // any residual `__ns_hmr__/<tag>/` or `__ns_boot__/b1/` segments, so the
258
+ // effective registry key is `/ns/m/<rel>` regardless of any tag a stale
259
+ // V8 cache entry might still carry.
260
+ //
261
+ // alpha.61 — Extensionless canonical key.
262
+ //
263
+ // Vite emits ES module import statements with extensions stripped (this
264
+ // is how `resolve.extensions` works for Angular/TS apps), so V8 in the
265
+ // NativeScript iOS runtime keys `g_moduleRegistry` by the extensionless
266
+ // URL it sees in the import statement. Concretely, an import like
267
+ // import { AppComponent } from './app.component';
268
+ // inside `main.ts` is rewritten by Vite to
269
+ // import { AppComponent } from '/ns/m/src/app/app.component';
270
+ // and V8 stores the resulting module under the key
271
+ // http://localhost:5173/ns/m/src/app/app.component
272
+ // (no `.ts` extension). The `moduleGraph` ids on the server, however,
273
+ // are absolute file paths that DO carry the extension, so a naive
274
+ // eviction set built from `mod.id` keys against `.../app.component.ts`
275
+ // — which never matches the registry entry. The runtime reports
276
+ // `[resolver][remove:miss]`, the cached module survives, ESM live
277
+ // bindings continue to point at the OLD constants module, and the user
278
+ // sees no visual update despite a clean HMR cycle.
279
+ //
280
+ // Workaround: for any path ending in `.ts/.tsx/.js/.jsx/.mjs/.mts/
281
+ // .cjs/.cts`, emit BOTH the extensioned URL AND the extension-stripped
282
+ // canonical URL. The runtime evicts whichever shape V8 actually has;
283
+ // the other is a harmless `remove:miss`. Cost: at most 2x URLs in
284
+ // `evictPaths` (still tiny relative to the JSON payload). This single
285
+ // change is what unsticks visual updates for the heykiddo case.
286
+ //
287
+ // Returning a `Set` of URLs (rather than an array) lets the caller
288
+ // collapse multiple sources (changed file + roots + transitive
289
+ // importers) without paying for an extra dedup pass.
290
+ function normalizeAngularEvictRelativeId(rawId, projectRoot) {
291
+ if (!rawId)
292
+ return null;
293
+ let id = String(rawId).split('?')[0].replace(/\\/g, '/');
294
+ if (!id)
295
+ return null;
296
+ if (id.startsWith('file://')) {
297
+ id = id.slice('file://'.length);
298
+ }
299
+ const root = projectRoot ? projectRoot.replace(/\\/g, '/').replace(/\/$/, '') : '';
300
+ if (root && id.startsWith(root)) {
301
+ id = id.slice(root.length);
302
+ }
303
+ if (!id.startsWith('/')) {
304
+ id = '/' + id;
305
+ }
306
+ if (id.includes('/node_modules/')) {
307
+ return null;
308
+ }
309
+ if (isRuntimeGraphExcludedPath(id)) {
310
+ return null;
311
+ }
312
+ // Reject virtual ids — they aren't fetchable over /ns/m/.
313
+ if (id.includes('\0') || id.includes('/@id/') || id.includes('/@fs/')) {
314
+ return null;
315
+ }
316
+ return id;
317
+ }
318
+ export function collectAngularEvictionUrls(options) {
319
+ const urls = new Set();
320
+ const origin = String(options.origin || '').replace(/\/$/, '');
321
+ const root = options.projectRoot;
322
+ const addRel = (rel) => {
323
+ if (!rel)
324
+ return;
325
+ // Final defense: never emit non-/ns/m URLs for eviction; the runtime
326
+ // would map them to a different cache namespace.
327
+ urls.add(`${origin}/ns/m${rel}`);
328
+ // V8 in the iOS runtime keys `g_moduleRegistry` by the URL Vite
329
+ // emitted in the *generated* import statement, which strips JS/TS
330
+ // extensions (see the alpha.61 block above). So the canonical
331
+ // registry key for an app TS/JS module is the extensionless form.
332
+ // Emit it alongside the `.ts` form so the explicit eviction matches
333
+ // whatever shape the runtime actually stored. This cannot
334
+ // false-positive: at most one of the two URLs maps to a real entry,
335
+ // and `__nsInvalidateModules` treats unknown keys as no-ops.
336
+ const extMatch = rel.match(/\.(?:[mc]?[jt]sx?)$/i);
337
+ if (extMatch) {
338
+ urls.add(`${origin}/ns/m${rel.slice(0, -extMatch[0].length)}`);
339
+ }
340
+ };
341
+ addRel(normalizeAngularEvictRelativeId(options.file, root));
342
+ for (const mod of options.hotUpdateRoots || []) {
343
+ addRel(normalizeAngularEvictRelativeId(mod?.id || mod?.file, root));
344
+ }
345
+ for (const mod of options.transitiveImporters || []) {
346
+ addRel(normalizeAngularEvictRelativeId(mod?.id || mod?.file, root));
347
+ }
348
+ // The bootstrap entry must always be evicted: V8's `import(entry)` is a
349
+ // no-op if the cache entry is still live, and the entire HMR cycle
350
+ // hinges on re-evaluating main.ts. The transitive walk usually catches
351
+ // this naturally (every component reaches main via importer chains),
352
+ // but include it explicitly as an invariant — covers edge cases like a
353
+ // hand-rolled `@nativescript/hmr-strategy` overriding the candidates,
354
+ // or a pristine app whose graph hasn't yet linked main into the
355
+ // importer set.
356
+ if (typeof options.bootstrapEntry === 'string' && options.bootstrapEntry) {
357
+ addRel(normalizeAngularEvictRelativeId(options.bootstrapEntry, root));
358
+ }
359
+ return Array.from(urls);
360
+ }
199
361
  export function shouldSuppressDefaultViteHotUpdate(options) {
200
362
  if (options.flavor !== 'angular') {
201
363
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-angular-hot-update.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/websocket-angular-hot-update.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket-angular-hot-update.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/websocket-angular-hot-update.ts"],"names":[],"mappings":"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"}
@@ -4,3 +4,18 @@ export declare function classifyGraphUpsert(existing: {
4
4
  deps: string[];
5
5
  } | undefined, nextHash: string, nextDeps: string[]): GraphUpsertClassification;
6
6
  export declare function shouldBroadcastGraphUpsertDelta(classification: GraphUpsertClassification, emitDeltaOnInsert?: boolean, broadcastEnabled?: boolean): boolean;
7
+ /**
8
+ * Decide whether an upsert should advance the shared graphVersion
9
+ * counter. Serve-time warm-ups (and the background initial-graph walk) pass
10
+ * `bumpVersion: false` so graphVersion stays stable during cold boot — that
11
+ * stability is what lets the dynamic-import helper tag every first-session
12
+ * URL with a consistent `v1` instead of drifting between `live`, `v12`,
13
+ * `v433`... (which would produce double-loaded modules on iOS HTTP ESM).
14
+ * Real live edits (handleHotUpdate and framework hot-update handlers) leave
15
+ * `bumpVersion` unset or true and advance the counter as before.
16
+ *
17
+ * The helper also treats `unchanged` classifications as no-op: they bypass
18
+ * the graph set entirely in upsertGraphModule, so the version must not
19
+ * advance for them either.
20
+ */
21
+ export declare function shouldBumpGraphVersion(classification: GraphUpsertClassification, bumpVersion?: boolean): boolean;
@@ -10,4 +10,24 @@ export function classifyGraphUpsert(existing, nextHash, nextDeps) {
10
10
  export function shouldBroadcastGraphUpsertDelta(classification, emitDeltaOnInsert = false, broadcastEnabled = true) {
11
11
  return broadcastEnabled && (classification === 'changed' || (classification === 'inserted' && emitDeltaOnInsert));
12
12
  }
13
+ /**
14
+ * Decide whether an upsert should advance the shared graphVersion
15
+ * counter. Serve-time warm-ups (and the background initial-graph walk) pass
16
+ * `bumpVersion: false` so graphVersion stays stable during cold boot — that
17
+ * stability is what lets the dynamic-import helper tag every first-session
18
+ * URL with a consistent `v1` instead of drifting between `live`, `v12`,
19
+ * `v433`... (which would produce double-loaded modules on iOS HTTP ESM).
20
+ * Real live edits (handleHotUpdate and framework hot-update handlers) leave
21
+ * `bumpVersion` unset or true and advance the counter as before.
22
+ *
23
+ * The helper also treats `unchanged` classifications as no-op: they bypass
24
+ * the graph set entirely in upsertGraphModule, so the version must not
25
+ * advance for them either.
26
+ */
27
+ export function shouldBumpGraphVersion(classification, bumpVersion = true) {
28
+ if (classification === 'unchanged') {
29
+ return false;
30
+ }
31
+ return bumpVersion !== false;
32
+ }
13
33
  //# sourceMappingURL=websocket-graph-upsert.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-graph-upsert.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/websocket-graph-upsert.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,mBAAmB,CAAC,QAAsD,EAAE,QAAgB,EAAE,QAAkB;IAC/H,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACnB,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChI,OAAO,WAAW,CAAC;IACpB,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,cAAyC,EAAE,oBAA6B,KAAK,EAAE,mBAA4B,IAAI;IAC9J,OAAO,gBAAgB,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,cAAc,KAAK,UAAU,IAAI,iBAAiB,CAAC,CAAC,CAAC;AACnH,CAAC"}
1
+ {"version":3,"file":"websocket-graph-upsert.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/websocket-graph-upsert.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,mBAAmB,CAAC,QAAsD,EAAE,QAAgB,EAAE,QAAkB;IAC/H,IAAI,CAAC,QAAQ,EAAE,CAAC;QACf,OAAO,UAAU,CAAC;IACnB,CAAC;IACD,IAAI,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChI,OAAO,WAAW,CAAC;IACpB,CAAC;IACD,OAAO,SAAS,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,+BAA+B,CAAC,cAAyC,EAAE,oBAA6B,KAAK,EAAE,mBAA4B,IAAI;IAC9J,OAAO,gBAAgB,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,cAAc,KAAK,UAAU,IAAI,iBAAiB,CAAC,CAAC,CAAC;AACnH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,sBAAsB,CAAC,cAAyC,EAAE,cAAuB,IAAI;IAC5G,IAAI,cAAc,KAAK,WAAW,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,WAAW,KAAK,KAAK,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * alpha.62 follow-up — early "pending" notification.
3
+ *
4
+ * When `handleHotUpdate(ctx)` first fires for a save event, the server
5
+ * spends 7–200ms doing graph upserts, transforms and dependency
6
+ * analysis BEFORE broadcasting `ns:angular-update` (or
7
+ * `ns:css-updates`). During that window the client has no idea a
8
+ * change is in flight, so the HMR-applying overlay only appears at
9
+ * the tail end of the cycle and the user perceives the dev loop as
10
+ * laggy.
11
+ *
12
+ * `ns:hmr-pending` is broadcast at the very start of `handleHotUpdate`
13
+ * with just the file path + classified kind. The client reacts by
14
+ * showing the 'received' overlay frame immediately. The authoritative
15
+ * payload (`ns:angular-update` / `ns:css-updates`) follows once the
16
+ * server is ready and walks the rest of the stage progression.
17
+ *
18
+ * This module is intentionally a pure helper so the message shape and
19
+ * narrowing rules can be verified without spinning up a Vite dev
20
+ * server.
21
+ */
22
+ export type HmrPendingKind = 'ts' | 'css' | 'html' | 'unknown';
23
+ export type HmrPendingMessage = {
24
+ type: 'ns:hmr-pending';
25
+ origin: string;
26
+ path: string;
27
+ kind: HmrPendingKind;
28
+ timestamp: number;
29
+ };
30
+ export declare function createHmrPendingMessage(input: {
31
+ origin: string;
32
+ path: string;
33
+ kind: string;
34
+ timestamp: number;
35
+ }): HmrPendingMessage;
36
+ /**
37
+ * Parser used by the client to identify a pending message regardless of
38
+ * which framework is active. We accept the message only when every
39
+ * expected field is present and well-formed — this guards against
40
+ * accidental matches on legacy server payloads or developer-written
41
+ * mocks during tests.
42
+ */
43
+ export declare function isHmrPendingMessage(value: unknown): value is HmrPendingMessage;