@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.
- package/helpers/global-defines.d.ts +55 -0
- package/helpers/global-defines.js +81 -0
- package/helpers/global-defines.js.map +1 -1
- package/helpers/logging.d.ts +1 -0
- package/helpers/logging.js +36 -3
- package/helpers/logging.js.map +1 -1
- package/hmr/client/hmr-pending-overlay.d.ts +27 -0
- package/hmr/client/hmr-pending-overlay.js +50 -0
- package/hmr/client/hmr-pending-overlay.js.map +1 -0
- package/hmr/client/index.js +72 -1
- package/hmr/client/index.js.map +1 -1
- package/hmr/client/utils.d.ts +5 -0
- package/hmr/client/utils.js +153 -15
- package/hmr/client/utils.js.map +1 -1
- package/hmr/entry-runtime.js +95 -31
- package/hmr/entry-runtime.js.map +1 -1
- package/hmr/frameworks/angular/client/index.d.ts +1 -0
- package/hmr/frameworks/angular/client/index.js +424 -11
- package/hmr/frameworks/angular/client/index.js.map +1 -1
- package/hmr/server/perf-instrumentation.d.ts +118 -0
- package/hmr/server/perf-instrumentation.js +198 -0
- package/hmr/server/perf-instrumentation.js.map +1 -0
- package/hmr/server/shared-transform-request.js +12 -5
- package/hmr/server/shared-transform-request.js.map +1 -1
- package/hmr/server/websocket-angular-hot-update.d.ts +16 -0
- package/hmr/server/websocket-angular-hot-update.js +163 -1
- package/hmr/server/websocket-angular-hot-update.js.map +1 -1
- package/hmr/server/websocket-graph-upsert.d.ts +15 -0
- package/hmr/server/websocket-graph-upsert.js +20 -0
- package/hmr/server/websocket-graph-upsert.js.map +1 -1
- package/hmr/server/websocket-hmr-pending.d.ts +43 -0
- package/hmr/server/websocket-hmr-pending.js +55 -0
- package/hmr/server/websocket-hmr-pending.js.map +1 -0
- package/hmr/server/websocket-ns-m-finalize.js +1 -1
- package/hmr/server/websocket-ns-m-finalize.js.map +1 -1
- package/hmr/server/websocket-ns-m-paths.d.ts +1 -1
- package/hmr/server/websocket-ns-m-paths.js +59 -13
- package/hmr/server/websocket-ns-m-paths.js.map +1 -1
- package/hmr/server/websocket-ns-m-request.js +1 -16
- package/hmr/server/websocket-ns-m-request.js.map +1 -1
- package/hmr/server/websocket-runtime-compat.js.map +1 -1
- package/hmr/server/websocket-served-module-helpers.js +42 -18
- package/hmr/server/websocket-served-module-helpers.js.map +1 -1
- package/hmr/server/websocket-vue-sfc.js +3 -6
- package/hmr/server/websocket-vue-sfc.js.map +1 -1
- package/hmr/server/websocket.d.ts +4 -4
- package/hmr/server/websocket.js +614 -177
- package/hmr/server/websocket.js.map +1 -1
- package/hmr/shared/runtime/boot-timeline.d.ts +17 -0
- package/hmr/shared/runtime/boot-timeline.js +54 -0
- package/hmr/shared/runtime/boot-timeline.js.map +1 -0
- package/hmr/shared/runtime/dev-overlay.d.ts +49 -2
- package/hmr/shared/runtime/dev-overlay.js +587 -12
- package/hmr/shared/runtime/dev-overlay.js.map +1 -1
- package/hmr/shared/runtime/session-bootstrap.js +49 -0
- package/hmr/shared/runtime/session-bootstrap.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type BootTraceSegment = {
|
|
2
|
+
ok?: boolean;
|
|
3
|
+
ms?: number;
|
|
4
|
+
meta?: Record<string, unknown>;
|
|
5
|
+
};
|
|
6
|
+
export type BootTrace = {
|
|
7
|
+
t0: number;
|
|
8
|
+
t1?: number;
|
|
9
|
+
session?: BootTraceSegment;
|
|
10
|
+
importMap?: BootTraceSegment;
|
|
11
|
+
native?: BootTraceSegment;
|
|
12
|
+
error?: {
|
|
13
|
+
message: string;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export declare function formatBootTimeline(trace: BootTrace): string;
|
|
17
|
+
export declare function publishBootTrace(trace: BootTrace): void;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
// Boot timeline instrumentation for the NativeScript dev session.
|
|
2
|
+
//
|
|
3
|
+
// `session-bootstrap.ts` is the real boot path on modern runtimes with
|
|
4
|
+
// `__nsStartDevSession`. We record how long each segment takes and turn
|
|
5
|
+
// the result into a single-line, human-readable log that is always on
|
|
6
|
+
// (not behind the verbose flag) so anyone chasing regressions can see
|
|
7
|
+
// the shape of a cold boot without having to flip any switches.
|
|
8
|
+
//
|
|
9
|
+
// The trace is also mirrored onto `globalThis.__NS_BOOT_TRACE__` so a
|
|
10
|
+
// developer can `console.log(globalThis.__NS_BOOT_TRACE__)` from the
|
|
11
|
+
// device or pick it up via `js:evaluate` in test harnesses.
|
|
12
|
+
//
|
|
13
|
+
// See HMR_CORE_REALM_DETERMINISTIC_PLAN.md — "Post-D roadmap — dev-loop
|
|
14
|
+
// performance and UX" for the full context.
|
|
15
|
+
// Pure formatter so we can unit-test the exact string shape without
|
|
16
|
+
// touching `console.info` or `Date.now()`.
|
|
17
|
+
//
|
|
18
|
+
// Format:
|
|
19
|
+
// [ns-boot] ok total=1234ms session=45ms importMap=67ms native=1100ms
|
|
20
|
+
// [ns-boot] FAILED total=230ms session=45ms ...: <message>
|
|
21
|
+
//
|
|
22
|
+
// Segment entries are only included when a numeric `ms` was recorded —
|
|
23
|
+
// this keeps the log compact when a particular phase was skipped (e.g.
|
|
24
|
+
// `__NS_IMPORT_MAP_CONFIGURED__` dedup) or never reached (early error).
|
|
25
|
+
export function formatBootTimeline(trace) {
|
|
26
|
+
const status = trace.error ? 'FAILED' : 'ok';
|
|
27
|
+
const parts = [];
|
|
28
|
+
const push = (label, seg) => {
|
|
29
|
+
if (seg && typeof seg.ms === 'number' && Number.isFinite(seg.ms)) {
|
|
30
|
+
parts.push(`${label}=${Math.max(0, Math.round(seg.ms))}ms`);
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
const total = typeof trace.t0 === 'number' && typeof trace.t1 === 'number' ? trace.t1 - trace.t0 : undefined;
|
|
34
|
+
if (typeof total === 'number' && Number.isFinite(total)) {
|
|
35
|
+
parts.push(`total=${Math.max(0, Math.round(total))}ms`);
|
|
36
|
+
}
|
|
37
|
+
push('session', trace.session);
|
|
38
|
+
push('importMap', trace.importMap);
|
|
39
|
+
push('native', trace.native);
|
|
40
|
+
const suffix = trace.error?.message ? `: ${trace.error.message}` : '';
|
|
41
|
+
return `[ns-boot] ${status} ${parts.join(' ')}${suffix}`.replace(/\s+$/, '');
|
|
42
|
+
}
|
|
43
|
+
// Install the trace on `globalThis` so diagnostics can pick it up. We
|
|
44
|
+
// use a distinct key from the legacy entry-runtime trace so existing
|
|
45
|
+
// readers that expect `__NS_ENTRY_TRACE__` keep working. Exported for
|
|
46
|
+
// tests; the runtime path calls this from the session-bootstrap finally
|
|
47
|
+
// block.
|
|
48
|
+
export function publishBootTrace(trace) {
|
|
49
|
+
try {
|
|
50
|
+
globalThis.__NS_BOOT_TRACE__ = trace;
|
|
51
|
+
}
|
|
52
|
+
catch { }
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=boot-timeline.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"boot-timeline.js","sourceRoot":"","sources":["../../../../../../packages/vite/hmr/shared/runtime/boot-timeline.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAClE,EAAE;AACF,uEAAuE;AACvE,wEAAwE;AACxE,sEAAsE;AACtE,sEAAsE;AACtE,gEAAgE;AAChE,EAAE;AACF,sEAAsE;AACtE,qEAAqE;AACrE,4DAA4D;AAC5D,EAAE;AACF,wEAAwE;AACxE,4CAA4C;AAiB5C,oEAAoE;AACpE,2CAA2C;AAC3C,EAAE;AACF,UAAU;AACV,wEAAwE;AACxE,6DAA6D;AAC7D,EAAE;AACF,uEAAuE;AACvE,uEAAuE;AACvE,wEAAwE;AACxE,MAAM,UAAU,kBAAkB,CAAC,KAAgB;IAClD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC;IAC7C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM,IAAI,GAAG,CAAC,KAAa,EAAE,GAAiC,EAAE,EAAE;QACjE,IAAI,GAAG,IAAI,OAAO,GAAG,CAAC,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAClE,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC;IACF,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAE7G,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACzD,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACnC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAE7B,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEtE,OAAO,aAAa,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,sEAAsE;AACtE,qEAAqE;AACrE,sEAAsE;AACtE,wEAAwE;AACxE,SAAS;AACT,MAAM,UAAU,gBAAgB,CAAC,KAAgB;IAChD,IAAI,CAAC;QACH,UAAkB,CAAC,iBAAiB,GAAG,KAAK,CAAC;IAC/C,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACX,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
type HmrOverlayTone = 'info' | 'warn' | 'error';
|
|
2
|
-
type HmrOverlayMode = 'hidden' | 'boot' | 'connection';
|
|
1
|
+
type HmrOverlayTone = 'info' | 'warn' | 'error' | 'success';
|
|
2
|
+
type HmrOverlayMode = 'hidden' | 'boot' | 'connection' | 'update';
|
|
3
3
|
export type HmrBootStage = 'placeholder' | 'probing-origin' | 'loading-entry-runtime' | 'configuring-import-map' | 'loading-runtime-bridge' | 'loading-core-bridge' | 'preloading-style-scope' | 'installing-css' | 'importing-main' | 'waiting-for-app' | 'app-root-committed' | 'ready' | 'error';
|
|
4
4
|
export type HmrConnectionStage = 'connecting' | 'reconnecting' | 'synchronizing' | 'offline' | 'healthy';
|
|
5
|
+
export type HmrUpdateStage = 'received' | 'evicting' | 'reimporting' | 'rebooting' | 'complete';
|
|
5
6
|
export type HmrOverlayStageInfo = {
|
|
6
7
|
detail?: string;
|
|
7
8
|
origin?: string;
|
|
@@ -25,14 +26,60 @@ type HmrOverlayApi = {
|
|
|
25
26
|
ensureBootPage: (verbose?: boolean) => any | null;
|
|
26
27
|
setBootStage: (stage: HmrBootStage, info?: HmrOverlayStageInfo) => HmrOverlaySnapshot;
|
|
27
28
|
setConnectionStage: (stage: HmrConnectionStage, info?: HmrOverlayStageInfo) => HmrOverlaySnapshot;
|
|
29
|
+
setUpdateStage: (stage: HmrUpdateStage, info?: HmrOverlayStageInfo) => HmrOverlaySnapshot;
|
|
28
30
|
hide: (reason?: string) => void;
|
|
29
31
|
getSnapshot: () => HmrOverlaySnapshot;
|
|
30
32
|
};
|
|
31
33
|
export declare function createBootOverlaySnapshot(stage: HmrBootStage, info?: HmrOverlayStageInfo): HmrOverlaySnapshot;
|
|
32
34
|
export declare function createConnectionOverlaySnapshot(stage: HmrConnectionStage, info?: HmrOverlayStageInfo): HmrOverlaySnapshot;
|
|
35
|
+
export declare function createUpdateOverlaySnapshot(stage: HmrUpdateStage, info?: HmrOverlayStageInfo): HmrOverlaySnapshot;
|
|
36
|
+
/**
|
|
37
|
+
* Returns the UIWindow level we use for the live/connection overlay. We lift
|
|
38
|
+
* above `UIWindowLevelAlert` so system alerts (and any app-presented modal)
|
|
39
|
+
* stack underneath. When the platform does not expose `UIWindowLevelAlert`
|
|
40
|
+
* we fall back to the documented constant value (2000).
|
|
41
|
+
*/
|
|
42
|
+
export declare function computeIosOverlayWindowLevel(baseAlert?: number | null): number;
|
|
43
|
+
export type IosSafeInsets = {
|
|
44
|
+
top: number;
|
|
45
|
+
bottom: number;
|
|
46
|
+
left: number;
|
|
47
|
+
right: number;
|
|
48
|
+
};
|
|
49
|
+
export type IosRect = {
|
|
50
|
+
x: number;
|
|
51
|
+
y: number;
|
|
52
|
+
width: number;
|
|
53
|
+
height: number;
|
|
54
|
+
};
|
|
55
|
+
export type IosOverlayLayout = {
|
|
56
|
+
backdrop: IosRect;
|
|
57
|
+
panel: IosRect;
|
|
58
|
+
title: IosRect;
|
|
59
|
+
status: IosRect;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* Layout math for the live overlay when it runs inside its own UIWindow.
|
|
63
|
+
* Pure, deterministic and independent of UIKit so we can verify the rules
|
|
64
|
+
* (max panel width, centered placement, safe-area clamping, sane defaults)
|
|
65
|
+
* from tests.
|
|
66
|
+
*/
|
|
67
|
+
export declare function computeIosOverlayLayout(input: {
|
|
68
|
+
viewWidth: number;
|
|
69
|
+
viewHeight: number;
|
|
70
|
+
safeInsets?: IosSafeInsets | null;
|
|
71
|
+
titleHeight: number;
|
|
72
|
+
statusHeight: number;
|
|
73
|
+
maxPanelWidth?: number;
|
|
74
|
+
horizontalMargin?: number;
|
|
75
|
+
panelPadding?: number;
|
|
76
|
+
interLabelSpacing?: number;
|
|
77
|
+
minTopInset?: number;
|
|
78
|
+
}): IosOverlayLayout;
|
|
33
79
|
export declare function ensureHmrDevOverlayRuntimeInstalled(verbose?: boolean): HmrOverlayApi;
|
|
34
80
|
export declare function createHmrBootOverlayPage(verbose?: boolean): any | null;
|
|
35
81
|
export declare function setHmrBootStage(stage: HmrBootStage, info?: HmrOverlayStageInfo): HmrOverlaySnapshot;
|
|
36
82
|
export declare function setHmrConnectionStage(stage: HmrConnectionStage, info?: HmrOverlayStageInfo): HmrOverlaySnapshot;
|
|
83
|
+
export declare function setHmrUpdateStage(stage: HmrUpdateStage, info?: HmrOverlayStageInfo): HmrOverlaySnapshot;
|
|
37
84
|
export declare function hideHmrDevOverlay(reason?: string): void;
|
|
38
85
|
export {};
|