@nativescript/vite 8.0.0-alpha.2 → 8.0.0-alpha.4
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/angular.js +45 -8
- package/configuration/angular.js.map +1 -1
- package/configuration/base.js +1 -1
- package/configuration/base.js.map +1 -1
- package/helpers/commonjs-plugins.d.ts +5 -2
- package/helpers/commonjs-plugins.js +126 -0
- package/helpers/commonjs-plugins.js.map +1 -1
- package/helpers/main-entry.d.ts +1 -0
- package/helpers/main-entry.js +26 -85
- package/helpers/main-entry.js.map +1 -1
- package/hmr/client/index.js +72 -19
- package/hmr/client/index.js.map +1 -1
- package/hmr/client/utils.js +57 -6
- package/hmr/client/utils.js.map +1 -1
- package/hmr/entry-runtime.js +1 -1
- package/hmr/entry-runtime.js.map +1 -1
- package/hmr/frameworks/angular/client/index.d.ts +2 -1
- package/hmr/frameworks/angular/client/index.js +51 -2
- package/hmr/frameworks/angular/client/index.js.map +1 -1
- package/hmr/frameworks/angular/server/strategy.js +20 -5
- package/hmr/frameworks/angular/server/strategy.js.map +1 -1
- package/hmr/frameworks/typescript/server/strategy.js +8 -2
- package/hmr/frameworks/typescript/server/strategy.js.map +1 -1
- package/hmr/server/core-sanitize.d.ts +3 -2
- package/hmr/server/core-sanitize.js +34 -17
- package/hmr/server/core-sanitize.js.map +1 -1
- package/hmr/server/import-map.js +20 -14
- package/hmr/server/import-map.js.map +1 -1
- package/hmr/server/index.d.ts +2 -1
- package/hmr/server/index.js.map +1 -1
- package/hmr/server/runtime-graph-filter.d.ts +5 -0
- package/hmr/server/runtime-graph-filter.js +21 -0
- package/hmr/server/runtime-graph-filter.js.map +1 -0
- package/hmr/server/shared-transform-request.d.ts +12 -0
- package/hmr/server/shared-transform-request.js +137 -0
- package/hmr/server/shared-transform-request.js.map +1 -0
- package/hmr/server/vite-plugin.d.ts +21 -1
- package/hmr/server/vite-plugin.js +443 -22
- package/hmr/server/vite-plugin.js.map +1 -1
- package/hmr/server/websocket-angular-entry.d.ts +2 -0
- package/hmr/server/websocket-angular-entry.js +68 -0
- package/hmr/server/websocket-angular-entry.js.map +1 -0
- package/hmr/server/websocket-angular-hot-update.d.ts +61 -0
- package/hmr/server/websocket-angular-hot-update.js +239 -0
- package/hmr/server/websocket-angular-hot-update.js.map +1 -0
- package/hmr/server/websocket-core-bridge.d.ts +23 -0
- package/hmr/server/websocket-core-bridge.js +360 -0
- package/hmr/server/websocket-core-bridge.js.map +1 -0
- package/hmr/server/websocket-graph-upsert.d.ts +6 -0
- package/hmr/server/websocket-graph-upsert.js +13 -0
- package/hmr/server/websocket-graph-upsert.js.map +1 -0
- package/hmr/server/websocket-module-bindings.d.ts +6 -0
- package/hmr/server/websocket-module-bindings.js +471 -0
- package/hmr/server/websocket-module-bindings.js.map +1 -0
- package/hmr/server/websocket-module-specifiers.d.ts +37 -0
- package/hmr/server/websocket-module-specifiers.js +637 -0
- package/hmr/server/websocket-module-specifiers.js.map +1 -0
- package/hmr/server/websocket-ns-m-finalize.d.ts +32 -0
- package/hmr/server/websocket-ns-m-finalize.js +73 -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-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 +35 -0
- package/hmr/server/websocket-vue-sfc.js +1116 -0
- package/hmr/server/websocket-vue-sfc.js.map +1 -0
- package/hmr/server/websocket.d.ts +21 -74
- package/hmr/server/websocket.js +578 -3439
- package/hmr/server/websocket.js.map +1 -1
- package/hmr/shared/package-classifier.d.ts +9 -0
- package/hmr/shared/package-classifier.js +58 -0
- package/hmr/shared/package-classifier.js.map +1 -0
- package/hmr/shared/runtime/browser-runtime-contract.d.ts +64 -0
- package/hmr/shared/runtime/browser-runtime-contract.js +54 -0
- package/hmr/shared/runtime/browser-runtime-contract.js.map +1 -0
- package/hmr/shared/runtime/dev-overlay.d.ts +1 -1
- package/hmr/shared/runtime/dev-overlay.js +23 -12
- package/hmr/shared/runtime/dev-overlay.js.map +1 -1
- package/hmr/shared/runtime/root-placeholder.d.ts +1 -0
- package/hmr/shared/runtime/root-placeholder.js +430 -52
- package/hmr/shared/runtime/root-placeholder.js.map +1 -1
- package/hmr/shared/runtime/session-bootstrap.d.ts +1 -0
- package/hmr/shared/runtime/session-bootstrap.js +146 -0
- package/hmr/shared/runtime/session-bootstrap.js.map +1 -0
- package/hmr/shared/vendor/manifest.d.ts +2 -0
- package/hmr/shared/vendor/manifest.js +24 -10
- package/hmr/shared/vendor/manifest.js.map +1 -1
- package/package.json +7 -1
- package/runtime/core-aliases-early.js +83 -32
- package/runtime/core-aliases-early.js.map +1 -1
|
@@ -0,0 +1,286 @@
|
|
|
1
|
+
import { createRequire } from 'node:module';
|
|
2
|
+
import { existsSync, readFileSync } from 'fs';
|
|
3
|
+
import * as path from 'path';
|
|
4
|
+
import babelCore from '@babel/core';
|
|
5
|
+
import { getPackageJson, getProjectFilePath } from '../../helpers/project.js';
|
|
6
|
+
const pluginTransformTypescript = (() => {
|
|
7
|
+
const requireFromHere = createRequire(import.meta.url);
|
|
8
|
+
const loaded = requireFromHere('@babel/plugin-transform-typescript');
|
|
9
|
+
return loaded?.default || loaded;
|
|
10
|
+
})();
|
|
11
|
+
function setJavascriptResponseHeaders(res) {
|
|
12
|
+
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
13
|
+
res.setHeader('Content-Type', 'application/javascript; charset=utf-8');
|
|
14
|
+
res.setHeader('Cache-Control', 'no-store, no-cache, must-revalidate, max-age=0');
|
|
15
|
+
res.setHeader('Pragma', 'no-cache');
|
|
16
|
+
res.setHeader('Expires', '0');
|
|
17
|
+
}
|
|
18
|
+
function setNoStoreHeaders(res) {
|
|
19
|
+
res.setHeader('Cache-Control', 'no-store, no-cache, must-revalidate, max-age=0');
|
|
20
|
+
res.setHeader('Pragma', 'no-cache');
|
|
21
|
+
res.setHeader('Expires', '0');
|
|
22
|
+
}
|
|
23
|
+
export function buildNsRtBridgeModule(rtVer, requireGuardSnippet) {
|
|
24
|
+
const code = `// [ns-rt][v2.3] NativeScript-Vue runtime bridge (module-scoped cache, no globals)\n` +
|
|
25
|
+
`const __origin = ((typeof globalThis !== 'undefined' && globalThis && globalThis.__NS_HTTP_ORIGIN__) || (new URL(import.meta.url)).origin);\n` +
|
|
26
|
+
`let __ns_core_bridge = null; try { import(__origin + "/ns/core/${rtVer}").then(m => { __ns_core_bridge = m; }).catch(() => {}); } catch {}\n` +
|
|
27
|
+
`const g = globalThis;\n` +
|
|
28
|
+
`const reg = (g.__nsVendorRegistry ||= new Map());\n` +
|
|
29
|
+
`const req = reg && reg.get ? (g.__nsVendorRequire || g.__nsRequire || g.require) : (g.__nsRequire || g.require);\n` +
|
|
30
|
+
`let __cached_rt = null;\n` +
|
|
31
|
+
`let __cached_vm = null;\n` +
|
|
32
|
+
`const __RT_REALM_TAG = (globalThis.__NS_RT_REALM__ ||= Math.random().toString(36).slice(2));\n` +
|
|
33
|
+
`try { if (!(globalThis.__NS_RT_ONCE__ && globalThis.__NS_RT_ONCE__.eval)) { (globalThis.__NS_RT_ONCE__ ||= {}).eval = true; console.log('[ns-rt] evaluated', { rtRealm: __RT_REALM_TAG }); } } catch {}\n` +
|
|
34
|
+
`function __ensure(){\n` +
|
|
35
|
+
` if (__cached_rt) return __cached_rt;\n` +
|
|
36
|
+
` let vm = null;\n` +
|
|
37
|
+
` try { vm = reg && reg.has && reg.has('nativescript-vue') ? reg.get('nativescript-vue') : (typeof req==='function' ? req('nativescript-vue') : null); } catch {}\n` +
|
|
38
|
+
` if (!vm) { try { vm = reg && reg.has && reg.has('vue') ? reg.get('vue') : (typeof req==='function' ? req('vue') : null); } catch {} }\n` +
|
|
39
|
+
` const rt = (vm && (vm.default ?? vm)) || {};\n` +
|
|
40
|
+
` __cached_vm = vm;\n` +
|
|
41
|
+
` __cached_rt = rt;\n` +
|
|
42
|
+
` return rt;\n` +
|
|
43
|
+
`}\n` +
|
|
44
|
+
`try {\n` +
|
|
45
|
+
` const dev = typeof __DEV__ !== 'undefined' ? __DEV__ : true;\n` +
|
|
46
|
+
` if (dev) {\n` +
|
|
47
|
+
` const ns = (__ns_core_bridge && (__ns_core_bridge.__esModule && __ns_core_bridge.default ? __ns_core_bridge.default : (__ns_core_bridge.default || __ns_core_bridge))) || __ns_core_bridge || {};\n` +
|
|
48
|
+
` if (ns) {\n` +
|
|
49
|
+
` if (!g.Frame && ns.Frame) g.Frame = ns.Frame;\n` +
|
|
50
|
+
` if (!g.Page && ns.Page) g.Page = ns.Page;\n` +
|
|
51
|
+
` if (!g.Application && (ns.Application||ns.app||ns.application)) g.Application = (ns.Application||ns.app||ns.application);\n` +
|
|
52
|
+
` }\n` +
|
|
53
|
+
` }\n` +
|
|
54
|
+
`} catch {}\n` +
|
|
55
|
+
`const __get = (k) => { const rt = __ensure(); const v = rt && rt[k]; if (typeof v !== 'function' && v === undefined) { throw new Error('[ns-rt] missing export '+k); } return v; };\n` +
|
|
56
|
+
`export const __realm = __RT_REALM_TAG;\n` +
|
|
57
|
+
`export const defineComponent = (...a) => (__get('defineComponent'))(...a);\n` +
|
|
58
|
+
`export const resolveComponent = (...a) => (__ensure().resolveComponent)(...a);\n` +
|
|
59
|
+
`export const createVNode = (...a) => (__ensure().createVNode)(...a);\n` +
|
|
60
|
+
`export const createTextVNode = (...a) => (__ensure().createTextVNode)(...a);\n` +
|
|
61
|
+
`export const createCommentVNode = (...a) => (__ensure().createCommentVNode)(...a);\n` +
|
|
62
|
+
`export const Fragment = (__ensure().Fragment);\n` +
|
|
63
|
+
`export const Teleport = (__ensure().Teleport);\n` +
|
|
64
|
+
`export const Transition = (__ensure().Transition);\n` +
|
|
65
|
+
`export const TransitionGroup = (__ensure().TransitionGroup);\n` +
|
|
66
|
+
`export const KeepAlive = (__ensure().KeepAlive);\n` +
|
|
67
|
+
`export const Suspense = (__ensure().Suspense);\n` +
|
|
68
|
+
`export const withCtx = (...a) => (__ensure().withCtx)(...a);\n` +
|
|
69
|
+
`export const openBlock = (...a) => (__ensure().openBlock)(...a);\n` +
|
|
70
|
+
`export const createBlock = (...a) => (__ensure().createBlock)(...a);\n` +
|
|
71
|
+
`export const createElementVNode = (...a) => (__ensure().createElementVNode)(...a);\n` +
|
|
72
|
+
`export const createElementBlock = (...a) => (__ensure().createElementBlock)(...a);\n` +
|
|
73
|
+
`export const renderSlot = (...a) => (__ensure().renderSlot)(...a);\n` +
|
|
74
|
+
`export const mergeProps = (...a) => (__ensure().mergeProps)(...a);\n` +
|
|
75
|
+
`export const toHandlers = (...a) => (__ensure().toHandlers)(...a);\n` +
|
|
76
|
+
`export const renderList = (...a) => (__ensure().renderList)(...a);\n` +
|
|
77
|
+
`export const normalizeProps = (...a) => (__ensure().normalizeProps)(...a);\n` +
|
|
78
|
+
`export const guardReactiveProps = (...a) => (__ensure().guardReactiveProps)(...a);\n` +
|
|
79
|
+
`export const normalizeClass = (...a) => (__ensure().normalizeClass)(...a);\n` +
|
|
80
|
+
`export const normalizeStyle = (...a) => (__ensure().normalizeStyle)(...a);\n` +
|
|
81
|
+
`export const toDisplayString = (...a) => (__ensure().toDisplayString)(...a);\n` +
|
|
82
|
+
`export const withDirectives = (...a) => (__ensure().withDirectives)(...a);\n` +
|
|
83
|
+
`export const resolveDirective = (...a) => (__ensure().resolveDirective)(...a);\n` +
|
|
84
|
+
`export const withModifiers = (...a) => (__ensure().withModifiers)(...a);\n` +
|
|
85
|
+
`export const withKeys = (...a) => (__ensure().withKeys)(...a);\n` +
|
|
86
|
+
`export const resolveDynamicComponent = (...a) => (__ensure().resolveDynamicComponent)(...a);\n` +
|
|
87
|
+
`export const isVNode = (...a) => (__ensure().isVNode)(...a);\n` +
|
|
88
|
+
`export const cloneVNode = (...a) => (__ensure().cloneVNode)(...a);\n` +
|
|
89
|
+
`export const isRef = (...a) => (__ensure().isRef)(...a);\n` +
|
|
90
|
+
`export const ref = (...a) => (__ensure().ref)(...a);\n` +
|
|
91
|
+
`export const shallowRef = (...a) => (__ensure().shallowRef)(...a);\n` +
|
|
92
|
+
`export const unref = (...a) => (__ensure().unref)(...a);\n` +
|
|
93
|
+
`export const computed = (...a) => (__ensure().computed)(...a);\n` +
|
|
94
|
+
`export const reactive = (...a) => (__ensure().reactive)(...a);\n` +
|
|
95
|
+
`export const readonly = (...a) => (__ensure().readonly)(...a);\n` +
|
|
96
|
+
`export const isReactive = (...a) => (__ensure().isReactive)(...a);\n` +
|
|
97
|
+
`export const isReadonly = (...a) => (__ensure().isReadonly)(...a);\n` +
|
|
98
|
+
`export const toRaw = (...a) => (__ensure().toRaw)(...a);\n` +
|
|
99
|
+
`export const markRaw = (...a) => (__ensure().markRaw)(...a);\n` +
|
|
100
|
+
`export const shallowReactive = (...a) => (__ensure().shallowReactive)(...a);\n` +
|
|
101
|
+
`export const shallowReadonly = (...a) => (__ensure().shallowReadonly)(...a);\n` +
|
|
102
|
+
`export const watch = (...a) => (__ensure().watch)(...a);\n` +
|
|
103
|
+
`export const watchEffect = (...a) => (__ensure().watchEffect)(...a);\n` +
|
|
104
|
+
`export const watchPostEffect = (...a) => (__ensure().watchPostEffect)(...a);\n` +
|
|
105
|
+
`export const watchSyncEffect = (...a) => (__ensure().watchSyncEffect)(...a);\n` +
|
|
106
|
+
`export const onBeforeMount = (...a) => (__ensure().onBeforeMount)(...a);\n` +
|
|
107
|
+
`export const onMounted = (...a) => (__ensure().onMounted)(...a);\n` +
|
|
108
|
+
`export const onBeforeUpdate = (...a) => (__ensure().onBeforeUpdate)(...a);\n` +
|
|
109
|
+
`export const onUpdated = (...a) => (__ensure().onUpdated)(...a);\n` +
|
|
110
|
+
`export const onBeforeUnmount = (...a) => (__ensure().onBeforeUnmount)(...a);\n` +
|
|
111
|
+
`export const onUnmounted = (...a) => (__ensure().onUnmounted)(...a);\n` +
|
|
112
|
+
`export const onActivated = (...a) => (__ensure().onActivated)(...a);\n` +
|
|
113
|
+
`export const onDeactivated = (...a) => (__ensure().onDeactivated)(...a);\n` +
|
|
114
|
+
`export const onErrorCaptured = (...a) => (__ensure().onErrorCaptured)(...a);\n` +
|
|
115
|
+
`export const onRenderTracked = (...a) => (__ensure().onRenderTracked)(...a);\n` +
|
|
116
|
+
`export const onRenderTriggered = (...a) => (__ensure().onRenderTriggered)(...a);\n` +
|
|
117
|
+
`export const nextTick = (...a) => (__ensure().nextTick)(...a);\n` +
|
|
118
|
+
`export const h = (...a) => (__ensure().h)(...a);\n` +
|
|
119
|
+
`export const provide = (...a) => (__ensure().provide)(...a);\n` +
|
|
120
|
+
`export const inject = (...a) => (__ensure().inject)(...a);\n` +
|
|
121
|
+
`export const vShow = (__ensure().vShow);\n` +
|
|
122
|
+
`export const createApp = (...a) => (__ensure().createApp)(...a);\n` +
|
|
123
|
+
`export const registerElement = (...a) => (__ensure().registerElement)(...a);\n` +
|
|
124
|
+
`export const $navigateTo = (...a) => { const vm = (__cached_vm || (void __ensure(), __cached_vm)); const rt = __ensure(); try { if (!(g && g.Frame)) { const ns = (__ns_core_bridge && (__ns_core_bridge.__esModule && __ns_core_bridge.default ? __ns_core_bridge.default : (__ns_core_bridge.default || __ns_core_bridge))) || __ns_core_bridge || {}; if (ns) { if (!g.Frame && ns.Frame) g.Frame = ns.Frame; if (!g.Page && ns.Page) g.Page = ns.Page; if (!g.Application && (ns.Application||ns.app||ns.application)) g.Application = (ns.Application||ns.app||ns.application); } } } catch {} try { const hmrRealm = (g && g.__NS_HMR_REALM__) || 'unknown'; const hasTop = !!(g && g.Frame && g.Frame.topmost && g.Frame.topmost()); const top = hasTop ? g.Frame.topmost() : null; const ctor = top && top.constructor && top.constructor.name; } catch {} if (g && typeof g.__nsNavigateUsingApp === 'function') { try { return g.__nsNavigateUsingApp(...a); } catch (e) { try { console.error('[ns-rt] $navigateTo app navigator error', e); } catch {} throw e; } } try { console.error('[ns-rt] $navigateTo unavailable: app navigator missing'); } catch {} throw new Error('$navigateTo unavailable: app navigator missing'); } ;\n` +
|
|
125
|
+
`export const $navigateBack = (...a) => { const vm = (__cached_vm || (void __ensure(), __cached_vm)); const rt = __ensure(); const impl = (vm && (vm.$navigateBack || (vm.default && vm.default.$navigateBack))) || (rt && (rt.$navigateBack || (rt.runtimeHelpers && rt.runtimeHelpers.navigateBack))); let res; try { const via = (impl && (impl === (vm && vm.$navigateBack) || impl === (vm && vm.default && vm.default.$navigateBack))) ? 'vm' : (impl ? 'rt' : 'none'); } catch {} try { if (typeof impl === 'function') res = impl(...a); } catch {} try { const top = (g && g.Frame && g.Frame.topmost && g.Frame.topmost()); if (!res && top && top.canGoBack && top.canGoBack()) { res = top.goBack(); } } catch {} try { const hook = g && (g.__NS_HMR_ON_NAVIGATE_BACK || g.__NS_HMR_ON_BACK || g.__nsAttemptBackRemount); if (typeof hook === 'function') hook(); } catch {} return res; }\n` +
|
|
126
|
+
`export const $showModal = (...a) => { const vm = (__cached_vm || (void __ensure(), __cached_vm)); const rt = __ensure(); const impl = (vm && (vm.$showModal || (vm.default && vm.default.$showModal))) || (rt && (rt.$showModal || (rt.runtimeHelpers && rt.runtimeHelpers.showModal))); try { if (typeof impl === 'function') return impl(...a); } catch (e) { } return undefined; }\n` +
|
|
127
|
+
`export default {\n` +
|
|
128
|
+
` defineComponent, resolveComponent, createVNode, createTextVNode, createCommentVNode,\n` +
|
|
129
|
+
` Fragment, Teleport, Transition, TransitionGroup, KeepAlive, Suspense, withCtx, openBlock,\n` +
|
|
130
|
+
` createBlock, createElementVNode, createElementBlock, renderSlot, mergeProps, toHandlers,\n` +
|
|
131
|
+
` renderList, normalizeProps, guardReactiveProps, normalizeClass, normalizeStyle, toDisplayString,\n` +
|
|
132
|
+
` withDirectives, resolveDirective, withModifiers, withKeys, resolveDynamicComponent,\n` +
|
|
133
|
+
` isVNode, cloneVNode, isRef, ref, shallowRef, unref, computed, reactive, readonly, isReactive, isReadonly, toRaw, markRaw, shallowReactive, shallowReadonly,\n` +
|
|
134
|
+
` watch, watchEffect, watchPostEffect, watchSyncEffect, onBeforeMount, onMounted, onBeforeUpdate, onUpdated,\n` +
|
|
135
|
+
` onBeforeUnmount, onUnmounted, onActivated, onDeactivated, onErrorCaptured, onRenderTracked, onRenderTriggered, nextTick, h, provide, inject, vShow, createApp, registerElement,\n` +
|
|
136
|
+
` $navigateTo, $navigateBack, $showModal\n` +
|
|
137
|
+
`};\n`;
|
|
138
|
+
return requireGuardSnippet + code;
|
|
139
|
+
}
|
|
140
|
+
async function loadEntryRuntimeContent(verbose) {
|
|
141
|
+
let content = '';
|
|
142
|
+
try {
|
|
143
|
+
const requireFromHere = createRequire(import.meta.url);
|
|
144
|
+
const entryRtPath = requireFromHere.resolve('@nativescript/vite/hmr/entry-runtime.js');
|
|
145
|
+
content = readFileSync(entryRtPath, 'utf-8');
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
try {
|
|
149
|
+
const tsPath = path.resolve(path.dirname(new URL(import.meta.url).pathname), '..', 'entry-runtime.ts');
|
|
150
|
+
if (existsSync(tsPath)) {
|
|
151
|
+
const tsSource = readFileSync(tsPath, 'utf-8');
|
|
152
|
+
const result = babelCore.transformSync(tsSource, {
|
|
153
|
+
filename: tsPath,
|
|
154
|
+
plugins: [[pluginTransformTypescript, { isTSX: false, allowDeclareFields: true }]],
|
|
155
|
+
sourceType: 'module',
|
|
156
|
+
});
|
|
157
|
+
if (result?.code) {
|
|
158
|
+
content = result.code;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
catch (transformError) {
|
|
163
|
+
if (verbose)
|
|
164
|
+
console.warn('[hmr-http] entry-runtime.ts transform failed', transformError);
|
|
165
|
+
}
|
|
166
|
+
if (!content) {
|
|
167
|
+
content = 'export default async function start(){ console.error("[/ns/entry-rt] not found"); }\n';
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
return content;
|
|
171
|
+
}
|
|
172
|
+
function resolveMainEntry(appRootDir, defaultMainEntry, defaultMainEntryVirtual) {
|
|
173
|
+
let mainEntry = '/';
|
|
174
|
+
try {
|
|
175
|
+
const pkg = getPackageJson();
|
|
176
|
+
const main = pkg?.main || defaultMainEntry;
|
|
177
|
+
const abs = getProjectFilePath(main).replace(/\\/g, '/');
|
|
178
|
+
const marker = `/${appRootDir}/`;
|
|
179
|
+
const index = abs.indexOf(marker);
|
|
180
|
+
mainEntry = index >= 0 ? abs.substring(index) : defaultMainEntryVirtual;
|
|
181
|
+
}
|
|
182
|
+
catch { }
|
|
183
|
+
return mainEntry;
|
|
184
|
+
}
|
|
185
|
+
export function buildNsEntryWrapper(params) {
|
|
186
|
+
const { origin, mainEntry, ver, verbose, requireGuardSnippet } = params;
|
|
187
|
+
let code = requireGuardSnippet +
|
|
188
|
+
`// [ns-entry][v${ver}] wrapper (script-safe) bytes will follow\n` +
|
|
189
|
+
`(async function(){\n` +
|
|
190
|
+
` let origin = ${JSON.stringify(origin)}; const main = ${JSON.stringify(mainEntry)}; const __ns_graph_ver = ${JSON.stringify(ver)};\n` +
|
|
191
|
+
` try { const __b = (globalThis && globalThis.__NS_ENTRY_BASE__) ? String(globalThis.__NS_ENTRY_BASE__) : ''; if (__b) { try { const __o = new URL(__b).origin; if (__o) origin = __o; } catch {} } } catch {}\n` +
|
|
192
|
+
` const __VERBOSE__ = (typeof __NS_ENV_VERBOSE__ !== 'undefined' && __NS_ENV_VERBOSE__) || (globalThis && globalThis.process && globalThis.process.env && globalThis.process.env.verbose) || (globalThis && globalThis.__NS_ENV_VERBOSE__) || ${JSON.stringify(!!verbose)};\n` +
|
|
193
|
+
` if (__VERBOSE__) console.info('[ns-entry][wrapper] start', { origin, main, ver: __ns_graph_ver });\n` +
|
|
194
|
+
` async function __ns_import_entry_rt(u){\n` +
|
|
195
|
+
` try { const r = await fetch(u); const t = await r.text(); if (__VERBOSE__) console.info('[ns-entry][wrapper] entry-rt fetched bytes', (t&&t.length)||0);\n` +
|
|
196
|
+
` let s = t.replace(/export\\s+default\\s+async\\s+function\\s+([A-Za-z0-9_$]+)?/,'globalThis.__NS_START_ENTRY__=async function $1')\n` +
|
|
197
|
+
` .replace(/export\\s+default\\s+function\\s+([A-Za-z0-9_$]+)?/,'globalThis.__NS_START_ENTRY__=function $1');\n` +
|
|
198
|
+
` if (String(s).indexOf('__NS_START_ENTRY__') === -1) { s = 'globalThis.__NS_START_ENTRY__=' + s.replace(/export\\s+default\\s*/,''); }\n` +
|
|
199
|
+
` try { (0,eval)(s); } catch (ee) { console.error('[ns-entry][wrapper] eval entry-rt failed', ee && (ee.message||ee)); throw ee; }\n` +
|
|
200
|
+
` const fn = globalThis.__NS_START_ENTRY__; if (!fn) { throw new Error('entry-rt missing __NS_START_ENTRY__'); }\n` +
|
|
201
|
+
` return { default: fn };\n` +
|
|
202
|
+
` } catch(e) { console.error('[ns-entry][wrapper] entry-rt fetch/eval failed', e && (e.message||e)); throw e; }\n` +
|
|
203
|
+
` }\n` +
|
|
204
|
+
` const __entryRtUrl = '/ns/entry-rt?v=' + String(__ns_graph_ver);\n` +
|
|
205
|
+
` let __mod; try { __mod = await __ns_import_entry_rt(__entryRtUrl); if (__VERBOSE__) console.info('[ns-entry][wrapper] entry-rt ready'); } catch (e) { console.error('[ns-entry][wrapper] failed to prepare entry-rt', e && (e.message||e)); throw e; }\n` +
|
|
206
|
+
` const startEntry = (__mod && (__mod.default || __mod));\n` +
|
|
207
|
+
` try { await startEntry({ origin, main, ver: __ns_graph_ver, verbose: !!__VERBOSE__ }); if (__VERBOSE__) console.info('[ns-entry][wrapper] startEntry() resolved'); } catch (e) { console.error('[ns-entry][wrapper] startEntry() failed', e && (e.message||e)); throw e; }\n` +
|
|
208
|
+
`})();\n`;
|
|
209
|
+
code += `\n//# sourceURL=${origin}/ns/entry`;
|
|
210
|
+
return code;
|
|
211
|
+
}
|
|
212
|
+
export function registerRuntimeCompatHandlers(server, options) {
|
|
213
|
+
const { verbose, requireGuardSnippet, appRootDir, defaultMainEntry, defaultMainEntryVirtual, getGraphVersion, getServerOrigin } = options;
|
|
214
|
+
server.middlewares.use(async (req, res, next) => {
|
|
215
|
+
try {
|
|
216
|
+
const urlObj = new URL(req.url || '', 'http://localhost');
|
|
217
|
+
if (!(urlObj.pathname === '/ns/rt' || /^\/ns\/rt\/[\d]+$/.test(urlObj.pathname)))
|
|
218
|
+
return next();
|
|
219
|
+
setJavascriptResponseHeaders(res);
|
|
220
|
+
const rtVerSeg = urlObj.pathname.replace(/^\/ns\/rt\/?/, '');
|
|
221
|
+
const rtVer = /^[0-9]+$/.test(rtVerSeg) ? rtVerSeg : String(getGraphVersion() || 0);
|
|
222
|
+
res.statusCode = 200;
|
|
223
|
+
res.end(buildNsRtBridgeModule(rtVer, requireGuardSnippet));
|
|
224
|
+
}
|
|
225
|
+
catch {
|
|
226
|
+
res.statusCode = 500;
|
|
227
|
+
res.end('export {}\n');
|
|
228
|
+
}
|
|
229
|
+
});
|
|
230
|
+
server.middlewares.use(async (req, res, next) => {
|
|
231
|
+
try {
|
|
232
|
+
const urlObj = new URL(req.url || '', 'http://localhost');
|
|
233
|
+
if (urlObj.pathname !== '/ns/entry-rt')
|
|
234
|
+
return next();
|
|
235
|
+
try {
|
|
236
|
+
if (verbose) {
|
|
237
|
+
const remoteAddress = req.socket?.remoteAddress;
|
|
238
|
+
const remotePort = req.socket?.remotePort;
|
|
239
|
+
console.log('[hmr-http] GET /ns/entry-rt from', remoteAddress + (remotePort ? ':' + remotePort : ''));
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
catch { }
|
|
243
|
+
setJavascriptResponseHeaders(res);
|
|
244
|
+
const content = await loadEntryRuntimeContent(verbose);
|
|
245
|
+
console.log('[hmr-http] /ns/entry-rt serving', content.length, 'bytes');
|
|
246
|
+
res.statusCode = 200;
|
|
247
|
+
res.end(content);
|
|
248
|
+
}
|
|
249
|
+
catch (error) {
|
|
250
|
+
console.warn('[hmr-http] /ns/entry-rt error', error);
|
|
251
|
+
next();
|
|
252
|
+
}
|
|
253
|
+
});
|
|
254
|
+
server.middlewares.use(async (req, res, next) => {
|
|
255
|
+
try {
|
|
256
|
+
const urlObj = new URL(req.url || '', 'http://localhost');
|
|
257
|
+
if (!(urlObj.pathname === '/ns/entry' || /^\/ns\/entry\/[\d]+$/.test(urlObj.pathname)))
|
|
258
|
+
return next();
|
|
259
|
+
try {
|
|
260
|
+
if (verbose) {
|
|
261
|
+
const remoteAddress = req.socket?.remoteAddress;
|
|
262
|
+
const remotePort = req.socket?.remotePort;
|
|
263
|
+
console.log('[hmr-http] GET /ns/entry from', remoteAddress + (remotePort ? ':' + remotePort : ''));
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
catch { }
|
|
267
|
+
const verSeg = urlObj.pathname.replace(/^\/ns\/entry\/?/, '');
|
|
268
|
+
setNoStoreHeaders(res);
|
|
269
|
+
const ver = /^[0-9]+$/.test(verSeg) ? verSeg : String(getGraphVersion() || 0);
|
|
270
|
+
const origin = getServerOrigin(server) || `${urlObj.protocol}//${urlObj.host}`;
|
|
271
|
+
const mainEntry = resolveMainEntry(appRootDir, defaultMainEntry, defaultMainEntryVirtual);
|
|
272
|
+
res.statusCode = 200;
|
|
273
|
+
res.end(buildNsEntryWrapper({
|
|
274
|
+
origin,
|
|
275
|
+
mainEntry,
|
|
276
|
+
ver,
|
|
277
|
+
verbose,
|
|
278
|
+
requireGuardSnippet,
|
|
279
|
+
}));
|
|
280
|
+
}
|
|
281
|
+
catch {
|
|
282
|
+
next();
|
|
283
|
+
}
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
//# sourceMappingURL=websocket-runtime-compat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket-runtime-compat.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/websocket-runtime-compat.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
function setJavascriptResponseHeaders(res) {
|
|
2
|
+
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
3
|
+
res.setHeader('Content-Type', 'application/javascript; charset=utf-8');
|
|
4
|
+
res.setHeader('Cache-Control', 'no-store, no-cache, must-revalidate, max-age=0');
|
|
5
|
+
res.setHeader('Pragma', 'no-cache');
|
|
6
|
+
res.setHeader('Expires', '0');
|
|
7
|
+
}
|
|
8
|
+
export function buildTxnModuleCode(version, ids) {
|
|
9
|
+
const lines = [];
|
|
10
|
+
lines.push(`// [txn] version=${version} count=${ids.length}`);
|
|
11
|
+
for (const id of ids) {
|
|
12
|
+
const isVue = /\.vue$/i.test(id);
|
|
13
|
+
const safeId = id.startsWith('/') ? id : `/${id}`;
|
|
14
|
+
const importPath = isVue ? `/ns/asm/${version}?path=${encodeURIComponent(safeId)}` : `/ns/m${safeId}`;
|
|
15
|
+
lines.push(`await import(${JSON.stringify(importPath)});`);
|
|
16
|
+
}
|
|
17
|
+
lines.push('export default true;');
|
|
18
|
+
return lines.join('\n');
|
|
19
|
+
}
|
|
20
|
+
export function registerTxnHandler(server, options) {
|
|
21
|
+
server.middlewares.use(async (req, res, next) => {
|
|
22
|
+
try {
|
|
23
|
+
const urlObj = new URL(req.url || '', 'http://localhost');
|
|
24
|
+
const pathname = urlObj.pathname || '';
|
|
25
|
+
if (!pathname.startsWith('/ns/txn'))
|
|
26
|
+
return next();
|
|
27
|
+
const versionSegment = pathname.replace('/ns/txn', '').replace(/^\//, '');
|
|
28
|
+
const version = Number(versionSegment || urlObj.searchParams.get('v') || 0);
|
|
29
|
+
const fallbackChangedIds = (urlObj.searchParams.get('ids') || '')
|
|
30
|
+
.split(',')
|
|
31
|
+
.map((value) => value.trim())
|
|
32
|
+
.filter(Boolean);
|
|
33
|
+
const ids = options.resolveTxnIds(version, fallbackChangedIds);
|
|
34
|
+
const code = buildTxnModuleCode(version, ids);
|
|
35
|
+
setJavascriptResponseHeaders(res);
|
|
36
|
+
res.statusCode = 200;
|
|
37
|
+
res.end(code);
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
return next();
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=websocket-txn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket-txn.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/websocket-txn.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ViteDevServer } from 'vite';
|
|
2
|
+
import type { FrameworkServerStrategy } from './framework-strategy.js';
|
|
3
|
+
export interface RegisterVendorUnifierHandlerOptions {
|
|
4
|
+
getGraphVersion(): number;
|
|
5
|
+
getServerOrigin(server: ViteDevServer): string;
|
|
6
|
+
getStrategy(): FrameworkServerStrategy;
|
|
7
|
+
}
|
|
8
|
+
export declare function shouldHandleVendorUnifierPath(pathname: string): boolean;
|
|
9
|
+
export declare function maybeRewriteVendorModule(code: string, strategy: FrameworkServerStrategy, origin: string, version: number): string;
|
|
10
|
+
export declare function registerVendorUnifierHandler(server: ViteDevServer, options: RegisterVendorUnifierHandlerOptions): void;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
function setJavascriptResponseHeaders(res) {
|
|
2
|
+
res.setHeader('Access-Control-Allow-Origin', '*');
|
|
3
|
+
res.setHeader('Content-Type', 'application/javascript; charset=utf-8');
|
|
4
|
+
res.setHeader('Cache-Control', 'no-store, no-cache, must-revalidate, max-age=0');
|
|
5
|
+
res.setHeader('Pragma', 'no-cache');
|
|
6
|
+
res.setHeader('Expires', '0');
|
|
7
|
+
}
|
|
8
|
+
export function shouldHandleVendorUnifierPath(pathname) {
|
|
9
|
+
if (/^\/ns\/(?:rt|core)(?:\/|$)/.test(pathname)) {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
if (!/(\.m?js$|\.ts$|\/node_modules\/|\/\.vite\/deps\/|^\/@id\/|^\/@fs\/)/.test(pathname)) {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
if (/\.css($|\?)/.test(pathname)) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
export function maybeRewriteVendorModule(code, strategy, origin, version) {
|
|
21
|
+
const rewrite = strategy.rewriteVendorSpec;
|
|
22
|
+
if (!rewrite) {
|
|
23
|
+
return code;
|
|
24
|
+
}
|
|
25
|
+
return rewrite(code, origin, version);
|
|
26
|
+
}
|
|
27
|
+
export function registerVendorUnifierHandler(server, options) {
|
|
28
|
+
server.middlewares.use(async (req, res, next) => {
|
|
29
|
+
try {
|
|
30
|
+
const reqUrl = req.url || '';
|
|
31
|
+
const urlObj = new URL(reqUrl, 'http://localhost');
|
|
32
|
+
const pathname = urlObj.pathname || '';
|
|
33
|
+
if (!shouldHandleVendorUnifierPath(pathname))
|
|
34
|
+
return next();
|
|
35
|
+
const transformed = await server.transformRequest(reqUrl);
|
|
36
|
+
if (!transformed?.code)
|
|
37
|
+
return next();
|
|
38
|
+
const strategy = options.getStrategy();
|
|
39
|
+
const rewritten = maybeRewriteVendorModule(transformed.code, strategy, options.getServerOrigin(server), options.getGraphVersion());
|
|
40
|
+
if (rewritten === transformed.code)
|
|
41
|
+
return next();
|
|
42
|
+
setJavascriptResponseHeaders(res);
|
|
43
|
+
res.statusCode = 200;
|
|
44
|
+
res.end(rewritten);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return next();
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=websocket-vendor-unifier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket-vendor-unifier.js","sourceRoot":"","sources":["../../../../../packages/vite/hmr/server/websocket-vendor-unifier.ts"],"names":[],"mappings":"AAUA,SAAS,4BAA4B,CAAC,GAAQ;IAC7C,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;IAClD,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,uCAAuC,CAAC,CAAC;IACvE,GAAG,CAAC,SAAS,CAAC,eAAe,EAAE,gDAAgD,CAAC,CAAC;IACjF,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACpC,GAAG,CAAC,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,QAAgB;IAC7D,IAAI,4BAA4B,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjD,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,CAAC,qEAAqE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3F,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,IAAI,CAAC;AACb,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,IAAY,EAAE,QAAiC,EAAE,MAAc,EAAE,OAAe;IACxH,MAAM,OAAO,GAAG,QAAQ,CAAC,iBAAiB,CAAC;IAC3C,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,OAAO,IAAI,CAAC;IACb,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,MAAqB,EAAE,OAA4C;IAC/G,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC/C,IAAI,CAAC;YACJ,MAAM,MAAM,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;YACnD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;YACvC,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC;gBAAE,OAAO,IAAI,EAAE,CAAC;YAE5D,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAC1D,IAAI,CAAC,WAAW,EAAE,IAAI;gBAAE,OAAO,IAAI,EAAE,CAAC;YAEtC,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;YACvC,MAAM,SAAS,GAAG,wBAAwB,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,CAAC;YACnI,IAAI,SAAS,KAAK,WAAW,CAAC,IAAI;gBAAE,OAAO,IAAI,EAAE,CAAC;YAElD,4BAA4B,CAAC,GAAG,CAAC,CAAC;YAClC,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC;YACrB,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACpB,CAAC;QAAC,MAAM,CAAC;YACR,OAAO,IAAI,EAAE,CAAC;QACf,CAAC;IACF,CAAC,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ViteDevServer } from 'vite';
|
|
2
|
+
import type { FrameworkServerStrategy } from './framework-strategy.js';
|
|
3
|
+
type ProcessCodeForDeviceFn = (code: string, isVitePreBundled: boolean, preserveVendorImports?: boolean, isNodeModule?: boolean, sourceId?: string) => string;
|
|
4
|
+
type RewriteImportsFn = (code: string, importerPath: string, sfcFileMap: Map<string, string>, depFileMap: Map<string, string>, projectRoot: string, verbose?: boolean, outputDirOverrideRel?: string, httpOrigin?: string, resolveVendorAsHttp?: boolean) => string;
|
|
5
|
+
export interface RegisterVueSfcHandlersOptions {
|
|
6
|
+
verbose: boolean;
|
|
7
|
+
requireGuardSnippet: string;
|
|
8
|
+
appVirtualWithSlash: string;
|
|
9
|
+
sfcFileMap: Map<string, string>;
|
|
10
|
+
depFileMap: Map<string, string>;
|
|
11
|
+
getGraphVersion(): number;
|
|
12
|
+
getStrategy(): FrameworkServerStrategy;
|
|
13
|
+
getServerOrigin(server: ViteDevServer): string;
|
|
14
|
+
cleanCode(code: string): string;
|
|
15
|
+
processCodeForDevice: ProcessCodeForDeviceFn;
|
|
16
|
+
rewriteImports: RewriteImportsFn;
|
|
17
|
+
ensureVariableDynamicImportHelper(code: string): string;
|
|
18
|
+
ensureGuardPlainDynamicImports(code: string, origin: string): string;
|
|
19
|
+
ensureVersionedRtImports(code: string, origin: string, version: number): string;
|
|
20
|
+
ensureVersionedCoreImports(code: string, origin: string, version: number): string;
|
|
21
|
+
ensureDestructureCoreImports(code: string): string;
|
|
22
|
+
extractExportMetadata(code: string): {
|
|
23
|
+
hasDefault: boolean;
|
|
24
|
+
named: string[];
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
export interface ParsedVersionedEndpointPath {
|
|
28
|
+
verFromPath: string | null;
|
|
29
|
+
pathStyle: string;
|
|
30
|
+
}
|
|
31
|
+
export declare function parseVersionedEndpointPath(basePath: string, pathname: string): ParsedVersionedEndpointPath;
|
|
32
|
+
export declare function buildSfcDelegatedModule(importerPath: string, version: string): string;
|
|
33
|
+
export declare function templateHasRender(templateCode: string): boolean;
|
|
34
|
+
export declare function registerVueSfcHandlers(server: ViteDevServer, options: RegisterVueSfcHandlersOptions): void;
|
|
35
|
+
export {};
|