Ajout de promotion et de commande
This commit is contained in:
+1134
File diff suppressed because it is too large
Load Diff
+24
@@ -0,0 +1,24 @@
|
||||
const context = (() => {
|
||||
if (typeof globalThis !== "undefined") {
|
||||
return globalThis;
|
||||
} else if (typeof self !== "undefined") {
|
||||
return self;
|
||||
} else if (typeof window !== "undefined") {
|
||||
return window;
|
||||
} else {
|
||||
return Function("return this")();
|
||||
}
|
||||
})();
|
||||
const defines = __DEFINES__;
|
||||
Object.keys(defines).forEach((key) => {
|
||||
const segments = key.split(".");
|
||||
let target = context;
|
||||
for (let i = 0; i < segments.length; i++) {
|
||||
const segment = segments[i];
|
||||
if (i === segments.length - 1) {
|
||||
target[segment] = defines[key];
|
||||
} else {
|
||||
target = target[segment] || (target[segment] = {});
|
||||
}
|
||||
}
|
||||
});
|
||||
+3987
File diff suppressed because it is too large
Load Diff
+553
File diff suppressed because it is too large
Load Diff
+822
File diff suppressed because it is too large
Load Diff
+8218
File diff suppressed because one or more lines are too long
+49531
File diff suppressed because one or more lines are too long
+7113
File diff suppressed because it is too large
Load Diff
+949
File diff suppressed because it is too large
Load Diff
+149
@@ -0,0 +1,149 @@
|
||||
import path, { resolve } from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
import { readFileSync } from 'node:fs';
|
||||
|
||||
const { version } = JSON.parse(
|
||||
readFileSync(new URL("../../package.json", import.meta.url)).toString()
|
||||
);
|
||||
const ROLLUP_HOOKS = [
|
||||
"options",
|
||||
"buildStart",
|
||||
"buildEnd",
|
||||
"renderStart",
|
||||
"renderError",
|
||||
"renderChunk",
|
||||
"writeBundle",
|
||||
"generateBundle",
|
||||
"banner",
|
||||
"footer",
|
||||
"augmentChunkHash",
|
||||
"outputOptions",
|
||||
"renderDynamicImport",
|
||||
"resolveFileUrl",
|
||||
"resolveImportMeta",
|
||||
"intro",
|
||||
"outro",
|
||||
"closeBundle",
|
||||
"closeWatcher",
|
||||
"load",
|
||||
"moduleParsed",
|
||||
"watchChange",
|
||||
"resolveDynamicImport",
|
||||
"resolveId",
|
||||
"shouldTransformCachedModule",
|
||||
"transform",
|
||||
"onLog"
|
||||
];
|
||||
const VERSION = version;
|
||||
const DEFAULT_MAIN_FIELDS = [
|
||||
"browser",
|
||||
"module",
|
||||
"jsnext:main",
|
||||
// moment still uses this...
|
||||
"jsnext"
|
||||
];
|
||||
const DEFAULT_CLIENT_MAIN_FIELDS = Object.freeze(DEFAULT_MAIN_FIELDS);
|
||||
const DEFAULT_SERVER_MAIN_FIELDS = Object.freeze(
|
||||
DEFAULT_MAIN_FIELDS.filter((f) => f !== "browser")
|
||||
);
|
||||
const DEV_PROD_CONDITION = `development|production`;
|
||||
const DEFAULT_CONDITIONS = ["module", "browser", "node", DEV_PROD_CONDITION];
|
||||
const DEFAULT_CLIENT_CONDITIONS = Object.freeze(
|
||||
DEFAULT_CONDITIONS.filter((c) => c !== "node")
|
||||
);
|
||||
const DEFAULT_SERVER_CONDITIONS = Object.freeze(
|
||||
DEFAULT_CONDITIONS.filter((c) => c !== "browser")
|
||||
);
|
||||
const ESBUILD_MODULES_TARGET = [
|
||||
"es2020",
|
||||
"edge88",
|
||||
"firefox78",
|
||||
"chrome87",
|
||||
"safari14"
|
||||
];
|
||||
const DEFAULT_CONFIG_FILES = [
|
||||
"vite.config.js",
|
||||
"vite.config.mjs",
|
||||
"vite.config.ts",
|
||||
"vite.config.cjs",
|
||||
"vite.config.mts",
|
||||
"vite.config.cts"
|
||||
];
|
||||
const JS_TYPES_RE = /\.(?:j|t)sx?$|\.mjs$/;
|
||||
const CSS_LANGS_RE = /\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)/;
|
||||
const OPTIMIZABLE_ENTRY_RE = /\.[cm]?[jt]s$/;
|
||||
const SPECIAL_QUERY_RE = /[?&](?:worker|sharedworker|raw|url)\b/;
|
||||
const FS_PREFIX = `/@fs/`;
|
||||
const CLIENT_PUBLIC_PATH = `/@vite/client`;
|
||||
const ENV_PUBLIC_PATH = `/@vite/env`;
|
||||
const VITE_PACKAGE_DIR = resolve(
|
||||
// import.meta.url is `dist/node/constants.js` after bundle
|
||||
fileURLToPath(import.meta.url),
|
||||
"../../.."
|
||||
);
|
||||
const CLIENT_ENTRY = resolve(VITE_PACKAGE_DIR, "dist/client/client.mjs");
|
||||
const ENV_ENTRY = resolve(VITE_PACKAGE_DIR, "dist/client/env.mjs");
|
||||
const CLIENT_DIR = path.dirname(CLIENT_ENTRY);
|
||||
const KNOWN_ASSET_TYPES = [
|
||||
// images
|
||||
"apng",
|
||||
"bmp",
|
||||
"png",
|
||||
"jpe?g",
|
||||
"jfif",
|
||||
"pjpeg",
|
||||
"pjp",
|
||||
"gif",
|
||||
"svg",
|
||||
"ico",
|
||||
"webp",
|
||||
"avif",
|
||||
"cur",
|
||||
"jxl",
|
||||
// media
|
||||
"mp4",
|
||||
"webm",
|
||||
"ogg",
|
||||
"mp3",
|
||||
"wav",
|
||||
"flac",
|
||||
"aac",
|
||||
"opus",
|
||||
"mov",
|
||||
"m4a",
|
||||
"vtt",
|
||||
// fonts
|
||||
"woff2?",
|
||||
"eot",
|
||||
"ttf",
|
||||
"otf",
|
||||
// other
|
||||
"webmanifest",
|
||||
"pdf",
|
||||
"txt"
|
||||
];
|
||||
const DEFAULT_ASSETS_RE = new RegExp(
|
||||
`\\.(` + KNOWN_ASSET_TYPES.join("|") + `)(\\?.*)?$`,
|
||||
"i"
|
||||
);
|
||||
const DEP_VERSION_RE = /[?&](v=[\w.-]+)\b/;
|
||||
const loopbackHosts = /* @__PURE__ */ new Set([
|
||||
"localhost",
|
||||
"127.0.0.1",
|
||||
"::1",
|
||||
"0000:0000:0000:0000:0000:0000:0000:0001"
|
||||
]);
|
||||
const wildcardHosts = /* @__PURE__ */ new Set([
|
||||
"0.0.0.0",
|
||||
"::",
|
||||
"0000:0000:0000:0000:0000:0000:0000:0000"
|
||||
]);
|
||||
const DEFAULT_DEV_PORT = 5173;
|
||||
const DEFAULT_PREVIEW_PORT = 4173;
|
||||
const DEFAULT_ASSETS_INLINE_LIMIT = 4096;
|
||||
const defaultAllowedOrigins = /^https?:\/\/(?:(?:[^:]+\.)?localhost|127\.0\.0\.1|\[::1\])(?::\d+)?$/;
|
||||
const METADATA_FILENAME = "_metadata.json";
|
||||
const ERR_OPTIMIZE_DEPS_PROCESSING_ERROR = "ERR_OPTIMIZE_DEPS_PROCESSING_ERROR";
|
||||
const ERR_FILE_NOT_FOUND_IN_OPTIMIZED_DEP_DIR = "ERR_FILE_NOT_FOUND_IN_OPTIMIZED_DEP_DIR";
|
||||
|
||||
export { CLIENT_DIR, CLIENT_ENTRY, CLIENT_PUBLIC_PATH, CSS_LANGS_RE, DEFAULT_ASSETS_INLINE_LIMIT, DEFAULT_ASSETS_RE, DEFAULT_CLIENT_CONDITIONS, DEFAULT_CLIENT_MAIN_FIELDS, DEFAULT_CONFIG_FILES, DEFAULT_DEV_PORT, DEFAULT_PREVIEW_PORT, DEFAULT_SERVER_CONDITIONS, DEFAULT_SERVER_MAIN_FIELDS, DEP_VERSION_RE, DEV_PROD_CONDITION, ENV_ENTRY, ENV_PUBLIC_PATH, ERR_FILE_NOT_FOUND_IN_OPTIMIZED_DEP_DIR, ERR_OPTIMIZE_DEPS_PROCESSING_ERROR, ESBUILD_MODULES_TARGET, FS_PREFIX, JS_TYPES_RE, KNOWN_ASSET_TYPES, METADATA_FILENAME, OPTIMIZABLE_ENTRY_RE, ROLLUP_HOOKS, SPECIAL_QUERY_RE, VERSION, VITE_PACKAGE_DIR, defaultAllowedOrigins, loopbackHosts, wildcardHosts };
|
||||
+4222
File diff suppressed because it is too large
Load Diff
+194
@@ -0,0 +1,194 @@
|
||||
export { parseAst, parseAstAsync } from 'rollup/parseAst';
|
||||
import { a as arraify, i as isInNodeModules, D as DevEnvironment } from './chunks/dep-D4NMHUTW.js';
|
||||
export { B as BuildEnvironment, f as build, m as buildErrorMessage, g as createBuilder, F as createFilter, h as createIdResolver, I as createLogger, n as createRunnableDevEnvironment, c as createServer, y as createServerHotChannel, w as createServerModuleRunner, x as createServerModuleRunnerTransport, d as defineConfig, v as fetchModule, j as formatPostcssSourceMap, L as isFileLoadingAllowed, K as isFileServingAllowed, q as isRunnableDevEnvironment, l as loadConfigFromFile, M as loadEnv, E as mergeAlias, C as mergeConfig, z as moduleRunnerTransform, A as normalizePath, o as optimizeDeps, p as perEnvironmentPlugin, b as perEnvironmentState, k as preprocessCSS, e as preview, r as resolveConfig, N as resolveEnvPrefix, G as rollupVersion, u as runnerImport, J as searchForWorkspaceRoot, H as send, s as sortUserPlugins, t as transformWithEsbuild } from './chunks/dep-D4NMHUTW.js';
|
||||
export { defaultAllowedOrigins, DEFAULT_CLIENT_CONDITIONS as defaultClientConditions, DEFAULT_CLIENT_MAIN_FIELDS as defaultClientMainFields, DEFAULT_SERVER_CONDITIONS as defaultServerConditions, DEFAULT_SERVER_MAIN_FIELDS as defaultServerMainFields, VERSION as version } from './constants.js';
|
||||
export { version as esbuildVersion } from 'esbuild';
|
||||
import 'node:fs';
|
||||
import 'node:path';
|
||||
import 'node:fs/promises';
|
||||
import 'node:url';
|
||||
import 'node:util';
|
||||
import 'node:perf_hooks';
|
||||
import 'node:module';
|
||||
import 'node:crypto';
|
||||
import 'picomatch';
|
||||
import 'path';
|
||||
import 'fs';
|
||||
import 'fdir';
|
||||
import 'node:child_process';
|
||||
import 'node:http';
|
||||
import 'node:https';
|
||||
import 'tty';
|
||||
import 'util';
|
||||
import 'net';
|
||||
import 'events';
|
||||
import 'url';
|
||||
import 'http';
|
||||
import 'stream';
|
||||
import 'os';
|
||||
import 'child_process';
|
||||
import 'node:os';
|
||||
import 'node:net';
|
||||
import 'node:dns';
|
||||
import 'vite/module-runner';
|
||||
import 'node:buffer';
|
||||
import 'module';
|
||||
import 'node:readline';
|
||||
import 'node:process';
|
||||
import 'node:events';
|
||||
import 'tinyglobby';
|
||||
import 'crypto';
|
||||
import 'node:assert';
|
||||
import 'node:v8';
|
||||
import 'node:worker_threads';
|
||||
import 'https';
|
||||
import 'tls';
|
||||
import 'zlib';
|
||||
import 'buffer';
|
||||
import 'assert';
|
||||
import 'node:querystring';
|
||||
import 'node:zlib';
|
||||
|
||||
const CSS_LANGS_RE = (
|
||||
// eslint-disable-next-line regexp/no-unused-capturing-group
|
||||
/\.(css|less|sass|scss|styl|stylus|pcss|postcss|sss)(?:$|\?)/
|
||||
);
|
||||
const isCSSRequest = (request) => CSS_LANGS_RE.test(request);
|
||||
class SplitVendorChunkCache {
|
||||
cache;
|
||||
constructor() {
|
||||
this.cache = /* @__PURE__ */ new Map();
|
||||
}
|
||||
reset() {
|
||||
this.cache = /* @__PURE__ */ new Map();
|
||||
}
|
||||
}
|
||||
function splitVendorChunk(options = {}) {
|
||||
const cache = options.cache ?? new SplitVendorChunkCache();
|
||||
return (id, { getModuleInfo }) => {
|
||||
if (isInNodeModules(id) && !isCSSRequest(id) && staticImportedByEntry(id, getModuleInfo, cache.cache)) {
|
||||
return "vendor";
|
||||
}
|
||||
};
|
||||
}
|
||||
function staticImportedByEntry(id, getModuleInfo, cache, importStack = []) {
|
||||
if (cache.has(id)) {
|
||||
return cache.get(id);
|
||||
}
|
||||
if (importStack.includes(id)) {
|
||||
cache.set(id, false);
|
||||
return false;
|
||||
}
|
||||
const mod = getModuleInfo(id);
|
||||
if (!mod) {
|
||||
cache.set(id, false);
|
||||
return false;
|
||||
}
|
||||
if (mod.isEntry) {
|
||||
cache.set(id, true);
|
||||
return true;
|
||||
}
|
||||
const someImporterIs = mod.importers.some(
|
||||
(importer) => staticImportedByEntry(
|
||||
importer,
|
||||
getModuleInfo,
|
||||
cache,
|
||||
importStack.concat(id)
|
||||
)
|
||||
);
|
||||
cache.set(id, someImporterIs);
|
||||
return someImporterIs;
|
||||
}
|
||||
function splitVendorChunkPlugin() {
|
||||
const caches = [];
|
||||
function createSplitVendorChunk(output, config) {
|
||||
const cache = new SplitVendorChunkCache();
|
||||
caches.push(cache);
|
||||
const build = config.build ?? {};
|
||||
const format = output.format;
|
||||
if (!build.ssr && !build.lib && format !== "umd" && format !== "iife") {
|
||||
return splitVendorChunk({ cache });
|
||||
}
|
||||
}
|
||||
return {
|
||||
name: "vite:split-vendor-chunk",
|
||||
config(config) {
|
||||
let outputs = config.build?.rollupOptions?.output;
|
||||
if (outputs) {
|
||||
outputs = arraify(outputs);
|
||||
for (const output of outputs) {
|
||||
const viteManualChunks = createSplitVendorChunk(output, config);
|
||||
if (viteManualChunks) {
|
||||
if (output.manualChunks) {
|
||||
if (typeof output.manualChunks === "function") {
|
||||
const userManualChunks = output.manualChunks;
|
||||
output.manualChunks = (id, api) => {
|
||||
return userManualChunks(id, api) ?? viteManualChunks(id, api);
|
||||
};
|
||||
} else {
|
||||
console.warn(
|
||||
"(!) the `splitVendorChunk` plugin doesn't have any effect when using the object form of `build.rollupOptions.output.manualChunks`. Consider using the function form instead."
|
||||
);
|
||||
}
|
||||
} else {
|
||||
output.manualChunks = viteManualChunks;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
return {
|
||||
build: {
|
||||
rollupOptions: {
|
||||
output: {
|
||||
manualChunks: createSplitVendorChunk({}, config)
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
},
|
||||
buildStart() {
|
||||
caches.forEach((cache) => cache.reset());
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function createFetchableDevEnvironment(name, config, context) {
|
||||
if (typeof Request === "undefined" || typeof Response === "undefined") {
|
||||
throw new TypeError(
|
||||
"FetchableDevEnvironment requires a global `Request` and `Response` object."
|
||||
);
|
||||
}
|
||||
if (!context.handleRequest) {
|
||||
throw new TypeError(
|
||||
"FetchableDevEnvironment requires a `handleRequest` method during initialisation."
|
||||
);
|
||||
}
|
||||
return new FetchableDevEnvironment(name, config, context);
|
||||
}
|
||||
function isFetchableDevEnvironment(environment) {
|
||||
return environment instanceof FetchableDevEnvironment;
|
||||
}
|
||||
class FetchableDevEnvironment extends DevEnvironment {
|
||||
_handleRequest;
|
||||
constructor(name, config, context) {
|
||||
super(name, config, context);
|
||||
this._handleRequest = context.handleRequest;
|
||||
}
|
||||
async dispatchFetch(request) {
|
||||
if (!(request instanceof Request)) {
|
||||
throw new TypeError(
|
||||
"FetchableDevEnvironment `dispatchFetch` must receive a `Request` object."
|
||||
);
|
||||
}
|
||||
const response = await this._handleRequest(request);
|
||||
if (!(response instanceof Response)) {
|
||||
throw new TypeError(
|
||||
"FetchableDevEnvironment `context.handleRequest` must return a `Response` object."
|
||||
);
|
||||
}
|
||||
return response;
|
||||
}
|
||||
}
|
||||
|
||||
export { DevEnvironment, createFetchableDevEnvironment, isCSSRequest, isFetchableDevEnvironment, splitVendorChunk, splitVendorChunkPlugin };
|
||||
+290
@@ -0,0 +1,290 @@
|
||||
import { ModuleNamespace, ViteHotContext } from '../../types/hot.js';
|
||||
import { Update, HotPayload } from '../../types/hmrPayload.js';
|
||||
import { InferCustomEventPayload } from '../../types/customEvent.js';
|
||||
import { N as NormalizedModuleRunnerTransport, E as ExternalFetchResult, V as ViteFetchResult, M as ModuleRunnerTransport, F as FetchFunctionOptions, a as FetchResult } from './moduleRunnerTransport.d-DJ_mE5sf.js';
|
||||
export { b as ModuleRunnerTransportHandlers, c as createWebSocketModuleRunnerTransport } from './moduleRunnerTransport.d-DJ_mE5sf.js';
|
||||
|
||||
interface SourceMapLike {
|
||||
version: number;
|
||||
mappings?: string;
|
||||
names?: string[];
|
||||
sources?: string[];
|
||||
sourcesContent?: string[];
|
||||
}
|
||||
declare class DecodedMap {
|
||||
map: SourceMapLike;
|
||||
_encoded: string;
|
||||
_decoded: undefined | number[][][];
|
||||
_decodedMemo: Stats;
|
||||
url: string;
|
||||
version: number;
|
||||
names: string[];
|
||||
resolvedSources: string[];
|
||||
constructor(map: SourceMapLike, from: string);
|
||||
}
|
||||
interface Stats {
|
||||
lastKey: number;
|
||||
lastNeedle: number;
|
||||
lastIndex: number;
|
||||
}
|
||||
|
||||
type CustomListenersMap = Map<string, ((data: any) => void)[]>;
|
||||
interface HotModule {
|
||||
id: string;
|
||||
callbacks: HotCallback[];
|
||||
}
|
||||
interface HotCallback {
|
||||
deps: string[];
|
||||
fn: (modules: Array<ModuleNamespace | undefined>) => void;
|
||||
}
|
||||
interface HMRLogger {
|
||||
error(msg: string | Error): void;
|
||||
debug(...msg: unknown[]): void;
|
||||
}
|
||||
declare class HMRClient {
|
||||
logger: HMRLogger;
|
||||
private transport;
|
||||
private importUpdatedModule;
|
||||
hotModulesMap: Map<string, HotModule>;
|
||||
disposeMap: Map<string, (data: any) => void | Promise<void>>;
|
||||
pruneMap: Map<string, (data: any) => void | Promise<void>>;
|
||||
dataMap: Map<string, any>;
|
||||
customListenersMap: CustomListenersMap;
|
||||
ctxToListenersMap: Map<string, CustomListenersMap>;
|
||||
currentFirstInvalidatedBy: string | undefined;
|
||||
constructor(logger: HMRLogger, transport: NormalizedModuleRunnerTransport, importUpdatedModule: (update: Update) => Promise<ModuleNamespace>);
|
||||
notifyListeners<T extends string>(event: T, data: InferCustomEventPayload<T>): Promise<void>;
|
||||
send(payload: HotPayload): void;
|
||||
clear(): void;
|
||||
prunePaths(paths: string[]): Promise<void>;
|
||||
protected warnFailedUpdate(err: Error, path: string | string[]): void;
|
||||
private updateQueue;
|
||||
private pendingUpdateQueue;
|
||||
/**
|
||||
* buffer multiple hot updates triggered by the same src change
|
||||
* so that they are invoked in the same order they were sent.
|
||||
* (otherwise the order may be inconsistent because of the http request round trip)
|
||||
*/
|
||||
queueUpdate(payload: Update): Promise<void>;
|
||||
private fetchUpdate;
|
||||
}
|
||||
|
||||
interface DefineImportMetadata {
|
||||
/**
|
||||
* Imported names before being transformed to `ssrImportKey`
|
||||
*
|
||||
* import foo, { bar as baz, qux } from 'hello'
|
||||
* => ['default', 'bar', 'qux']
|
||||
*
|
||||
* import * as namespace from 'world
|
||||
* => undefined
|
||||
*/
|
||||
importedNames?: string[];
|
||||
}
|
||||
interface SSRImportMetadata extends DefineImportMetadata {
|
||||
isDynamicImport?: boolean;
|
||||
}
|
||||
|
||||
declare const ssrModuleExportsKey = "__vite_ssr_exports__";
|
||||
declare const ssrImportKey = "__vite_ssr_import__";
|
||||
declare const ssrDynamicImportKey = "__vite_ssr_dynamic_import__";
|
||||
declare const ssrExportAllKey = "__vite_ssr_exportAll__";
|
||||
declare const ssrImportMetaKey = "__vite_ssr_import_meta__";
|
||||
|
||||
interface ModuleRunnerDebugger {
|
||||
(formatter: unknown, ...args: unknown[]): void;
|
||||
}
|
||||
declare class ModuleRunner {
|
||||
options: ModuleRunnerOptions;
|
||||
evaluator: ModuleEvaluator;
|
||||
private debug?;
|
||||
evaluatedModules: EvaluatedModules;
|
||||
hmrClient?: HMRClient;
|
||||
private readonly envProxy;
|
||||
private readonly transport;
|
||||
private readonly resetSourceMapSupport?;
|
||||
private readonly concurrentModuleNodePromises;
|
||||
private closed;
|
||||
constructor(options: ModuleRunnerOptions, evaluator?: ModuleEvaluator, debug?: ModuleRunnerDebugger | undefined);
|
||||
/**
|
||||
* URL to execute. Accepts file path, server path or id relative to the root.
|
||||
*/
|
||||
import<T = any>(url: string): Promise<T>;
|
||||
/**
|
||||
* Clear all caches including HMR listeners.
|
||||
*/
|
||||
clearCache(): void;
|
||||
/**
|
||||
* Clears all caches, removes all HMR listeners, and resets source map support.
|
||||
* This method doesn't stop the HMR connection.
|
||||
*/
|
||||
close(): Promise<void>;
|
||||
/**
|
||||
* Returns `true` if the runtime has been closed by calling `close()` method.
|
||||
*/
|
||||
isClosed(): boolean;
|
||||
private processImport;
|
||||
private isCircularModule;
|
||||
private isCircularImport;
|
||||
private cachedRequest;
|
||||
private cachedModule;
|
||||
private getModuleInformation;
|
||||
protected directRequest(url: string, mod: EvaluatedModuleNode, _callstack: string[]): Promise<any>;
|
||||
}
|
||||
|
||||
interface RetrieveFileHandler {
|
||||
(path: string): string | null | undefined | false;
|
||||
}
|
||||
interface RetrieveSourceMapHandler {
|
||||
(path: string): null | {
|
||||
url: string;
|
||||
map: any;
|
||||
};
|
||||
}
|
||||
interface InterceptorOptions {
|
||||
retrieveFile?: RetrieveFileHandler;
|
||||
retrieveSourceMap?: RetrieveSourceMapHandler;
|
||||
}
|
||||
|
||||
interface ModuleRunnerImportMeta extends ImportMeta {
|
||||
url: string;
|
||||
env: ImportMetaEnv;
|
||||
hot?: ViteHotContext;
|
||||
[key: string]: any;
|
||||
}
|
||||
interface ModuleRunnerContext {
|
||||
[ssrModuleExportsKey]: Record<string, any>;
|
||||
[ssrImportKey]: (id: string, metadata?: DefineImportMetadata) => Promise<any>;
|
||||
[ssrDynamicImportKey]: (id: string, options?: ImportCallOptions) => Promise<any>;
|
||||
[ssrExportAllKey]: (obj: any) => void;
|
||||
[ssrImportMetaKey]: ModuleRunnerImportMeta;
|
||||
}
|
||||
interface ModuleEvaluator {
|
||||
/**
|
||||
* Number of prefixed lines in the transformed code.
|
||||
*/
|
||||
startOffset?: number;
|
||||
/**
|
||||
* Run code that was transformed by Vite.
|
||||
* @param context Function context
|
||||
* @param code Transformed code
|
||||
* @param module The module node
|
||||
*/
|
||||
runInlinedModule(context: ModuleRunnerContext, code: string, module: Readonly<EvaluatedModuleNode>): Promise<any>;
|
||||
/**
|
||||
* Run externalized module.
|
||||
* @param file File URL to the external module
|
||||
*/
|
||||
runExternalModule(file: string): Promise<any>;
|
||||
}
|
||||
type ResolvedResult = (ExternalFetchResult | ViteFetchResult) & {
|
||||
url: string;
|
||||
id: string;
|
||||
};
|
||||
type FetchFunction = (id: string, importer?: string, options?: FetchFunctionOptions) => Promise<FetchResult>;
|
||||
interface ModuleRunnerHmr {
|
||||
/**
|
||||
* Configure HMR logger.
|
||||
*/
|
||||
logger?: false | HMRLogger;
|
||||
}
|
||||
interface ModuleRunnerOptions {
|
||||
/**
|
||||
* Root of the project
|
||||
* @deprecated not used and to be removed
|
||||
*/
|
||||
root?: string;
|
||||
/**
|
||||
* A set of methods to communicate with the server.
|
||||
*/
|
||||
transport: ModuleRunnerTransport;
|
||||
/**
|
||||
* Configure how source maps are resolved. Prefers `node` if `process.setSourceMapsEnabled` is available.
|
||||
* Otherwise it will use `prepareStackTrace` by default which overrides `Error.prepareStackTrace` method.
|
||||
* You can provide an object to configure how file contents and source maps are resolved for files that were not processed by Vite.
|
||||
*/
|
||||
sourcemapInterceptor?: false | 'node' | 'prepareStackTrace' | InterceptorOptions;
|
||||
/**
|
||||
* Disable HMR or configure HMR options.
|
||||
*
|
||||
* @default true
|
||||
*/
|
||||
hmr?: boolean | ModuleRunnerHmr;
|
||||
/**
|
||||
* Custom module cache. If not provided, creates a separate module cache for each ModuleRunner instance.
|
||||
*/
|
||||
evaluatedModules?: EvaluatedModules;
|
||||
}
|
||||
interface ImportMetaEnv {
|
||||
[key: string]: any;
|
||||
BASE_URL: string;
|
||||
MODE: string;
|
||||
DEV: boolean;
|
||||
PROD: boolean;
|
||||
SSR: boolean;
|
||||
}
|
||||
|
||||
declare class EvaluatedModuleNode {
|
||||
id: string;
|
||||
url: string;
|
||||
importers: Set<string>;
|
||||
imports: Set<string>;
|
||||
evaluated: boolean;
|
||||
meta: ResolvedResult | undefined;
|
||||
promise: Promise<any> | undefined;
|
||||
exports: any | undefined;
|
||||
file: string;
|
||||
map: DecodedMap | undefined;
|
||||
constructor(id: string, url: string);
|
||||
}
|
||||
declare class EvaluatedModules {
|
||||
readonly idToModuleMap: Map<string, EvaluatedModuleNode>;
|
||||
readonly fileToModulesMap: Map<string, Set<EvaluatedModuleNode>>;
|
||||
readonly urlToIdModuleMap: Map<string, EvaluatedModuleNode>;
|
||||
/**
|
||||
* Returns the module node by the resolved module ID. Usually, module ID is
|
||||
* the file system path with query and/or hash. It can also be a virtual module.
|
||||
*
|
||||
* Module runner graph will have 1 to 1 mapping with the server module graph.
|
||||
* @param id Resolved module ID
|
||||
*/
|
||||
getModuleById(id: string): EvaluatedModuleNode | undefined;
|
||||
/**
|
||||
* Returns all modules related to the file system path. Different modules
|
||||
* might have different query parameters or hash, so it's possible to have
|
||||
* multiple modules for the same file.
|
||||
* @param file The file system path of the module
|
||||
*/
|
||||
getModulesByFile(file: string): Set<EvaluatedModuleNode> | undefined;
|
||||
/**
|
||||
* Returns the module node by the URL that was used in the import statement.
|
||||
* Unlike module graph on the server, the URL is not resolved and is used as is.
|
||||
* @param url Server URL that was used in the import statement
|
||||
*/
|
||||
getModuleByUrl(url: string): EvaluatedModuleNode | undefined;
|
||||
/**
|
||||
* Ensure that module is in the graph. If the module is already in the graph,
|
||||
* it will return the existing module node. Otherwise, it will create a new
|
||||
* module node and add it to the graph.
|
||||
* @param id Resolved module ID
|
||||
* @param url URL that was used in the import statement
|
||||
*/
|
||||
ensureModule(id: string, url: string): EvaluatedModuleNode;
|
||||
invalidateModule(node: EvaluatedModuleNode): void;
|
||||
/**
|
||||
* Extracts the inlined source map from the module code and returns the decoded
|
||||
* source map. If the source map is not inlined, it will return null.
|
||||
* @param id Resolved module ID
|
||||
*/
|
||||
getModuleSourceMapById(id: string): DecodedMap | null;
|
||||
clear(): void;
|
||||
}
|
||||
|
||||
declare class ESModulesEvaluator implements ModuleEvaluator {
|
||||
readonly startOffset: number;
|
||||
runInlinedModule(context: ModuleRunnerContext, code: string): Promise<any>;
|
||||
runExternalModule(filepath: string): Promise<any>;
|
||||
}
|
||||
|
||||
export { ESModulesEvaluator, EvaluatedModuleNode, EvaluatedModules, FetchFunctionOptions, FetchResult, ModuleRunner, ModuleRunnerTransport, ssrDynamicImportKey, ssrExportAllKey, ssrImportKey, ssrImportMetaKey, ssrModuleExportsKey };
|
||||
export type { FetchFunction, HMRLogger, InterceptorOptions, ModuleEvaluator, ModuleRunnerContext, ModuleRunnerHmr, ModuleRunnerImportMeta, ModuleRunnerOptions, ResolvedResult, SSRImportMetadata };
|
||||
+1311
File diff suppressed because it is too large
Load Diff
+87
@@ -0,0 +1,87 @@
|
||||
import { HotPayload } from '../../types/hmrPayload.js';
|
||||
|
||||
interface FetchFunctionOptions {
|
||||
cached?: boolean;
|
||||
startOffset?: number;
|
||||
}
|
||||
type FetchResult = CachedFetchResult | ExternalFetchResult | ViteFetchResult;
|
||||
interface CachedFetchResult {
|
||||
/**
|
||||
* If module cached in the runner, we can just confirm
|
||||
* it wasn't invalidated on the server side.
|
||||
*/
|
||||
cache: true;
|
||||
}
|
||||
interface ExternalFetchResult {
|
||||
/**
|
||||
* The path to the externalized module starting with file://,
|
||||
* by default this will be imported via a dynamic "import"
|
||||
* instead of being transformed by vite and loaded with vite runner
|
||||
*/
|
||||
externalize: string;
|
||||
/**
|
||||
* Type of the module. Will be used to determine if import statement is correct.
|
||||
* For example, if Vite needs to throw an error if variable is not actually exported
|
||||
*/
|
||||
type: 'module' | 'commonjs' | 'builtin' | 'network';
|
||||
}
|
||||
interface ViteFetchResult {
|
||||
/**
|
||||
* Code that will be evaluated by vite runner
|
||||
* by default this will be wrapped in an async function
|
||||
*/
|
||||
code: string;
|
||||
/**
|
||||
* File path of the module on disk.
|
||||
* This will be resolved as import.meta.url/filename
|
||||
* Will be equal to `null` for virtual modules
|
||||
*/
|
||||
file: string | null;
|
||||
/**
|
||||
* Module ID in the server module graph.
|
||||
*/
|
||||
id: string;
|
||||
/**
|
||||
* Module URL used in the import.
|
||||
*/
|
||||
url: string;
|
||||
/**
|
||||
* Invalidate module on the client side.
|
||||
*/
|
||||
invalidate: boolean;
|
||||
}
|
||||
type InvokeMethods = {
|
||||
fetchModule: (id: string, importer?: string, options?: FetchFunctionOptions) => Promise<FetchResult>;
|
||||
};
|
||||
|
||||
type ModuleRunnerTransportHandlers = {
|
||||
onMessage: (data: HotPayload) => void;
|
||||
onDisconnection: () => void;
|
||||
};
|
||||
/**
|
||||
* "send and connect" or "invoke" must be implemented
|
||||
*/
|
||||
interface ModuleRunnerTransport {
|
||||
connect?(handlers: ModuleRunnerTransportHandlers): Promise<void> | void;
|
||||
disconnect?(): Promise<void> | void;
|
||||
send?(data: HotPayload): Promise<void> | void;
|
||||
invoke?(data: HotPayload): Promise<{
|
||||
result: any;
|
||||
} | {
|
||||
error: any;
|
||||
}>;
|
||||
timeout?: number;
|
||||
}
|
||||
interface NormalizedModuleRunnerTransport {
|
||||
connect?(onMessage?: (data: HotPayload) => void): Promise<void> | void;
|
||||
disconnect?(): Promise<void> | void;
|
||||
send(data: HotPayload): Promise<void>;
|
||||
invoke<T extends keyof InvokeMethods>(name: T, data: Parameters<InvokeMethods[T]>): Promise<ReturnType<Awaited<InvokeMethods[T]>>>;
|
||||
}
|
||||
declare const createWebSocketModuleRunnerTransport: (options: {
|
||||
createConnection: () => WebSocket;
|
||||
pingInterval?: number;
|
||||
}) => Required<Pick<ModuleRunnerTransport, "connect" | "disconnect" | "send">>;
|
||||
|
||||
export { createWebSocketModuleRunnerTransport as c };
|
||||
export type { ExternalFetchResult as E, FetchFunctionOptions as F, ModuleRunnerTransport as M, NormalizedModuleRunnerTransport as N, ViteFetchResult as V, FetchResult as a, ModuleRunnerTransportHandlers as b };
|
||||
Reference in New Issue
Block a user