@nativescript/vite 8.0.0-alpha.3 → 8.0.0-alpha.5
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/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/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/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-module-specifiers.js +12 -0
- package/hmr/server/websocket-module-specifiers.js.map +1 -1
- package/hmr/server/websocket-ns-m-finalize.d.ts +22 -0
- package/hmr/server/websocket-ns-m-finalize.js +88 -0
- package/hmr/server/websocket-ns-m-finalize.js.map +1 -0
- package/hmr/server/websocket-ns-m-paths.d.ts +3 -0
- package/hmr/server/websocket-ns-m-paths.js +47 -0
- package/hmr/server/websocket-ns-m-paths.js.map +1 -0
- package/hmr/server/websocket-ns-m-request.d.ts +35 -0
- package/hmr/server/websocket-ns-m-request.js +203 -0
- package/hmr/server/websocket-ns-m-request.js.map +1 -0
- package/hmr/server/websocket-runtime-compat.d.ts +19 -0
- package/hmr/server/websocket-runtime-compat.js +286 -0
- package/hmr/server/websocket-runtime-compat.js.map +1 -0
- package/hmr/server/websocket-served-module-helpers.d.ts +36 -0
- package/hmr/server/websocket-served-module-helpers.js +589 -0
- package/hmr/server/websocket-served-module-helpers.js.map +1 -0
- package/hmr/server/websocket-txn.d.ts +6 -0
- package/hmr/server/websocket-txn.js +45 -0
- package/hmr/server/websocket-txn.js.map +1 -0
- package/hmr/server/websocket-vendor-unifier.d.ts +10 -0
- package/hmr/server/websocket-vendor-unifier.js +51 -0
- package/hmr/server/websocket-vendor-unifier.js.map +1 -0
- package/hmr/server/websocket-vue-sfc.d.ts +27 -0
- package/hmr/server/websocket-vue-sfc.js +1117 -0
- package/hmr/server/websocket-vue-sfc.js.map +1 -0
- package/hmr/server/websocket.d.ts +1 -1
- package/hmr/server/websocket.js +327 -79
- package/hmr/server/websocket.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,589 @@
|
|
|
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
|
+
export function ensureDynamicHmrImportHelper(code) {
|
|
118
|
+
try {
|
|
119
|
+
if (!code.includes('__nsDynamicHmrImport('))
|
|
120
|
+
return code;
|
|
121
|
+
if (code.includes('const __nsDynamicHmrImport ='))
|
|
122
|
+
return code;
|
|
123
|
+
const helper = 'const __nsDynamicHmrImport = (spec) => {\n' +
|
|
124
|
+
" const __nsm = '/ns' + '/m';\n" +
|
|
125
|
+
" const __nsBootPrefix = typeof import.meta !== 'undefined' && import.meta && typeof import.meta.url === 'string' && import.meta.url.includes('/__ns_boot__/b1/') ? '/__ns_boot__/b1' : '';\n" +
|
|
126
|
+
" const __nsImporterTagMatch = typeof import.meta !== 'undefined' && import.meta && typeof import.meta.url === 'string' ? import.meta.url.match(/\\/__ns_hmr__\\/([^/]+)\\//) : null;\n" +
|
|
127
|
+
" const __nsImporterTag = __nsImporterTagMatch && __nsImporterTagMatch[1] ? decodeURIComponent(__nsImporterTagMatch[1]) : '';\n" +
|
|
128
|
+
" try { if (!spec || spec === '@') { return import(new URL(__nsm + '/__invalid_at__.mjs', import.meta.url).href); } } catch {}\n" +
|
|
129
|
+
' try {\n' +
|
|
130
|
+
" if (typeof spec === 'string' && spec.startsWith(__nsm + '/')) {\n" +
|
|
131
|
+
' const g = globalThis;\n' +
|
|
132
|
+
" const graphVersion = typeof g.__NS_HMR_GRAPH_VERSION__ === 'number' ? g.__NS_HMR_GRAPH_VERSION__ : 0;\n" +
|
|
133
|
+
" const nonce = typeof g.__NS_HMR_IMPORT_NONCE__ === 'number' ? g.__NS_HMR_IMPORT_NONCE__ : 0;\n" +
|
|
134
|
+
" const __nsActiveBootPrefix = graphVersion || nonce ? '' : __nsBootPrefix;\n" +
|
|
135
|
+
" if (spec.includes('/__ns_hmr__/')) {\n" +
|
|
136
|
+
" const __preservedSpec = !nonce && __nsBootPrefix && spec.startsWith(__nsm + '/__ns_hmr__/') && !spec.includes('/node_modules/') ? __nsm + __nsBootPrefix + spec.slice(__nsm.length) : spec;\n" +
|
|
137
|
+
' return import(new URL(__preservedSpec, import.meta.url).href);\n' +
|
|
138
|
+
' }\n' +
|
|
139
|
+
" if (spec.startsWith(__nsm + '/node_modules/')) { return import(new URL(spec, import.meta.url).href); }\n" +
|
|
140
|
+
" const tag = nonce ? `n${nonce}` : (graphVersion ? `v${graphVersion}` : (__nsImporterTag || 'live'));\n" +
|
|
141
|
+
" const nextPath = __nsm + __nsActiveBootPrefix + '/__ns_hmr__/' + encodeURIComponent(tag) + spec.slice(__nsm.length);\n" +
|
|
142
|
+
" const origin = typeof g.__NS_HTTP_ORIGIN__ === 'string' && /^https?:\\/\\//.test(g.__NS_HTTP_ORIGIN__) ? g.__NS_HTTP_ORIGIN__ : '';\n" +
|
|
143
|
+
' return import(origin ? origin + nextPath : new URL(nextPath, import.meta.url).href);\n' +
|
|
144
|
+
' }\n' +
|
|
145
|
+
' } catch {}\n' +
|
|
146
|
+
' return import(spec);\n' +
|
|
147
|
+
'};\n';
|
|
148
|
+
return helper + code;
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
return code;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
function extractExportedNames(code) {
|
|
155
|
+
return extractDirectExportedNames(code);
|
|
156
|
+
}
|
|
157
|
+
export async function expandStarExports(code, server, _projectRoot, verbose) {
|
|
158
|
+
const STAR_RE = /^[ \t]*(export\s+\*\s+from\s+["'])([^"']+)(["'];?)[ \t]*$/gm;
|
|
159
|
+
let match;
|
|
160
|
+
const replacements = [];
|
|
161
|
+
while ((match = STAR_RE.exec(code)) !== null) {
|
|
162
|
+
const url = match[2];
|
|
163
|
+
if (!url.includes('/node_modules/'))
|
|
164
|
+
continue;
|
|
165
|
+
replacements.push({ full: match[0], url, prefix: match[1], suffix: match[3] });
|
|
166
|
+
}
|
|
167
|
+
if (!replacements.length)
|
|
168
|
+
return code;
|
|
169
|
+
for (const rep of replacements) {
|
|
170
|
+
try {
|
|
171
|
+
let vitePath = rep.url.replace(/^https?:\/\/[^/]+/, '');
|
|
172
|
+
vitePath = vitePath.replace(/^\/ns\/m\//, '/');
|
|
173
|
+
vitePath = vitePath.replace(/^\/__ns_boot__\/[^/]+/, '');
|
|
174
|
+
vitePath = vitePath.replace(/\/__ns_hmr__\/[^/]+/, '');
|
|
175
|
+
const result = await server.transformRequest(vitePath);
|
|
176
|
+
if (!result?.code)
|
|
177
|
+
continue;
|
|
178
|
+
const names = extractExportedNames(result.code);
|
|
179
|
+
if (!names.length)
|
|
180
|
+
continue;
|
|
181
|
+
const explicit = `export { ${names.join(', ')} } from ${JSON.stringify(rep.url)};`;
|
|
182
|
+
code = code.replace(rep.full, explicit);
|
|
183
|
+
if (verbose) {
|
|
184
|
+
console.log(`[ns/m] expanded export* -> ${names.length} names from ${vitePath}`);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
catch { }
|
|
188
|
+
}
|
|
189
|
+
return code;
|
|
190
|
+
}
|
|
191
|
+
export function repairImportEqualsAssignments(code) {
|
|
192
|
+
try {
|
|
193
|
+
if (!code || typeof code !== 'string')
|
|
194
|
+
return code;
|
|
195
|
+
code = code.replace(/(^|\n)\s*import\s*\{([^}]+)\}\s*=\s*([^;]+);?/g, (_m, p1, specList, rhs) => {
|
|
196
|
+
const cleaned = String(specList)
|
|
197
|
+
.split(',')
|
|
198
|
+
.map((s) => s.trim())
|
|
199
|
+
.filter(Boolean)
|
|
200
|
+
.map((seg) => seg.replace(/\s+as\s+/i, ': '))
|
|
201
|
+
.join(', ');
|
|
202
|
+
return `${p1}const { ${cleaned} } = ${rhs};`;
|
|
203
|
+
});
|
|
204
|
+
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});`);
|
|
205
|
+
code = code.replace(/(^|\n)\s*import\s+([A-Za-z_$][\w$]*)\s*=\s*([^;]+);?/g, (_m, p1, id, rhs) => `${p1}const ${id} = ${rhs};`);
|
|
206
|
+
}
|
|
207
|
+
catch { }
|
|
208
|
+
return code;
|
|
209
|
+
}
|
|
210
|
+
export function ensureVersionedRtImports(code, origin, ver) {
|
|
211
|
+
if (!code || !origin || !Number.isFinite(ver))
|
|
212
|
+
return code;
|
|
213
|
+
code = code.replace(/(from\s+["'])(?:https?:\/\/[^"']+)?\/(?:\@ns|ns)\/rt(?:\/[\d]+)?(["'])/g, (_m, p1, p3) => `${p1}/ns/rt/${ver}${p3}`);
|
|
214
|
+
code = code.replace(/(import\(\s*["'])(?:https?:\/\/[^"']+)?\/(?:\@ns|ns)\/rt(?:\/[\d]+)?(["']\s*\))/g, (_m, p1, p3) => `${p1}/ns/rt/${ver}${p3}`);
|
|
215
|
+
return code;
|
|
216
|
+
}
|
|
217
|
+
export function stripViteDynamicImportVirtual(code) {
|
|
218
|
+
if (!/\/@id\/__x00__vite\/dynamic-import-helper/.test(code)) {
|
|
219
|
+
return code;
|
|
220
|
+
}
|
|
221
|
+
const original = code;
|
|
222
|
+
code = code.replace(/^[\t ]*import[^\n]*\/@id\/__x00__vite\/dynamic-import-helper[^\n]*$/gm, '');
|
|
223
|
+
if (/\/@id\/__x00__vite\/dynamic-import-helper/.test(code)) {
|
|
224
|
+
code = code.replace(/\/@id\/__x00__vite\/dynamic-import-helper[^"'`)]*/g, '/__NS_UNUSED_DYNAMIC_IMPORT_HELPER__');
|
|
225
|
+
}
|
|
226
|
+
if (!/__variableDynamicImportRuntimeHelper/.test(code)) {
|
|
227
|
+
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`;
|
|
228
|
+
code = inline + code;
|
|
229
|
+
}
|
|
230
|
+
if (code !== original) {
|
|
231
|
+
code = `// [hmr-sanitize] removed virtual dynamic-import-helper\n${code}`;
|
|
232
|
+
}
|
|
233
|
+
return code;
|
|
234
|
+
}
|
|
235
|
+
export function extractExportMetadata(code) {
|
|
236
|
+
const named = new Set();
|
|
237
|
+
let hasDefault = /\bexport\s+default\b/.test(code);
|
|
238
|
+
try {
|
|
239
|
+
for (const match of code.matchAll(/\bexport\s+(?:const|let|var|function|class)\s+([A-Za-z_$][A-Za-z0-9_$]*)/g)) {
|
|
240
|
+
if (match[1])
|
|
241
|
+
named.add(match[1]);
|
|
242
|
+
}
|
|
243
|
+
for (const match of code.matchAll(/\bexport\s*\{([^}]+)\}/g)) {
|
|
244
|
+
const inner = (match[1] || '')
|
|
245
|
+
.split(',')
|
|
246
|
+
.map((s) => s.trim())
|
|
247
|
+
.filter(Boolean);
|
|
248
|
+
for (const seg of inner) {
|
|
249
|
+
const direct = seg.match(/^([A-Za-z_$][A-Za-z0-9_$]*)(?:\s+as\s+([A-Za-z_$][A-Za-z0-9_$]*))?$/);
|
|
250
|
+
if (!direct)
|
|
251
|
+
continue;
|
|
252
|
+
const base = direct[1];
|
|
253
|
+
const alias = direct[2];
|
|
254
|
+
if (base === 'default') {
|
|
255
|
+
hasDefault = true;
|
|
256
|
+
continue;
|
|
257
|
+
}
|
|
258
|
+
named.add(alias || base);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
catch { }
|
|
263
|
+
named.delete('default');
|
|
264
|
+
return { hasDefault, named: Array.from(named) };
|
|
265
|
+
}
|
|
266
|
+
function shouldAllowLocalCoreSanitizerPaths(contextLabel) {
|
|
267
|
+
return /\bnode_modules\/@nativescript\/vite\/hmr\/(?:client|frameworks)\//.test(contextLabel);
|
|
268
|
+
}
|
|
269
|
+
export function assertNoOptimizedArtifacts(code, contextLabel) {
|
|
270
|
+
try {
|
|
271
|
+
const offenders = [];
|
|
272
|
+
const lines = code.split('\n');
|
|
273
|
+
const tests = [/\b__VITE_PLUGIN__\b/, /\b__VITE_PRELOAD__\b/];
|
|
274
|
+
const localCore = /(^|[^\w@])(?:\.\.?\/|\/)??@nativescript[\/_-]core\//i;
|
|
275
|
+
for (let i = 0; i < lines.length; i++) {
|
|
276
|
+
const line = lines[i];
|
|
277
|
+
for (const re of tests) {
|
|
278
|
+
if (re.test(line)) {
|
|
279
|
+
offenders.push(`${i + 1}: ${line.substring(0, 200)}`);
|
|
280
|
+
break;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
if (localCore.test(line)) {
|
|
284
|
+
const trimmed = line.trimStart();
|
|
285
|
+
if (trimmed.startsWith('//') || trimmed.startsWith('/*') || trimmed.startsWith('*')) {
|
|
286
|
+
continue;
|
|
287
|
+
}
|
|
288
|
+
if (shouldAllowLocalCoreSanitizerPaths(contextLabel)) {
|
|
289
|
+
continue;
|
|
290
|
+
}
|
|
291
|
+
offenders.push(`${i + 1}: ${line.substring(0, 200)} [local-core-path]`);
|
|
292
|
+
}
|
|
293
|
+
if (offenders.length >= 10)
|
|
294
|
+
break;
|
|
295
|
+
}
|
|
296
|
+
if (offenders.length) {
|
|
297
|
+
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');
|
|
298
|
+
const error = new Error(msg);
|
|
299
|
+
error.code = 'NS_SANITIZE_FAIL';
|
|
300
|
+
error.offenders = offenders;
|
|
301
|
+
throw error;
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
catch (error) {
|
|
305
|
+
throw error;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
export function ensureDestructureCoreImports(code) {
|
|
309
|
+
try {
|
|
310
|
+
let result = code;
|
|
311
|
+
let coreImportCounter = 0;
|
|
312
|
+
const toDestructure = (specList) => specList
|
|
313
|
+
.split(',')
|
|
314
|
+
.map((s) => s.trim())
|
|
315
|
+
.filter(Boolean)
|
|
316
|
+
.map((seg) => {
|
|
317
|
+
const match = seg.split(/\s+as\s+/i);
|
|
318
|
+
return match.length === 2 ? `${match[0].trim()}: ${match[1].trim()}` : seg;
|
|
319
|
+
})
|
|
320
|
+
.join(', ');
|
|
321
|
+
const reNamed = /(^|\n)\s*import\s*\{([^}]+)\}\s*from\s*["']((?:https?:\/\/[^"']+)?\/ns\/core(?:\/[\d]+)?(?:\?p=[^"']+)?)['"];?\s*/gm;
|
|
322
|
+
result = result.replace(reNamed, (_full, prefix, specList, src) => {
|
|
323
|
+
if (isDeepCoreSubpath(src))
|
|
324
|
+
return _full;
|
|
325
|
+
const tempName = `__ns_core_ns_re${coreImportCounter > 0 ? `_${coreImportCounter}` : ''}`;
|
|
326
|
+
coreImportCounter++;
|
|
327
|
+
const decl = `const { ${toDestructure(specList)} } = ${tempName};`;
|
|
328
|
+
return `${prefix}import ${tempName} from ${JSON.stringify(src)};\n${decl}\n`;
|
|
329
|
+
});
|
|
330
|
+
const reMixed = /(^|\n)\s*import\s+([A-Za-z_$][\w$]*)\s*,\s*\{([^}]+)\}\s*from\s*["']((?:https?:\/\/[^"']+)?\/ns\/core(?:\/[\d]+)?(?:\?p=[^"']+)?)['"];?\s*/gm;
|
|
331
|
+
result = result.replace(reMixed, (_full, prefix, defName, specList, src) => {
|
|
332
|
+
if (isDeepCoreSubpath(src))
|
|
333
|
+
return _full;
|
|
334
|
+
const decl = `const { ${toDestructure(specList)} } = ${defName};`;
|
|
335
|
+
return `${prefix}import ${defName} from ${JSON.stringify(src)};\n${decl}\n`;
|
|
336
|
+
});
|
|
337
|
+
return result;
|
|
338
|
+
}
|
|
339
|
+
catch {
|
|
340
|
+
return code;
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
export function ensureDestructureRtImports(code) {
|
|
344
|
+
try {
|
|
345
|
+
let result = code;
|
|
346
|
+
const toDestructure = (specList) => specList
|
|
347
|
+
.split(',')
|
|
348
|
+
.map((s) => s.trim())
|
|
349
|
+
.filter(Boolean)
|
|
350
|
+
.map((seg) => {
|
|
351
|
+
const match = seg.split(/\s+as\s+/i);
|
|
352
|
+
return match.length === 2 ? `${match[0].trim()}: ${match[1].trim()}` : seg;
|
|
353
|
+
})
|
|
354
|
+
.join(', ');
|
|
355
|
+
const reNamed = /(^|\n)\s*import\s*\{([^}]+)\}\s*from\s*["']((?:https?:\/\/[^"']+)?\/ns\/rt(?:\/[\d]+)?)['"];?\s*/gm;
|
|
356
|
+
result = result.replace(reNamed, (_full, prefix, specList, src) => {
|
|
357
|
+
const tempName = `__ns_rt_ns_re`;
|
|
358
|
+
const decl = `const { ${toDestructure(specList)} } = ${tempName};`;
|
|
359
|
+
return `${prefix}import ${tempName} from ${JSON.stringify(src)};\n${decl}\n`;
|
|
360
|
+
});
|
|
361
|
+
const reMixed = /(^|\n)\s*import\s+([A-Za-z_$][\w$]*)\s*,\s*\{([^}]+)\}\s*from\s*["']((?:https?:\/\/[^"']+)?\/ns\/rt(?:\/[\d]+)?)['"];?\s*/gm;
|
|
362
|
+
result = result.replace(reMixed, (_full, prefix, defName, specList, src) => {
|
|
363
|
+
const decl = `const { ${toDestructure(specList)} } = ${defName};`;
|
|
364
|
+
return `${prefix}import ${defName} from ${JSON.stringify(src)};\n${decl}\n`;
|
|
365
|
+
});
|
|
366
|
+
return result;
|
|
367
|
+
}
|
|
368
|
+
catch {
|
|
369
|
+
return code;
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
export function dedupeRtNamedImportsAgainstDestructures(code) {
|
|
373
|
+
try {
|
|
374
|
+
let result = code;
|
|
375
|
+
const rtDestructureRE = /(^|\n)\s*const\s*\{([^}]+)\}\s*=\s*(__ns_rt_ns(?:\d+|_re))\s*;?/gm;
|
|
376
|
+
const rtBound = new Set();
|
|
377
|
+
let match;
|
|
378
|
+
while ((match = rtDestructureRE.exec(result)) !== null) {
|
|
379
|
+
const specList = String(match[2] || '');
|
|
380
|
+
specList
|
|
381
|
+
.split(',')
|
|
382
|
+
.map((s) => s.trim())
|
|
383
|
+
.filter(Boolean)
|
|
384
|
+
.forEach((seg) => {
|
|
385
|
+
const bind = seg.includes(':') ? seg.split(':')[1].trim() : seg;
|
|
386
|
+
if (bind)
|
|
387
|
+
rtBound.add(bind);
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
if (!rtBound.size)
|
|
391
|
+
return result;
|
|
392
|
+
const rtNamedImportRE = /(^|\n)\s*import\s*\{([^}]+)\}\s*from\s*["']((?:https?:\/\/[^"']+)?\/ns\/rt(?:\/[\d]+)?)['"];?\s*/gm;
|
|
393
|
+
const edits = [];
|
|
394
|
+
while ((match = rtNamedImportRE.exec(result)) !== null) {
|
|
395
|
+
const full = match[0];
|
|
396
|
+
const prefix = match[1] || '';
|
|
397
|
+
const specList = String(match[2] || '');
|
|
398
|
+
const src = match[3];
|
|
399
|
+
const kept = [];
|
|
400
|
+
specList
|
|
401
|
+
.split(',')
|
|
402
|
+
.map((s) => s.trim())
|
|
403
|
+
.filter(Boolean)
|
|
404
|
+
.forEach((seg) => {
|
|
405
|
+
const importedName = seg.split(/\s+as\s+/i)[0].trim();
|
|
406
|
+
if (!rtBound.has(importedName))
|
|
407
|
+
kept.push(seg);
|
|
408
|
+
});
|
|
409
|
+
let replacement = '';
|
|
410
|
+
if (kept.length) {
|
|
411
|
+
replacement = `${prefix}import { ${kept.join(', ')} } from ${JSON.stringify(src)};`;
|
|
412
|
+
}
|
|
413
|
+
else {
|
|
414
|
+
replacement = prefix || '';
|
|
415
|
+
}
|
|
416
|
+
edits.push({
|
|
417
|
+
start: rtNamedImportRE.lastIndex - full.length,
|
|
418
|
+
end: rtNamedImportRE.lastIndex,
|
|
419
|
+
text: replacement,
|
|
420
|
+
});
|
|
421
|
+
}
|
|
422
|
+
if (edits.length) {
|
|
423
|
+
edits
|
|
424
|
+
.sort((a, b) => b.start - a.start)
|
|
425
|
+
.forEach((edit) => {
|
|
426
|
+
result = result.slice(0, edit.start) + edit.text + result.slice(edit.end);
|
|
427
|
+
});
|
|
428
|
+
}
|
|
429
|
+
return result;
|
|
430
|
+
}
|
|
431
|
+
catch {
|
|
432
|
+
return code;
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
export function deduplicateLinkerImports(code) {
|
|
436
|
+
if (!code)
|
|
437
|
+
return code;
|
|
438
|
+
try {
|
|
439
|
+
const imports = collectTopLevelImportRecords(code);
|
|
440
|
+
if (!imports.length) {
|
|
441
|
+
return code;
|
|
442
|
+
}
|
|
443
|
+
const pkgUrlMap = new Map();
|
|
444
|
+
const pkgBindings = new Map();
|
|
445
|
+
for (const imp of imports) {
|
|
446
|
+
const url = imp.source;
|
|
447
|
+
if (!/^https?:\/\//.test(url) && !url.startsWith('/')) {
|
|
448
|
+
continue;
|
|
449
|
+
}
|
|
450
|
+
const nmIdx = url.lastIndexOf('/node_modules/');
|
|
451
|
+
if (nmIdx === -1)
|
|
452
|
+
continue;
|
|
453
|
+
const afterNm = url.substring(nmIdx + '/node_modules/'.length);
|
|
454
|
+
const parts = afterNm.split('/');
|
|
455
|
+
const pkg = parts[0].startsWith('@') ? parts.slice(0, 2).join('/') : parts[0];
|
|
456
|
+
if (!pkgUrlMap.has(pkg))
|
|
457
|
+
pkgUrlMap.set(pkg, url);
|
|
458
|
+
if (imp.namedBindings.length) {
|
|
459
|
+
if (!pkgBindings.has(pkg))
|
|
460
|
+
pkgBindings.set(pkg, new Set());
|
|
461
|
+
for (const binding of imp.namedBindings) {
|
|
462
|
+
if (binding.importedName)
|
|
463
|
+
pkgBindings.get(pkg).add(binding.importedName);
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
if (pkgUrlMap.size === 0)
|
|
468
|
+
return code;
|
|
469
|
+
const edits = [];
|
|
470
|
+
for (const imp of imports) {
|
|
471
|
+
if (!imp.hasOnlyNamedSpecifiers) {
|
|
472
|
+
continue;
|
|
473
|
+
}
|
|
474
|
+
const specifier = imp.source;
|
|
475
|
+
if (specifier.startsWith('/') || specifier.startsWith('.') || specifier.startsWith('http')) {
|
|
476
|
+
continue;
|
|
477
|
+
}
|
|
478
|
+
const parts = specifier.split('/');
|
|
479
|
+
const pkg = specifier.startsWith('@') ? parts.slice(0, 2).join('/') : parts[0];
|
|
480
|
+
const url = pkgUrlMap.get(pkg);
|
|
481
|
+
if (!url) {
|
|
482
|
+
continue;
|
|
483
|
+
}
|
|
484
|
+
const existing = pkgBindings.get(pkg) || new Set();
|
|
485
|
+
const newBindings = imp.namedBindings.filter((binding) => !existing.has(binding.importedName));
|
|
486
|
+
if (newBindings.length === 0) {
|
|
487
|
+
edits.push({ start: imp.start, end: imp.end, text: '' });
|
|
488
|
+
continue;
|
|
489
|
+
}
|
|
490
|
+
if (newBindings.length === imp.namedBindings.length) {
|
|
491
|
+
continue;
|
|
492
|
+
}
|
|
493
|
+
for (const binding of newBindings) {
|
|
494
|
+
existing.add(binding.importedName);
|
|
495
|
+
}
|
|
496
|
+
edits.push({
|
|
497
|
+
start: imp.start,
|
|
498
|
+
end: imp.end,
|
|
499
|
+
text: `import { ${newBindings.map((binding) => binding.text).join(', ')} } from ${JSON.stringify(url)};`,
|
|
500
|
+
});
|
|
501
|
+
}
|
|
502
|
+
if (!edits.length) {
|
|
503
|
+
return code;
|
|
504
|
+
}
|
|
505
|
+
let next = code;
|
|
506
|
+
for (const edit of edits.sort((left, right) => right.start - left.start)) {
|
|
507
|
+
next = next.slice(0, edit.start) + edit.text + next.slice(edit.end);
|
|
508
|
+
}
|
|
509
|
+
return next;
|
|
510
|
+
}
|
|
511
|
+
catch {
|
|
512
|
+
return code;
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
export function wrapCommonJsModuleForDevice(code) {
|
|
516
|
+
if (!code)
|
|
517
|
+
return code;
|
|
518
|
+
try {
|
|
519
|
+
const hasExportDefault = /\bexport\s+default\b/.test(code) || /export\s*\{\s*default\s*(?:as\s*default)?\s*\}/.test(code);
|
|
520
|
+
const hasNamedExports = /\bexport\s+(?:const|let|var|function|class|async)\b/.test(code) || /\bexport\s*\{/.test(code);
|
|
521
|
+
const hasCjsExports = /\bmodule\s*\.\s*exports\b/.test(code) || /\bexports\s*\.\s*\w/.test(code);
|
|
522
|
+
if (hasExportDefault || hasNamedExports || !hasCjsExports) {
|
|
523
|
+
return code;
|
|
524
|
+
}
|
|
525
|
+
const namedExports = new Set();
|
|
526
|
+
const exportsRe = /\bexports\s*\.\s*([A-Za-z_$][\w$]*)\s*=/g;
|
|
527
|
+
let match;
|
|
528
|
+
while ((match = exportsRe.exec(code)) !== null) {
|
|
529
|
+
const name = match[1];
|
|
530
|
+
if (name !== '__esModule' && name !== 'default') {
|
|
531
|
+
namedExports.add(name);
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
const defPropRe = /Object\s*\.\s*defineProperty\s*\(\s*exports\s*,\s*['"]([^'"]+)['"]/g;
|
|
535
|
+
while ((match = defPropRe.exec(code)) !== null) {
|
|
536
|
+
const name = match[1];
|
|
537
|
+
if (name !== '__esModule' && name !== 'default') {
|
|
538
|
+
namedExports.add(name);
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
let suffix = `\nvar __cjs_mod = module.exports;\nexport default __cjs_mod;\n`;
|
|
542
|
+
if (namedExports.size) {
|
|
543
|
+
const entries = Array.from(namedExports);
|
|
544
|
+
const temps = entries.map((name, i) => `var __cjs_e${i} = __cjs_mod[${JSON.stringify(name)}];`);
|
|
545
|
+
const reExports = entries.map((name, i) => `__cjs_e${i} as ${name}`);
|
|
546
|
+
suffix += `${temps.join(' ')}\nexport { ${reExports.join(', ')} };\n`;
|
|
547
|
+
}
|
|
548
|
+
const prelude = `var module = { exports: {} }; var exports = module.exports;\n` +
|
|
549
|
+
`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` +
|
|
550
|
+
`var __ns_cjs_require_kind = (typeof globalThis.__nsBaseRequire === 'function' ? 'base-require' : (typeof globalThis.__nsRequire === 'function' ? 'vendor-require' : 'global-require'));\n` +
|
|
551
|
+
`var require = function(spec) {\n` +
|
|
552
|
+
` if (!__ns_cjs_require_base) { throw new Error('require is not defined'); }\n` +
|
|
553
|
+
// Resolve relative specifiers against the HTTP-served module's URL
|
|
554
|
+
// before delegating to NS's runtime require. Keeps ./sibling and
|
|
555
|
+
// ../parent requires routable through the HTTP ESM loader rather
|
|
556
|
+
// than NS's filesystem-based require.
|
|
557
|
+
` var __nsResolvedSpec = spec;\n` +
|
|
558
|
+
` try {\n` +
|
|
559
|
+
` if (typeof spec === 'string' && (spec.indexOf('./') === 0 || spec.indexOf('../') === 0)) {\n` +
|
|
560
|
+
` var __nsParentUrl = (typeof import.meta !== 'undefined' && import.meta && typeof import.meta.url === 'string') ? import.meta.url : null;\n` +
|
|
561
|
+
` if (__nsParentUrl) {\n` +
|
|
562
|
+
` var __nsResolvedUrl = new URL(spec, __nsParentUrl);\n` +
|
|
563
|
+
` if (!/\\.[A-Za-z0-9]+$/.test(__nsResolvedUrl.pathname.split('/').pop() || '')) {\n` +
|
|
564
|
+
` __nsResolvedUrl.pathname = __nsResolvedUrl.pathname.replace(/\\/+$/, '') + '.js';\n` +
|
|
565
|
+
` }\n` +
|
|
566
|
+
` __nsResolvedSpec = __nsResolvedUrl.href;\n` +
|
|
567
|
+
` }\n` +
|
|
568
|
+
` }\n` +
|
|
569
|
+
` } catch (e) {}\n` +
|
|
570
|
+
` 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` +
|
|
571
|
+
` var mod = __ns_cjs_require_base(__nsResolvedSpec);\n` +
|
|
572
|
+
` try {\n` +
|
|
573
|
+
` if (mod && (typeof mod === 'object' || typeof mod === 'function') && mod.default !== undefined) {\n` +
|
|
574
|
+
` var keys = [];\n` +
|
|
575
|
+
` try { keys = Object.keys(mod); } catch (e) {}\n` +
|
|
576
|
+
` var defaultOnly = keys.length === 1 && keys[0] === 'default';\n` +
|
|
577
|
+
` var esModuleOnly = keys.length === 2 && keys.indexOf('default') !== -1 && keys.indexOf('__esModule') !== -1;\n` +
|
|
578
|
+
` if (mod.__esModule || defaultOnly || esModuleOnly) { return mod.default; }\n` +
|
|
579
|
+
` }\n` +
|
|
580
|
+
` } catch (e) {}\n` +
|
|
581
|
+
` return mod;\n` +
|
|
582
|
+
`};\n`;
|
|
583
|
+
return `${prelude}${code}${suffix}`;
|
|
584
|
+
}
|
|
585
|
+
catch {
|
|
586
|
+
return code;
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
//# 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":"AAAA,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAElC,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAExE,MAAM,8BAA8B,GAAG,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,mBAAmB,CAAQ,CAAC;AAW5L,MAAM,UAAU,4BAA4B,CAAC,IAAY;IACxD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACnE,OAAO,EAAE,CAAC;IACX,CAAC;IAED,IAAI,CAAC;QACJ,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,EAAE;YAC5B,UAAU,EAAE,QAAQ;YACpB,OAAO,EAAE,8BAA8B;SACvC,CAAQ,CAAC;QACV,MAAM,IAAI,GAAG,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC;QAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACX,CAAC;QAED,OAAO,IAAI;aACT,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK,KAAK,QAAQ,CAAC;aAC9J,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;YACpB,KAAK,EAAE,IAAI,CAAC,KAAe;YAC3B,GAAG,EAAE,IAAI,CAAC,GAAa;YACvB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAe,EAAE,IAAI,CAAC,GAAa,CAAC;YAC1D,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAe;YACnC,sBAAsB,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACvJ,aAAa,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;gBAC5C,CAAC,CAAC,IAAI,CAAC,UAAU;qBACd,MAAM,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ,CAAC;qBAClH,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;oBACpB,YAAY,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC;oBACrG,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAe,EAAE,IAAI,CAAC,GAAa,CAAC;iBAC1D,CAAC,CAAC;gBACL,CAAC,CAAC,EAAE;SACL,CAAC,CAAC,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,EAAE,CAAC;IACX,CAAC;AACF,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACtD,MAAM,OAAO,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,QAAQ,GAAG,IAAI,CAAC;IACpB,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAChF,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,SAAS;QACV,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACrB,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC;AACpE,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,eAAuB;IAC/D,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1F,OAAO;QACN,kCAAkC;QAClC,gVAAgV,eAAe,kpBAAkpB;QACj/B,2NAA2N;QAC3N,EAAE;KACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,IAAY;IACnD,MAAM,OAAO,GAAG,mKAAmK,CAAC;IACpL,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,iCAAiC,CAAC,IAAY;IAC7D,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,sCAAsC,CAAC,EAAE,CAAC;QAC5D,OAAO,IAAI,CAAC;IACb,CAAC;IAED,IAAI,GAAG,CAAC,sCAAsC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,MAAM,GACX,gFAAgF;QAChF,yHAAyH;QACzH,kFAAkF;QAClF,oBAAoB;QACpB,yEAAyE;QACzE,4CAA4C;QAC5C,qCAAqC;QACrC,OAAO;QACP,WAAW;QACX,kCAAkC;QAClC,qBAAqB;QACrB,mCAAmC;QACnC,OAAO;QACP,MAAM,CAAC;IAER,OAAO,GAAG,MAAM,GAAG,IAAI,EAAE,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,IAAY,EAAE,OAAe;IAC3E,IAAI,CAAC;QACJ,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACtD,MAAM,OAAO,GAAG,kKAAkK,CAAC;QACnL,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,0BAA0B,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAC3F,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;YACvB,OAAO,OAAO,GAAG,QAAQ,CAAC;QAC3B,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,IAAY;IACxD,IAAI,CAAC;QACJ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YAAE,OAAO,IAAI,CAAC;QACzD,IAAI,IAAI,CAAC,QAAQ,CAAC,8BAA8B,CAAC;YAAE,OAAO,IAAI,CAAC;QAC/D,MAAM,MAAM,GACX,4CAA4C;YAC5C,iCAAiC;YACjC,+LAA+L;YAC/L,yLAAyL;YACzL,iIAAiI;YACjI,kIAAkI;YAClI,WAAW;YACX,uEAAuE;YACvE,+BAA+B;YAC/B,+GAA+G;YAC/G,sGAAsG;YACtG,mFAAmF;YACnF,8CAA8C;YAC9C,uMAAuM;YACvM,0EAA0E;YAC1E,WAAW;YACX,gHAAgH;YAChH,8GAA8G;YAC9G,8HAA8H;YAC9H,6IAA6I;YAC7I,8FAA8F;YAC9F,SAAS;YACT,gBAAgB;YAChB,0BAA0B;YAC1B,MAAM,CAAC;QACR,OAAO,MAAM,GAAG,IAAI,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAY;IACzC,OAAO,0BAA0B,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAY,EAAE,MAAyF,EAAE,YAAoB,EAAE,OAAiB;IACvL,MAAM,OAAO,GAAG,6DAA6D,CAAC;IAC9E,IAAI,KAA6B,CAAC;IAClC,MAAM,YAAY,GAAyE,EAAE,CAAC;IAE9F,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9C,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC;YAAE,SAAS;QAC9C,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,CAAC,YAAY,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IAEtC,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;QAChC,IAAI,CAAC;YACJ,IAAI,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;YACxD,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;YAC/C,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,uBAAuB,EAAE,EAAE,CAAC,CAAC;YACzD,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;YAEvD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;YACvD,IAAI,CAAC,MAAM,EAAE,IAAI;gBAAE,SAAS;YAE5B,MAAM,KAAK,GAAG,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,KAAK,CAAC,MAAM;gBAAE,SAAS;YAE5B,MAAM,QAAQ,GAAG,YAAY,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC;YACnF,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACxC,IAAI,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,8BAA8B,KAAK,CAAC,MAAM,eAAe,QAAQ,EAAE,CAAC,CAAC;YAClF,CAAC;QACF,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACX,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,IAAY;IACzD,IAAI,CAAC;QACJ,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QACnD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,gDAAgD,EAAE,CAAC,EAAE,EAAE,EAAU,EAAE,QAAgB,EAAE,GAAW,EAAE,EAAE;YACvH,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC;iBAC9B,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,OAAO,CAAC;iBACf,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;iBAC5C,IAAI,CAAC,IAAI,CAAC,CAAC;YACb,OAAO,GAAG,EAAE,WAAW,OAAO,QAAQ,GAAG,GAAG,CAAC;QAC9C,CAAC,CAAC,CAAC;QACH,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,iEAAiE,EAAE,CAAC,EAAE,EAAE,EAAU,EAAE,EAAU,EAAE,GAAW,EAAE,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,GAAG,IAAI,CAAC,CAAC;QACpK,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,uDAAuD,EAAE,CAAC,EAAE,EAAE,EAAU,EAAE,EAAU,EAAE,GAAW,EAAE,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC;IACzJ,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAY,EAAE,MAAc,EAAE,GAAW;IACjF,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC3D,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,yEAAyE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;IAC1I,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,kFAAkF,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,UAAU,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;IACnJ,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,IAAY;IACzD,IAAI,CAAC,2CAA2C,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAC;IACb,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,CAAC;IACtB,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,uEAAuE,EAAE,EAAE,CAAC,CAAC;IACjG,IAAI,2CAA2C,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5D,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,oDAAoD,EAAE,sCAAsC,CAAC,CAAC;IACnH,CAAC;IACD,IAAI,CAAC,sCAAsC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACxD,MAAM,MAAM,GAAG,seAAse,CAAC;QACtf,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACtB,CAAC;IACD,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;QACvB,IAAI,GAAG,4DAA4D,IAAI,EAAE,CAAC;IAC3E,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,IAAY;IACjD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAC;IAChC,IAAI,UAAU,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,IAAI,CAAC;QACJ,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,2EAA2E,CAAC,EAAE,CAAC;YAChH,IAAI,KAAK,CAAC,CAAC,CAAC;gBAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;YAC9D,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBAC5B,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,OAAO,CAAC,CAAC;YAClB,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,qEAAqE,CAAC,CAAC;gBAChG,IAAI,CAAC,MAAM;oBAAE,SAAS;gBACtB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACvB,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;gBACxB,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;oBACxB,UAAU,GAAG,IAAI,CAAC;oBAClB,SAAS;gBACV,CAAC;gBACD,KAAK,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;YAC1B,CAAC;QACF,CAAC;IACF,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACxB,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,kCAAkC,CAAC,YAAoB;IAC/D,OAAO,mEAAmE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC/F,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAY,EAAE,YAAoB;IAC5E,IAAI,CAAC;QACJ,MAAM,SAAS,GAAa,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,KAAK,GAAkB,CAAC,qBAAqB,EAAE,sBAAsB,CAAC,CAAC;QAC7E,MAAM,SAAS,GAAG,sDAAsD,CAAC;QACzE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,KAAK,MAAM,EAAE,IAAI,KAAK,EAAE,CAAC;gBACxB,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;oBACnB,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;oBACtD,MAAM;gBACP,CAAC;YACF,CAAC;YACD,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;oBACrF,SAAS;gBACV,CAAC;gBACD,IAAI,kCAAkC,CAAC,YAAY,CAAC,EAAE,CAAC;oBACtD,SAAS;gBACV,CAAC;gBACD,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAC;YACzE,CAAC;YACD,IAAI,SAAS,CAAC,MAAM,IAAI,EAAE;gBAAE,MAAM;QACnC,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACtB,MAAM,GAAG,GAAG,mEAAmE,YAAY,qFAAqF,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7P,MAAM,KAAK,GAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;YAClC,KAAK,CAAC,IAAI,GAAG,kBAAkB,CAAC;YAChC,KAAK,CAAC,SAAS,GAAG,SAAS,CAAC;YAC5B,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,KAAK,CAAC;IACb,CAAC;AACF,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,IAAY;IACxD,IAAI,CAAC;QACJ,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,IAAI,iBAAiB,GAAG,CAAC,CAAC;QAC1B,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAE,EAAE,CAC1C,QAAQ;aACN,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACZ,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACrC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAC5E,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,OAAO,GAAG,qHAAqH,CAAC;QACtI,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAc,EAAE,QAAgB,EAAE,GAAW,EAAE,EAAE;YACzF,IAAI,iBAAiB,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YACzC,MAAM,QAAQ,GAAG,kBAAkB,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,iBAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC1F,iBAAiB,EAAE,CAAC;YACpB,MAAM,IAAI,GAAG,WAAW,aAAa,CAAC,QAAQ,CAAC,QAAQ,QAAQ,GAAG,CAAC;YACnE,OAAO,GAAG,MAAM,UAAU,QAAQ,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC;QAC9E,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,8IAA8I,CAAC;QAC/J,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,QAAgB,EAAE,GAAW,EAAE,EAAE;YAC1G,IAAI,iBAAiB,CAAC,GAAG,CAAC;gBAAE,OAAO,KAAK,CAAC;YACzC,MAAM,IAAI,GAAG,WAAW,aAAa,CAAC,QAAQ,CAAC,QAAQ,OAAO,GAAG,CAAC;YAClE,OAAO,GAAG,MAAM,UAAU,OAAO,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC;QAC7E,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,IAAY;IACtD,IAAI,CAAC;QACJ,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,MAAM,aAAa,GAAG,CAAC,QAAgB,EAAE,EAAE,CAC1C,QAAQ;aACN,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;aACpB,MAAM,CAAC,OAAO,CAAC;aACf,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACZ,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;YACrC,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAC5E,CAAC,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,OAAO,GAAG,oGAAoG,CAAC;QACrH,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAc,EAAE,QAAgB,EAAE,GAAW,EAAE,EAAE;YACzF,MAAM,QAAQ,GAAG,eAAe,CAAC;YACjC,MAAM,IAAI,GAAG,WAAW,aAAa,CAAC,QAAQ,CAAC,QAAQ,QAAQ,GAAG,CAAC;YACnE,OAAO,GAAG,MAAM,UAAU,QAAQ,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC;QAC9E,CAAC,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,6HAA6H,CAAC;QAC9I,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,MAAc,EAAE,OAAe,EAAE,QAAgB,EAAE,GAAW,EAAE,EAAE;YAC1G,MAAM,IAAI,GAAG,WAAW,aAAa,CAAC,QAAQ,CAAC,QAAQ,OAAO,GAAG,CAAC;YAClE,OAAO,GAAG,MAAM,UAAU,OAAO,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC;QAC7E,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,MAAM,UAAU,uCAAuC,CAAC,IAAY;IACnE,IAAI,CAAC;QACJ,IAAI,MAAM,GAAG,IAAI,CAAC;QAClB,MAAM,eAAe,GAAG,mEAAmE,CAAC;QAC5F,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,IAAI,KAA6B,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACxC,QAAQ;iBACN,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,OAAO,CAAC;iBACf,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAChB,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;gBAChE,IAAI,IAAI;oBAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,OAAO,CAAC,IAAI;YAAE,OAAO,MAAM,CAAC;QACjC,MAAM,eAAe,GAAG,oGAAoG,CAAC;QAC7H,MAAM,KAAK,GAAwD,EAAE,CAAC;QACtE,OAAO,CAAC,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YACxD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACxC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,QAAQ;iBACN,KAAK,CAAC,GAAG,CAAC;iBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;iBACpB,MAAM,CAAC,OAAO,CAAC;iBACf,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAChB,MAAM,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBACtD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;oBAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChD,CAAC,CAAC,CAAC;YACJ,IAAI,WAAW,GAAG,EAAE,CAAC;YACrB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBACjB,WAAW,GAAG,GAAG,MAAM,YAAY,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YACrF,CAAC;iBAAM,CAAC;gBACP,WAAW,GAAG,MAAM,IAAI,EAAE,CAAC;YAC5B,CAAC;YACD,KAAK,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM;gBAC9C,GAAG,EAAE,eAAe,CAAC,SAAS;gBAC9B,IAAI,EAAE,WAAW;aACjB,CAAC,CAAC;QACJ,CAAC;QACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YAClB,KAAK;iBACH,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;iBACjC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACjB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAY;IACpD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,CAAC;QACJ,MAAM,OAAO,GAAG,4BAA4B,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC5C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAuB,CAAC;QAEnD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;YACvB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvD,SAAS;YACV,CAAC;YACD,MAAM,KAAK,GAAG,GAAG,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;YAChD,IAAI,KAAK,KAAK,CAAC,CAAC;gBAAE,SAAS;YAE3B,MAAM,OAAO,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC/D,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACjC,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAE9E,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;gBAAE,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;YAEjD,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;gBAC9B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;oBAAE,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;gBAC3D,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;oBACzC,IAAI,OAAO,CAAC,YAAY;wBAAE,WAAW,CAAC,GAAG,CAAC,GAAG,CAAE,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;gBAC3E,CAAC;YACF,CAAC;QACF,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEtC,MAAM,KAAK,GAAwD,EAAE,CAAC;QACtE,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,CAAC,GAAG,CAAC,sBAAsB,EAAE,CAAC;gBACjC,SAAS;YACV,CAAC;YACD,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC;YAC7B,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5F,SAAS;YACV,CAAC;YAED,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnC,MAAM,GAAG,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC/E,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;gBACV,SAAS;YACV,CAAC;YAED,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;YAC3D,MAAM,WAAW,GAAG,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;YAE/F,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC9B,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;gBACzD,SAAS;YACV,CAAC;YAED,IAAI,WAAW,CAAC,MAAM,KAAK,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;gBACrD,SAAS;YACV,CAAC;YAED,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;gBACnC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;YACpC,CAAC;YAED,KAAK,CAAC,IAAI,CAAC;gBACV,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,IAAI,EAAE,YAAY,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG;aACxG,CAAC,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACb,CAAC;QAED,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1E,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAAY;IACvD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IAEvB,IAAI,CAAC;QACJ,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,gDAAgD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1H,MAAM,eAAe,GAAG,qDAAqD,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACvH,MAAM,aAAa,GAAG,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjG,IAAI,gBAAgB,IAAI,eAAe,IAAI,CAAC,aAAa,EAAE,CAAC;YAC3D,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;QACvC,MAAM,SAAS,GAAG,0CAA0C,CAAC;QAC7D,IAAI,KAA6B,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAChD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACjD,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;QACF,CAAC;QAED,MAAM,SAAS,GAAG,qEAAqE,CAAC;QACxF,OAAO,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAChD,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,IAAI,IAAI,KAAK,YAAY,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBACjD,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;QACF,CAAC;QAED,IAAI,MAAM,GAAG,gEAAgE,CAAC;QAC9E,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC;YACvB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChG,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YACrE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QACvE,CAAC;QAED,MAAM,OAAO,GACZ,+DAA+D;YAC/D,wQAAwQ;YACxQ,2LAA2L;YAC3L,kCAAkC;YAClC,gFAAgF;YAChF,mEAAmE;YACnE,iEAAiE;YACjE,iEAAiE;YACjE,sCAAsC;YACtC,kCAAkC;YAClC,WAAW;YACX,kGAAkG;YAClG,kJAAkJ;YAClJ,8BAA8B;YAC9B,+DAA+D;YAC/D,4FAA4F;YAC5F,+FAA+F;YAC/F,aAAa;YACb,oDAAoD;YACpD,WAAW;YACX,SAAS;YACT,oBAAoB;YACpB,kaAAka;YACla,wDAAwD;YACxD,WAAW;YACX,yGAAyG;YACzG,wBAAwB;YACxB,uDAAuD;YACvD,uEAAuE;YACvE,sHAAsH;YACtH,oFAAoF;YACpF,SAAS;YACT,oBAAoB;YACpB,iBAAiB;YACjB,MAAM,CAAC;QAER,OAAO,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,EAAE,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,IAAI,CAAC;IACb,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ViteDevServer } from 'vite';
|
|
2
|
+
export interface RegisterTxnHandlerOptions {
|
|
3
|
+
resolveTxnIds(version: number, fallbackChangedIds: string[]): string[];
|
|
4
|
+
}
|
|
5
|
+
export declare function buildTxnModuleCode(version: number, ids: string[]): string;
|
|
6
|
+
export declare function registerTxnHandler(server: ViteDevServer, options: RegisterTxnHandlerOptions): void;
|