@nativescript/vite 8.0.0-alpha.4 → 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/configuration/base.js +57 -0
- package/configuration/base.js.map +1 -1
- package/helpers/config-as-json.js +10 -0
- package/helpers/config-as-json.js.map +1 -1
- 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/helpers/main-entry.js +167 -13
- package/helpers/main-entry.js.map +1 -1
- package/helpers/ns-core-url.d.ts +84 -0
- package/helpers/ns-core-url.js +168 -0
- package/helpers/ns-core-url.js.map +1 -0
- 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/core-sanitize.d.ts +8 -4
- package/hmr/server/core-sanitize.js +71 -41
- package/hmr/server/core-sanitize.js.map +1 -1
- package/hmr/server/import-map.js +7 -3
- package/hmr/server/import-map.js.map +1 -1
- package/hmr/server/ns-core-cjs-shape.d.ts +206 -0
- package/hmr/server/ns-core-cjs-shape.js +273 -0
- package/hmr/server/ns-core-cjs-shape.js.map +1 -0
- 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-core-bridge.d.ts +0 -2
- package/hmr/server/websocket-core-bridge.js +60 -58
- package/hmr/server/websocket-core-bridge.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-module-specifiers.js +12 -0
- package/hmr/server/websocket-module-specifiers.js.map +1 -1
- package/hmr/server/websocket-ns-m-finalize.d.ts +0 -10
- package/hmr/server/websocket-ns-m-finalize.js +26 -11
- 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.d.ts +36 -0
- package/hmr/server/websocket-served-module-helpers.js +613 -0
- package/hmr/server/websocket-served-module-helpers.js.map +1 -0
- package/hmr/server/websocket-vue-sfc.d.ts +0 -8
- package/hmr/server/websocket-vue-sfc.js +17 -19
- package/hmr/server/websocket-vue-sfc.js.map +1 -1
- package/hmr/server/websocket.d.ts +5 -5
- package/hmr/server/websocket.js +2867 -252
- 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/hmr/shared/vendor/manifest.js +114 -12
- package/hmr/shared/vendor/manifest.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,613 @@
|
|
|
1
|
+
import { parse as babelParse } from '@babel/parser';
|
|
2
|
+
import * as t from '@babel/types';
|
|
3
|
+
import * as PAT from './constants.js';
|
|
4
|
+
import { isDeepCoreSubpath } from './core-sanitize.js';
|
|
5
|
+
import { extractDirectExportedNames } from './websocket-core-bridge.js';
|
|
6
|
+
const MODULE_IMPORT_ANALYSIS_PLUGINS = ['typescript', 'jsx', 'importMeta', 'topLevelAwait', 'classProperties', 'classPrivateProperties', 'classPrivateMethods', 'decorators-legacy'];
|
|
7
|
+
export function collectTopLevelImportRecords(code) {
|
|
8
|
+
if (!code || typeof code !== 'string' || !/\bimport\b/.test(code)) {
|
|
9
|
+
return [];
|
|
10
|
+
}
|
|
11
|
+
try {
|
|
12
|
+
const ast = babelParse(code, {
|
|
13
|
+
sourceType: 'module',
|
|
14
|
+
plugins: MODULE_IMPORT_ANALYSIS_PLUGINS,
|
|
15
|
+
});
|
|
16
|
+
const body = ast?.program?.body;
|
|
17
|
+
if (!Array.isArray(body)) {
|
|
18
|
+
return [];
|
|
19
|
+
}
|
|
20
|
+
return body
|
|
21
|
+
.filter((node) => t.isImportDeclaration(node) && typeof node.start === 'number' && typeof node.end === 'number' && typeof node.source?.value === 'string')
|
|
22
|
+
.map((node) => ({
|
|
23
|
+
start: node.start,
|
|
24
|
+
end: node.end,
|
|
25
|
+
text: code.slice(node.start, node.end),
|
|
26
|
+
source: node.source.value,
|
|
27
|
+
hasOnlyNamedSpecifiers: Array.isArray(node.specifiers) && node.specifiers.length > 0 && node.specifiers.every((spec) => t.isImportSpecifier(spec)),
|
|
28
|
+
namedBindings: Array.isArray(node.specifiers)
|
|
29
|
+
? node.specifiers
|
|
30
|
+
.filter((spec) => t.isImportSpecifier(spec) && typeof spec.start === 'number' && typeof spec.end === 'number')
|
|
31
|
+
.map((spec) => ({
|
|
32
|
+
importedName: t.isIdentifier(spec.imported) ? spec.imported.name : String(spec.imported?.value || ''),
|
|
33
|
+
text: code.slice(spec.start, spec.end),
|
|
34
|
+
}))
|
|
35
|
+
: [],
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return [];
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export function hoistTopLevelStaticImports(code) {
|
|
43
|
+
const imports = collectTopLevelImportRecords(code);
|
|
44
|
+
if (!imports.length) {
|
|
45
|
+
return code;
|
|
46
|
+
}
|
|
47
|
+
let stripped = code;
|
|
48
|
+
for (const imp of [...imports].sort((left, right) => right.start - left.start)) {
|
|
49
|
+
stripped = stripped.slice(0, imp.start) + stripped.slice(imp.end);
|
|
50
|
+
}
|
|
51
|
+
const hoisted = [];
|
|
52
|
+
const seen = new Set();
|
|
53
|
+
for (const imp of imports) {
|
|
54
|
+
const text = imp.text.trim();
|
|
55
|
+
if (!text || seen.has(text)) {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
seen.add(text);
|
|
59
|
+
hoisted.push(text);
|
|
60
|
+
}
|
|
61
|
+
if (!hoisted.length) {
|
|
62
|
+
return stripped;
|
|
63
|
+
}
|
|
64
|
+
return `${hoisted.join('\n')}\n${stripped.replace(/^\s*\n+/, '')}`;
|
|
65
|
+
}
|
|
66
|
+
export function buildBootProgressSnippet(bootModuleLabel) {
|
|
67
|
+
const normalizedLabel = JSON.stringify(String(bootModuleLabel || '').replace(/\\/g, '/'));
|
|
68
|
+
return [
|
|
69
|
+
`const __nsBootGlobal=globalThis;`,
|
|
70
|
+
`try{if(!__nsBootGlobal.__NS_HMR_BOOT_COMPLETE__){const __nsBootApi=__nsBootGlobal.__NS_HMR_DEV_OVERLAY__;if(__nsBootApi&&typeof __nsBootApi.setBootStage==='function'){const __nsBootCount=(__nsBootGlobal.__NS_HMR_BOOT_MODULE_COUNT__=Number(__nsBootGlobal.__NS_HMR_BOOT_MODULE_COUNT__||0)+1);__nsBootGlobal.__NS_HMR_BOOT_LAST_MODULE__=${normalizedLabel};const __nsBootNow=Date.now();const __nsBootLast=Number(__nsBootGlobal.__NS_HMR_BOOT_LAST_PROGRESS_AT__||0);if(__nsBootCount<=8||__nsBootCount%6===0||__nsBootNow-__nsBootLast>90){__nsBootGlobal.__NS_HMR_BOOT_LAST_PROGRESS_AT__=__nsBootNow;const __nsBootProgress=Math.min(94,82+Math.min(10,Math.round((Math.log(__nsBootCount+1)/Math.LN2)*2)));__nsBootApi.setBootStage('importing-main',{detail:'Evaluated '+__nsBootCount+' modules\\n'+__nsBootGlobal.__NS_HMR_BOOT_LAST_MODULE__,attempt:Number(__nsBootGlobal.__NS_HMR_BOOT_MAIN_ATTEMPT__||1),attempts:Number(__nsBootGlobal.__NS_HMR_BOOT_MAIN_ATTEMPTS__||6),progress:__nsBootProgress});}}}}catch(__nsBootErr){}`,
|
|
71
|
+
`if(!__nsBootGlobal.__NS_HMR_BOOT_COMPLETE__){const __nsBootCount=Number(__nsBootGlobal.__NS_HMR_BOOT_MODULE_COUNT__||0);if(__nsBootCount<=24||__nsBootCount%8===0){await new Promise((resolve)=>setTimeout(resolve,0));}}`,
|
|
72
|
+
'',
|
|
73
|
+
].join('\n');
|
|
74
|
+
}
|
|
75
|
+
export function stripCoreGlobalsImports(code) {
|
|
76
|
+
const pattern = /^\s*(?:import\s+(?:[^'"\n]*from\s+)?|export\s+\*\s+from\s+)["'][^"']*(?:@nativescript(?:[/_-])core(?:[\/_-])globals|@nativescript_core_globals)[^"']*["'];?\s*$/gm;
|
|
77
|
+
return code.replace(pattern, '');
|
|
78
|
+
}
|
|
79
|
+
export function ensureVariableDynamicImportHelper(code) {
|
|
80
|
+
if (!code.includes('__variableDynamicImportRuntimeHelper')) {
|
|
81
|
+
return code;
|
|
82
|
+
}
|
|
83
|
+
if (PAT.VARIABLE_DYNAMIC_IMPORT_HELPER_PATTERN.test(code)) {
|
|
84
|
+
return code;
|
|
85
|
+
}
|
|
86
|
+
const helper = `const __variableDynamicImportRuntimeHelper = (map, request, importMode) => {\n` +
|
|
87
|
+
` try { if (request === '@') { return import(new URL('/ns/m/__invalid_at__.mjs', import.meta.url).href); } } catch {}\n` +
|
|
88
|
+
` const loader = map && (map[request] || map[request?.replace(/\\\\/g, "/")]);\n` +
|
|
89
|
+
` if (!loader) {\n` +
|
|
90
|
+
` const error = new Error("Cannot dynamically import: " + request);\n` +
|
|
91
|
+
` error.code = 'ERR_MODULE_NOT_FOUND';\n` +
|
|
92
|
+
` return Promise.reject(error);\n` +
|
|
93
|
+
` }\n` +
|
|
94
|
+
` try {\n` +
|
|
95
|
+
` return loader(importMode);\n` +
|
|
96
|
+
` } catch (err) {\n` +
|
|
97
|
+
` return Promise.reject(err);\n` +
|
|
98
|
+
` }\n` +
|
|
99
|
+
`};\n`;
|
|
100
|
+
return `${helper}${code}`;
|
|
101
|
+
}
|
|
102
|
+
export function ensureGuardPlainDynamicImports(code, _origin) {
|
|
103
|
+
try {
|
|
104
|
+
if (!code || !/\bimport\s*\(/.test(code))
|
|
105
|
+
return code;
|
|
106
|
+
const wrapper = `const __ns_import = (s) => { try { if (s === '@') { return import(new URL('/ns/m/__invalid_at__.mjs', import.meta.url).href); } } catch {} return import(s); }\n`;
|
|
107
|
+
const replaced = code.replace(/(^|[^\.\w$])import\s*\(/g, (_m, p1) => `${p1}__ns_import(`);
|
|
108
|
+
if (replaced !== code) {
|
|
109
|
+
return wrapper + replaced;
|
|
110
|
+
}
|
|
111
|
+
return code;
|
|
112
|
+
}
|
|
113
|
+
catch {
|
|
114
|
+
return code;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
// alpha.59 — Stable URL helper for dynamic imports.
|
|
118
|
+
//
|
|
119
|
+
// Pre-alpha.59 the helper synthesized `/ns/m/__ns_hmr__/<tag>/<rest>` URLs
|
|
120
|
+
// from `globalThis.__NS_HMR_GRAPH_VERSION__` and an importer-derived tag.
|
|
121
|
+
// That tag flowed straight into V8's `g_moduleRegistry` cache key — so a
|
|
122
|
+
// `graphVersion` bump on every save effectively flushed the whole module
|
|
123
|
+
// graph (HMR latency was dominated by Vite re-transforming the unchanged
|
|
124
|
+
// closure on every save, ~3s per cycle).
|
|
125
|
+
//
|
|
126
|
+
// alpha.59 inverts that contract:
|
|
127
|
+
// * The runtime canonicalizes any URL shape (boot prefix, hmr prefix,
|
|
128
|
+
// stable) to a single key via `CanonicalizeHttpUrlKey`.
|
|
129
|
+
// * The Angular client receives an explicit eviction set in
|
|
130
|
+
// `ns:angular-update` and calls `__nsInvalidateModules` before
|
|
131
|
+
// re-importing the entry, so V8 only refetches modules that
|
|
132
|
+
// actually changed.
|
|
133
|
+
// * The dynamic-import helper no longer needs to busy-construct
|
|
134
|
+
// versioned URLs. Boot prefix preservation still matters at COLD
|
|
135
|
+
// boot because the server-side handler routes `/__ns_boot__/b1/`
|
|
136
|
+
// paths to the boot-progress instrumentation snippet — but the
|
|
137
|
+
// prefix is read from `import.meta.url`, never synthesized from
|
|
138
|
+
// `__NS_HMR_GRAPH_VERSION__`.
|
|
139
|
+
//
|
|
140
|
+
// The helper is intentionally tiny:
|
|
141
|
+
// 1. `@` and falsy specs route to `/ns/m/__invalid_at__.mjs` (existing
|
|
142
|
+
// defensive sentinel for misencoded imports).
|
|
143
|
+
// 2. `/ns/m/...` specs that don't yet have a boot prefix get one
|
|
144
|
+
// added when the caller is itself a boot-tagged module. This
|
|
145
|
+
// keeps the boot-progress instrumentation flowing through the
|
|
146
|
+
// transitive cold-boot graph on alpha.59 + alpha.59 boot
|
|
147
|
+
// sequences. Once HMR takes over (`__NS_HMR_BOOT_COMPLETE__` is
|
|
148
|
+
// set on the global), no prefix is added — the runtime
|
|
149
|
+
// canonicalizer collapses any historical prefix to the same key.
|
|
150
|
+
// 3. Everything else is a pass-through `import(spec)`.
|
|
151
|
+
export function ensureDynamicHmrImportHelper(code) {
|
|
152
|
+
try {
|
|
153
|
+
if (!code.includes('__nsDynamicHmrImport('))
|
|
154
|
+
return code;
|
|
155
|
+
if (code.includes('const __nsDynamicHmrImport ='))
|
|
156
|
+
return code;
|
|
157
|
+
const helper = 'const __nsDynamicHmrImport = (spec) => {\n' +
|
|
158
|
+
" const __nsm = '/ns' + '/m';\n" +
|
|
159
|
+
" try { if (!spec || spec === '@') { return import(new URL(__nsm + '/__invalid_at__.mjs', import.meta.url).href); } } catch {}\n" +
|
|
160
|
+
' try {\n' +
|
|
161
|
+
" if (typeof spec !== 'string' || !spec.startsWith(__nsm + '/')) return import(spec);\n" +
|
|
162
|
+
' const g = globalThis;\n' +
|
|
163
|
+
" const inBoot = !g.__NS_HMR_BOOT_COMPLETE__ && typeof import.meta !== 'undefined' && import.meta && typeof import.meta.url === 'string' && import.meta.url.includes('/__ns_boot__/b1/');\n" +
|
|
164
|
+
" const noBootPrefixYet = !spec.startsWith(__nsm + '/__ns_boot__/');\n" +
|
|
165
|
+
" const isAppModule = !spec.startsWith(__nsm + '/node_modules/');\n" +
|
|
166
|
+
" const finalSpec = inBoot && noBootPrefixYet && isAppModule ? __nsm + '/__ns_boot__/b1' + spec.slice(__nsm.length) : spec;\n" +
|
|
167
|
+
" const origin = typeof g.__NS_HTTP_ORIGIN__ === 'string' && /^https?:\\/\\//.test(g.__NS_HTTP_ORIGIN__) ? g.__NS_HTTP_ORIGIN__ : '';\n" +
|
|
168
|
+
' return import(origin ? origin + finalSpec : new URL(finalSpec, import.meta.url).href);\n' +
|
|
169
|
+
' } catch {}\n' +
|
|
170
|
+
' return import(spec);\n' +
|
|
171
|
+
'};\n';
|
|
172
|
+
return helper + code;
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
return code;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
function extractExportedNames(code) {
|
|
179
|
+
return extractDirectExportedNames(code);
|
|
180
|
+
}
|
|
181
|
+
export async function expandStarExports(code, server, _projectRoot, verbose) {
|
|
182
|
+
const STAR_RE = /^[ \t]*(export\s+\*\s+from\s+["'])([^"']+)(["'];?)[ \t]*$/gm;
|
|
183
|
+
let match;
|
|
184
|
+
const replacements = [];
|
|
185
|
+
while ((match = STAR_RE.exec(code)) !== null) {
|
|
186
|
+
const url = match[2];
|
|
187
|
+
if (!url.includes('/node_modules/'))
|
|
188
|
+
continue;
|
|
189
|
+
replacements.push({ full: match[0], url, prefix: match[1], suffix: match[3] });
|
|
190
|
+
}
|
|
191
|
+
if (!replacements.length)
|
|
192
|
+
return code;
|
|
193
|
+
for (const rep of replacements) {
|
|
194
|
+
try {
|
|
195
|
+
let vitePath = rep.url.replace(/^https?:\/\/[^/]+/, '');
|
|
196
|
+
vitePath = vitePath.replace(/^\/ns\/m\//, '/');
|
|
197
|
+
vitePath = vitePath.replace(/^\/__ns_boot__\/[^/]+/, '');
|
|
198
|
+
vitePath = vitePath.replace(/\/__ns_hmr__\/[^/]+/, '');
|
|
199
|
+
const result = await server.transformRequest(vitePath);
|
|
200
|
+
if (!result?.code)
|
|
201
|
+
continue;
|
|
202
|
+
const names = extractExportedNames(result.code);
|
|
203
|
+
if (!names.length)
|
|
204
|
+
continue;
|
|
205
|
+
const explicit = `export { ${names.join(', ')} } from ${JSON.stringify(rep.url)};`;
|
|
206
|
+
code = code.replace(rep.full, explicit);
|
|
207
|
+
if (verbose) {
|
|
208
|
+
console.log(`[ns/m] expanded export* -> ${names.length} names from ${vitePath}`);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
catch { }
|
|
212
|
+
}
|
|
213
|
+
return code;
|
|
214
|
+
}
|
|
215
|
+
export function repairImportEqualsAssignments(code) {
|
|
216
|
+
try {
|
|
217
|
+
if (!code || typeof code !== 'string')
|
|
218
|
+
return code;
|
|
219
|
+
code = code.replace(/(^|\n)\s*import\s*\{([^}]+)\}\s*=\s*([^;]+);?/g, (_m, p1, specList, rhs) => {
|
|
220
|
+
const cleaned = String(specList)
|
|
221
|
+
.split(',')
|
|
222
|
+
.map((s) => s.trim())
|
|
223
|
+
.filter(Boolean)
|
|
224
|
+
.map((seg) => seg.replace(/\s+as\s+/i, ': '))
|
|
225
|
+
.join(', ');
|
|
226
|
+
return `${p1}const { ${cleaned} } = ${rhs};`;
|
|
227
|
+
});
|
|
228
|
+
code = code.replace(/(^|\n)\s*import\s*\*\s*as\s*([A-Za-z_$][\w$]*)\s*=\s*([^;]+);?/g, (_m, p1, ns, rhs) => `${p1}const ${ns} = (${rhs});`);
|
|
229
|
+
code = code.replace(/(^|\n)\s*import\s+([A-Za-z_$][\w$]*)\s*=\s*([^;]+);?/g, (_m, p1, id, rhs) => `${p1}const ${id} = ${rhs};`);
|
|
230
|
+
}
|
|
231
|
+
catch { }
|
|
232
|
+
return code;
|
|
233
|
+
}
|
|
234
|
+
export function ensureVersionedRtImports(code, origin, ver) {
|
|
235
|
+
if (!code || !origin || !Number.isFinite(ver))
|
|
236
|
+
return code;
|
|
237
|
+
code = code.replace(/(from\s+["'])(?:https?:\/\/[^"']+)?\/(?:\@ns|ns)\/rt(?:\/[\d]+)?(["'])/g, (_m, p1, p3) => `${p1}/ns/rt/${ver}${p3}`);
|
|
238
|
+
code = code.replace(/(import\(\s*["'])(?:https?:\/\/[^"']+)?\/(?:\@ns|ns)\/rt(?:\/[\d]+)?(["']\s*\))/g, (_m, p1, p3) => `${p1}/ns/rt/${ver}${p3}`);
|
|
239
|
+
return code;
|
|
240
|
+
}
|
|
241
|
+
export function stripViteDynamicImportVirtual(code) {
|
|
242
|
+
if (!/\/@id\/__x00__vite\/dynamic-import-helper/.test(code)) {
|
|
243
|
+
return code;
|
|
244
|
+
}
|
|
245
|
+
const original = code;
|
|
246
|
+
code = code.replace(/^[\t ]*import[^\n]*\/@id\/__x00__vite\/dynamic-import-helper[^\n]*$/gm, '');
|
|
247
|
+
if (/\/@id\/__x00__vite\/dynamic-import-helper/.test(code)) {
|
|
248
|
+
code = code.replace(/\/@id\/__x00__vite\/dynamic-import-helper[^"'`)]*/g, '/__NS_UNUSED_DYNAMIC_IMPORT_HELPER__');
|
|
249
|
+
}
|
|
250
|
+
if (!/__variableDynamicImportRuntimeHelper/.test(code)) {
|
|
251
|
+
const inline = `const __variableDynamicImportRuntimeHelper = (map, request, importMode) => {\n try { if (request === '@') { return import('/ns/m/__invalid_at__.mjs'); } } catch {}\n const loader = map && (map[request] || map[request?.replace(/\\\\/g, '/')]);\n if (!loader) { const e = new Error('Cannot dynamically import: ' + request); /*@ts-ignore*/ e.code = 'ERR_MODULE_NOT_FOUND'; return Promise.reject(e); }\n try { return loader(importMode); } catch (e) { return Promise.reject(e); }\n};\n`;
|
|
252
|
+
code = inline + code;
|
|
253
|
+
}
|
|
254
|
+
if (code !== original) {
|
|
255
|
+
code = `// [hmr-sanitize] removed virtual dynamic-import-helper\n${code}`;
|
|
256
|
+
}
|
|
257
|
+
return code;
|
|
258
|
+
}
|
|
259
|
+
export function extractExportMetadata(code) {
|
|
260
|
+
const named = new Set();
|
|
261
|
+
let hasDefault = /\bexport\s+default\b/.test(code);
|
|
262
|
+
try {
|
|
263
|
+
for (const match of code.matchAll(/\bexport\s+(?:const|let|var|function|class)\s+([A-Za-z_$][A-Za-z0-9_$]*)/g)) {
|
|
264
|
+
if (match[1])
|
|
265
|
+
named.add(match[1]);
|
|
266
|
+
}
|
|
267
|
+
for (const match of code.matchAll(/\bexport\s*\{([^}]+)\}/g)) {
|
|
268
|
+
const inner = (match[1] || '')
|
|
269
|
+
.split(',')
|
|
270
|
+
.map((s) => s.trim())
|
|
271
|
+
.filter(Boolean);
|
|
272
|
+
for (const seg of inner) {
|
|
273
|
+
const direct = seg.match(/^([A-Za-z_$][A-Za-z0-9_$]*)(?:\s+as\s+([A-Za-z_$][A-Za-z0-9_$]*))?$/);
|
|
274
|
+
if (!direct)
|
|
275
|
+
continue;
|
|
276
|
+
const base = direct[1];
|
|
277
|
+
const alias = direct[2];
|
|
278
|
+
if (base === 'default') {
|
|
279
|
+
hasDefault = true;
|
|
280
|
+
continue;
|
|
281
|
+
}
|
|
282
|
+
named.add(alias || base);
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
catch { }
|
|
287
|
+
named.delete('default');
|
|
288
|
+
return { hasDefault, named: Array.from(named) };
|
|
289
|
+
}
|
|
290
|
+
function shouldAllowLocalCoreSanitizerPaths(contextLabel) {
|
|
291
|
+
return /\bnode_modules\/@nativescript\/vite\/hmr\/(?:client|frameworks)\//.test(contextLabel);
|
|
292
|
+
}
|
|
293
|
+
export function assertNoOptimizedArtifacts(code, contextLabel) {
|
|
294
|
+
try {
|
|
295
|
+
const offenders = [];
|
|
296
|
+
const lines = code.split('\n');
|
|
297
|
+
const tests = [/\b__VITE_PLUGIN__\b/, /\b__VITE_PRELOAD__\b/];
|
|
298
|
+
const localCore = /(^|[^\w@])(?:\.\.?\/|\/)??@nativescript[\/_-]core\//i;
|
|
299
|
+
for (let i = 0; i < lines.length; i++) {
|
|
300
|
+
const line = lines[i];
|
|
301
|
+
for (const re of tests) {
|
|
302
|
+
if (re.test(line)) {
|
|
303
|
+
offenders.push(`${i + 1}: ${line.substring(0, 200)}`);
|
|
304
|
+
break;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
if (localCore.test(line)) {
|
|
308
|
+
const trimmed = line.trimStart();
|
|
309
|
+
if (trimmed.startsWith('//') || trimmed.startsWith('/*') || trimmed.startsWith('*')) {
|
|
310
|
+
continue;
|
|
311
|
+
}
|
|
312
|
+
if (shouldAllowLocalCoreSanitizerPaths(contextLabel)) {
|
|
313
|
+
continue;
|
|
314
|
+
}
|
|
315
|
+
offenders.push(`${i + 1}: ${line.substring(0, 200)} [local-core-path]`);
|
|
316
|
+
}
|
|
317
|
+
if (offenders.length >= 10)
|
|
318
|
+
break;
|
|
319
|
+
}
|
|
320
|
+
if (offenders.length) {
|
|
321
|
+
const msg = `[sanitize-fail] Optimized deps/virtual id artifacts detected in ${contextLabel}. These cannot be evaluated by the device HTTP ESM loader. Offending lines (first ${Math.min(5, offenders.length)} shown):\n` + offenders.slice(0, 5).join('\n');
|
|
322
|
+
const error = new Error(msg);
|
|
323
|
+
error.code = 'NS_SANITIZE_FAIL';
|
|
324
|
+
error.offenders = offenders;
|
|
325
|
+
throw error;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
catch (error) {
|
|
329
|
+
throw error;
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
export function ensureDestructureCoreImports(code) {
|
|
333
|
+
try {
|
|
334
|
+
let result = code;
|
|
335
|
+
let coreImportCounter = 0;
|
|
336
|
+
const toDestructure = (specList) => specList
|
|
337
|
+
.split(',')
|
|
338
|
+
.map((s) => s.trim())
|
|
339
|
+
.filter(Boolean)
|
|
340
|
+
.map((seg) => {
|
|
341
|
+
const match = seg.split(/\s+as\s+/i);
|
|
342
|
+
return match.length === 2 ? `${match[0].trim()}: ${match[1].trim()}` : seg;
|
|
343
|
+
})
|
|
344
|
+
.join(', ');
|
|
345
|
+
const reNamed = /(^|\n)\s*import\s*\{([^}]+)\}\s*from\s*["']((?:https?:\/\/[^"']+)?\/ns\/core(?:\/[\d]+)?(?:\?p=[^"']+)?)['"];?\s*/gm;
|
|
346
|
+
result = result.replace(reNamed, (_full, prefix, specList, src) => {
|
|
347
|
+
if (isDeepCoreSubpath(src))
|
|
348
|
+
return _full;
|
|
349
|
+
const tempName = `__ns_core_ns_re${coreImportCounter > 0 ? `_${coreImportCounter}` : ''}`;
|
|
350
|
+
coreImportCounter++;
|
|
351
|
+
const decl = `const { ${toDestructure(specList)} } = ${tempName};`;
|
|
352
|
+
return `${prefix}import ${tempName} from ${JSON.stringify(src)};\n${decl}\n`;
|
|
353
|
+
});
|
|
354
|
+
const reMixed = /(^|\n)\s*import\s+([A-Za-z_$][\w$]*)\s*,\s*\{([^}]+)\}\s*from\s*["']((?:https?:\/\/[^"']+)?\/ns\/core(?:\/[\d]+)?(?:\?p=[^"']+)?)['"];?\s*/gm;
|
|
355
|
+
result = result.replace(reMixed, (_full, prefix, defName, specList, src) => {
|
|
356
|
+
if (isDeepCoreSubpath(src))
|
|
357
|
+
return _full;
|
|
358
|
+
const decl = `const { ${toDestructure(specList)} } = ${defName};`;
|
|
359
|
+
return `${prefix}import ${defName} from ${JSON.stringify(src)};\n${decl}\n`;
|
|
360
|
+
});
|
|
361
|
+
return result;
|
|
362
|
+
}
|
|
363
|
+
catch {
|
|
364
|
+
return code;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
export function ensureDestructureRtImports(code) {
|
|
368
|
+
try {
|
|
369
|
+
let result = code;
|
|
370
|
+
const toDestructure = (specList) => specList
|
|
371
|
+
.split(',')
|
|
372
|
+
.map((s) => s.trim())
|
|
373
|
+
.filter(Boolean)
|
|
374
|
+
.map((seg) => {
|
|
375
|
+
const match = seg.split(/\s+as\s+/i);
|
|
376
|
+
return match.length === 2 ? `${match[0].trim()}: ${match[1].trim()}` : seg;
|
|
377
|
+
})
|
|
378
|
+
.join(', ');
|
|
379
|
+
const reNamed = /(^|\n)\s*import\s*\{([^}]+)\}\s*from\s*["']((?:https?:\/\/[^"']+)?\/ns\/rt(?:\/[\d]+)?)['"];?\s*/gm;
|
|
380
|
+
result = result.replace(reNamed, (_full, prefix, specList, src) => {
|
|
381
|
+
const tempName = `__ns_rt_ns_re`;
|
|
382
|
+
const decl = `const { ${toDestructure(specList)} } = ${tempName};`;
|
|
383
|
+
return `${prefix}import ${tempName} from ${JSON.stringify(src)};\n${decl}\n`;
|
|
384
|
+
});
|
|
385
|
+
const reMixed = /(^|\n)\s*import\s+([A-Za-z_$][\w$]*)\s*,\s*\{([^}]+)\}\s*from\s*["']((?:https?:\/\/[^"']+)?\/ns\/rt(?:\/[\d]+)?)['"];?\s*/gm;
|
|
386
|
+
result = result.replace(reMixed, (_full, prefix, defName, specList, src) => {
|
|
387
|
+
const decl = `const { ${toDestructure(specList)} } = ${defName};`;
|
|
388
|
+
return `${prefix}import ${defName} from ${JSON.stringify(src)};\n${decl}\n`;
|
|
389
|
+
});
|
|
390
|
+
return result;
|
|
391
|
+
}
|
|
392
|
+
catch {
|
|
393
|
+
return code;
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
export function dedupeRtNamedImportsAgainstDestructures(code) {
|
|
397
|
+
try {
|
|
398
|
+
let result = code;
|
|
399
|
+
const rtDestructureRE = /(^|\n)\s*const\s*\{([^}]+)\}\s*=\s*(__ns_rt_ns(?:\d+|_re))\s*;?/gm;
|
|
400
|
+
const rtBound = new Set();
|
|
401
|
+
let match;
|
|
402
|
+
while ((match = rtDestructureRE.exec(result)) !== null) {
|
|
403
|
+
const specList = String(match[2] || '');
|
|
404
|
+
specList
|
|
405
|
+
.split(',')
|
|
406
|
+
.map((s) => s.trim())
|
|
407
|
+
.filter(Boolean)
|
|
408
|
+
.forEach((seg) => {
|
|
409
|
+
const bind = seg.includes(':') ? seg.split(':')[1].trim() : seg;
|
|
410
|
+
if (bind)
|
|
411
|
+
rtBound.add(bind);
|
|
412
|
+
});
|
|
413
|
+
}
|
|
414
|
+
if (!rtBound.size)
|
|
415
|
+
return result;
|
|
416
|
+
const rtNamedImportRE = /(^|\n)\s*import\s*\{([^}]+)\}\s*from\s*["']((?:https?:\/\/[^"']+)?\/ns\/rt(?:\/[\d]+)?)['"];?\s*/gm;
|
|
417
|
+
const edits = [];
|
|
418
|
+
while ((match = rtNamedImportRE.exec(result)) !== null) {
|
|
419
|
+
const full = match[0];
|
|
420
|
+
const prefix = match[1] || '';
|
|
421
|
+
const specList = String(match[2] || '');
|
|
422
|
+
const src = match[3];
|
|
423
|
+
const kept = [];
|
|
424
|
+
specList
|
|
425
|
+
.split(',')
|
|
426
|
+
.map((s) => s.trim())
|
|
427
|
+
.filter(Boolean)
|
|
428
|
+
.forEach((seg) => {
|
|
429
|
+
const importedName = seg.split(/\s+as\s+/i)[0].trim();
|
|
430
|
+
if (!rtBound.has(importedName))
|
|
431
|
+
kept.push(seg);
|
|
432
|
+
});
|
|
433
|
+
let replacement = '';
|
|
434
|
+
if (kept.length) {
|
|
435
|
+
replacement = `${prefix}import { ${kept.join(', ')} } from ${JSON.stringify(src)};`;
|
|
436
|
+
}
|
|
437
|
+
else {
|
|
438
|
+
replacement = prefix || '';
|
|
439
|
+
}
|
|
440
|
+
edits.push({
|
|
441
|
+
start: rtNamedImportRE.lastIndex - full.length,
|
|
442
|
+
end: rtNamedImportRE.lastIndex,
|
|
443
|
+
text: replacement,
|
|
444
|
+
});
|
|
445
|
+
}
|
|
446
|
+
if (edits.length) {
|
|
447
|
+
edits
|
|
448
|
+
.sort((a, b) => b.start - a.start)
|
|
449
|
+
.forEach((edit) => {
|
|
450
|
+
result = result.slice(0, edit.start) + edit.text + result.slice(edit.end);
|
|
451
|
+
});
|
|
452
|
+
}
|
|
453
|
+
return result;
|
|
454
|
+
}
|
|
455
|
+
catch {
|
|
456
|
+
return code;
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
export function deduplicateLinkerImports(code) {
|
|
460
|
+
if (!code)
|
|
461
|
+
return code;
|
|
462
|
+
try {
|
|
463
|
+
const imports = collectTopLevelImportRecords(code);
|
|
464
|
+
if (!imports.length) {
|
|
465
|
+
return code;
|
|
466
|
+
}
|
|
467
|
+
const pkgUrlMap = new Map();
|
|
468
|
+
const pkgBindings = new Map();
|
|
469
|
+
for (const imp of imports) {
|
|
470
|
+
const url = imp.source;
|
|
471
|
+
if (!/^https?:\/\//.test(url) && !url.startsWith('/')) {
|
|
472
|
+
continue;
|
|
473
|
+
}
|
|
474
|
+
const nmIdx = url.lastIndexOf('/node_modules/');
|
|
475
|
+
if (nmIdx === -1)
|
|
476
|
+
continue;
|
|
477
|
+
const afterNm = url.substring(nmIdx + '/node_modules/'.length);
|
|
478
|
+
const parts = afterNm.split('/');
|
|
479
|
+
const pkg = parts[0].startsWith('@') ? parts.slice(0, 2).join('/') : parts[0];
|
|
480
|
+
if (!pkgUrlMap.has(pkg))
|
|
481
|
+
pkgUrlMap.set(pkg, url);
|
|
482
|
+
if (imp.namedBindings.length) {
|
|
483
|
+
if (!pkgBindings.has(pkg))
|
|
484
|
+
pkgBindings.set(pkg, new Set());
|
|
485
|
+
for (const binding of imp.namedBindings) {
|
|
486
|
+
if (binding.importedName)
|
|
487
|
+
pkgBindings.get(pkg).add(binding.importedName);
|
|
488
|
+
}
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
if (pkgUrlMap.size === 0)
|
|
492
|
+
return code;
|
|
493
|
+
const edits = [];
|
|
494
|
+
for (const imp of imports) {
|
|
495
|
+
if (!imp.hasOnlyNamedSpecifiers) {
|
|
496
|
+
continue;
|
|
497
|
+
}
|
|
498
|
+
const specifier = imp.source;
|
|
499
|
+
if (specifier.startsWith('/') || specifier.startsWith('.') || specifier.startsWith('http')) {
|
|
500
|
+
continue;
|
|
501
|
+
}
|
|
502
|
+
const parts = specifier.split('/');
|
|
503
|
+
const pkg = specifier.startsWith('@') ? parts.slice(0, 2).join('/') : parts[0];
|
|
504
|
+
const url = pkgUrlMap.get(pkg);
|
|
505
|
+
if (!url) {
|
|
506
|
+
continue;
|
|
507
|
+
}
|
|
508
|
+
const existing = pkgBindings.get(pkg) || new Set();
|
|
509
|
+
const newBindings = imp.namedBindings.filter((binding) => !existing.has(binding.importedName));
|
|
510
|
+
if (newBindings.length === 0) {
|
|
511
|
+
edits.push({ start: imp.start, end: imp.end, text: '' });
|
|
512
|
+
continue;
|
|
513
|
+
}
|
|
514
|
+
if (newBindings.length === imp.namedBindings.length) {
|
|
515
|
+
continue;
|
|
516
|
+
}
|
|
517
|
+
for (const binding of newBindings) {
|
|
518
|
+
existing.add(binding.importedName);
|
|
519
|
+
}
|
|
520
|
+
edits.push({
|
|
521
|
+
start: imp.start,
|
|
522
|
+
end: imp.end,
|
|
523
|
+
text: `import { ${newBindings.map((binding) => binding.text).join(', ')} } from ${JSON.stringify(url)};`,
|
|
524
|
+
});
|
|
525
|
+
}
|
|
526
|
+
if (!edits.length) {
|
|
527
|
+
return code;
|
|
528
|
+
}
|
|
529
|
+
let next = code;
|
|
530
|
+
for (const edit of edits.sort((left, right) => right.start - left.start)) {
|
|
531
|
+
next = next.slice(0, edit.start) + edit.text + next.slice(edit.end);
|
|
532
|
+
}
|
|
533
|
+
return next;
|
|
534
|
+
}
|
|
535
|
+
catch {
|
|
536
|
+
return code;
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
export function wrapCommonJsModuleForDevice(code) {
|
|
540
|
+
if (!code)
|
|
541
|
+
return code;
|
|
542
|
+
try {
|
|
543
|
+
const hasExportDefault = /\bexport\s+default\b/.test(code) || /export\s*\{\s*default\s*(?:as\s*default)?\s*\}/.test(code);
|
|
544
|
+
const hasNamedExports = /\bexport\s+(?:const|let|var|function|class|async)\b/.test(code) || /\bexport\s*\{/.test(code);
|
|
545
|
+
const hasCjsExports = /\bmodule\s*\.\s*exports\b/.test(code) || /\bexports\s*\.\s*\w/.test(code);
|
|
546
|
+
if (hasExportDefault || hasNamedExports || !hasCjsExports) {
|
|
547
|
+
return code;
|
|
548
|
+
}
|
|
549
|
+
const namedExports = new Set();
|
|
550
|
+
const exportsRe = /\bexports\s*\.\s*([A-Za-z_$][\w$]*)\s*=/g;
|
|
551
|
+
let match;
|
|
552
|
+
while ((match = exportsRe.exec(code)) !== null) {
|
|
553
|
+
const name = match[1];
|
|
554
|
+
if (name !== '__esModule' && name !== 'default') {
|
|
555
|
+
namedExports.add(name);
|
|
556
|
+
}
|
|
557
|
+
}
|
|
558
|
+
const defPropRe = /Object\s*\.\s*defineProperty\s*\(\s*exports\s*,\s*['"]([^'"]+)['"]/g;
|
|
559
|
+
while ((match = defPropRe.exec(code)) !== null) {
|
|
560
|
+
const name = match[1];
|
|
561
|
+
if (name !== '__esModule' && name !== 'default') {
|
|
562
|
+
namedExports.add(name);
|
|
563
|
+
}
|
|
564
|
+
}
|
|
565
|
+
let suffix = `\nvar __cjs_mod = module.exports;\nexport default __cjs_mod;\n`;
|
|
566
|
+
if (namedExports.size) {
|
|
567
|
+
const entries = Array.from(namedExports);
|
|
568
|
+
const temps = entries.map((name, i) => `var __cjs_e${i} = __cjs_mod[${JSON.stringify(name)}];`);
|
|
569
|
+
const reExports = entries.map((name, i) => `__cjs_e${i} as ${name}`);
|
|
570
|
+
suffix += `${temps.join(' ')}\nexport { ${reExports.join(', ')} };\n`;
|
|
571
|
+
}
|
|
572
|
+
const prelude = `var module = { exports: {} }; var exports = module.exports;\n` +
|
|
573
|
+
`var __ns_cjs_require_base = (typeof globalThis.__nsBaseRequire === 'function' ? globalThis.__nsBaseRequire : (typeof globalThis.__nsRequire === 'function' ? globalThis.__nsRequire : (typeof globalThis.require === 'function' ? globalThis.require : undefined)));\n` +
|
|
574
|
+
`var __ns_cjs_require_kind = (typeof globalThis.__nsBaseRequire === 'function' ? 'base-require' : (typeof globalThis.__nsRequire === 'function' ? 'vendor-require' : 'global-require'));\n` +
|
|
575
|
+
`var require = function(spec) {\n` +
|
|
576
|
+
` if (!__ns_cjs_require_base) { throw new Error('require is not defined'); }\n` +
|
|
577
|
+
// Resolve relative specifiers against the HTTP-served module's URL
|
|
578
|
+
// before delegating to NS's runtime require. Keeps ./sibling and
|
|
579
|
+
// ../parent requires routable through the HTTP ESM loader rather
|
|
580
|
+
// than NS's filesystem-based require.
|
|
581
|
+
` var __nsResolvedSpec = spec;\n` +
|
|
582
|
+
` try {\n` +
|
|
583
|
+
` if (typeof spec === 'string' && (spec.indexOf('./') === 0 || spec.indexOf('../') === 0)) {\n` +
|
|
584
|
+
` var __nsParentUrl = (typeof import.meta !== 'undefined' && import.meta && typeof import.meta.url === 'string') ? import.meta.url : null;\n` +
|
|
585
|
+
` if (__nsParentUrl) {\n` +
|
|
586
|
+
` var __nsResolvedUrl = new URL(spec, __nsParentUrl);\n` +
|
|
587
|
+
` if (!/\\.[A-Za-z0-9]+$/.test(__nsResolvedUrl.pathname.split('/').pop() || '')) {\n` +
|
|
588
|
+
` __nsResolvedUrl.pathname = __nsResolvedUrl.pathname.replace(/\\/+$/, '') + '.js';\n` +
|
|
589
|
+
` }\n` +
|
|
590
|
+
` __nsResolvedSpec = __nsResolvedUrl.href;\n` +
|
|
591
|
+
` }\n` +
|
|
592
|
+
` }\n` +
|
|
593
|
+
` } catch (e) {}\n` +
|
|
594
|
+
` try { var __nsRecord = globalThis.__NS_RECORD_MODULE_PROVENANCE__; if (typeof __nsRecord === 'function') { __nsRecord(String(__nsResolvedSpec), { kind: __ns_cjs_require_kind, specifier: String(spec), url: __nsResolvedSpec !== spec ? __nsResolvedSpec : undefined, via: 'cjs-wrapper', parent: (typeof import.meta !== 'undefined' && import.meta && import.meta.url) ? import.meta.url : undefined }); } } catch (e) {}\n` +
|
|
595
|
+
` var mod = __ns_cjs_require_base(__nsResolvedSpec);\n` +
|
|
596
|
+
` try {\n` +
|
|
597
|
+
` if (mod && (typeof mod === 'object' || typeof mod === 'function') && mod.default !== undefined) {\n` +
|
|
598
|
+
` var keys = [];\n` +
|
|
599
|
+
` try { keys = Object.keys(mod); } catch (e) {}\n` +
|
|
600
|
+
` var defaultOnly = keys.length === 1 && keys[0] === 'default';\n` +
|
|
601
|
+
` var esModuleOnly = keys.length === 2 && keys.indexOf('default') !== -1 && keys.indexOf('__esModule') !== -1;\n` +
|
|
602
|
+
` if (mod.__esModule || defaultOnly || esModuleOnly) { return mod.default; }\n` +
|
|
603
|
+
` }\n` +
|
|
604
|
+
` } catch (e) {}\n` +
|
|
605
|
+
` return mod;\n` +
|
|
606
|
+
`};\n`;
|
|
607
|
+
return `${prelude}${code}${suffix}`;
|
|
608
|
+
}
|
|
609
|
+
catch {
|
|
610
|
+
return code;
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
//# sourceMappingURL=websocket-served-module-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket-served-module-helpers.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/websocket-served-module-helpers.ts"],"names":[],"mappings":"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"}
|