vite-node 0.6.3 → 0.7.0

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/cli.d.ts CHANGED
@@ -3,6 +3,7 @@ interface CliOptions {
3
3
  _?: string[];
4
4
  root?: string;
5
5
  config?: string;
6
+ watch?: boolean;
6
7
  }
7
8
 
8
9
  export { CliOptions };
package/client.d.ts CHANGED
@@ -1,37 +1 @@
1
- import { ViteNodeRunnerOptions, ModuleCache } from './types.js';
2
-
3
- declare const DEFAULT_REQUEST_STUBS: {
4
- '/@vite/client': {
5
- injectQuery: (id: string) => string;
6
- createHotContext(): {
7
- accept: () => void;
8
- prune: () => void;
9
- };
10
- updateStyle(): void;
11
- };
12
- };
13
- declare class ViteNodeRunner {
14
- options: ViteNodeRunnerOptions;
15
- root: string;
16
- moduleCache: Map<string, ModuleCache>;
17
- constructor(options: ViteNodeRunnerOptions);
18
- executeFile(file: string): Promise<any>;
19
- executeId(id: string): Promise<any>;
20
- cachedRequest(rawId: string, callstack: string[]): Promise<any>;
21
- directRequest(id: string, fsPath: string, callstack: string[]): Promise<any>;
22
- prepareContext(context: Record<string, any>): Record<string, any>;
23
- setCache(id: string, mod: Partial<ModuleCache>): void;
24
- shouldResolveId(dep: string): boolean;
25
- /**
26
- * Define if a module should be interop-ed
27
- * This function mostly for the ability to override by subclass
28
- */
29
- shouldInterop(path: string, mod: any): boolean;
30
- /**
31
- * Import a module and interop it
32
- */
33
- interopedImport(path: string): Promise<any>;
34
- hasNestedDefault(target: any): any;
35
- }
36
-
37
- export { DEFAULT_REQUEST_STUBS, ViteNodeRunner };
1
+ export { f as DEFAULT_REQUEST_STUBS, M as ModuleCacheMap, g as ViteNodeRunner } from './types-7101d113.js';
package/dist/cli.cjs CHANGED
@@ -5,11 +5,11 @@ var kolorist = require('kolorist');
5
5
  var vite = require('vite');
6
6
  var server = require('./server.cjs');
7
7
  var client = require('./client.cjs');
8
+ require('pathe');
8
9
  require('fs');
9
10
  require('mlly');
10
11
  require('./utils.cjs');
11
12
  require('url');
12
- require('pathe');
13
13
  require('module');
14
14
  require('vm');
15
15
 
@@ -84,6 +84,16 @@ async function run(options = {}) {
84
84
  await runner.executeId("/@vite/env");
85
85
  for (const file of files)
86
86
  await runner.executeFile(file);
87
- await server$1.close();
87
+ if (!options.watch)
88
+ await server$1.close();
89
+ server$1.watcher.on("change", async (eventName, path) => {
90
+ console.log(kolorist.dim(`[${eventName}] ${path}`));
91
+ Array.from(runner.moduleCache.keys()).forEach((i) => {
92
+ if (!i.includes("node_modules"))
93
+ runner.moduleCache.delete(i);
94
+ });
95
+ for (const file of files)
96
+ await runner.executeFile(file);
97
+ });
88
98
  }
89
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmNqcyIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWluaW1pc3QgZnJvbSAnbWluaW1pc3QnXG5pbXBvcnQgeyBkaW0sIHJlZCB9IGZyb20gJ2tvbG9yaXN0J1xuaW1wb3J0IHsgY3JlYXRlU2VydmVyIH0gZnJvbSAndml0ZSdcbmltcG9ydCB7IFZpdGVOb2RlU2VydmVyIH0gZnJvbSAnLi9zZXJ2ZXInXG5pbXBvcnQgeyBWaXRlTm9kZVJ1bm5lciB9IGZyb20gJy4vY2xpZW50J1xuXG5jb25zdCBhcmd2ID0gbWluaW1pc3QocHJvY2Vzcy5hcmd2LnNsaWNlKDIpLCB7XG4gICdhbGlhcyc6IHtcbiAgICByOiAncm9vdCcsXG4gICAgYzogJ2NvbmZpZycsXG4gICAgaDogJ2hlbHAnLFxuICAgIHc6ICd3YXRjaCcsXG4gICAgczogJ3NpbGVudCcsXG4gIH0sXG4gICctLSc6IHRydWUsXG4gICdzdHJpbmcnOiBbJ3Jvb3QnLCAnY29uZmlnJ10sXG4gICdib29sZWFuJzogWydoZWxwJywgJ3dhdGNoJywgJ3NpbGVudCddLFxuICB1bmtub3duKG5hbWU6IHN0cmluZykge1xuICAgIGlmIChuYW1lWzBdID09PSAnLScpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IocmVkKGBVbmtub3duIGFyZ3VtZW50OiAke25hbWV9YCkpXG4gICAgICBoZWxwKClcbiAgICAgIHByb2Nlc3MuZXhpdCgxKVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZVxuICB9LFxufSlcblxuaWYgKGFyZ3YuaGVscCkge1xuICBoZWxwKClcbiAgcHJvY2Vzcy5leGl0KDApXG59XG5cbmlmICghYXJndi5fLmxlbmd0aCkge1xuICBjb25zb2xlLmVycm9yKHJlZCgnTm8gZmlsZXMgc3BlY2lmaWVkLicpKVxuICBoZWxwKClcbiAgcHJvY2Vzcy5leGl0KDEpXG59XG5cbi8vIGZvcndhcmQgYXJndlxucHJvY2Vzcy5hcmd2ID0gWy4uLnByb2Nlc3MuYXJndi5zbGljZSgwLCAyKSwgLi4uKGFyZ3ZbJy0tJ10gfHwgW10pXVxuXG5ydW4oYXJndilcblxuZnVuY3Rpb24gaGVscCgpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgY29uc29sZS5sb2coYFxuVXNhZ2U6XG4gICQgdml0ZS1ub2RlIFtvcHRpb25zXSBbZmlsZXNdXG5cbk9wdGlvbnM6XG4gIC1yLCAtLXJvb3QgPHBhdGg+ICAgICAgJHtkaW0oJ1tzdHJpbmddJyl9IHVzZSBzcGVjaWZpZWQgcm9vdCBkaXJlY3RvcnlcbiAgLWMsIC0tY29uZmlnIDxmaWxlPiAgICAke2RpbSgnW3N0cmluZ10nKX0gdXNlIHNwZWNpZmllZCBjb25maWcgZmlsZVxuICAtdywgLS13YXRjaCAgICAgICAgICAgJHtkaW0oJ1tib29sZWFuXScpfSByZXN0YXJ0IG9uIGZpbGUgY2hhbmdlcywgc2ltaWxhciB0byBcIm5vZGVtb25cIlxuICAtcywgLS1zaWxlbnQgICAgICAgICAgJHtkaW0oJ1tib29sZWFuXScpfSBkbyBub3QgZW1pdCBlcnJvcnMgYW5kIGxvZ3NcbiAgLS12dWUgICAgICAgICAgICAgICAgICR7ZGltKCdbYm9vbGVhbl0nKX0gc3VwcG9ydCBmb3IgaW1wb3J0aW5nIFZ1ZSBjb21wb25lbnRcbmApXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xpT3B0aW9ucyB7XG4gIGZpbGVzPzogc3RyaW5nW11cbiAgXz86IHN0cmluZ1tdXG4gIHJvb3Q/OiBzdHJpbmdcbiAgY29uZmlnPzogc3RyaW5nXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJ1bihvcHRpb25zOiBDbGlPcHRpb25zID0ge30pIHtcbiAgY29uc3QgZmlsZXMgPSBvcHRpb25zLmZpbGVzIHx8IG9wdGlvbnMuXyB8fCBbXVxuXG4gIGNvbnN0IHNlcnZlciA9IGF3YWl0IGNyZWF0ZVNlcnZlcih7XG4gICAgbG9nTGV2ZWw6ICdlcnJvcicsXG4gICAgY2xlYXJTY3JlZW46IGZhbHNlLFxuICAgIGNvbmZpZ0ZpbGU6IG9wdGlvbnMuY29uZmlnLFxuICAgIHJvb3Q6IG9wdGlvbnMucm9vdCxcbiAgfSlcbiAgYXdhaXQgc2VydmVyLnBsdWdpbkNvbnRhaW5lci5idWlsZFN0YXJ0KHt9KVxuXG4gIGNvbnN0IG5vZGUgPSBuZXcgVml0ZU5vZGVTZXJ2ZXIoc2VydmVyKVxuXG4gIGNvbnN0IHJ1bm5lciA9IG5ldyBWaXRlTm9kZVJ1bm5lcih7XG4gICAgcm9vdDogc2VydmVyLmNvbmZpZy5yb290LFxuICAgIGJhc2U6IHNlcnZlci5jb25maWcuYmFzZSxcbiAgICBmZXRjaE1vZHVsZShpZCkge1xuICAgICAgcmV0dXJuIG5vZGUuZmV0Y2hNb2R1bGUoaWQpXG4gICAgfSxcbiAgICByZXNvbHZlSWQoaWQsIGltcG9ydGVyKSB7XG4gICAgICByZXR1cm4gbm9kZS5yZXNvbHZlSWQoaWQsIGltcG9ydGVyKVxuICAgIH0sXG4gIH0pXG5cbiAgLy8gcHJvdmlkZSB0aGUgdml0ZSBkZWZpbmUgdmFyaWFibGUgaW4gdGhpcyBjb250ZXh0XG4gIGF3YWl0IHJ1bm5lci5leGVjdXRlSWQoJy9Adml0ZS9lbnYnKVxuXG4gIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcylcbiAgICBhd2FpdCBydW5uZXIuZXhlY3V0ZUZpbGUoZmlsZSlcblxuICBhd2FpdCBzZXJ2ZXIuY2xvc2UoKVxufVxuIl0sIm5hbWVzIjpbIm1pbmltaXN0IiwicmVkIiwiZGltIiwic2VydmVyIiwiY3JlYXRlU2VydmVyIiwiVml0ZU5vZGVTZXJ2ZXIiLCJWaXRlTm9kZVJ1bm5lciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU1BLE1BQU0sSUFBTyxHQUFBQSw0QkFBQSxDQUFTLE9BQVEsQ0FBQSxJQUFBLENBQUssTUFBTSxDQUFJLENBQUEsRUFBQTtBQUFBLEVBQzNDLE9BQVMsRUFBQTtBQUFBLElBQ1AsQ0FBRyxFQUFBLE1BQUE7QUFBQSxJQUNILENBQUcsRUFBQSxRQUFBO0FBQUEsSUFDSCxDQUFHLEVBQUEsTUFBQTtBQUFBLElBQ0gsQ0FBRyxFQUFB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
99
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmNqcyIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbWluaW1pc3QgZnJvbSAnbWluaW1pc3QnXG5pbXBvcnQgeyBkaW0sIHJlZCB9IGZyb20gJ2tvbG9yaXN0J1xuaW1wb3J0IHsgY3JlYXRlU2VydmVyIH0gZnJvbSAndml0ZSdcbmltcG9ydCB7IFZpdGVOb2RlU2VydmVyIH0gZnJvbSAnLi9zZXJ2ZXInXG5pbXBvcnQgeyBWaXRlTm9kZVJ1bm5lciB9IGZyb20gJy4vY2xpZW50J1xuXG5jb25zdCBhcmd2ID0gbWluaW1pc3QocHJvY2Vzcy5hcmd2LnNsaWNlKDIpLCB7XG4gICdhbGlhcyc6IHtcbiAgICByOiAncm9vdCcsXG4gICAgYzogJ2NvbmZpZycsXG4gICAgaDogJ2hlbHAnLFxuICAgIHc6ICd3YXRjaCcsXG4gICAgczogJ3NpbGVudCcsXG4gIH0sXG4gICctLSc6IHRydWUsXG4gICdzdHJpbmcnOiBbJ3Jvb3QnLCAnY29uZmlnJ10sXG4gICdib29sZWFuJzogWydoZWxwJywgJ3dhdGNoJywgJ3NpbGVudCddLFxuICB1bmtub3duKG5hbWU6IHN0cmluZykge1xuICAgIGlmIChuYW1lWzBdID09PSAnLScpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IocmVkKGBVbmtub3duIGFyZ3VtZW50OiAke25hbWV9YCkpXG4gICAgICBoZWxwKClcbiAgICAgIHByb2Nlc3MuZXhpdCgxKVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZVxuICB9LFxufSlcblxuaWYgKGFyZ3YuaGVscCkge1xuICBoZWxwKClcbiAgcHJvY2Vzcy5leGl0KDApXG59XG5cbmlmICghYXJndi5fLmxlbmd0aCkge1xuICBjb25zb2xlLmVycm9yKHJlZCgnTm8gZmlsZXMgc3BlY2lmaWVkLicpKVxuICBoZWxwKClcbiAgcHJvY2Vzcy5leGl0KDEpXG59XG5cbi8vIGZvcndhcmQgYXJndlxucHJvY2Vzcy5hcmd2ID0gWy4uLnByb2Nlc3MuYXJndi5zbGljZSgwLCAyKSwgLi4uKGFyZ3ZbJy0tJ10gfHwgW10pXVxuXG5ydW4oYXJndilcblxuZnVuY3Rpb24gaGVscCgpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgY29uc29sZS5sb2coYFxuVXNhZ2U6XG4gICQgdml0ZS1ub2RlIFtvcHRpb25zXSBbZmlsZXNdXG5cbk9wdGlvbnM6XG4gIC1yLCAtLXJvb3QgPHBhdGg+ICAgICAgJHtkaW0oJ1tzdHJpbmddJyl9IHVzZSBzcGVjaWZpZWQgcm9vdCBkaXJlY3RvcnlcbiAgLWMsIC0tY29uZmlnIDxmaWxlPiAgICAke2RpbSgnW3N0cmluZ10nKX0gdXNlIHNwZWNpZmllZCBjb25maWcgZmlsZVxuICAtdywgLS13YXRjaCAgICAgICAgICAgJHtkaW0oJ1tib29sZWFuXScpfSByZXN0YXJ0IG9uIGZpbGUgY2hhbmdlcywgc2ltaWxhciB0byBcIm5vZGVtb25cIlxuICAtcywgLS1zaWxlbnQgICAgICAgICAgJHtkaW0oJ1tib29sZWFuXScpfSBkbyBub3QgZW1pdCBlcnJvcnMgYW5kIGxvZ3NcbiAgLS12dWUgICAgICAgICAgICAgICAgICR7ZGltKCdbYm9vbGVhbl0nKX0gc3VwcG9ydCBmb3IgaW1wb3J0aW5nIFZ1ZSBjb21wb25lbnRcbmApXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xpT3B0aW9ucyB7XG4gIGZpbGVzPzogc3RyaW5nW11cbiAgXz86IHN0cmluZ1tdXG4gIHJvb3Q/OiBzdHJpbmdcbiAgY29uZmlnPzogc3RyaW5nXG4gIHdhdGNoPzogYm9vbGVhblxufVxuXG5hc3luYyBmdW5jdGlvbiBydW4ob3B0aW9uczogQ2xpT3B0aW9ucyA9IHt9KSB7XG4gIGNvbnN0IGZpbGVzID0gb3B0aW9ucy5maWxlcyB8fCBvcHRpb25zLl8gfHwgW11cbiAgY29uc3Qgc2VydmVyID0gYXdhaXQgY3JlYXRlU2VydmVyKHtcbiAgICBsb2dMZXZlbDogJ2Vycm9yJyxcbiAgICBjbGVhclNjcmVlbjogZmFsc2UsXG4gICAgY29uZmlnRmlsZTogb3B0aW9ucy5jb25maWcsXG4gICAgcm9vdDogb3B0aW9ucy5yb290LFxuICB9KVxuICBhd2FpdCBzZXJ2ZXIucGx1Z2luQ29udGFpbmVyLmJ1aWxkU3RhcnQoe30pXG5cbiAgY29uc3Qgbm9kZSA9IG5ldyBWaXRlTm9kZVNlcnZlcihzZXJ2ZXIpXG5cbiAgY29uc3QgcnVubmVyID0gbmV3IFZpdGVOb2RlUnVubmVyKHtcbiAgICByb290OiBzZXJ2ZXIuY29uZmlnLnJvb3QsXG4gICAgYmFzZTogc2VydmVyLmNvbmZpZy5iYXNlLFxuICAgIGZldGNoTW9kdWxlKGlkKSB7XG4gICAgICByZXR1cm4gbm9kZS5mZXRjaE1vZHVsZShpZClcbiAgICB9LFxuICAgIHJlc29sdmVJZChpZCwgaW1wb3J0ZXIpIHtcbiAgICAgIHJldHVybiBub2RlLnJlc29sdmVJZChpZCwgaW1wb3J0ZXIpXG4gICAgfSxcbiAgfSlcblxuICAvLyBwcm92aWRlIHRoZSB2aXRlIGRlZmluZSB2YXJpYWJsZSBpbiB0aGlzIGNvbnRleHRcbiAgYXdhaXQgcnVubmVyLmV4ZWN1dGVJZCgnL0B2aXRlL2VudicpXG5cbiAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKVxuICAgIGF3YWl0IHJ1bm5lci5leGVjdXRlRmlsZShmaWxlKVxuXG4gIGlmICghb3B0aW9ucy53YXRjaClcbiAgICBhd2FpdCBzZXJ2ZXIuY2xvc2UoKVxuXG4gIHNlcnZlci53YXRjaGVyLm9uKCdjaGFuZ2UnLCBhc3luYyhldmVudE5hbWUsIHBhdGgpID0+IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgIGNvbnNvbGUubG9nKGRpbShgWyR7ZXZlbnROYW1lfV0gJHtwYXRofWApKVxuXG4gICAgLy8gaW52YWxpZGF0ZSBtb2R1bGUgY2FjaGUgYnV0IG5vdCBub2RlX21vZHVsZXNcbiAgICBBcnJheS5mcm9tKHJ1bm5lci5tb2R1bGVDYWNoZS5rZXlzKCkpXG4gICAgICAuZm9yRWFjaCgoaSkgPT4ge1xuICAgICAgICBpZiAoIWkuaW5jbHVkZXMoJ25vZGVfbW9kdWxlcycpKVxuICAgICAgICAgIHJ1bm5lci5tb2R1bGVDYWNoZS5kZWxldGUoaSlcbiAgICAgIH0pXG5cbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpXG4gICAgICBhd2FpdCBydW5uZXIuZXhlY3V0ZUZpbGUoZmlsZSlcbiAgfSlcbn1cbiJdLCJuYW1lcyI6WyJtaW5pbWlzdCIsInJlZCIsImRpbSIsInNlcnZlciIsImNyZWF0ZVNlcnZlciIsIlZpdGVOb2RlU2VydmVyIiwiVml0ZU5vZGVSdW5uZXIiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFNQSxNQUFNLElBQU8sR0FBQUEsNEJBQUEsQ0FBUyxPQUFRLENBQUEsSUFBQSxDQUFLLE1BQU0sQ0FBSSxDQUFBLEVBQUE7QUFBQSxFQUMzQyxPQUFTLEVBQUE7QUFBQSxJQUNQLENBQUcsRUFBQSxNQUFBO0FBQUEsSUFDSCxDQUFHLEVBQUEsUUFBQTtBQUFBLElBQ0gsQ0FBRyxFQUFBLE1BQUE7QUFBQSxJQUNILENBQUcsRUFBQSxPQUFBO0FBQUEsSUFDSCxDQUFHLEVBQUEsUUFBQTtBQUFBLEdBQUE7QUFBQSxFQUVMLElBQU0sRUFBQSxJQUFBO0FBQUEsRUFDTixRQUFBLEVBQVUsQ0FBQyxNQUFRLEVBQUEsUUFBQSxDQUFBO0FBQUEsRUFDbkIsU0FBQSxFQUFXLENBQUMsTUFBQSxFQUFRLE9BQVMsRUFBQSxRQUFBLENBQUE7QUFBQSxFQUM3QixRQUFRLElBQWMsRUFBQTtBQUNwQixJQUFJLElBQUEsSUFBQSxDQUFLLE9BQU8sR0FBSyxFQUFBO0FBQ25CLE1BQVEsT0FBQSxDQUFBLEtBQUEsQ0FBTUMsYUFBSSxDQUFxQixrQkFBQSxFQUFBLElBQUEsQ0FBQSxDQUFBLENBQUEsQ0FBQSxDQUFBO0FBQ3ZDLE1BQUEsSUFBQSxFQUFBLENBQUE7QUFDQSxNQUFBLE9BQUEsQ0FBUSxJQUFLLENBQUEsQ0FBQSxDQUFBLENBQUE7QUFBQSxLQUFBO0FBRWYsSUFBTyxPQUFB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
package/dist/cli.js CHANGED
@@ -3,11 +3,11 @@ import { red, dim } from 'kolorist';
3
3
  import { createServer } from 'vite';
4
4
  import { ViteNodeServer } from './server.js';
5
5
  import { ViteNodeRunner } from './client.js';
6
+ import 'pathe';
6
7
  import 'fs';
7
8
  import 'mlly';
8
9
  import './utils.js';
9
10
  import 'url';
10
- import 'pathe';
11
11
  import 'module';
12
12
  import 'vm';
13
13
 
@@ -78,6 +78,16 @@ async function run(options = {}) {
78
78
  await runner.executeId("/@vite/env");
79
79
  for (const file of files)
80
80
  await runner.executeFile(file);
81
- await server.close();
81
+ if (!options.watch)
82
+ await server.close();
83
+ server.watcher.on("change", async (eventName, path) => {
84
+ console.log(dim(`[${eventName}] ${path}`));
85
+ Array.from(runner.moduleCache.keys()).forEach((i) => {
86
+ if (!i.includes("node_modules"))
87
+ runner.moduleCache.delete(i);
88
+ });
89
+ for (const file of files)
90
+ await runner.executeFile(file);
91
+ });
82
92
  }
83
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlcyI6WyIuLi9zcmMvY2xpLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtaW5pbWlzdCBmcm9tICdtaW5pbWlzdCdcbmltcG9ydCB7IGRpbSwgcmVkIH0gZnJvbSAna29sb3Jpc3QnXG5pbXBvcnQgeyBjcmVhdGVTZXJ2ZXIgfSBmcm9tICd2aXRlJ1xuaW1wb3J0IHsgVml0ZU5vZGVTZXJ2ZXIgfSBmcm9tICcuL3NlcnZlcidcbmltcG9ydCB7IFZpdGVOb2RlUnVubmVyIH0gZnJvbSAnLi9jbGllbnQnXG5cbmNvbnN0IGFyZ3YgPSBtaW5pbWlzdChwcm9jZXNzLmFyZ3Yuc2xpY2UoMiksIHtcbiAgJ2FsaWFzJzoge1xuICAgIHI6ICdyb290JyxcbiAgICBjOiAnY29uZmlnJyxcbiAgICBoOiAnaGVscCcsXG4gICAgdzogJ3dhdGNoJyxcbiAgICBzOiAnc2lsZW50JyxcbiAgfSxcbiAgJy0tJzogdHJ1ZSxcbiAgJ3N0cmluZyc6IFsncm9vdCcsICdjb25maWcnXSxcbiAgJ2Jvb2xlYW4nOiBbJ2hlbHAnLCAnd2F0Y2gnLCAnc2lsZW50J10sXG4gIHVua25vd24obmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKG5hbWVbMF0gPT09ICctJykge1xuICAgICAgY29uc29sZS5lcnJvcihyZWQoYFVua25vd24gYXJndW1lbnQ6ICR7bmFtZX1gKSlcbiAgICAgIGhlbHAoKVxuICAgICAgcHJvY2Vzcy5leGl0KDEpXG4gICAgfVxuICAgIHJldHVybiB0cnVlXG4gIH0sXG59KVxuXG5pZiAoYXJndi5oZWxwKSB7XG4gIGhlbHAoKVxuICBwcm9jZXNzLmV4aXQoMClcbn1cblxuaWYgKCFhcmd2Ll8ubGVuZ3RoKSB7XG4gIGNvbnNvbGUuZXJyb3IocmVkKCdObyBmaWxlcyBzcGVjaWZpZWQuJykpXG4gIGhlbHAoKVxuICBwcm9jZXNzLmV4aXQoMSlcbn1cblxuLy8gZm9yd2FyZCBhcmd2XG5wcm9jZXNzLmFyZ3YgPSBbLi4ucHJvY2Vzcy5hcmd2LnNsaWNlKDAsIDIpLCAuLi4oYXJndlsnLS0nXSB8fCBbXSldXG5cbnJ1bihhcmd2KVxuXG5mdW5jdGlvbiBoZWxwKCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICBjb25zb2xlLmxvZyhgXG5Vc2FnZTpcbiAgJCB2aXRlLW5vZGUgW29wdGlvbnNdIFtmaWxlc11cblxuT3B0aW9uczpcbiAgLXIsIC0tcm9vdCA8cGF0aD4gICAgICAke2RpbSgnW3N0cmluZ10nKX0gdXNlIHNwZWNpZmllZCByb290IGRpcmVjdG9yeVxuICAtYywgLS1jb25maWcgPGZpbGU+ICAgICR7ZGltKCdbc3RyaW5nXScpfSB1c2Ugc3BlY2lmaWVkIGNvbmZpZyBmaWxlXG4gIC13LCAtLXdhdGNoICAgICAgICAgICAke2RpbSgnW2Jvb2xlYW5dJyl9IHJlc3RhcnQgb24gZmlsZSBjaGFuZ2VzLCBzaW1pbGFyIHRvIFwibm9kZW1vblwiXG4gIC1zLCAtLXNpbGVudCAgICAgICAgICAke2RpbSgnW2Jvb2xlYW5dJyl9IGRvIG5vdCBlbWl0IGVycm9ycyBhbmQgbG9nc1xuICAtLXZ1ZSAgICAgICAgICAgICAgICAgJHtkaW0oJ1tib29sZWFuXScpfSBzdXBwb3J0IGZvciBpbXBvcnRpbmcgVnVlIGNvbXBvbmVudFxuYClcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbGlPcHRpb25zIHtcbiAgZmlsZXM/OiBzdHJpbmdbXVxuICBfPzogc3RyaW5nW11cbiAgcm9vdD86IHN0cmluZ1xuICBjb25maWc/OiBzdHJpbmdcbn1cblxuYXN5bmMgZnVuY3Rpb24gcnVuKG9wdGlvbnM6IENsaU9wdGlvbnMgPSB7fSkge1xuICBjb25zdCBmaWxlcyA9IG9wdGlvbnMuZmlsZXMgfHwgb3B0aW9ucy5fIHx8IFtdXG5cbiAgY29uc3Qgc2VydmVyID0gYXdhaXQgY3JlYXRlU2VydmVyKHtcbiAgICBsb2dMZXZlbDogJ2Vycm9yJyxcbiAgICBjbGVhclNjcmVlbjogZmFsc2UsXG4gICAgY29uZmlnRmlsZTogb3B0aW9ucy5jb25maWcsXG4gICAgcm9vdDogb3B0aW9ucy5yb290LFxuICB9KVxuICBhd2FpdCBzZXJ2ZXIucGx1Z2luQ29udGFpbmVyLmJ1aWxkU3RhcnQoe30pXG5cbiAgY29uc3Qgbm9kZSA9IG5ldyBWaXRlTm9kZVNlcnZlcihzZXJ2ZXIpXG5cbiAgY29uc3QgcnVubmVyID0gbmV3IFZpdGVOb2RlUnVubmVyKHtcbiAgICByb290OiBzZXJ2ZXIuY29uZmlnLnJvb3QsXG4gICAgYmFzZTogc2VydmVyLmNvbmZpZy5iYXNlLFxuICAgIGZldGNoTW9kdWxlKGlkKSB7XG4gICAgICByZXR1cm4gbm9kZS5mZXRjaE1vZHVsZShpZClcbiAgICB9LFxuICAgIHJlc29sdmVJZChpZCwgaW1wb3J0ZXIpIHtcbiAgICAgIHJldHVybiBub2RlLnJlc29sdmVJZChpZCwgaW1wb3J0ZXIpXG4gICAgfSxcbiAgfSlcblxuICAvLyBwcm92aWRlIHRoZSB2aXRlIGRlZmluZSB2YXJpYWJsZSBpbiB0aGlzIGNvbnRleHRcbiAgYXdhaXQgcnVubmVyLmV4ZWN1dGVJZCgnL0B2aXRlL2VudicpXG5cbiAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKVxuICAgIGF3YWl0IHJ1bm5lci5leGVjdXRlRmlsZShmaWxlKVxuXG4gIGF3YWl0IHNlcnZlci5jbG9zZSgpXG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUtBLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUM3QyxFQUFFLE9BQU8sRUFBRTtBQUNYLElBQUksQ0FBQyxFQUFFLE1BQU07QUFDYixJQUFJLENBQUMsRUFBRSxRQUFRO0FBQ2YsSUFBSSxDQUFDLEVBQUUsTUFBTTtBQUNiLElBQUksQ0FBQyxFQUFFLE9BQU87QUFDZCxJQUFJLENBQUMsRUFBRSxRQUFRO0FBQ2YsR0FBRztBQUNILEVBQUUsSUFBSSxFQUFFLElBQUk7QUFDWixFQUFFLFFBQVEsRUFB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
93
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlcyI6WyIuLi9zcmMvY2xpLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBtaW5pbWlzdCBmcm9tICdtaW5pbWlzdCdcbmltcG9ydCB7IGRpbSwgcmVkIH0gZnJvbSAna29sb3Jpc3QnXG5pbXBvcnQgeyBjcmVhdGVTZXJ2ZXIgfSBmcm9tICd2aXRlJ1xuaW1wb3J0IHsgVml0ZU5vZGVTZXJ2ZXIgfSBmcm9tICcuL3NlcnZlcidcbmltcG9ydCB7IFZpdGVOb2RlUnVubmVyIH0gZnJvbSAnLi9jbGllbnQnXG5cbmNvbnN0IGFyZ3YgPSBtaW5pbWlzdChwcm9jZXNzLmFyZ3Yuc2xpY2UoMiksIHtcbiAgJ2FsaWFzJzoge1xuICAgIHI6ICdyb290JyxcbiAgICBjOiAnY29uZmlnJyxcbiAgICBoOiAnaGVscCcsXG4gICAgdzogJ3dhdGNoJyxcbiAgICBzOiAnc2lsZW50JyxcbiAgfSxcbiAgJy0tJzogdHJ1ZSxcbiAgJ3N0cmluZyc6IFsncm9vdCcsICdjb25maWcnXSxcbiAgJ2Jvb2xlYW4nOiBbJ2hlbHAnLCAnd2F0Y2gnLCAnc2lsZW50J10sXG4gIHVua25vd24obmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKG5hbWVbMF0gPT09ICctJykge1xuICAgICAgY29uc29sZS5lcnJvcihyZWQoYFVua25vd24gYXJndW1lbnQ6ICR7bmFtZX1gKSlcbiAgICAgIGhlbHAoKVxuICAgICAgcHJvY2Vzcy5leGl0KDEpXG4gICAgfVxuICAgIHJldHVybiB0cnVlXG4gIH0sXG59KVxuXG5pZiAoYXJndi5oZWxwKSB7XG4gIGhlbHAoKVxuICBwcm9jZXNzLmV4aXQoMClcbn1cblxuaWYgKCFhcmd2Ll8ubGVuZ3RoKSB7XG4gIGNvbnNvbGUuZXJyb3IocmVkKCdObyBmaWxlcyBzcGVjaWZpZWQuJykpXG4gIGhlbHAoKVxuICBwcm9jZXNzLmV4aXQoMSlcbn1cblxuLy8gZm9yd2FyZCBhcmd2XG5wcm9jZXNzLmFyZ3YgPSBbLi4ucHJvY2Vzcy5hcmd2LnNsaWNlKDAsIDIpLCAuLi4oYXJndlsnLS0nXSB8fCBbXSldXG5cbnJ1bihhcmd2KVxuXG5mdW5jdGlvbiBoZWxwKCkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICBjb25zb2xlLmxvZyhgXG5Vc2FnZTpcbiAgJCB2aXRlLW5vZGUgW29wdGlvbnNdIFtmaWxlc11cblxuT3B0aW9uczpcbiAgLXIsIC0tcm9vdCA8cGF0aD4gICAgICAke2RpbSgnW3N0cmluZ10nKX0gdXNlIHNwZWNpZmllZCByb290IGRpcmVjdG9yeVxuICAtYywgLS1jb25maWcgPGZpbGU+ICAgICR7ZGltKCdbc3RyaW5nXScpfSB1c2Ugc3BlY2lmaWVkIGNvbmZpZyBmaWxlXG4gIC13LCAtLXdhdGNoICAgICAgICAgICAke2RpbSgnW2Jvb2xlYW5dJyl9IHJlc3RhcnQgb24gZmlsZSBjaGFuZ2VzLCBzaW1pbGFyIHRvIFwibm9kZW1vblwiXG4gIC1zLCAtLXNpbGVudCAgICAgICAgICAke2RpbSgnW2Jvb2xlYW5dJyl9IGRvIG5vdCBlbWl0IGVycm9ycyBhbmQgbG9nc1xuICAtLXZ1ZSAgICAgICAgICAgICAgICAgJHtkaW0oJ1tib29sZWFuXScpfSBzdXBwb3J0IGZvciBpbXBvcnRpbmcgVnVlIGNvbXBvbmVudFxuYClcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbGlPcHRpb25zIHtcbiAgZmlsZXM/OiBzdHJpbmdbXVxuICBfPzogc3RyaW5nW11cbiAgcm9vdD86IHN0cmluZ1xuICBjb25maWc/OiBzdHJpbmdcbiAgd2F0Y2g/OiBib29sZWFuXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJ1bihvcHRpb25zOiBDbGlPcHRpb25zID0ge30pIHtcbiAgY29uc3QgZmlsZXMgPSBvcHRpb25zLmZpbGVzIHx8IG9wdGlvbnMuXyB8fCBbXVxuICBjb25zdCBzZXJ2ZXIgPSBhd2FpdCBjcmVhdGVTZXJ2ZXIoe1xuICAgIGxvZ0xldmVsOiAnZXJyb3InLFxuICAgIGNsZWFyU2NyZWVuOiBmYWxzZSxcbiAgICBjb25maWdGaWxlOiBvcHRpb25zLmNvbmZpZyxcbiAgICByb290OiBvcHRpb25zLnJvb3QsXG4gIH0pXG4gIGF3YWl0IHNlcnZlci5wbHVnaW5Db250YWluZXIuYnVpbGRTdGFydCh7fSlcblxuICBjb25zdCBub2RlID0gbmV3IFZpdGVOb2RlU2VydmVyKHNlcnZlcilcblxuICBjb25zdCBydW5uZXIgPSBuZXcgVml0ZU5vZGVSdW5uZXIoe1xuICAgIHJvb3Q6IHNlcnZlci5jb25maWcucm9vdCxcbiAgICBiYXNlOiBzZXJ2ZXIuY29uZmlnLmJhc2UsXG4gICAgZmV0Y2hNb2R1bGUoaWQpIHtcbiAgICAgIHJldHVybiBub2RlLmZldGNoTW9kdWxlKGlkKVxuICAgIH0sXG4gICAgcmVzb2x2ZUlkKGlkLCBpbXBvcnRlcikge1xuICAgICAgcmV0dXJuIG5vZGUucmVzb2x2ZUlkKGlkLCBpbXBvcnRlcilcbiAgICB9LFxuICB9KVxuXG4gIC8vIHByb3ZpZGUgdGhlIHZpdGUgZGVmaW5lIHZhcmlhYmxlIGluIHRoaXMgY29udGV4dFxuICBhd2FpdCBydW5uZXIuZXhlY3V0ZUlkKCcvQHZpdGUvZW52JylcblxuICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpXG4gICAgYXdhaXQgcnVubmVyLmV4ZWN1dGVGaWxlKGZpbGUpXG5cbiAgaWYgKCFvcHRpb25zLndhdGNoKVxuICAgIGF3YWl0IHNlcnZlci5jbG9zZSgpXG5cbiAgc2VydmVyLndhdGNoZXIub24oJ2NoYW5nZScsIGFzeW5jKGV2ZW50TmFtZSwgcGF0aCkgPT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgY29uc29sZS5sb2coZGltKGBbJHtldmVudE5hbWV9XSAke3BhdGh9YCkpXG5cbiAgICAvLyBpbnZhbGlkYXRlIG1vZHVsZSBjYWNoZSBidXQgbm90IG5vZGVfbW9kdWxlc1xuICAgIEFycmF5LmZyb20ocnVubmVyLm1vZHVsZUNhY2hlLmtleXMoKSlcbiAgICAgIC5mb3JFYWNoKChpKSA9PiB7XG4gICAgICAgIGlmICghaS5pbmNsdWRlcygnbm9kZV9tb2R1bGVzJykpXG4gICAgICAgICAgcnVubmVyLm1vZHVsZUNhY2hlLmRlbGV0ZShpKVxuICAgICAgfSlcblxuICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcylcbiAgICAgIGF3YWl0IHJ1bm5lci5leGVjdXRlRmlsZShmaWxlKVxuICB9KVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFLQSxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7QUFDN0MsRUFBRSxPQUFPLEVBQUU7QUFDWCxJQUFJLENBQUMsRUFBRSxNQUFNO0FBQ2IsSUFBSSxDQUFDLEVBQUUsUUFBUTtBQUNmLElBQUksQ0FBQyxFQUFFLE1BQU07QUFDYixJQUFJLENBQUMsRUFBRSxPQUFPO0FBQ2QsSUFBSSxDQUFDLEVBQUUsUUFBUTtBQUNmLEdBQUc7QUFDSCxFQUFFLElBQUksRUFBRSxJQUFJO0FBQ1osRUFBRSxRQUFRLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO0FBQzlCLEVBQUUsU0FBUyxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUM7QUFDeEMsRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFO0FBQ2hCLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxFQUFFO0FBQ3pCLE1BQU0sT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0RCxNQUFNLElBQUksRUFBRSxDQUFDO0FBQ2IsTUFBTSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RCLEtBQUs7QUFDTCxJQUFJLE9BQU8sSUFBSSxDQUFDO0FBQ2hCLEdBQUc7QUFDSCxDQUFDLENBQUMsQ0FBQztBQUNILElBQUksSUFBSSxDQUFDLElB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
package/dist/client.cjs CHANGED
@@ -46,11 +46,32 @@ const DEFAULT_REQUEST_STUBS = {
46
46
  }
47
47
  }
48
48
  };
49
+ class ModuleCacheMap extends Map {
50
+ normalizePath(fsPath) {
51
+ return fsPath.replace(/\\/g, "/").replace(/^\/@fs\//, "/").replace(/^file:\//, "/").replace(/^\/+/, "/");
52
+ }
53
+ set(fsPath, mod) {
54
+ fsPath = this.normalizePath(fsPath);
55
+ if (!super.has(fsPath))
56
+ super.set(fsPath, mod);
57
+ else
58
+ Object.assign(super.get(fsPath), mod);
59
+ return this;
60
+ }
61
+ get(fsPath) {
62
+ fsPath = this.normalizePath(fsPath);
63
+ return super.get(fsPath);
64
+ }
65
+ delete(fsPath) {
66
+ fsPath = this.normalizePath(fsPath);
67
+ return super.delete(fsPath);
68
+ }
69
+ }
49
70
  class ViteNodeRunner {
50
71
  constructor(options) {
51
72
  this.options = options;
52
73
  this.root = options.root || process.cwd();
53
- this.moduleCache = options.moduleCache || new Map();
74
+ this.moduleCache = options.moduleCache || new ModuleCacheMap();
54
75
  }
55
76
  async executeFile(file) {
56
77
  return await this.cachedRequest(`/@fs/${utils.slash(pathe.resolve(file))}`, []);
@@ -61,11 +82,11 @@ class ViteNodeRunner {
61
82
  async cachedRequest(rawId, callstack) {
62
83
  var _a, _b;
63
84
  const id = utils.normalizeId(rawId, this.options.base);
64
- if ((_a = this.moduleCache.get(id)) == null ? void 0 : _a.promise)
65
- return (_b = this.moduleCache.get(id)) == null ? void 0 : _b.promise;
66
85
  const fsPath = utils.toFilePath(id, this.root);
86
+ if ((_a = this.moduleCache.get(fsPath)) == null ? void 0 : _a.promise)
87
+ return (_b = this.moduleCache.get(fsPath)) == null ? void 0 : _b.promise;
67
88
  const promise = this.directRequest(id, fsPath, callstack);
68
- this.setCache(id, { promise });
89
+ this.moduleCache.set(fsPath, { promise });
69
90
  return await promise;
70
91
  }
71
92
  async directRequest(id, fsPath, callstack) {
@@ -91,7 +112,7 @@ ${[...callstack, dep].reverse().map((p) => `- ${p}`).join("\n")}`);
91
112
  const { code: transformed, externalize } = await this.options.fetchModule(id);
92
113
  if (externalize) {
93
114
  const mod = await this.interopedImport(externalize);
94
- this.setCache(id, { exports: mod });
115
+ this.moduleCache.set(fsPath, { exports: mod });
95
116
  return mod;
96
117
  }
97
118
  if (transformed == null)
@@ -99,7 +120,7 @@ ${[...callstack, dep].reverse().map((p) => `- ${p}`).join("\n")}`);
99
120
  const url$1 = url.pathToFileURL(fsPath).href;
100
121
  const exports = Object.create(null);
101
122
  exports[Symbol.toStringTag] = "Module";
102
- this.setCache(id, { code: transformed, exports });
123
+ this.moduleCache.set(id, { code: transformed, exports });
103
124
  const __filename = url.fileURLToPath(url$1);
104
125
  const moduleProxy = {
105
126
  set exports(value) {
@@ -133,12 +154,6 @@ ${[...callstack, dep].reverse().map((p) => `- ${p}`).join("\n")}`);
133
154
  prepareContext(context) {
134
155
  return context;
135
156
  }
136
- setCache(id, mod) {
137
- if (!this.moduleCache.has(id))
138
- this.moduleCache.set(id, mod);
139
- else
140
- Object.assign(this.moduleCache.get(id), mod);
141
- }
142
157
  shouldResolveId(dep) {
143
158
  if (mlly.isNodeBuiltin(dep) || dep in (this.options.requestStubs || DEFAULT_REQUEST_STUBS))
144
159
  return false;
@@ -194,5 +209,6 @@ function exportAll(exports, sourceModule) {
194
209
  }
195
210
 
196
211
  exports.DEFAULT_REQUEST_STUBS = DEFAULT_REQUEST_STUBS;
212
+ exports.ModuleCacheMap = ModuleCacheMap;
197
213
  exports.ViteNodeRunner = ViteNodeRunner;
198
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmNqcyIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZXF1aXJlIH0gZnJvbSAnbW9kdWxlJ1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCwgcGF0aFRvRmlsZVVSTCB9IGZyb20gJ3VybCdcbmltcG9ydCB2bSBmcm9tICd2bSdcbmltcG9ydCB7IGRpcm5hbWUsIGV4dG5hbWUsIGlzQWJzb2x1dGUsIHJlc29sdmUgfSBmcm9tICdwYXRoZSdcbmltcG9ydCB7IGlzTm9kZUJ1aWx0aW4gfSBmcm9tICdtbGx5J1xuaW1wb3J0IHsgaXNQcmltaXRpdmUsIG5vcm1hbGl6ZUlkLCBzbGFzaCwgdG9GaWxlUGF0aCB9IGZyb20gJy4vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IE1vZHVsZUNhY2hlLCBWaXRlTm9kZVJ1bm5lck9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9SRVFVRVNUX1NUVUJTID0ge1xuICAnL0B2aXRlL2NsaWVudCc6IHtcbiAgICBpbmplY3RRdWVyeTogKGlkOiBzdHJpbmcpID0+IGlkLFxuICAgIGNyZWF0ZUhvdENvbnRleHQoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhY2NlcHQ6ICgpID0+IHt9LFxuICAgICAgICBwcnVuZTogKCkgPT4ge30sXG4gICAgICB9XG4gICAgfSxcbiAgICB1cGRhdGVTdHlsZSgpIHt9LFxuICB9LFxufVxuXG5leHBvcnQgY2xhc3MgVml0ZU5vZGVSdW5uZXIge1xuICByb290OiBzdHJpbmdcblxuICBtb2R1bGVDYWNoZTogTWFwPHN0cmluZywgTW9kdWxlQ2FjaGU+XG5cbiAgY29uc3RydWN0b3IocHVibGljIG9wdGlvbnM6IFZpdGVOb2RlUnVubmVyT3B0aW9ucykge1xuICAgIHRoaXMucm9vdCA9IG9wdGlvbnMucm9vdCB8fCBwcm9jZXNzLmN3ZCgpXG4gICAgdGhpcy5tb2R1bGVDYWNoZSA9IG9wdGlvbnMubW9kdWxlQ2FjaGUgfHwgbmV3IE1hcCgpXG4gIH1cblxuICBhc3luYyBleGVjdXRlRmlsZShmaWxlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jYWNoZWRSZXF1ZXN0KGAvQGZzLyR7c2xhc2gocmVzb2x2ZShmaWxlKSl9YCwgW10pXG4gIH1cblxuICBhc3luYyBleGVjdXRlSWQoaWQ6IHN0cmluZykge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNhY2hlZFJlcXVlc3QoaWQsIFtdKVxuICB9XG5cbiAgYXN5bmMgY2FjaGVkUmVxdWVzdChyYXdJZDogc3RyaW5nLCBjYWxsc3RhY2s6IHN0cmluZ1tdKSB7XG4gICAgY29uc3QgaWQgPSBub3JtYWxpemVJZChyYXdJZCwgdGhpcy5vcHRpb25zLmJhc2UpXG5cbiAgICBpZiAodGhpcy5tb2R1bGVDYWNoZS5nZXQoaWQpPy5wcm9taXNlKVxuICAgICAgcmV0dXJuIHRoaXMubW9kdWxlQ2FjaGUuZ2V0KGlkKT8ucHJvbWlzZVxuXG4gICAgY29uc3QgZnNQYXRoID0gdG9GaWxlUGF0aChpZCwgdGhpcy5yb290KVxuICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLmRpcmVjdFJlcXVlc3QoaWQsIGZzUGF0aCwgY2FsbHN0YWNrKVxuICAgIHRoaXMuc2V0Q2FjaGUoaWQsIHsgcHJvbWlzZSB9KVxuXG4gICAgcmV0dXJuIGF3YWl0IHByb21pc2VcbiAgfVxuXG4gIGFzeW5jIGRpcmVjdFJlcXVlc3QoaWQ6IHN0cmluZywgZnNQYXRoOiBzdHJpbmcsIGNhbGxzdGFjazogc3RyaW5nW10pIHtcbiAgICBjYWxsc3RhY2sgPSBbLi4uY2FsbHN0YWNrLCBpZF1cbiAgICBjb25zdCByZXF1ZXN0ID0gYXN5bmMoZGVwOiBzdHJpbmcpID0+IHtcbiAgICAgIC8vIHByb2JhYmx5IG1lYW5zIGl0IHdhcyBwYXNzZWQgYXMgdmFyaWFibGVcbiAgICAgIC8vIGFuZCB3YXNuJ3QgdHJhbnNmb3JtZWQgYnkgVml0ZVxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5yZXNvbHZlSWQgJiYgdGhpcy5zaG91bGRSZXNvbHZlSWQoZGVwKSkge1xuICAgICAgICBjb25zdCByZXNvbHZlZERlcCA9IGF3YWl0IHRoaXMub3B0aW9ucy5yZXNvbHZlSWQoZGVwLCBpZClcbiAgICAgICAgZGVwID0gcmVzb2x2ZWREZXA/LmlkPy5yZXBsYWNlKHRoaXMucm9vdCwgJycpIHx8IGRlcFxuICAgICAgfVxuICAgICAgaWYgKGNhbGxzdGFjay5pbmNsdWRlcyhkZXApKSB7XG4gICAgICAgIGlmICghdGhpcy5tb2R1bGVDYWNoZS5nZXQoZGVwKT8uZXhwb3J0cylcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFt2aXRlLW5vZGVdIENpcmN1bGFyIGRlcGVuZGVuY3kgZGV0ZWN0ZWRcXG5TdGFjazpcXG4ke1suLi5jYWxsc3RhY2ssIGRlcF0ucmV2ZXJzZSgpLm1hcChwID0+IGAtICR7cH1gKS5qb2luKCdcXG4nKX1gKVxuICAgICAgICByZXR1cm4gdGhpcy5tb2R1bGVDYWNoZS5nZXQoZGVwKSEuZXhwb3J0c1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuY2FjaGVkUmVxdWVzdChkZXAsIGNhbGxzdGFjaylcbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0U3R1YnMgPSB0aGlzLm9wdGlvbnMucmVxdWVzdFN0dWJzIHx8IERFRkFVTFRfUkVRVUVTVF9TVFVCU1xuICAgIGlmIChpZCBpbiByZXF1ZXN0U3R1YnMpXG4gICAgICByZXR1cm4gcmVxdWVzdFN0dWJzW2lkXVxuXG4gICAgY29uc3QgeyBjb2RlOiB0cmFuc2Zvcm1lZCwgZXh0ZXJuYWxpemUgfSA9IGF3YWl0IHRoaXMub3B0aW9ucy5mZXRjaE1vZHVsZShpZClcbiAgICBpZiAoZXh0ZXJuYWxpemUpIHtcbiAgICAgIGNvbnN0IG1vZCA9IGF3YWl0IHRoaXMuaW50ZXJvcGVkSW1wb3J0KGV4dGVybmFsaXplKVxuICAgICAgdGhpcy5zZXRDYWNoZShpZCwgeyBleHBvcnRzOiBtb2QgfSlcbiAgICAgIHJldHVybiBtb2RcbiAgICB9XG5cbiAgICBpZiAodHJhbnNmb3JtZWQgPT0gbnVsbClcbiAgICAgIHRocm93IG5ldyBFcnJvcihgW3ZpdGUtbm9kZV0gRmFpbGVkIHRvIGxvYWQgJHtpZH1gKVxuXG4gICAgLy8gZGlzYW1iaWd1YXRlIHRoZSBgPFVOSVQ+Oi9gIG9uIHdpbmRvd3M6IHNlZSBub2RlanMvbm9kZSMzMTcxMFxuICAgIGNvbnN0IHVybCA9IHBhdGhUb0ZpbGVVUkwoZnNQYXRoKS5ocmVmXG4gICAgY29uc3QgZXhwb3J0czogYW55ID0gT2JqZWN0LmNyZWF0ZShudWxsKVxuICAgIGV4cG9ydHNbU3ltYm9sLnRvU3RyaW5nVGFnXSA9ICdNb2R1bGUnXG5cbiAgICB0aGlzLnNldENhY2hlKGlkLCB7IGNvZGU6IHRyYW5zZm9ybWVkLCBleHBvcnRzIH0pXG5cbiAgICBjb25zdCBfX2ZpbGVuYW1lID0gZmlsZVVSTFRvUGF0aCh1cmwpXG4gICAgY29uc3QgbW9kdWxlUHJveHkgPSB7XG4gICAgICBzZXQgZXhwb3J0cyh2YWx1ZSkge1xuICAgICAgICBleHBvcnRBbGwoZXhwb3J0cywgdmFsdWUpXG4gICAgICAgIGV4cG9ydHMuZGVmYXVsdCA9IHZhbHVlXG4gICAgICB9LFxuICAgICAgZ2V0IGV4cG9ydHMoKSB7XG4gICAgICAgIHJldHVybiBleHBvcnRzLmRlZmF1bHRcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgLy8gQmUgY2FyZWZ1bCB3aGVuIGNoYW5naW5nIHRoaXNcbiAgICAvLyBjaGFuZ2luZyBjb250ZXh0IHdpbGwgY2hhbmdlIGFtb3VudCBvZiBjb2RlIGFkZGVkIG9uIGxpbmUgOjExNCAodm0ucnVuSW5UaGlzQ29udGV4dClcbiAgICAvLyB0aGlzIG1lc3NlcyB1cCBzb3VyY2VtYXBzIGZvciBjb3ZlcmFnZVxuICAgIC8vIGFkanVzdCBgb2Zmc2V0YCB2YXJpYWJsZSBpbiBwYWNrYWdlcy92aXRlc3Qvc3JjL2ludGVncmF0aW9ucy9jb3ZlcmFnZS50cyNMMTAwIGlmIHlvdSBkbyBjaGFuZ2UgdGhpc1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLnByZXBhcmVDb250ZXh0KHtcbiAgICAgIC8vIGVzbSB0cmFuc2Zvcm1lZCBieSBWaXRlXG4gICAgICBfX3ZpdGVfc3NyX2ltcG9ydF9fOiByZXF1ZXN0LFxuICAgICAgX192aXRlX3Nzcl9keW5hbWljX2ltcG9ydF9fOiByZXF1ZXN0LFxuICAgICAgX192aXRlX3Nzcl9leHBvcnRzX186IGV4cG9ydHMsXG4gICAgICBfX3ZpdGVfc3NyX2V4cG9ydEFsbF9fOiAob2JqOiBhbnkpID0+IGV4cG9ydEFsbChleHBvcnRzLCBvYmopLFxuICAgICAgX192aXRlX3Nzcl9pbXBvcnRfbWV0YV9fOiB7IHVybCB9LFxuXG4gICAgICAvLyBjanMgY29tcGFjdFxuICAgICAgcmVxdWlyZTogY3JlYXRlUmVxdWlyZSh1cmwpLFxuICAgICAgZXhwb3J0cyxcbiAgICAgIG1vZHVsZTogbW9kdWxlUHJveHksXG4gICAgICBfX2ZpbGVuYW1lLFxuICAgICAgX19kaXJuYW1lOiBkaXJuYW1lKF9fZmlsZW5hbWUpLFxuICAgIH0pXG5cbiAgICAvLyBhZGQgJ3VzZSBzdHJpY3QnIHNpbmNlIEVTTSBlbmFibGVzIGl0IGJ5IGRlZmF1bHRcbiAgICBjb25zdCBmbiA9IHZtLnJ1bkluVGhpc0NvbnRleHQoYCd1c2Ugc3RyaWN0Jzthc3luYyAoJHtPYmplY3Qua2V5cyhjb250ZXh0KS5qb2luKCcsJyl9KT0+e3ske3RyYW5zZm9ybWVkfVxcbn19YCwge1xuICAgICAgZmlsZW5hbWU6IGZzUGF0aCxcbiAgICAgIGxpbmVPZmZzZXQ6IDAsXG4gICAgfSlcblxuICAgIGF3YWl0IGZuKC4uLk9iamVjdC52YWx1ZXMoY29udGV4dCkpXG5cbiAgICByZXR1cm4gZXhwb3J0c1xuICB9XG5cbiAgcHJlcGFyZUNvbnRleHQoY29udGV4dDogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAgIHJldHVybiBjb250ZXh0XG4gIH1cblxuICBzZXRDYWNoZShpZDogc3RyaW5nLCBtb2Q6IFBhcnRpYWw8TW9kdWxlQ2FjaGU+KSB7XG4gICAgaWYgKCF0aGlzLm1vZHVsZUNhY2hlLmhhcyhpZCkpXG4gICAgICB0aGlzLm1vZHVsZUNhY2hlLnNldChpZCwgbW9kKVxuICAgIGVsc2VcbiAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5tb2R1bGVDYWNoZS5nZXQoaWQpLCBtb2QpXG4gIH1cblxuICBzaG91bGRSZXNvbHZlSWQoZGVwOiBzdHJpbmcpIHtcbiAgICBpZiAoaXNOb2RlQnVpbHRpbihkZXApIHx8IGRlcCBpbiAodGhpcy5vcHRpb25zLnJlcXVlc3RTdHVicyB8fCBERUZBVUxUX1JFUVVFU1RfU1RVQlMpKVxuICAgICAgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gIWlzQWJzb2x1dGUoZGVwKSB8fCAhZXh0bmFtZShkZXApXG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIGlmIGEgbW9kdWxlIHNob3VsZCBiZSBpbnRlcm9wLWVkXG4gICAqIFRoaXMgZnVuY3Rpb24gbW9zdGx5IGZvciB0aGUgYWJpbGl0eSB0byBvdmVycmlkZSBieSBzdWJjbGFzc1xuICAgKi9cbiAgc2hvdWxkSW50ZXJvcChwYXRoOiBzdHJpbmcsIG1vZDogYW55KSB7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5pbnRlcm9wRGVmYXVsdCA9PT0gZmFsc2UpXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICAvLyBuZXZlciBpbnRlcm9wIEVTTSBtb2R1bGVzXG4gICAgLy8gVE9ETzogc2hvdWxkIGFsc28gc2tpcCBmb3IgYC5qc2Agd2l0aCBgdHlwZT1cIm1vZHVsZVwiYFxuICAgIHJldHVybiAhcGF0aC5lbmRzV2l0aCgnLm1qcycpICYmICdkZWZhdWx0JyBpbiBtb2RcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgYSBtb2R1bGUgYW5kIGludGVyb3AgaXRcbiAgICovXG4gIGFzeW5jIGludGVyb3BlZEltcG9ydChwYXRoOiBzdHJpbmcpIHtcbiAgICBjb25zdCBtb2QgPSBhd2FpdCBpbXBvcnQocGF0aClcblxuICAgIGlmICh0aGlzLnNob3VsZEludGVyb3AocGF0aCwgbW9kKSkge1xuICAgICAgY29uc3QgdHJ5RGVmYXVsdCA9IHRoaXMuaGFzTmVzdGVkRGVmYXVsdChtb2QpXG4gICAgICByZXR1cm4gbmV3IFByb3h5KG1vZCwge1xuICAgICAgICBnZXQ6IHByb3h5TWV0aG9kKCdnZXQnLCB0cnlEZWZhdWx0KSxcbiAgICAgICAgc2V0OiBwcm94eU1ldGhvZCgnc2V0JywgdHJ5RGVmYXVsdCksXG4gICAgICAgIGhhczogcHJveHlNZXRob2QoJ2hhcycsIHRyeURlZmF1bHQpLFxuICAgICAgICBkZWxldGVQcm9wZXJ0eTogcHJveHlNZXRob2QoJ2RlbGV0ZVByb3BlcnR5JywgdHJ5RGVmYXVsdCksXG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiBtb2RcbiAgfVxuXG4gIGhhc05lc3RlZERlZmF1bHQodGFyZ2V0OiBhbnkpIHtcbiAgICByZXR1cm4gJ19fZXNNb2R1bGUnIGluIHRhcmdldCAmJiB0YXJnZXQuX19lc01vZHVsZSAmJiAnZGVmYXVsdCcgaW4gdGFyZ2V0LmRlZmF1bHRcbiAgfVxufVxuXG5mdW5jdGlvbiBwcm94eU1ldGhvZChuYW1lOiAnZ2V0JyB8ICdzZXQnIHwgJ2hhcycgfCAnZGVsZXRlUHJvcGVydHknLCB0cnlEZWZhdWx0OiBib29sZWFuKSB7XG4gIHJldHVybiBmdW5jdGlvbih0YXJnZXQ6IGFueSwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIC4uLmFyZ3M6IFthbnk/LCBhbnk/XSkge1xuICAgIGNvbnN0IHJlc3VsdCA9IFJlZmxlY3RbbmFtZV0odGFyZ2V0LCBrZXksIC4uLmFyZ3MpXG4gICAgaWYgKGlzUHJpbWl0aXZlKHRhcmdldC5kZWZhdWx0KSlcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICBpZiAoKHRyeURlZmF1bHQgJiYga2V5ID09PSAnZGVmYXVsdCcpIHx8IHR5cGVvZiByZXN1bHQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgcmV0dXJuIFJlZmxlY3RbbmFtZV0odGFyZ2V0LmRlZmF1bHQsIGtleSwgLi4uYXJncylcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cbn1cblxuZnVuY3Rpb24gZXhwb3J0QWxsKGV4cG9ydHM6IGFueSwgc291cmNlTW9kdWxlOiBhbnkpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gIGZvciAoY29uc3Qga2V5IGluIHNvdXJjZU1vZHVsZSkge1xuICAgIGlmIChrZXkgIT09ICdkZWZhdWx0Jykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwge1xuICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgIGdldCgpIHsgcmV0dXJuIHNvdXJjZU1vZHVsZVtrZXldIH0sXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgICBjYXRjaCAoX2VycikgeyB9XG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsic2xhc2giLCJyZXNvbHZlIiwibm9ybWFsaXplSWQiLCJ0b0ZpbGVQYXRoIiwidXJsIiwicGF0aFRvRmlsZVVSTCIsImZpbGVVUkxUb1BhdGgiLCJjcmVhdGVSZXF1aXJlIiwiZGlybmFtZSIsInZtIiwiaXNOb2RlQnVpbHRpbiIsImlzQWJzb2x1dGUiLCJleHRuYW1lIiwiaXNQcmltaXRpdmUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVFPLE1BQU0scUJBQXdCLEdBQUE7QUFBQSxFQUNuQyxlQUFpQixFQUFBO0FBQUEsSUFDZixXQUFBLEVBQWEsQ0FBQyxFQUFlLEtBQUEsRUFBQTtBQUFBLElBQzdCLGdCQUFtQixHQUFBO0FBQ2pCLE1BQU8sT0FBQTtBQUFBLFFBQ0wsUUFBUSxNQUFNO0FBQUEsU0FBQTtBQUFBLFFBQ2QsT0FBTyxNQUFNO0FBQUEsU0FBQTtBQUFBLE9BQUEsQ0FBQTtBQUFBLEtBQUE7QUFBQSxJQUdqQixXQUFjLEdBQUE7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
214
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmNqcyIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZXF1aXJlIH0gZnJvbSAnbW9kdWxlJ1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCwgcGF0aFRvRmlsZVVSTCB9IGZyb20gJ3VybCdcbmltcG9ydCB2bSBmcm9tICd2bSdcbmltcG9ydCB7IGRpcm5hbWUsIGV4dG5hbWUsIGlzQWJzb2x1dGUsIHJlc29sdmUgfSBmcm9tICdwYXRoZSdcbmltcG9ydCB7IGlzTm9kZUJ1aWx0aW4gfSBmcm9tICdtbGx5J1xuaW1wb3J0IHsgaXNQcmltaXRpdmUsIG5vcm1hbGl6ZUlkLCBzbGFzaCwgdG9GaWxlUGF0aCB9IGZyb20gJy4vdXRpbHMnXG5pbXBvcnQgdHlwZSB7IE1vZHVsZUNhY2hlLCBWaXRlTm9kZVJ1bm5lck9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJ1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9SRVFVRVNUX1NUVUJTID0ge1xuICAnL0B2aXRlL2NsaWVudCc6IHtcbiAgICBpbmplY3RRdWVyeTogKGlkOiBzdHJpbmcpID0+IGlkLFxuICAgIGNyZWF0ZUhvdENvbnRleHQoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBhY2NlcHQ6ICgpID0+IHt9LFxuICAgICAgICBwcnVuZTogKCkgPT4ge30sXG4gICAgICB9XG4gICAgfSxcbiAgICB1cGRhdGVTdHlsZSgpIHt9LFxuICB9LFxufVxuXG5leHBvcnQgY2xhc3MgTW9kdWxlQ2FjaGVNYXAgZXh0ZW5kcyBNYXA8c3RyaW5nLCBNb2R1bGVDYWNoZT4ge1xuICBub3JtYWxpemVQYXRoKGZzUGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGZzUGF0aFxuICAgICAgLnJlcGxhY2UoL1xcXFwvZywgJy8nKVxuICAgICAgLnJlcGxhY2UoL15cXC9AZnNcXC8vLCAnLycpXG4gICAgICAucmVwbGFjZSgvXmZpbGU6XFwvLywgJy8nKVxuICAgICAgLnJlcGxhY2UoL15cXC8rLywgJy8nKVxuICB9XG5cbiAgc2V0KGZzUGF0aDogc3RyaW5nLCBtb2Q6IFBhcnRpYWw8TW9kdWxlQ2FjaGU+KSB7XG4gICAgZnNQYXRoID0gdGhpcy5ub3JtYWxpemVQYXRoKGZzUGF0aClcbiAgICBpZiAoIXN1cGVyLmhhcyhmc1BhdGgpKVxuICAgICAgc3VwZXIuc2V0KGZzUGF0aCwgbW9kKVxuICAgIGVsc2VcbiAgICAgIE9iamVjdC5hc3NpZ24oc3VwZXIuZ2V0KGZzUGF0aCksIG1vZClcbiAgICByZXR1cm4gdGhpc1xuICB9XG5cbiAgZ2V0KGZzUGF0aDogc3RyaW5nKSB7XG4gICAgZnNQYXRoID0gdGhpcy5ub3JtYWxpemVQYXRoKGZzUGF0aClcbiAgICByZXR1cm4gc3VwZXIuZ2V0KGZzUGF0aClcbiAgfVxuXG4gIGRlbGV0ZShmc1BhdGg6IHN0cmluZykge1xuICAgIGZzUGF0aCA9IHRoaXMubm9ybWFsaXplUGF0aChmc1BhdGgpXG4gICAgcmV0dXJuIHN1cGVyLmRlbGV0ZShmc1BhdGgpXG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFZpdGVOb2RlUnVubmVyIHtcbiAgcm9vdDogc3RyaW5nXG5cbiAgLyoqXG4gICAqIEhvbGRzIHRoZSBjYWNoZSBvZiBtb2R1bGVzXG4gICAqIEtleXMgb2YgdGhlIG1hcCBhcmUgZmlsZXBhdGhzLCBvciBwbGFpbiBwYWNrYWdlIG5hbWVzXG4gICAqL1xuICBtb2R1bGVDYWNoZTogTW9kdWxlQ2FjaGVNYXBcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgb3B0aW9uczogVml0ZU5vZGVSdW5uZXJPcHRpb25zKSB7XG4gICAgdGhpcy5yb290ID0gb3B0aW9ucy5yb290IHx8IHByb2Nlc3MuY3dkKClcbiAgICB0aGlzLm1vZHVsZUNhY2hlID0gb3B0aW9ucy5tb2R1bGVDYWNoZSB8fCBuZXcgTW9kdWxlQ2FjaGVNYXAoKVxuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZUZpbGUoZmlsZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY2FjaGVkUmVxdWVzdChgL0Bmcy8ke3NsYXNoKHJlc29sdmUoZmlsZSkpfWAsIFtdKVxuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZUlkKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jYWNoZWRSZXF1ZXN0KGlkLCBbXSlcbiAgfVxuXG4gIGFzeW5jIGNhY2hlZFJlcXVlc3QocmF3SWQ6IHN0cmluZywgY2FsbHN0YWNrOiBzdHJpbmdbXSkge1xuICAgIGNvbnN0IGlkID0gbm9ybWFsaXplSWQocmF3SWQsIHRoaXMub3B0aW9ucy5iYXNlKVxuICAgIGNvbnN0IGZzUGF0aCA9IHRvRmlsZVBhdGgoaWQsIHRoaXMucm9vdClcblxuICAgIGlmICh0aGlzLm1vZHVsZUNhY2hlLmdldChmc1BhdGgpPy5wcm9taXNlKVxuICAgICAgcmV0dXJuIHRoaXMubW9kdWxlQ2FjaGUuZ2V0KGZzUGF0aCk/LnByb21pc2VcblxuICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLmRpcmVjdFJlcXVlc3QoaWQsIGZzUGF0aCwgY2FsbHN0YWNrKVxuICAgIHRoaXMubW9kdWxlQ2FjaGUuc2V0KGZzUGF0aCwgeyBwcm9taXNlIH0pXG5cbiAgICByZXR1cm4gYXdhaXQgcHJvbWlzZVxuICB9XG5cbiAgYXN5bmMgZGlyZWN0UmVxdWVzdChpZDogc3RyaW5nLCBmc1BhdGg6IHN0cmluZywgY2FsbHN0YWNrOiBzdHJpbmdbXSkge1xuICAgIGNhbGxzdGFjayA9IFsuLi5jYWxsc3RhY2ssIGlkXVxuICAgIGNvbnN0IHJlcXVlc3QgPSBhc3luYyhkZXA6IHN0cmluZykgPT4ge1xuICAgICAgLy8gcHJvYmFibHkgbWVhbnMgaXQgd2FzIHBhc3NlZCBhcyB2YXJpYWJsZVxuICAgICAgLy8gYW5kIHdhc24ndCB0cmFuc2Zvcm1lZCBieSBWaXRlXG4gICAgICBpZiAodGhpcy5vcHRpb25zLnJlc29sdmVJZCAmJiB0aGlzLnNob3VsZFJlc29sdmVJZChkZXApKSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkRGVwID0gYXdhaXQgdGhpcy5vcHRpb25zLnJlc29sdmVJZChkZXAsIGlkKVxuICAgICAgICBkZXAgPSByZXNvbHZlZERlcD8uaWQ/LnJlcGxhY2UodGhpcy5yb290LCAnJykgfHwgZGVwXG4gICAgICB9XG5cbiAgICAgIGlmIChjYWxsc3RhY2suaW5jbHVkZXMoZGVwKSkge1xuICAgICAgICBpZiAoIXRoaXMubW9kdWxlQ2FjaGUuZ2V0KGRlcCk/LmV4cG9ydHMpXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBbdml0ZS1ub2RlXSBDaXJjdWxhciBkZXBlbmRlbmN5IGRldGVjdGVkXFxuU3RhY2s6XFxuJHtbLi4uY2FsbHN0YWNrLCBkZXBdLnJldmVyc2UoKS5tYXAocCA9PiBgLSAke3B9YCkuam9pbignXFxuJyl9YClcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kdWxlQ2FjaGUuZ2V0KGRlcCkhLmV4cG9ydHNcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmNhY2hlZFJlcXVlc3QoZGVwLCBjYWxsc3RhY2spXG4gICAgfVxuXG4gICAgY29uc3QgcmVxdWVzdFN0dWJzID0gdGhpcy5vcHRpb25zLnJlcXVlc3RTdHVicyB8fCBERUZBVUxUX1JFUVVFU1RfU1RVQlNcbiAgICBpZiAoaWQgaW4gcmVxdWVzdFN0dWJzKVxuICAgICAgcmV0dXJuIHJlcXVlc3RTdHVic1tpZF1cblxuICAgIGNvbnN0IHsgY29kZTogdHJhbnNmb3JtZWQsIGV4dGVybmFsaXplIH0gPSBhd2FpdCB0aGlzLm9wdGlvbnMuZmV0Y2hNb2R1bGUoaWQpXG4gICAgaWYgKGV4dGVybmFsaXplKSB7XG4gICAgICBjb25zdCBtb2QgPSBhd2FpdCB0aGlzLmludGVyb3BlZEltcG9ydChleHRlcm5hbGl6ZSlcbiAgICAgIHRoaXMubW9kdWxlQ2FjaGUuc2V0KGZzUGF0aCwgeyBleHBvcnRzOiBtb2QgfSlcbiAgICAgIHJldHVybiBtb2RcbiAgICB9XG5cbiAgICBpZiAodHJhbnNmb3JtZWQgPT0gbnVsbClcbiAgICAgIHRocm93IG5ldyBFcnJvcihgW3ZpdGUtbm9kZV0gRmFpbGVkIHRvIGxvYWQgJHtpZH1gKVxuXG4gICAgLy8gZGlzYW1iaWd1YXRlIHRoZSBgPFVOSVQ+Oi9gIG9uIHdpbmRvd3M6IHNlZSBub2RlanMvbm9kZSMzMTcxMFxuICAgIGNvbnN0IHVybCA9IHBhdGhUb0ZpbGVVUkwoZnNQYXRoKS5ocmVmXG4gICAgY29uc3QgZXhwb3J0czogYW55ID0gT2JqZWN0LmNyZWF0ZShudWxsKVxuICAgIGV4cG9ydHNbU3ltYm9sLnRvU3RyaW5nVGFnXSA9ICdNb2R1bGUnXG5cbiAgICB0aGlzLm1vZHVsZUNhY2hlLnNldChpZCwgeyBjb2RlOiB0cmFuc2Zvcm1lZCwgZXhwb3J0cyB9KVxuXG4gICAgY29uc3QgX19maWxlbmFtZSA9IGZpbGVVUkxUb1BhdGgodXJsKVxuICAgIGNvbnN0IG1vZHVsZVByb3h5ID0ge1xuICAgICAgc2V0IGV4cG9ydHModmFsdWUpIHtcbiAgICAgICAgZXhwb3J0QWxsKGV4cG9ydHMsIHZhbHVlKVxuICAgICAgICBleHBvcnRzLmRlZmF1bHQgPSB2YWx1ZVxuICAgICAgfSxcbiAgICAgIGdldCBleHBvcnRzKCkge1xuICAgICAgICByZXR1cm4gZXhwb3J0cy5kZWZhdWx0XG4gICAgICB9LFxuICAgIH1cblxuICAgIC8vIEJlIGNhcmVmdWwgd2hlbiBjaGFuZ2luZyB0aGlzXG4gICAgLy8gY2hhbmdpbmcgY29udGV4dCB3aWxsIGNoYW5nZSBhbW91bnQgb2YgY29kZSBhZGRlZCBvbiBsaW5lIDoxMTQgKHZtLnJ1bkluVGhpc0NvbnRleHQpXG4gICAgLy8gdGhpcyBtZXNzZXMgdXAgc291cmNlbWFwcyBmb3IgY292ZXJhZ2VcbiAgICAvLyBhZGp1c3QgYG9mZnNldGAgdmFyaWFibGUgaW4gcGFja2FnZXMvdml0ZXN0L3NyYy9pbnRlZ3JhdGlvbnMvY292ZXJhZ2UudHMjTDEwMCBpZiB5b3UgZG8gY2hhbmdlIHRoaXNcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5wcmVwYXJlQ29udGV4dCh7XG4gICAgICAvLyBlc20gdHJhbnNmb3JtZWQgYnkgVml0ZVxuICAgICAgX192aXRlX3Nzcl9pbXBvcnRfXzogcmVxdWVzdCxcbiAgICAgIF9fdml0ZV9zc3JfZHluYW1pY19pbXBvcnRfXzogcmVxdWVzdCxcbiAgICAgIF9fdml0ZV9zc3JfZXhwb3J0c19fOiBleHBvcnRzLFxuICAgICAgX192aXRlX3Nzcl9leHBvcnRBbGxfXzogKG9iajogYW55KSA9PiBleHBvcnRBbGwoZXhwb3J0cywgb2JqKSxcbiAgICAgIF9fdml0ZV9zc3JfaW1wb3J0X21ldGFfXzogeyB1cmwgfSxcblxuICAgICAgLy8gY2pzIGNvbXBhY3RcbiAgICAgIHJlcXVpcmU6IGNyZWF0ZVJlcXVpcmUodXJsKSxcbiAgICAgIGV4cG9ydHMsXG4gICAgICBtb2R1bGU6IG1vZHVsZVByb3h5LFxuICAgICAgX19maWxlbmFtZSxcbiAgICAgIF9fZGlybmFtZTogZGlybmFtZShfX2ZpbGVuYW1lKSxcbiAgICB9KVxuXG4gICAgLy8gYWRkICd1c2Ugc3RyaWN0JyBzaW5jZSBFU00gZW5hYmxlcyBpdCBieSBkZWZhdWx0XG4gICAgY29uc3QgZm4gPSB2bS5ydW5JblRoaXNDb250ZXh0KGAndXNlIHN0cmljdCc7YXN5bmMgKCR7T2JqZWN0LmtleXMoY29udGV4dCkuam9pbignLCcpfSk9Pnt7JHt0cmFuc2Zvcm1lZH1cXG59fWAsIHtcbiAgICAgIGZpbGVuYW1lOiBmc1BhdGgsXG4gICAgICBsaW5lT2Zmc2V0OiAwLFxuICAgIH0pXG5cbiAgICBhd2FpdCBmbiguLi5PYmplY3QudmFsdWVzKGNvbnRleHQpKVxuXG4gICAgcmV0dXJuIGV4cG9ydHNcbiAgfVxuXG4gIHByZXBhcmVDb250ZXh0KGNvbnRleHQ6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgICByZXR1cm4gY29udGV4dFxuICB9XG5cbiAgc2hvdWxkUmVzb2x2ZUlkKGRlcDogc3RyaW5nKSB7XG4gICAgaWYgKGlzTm9kZUJ1aWx0aW4oZGVwKSB8fCBkZXAgaW4gKHRoaXMub3B0aW9ucy5yZXF1ZXN0U3R1YnMgfHwgREVGQVVMVF9SRVFVRVNUX1NUVUJTKSlcbiAgICAgIHJldHVybiBmYWxzZVxuXG4gICAgcmV0dXJuICFpc0Fic29sdXRlKGRlcCkgfHwgIWV4dG5hbWUoZGVwKVxuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSBpZiBhIG1vZHVsZSBzaG91bGQgYmUgaW50ZXJvcC1lZFxuICAgKiBUaGlzIGZ1bmN0aW9uIG1vc3RseSBmb3IgdGhlIGFiaWxpdHkgdG8gb3ZlcnJpZGUgYnkgc3ViY2xhc3NcbiAgICovXG4gIHNob3VsZEludGVyb3AocGF0aDogc3RyaW5nLCBtb2Q6IGFueSkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMuaW50ZXJvcERlZmF1bHQgPT09IGZhbHNlKVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgLy8gbmV2ZXIgaW50ZXJvcCBFU00gbW9kdWxlc1xuICAgIC8vIFRPRE86IHNob3VsZCBhbHNvIHNraXAgZm9yIGAuanNgIHdpdGggYHR5cGU9XCJtb2R1bGVcImBcbiAgICByZXR1cm4gIXBhdGguZW5kc1dpdGgoJy5tanMnKSAmJiAnZGVmYXVsdCcgaW4gbW9kXG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGEgbW9kdWxlIGFuZCBpbnRlcm9wIGl0XG4gICAqL1xuICBhc3luYyBpbnRlcm9wZWRJbXBvcnQocGF0aDogc3RyaW5nKSB7XG4gICAgY29uc3QgbW9kID0gYXdhaXQgaW1wb3J0KHBhdGgpXG5cbiAgICBpZiAodGhpcy5zaG91bGRJbnRlcm9wKHBhdGgsIG1vZCkpIHtcbiAgICAgIGNvbnN0IHRyeURlZmF1bHQgPSB0aGlzLmhhc05lc3RlZERlZmF1bHQobW9kKVxuICAgICAgcmV0dXJuIG5ldyBQcm94eShtb2QsIHtcbiAgICAgICAgZ2V0OiBwcm94eU1ldGhvZCgnZ2V0JywgdHJ5RGVmYXVsdCksXG4gICAgICAgIHNldDogcHJveHlNZXRob2QoJ3NldCcsIHRyeURlZmF1bHQpLFxuICAgICAgICBoYXM6IHByb3h5TWV0aG9kKCdoYXMnLCB0cnlEZWZhdWx0KSxcbiAgICAgICAgZGVsZXRlUHJvcGVydHk6IHByb3h5TWV0aG9kKCdkZWxldGVQcm9wZXJ0eScsIHRyeURlZmF1bHQpLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gbW9kXG4gIH1cblxuICBoYXNOZXN0ZWREZWZhdWx0KHRhcmdldDogYW55KSB7XG4gICAgcmV0dXJuICdfX2VzTW9kdWxlJyBpbiB0YXJnZXQgJiYgdGFyZ2V0Ll9fZXNNb2R1bGUgJiYgJ2RlZmF1bHQnIGluIHRhcmdldC5kZWZhdWx0XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJveHlNZXRob2QobmFtZTogJ2dldCcgfCAnc2V0JyB8ICdoYXMnIHwgJ2RlbGV0ZVByb3BlcnR5JywgdHJ5RGVmYXVsdDogYm9vbGVhbikge1xuICByZXR1cm4gZnVuY3Rpb24odGFyZ2V0OiBhbnksIGtleTogc3RyaW5nIHwgc3ltYm9sLCAuLi5hcmdzOiBbYW55PywgYW55P10pIHtcbiAgICBjb25zdCByZXN1bHQgPSBSZWZsZWN0W25hbWVdKHRhcmdldCwga2V5LCAuLi5hcmdzKVxuICAgIGlmIChpc1ByaW1pdGl2ZSh0YXJnZXQuZGVmYXVsdCkpXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgaWYgKCh0cnlEZWZhdWx0ICYmIGtleSA9PT0gJ2RlZmF1bHQnKSB8fCB0eXBlb2YgcmVzdWx0ID09PSAndW5kZWZpbmVkJylcbiAgICAgIHJldHVybiBSZWZsZWN0W25hbWVdKHRhcmdldC5kZWZhdWx0LCBrZXksIC4uLmFyZ3MpXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG59XG5cbmZ1bmN0aW9uIGV4cG9ydEFsbChleHBvcnRzOiBhbnksIHNvdXJjZU1vZHVsZTogYW55KSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICBmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2VNb2R1bGUpIHtcbiAgICBpZiAoa2V5ICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHtcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICBnZXQoKSB7IHJldHVybiBzb3VyY2VNb2R1bGVba2V5XSB9LFxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgY2F0Y2ggKF9lcnIpIHsgfVxuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbInNsYXNoIiwicmVzb2x2ZSIsIm5vcm1hbGl6ZUlkIiwidG9GaWxlUGF0aCIsInVybCIsInBhdGhUb0ZpbGVVUkwiLCJmaWxlVVJMVG9QYXRoIiwiY3JlYXRlUmVxdWlyZSIsImRpcm5hbWUiLCJ2bSIsImlzTm9kZUJ1aWx0aW4iLCJpc0Fic29sdXRlIiwiZXh0bmFtZSIsImlzUHJpbWl0aXZlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRTyxNQUFNLHFCQUF3QixHQUFBO0FBQUEsRUFDbkMsZUFBaUIsRUFBQTtBQUFBLElBQ2YsV0FBQSxFQUFhLENBQUMsRUFBZSxLQUFBLEVBQUE7QUFBQSxJQUM3QixnQkFBbUIsR0FBQTtBQUNqQixNQUFPLE9BQUE7QUFBQSxRQUNMLFFBQVEsTUFBTTtBQUFBLFNBQUE7QUFBQSxRQUNkLE9BQU8sTUFBTTtBQUFBLFNBQUE7QUFBQSxPQUFBLENBQUE7QUFBQSxLQUFBO0FBQUEsSUFHakIsV0FBYyxHQUFBO0FBQUEsS0FBQTtBQUFBLEdBQUE7QUFBQSxFQUFBO0FBSVgsTUFBQSxjQUFBLFNBQTZCLEdBQXlCLENBQUE7QUFBQSxFQUMzRCxjQUFjLE1BQWdCLEVBQUE7QUFDNUIsSUFBTyxPQUFBLE1BQUEsQ0FDSixPQUFRLENBQUEsS0FBQSxFQUFPLEdBQ2YsQ0FBQSxDQUFBLE9BQUEsQ0FBUSxVQUFZLEVBQUEsR0FBQSxDQUFBLENBQ3BCLE9BQVEsQ0FBQSxVQUFBLEVBQVksR0FDcEIsQ0FBQSxDQUFBLE9BQUEsQ0FBUSxNQUFRLEVBQUEsR0FBQSxD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
package/dist/client.js CHANGED
@@ -20,11 +20,32 @@ const DEFAULT_REQUEST_STUBS = {
20
20
  }
21
21
  }
22
22
  };
23
+ class ModuleCacheMap extends Map {
24
+ normalizePath(fsPath) {
25
+ return fsPath.replace(/\\/g, "/").replace(/^\/@fs\//, "/").replace(/^file:\//, "/").replace(/^\/+/, "/");
26
+ }
27
+ set(fsPath, mod) {
28
+ fsPath = this.normalizePath(fsPath);
29
+ if (!super.has(fsPath))
30
+ super.set(fsPath, mod);
31
+ else
32
+ Object.assign(super.get(fsPath), mod);
33
+ return this;
34
+ }
35
+ get(fsPath) {
36
+ fsPath = this.normalizePath(fsPath);
37
+ return super.get(fsPath);
38
+ }
39
+ delete(fsPath) {
40
+ fsPath = this.normalizePath(fsPath);
41
+ return super.delete(fsPath);
42
+ }
43
+ }
23
44
  class ViteNodeRunner {
24
45
  constructor(options) {
25
46
  this.options = options;
26
47
  this.root = options.root || process.cwd();
27
- this.moduleCache = options.moduleCache || new Map();
48
+ this.moduleCache = options.moduleCache || new ModuleCacheMap();
28
49
  }
29
50
  async executeFile(file) {
30
51
  return await this.cachedRequest(`/@fs/${slash(resolve(file))}`, []);
@@ -35,11 +56,11 @@ class ViteNodeRunner {
35
56
  async cachedRequest(rawId, callstack) {
36
57
  var _a, _b;
37
58
  const id = normalizeId(rawId, this.options.base);
38
- if ((_a = this.moduleCache.get(id)) == null ? void 0 : _a.promise)
39
- return (_b = this.moduleCache.get(id)) == null ? void 0 : _b.promise;
40
59
  const fsPath = toFilePath(id, this.root);
60
+ if ((_a = this.moduleCache.get(fsPath)) == null ? void 0 : _a.promise)
61
+ return (_b = this.moduleCache.get(fsPath)) == null ? void 0 : _b.promise;
41
62
  const promise = this.directRequest(id, fsPath, callstack);
42
- this.setCache(id, { promise });
63
+ this.moduleCache.set(fsPath, { promise });
43
64
  return await promise;
44
65
  }
45
66
  async directRequest(id, fsPath, callstack) {
@@ -65,7 +86,7 @@ ${[...callstack, dep].reverse().map((p) => `- ${p}`).join("\n")}`);
65
86
  const { code: transformed, externalize } = await this.options.fetchModule(id);
66
87
  if (externalize) {
67
88
  const mod = await this.interopedImport(externalize);
68
- this.setCache(id, { exports: mod });
89
+ this.moduleCache.set(fsPath, { exports: mod });
69
90
  return mod;
70
91
  }
71
92
  if (transformed == null)
@@ -73,7 +94,7 @@ ${[...callstack, dep].reverse().map((p) => `- ${p}`).join("\n")}`);
73
94
  const url = pathToFileURL(fsPath).href;
74
95
  const exports = Object.create(null);
75
96
  exports[Symbol.toStringTag] = "Module";
76
- this.setCache(id, { code: transformed, exports });
97
+ this.moduleCache.set(id, { code: transformed, exports });
77
98
  const __filename = fileURLToPath(url);
78
99
  const moduleProxy = {
79
100
  set exports(value) {
@@ -107,12 +128,6 @@ ${[...callstack, dep].reverse().map((p) => `- ${p}`).join("\n")}`);
107
128
  prepareContext(context) {
108
129
  return context;
109
130
  }
110
- setCache(id, mod) {
111
- if (!this.moduleCache.has(id))
112
- this.moduleCache.set(id, mod);
113
- else
114
- Object.assign(this.moduleCache.get(id), mod);
115
- }
116
131
  shouldResolveId(dep) {
117
132
  if (isNodeBuiltin(dep) || dep in (this.options.requestStubs || DEFAULT_REQUEST_STUBS))
118
133
  return false;
@@ -167,5 +182,5 @@ function exportAll(exports, sourceModule) {
167
182
  }
168
183
  }
169
184
 
170
- export { DEFAULT_REQUEST_STUBS, ViteNodeRunner };
171
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlcyI6WyIuLi9zcmMvY2xpZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tICdtb2R1bGUnXG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoLCBwYXRoVG9GaWxlVVJMIH0gZnJvbSAndXJsJ1xuaW1wb3J0IHZtIGZyb20gJ3ZtJ1xuaW1wb3J0IHsgZGlybmFtZSwgZXh0bmFtZSwgaXNBYnNvbHV0ZSwgcmVzb2x2ZSB9IGZyb20gJ3BhdGhlJ1xuaW1wb3J0IHsgaXNOb2RlQnVpbHRpbiB9IGZyb20gJ21sbHknXG5pbXBvcnQgeyBpc1ByaW1pdGl2ZSwgbm9ybWFsaXplSWQsIHNsYXNoLCB0b0ZpbGVQYXRoIH0gZnJvbSAnLi91dGlscydcbmltcG9ydCB0eXBlIHsgTW9kdWxlQ2FjaGUsIFZpdGVOb2RlUnVubmVyT3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnXG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1JFUVVFU1RfU1RVQlMgPSB7XG4gICcvQHZpdGUvY2xpZW50Jzoge1xuICAgIGluamVjdFF1ZXJ5OiAoaWQ6IHN0cmluZykgPT4gaWQsXG4gICAgY3JlYXRlSG90Q29udGV4dCgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFjY2VwdDogKCkgPT4ge30sXG4gICAgICAgIHBydW5lOiAoKSA9PiB7fSxcbiAgICAgIH1cbiAgICB9LFxuICAgIHVwZGF0ZVN0eWxlKCkge30sXG4gIH0sXG59XG5cbmV4cG9ydCBjbGFzcyBWaXRlTm9kZVJ1bm5lciB7XG4gIHJvb3Q6IHN0cmluZ1xuXG4gIG1vZHVsZUNhY2hlOiBNYXA8c3RyaW5nLCBNb2R1bGVDYWNoZT5cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgb3B0aW9uczogVml0ZU5vZGVSdW5uZXJPcHRpb25zKSB7XG4gICAgdGhpcy5yb290ID0gb3B0aW9ucy5yb290IHx8IHByb2Nlc3MuY3dkKClcbiAgICB0aGlzLm1vZHVsZUNhY2hlID0gb3B0aW9ucy5tb2R1bGVDYWNoZSB8fCBuZXcgTWFwKClcbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGVGaWxlKGZpbGU6IHN0cmluZykge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNhY2hlZFJlcXVlc3QoYC9AZnMvJHtzbGFzaChyZXNvbHZlKGZpbGUpKX1gLCBbXSlcbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGVJZChpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY2FjaGVkUmVxdWVzdChpZCwgW10pXG4gIH1cblxuICBhc3luYyBjYWNoZWRSZXF1ZXN0KHJhd0lkOiBzdHJpbmcsIGNhbGxzdGFjazogc3RyaW5nW10pIHtcbiAgICBjb25zdCBpZCA9IG5vcm1hbGl6ZUlkKHJhd0lkLCB0aGlzLm9wdGlvbnMuYmFzZSlcblxuICAgIGlmICh0aGlzLm1vZHVsZUNhY2hlLmdldChpZCk/LnByb21pc2UpXG4gICAgICByZXR1cm4gdGhpcy5tb2R1bGVDYWNoZS5nZXQoaWQpPy5wcm9taXNlXG5cbiAgICBjb25zdCBmc1BhdGggPSB0b0ZpbGVQYXRoKGlkLCB0aGlzLnJvb3QpXG4gICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuZGlyZWN0UmVxdWVzdChpZCwgZnNQYXRoLCBjYWxsc3RhY2spXG4gICAgdGhpcy5zZXRDYWNoZShpZCwgeyBwcm9taXNlIH0pXG5cbiAgICByZXR1cm4gYXdhaXQgcHJvbWlzZVxuICB9XG5cbiAgYXN5bmMgZGlyZWN0UmVxdWVzdChpZDogc3RyaW5nLCBmc1BhdGg6IHN0cmluZywgY2FsbHN0YWNrOiBzdHJpbmdbXSkge1xuICAgIGNhbGxzdGFjayA9IFsuLi5jYWxsc3RhY2ssIGlkXVxuICAgIGNvbnN0IHJlcXVlc3QgPSBhc3luYyhkZXA6IHN0cmluZykgPT4ge1xuICAgICAgLy8gcHJvYmFibHkgbWVhbnMgaXQgd2FzIHBhc3NlZCBhcyB2YXJpYWJsZVxuICAgICAgLy8gYW5kIHdhc24ndCB0cmFuc2Zvcm1lZCBieSBWaXRlXG4gICAgICBpZiAodGhpcy5vcHRpb25zLnJlc29sdmVJZCAmJiB0aGlzLnNob3VsZFJlc29sdmVJZChkZXApKSB7XG4gICAgICAgIGNvbnN0IHJlc29sdmVkRGVwID0gYXdhaXQgdGhpcy5vcHRpb25zLnJlc29sdmVJZChkZXAsIGlkKVxuICAgICAgICBkZXAgPSByZXNvbHZlZERlcD8uaWQ/LnJlcGxhY2UodGhpcy5yb290LCAnJykgfHwgZGVwXG4gICAgICB9XG4gICAgICBpZiAoY2FsbHN0YWNrLmluY2x1ZGVzKGRlcCkpIHtcbiAgICAgICAgaWYgKCF0aGlzLm1vZHVsZUNhY2hlLmdldChkZXApPy5leHBvcnRzKVxuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgW3ZpdGUtbm9kZV0gQ2lyY3VsYXIgZGVwZW5kZW5jeSBkZXRlY3RlZFxcblN0YWNrOlxcbiR7Wy4uLmNhbGxzdGFjaywgZGVwXS5yZXZlcnNlKCkubWFwKHAgPT4gYC0gJHtwfWApLmpvaW4oJ1xcbicpfWApXG4gICAgICAgIHJldHVybiB0aGlzLm1vZHVsZUNhY2hlLmdldChkZXApIS5leHBvcnRzXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5jYWNoZWRSZXF1ZXN0KGRlcCwgY2FsbHN0YWNrKVxuICAgIH1cblxuICAgIGNvbnN0IHJlcXVlc3RTdHVicyA9IHRoaXMub3B0aW9ucy5yZXF1ZXN0U3R1YnMgfHwgREVGQVVMVF9SRVFVRVNUX1NUVUJTXG4gICAgaWYgKGlkIGluIHJlcXVlc3RTdHVicylcbiAgICAgIHJldHVybiByZXF1ZXN0U3R1YnNbaWRdXG5cbiAgICBjb25zdCB7IGNvZGU6IHRyYW5zZm9ybWVkLCBleHRlcm5hbGl6ZSB9ID0gYXdhaXQgdGhpcy5vcHRpb25zLmZldGNoTW9kdWxlKGlkKVxuICAgIGlmIChleHRlcm5hbGl6ZSkge1xuICAgICAgY29uc3QgbW9kID0gYXdhaXQgdGhpcy5pbnRlcm9wZWRJbXBvcnQoZXh0ZXJuYWxpemUpXG4gICAgICB0aGlzLnNldENhY2hlKGlkLCB7IGV4cG9ydHM6IG1vZCB9KVxuICAgICAgcmV0dXJuIG1vZFxuICAgIH1cblxuICAgIGlmICh0cmFuc2Zvcm1lZCA9PSBudWxsKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBbdml0ZS1ub2RlXSBGYWlsZWQgdG8gbG9hZCAke2lkfWApXG5cbiAgICAvLyBkaXNhbWJpZ3VhdGUgdGhlIGA8VU5JVD46L2Agb24gd2luZG93czogc2VlIG5vZGVqcy9ub2RlIzMxNzEwXG4gICAgY29uc3QgdXJsID0gcGF0aFRvRmlsZVVSTChmc1BhdGgpLmhyZWZcbiAgICBjb25zdCBleHBvcnRzOiBhbnkgPSBPYmplY3QuY3JlYXRlKG51bGwpXG4gICAgZXhwb3J0c1tTeW1ib2wudG9TdHJpbmdUYWddID0gJ01vZHVsZSdcblxuICAgIHRoaXMuc2V0Q2FjaGUoaWQsIHsgY29kZTogdHJhbnNmb3JtZWQsIGV4cG9ydHMgfSlcblxuICAgIGNvbnN0IF9fZmlsZW5hbWUgPSBmaWxlVVJMVG9QYXRoKHVybClcbiAgICBjb25zdCBtb2R1bGVQcm94eSA9IHtcbiAgICAgIHNldCBleHBvcnRzKHZhbHVlKSB7XG4gICAgICAgIGV4cG9ydEFsbChleHBvcnRzLCB2YWx1ZSlcbiAgICAgICAgZXhwb3J0cy5kZWZhdWx0ID0gdmFsdWVcbiAgICAgIH0sXG4gICAgICBnZXQgZXhwb3J0cygpIHtcbiAgICAgICAgcmV0dXJuIGV4cG9ydHMuZGVmYXVsdFxuICAgICAgfSxcbiAgICB9XG5cbiAgICAvLyBCZSBjYXJlZnVsIHdoZW4gY2hhbmdpbmcgdGhpc1xuICAgIC8vIGNoYW5naW5nIGNvbnRleHQgd2lsbCBjaGFuZ2UgYW1vdW50IG9mIGNvZGUgYWRkZWQgb24gbGluZSA6MTE0ICh2bS5ydW5JblRoaXNDb250ZXh0KVxuICAgIC8vIHRoaXMgbWVzc2VzIHVwIHNvdXJjZW1hcHMgZm9yIGNvdmVyYWdlXG4gICAgLy8gYWRqdXN0IGBvZmZzZXRgIHZhcmlhYmxlIGluIHBhY2thZ2VzL3ZpdGVzdC9zcmMvaW50ZWdyYXRpb25zL2NvdmVyYWdlLnRzI0wxMDAgaWYgeW91IGRvIGNoYW5nZSB0aGlzXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMucHJlcGFyZUNvbnRleHQoe1xuICAgICAgLy8gZXNtIHRyYW5zZm9ybWVkIGJ5IFZpdGVcbiAgICAgIF9fdml0ZV9zc3JfaW1wb3J0X186IHJlcXVlc3QsXG4gICAgICBfX3ZpdGVfc3NyX2R5bmFtaWNfaW1wb3J0X186IHJlcXVlc3QsXG4gICAgICBfX3ZpdGVfc3NyX2V4cG9ydHNfXzogZXhwb3J0cyxcbiAgICAgIF9fdml0ZV9zc3JfZXhwb3J0QWxsX186IChvYmo6IGFueSkgPT4gZXhwb3J0QWxsKGV4cG9ydHMsIG9iaiksXG4gICAgICBfX3ZpdGVfc3NyX2ltcG9ydF9tZXRhX186IHsgdXJsIH0sXG5cbiAgICAgIC8vIGNqcyBjb21wYWN0XG4gICAgICByZXF1aXJlOiBjcmVhdGVSZXF1aXJlKHVybCksXG4gICAgICBleHBvcnRzLFxuICAgICAgbW9kdWxlOiBtb2R1bGVQcm94eSxcbiAgICAgIF9fZmlsZW5hbWUsXG4gICAgICBfX2Rpcm5hbWU6IGRpcm5hbWUoX19maWxlbmFtZSksXG4gICAgfSlcblxuICAgIC8vIGFkZCAndXNlIHN0cmljdCcgc2luY2UgRVNNIGVuYWJsZXMgaXQgYnkgZGVmYXVsdFxuICAgIGNvbnN0IGZuID0gdm0ucnVuSW5UaGlzQ29udGV4dChgJ3VzZSBzdHJpY3QnO2FzeW5jICgke09iamVjdC5rZXlzKGNvbnRleHQpLmpvaW4oJywnKX0pPT57eyR7dHJhbnNmb3JtZWR9XFxufX1gLCB7XG4gICAgICBmaWxlbmFtZTogZnNQYXRoLFxuICAgICAgbGluZU9mZnNldDogMCxcbiAgICB9KVxuXG4gICAgYXdhaXQgZm4oLi4uT2JqZWN0LnZhbHVlcyhjb250ZXh0KSlcblxuICAgIHJldHVybiBleHBvcnRzXG4gIH1cblxuICBwcmVwYXJlQ29udGV4dChjb250ZXh0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gICAgcmV0dXJuIGNvbnRleHRcbiAgfVxuXG4gIHNldENhY2hlKGlkOiBzdHJpbmcsIG1vZDogUGFydGlhbDxNb2R1bGVDYWNoZT4pIHtcbiAgICBpZiAoIXRoaXMubW9kdWxlQ2FjaGUuaGFzKGlkKSlcbiAgICAgIHRoaXMubW9kdWxlQ2FjaGUuc2V0KGlkLCBtb2QpXG4gICAgZWxzZVxuICAgICAgT2JqZWN0LmFzc2lnbih0aGlzLm1vZHVsZUNhY2hlLmdldChpZCksIG1vZClcbiAgfVxuXG4gIHNob3VsZFJlc29sdmVJZChkZXA6IHN0cmluZykge1xuICAgIGlmIChpc05vZGVCdWlsdGluKGRlcCkgfHwgZGVwIGluICh0aGlzLm9wdGlvbnMucmVxdWVzdFN0dWJzIHx8IERFRkFVTFRfUkVRVUVTVF9TVFVCUykpXG4gICAgICByZXR1cm4gZmFsc2VcblxuICAgIHJldHVybiAhaXNBYnNvbHV0ZShkZXApIHx8ICFleHRuYW1lKGRlcClcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgaWYgYSBtb2R1bGUgc2hvdWxkIGJlIGludGVyb3AtZWRcbiAgICogVGhpcyBmdW5jdGlvbiBtb3N0bHkgZm9yIHRoZSBhYmlsaXR5IHRvIG92ZXJyaWRlIGJ5IHN1YmNsYXNzXG4gICAqL1xuICBzaG91bGRJbnRlcm9wKHBhdGg6IHN0cmluZywgbW9kOiBhbnkpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLmludGVyb3BEZWZhdWx0ID09PSBmYWxzZSlcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIC8vIG5ldmVyIGludGVyb3AgRVNNIG1vZHVsZXNcbiAgICAvLyBUT0RPOiBzaG91bGQgYWxzbyBza2lwIGZvciBgLmpzYCB3aXRoIGB0eXBlPVwibW9kdWxlXCJgXG4gICAgcmV0dXJuICFwYXRoLmVuZHNXaXRoKCcubWpzJykgJiYgJ2RlZmF1bHQnIGluIG1vZFxuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhIG1vZHVsZSBhbmQgaW50ZXJvcCBpdFxuICAgKi9cbiAgYXN5bmMgaW50ZXJvcGVkSW1wb3J0KHBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IG1vZCA9IGF3YWl0IGltcG9ydChwYXRoKVxuXG4gICAgaWYgKHRoaXMuc2hvdWxkSW50ZXJvcChwYXRoLCBtb2QpKSB7XG4gICAgICBjb25zdCB0cnlEZWZhdWx0ID0gdGhpcy5oYXNOZXN0ZWREZWZhdWx0KG1vZClcbiAgICAgIHJldHVybiBuZXcgUHJveHkobW9kLCB7XG4gICAgICAgIGdldDogcHJveHlNZXRob2QoJ2dldCcsIHRyeURlZmF1bHQpLFxuICAgICAgICBzZXQ6IHByb3h5TWV0aG9kKCdzZXQnLCB0cnlEZWZhdWx0KSxcbiAgICAgICAgaGFzOiBwcm94eU1ldGhvZCgnaGFzJywgdHJ5RGVmYXVsdCksXG4gICAgICAgIGRlbGV0ZVByb3BlcnR5OiBwcm94eU1ldGhvZCgnZGVsZXRlUHJvcGVydHknLCB0cnlEZWZhdWx0KSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIG1vZFxuICB9XG5cbiAgaGFzTmVzdGVkRGVmYXVsdCh0YXJnZXQ6IGFueSkge1xuICAgIHJldHVybiAnX19lc01vZHVsZScgaW4gdGFyZ2V0ICYmIHRhcmdldC5fX2VzTW9kdWxlICYmICdkZWZhdWx0JyBpbiB0YXJnZXQuZGVmYXVsdFxuICB9XG59XG5cbmZ1bmN0aW9uIHByb3h5TWV0aG9kKG5hbWU6ICdnZXQnIHwgJ3NldCcgfCAnaGFzJyB8ICdkZWxldGVQcm9wZXJ0eScsIHRyeURlZmF1bHQ6IGJvb2xlYW4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKHRhcmdldDogYW55LCBrZXk6IHN0cmluZyB8IHN5bWJvbCwgLi4uYXJnczogW2FueT8sIGFueT9dKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gUmVmbGVjdFtuYW1lXSh0YXJnZXQsIGtleSwgLi4uYXJncylcbiAgICBpZiAoaXNQcmltaXRpdmUodGFyZ2V0LmRlZmF1bHQpKVxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIGlmICgodHJ5RGVmYXVsdCAmJiBrZXkgPT09ICdkZWZhdWx0JykgfHwgdHlwZW9mIHJlc3VsdCA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICByZXR1cm4gUmVmbGVjdFtuYW1lXSh0YXJnZXQuZGVmYXVsdCwga2V5LCAuLi5hcmdzKVxuICAgIHJldHVybiByZXN1bHRcbiAgfVxufVxuXG5mdW5jdGlvbiBleHBvcnRBbGwoZXhwb3J0czogYW55LCBzb3VyY2VNb2R1bGU6IGFueSkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgZm9yIChjb25zdCBrZXkgaW4gc291cmNlTW9kdWxlKSB7XG4gICAgaWYgKGtleSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICB0cnkge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7XG4gICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgZ2V0KCkgeyByZXR1cm4gc291cmNlTW9kdWxlW2tleV0gfSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIGNhdGNoIChfZXJyKSB7IH1cbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBTVksTUFBQyxxQkFBcUIsR0FBRztBQUNyQyxFQUFFLGVBQWUsRUFBRTtBQUNuQixJQUFJLFdBQVcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFO0FBQzNCLElBQUksZ0JBQWdCLEdBQUc7QUFDdkIsTUFBTSxPQUFPO0FBQ2IsUUFBUSxNQUFNLEVBQUUsTUFBTTtBQUN0QixTQUFTO0FBQ1QsUUFBUSxLQUFLLEVBQUUsTUFBTTtBQUNyQixTQUFTO0FBQ1QsT0FBTyxDQUFDO0FBQ1IsS0FBSztBQUNMLElBQUksV0FBVyxHQUFHO0FBQ2xCLEtBQUs7QUFDTCxHQUFHO0FBQ0gsRUFBRTtBQUNLLE1BQU0sY0FBYyxDQUFDO0FBQzVCLEVBQUUsV0FBVyxDQUFDLE9BQU8sRUFBRTtBQUN2QixJQUFJLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0FBQzNCLElBQUksSUFBSSxDQUFDLElBQUksR0FBRyxPQUFPLENBQUMsSUFBSSxJQUFJLE9BQU8sQ0FB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
185
+ export { DEFAULT_REQUEST_STUBS, ModuleCacheMap, ViteNodeRunner };
186
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlcyI6WyIuLi9zcmMvY2xpZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tICdtb2R1bGUnXG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoLCBwYXRoVG9GaWxlVVJMIH0gZnJvbSAndXJsJ1xuaW1wb3J0IHZtIGZyb20gJ3ZtJ1xuaW1wb3J0IHsgZGlybmFtZSwgZXh0bmFtZSwgaXNBYnNvbHV0ZSwgcmVzb2x2ZSB9IGZyb20gJ3BhdGhlJ1xuaW1wb3J0IHsgaXNOb2RlQnVpbHRpbiB9IGZyb20gJ21sbHknXG5pbXBvcnQgeyBpc1ByaW1pdGl2ZSwgbm9ybWFsaXplSWQsIHNsYXNoLCB0b0ZpbGVQYXRoIH0gZnJvbSAnLi91dGlscydcbmltcG9ydCB0eXBlIHsgTW9kdWxlQ2FjaGUsIFZpdGVOb2RlUnVubmVyT3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnXG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1JFUVVFU1RfU1RVQlMgPSB7XG4gICcvQHZpdGUvY2xpZW50Jzoge1xuICAgIGluamVjdFF1ZXJ5OiAoaWQ6IHN0cmluZykgPT4gaWQsXG4gICAgY3JlYXRlSG90Q29udGV4dCgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFjY2VwdDogKCkgPT4ge30sXG4gICAgICAgIHBydW5lOiAoKSA9PiB7fSxcbiAgICAgIH1cbiAgICB9LFxuICAgIHVwZGF0ZVN0eWxlKCkge30sXG4gIH0sXG59XG5cbmV4cG9ydCBjbGFzcyBNb2R1bGVDYWNoZU1hcCBleHRlbmRzIE1hcDxzdHJpbmcsIE1vZHVsZUNhY2hlPiB7XG4gIG5vcm1hbGl6ZVBhdGgoZnNQYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZnNQYXRoXG4gICAgICAucmVwbGFjZSgvXFxcXC9nLCAnLycpXG4gICAgICAucmVwbGFjZSgvXlxcL0Bmc1xcLy8sICcvJylcbiAgICAgIC5yZXBsYWNlKC9eZmlsZTpcXC8vLCAnLycpXG4gICAgICAucmVwbGFjZSgvXlxcLysvLCAnLycpXG4gIH1cblxuICBzZXQoZnNQYXRoOiBzdHJpbmcsIG1vZDogUGFydGlhbDxNb2R1bGVDYWNoZT4pIHtcbiAgICBmc1BhdGggPSB0aGlzLm5vcm1hbGl6ZVBhdGgoZnNQYXRoKVxuICAgIGlmICghc3VwZXIuaGFzKGZzUGF0aCkpXG4gICAgICBzdXBlci5zZXQoZnNQYXRoLCBtb2QpXG4gICAgZWxzZVxuICAgICAgT2JqZWN0LmFzc2lnbihzdXBlci5nZXQoZnNQYXRoKSwgbW9kKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBnZXQoZnNQYXRoOiBzdHJpbmcpIHtcbiAgICBmc1BhdGggPSB0aGlzLm5vcm1hbGl6ZVBhdGgoZnNQYXRoKVxuICAgIHJldHVybiBzdXBlci5nZXQoZnNQYXRoKVxuICB9XG5cbiAgZGVsZXRlKGZzUGF0aDogc3RyaW5nKSB7XG4gICAgZnNQYXRoID0gdGhpcy5ub3JtYWxpemVQYXRoKGZzUGF0aClcbiAgICByZXR1cm4gc3VwZXIuZGVsZXRlKGZzUGF0aClcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVml0ZU5vZGVSdW5uZXIge1xuICByb290OiBzdHJpbmdcblxuICAvKipcbiAgICogSG9sZHMgdGhlIGNhY2hlIG9mIG1vZHVsZXNcbiAgICogS2V5cyBvZiB0aGUgbWFwIGFyZSBmaWxlcGF0aHMsIG9yIHBsYWluIHBhY2thZ2UgbmFtZXNcbiAgICovXG4gIG1vZHVsZUNhY2hlOiBNb2R1bGVDYWNoZU1hcFxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBvcHRpb25zOiBWaXRlTm9kZVJ1bm5lck9wdGlvbnMpIHtcbiAgICB0aGlzLnJvb3QgPSBvcHRpb25zLnJvb3QgfHwgcHJvY2Vzcy5jd2QoKVxuICAgIHRoaXMubW9kdWxlQ2FjaGUgPSBvcHRpb25zLm1vZHVsZUNhY2hlIHx8IG5ldyBNb2R1bGVDYWNoZU1hcCgpXG4gIH1cblxuICBhc3luYyBleGVjdXRlRmlsZShmaWxlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jYWNoZWRSZXF1ZXN0KGAvQGZzLyR7c2xhc2gocmVzb2x2ZShmaWxlKSl9YCwgW10pXG4gIH1cblxuICBhc3luYyBleGVjdXRlSWQoaWQ6IHN0cmluZykge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNhY2hlZFJlcXVlc3QoaWQsIFtdKVxuICB9XG5cbiAgYXN5bmMgY2FjaGVkUmVxdWVzdChyYXdJZDogc3RyaW5nLCBjYWxsc3RhY2s6IHN0cmluZ1tdKSB7XG4gICAgY29uc3QgaWQgPSBub3JtYWxpemVJZChyYXdJZCwgdGhpcy5vcHRpb25zLmJhc2UpXG4gICAgY29uc3QgZnNQYXRoID0gdG9GaWxlUGF0aChpZCwgdGhpcy5yb290KVxuXG4gICAgaWYgKHRoaXMubW9kdWxlQ2FjaGUuZ2V0KGZzUGF0aCk/LnByb21pc2UpXG4gICAgICByZXR1cm4gdGhpcy5tb2R1bGVDYWNoZS5nZXQoZnNQYXRoKT8ucHJvbWlzZVxuXG4gICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuZGlyZWN0UmVxdWVzdChpZCwgZnNQYXRoLCBjYWxsc3RhY2spXG4gICAgdGhpcy5tb2R1bGVDYWNoZS5zZXQoZnNQYXRoLCB7IHByb21pc2UgfSlcblxuICAgIHJldHVybiBhd2FpdCBwcm9taXNlXG4gIH1cblxuICBhc3luYyBkaXJlY3RSZXF1ZXN0KGlkOiBzdHJpbmcsIGZzUGF0aDogc3RyaW5nLCBjYWxsc3RhY2s6IHN0cmluZ1tdKSB7XG4gICAgY2FsbHN0YWNrID0gWy4uLmNhbGxzdGFjaywgaWRdXG4gICAgY29uc3QgcmVxdWVzdCA9IGFzeW5jKGRlcDogc3RyaW5nKSA9PiB7XG4gICAgICAvLyBwcm9iYWJseSBtZWFucyBpdCB3YXMgcGFzc2VkIGFzIHZhcmlhYmxlXG4gICAgICAvLyBhbmQgd2Fzbid0IHRyYW5zZm9ybWVkIGJ5IFZpdGVcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMucmVzb2x2ZUlkICYmIHRoaXMuc2hvdWxkUmVzb2x2ZUlkKGRlcCkpIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWREZXAgPSBhd2FpdCB0aGlzLm9wdGlvbnMucmVzb2x2ZUlkKGRlcCwgaWQpXG4gICAgICAgIGRlcCA9IHJlc29sdmVkRGVwPy5pZD8ucmVwbGFjZSh0aGlzLnJvb3QsICcnKSB8fCBkZXBcbiAgICAgIH1cblxuICAgICAgaWYgKGNhbGxzdGFjay5pbmNsdWRlcyhkZXApKSB7XG4gICAgICAgIGlmICghdGhpcy5tb2R1bGVDYWNoZS5nZXQoZGVwKT8uZXhwb3J0cylcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFt2aXRlLW5vZGVdIENpcmN1bGFyIGRlcGVuZGVuY3kgZGV0ZWN0ZWRcXG5TdGFjazpcXG4ke1suLi5jYWxsc3RhY2ssIGRlcF0ucmV2ZXJzZSgpLm1hcChwID0+IGAtICR7cH1gKS5qb2luKCdcXG4nKX1gKVxuICAgICAgICByZXR1cm4gdGhpcy5tb2R1bGVDYWNoZS5nZXQoZGVwKSEuZXhwb3J0c1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuY2FjaGVkUmVxdWVzdChkZXAsIGNhbGxzdGFjaylcbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0U3R1YnMgPSB0aGlzLm9wdGlvbnMucmVxdWVzdFN0dWJzIHx8IERFRkFVTFRfUkVRVUVTVF9TVFVCU1xuICAgIGlmIChpZCBpbiByZXF1ZXN0U3R1YnMpXG4gICAgICByZXR1cm4gcmVxdWVzdFN0dWJzW2lkXVxuXG4gICAgY29uc3QgeyBjb2RlOiB0cmFuc2Zvcm1lZCwgZXh0ZXJuYWxpemUgfSA9IGF3YWl0IHRoaXMub3B0aW9ucy5mZXRjaE1vZHVsZShpZClcbiAgICBpZiAoZXh0ZXJuYWxpemUpIHtcbiAgICAgIGNvbnN0IG1vZCA9IGF3YWl0IHRoaXMuaW50ZXJvcGVkSW1wb3J0KGV4dGVybmFsaXplKVxuICAgICAgdGhpcy5tb2R1bGVDYWNoZS5zZXQoZnNQYXRoLCB7IGV4cG9ydHM6IG1vZCB9KVxuICAgICAgcmV0dXJuIG1vZFxuICAgIH1cblxuICAgIGlmICh0cmFuc2Zvcm1lZCA9PSBudWxsKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBbdml0ZS1ub2RlXSBGYWlsZWQgdG8gbG9hZCAke2lkfWApXG5cbiAgICAvLyBkaXNhbWJpZ3VhdGUgdGhlIGA8VU5JVD46L2Agb24gd2luZG93czogc2VlIG5vZGVqcy9ub2RlIzMxNzEwXG4gICAgY29uc3QgdXJsID0gcGF0aFRvRmlsZVVSTChmc1BhdGgpLmhyZWZcbiAgICBjb25zdCBleHBvcnRzOiBhbnkgPSBPYmplY3QuY3JlYXRlKG51bGwpXG4gICAgZXhwb3J0c1tTeW1ib2wudG9TdHJpbmdUYWddID0gJ01vZHVsZSdcblxuICAgIHRoaXMubW9kdWxlQ2FjaGUuc2V0KGlkLCB7IGNvZGU6IHRyYW5zZm9ybWVkLCBleHBvcnRzIH0pXG5cbiAgICBjb25zdCBfX2ZpbGVuYW1lID0gZmlsZVVSTFRvUGF0aCh1cmwpXG4gICAgY29uc3QgbW9kdWxlUHJveHkgPSB7XG4gICAgICBzZXQgZXhwb3J0cyh2YWx1ZSkge1xuICAgICAgICBleHBvcnRBbGwoZXhwb3J0cywgdmFsdWUpXG4gICAgICAgIGV4cG9ydHMuZGVmYXVsdCA9IHZhbHVlXG4gICAgICB9LFxuICAgICAgZ2V0IGV4cG9ydHMoKSB7XG4gICAgICAgIHJldHVybiBleHBvcnRzLmRlZmF1bHRcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgLy8gQmUgY2FyZWZ1bCB3aGVuIGNoYW5naW5nIHRoaXNcbiAgICAvLyBjaGFuZ2luZyBjb250ZXh0IHdpbGwgY2hhbmdlIGFtb3VudCBvZiBjb2RlIGFkZGVkIG9uIGxpbmUgOjExNCAodm0ucnVuSW5UaGlzQ29udGV4dClcbiAgICAvLyB0aGlzIG1lc3NlcyB1cCBzb3VyY2VtYXBzIGZvciBjb3ZlcmFnZVxuICAgIC8vIGFkanVzdCBgb2Zmc2V0YCB2YXJpYWJsZSBpbiBwYWNrYWdlcy92aXRlc3Qvc3JjL2ludGVncmF0aW9ucy9jb3ZlcmFnZS50cyNMMTAwIGlmIHlvdSBkbyBjaGFuZ2UgdGhpc1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLnByZXBhcmVDb250ZXh0KHtcbiAgICAgIC8vIGVzbSB0cmFuc2Zvcm1lZCBieSBWaXRlXG4gICAgICBfX3ZpdGVfc3NyX2ltcG9ydF9fOiByZXF1ZXN0LFxuICAgICAgX192aXRlX3Nzcl9keW5hbWljX2ltcG9ydF9fOiByZXF1ZXN0LFxuICAgICAgX192aXRlX3Nzcl9leHBvcnRzX186IGV4cG9ydHMsXG4gICAgICBfX3ZpdGVfc3NyX2V4cG9ydEFsbF9fOiAob2JqOiBhbnkpID0+IGV4cG9ydEFsbChleHBvcnRzLCBvYmopLFxuICAgICAgX192aXRlX3Nzcl9pbXBvcnRfbWV0YV9fOiB7IHVybCB9LFxuXG4gICAgICAvLyBjanMgY29tcGFjdFxuICAgICAgcmVxdWlyZTogY3JlYXRlUmVxdWlyZSh1cmwpLFxuICAgICAgZXhwb3J0cyxcbiAgICAgIG1vZHVsZTogbW9kdWxlUHJveHksXG4gICAgICBfX2ZpbGVuYW1lLFxuICAgICAgX19kaXJuYW1lOiBkaXJuYW1lKF9fZmlsZW5hbWUpLFxuICAgIH0pXG5cbiAgICAvLyBhZGQgJ3VzZSBzdHJpY3QnIHNpbmNlIEVTTSBlbmFibGVzIGl0IGJ5IGRlZmF1bHRcbiAgICBjb25zdCBmbiA9IHZtLnJ1bkluVGhpc0NvbnRleHQoYCd1c2Ugc3RyaWN0Jzthc3luYyAoJHtPYmplY3Qua2V5cyhjb250ZXh0KS5qb2luKCcsJyl9KT0+e3ske3RyYW5zZm9ybWVkfVxcbn19YCwge1xuICAgICAgZmlsZW5hbWU6IGZzUGF0aCxcbiAgICAgIGxpbmVPZmZzZXQ6IDAsXG4gICAgfSlcblxuICAgIGF3YWl0IGZuKC4uLk9iamVjdC52YWx1ZXMoY29udGV4dCkpXG5cbiAgICByZXR1cm4gZXhwb3J0c1xuICB9XG5cbiAgcHJlcGFyZUNvbnRleHQoY29udGV4dDogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAgIHJldHVybiBjb250ZXh0XG4gIH1cblxuICBzaG91bGRSZXNvbHZlSWQoZGVwOiBzdHJpbmcpIHtcbiAgICBpZiAoaXNOb2RlQnVpbHRpbihkZXApIHx8IGRlcCBpbiAodGhpcy5vcHRpb25zLnJlcXVlc3RTdHVicyB8fCBERUZBVUxUX1JFUVVFU1RfU1RVQlMpKVxuICAgICAgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gIWlzQWJzb2x1dGUoZGVwKSB8fCAhZXh0bmFtZShkZXApXG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIGlmIGEgbW9kdWxlIHNob3VsZCBiZSBpbnRlcm9wLWVkXG4gICAqIFRoaXMgZnVuY3Rpb24gbW9zdGx5IGZvciB0aGUgYWJpbGl0eSB0byBvdmVycmlkZSBieSBzdWJjbGFzc1xuICAgKi9cbiAgc2hvdWxkSW50ZXJvcChwYXRoOiBzdHJpbmcsIG1vZDogYW55KSB7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5pbnRlcm9wRGVmYXVsdCA9PT0gZmFsc2UpXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICAvLyBuZXZlciBpbnRlcm9wIEVTTSBtb2R1bGVzXG4gICAgLy8gVE9ETzogc2hvdWxkIGFsc28gc2tpcCBmb3IgYC5qc2Agd2l0aCBgdHlwZT1cIm1vZHVsZVwiYFxuICAgIHJldHVybiAhcGF0aC5lbmRzV2l0aCgnLm1qcycpICYmICdkZWZhdWx0JyBpbiBtb2RcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgYSBtb2R1bGUgYW5kIGludGVyb3AgaXRcbiAgICovXG4gIGFzeW5jIGludGVyb3BlZEltcG9ydChwYXRoOiBzdHJpbmcpIHtcbiAgICBjb25zdCBtb2QgPSBhd2FpdCBpbXBvcnQocGF0aClcblxuICAgIGlmICh0aGlzLnNob3VsZEludGVyb3AocGF0aCwgbW9kKSkge1xuICAgICAgY29uc3QgdHJ5RGVmYXVsdCA9IHRoaXMuaGFzTmVzdGVkRGVmYXVsdChtb2QpXG4gICAgICByZXR1cm4gbmV3IFByb3h5KG1vZCwge1xuICAgICAgICBnZXQ6IHByb3h5TWV0aG9kKCdnZXQnLCB0cnlEZWZhdWx0KSxcbiAgICAgICAgc2V0OiBwcm94eU1ldGhvZCgnc2V0JywgdHJ5RGVmYXVsdCksXG4gICAgICAgIGhhczogcHJveHlNZXRob2QoJ2hhcycsIHRyeURlZmF1bHQpLFxuICAgICAgICBkZWxldGVQcm9wZXJ0eTogcHJveHlNZXRob2QoJ2RlbGV0ZVByb3BlcnR5JywgdHJ5RGVmYXVsdCksXG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiBtb2RcbiAgfVxuXG4gIGhhc05lc3RlZERlZmF1bHQodGFyZ2V0OiBhbnkpIHtcbiAgICByZXR1cm4gJ19fZXNNb2R1bGUnIGluIHRhcmdldCAmJiB0YXJnZXQuX19lc01vZHVsZSAmJiAnZGVmYXVsdCcgaW4gdGFyZ2V0LmRlZmF1bHRcbiAgfVxufVxuXG5mdW5jdGlvbiBwcm94eU1ldGhvZChuYW1lOiAnZ2V0JyB8ICdzZXQnIHwgJ2hhcycgfCAnZGVsZXRlUHJvcGVydHknLCB0cnlEZWZhdWx0OiBib29sZWFuKSB7XG4gIHJldHVybiBmdW5jdGlvbih0YXJnZXQ6IGFueSwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIC4uLmFyZ3M6IFthbnk/LCBhbnk/XSkge1xuICAgIGNvbnN0IHJlc3VsdCA9IFJlZmxlY3RbbmFtZV0odGFyZ2V0LCBrZXksIC4uLmFyZ3MpXG4gICAgaWYgKGlzUHJpbWl0aXZlKHRhcmdldC5kZWZhdWx0KSlcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICBpZiAoKHRyeURlZmF1bHQgJiYga2V5ID09PSAnZGVmYXVsdCcpIHx8IHR5cGVvZiByZXN1bHQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgcmV0dXJuIFJlZmxlY3RbbmFtZV0odGFyZ2V0LmRlZmF1bHQsIGtleSwgLi4uYXJncylcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cbn1cblxuZnVuY3Rpb24gZXhwb3J0QWxsKGV4cG9ydHM6IGFueSwgc291cmNlTW9kdWxlOiBhbnkpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gIGZvciAoY29uc3Qga2V5IGluIHNvdXJjZU1vZHVsZSkge1xuICAgIGlmIChrZXkgIT09ICdkZWZhdWx0Jykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwge1xuICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgIGdldCgpIHsgcmV0dXJuIHNvdXJjZU1vZHVsZVtrZXldIH0sXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgICBjYXRjaCAoX2VycikgeyB9XG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQU1ZLE1BQUMscUJBQXFCLEdBQUc7QUFDckMsRUFBRSxlQUFlLEVBQUU7QUFDbkIsSUFBSSxXQUFXLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRTtBQUMzQixJQUFJLGdCQUFnQixHQUFHO0FBQ3ZCLE1BQU0sT0FBTztBQUNiLFFBQVEsTUFBTSxFQUFFLE1BQU07QUFDdEIsU0FBUztBQUNULFFBQVEsS0FBSyxFQUFFLE1BQU07QUFDckIsU0FBUztBQUNULE9BQU8sQ0FBQztBQUNSLEtBQUs7QUFDTCxJQUFJLFdBQVcsR0FBRztBQUNsQixLQUFLO0FBQ0wsR0FBRztBQUNILEVBQUU7QUFDSyxNQUFNLGNBQWMsU0FBUyxHQUFHLENBQUM7QUFDeEMsRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFO0FBQ3hCLElBQUksT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztBQUM3RyxHQUFHO0FBQ0gsRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtBQUNuQixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3hDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDO0FBQzFCLE1BQU0sS0FB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
package/dist/server.cjs CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var pathe = require('pathe');
5
6
  var fs = require('fs');
6
7
  var mlly = require('mlly');
7
8
  var utils = require('./utils.cjs');
8
9
  require('url');
9
- require('pathe');
10
10
 
11
11
  const ESM_EXT_RE = /\.(es|esm|esm-browser|esm-bundler|es6|module)\.js$/;
12
12
  const ESM_FOLDER_RE = /\/esm\/(.*\.js)$/;
@@ -59,7 +59,8 @@ async function _shouldExternalize(id, options) {
59
59
  if (matchExternalizePattern(id, options == null ? void 0 : options.external))
60
60
  return id;
61
61
  const isNodeModule = id.includes("/node_modules/");
62
- id = isNodeModule ? guessCJSversion(id) || id : id;
62
+ const guessCJS = isNodeModule && (options == null ? void 0 : options.fallbackCJS);
63
+ id = guessCJS ? guessCJSversion(id) || id : id;
63
64
  if (matchExternalizePattern(id, defaultInline))
64
65
  return false;
65
66
  if (matchExternalizePattern(id, depsExternal))
@@ -123,6 +124,8 @@ class ViteNodeServer {
123
124
  return shouldExternalize(id, this.options.deps);
124
125
  }
125
126
  async resolveId(id, importer) {
127
+ if (importer && !importer.startsWith(this.server.config.root))
128
+ importer = pathe.join(this.server.config.root, importer);
126
129
  return this.server.pluginContainer.resolveId(id, importer, { ssr: true });
127
130
  }
128
131
  async fetchModule(id) {
@@ -194,4 +197,4 @@ class ViteNodeServer {
194
197
  exports.ViteNodeServer = ViteNodeServer;
195
198
  exports.guessCJSversion = guessCJSversion;
196
199
  exports.shouldExternalize = shouldExternalize;
197
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmNqcyIsInNvdXJjZXMiOlsiLi4vc3JjL2V4dGVybmFsaXplLnRzIiwiLi4vc3JjL3NlcnZlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnZnMnXG5pbXBvcnQgeyBpc05vZGVCdWlsdGluLCBpc1ZhbGlkTm9kZUltcG9ydCB9IGZyb20gJ21sbHknXG5pbXBvcnQgdHlwZSB7IERlcHNIYW5kbGluZ09wdGlvbnMgfSBmcm9tICcuL3R5cGVzJ1xuaW1wb3J0IHsgc2xhc2ggfSBmcm9tICcuL3V0aWxzJ1xuXG5jb25zdCBFU01fRVhUX1JFID0gL1xcLihlc3xlc218ZXNtLWJyb3dzZXJ8ZXNtLWJ1bmRsZXJ8ZXM2fG1vZHVsZSlcXC5qcyQvXG5jb25zdCBFU01fRk9MREVSX1JFID0gL1xcL2VzbVxcLyguKlxcLmpzKSQvXG5cbmNvbnN0IGRlZmF1bHRJbmxpbmUgPSBbXG4gIC92aXJ0dWFsOi8sXG4gIC9cXC50cyQvLFxuICBFU01fRVhUX1JFLFxuICBFU01fRk9MREVSX1JFLFxuXVxuXG5jb25zdCBkZXBzRXh0ZXJuYWwgPSBbXG4gIC9cXC5janNcXC5qcyQvLFxuICAvXFwubWpzJC8sXG5dXG5cbmV4cG9ydCBmdW5jdGlvbiBndWVzc0NKU3ZlcnNpb24oaWQ6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmIChpZC5tYXRjaChFU01fRVhUX1JFKSkge1xuICAgIGZvciAoY29uc3QgaSBvZiBbXG4gICAgICBpZC5yZXBsYWNlKEVTTV9FWFRfUkUsICcubWpzJyksXG4gICAgICBpZC5yZXBsYWNlKEVTTV9FWFRfUkUsICcudW1kLmpzJyksXG4gICAgICBpZC5yZXBsYWNlKEVTTV9FWFRfUkUsICcuY2pzLmpzJyksXG4gICAgICBpZC5yZXBsYWNlKEVTTV9FWFRfUkUsICcuanMnKSxcbiAgICBdKSB7XG4gICAgICBpZiAoZXhpc3RzU3luYyhpKSlcbiAgICAgICAgcmV0dXJuIGlcbiAgICB9XG4gIH1cbiAgaWYgKGlkLm1hdGNoKEVTTV9GT0xERVJfUkUpKSB7XG4gICAgZm9yIChjb25zdCBpIG9mIFtcbiAgICAgIGlkLnJlcGxhY2UoRVNNX0ZPTERFUl9SRSwgJy91bWQvJDEnKSxcbiAgICAgIGlkLnJlcGxhY2UoRVNNX0ZPTERFUl9SRSwgJy9janMvJDEnKSxcbiAgICAgIGlkLnJlcGxhY2UoRVNNX0ZPTERFUl9SRSwgJy8kMScpLFxuICAgIF0pIHtcbiAgICAgIGlmIChleGlzdHNTeW5jKGkpKVxuICAgICAgICByZXR1cm4gaVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2hvdWxkRXh0ZXJuYWxpemUoXG4gIGlkOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBEZXBzSGFuZGxpbmdPcHRpb25zLFxuICBjYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBQcm9taXNlPHN0cmluZyB8IGZhbHNlPj4oKSxcbikge1xuICBpZiAoIWNhY2hlLmhhcyhpZCkpXG4gICAgY2FjaGUuc2V0KGlkLCBfc2hvdWxkRXh0ZXJuYWxpemUoaWQsIG9wdGlvbnMpKVxuICByZXR1cm4gY2FjaGUuZ2V0KGlkKSFcbn1cblxuYXN5bmMgZnVuY3Rpb24gX3Nob3VsZEV4dGVybmFsaXplKFxuICBpZDogc3RyaW5nLFxuICBvcHRpb25zPzogRGVwc0hhbmRsaW5nT3B0aW9ucyxcbik6IFByb21pc2U8c3RyaW5nIHwgZmFsc2U+IHtcbiAgaWYgKGlzTm9kZUJ1aWx0aW4oaWQpKVxuICAgIHJldHVybiBpZFxuXG4gIC8vIGRhdGE6IHNob3VsZCBiZSBwcm9jZXNzZWQgYnkgbmF0aXZlIGltcG9ydCxcbiAgLy8gc2luY2UgaXQgaXMgYSBmZWF0dXJlIG9mIEVTTVxuICBpZiAoaWQuc3RhcnRzV2l0aCgnZGF0YTonKSlcbiAgICByZXR1cm4gaWRcblxuICBpZCA9IHBhdGNoV2luZG93c0ltcG9ydFBhdGgoaWQpXG5cbiAgaWYgKG1hdGNoRXh0ZXJuYWxpemVQYXR0ZXJuKGlkLCBvcHRpb25zPy5pbmxpbmUpKVxuICAgIHJldHVybiBmYWxzZVxuICBpZiAobWF0Y2hFeHRlcm5hbGl6ZVBhdHRlcm4oaWQsIG9wdGlvbnM/LmV4dGVybmFsKSlcbiAgICByZXR1cm4gaWRcblxuICBjb25zdCBpc05vZGVNb2R1bGUgPSBpZC5pbmNsdWRlcygnL25vZGVfbW9kdWxlcy8nKVxuICBpZCA9IGlzTm9kZU1vZHVsZSA/IGd1ZXNzQ0pTdmVyc2lvbihpZCkgfHwgaWQgOiBpZFxuXG4gIGlmIChtYXRjaEV4dGVybmFsaXplUGF0dGVybihpZCwgZGVmYXVsdElubGluZSkpXG4gICAgcmV0dXJuIGZhbHNlXG4gIGlmIChtYXRjaEV4dGVybmFsaXplUGF0dGVybihpZCwgZGVwc0V4dGVybmFsKSlcbiAgICByZXR1cm4gaWRcblxuICBjb25zdCBpc0Rpc3QgPSBpZC5pbmNsdWRlcygnL2Rpc3QvJylcbiAgaWYgKChpc05vZGVNb2R1bGUgfHwgaXNEaXN0KSAmJiBhd2FpdCBpc1ZhbGlkTm9kZUltcG9ydChpZCkpXG4gICAgcmV0dXJuIGlkXG5cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmZ1bmN0aW9uIG1hdGNoRXh0ZXJuYWxpemVQYXR0ZXJuKGlkOiBzdHJpbmcsIHBhdHRlcm5zPzogKHN0cmluZyB8IFJlZ0V4cClbXSkge1xuICBpZiAoIXBhdHRlcm5zKVxuICAgIHJldHVybiBmYWxzZVxuICBmb3IgKGNvbnN0IGV4IG9mIHBhdHRlcm5zKSB7XG4gICAgaWYgKHR5cGVvZiBleCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmIChpZC5pbmNsdWRlcyhgL25vZGVfbW9kdWxlcy8ke2V4fS9gKSlcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBpZiAoZXgudGVzdChpZCkpXG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICB9XG4gIHJldHVybiBmYWxzZVxufVxuXG5mdW5jdGlvbiBwYXRjaFdpbmRvd3NJbXBvcnRQYXRoKHBhdGg6IHN0cmluZykge1xuICBpZiAocGF0aC5tYXRjaCgvXlxcdzpcXFxcLykpXG4gICAgcmV0dXJuIGBmaWxlOi8vLyR7c2xhc2gocGF0aCl9YFxuICBlbHNlIGlmIChwYXRoLm1hdGNoKC9eXFx3OlxcLy8pKVxuICAgIHJldHVybiBgZmlsZTovLy8ke3BhdGh9YFxuICBlbHNlXG4gICAgcmV0dXJuIHBhdGhcbn1cbiIsImltcG9ydCB0eXBlIHsgVHJhbnNmb3JtUmVzdWx0LCBWaXRlRGV2U2VydmVyIH0gZnJvbSAndml0ZSdcbmltcG9ydCB0eXBlIHsgRmV0Y2hSZXN1bHQsIFJhd1NvdXJjZU1hcCwgVml0ZU5vZGVSZXNvbHZlSWQsIFZpdGVOb2RlU2VydmVyT3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnXG5pbXBvcnQgeyBzaG91bGRFeHRlcm5hbGl6ZSB9IGZyb20gJy4vZXh0ZXJuYWxpemUnXG5pbXBvcnQgeyB0b0ZpbGVQYXRoLCB3aXRoSW5saW5lU291cmNlbWFwIH0gZnJvbSAnLi91dGlscydcblxuZXhwb3J0ICogZnJvbSAnLi9leHRlcm5hbGl6ZSdcblxuZXhwb3J0IGNsYXNzIFZpdGVOb2RlU2VydmVyIHtcbiAgcHJpdmF0ZSBmZXRjaFByb21pc2VNYXAgPSBuZXcgTWFwPHN0cmluZywgUHJvbWlzZTxGZXRjaFJlc3VsdD4+KClcbiAgcHJpdmF0ZSB0cmFuc2Zvcm1Qcm9taXNlTWFwID0gbmV3IE1hcDxzdHJpbmcsIFByb21pc2U8VHJhbnNmb3JtUmVzdWx0IHwgbnVsbCB8IHVuZGVmaW5lZD4+KClcblxuICBmZXRjaENhY2hlID0gbmV3IE1hcDxzdHJpbmcsIHtcbiAgICB0aW1lc3RhbXA6IG51bWJlclxuICAgIHJlc3VsdDogRmV0Y2hSZXN1bHRcbiAgfT4oKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzZXJ2ZXI6IFZpdGVEZXZTZXJ2ZXIsXG4gICAgcHVibGljIG9wdGlvbnM6IFZpdGVOb2RlU2VydmVyT3B0aW9ucyA9IHt9LFxuICApIHt9XG5cbiAgc2hvdWxkRXh0ZXJuYWxpemUoaWQ6IHN0cmluZykge1xuICAgIHJldHVybiBzaG91bGRFeHRlcm5hbGl6ZShpZCwgdGhpcy5vcHRpb25zLmRlcHMpXG4gIH1cblxuICBhc3luYyByZXNvbHZlSWQoaWQ6IHN0cmluZywgaW1wb3J0ZXI/OiBzdHJpbmcpOiBQcm9taXNlPFZpdGVOb2RlUmVzb2x2ZUlkIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLnNlcnZlci5wbHVnaW5Db250YWluZXIucmVzb2x2ZUlkKGlkLCBpbXBvcnRlciwgeyBzc3I6IHRydWUgfSlcbiAgfVxuXG4gIGFzeW5jIGZldGNoTW9kdWxlKGlkOiBzdHJpbmcpOiBQcm9taXNlPEZldGNoUmVzdWx0PiB7XG4gICAgLy8gcmV1c2UgdHJhbnNmb3JtIGZvciBjb25jdXJyZW50IHJlcXVlc3RzXG4gICAgaWYgKCF0aGlzLmZldGNoUHJvbWlzZU1hcC5oYXMoaWQpKSB7XG4gICAgICB0aGlzLmZldGNoUHJvbWlzZU1hcC5zZXQoaWQsXG4gICAgICAgIHRoaXMuX2ZldGNoTW9kdWxlKGlkKVxuICAgICAgICAgIC50aGVuKChyKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zLnNvdXJjZW1hcCAhPT0gdHJ1ZSA/IHsgLi4uciwgbWFwOiB1bmRlZmluZWQgfSA6IHJcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmV0Y2hQcm9taXNlTWFwLmRlbGV0ZShpZClcbiAgICAgICAgICB9KSxcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZmV0Y2hQcm9taXNlTWFwLmdldChpZCkhXG4gIH1cblxuICBhc3luYyB0cmFuc2Zvcm1SZXF1ZXN0KGlkOiBzdHJpbmcpIHtcbiAgICAvLyByZXVzZSB0cmFuc2Zvcm0gZm9yIGNvbmN1cnJlbnQgcmVxdWVzdHNcbiAgICBpZiAoIXRoaXMudHJhbnNmb3JtUHJvbWlzZU1hcC5oYXMoaWQpKSB7XG4gICAgICB0aGlzLnRyYW5zZm9ybVByb21pc2VNYXAuc2V0KGlkLFxuICAgICAgICB0aGlzLl90cmFuc2Zvcm1SZXF1ZXN0KGlkKVxuICAgICAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudHJhbnNmb3JtUHJvbWlzZU1hcC5kZWxldGUoaWQpXG4gICAgICAgICAgfSksXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiB0aGlzLnRyYW5zZm9ybVByb21pc2VNYXAuZ2V0KGlkKSFcbiAgfVxuXG4gIGdldFRyYW5zZm9ybU1vZGUoaWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHdpdGhvdXRRdWVyeSA9IGlkLnNwbGl0KCc/JylbMF1cblxuICAgIGlmICh0aGlzLm9wdGlvbnMudHJhbnNmb3JtTW9kZT8ud2ViPy5zb21lKHIgPT4gd2l0aG91dFF1ZXJ5Lm1hdGNoKHIpKSlcbiAgICAgIHJldHVybiAnd2ViJ1xuICAgIGlmICh0aGlzLm9wdGlvbnMudHJhbnNmb3JtTW9kZT8uc3NyPy5zb21lKHIgPT4gd2l0aG91dFF1ZXJ5Lm1hdGNoKHIpKSlcbiAgICAgIHJldHVybiAnc3NyJ1xuXG4gICAgaWYgKHdpdGhvdXRRdWVyeS5tYXRjaCgvXFwuKFtjbV0/W2p0XXN4P3xqc29uKSQvKSlcbiAgICAgIHJldHVybiAnc3NyJ1xuICAgIHJldHVybiAnd2ViJ1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfZmV0Y2hNb2R1bGUoaWQ6IHN0cmluZyk6IFByb21pc2U8RmV0Y2hSZXN1bHQ+IHtcbiAgICBsZXQgcmVzdWx0OiBGZXRjaFJlc3VsdFxuXG4gICAgY29uc3QgZmlsZVBhdGggPSB0b0ZpbGVQYXRoKGlkLCB0aGlzLnNlcnZlci5jb25maWcucm9vdClcblxuICAgIGNvbnN0IG1vZHVsZSA9IHRoaXMuc2VydmVyLm1vZHVsZUdyYXBoLmdldE1vZHVsZUJ5SWQoaWQpXG4gICAgY29uc3QgdGltZXN0YW1wID0gbW9kdWxlPy5sYXN0SE1SVGltZXN0YW1wIHx8IERhdGUubm93KClcbiAgICBjb25zdCBjYWNoZSA9IHRoaXMuZmV0Y2hDYWNoZS5nZXQoZmlsZVBhdGgpXG4gICAgaWYgKHRpbWVzdGFtcCAmJiBjYWNoZSAmJiBjYWNoZS50aW1lc3RhbXAgPj0gdGltZXN0YW1wKVxuICAgICAgcmV0dXJuIGNhY2hlLnJlc3VsdFxuXG4gICAgY29uc3QgZXh0ZXJuYWxpemUgPSBhd2FpdCB0aGlzLnNob3VsZEV4dGVybmFsaXplKGZpbGVQYXRoKVxuICAgIGlmIChleHRlcm5hbGl6ZSkge1xuICAgICAgcmVzdWx0ID0geyBleHRlcm5hbGl6ZSB9XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgY29uc3QgciA9IGF3YWl0IHRoaXMuX3RyYW5zZm9ybVJlcXVlc3QoaWQpXG4gICAgICByZXN1bHQgPSB7IGNvZGU6IHI/LmNvZGUsIG1hcDogcj8ubWFwIGFzIHVua25vd24gYXMgUmF3U291cmNlTWFwIH1cbiAgICB9XG5cbiAgICB0aGlzLmZldGNoQ2FjaGUuc2V0KGZpbGVQYXRoLCB7XG4gICAgICB0aW1lc3RhbXAsXG4gICAgICByZXN1bHQsXG4gICAgfSlcblxuICAgIHJldHVybiByZXN1bHRcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3RyYW5zZm9ybVJlcXVlc3QoaWQ6IHN0cmluZykge1xuICAgIGxldCByZXN1bHQ6IFRyYW5zZm9ybVJlc3VsdCB8IG51bGwgPSBudWxsXG5cbiAgICBpZiAodGhpcy5nZXRUcmFuc2Zvcm1Nb2RlKGlkKSA9PT0gJ3dlYicpIHtcbiAgICAgIC8vIGZvciBjb21wb25lbnRzIGxpa2UgVnVlLCB3ZSB3YW50IHRvIHVzZSB0aGUgY2xpZW50IHNpZGVcbiAgICAgIC8vIHBsdWdpbnMgYnV0IHRoZW4gY29udmVydCB0aGUgY29kZSB0byBiZSBjb25zdW1lZCBieSB0aGUgc2VydmVyXG4gICAgICByZXN1bHQgPSBhd2FpdCB0aGlzLnNlcnZlci50cmFuc2Zvcm1SZXF1ZXN0KGlkKVxuICAgICAgaWYgKHJlc3VsdClcbiAgICAgICAgcmVzdWx0ID0gYXdhaXQgdGhpcy5zZXJ2ZXIuc3NyVHJhbnNmb3JtKHJlc3VsdC5jb2RlLCByZXN1bHQubWFwLCBpZClcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICByZXN1bHQgPSBhd2FpdCB0aGlzLnNlcnZlci50cmFuc2Zvcm1SZXF1ZXN0KGlkLCB7IHNzcjogdHJ1ZSB9KVxuICAgIH1cblxuICAgIGNvbnN0IHNvdXJjZW1hcCA9IHRoaXMub3B0aW9ucy5zb3VyY2VtYXAgPz8gJ2lubGluZSdcbiAgICBpZiAoc291cmNlbWFwID09PSAnaW5saW5lJyAmJiByZXN1bHQgJiYgIWlkLmluY2x1ZGVzKCdub2RlX21vZHVsZXMnKSlcbiAgICAgIHdpdGhJbmxpbmVTb3VyY2VtYXAocmVzdWx0KVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG59XG4iXSwibmFtZXMiOlsiZXhpc3RzU3luYyIsImlzTm9kZUJ1aWx0aW4iLCJpc1ZhbGlkTm9kZUltcG9ydCIsInNsYXNoIiwidG9GaWxlUGF0aCIsIndpdGhJbmxpbmVTb3VyY2VtYXAiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFLQSxNQUFNLFVBQWEsR0FBQSxvREFBQSxDQUFBO0FBQ25CLE1BQU0sYUFBZ0IsR0FBQSxrQkFBQSxDQUFBO0FBRXRCLE1BQU0sYUFBZ0IsR0FBQTtBQUFBLEVBQ3BCLFVBQUE7QUFBQSxFQUNBLE9BQUE7QUFBQSxFQUNBLFVBQUE7QUFBQSxFQUNBLGFBQUE7QUFBQSxDQUFBLENBQUE7QUFHRixNQUFNLFlBQWUsR0FBQTtBQUFBLEVBQ25CLFlBQUE7QUFBQSxFQUNBLFFBQUE7QUFBQSxDQUFBLENBQUE7QUFHSyxTQUFBLGVBQUEsQ0FBeUIsRUFBZ0MsRUFBQTtBQUM5RCxFQUFJLElBQUEsRUFBQSxDQUFHLE1BQU0sVUFBYSxDQUFBLEVBQUE7QUFDeEIsSUFBQSxLQUFBLE1BQVcsQ0FBSyxJQUFBO0FBQUEsTUFDZCxFQUFBLENBQUcsUUFBUSxVQUFZLEVBQUEsTUFBQSxDQUFBO0FBQUEsTUFDdkIsRUFBQSxDQUFHLFFBQVEsVUFBWSxFQUFBLFNBQUEsQ0FBQTtBQUFBLE1BQ3ZCLEVBQUEsQ0FBRyxRQUFRLFVBQVksRUFBQSxTQUFBLENBQUE7QUFBQSxNQUN2QixF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
200
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmNqcyIsInNvdXJjZXMiOlsiLi4vc3JjL2V4dGVybmFsaXplLnRzIiwiLi4vc3JjL3NlcnZlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBleGlzdHNTeW5jIH0gZnJvbSAnZnMnXG5pbXBvcnQgeyBpc05vZGVCdWlsdGluLCBpc1ZhbGlkTm9kZUltcG9ydCB9IGZyb20gJ21sbHknXG5pbXBvcnQgdHlwZSB7IERlcHNIYW5kbGluZ09wdGlvbnMgfSBmcm9tICcuL3R5cGVzJ1xuaW1wb3J0IHsgc2xhc2ggfSBmcm9tICcuL3V0aWxzJ1xuXG5jb25zdCBFU01fRVhUX1JFID0gL1xcLihlc3xlc218ZXNtLWJyb3dzZXJ8ZXNtLWJ1bmRsZXJ8ZXM2fG1vZHVsZSlcXC5qcyQvXG5jb25zdCBFU01fRk9MREVSX1JFID0gL1xcL2VzbVxcLyguKlxcLmpzKSQvXG5cbmNvbnN0IGRlZmF1bHRJbmxpbmUgPSBbXG4gIC92aXJ0dWFsOi8sXG4gIC9cXC50cyQvLFxuICBFU01fRVhUX1JFLFxuICBFU01fRk9MREVSX1JFLFxuXVxuXG5jb25zdCBkZXBzRXh0ZXJuYWwgPSBbXG4gIC9cXC5janNcXC5qcyQvLFxuICAvXFwubWpzJC8sXG5dXG5cbmV4cG9ydCBmdW5jdGlvbiBndWVzc0NKU3ZlcnNpb24oaWQ6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGlmIChpZC5tYXRjaChFU01fRVhUX1JFKSkge1xuICAgIGZvciAoY29uc3QgaSBvZiBbXG4gICAgICBpZC5yZXBsYWNlKEVTTV9FWFRfUkUsICcubWpzJyksXG4gICAgICBpZC5yZXBsYWNlKEVTTV9FWFRfUkUsICcudW1kLmpzJyksXG4gICAgICBpZC5yZXBsYWNlKEVTTV9FWFRfUkUsICcuY2pzLmpzJyksXG4gICAgICBpZC5yZXBsYWNlKEVTTV9FWFRfUkUsICcuanMnKSxcbiAgICBdKSB7XG4gICAgICBpZiAoZXhpc3RzU3luYyhpKSlcbiAgICAgICAgcmV0dXJuIGlcbiAgICB9XG4gIH1cbiAgaWYgKGlkLm1hdGNoKEVTTV9GT0xERVJfUkUpKSB7XG4gICAgZm9yIChjb25zdCBpIG9mIFtcbiAgICAgIGlkLnJlcGxhY2UoRVNNX0ZPTERFUl9SRSwgJy91bWQvJDEnKSxcbiAgICAgIGlkLnJlcGxhY2UoRVNNX0ZPTERFUl9SRSwgJy9janMvJDEnKSxcbiAgICAgIGlkLnJlcGxhY2UoRVNNX0ZPTERFUl9SRSwgJy8kMScpLFxuICAgIF0pIHtcbiAgICAgIGlmIChleGlzdHNTeW5jKGkpKVxuICAgICAgICByZXR1cm4gaVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gc2hvdWxkRXh0ZXJuYWxpemUoXG4gIGlkOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBEZXBzSGFuZGxpbmdPcHRpb25zLFxuICBjYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCBQcm9taXNlPHN0cmluZyB8IGZhbHNlPj4oKSxcbikge1xuICBpZiAoIWNhY2hlLmhhcyhpZCkpXG4gICAgY2FjaGUuc2V0KGlkLCBfc2hvdWxkRXh0ZXJuYWxpemUoaWQsIG9wdGlvbnMpKVxuICByZXR1cm4gY2FjaGUuZ2V0KGlkKSFcbn1cblxuYXN5bmMgZnVuY3Rpb24gX3Nob3VsZEV4dGVybmFsaXplKFxuICBpZDogc3RyaW5nLFxuICBvcHRpb25zPzogRGVwc0hhbmRsaW5nT3B0aW9ucyxcbik6IFByb21pc2U8c3RyaW5nIHwgZmFsc2U+IHtcbiAgaWYgKGlzTm9kZUJ1aWx0aW4oaWQpKVxuICAgIHJldHVybiBpZFxuXG4gIC8vIGRhdGE6IHNob3VsZCBiZSBwcm9jZXNzZWQgYnkgbmF0aXZlIGltcG9ydCxcbiAgLy8gc2luY2UgaXQgaXMgYSBmZWF0dXJlIG9mIEVTTVxuICBpZiAoaWQuc3RhcnRzV2l0aCgnZGF0YTonKSlcbiAgICByZXR1cm4gaWRcblxuICBpZCA9IHBhdGNoV2luZG93c0ltcG9ydFBhdGgoaWQpXG5cbiAgaWYgKG1hdGNoRXh0ZXJuYWxpemVQYXR0ZXJuKGlkLCBvcHRpb25zPy5pbmxpbmUpKVxuICAgIHJldHVybiBmYWxzZVxuICBpZiAobWF0Y2hFeHRlcm5hbGl6ZVBhdHRlcm4oaWQsIG9wdGlvbnM/LmV4dGVybmFsKSlcbiAgICByZXR1cm4gaWRcblxuICBjb25zdCBpc05vZGVNb2R1bGUgPSBpZC5pbmNsdWRlcygnL25vZGVfbW9kdWxlcy8nKVxuICBjb25zdCBndWVzc0NKUyA9IGlzTm9kZU1vZHVsZSAmJiBvcHRpb25zPy5mYWxsYmFja0NKU1xuICBpZCA9IGd1ZXNzQ0pTID8gZ3Vlc3NDSlN2ZXJzaW9uKGlkKSB8fCBpZCA6IGlkXG5cbiAgaWYgKG1hdGNoRXh0ZXJuYWxpemVQYXR0ZXJuKGlkLCBkZWZhdWx0SW5saW5lKSlcbiAgICByZXR1cm4gZmFsc2VcbiAgaWYgKG1hdGNoRXh0ZXJuYWxpemVQYXR0ZXJuKGlkLCBkZXBzRXh0ZXJuYWwpKVxuICAgIHJldHVybiBpZFxuXG4gIGNvbnN0IGlzRGlzdCA9IGlkLmluY2x1ZGVzKCcvZGlzdC8nKVxuICBpZiAoKGlzTm9kZU1vZHVsZSB8fCBpc0Rpc3QpICYmIGF3YWl0IGlzVmFsaWROb2RlSW1wb3J0KGlkKSlcbiAgICByZXR1cm4gaWRcblxuICByZXR1cm4gZmFsc2Vcbn1cblxuZnVuY3Rpb24gbWF0Y2hFeHRlcm5hbGl6ZVBhdHRlcm4oaWQ6IHN0cmluZywgcGF0dGVybnM/OiAoc3RyaW5nIHwgUmVnRXhwKVtdKSB7XG4gIGlmICghcGF0dGVybnMpXG4gICAgcmV0dXJuIGZhbHNlXG4gIGZvciAoY29uc3QgZXggb2YgcGF0dGVybnMpIHtcbiAgICBpZiAodHlwZW9mIGV4ID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKGlkLmluY2x1ZGVzKGAvbm9kZV9tb2R1bGVzLyR7ZXh9L2ApKVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGlmIChleC50ZXN0KGlkKSlcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmZ1bmN0aW9uIHBhdGNoV2luZG93c0ltcG9ydFBhdGgocGF0aDogc3RyaW5nKSB7XG4gIGlmIChwYXRoLm1hdGNoKC9eXFx3OlxcXFwvKSlcbiAgICByZXR1cm4gYGZpbGU6Ly8vJHtzbGFzaChwYXRoKX1gXG4gIGVsc2UgaWYgKHBhdGgubWF0Y2goL15cXHc6XFwvLykpXG4gICAgcmV0dXJuIGBmaWxlOi8vLyR7cGF0aH1gXG4gIGVsc2VcbiAgICByZXR1cm4gcGF0aFxufVxuIiwiaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGhlJ1xuaW1wb3J0IHR5cGUgeyBUcmFuc2Zvcm1SZXN1bHQsIFZpdGVEZXZTZXJ2ZXIgfSBmcm9tICd2aXRlJ1xuaW1wb3J0IHR5cGUgeyBGZXRjaFJlc3VsdCwgUmF3U291cmNlTWFwLCBWaXRlTm9kZVJlc29sdmVJZCwgVml0ZU5vZGVTZXJ2ZXJPcHRpb25zIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB7IHNob3VsZEV4dGVybmFsaXplIH0gZnJvbSAnLi9leHRlcm5hbGl6ZSdcbmltcG9ydCB7IHRvRmlsZVBhdGgsIHdpdGhJbmxpbmVTb3VyY2VtYXAgfSBmcm9tICcuL3V0aWxzJ1xuXG5leHBvcnQgKiBmcm9tICcuL2V4dGVybmFsaXplJ1xuXG5leHBvcnQgY2xhc3MgVml0ZU5vZGVTZXJ2ZXIge1xuICBwcml2YXRlIGZldGNoUHJvbWlzZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBQcm9taXNlPEZldGNoUmVzdWx0Pj4oKVxuICBwcml2YXRlIHRyYW5zZm9ybVByb21pc2VNYXAgPSBuZXcgTWFwPHN0cmluZywgUHJvbWlzZTxUcmFuc2Zvcm1SZXN1bHQgfCBudWxsIHwgdW5kZWZpbmVkPj4oKVxuXG4gIGZldGNoQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywge1xuICAgIHRpbWVzdGFtcDogbnVtYmVyXG4gICAgcmVzdWx0OiBGZXRjaFJlc3VsdFxuICB9PigpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHNlcnZlcjogVml0ZURldlNlcnZlcixcbiAgICBwdWJsaWMgb3B0aW9uczogVml0ZU5vZGVTZXJ2ZXJPcHRpb25zID0ge30sXG4gICkge31cblxuICBzaG91bGRFeHRlcm5hbGl6ZShpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHNob3VsZEV4dGVybmFsaXplKGlkLCB0aGlzLm9wdGlvbnMuZGVwcylcbiAgfVxuXG4gIGFzeW5jIHJlc29sdmVJZChpZDogc3RyaW5nLCBpbXBvcnRlcj86IHN0cmluZyk6IFByb21pc2U8Vml0ZU5vZGVSZXNvbHZlSWQgfCBudWxsPiB7XG4gICAgaWYgKGltcG9ydGVyICYmICFpbXBvcnRlci5zdGFydHNXaXRoKHRoaXMuc2VydmVyLmNvbmZpZy5yb290KSlcbiAgICAgIGltcG9ydGVyID0gam9pbih0aGlzLnNlcnZlci5jb25maWcucm9vdCwgaW1wb3J0ZXIpXG4gICAgcmV0dXJuIHRoaXMuc2VydmVyLnBsdWdpbkNvbnRhaW5lci5yZXNvbHZlSWQoaWQsIGltcG9ydGVyLCB7IHNzcjogdHJ1ZSB9KVxuICB9XG5cbiAgYXN5bmMgZmV0Y2hNb2R1bGUoaWQ6IHN0cmluZyk6IFByb21pc2U8RmV0Y2hSZXN1bHQ+IHtcbiAgICAvLyByZXVzZSB0cmFuc2Zvcm0gZm9yIGNvbmN1cnJlbnQgcmVxdWVzdHNcbiAgICBpZiAoIXRoaXMuZmV0Y2hQcm9taXNlTWFwLmhhcyhpZCkpIHtcbiAgICAgIHRoaXMuZmV0Y2hQcm9taXNlTWFwLnNldChpZCxcbiAgICAgICAgdGhpcy5fZmV0Y2hNb2R1bGUoaWQpXG4gICAgICAgICAgLnRoZW4oKHIpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuc291cmNlbWFwICE9PSB0cnVlID8geyAuLi5yLCBtYXA6IHVuZGVmaW5lZCB9IDogclxuICAgICAgICAgIH0pXG4gICAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5mZXRjaFByb21pc2VNYXAuZGVsZXRlKGlkKVxuICAgICAgICAgIH0pLFxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5mZXRjaFByb21pc2VNYXAuZ2V0KGlkKSFcbiAgfVxuXG4gIGFzeW5jIHRyYW5zZm9ybVJlcXVlc3QoaWQ6IHN0cmluZykge1xuICAgIC8vIHJldXNlIHRyYW5zZm9ybSBmb3IgY29uY3VycmVudCByZXF1ZXN0c1xuICAgIGlmICghdGhpcy50cmFuc2Zvcm1Qcm9taXNlTWFwLmhhcyhpZCkpIHtcbiAgICAgIHRoaXMudHJhbnNmb3JtUHJvbWlzZU1hcC5zZXQoaWQsXG4gICAgICAgIHRoaXMuX3RyYW5zZm9ybVJlcXVlc3QoaWQpXG4gICAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1Qcm9taXNlTWFwLmRlbGV0ZShpZClcbiAgICAgICAgICB9KSxcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtUHJvbWlzZU1hcC5nZXQoaWQpIVxuICB9XG5cbiAgZ2V0VHJhbnNmb3JtTW9kZShpZDogc3RyaW5nKSB7XG4gICAgY29uc3Qgd2l0aG91dFF1ZXJ5ID0gaWQuc3BsaXQoJz8nKVswXVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy50cmFuc2Zvcm1Nb2RlPy53ZWI/LnNvbWUociA9PiB3aXRob3V0UXVlcnkubWF0Y2gocikpKVxuICAgICAgcmV0dXJuICd3ZWInXG4gICAgaWYgKHRoaXMub3B0aW9ucy50cmFuc2Zvcm1Nb2RlPy5zc3I/LnNvbWUociA9PiB3aXRob3V0UXVlcnkubWF0Y2gocikpKVxuICAgICAgcmV0dXJuICdzc3InXG5cbiAgICBpZiAod2l0aG91dFF1ZXJ5Lm1hdGNoKC9cXC4oW2NtXT9banRdc3g/fGpzb24pJC8pKVxuICAgICAgcmV0dXJuICdzc3InXG4gICAgcmV0dXJuICd3ZWInXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9mZXRjaE1vZHVsZShpZDogc3RyaW5nKTogUHJvbWlzZTxGZXRjaFJlc3VsdD4ge1xuICAgIGxldCByZXN1bHQ6IEZldGNoUmVzdWx0XG5cbiAgICBjb25zdCBmaWxlUGF0aCA9IHRvRmlsZVBhdGgoaWQsIHRoaXMuc2VydmVyLmNvbmZpZy5yb290KVxuXG4gICAgY29uc3QgbW9kdWxlID0gdGhpcy5zZXJ2ZXIubW9kdWxlR3JhcGguZ2V0TW9kdWxlQnlJZChpZClcbiAgICBjb25zdCB0aW1lc3RhbXAgPSBtb2R1bGU/Lmxhc3RITVJUaW1lc3RhbXAgfHwgRGF0ZS5ub3coKVxuICAgIGNvbnN0IGNhY2hlID0gdGhpcy5mZXRjaENhY2hlLmdldChmaWxlUGF0aClcbiAgICBpZiAodGltZXN0YW1wICYmIGNhY2hlICYmIGNhY2hlLnRpbWVzdGFtcCA+PSB0aW1lc3RhbXApXG4gICAgICByZXR1cm4gY2FjaGUucmVzdWx0XG5cbiAgICBjb25zdCBleHRlcm5hbGl6ZSA9IGF3YWl0IHRoaXMuc2hvdWxkRXh0ZXJuYWxpemUoZmlsZVBhdGgpXG4gICAgaWYgKGV4dGVybmFsaXplKSB7XG4gICAgICByZXN1bHQgPSB7IGV4dGVybmFsaXplIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBjb25zdCByID0gYXdhaXQgdGhpcy5fdHJhbnNmb3JtUmVxdWVzdChpZClcbiAgICAgIHJlc3VsdCA9IHsgY29kZTogcj8uY29kZSwgbWFwOiByPy5tYXAgYXMgdW5rbm93biBhcyBSYXdTb3VyY2VNYXAgfVxuICAgIH1cblxuICAgIHRoaXMuZmV0Y2hDYWNoZS5zZXQoZmlsZVBhdGgsIHtcbiAgICAgIHRpbWVzdGFtcCxcbiAgICAgIHJlc3VsdCxcbiAgICB9KVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfdHJhbnNmb3JtUmVxdWVzdChpZDogc3RyaW5nKSB7XG4gICAgbGV0IHJlc3VsdDogVHJhbnNmb3JtUmVzdWx0IHwgbnVsbCA9IG51bGxcblxuICAgIGlmICh0aGlzLmdldFRyYW5zZm9ybU1vZGUoaWQpID09PSAnd2ViJykge1xuICAgICAgLy8gZm9yIGNvbXBvbmVudHMgbGlrZSBWdWUsIHdlIHdhbnQgdG8gdXNlIHRoZSBjbGllbnQgc2lkZVxuICAgICAgLy8gcGx1Z2lucyBidXQgdGhlbiBjb252ZXJ0IHRoZSBjb2RlIHRvIGJlIGNvbnN1bWVkIGJ5IHRoZSBzZXJ2ZXJcbiAgICAgIHJlc3VsdCA9IGF3YWl0IHRoaXMuc2VydmVyLnRyYW5zZm9ybVJlcXVlc3QoaWQpXG4gICAgICBpZiAocmVzdWx0KVxuICAgICAgICByZXN1bHQgPSBhd2FpdCB0aGlzLnNlcnZlci5zc3JUcmFuc2Zvcm0ocmVzdWx0LmNvZGUsIHJlc3VsdC5tYXAsIGlkKVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IGF3YWl0IHRoaXMuc2VydmVyLnRyYW5zZm9ybVJlcXVlc3QoaWQsIHsgc3NyOiB0cnVlIH0pXG4gICAgfVxuXG4gICAgY29uc3Qgc291cmNlbWFwID0gdGhpcy5vcHRpb25zLnNvdXJjZW1hcCA/PyAnaW5saW5lJ1xuICAgIGlmIChzb3VyY2VtYXAgPT09ICdpbmxpbmUnICYmIHJlc3VsdCAmJiAhaWQuaW5jbHVkZXMoJ25vZGVfbW9kdWxlcycpKVxuICAgICAgd2l0aElubGluZVNvdXJjZW1hcChyZXN1bHQpXG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJleGlzdHNTeW5jIiwiaXNOb2RlQnVpbHRpbiIsImlzVmFsaWROb2RlSW1wb3J0Iiwic2xhc2giLCJqb2luIiwidG9GaWxlUGF0aCIsIndpdGhJbmxpbmVTb3VyY2VtYXAiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFLQSxNQUFNLFVBQWEsR0FBQSxvREFBQSxDQUFBO0FBQ25CLE1BQU0sYUFBZ0IsR0FBQSxrQkFBQSxDQUFBO0FBRXRCLE1BQU0sYUFBZ0IsR0FBQTtBQUFBLEVBQ3BCLFVBQUE7QUFBQSxFQUNBLE9BQUE7QUFBQSxFQUNBLFVBQUE7QUFBQSxFQUNBLGFBQUE7QUFBQSxDQUFBLENBQUE7QUFHRixNQUFNLFlBQWUsR0FBQTtBQUFBLEVBQ25CLFlBQUE7QUFBQSxFQUNBLFFBQUE7QUFBQSxDQUFBLENBQUE7QUFHSyxTQUFBLGVBQUEsQ0FBeUIsRUFBZ0MsRUFBQTtBQUM5RCxFQUFJ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
package/dist/server.js CHANGED
@@ -1,8 +1,8 @@
1
+ import { join } from 'pathe';
1
2
  import { existsSync } from 'fs';
2
3
  import { isNodeBuiltin, isValidNodeImport } from 'mlly';
3
4
  import { slash, toFilePath, withInlineSourcemap } from './utils.js';
4
5
  import 'url';
5
- import 'pathe';
6
6
 
7
7
  const ESM_EXT_RE = /\.(es|esm|esm-browser|esm-bundler|es6|module)\.js$/;
8
8
  const ESM_FOLDER_RE = /\/esm\/(.*\.js)$/;
@@ -55,7 +55,8 @@ async function _shouldExternalize(id, options) {
55
55
  if (matchExternalizePattern(id, options == null ? void 0 : options.external))
56
56
  return id;
57
57
  const isNodeModule = id.includes("/node_modules/");
58
- id = isNodeModule ? guessCJSversion(id) || id : id;
58
+ const guessCJS = isNodeModule && (options == null ? void 0 : options.fallbackCJS);
59
+ id = guessCJS ? guessCJSversion(id) || id : id;
59
60
  if (matchExternalizePattern(id, defaultInline))
60
61
  return false;
61
62
  if (matchExternalizePattern(id, depsExternal))
@@ -119,6 +120,8 @@ class ViteNodeServer {
119
120
  return shouldExternalize(id, this.options.deps);
120
121
  }
121
122
  async resolveId(id, importer) {
123
+ if (importer && !importer.startsWith(this.server.config.root))
124
+ importer = join(this.server.config.root, importer);
122
125
  return this.server.pluginContainer.resolveId(id, importer, { ssr: true });
123
126
  }
124
127
  async fetchModule(id) {
@@ -188,4 +191,4 @@ class ViteNodeServer {
188
191
  }
189
192
 
190
193
  export { ViteNodeServer, guessCJSversion, shouldExternalize };
191
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlcyI6WyIuLi9zcmMvZXh0ZXJuYWxpemUudHMiLCIuLi9zcmMvc2VydmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdmcydcbmltcG9ydCB7IGlzTm9kZUJ1aWx0aW4sIGlzVmFsaWROb2RlSW1wb3J0IH0gZnJvbSAnbWxseSdcbmltcG9ydCB0eXBlIHsgRGVwc0hhbmRsaW5nT3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnXG5pbXBvcnQgeyBzbGFzaCB9IGZyb20gJy4vdXRpbHMnXG5cbmNvbnN0IEVTTV9FWFRfUkUgPSAvXFwuKGVzfGVzbXxlc20tYnJvd3Nlcnxlc20tYnVuZGxlcnxlczZ8bW9kdWxlKVxcLmpzJC9cbmNvbnN0IEVTTV9GT0xERVJfUkUgPSAvXFwvZXNtXFwvKC4qXFwuanMpJC9cblxuY29uc3QgZGVmYXVsdElubGluZSA9IFtcbiAgL3ZpcnR1YWw6LyxcbiAgL1xcLnRzJC8sXG4gIEVTTV9FWFRfUkUsXG4gIEVTTV9GT0xERVJfUkUsXG5dXG5cbmNvbnN0IGRlcHNFeHRlcm5hbCA9IFtcbiAgL1xcLmNqc1xcLmpzJC8sXG4gIC9cXC5tanMkLyxcbl1cblxuZXhwb3J0IGZ1bmN0aW9uIGd1ZXNzQ0pTdmVyc2lvbihpZDogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKGlkLm1hdGNoKEVTTV9FWFRfUkUpKSB7XG4gICAgZm9yIChjb25zdCBpIG9mIFtcbiAgICAgIGlkLnJlcGxhY2UoRVNNX0VYVF9SRSwgJy5tanMnKSxcbiAgICAgIGlkLnJlcGxhY2UoRVNNX0VYVF9SRSwgJy51bWQuanMnKSxcbiAgICAgIGlkLnJlcGxhY2UoRVNNX0VYVF9SRSwgJy5janMuanMnKSxcbiAgICAgIGlkLnJlcGxhY2UoRVNNX0VYVF9SRSwgJy5qcycpLFxuICAgIF0pIHtcbiAgICAgIGlmIChleGlzdHNTeW5jKGkpKVxuICAgICAgICByZXR1cm4gaVxuICAgIH1cbiAgfVxuICBpZiAoaWQubWF0Y2goRVNNX0ZPTERFUl9SRSkpIHtcbiAgICBmb3IgKGNvbnN0IGkgb2YgW1xuICAgICAgaWQucmVwbGFjZShFU01fRk9MREVSX1JFLCAnL3VtZC8kMScpLFxuICAgICAgaWQucmVwbGFjZShFU01fRk9MREVSX1JFLCAnL2Nqcy8kMScpLFxuICAgICAgaWQucmVwbGFjZShFU01fRk9MREVSX1JFLCAnLyQxJyksXG4gICAgXSkge1xuICAgICAgaWYgKGV4aXN0c1N5bmMoaSkpXG4gICAgICAgIHJldHVybiBpXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaG91bGRFeHRlcm5hbGl6ZShcbiAgaWQ6IHN0cmluZyxcbiAgb3B0aW9ucz86IERlcHNIYW5kbGluZ09wdGlvbnMsXG4gIGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIFByb21pc2U8c3RyaW5nIHwgZmFsc2U+PigpLFxuKSB7XG4gIGlmICghY2FjaGUuaGFzKGlkKSlcbiAgICBjYWNoZS5zZXQoaWQsIF9zaG91bGRFeHRlcm5hbGl6ZShpZCwgb3B0aW9ucykpXG4gIHJldHVybiBjYWNoZS5nZXQoaWQpIVxufVxuXG5hc3luYyBmdW5jdGlvbiBfc2hvdWxkRXh0ZXJuYWxpemUoXG4gIGlkOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBEZXBzSGFuZGxpbmdPcHRpb25zLFxuKTogUHJvbWlzZTxzdHJpbmcgfCBmYWxzZT4ge1xuICBpZiAoaXNOb2RlQnVpbHRpbihpZCkpXG4gICAgcmV0dXJuIGlkXG5cbiAgLy8gZGF0YTogc2hvdWxkIGJlIHByb2Nlc3NlZCBieSBuYXRpdmUgaW1wb3J0LFxuICAvLyBzaW5jZSBpdCBpcyBhIGZlYXR1cmUgb2YgRVNNXG4gIGlmIChpZC5zdGFydHNXaXRoKCdkYXRhOicpKVxuICAgIHJldHVybiBpZFxuXG4gIGlkID0gcGF0Y2hXaW5kb3dzSW1wb3J0UGF0aChpZClcblxuICBpZiAobWF0Y2hFeHRlcm5hbGl6ZVBhdHRlcm4oaWQsIG9wdGlvbnM/LmlubGluZSkpXG4gICAgcmV0dXJuIGZhbHNlXG4gIGlmIChtYXRjaEV4dGVybmFsaXplUGF0dGVybihpZCwgb3B0aW9ucz8uZXh0ZXJuYWwpKVxuICAgIHJldHVybiBpZFxuXG4gIGNvbnN0IGlzTm9kZU1vZHVsZSA9IGlkLmluY2x1ZGVzKCcvbm9kZV9tb2R1bGVzLycpXG4gIGlkID0gaXNOb2RlTW9kdWxlID8gZ3Vlc3NDSlN2ZXJzaW9uKGlkKSB8fCBpZCA6IGlkXG5cbiAgaWYgKG1hdGNoRXh0ZXJuYWxpemVQYXR0ZXJuKGlkLCBkZWZhdWx0SW5saW5lKSlcbiAgICByZXR1cm4gZmFsc2VcbiAgaWYgKG1hdGNoRXh0ZXJuYWxpemVQYXR0ZXJuKGlkLCBkZXBzRXh0ZXJuYWwpKVxuICAgIHJldHVybiBpZFxuXG4gIGNvbnN0IGlzRGlzdCA9IGlkLmluY2x1ZGVzKCcvZGlzdC8nKVxuICBpZiAoKGlzTm9kZU1vZHVsZSB8fCBpc0Rpc3QpICYmIGF3YWl0IGlzVmFsaWROb2RlSW1wb3J0KGlkKSlcbiAgICByZXR1cm4gaWRcblxuICByZXR1cm4gZmFsc2Vcbn1cblxuZnVuY3Rpb24gbWF0Y2hFeHRlcm5hbGl6ZVBhdHRlcm4oaWQ6IHN0cmluZywgcGF0dGVybnM/OiAoc3RyaW5nIHwgUmVnRXhwKVtdKSB7XG4gIGlmICghcGF0dGVybnMpXG4gICAgcmV0dXJuIGZhbHNlXG4gIGZvciAoY29uc3QgZXggb2YgcGF0dGVybnMpIHtcbiAgICBpZiAodHlwZW9mIGV4ID09PSAnc3RyaW5nJykge1xuICAgICAgaWYgKGlkLmluY2x1ZGVzKGAvbm9kZV9tb2R1bGVzLyR7ZXh9L2ApKVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGlmIChleC50ZXN0KGlkKSlcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmZ1bmN0aW9uIHBhdGNoV2luZG93c0ltcG9ydFBhdGgocGF0aDogc3RyaW5nKSB7XG4gIGlmIChwYXRoLm1hdGNoKC9eXFx3OlxcXFwvKSlcbiAgICByZXR1cm4gYGZpbGU6Ly8vJHtzbGFzaChwYXRoKX1gXG4gIGVsc2UgaWYgKHBhdGgubWF0Y2goL15cXHc6XFwvLykpXG4gICAgcmV0dXJuIGBmaWxlOi8vLyR7cGF0aH1gXG4gIGVsc2VcbiAgICByZXR1cm4gcGF0aFxufVxuIiwiaW1wb3J0IHR5cGUgeyBUcmFuc2Zvcm1SZXN1bHQsIFZpdGVEZXZTZXJ2ZXIgfSBmcm9tICd2aXRlJ1xuaW1wb3J0IHR5cGUgeyBGZXRjaFJlc3VsdCwgUmF3U291cmNlTWFwLCBWaXRlTm9kZVJlc29sdmVJZCwgVml0ZU5vZGVTZXJ2ZXJPcHRpb25zIH0gZnJvbSAnLi90eXBlcydcbmltcG9ydCB7IHNob3VsZEV4dGVybmFsaXplIH0gZnJvbSAnLi9leHRlcm5hbGl6ZSdcbmltcG9ydCB7IHRvRmlsZVBhdGgsIHdpdGhJbmxpbmVTb3VyY2VtYXAgfSBmcm9tICcuL3V0aWxzJ1xuXG5leHBvcnQgKiBmcm9tICcuL2V4dGVybmFsaXplJ1xuXG5leHBvcnQgY2xhc3MgVml0ZU5vZGVTZXJ2ZXIge1xuICBwcml2YXRlIGZldGNoUHJvbWlzZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBQcm9taXNlPEZldGNoUmVzdWx0Pj4oKVxuICBwcml2YXRlIHRyYW5zZm9ybVByb21pc2VNYXAgPSBuZXcgTWFwPHN0cmluZywgUHJvbWlzZTxUcmFuc2Zvcm1SZXN1bHQgfCBudWxsIHwgdW5kZWZpbmVkPj4oKVxuXG4gIGZldGNoQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywge1xuICAgIHRpbWVzdGFtcDogbnVtYmVyXG4gICAgcmVzdWx0OiBGZXRjaFJlc3VsdFxuICB9PigpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHNlcnZlcjogVml0ZURldlNlcnZlcixcbiAgICBwdWJsaWMgb3B0aW9uczogVml0ZU5vZGVTZXJ2ZXJPcHRpb25zID0ge30sXG4gICkge31cblxuICBzaG91bGRFeHRlcm5hbGl6ZShpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHNob3VsZEV4dGVybmFsaXplKGlkLCB0aGlzLm9wdGlvbnMuZGVwcylcbiAgfVxuXG4gIGFzeW5jIHJlc29sdmVJZChpZDogc3RyaW5nLCBpbXBvcnRlcj86IHN0cmluZyk6IFByb21pc2U8Vml0ZU5vZGVSZXNvbHZlSWQgfCBudWxsPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VydmVyLnBsdWdpbkNvbnRhaW5lci5yZXNvbHZlSWQoaWQsIGltcG9ydGVyLCB7IHNzcjogdHJ1ZSB9KVxuICB9XG5cbiAgYXN5bmMgZmV0Y2hNb2R1bGUoaWQ6IHN0cmluZyk6IFByb21pc2U8RmV0Y2hSZXN1bHQ+IHtcbiAgICAvLyByZXVzZSB0cmFuc2Zvcm0gZm9yIGNvbmN1cnJlbnQgcmVxdWVzdHNcbiAgICBpZiAoIXRoaXMuZmV0Y2hQcm9taXNlTWFwLmhhcyhpZCkpIHtcbiAgICAgIHRoaXMuZmV0Y2hQcm9taXNlTWFwLnNldChpZCxcbiAgICAgICAgdGhpcy5fZmV0Y2hNb2R1bGUoaWQpXG4gICAgICAgICAgLnRoZW4oKHIpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnMuc291cmNlbWFwICE9PSB0cnVlID8geyAuLi5yLCBtYXA6IHVuZGVmaW5lZCB9IDogclxuICAgICAgICAgIH0pXG4gICAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5mZXRjaFByb21pc2VNYXAuZGVsZXRlKGlkKVxuICAgICAgICAgIH0pLFxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy5mZXRjaFByb21pc2VNYXAuZ2V0KGlkKSFcbiAgfVxuXG4gIGFzeW5jIHRyYW5zZm9ybVJlcXVlc3QoaWQ6IHN0cmluZykge1xuICAgIC8vIHJldXNlIHRyYW5zZm9ybSBmb3IgY29uY3VycmVudCByZXF1ZXN0c1xuICAgIGlmICghdGhpcy50cmFuc2Zvcm1Qcm9taXNlTWFwLmhhcyhpZCkpIHtcbiAgICAgIHRoaXMudHJhbnNmb3JtUHJvbWlzZU1hcC5zZXQoaWQsXG4gICAgICAgIHRoaXMuX3RyYW5zZm9ybVJlcXVlc3QoaWQpXG4gICAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy50cmFuc2Zvcm1Qcm9taXNlTWFwLmRlbGV0ZShpZClcbiAgICAgICAgICB9KSxcbiAgICAgIClcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtUHJvbWlzZU1hcC5nZXQoaWQpIVxuICB9XG5cbiAgZ2V0VHJhbnNmb3JtTW9kZShpZDogc3RyaW5nKSB7XG4gICAgY29uc3Qgd2l0aG91dFF1ZXJ5ID0gaWQuc3BsaXQoJz8nKVswXVxuXG4gICAgaWYgKHRoaXMub3B0aW9ucy50cmFuc2Zvcm1Nb2RlPy53ZWI/LnNvbWUociA9PiB3aXRob3V0UXVlcnkubWF0Y2gocikpKVxuICAgICAgcmV0dXJuICd3ZWInXG4gICAgaWYgKHRoaXMub3B0aW9ucy50cmFuc2Zvcm1Nb2RlPy5zc3I/LnNvbWUociA9PiB3aXRob3V0UXVlcnkubWF0Y2gocikpKVxuICAgICAgcmV0dXJuICdzc3InXG5cbiAgICBpZiAod2l0aG91dFF1ZXJ5Lm1hdGNoKC9cXC4oW2NtXT9banRdc3g/fGpzb24pJC8pKVxuICAgICAgcmV0dXJuICdzc3InXG4gICAgcmV0dXJuICd3ZWInXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9mZXRjaE1vZHVsZShpZDogc3RyaW5nKTogUHJvbWlzZTxGZXRjaFJlc3VsdD4ge1xuICAgIGxldCByZXN1bHQ6IEZldGNoUmVzdWx0XG5cbiAgICBjb25zdCBmaWxlUGF0aCA9IHRvRmlsZVBhdGgoaWQsIHRoaXMuc2VydmVyLmNvbmZpZy5yb290KVxuXG4gICAgY29uc3QgbW9kdWxlID0gdGhpcy5zZXJ2ZXIubW9kdWxlR3JhcGguZ2V0TW9kdWxlQnlJZChpZClcbiAgICBjb25zdCB0aW1lc3RhbXAgPSBtb2R1bGU/Lmxhc3RITVJUaW1lc3RhbXAgfHwgRGF0ZS5ub3coKVxuICAgIGNvbnN0IGNhY2hlID0gdGhpcy5mZXRjaENhY2hlLmdldChmaWxlUGF0aClcbiAgICBpZiAodGltZXN0YW1wICYmIGNhY2hlICYmIGNhY2hlLnRpbWVzdGFtcCA+PSB0aW1lc3RhbXApXG4gICAgICByZXR1cm4gY2FjaGUucmVzdWx0XG5cbiAgICBjb25zdCBleHRlcm5hbGl6ZSA9IGF3YWl0IHRoaXMuc2hvdWxkRXh0ZXJuYWxpemUoZmlsZVBhdGgpXG4gICAgaWYgKGV4dGVybmFsaXplKSB7XG4gICAgICByZXN1bHQgPSB7IGV4dGVybmFsaXplIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBjb25zdCByID0gYXdhaXQgdGhpcy5fdHJhbnNmb3JtUmVxdWVzdChpZClcbiAgICAgIHJlc3VsdCA9IHsgY29kZTogcj8uY29kZSwgbWFwOiByPy5tYXAgYXMgdW5rbm93biBhcyBSYXdTb3VyY2VNYXAgfVxuICAgIH1cblxuICAgIHRoaXMuZmV0Y2hDYWNoZS5zZXQoZmlsZVBhdGgsIHtcbiAgICAgIHRpbWVzdGFtcCxcbiAgICAgIHJlc3VsdCxcbiAgICB9KVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBfdHJhbnNmb3JtUmVxdWVzdChpZDogc3RyaW5nKSB7XG4gICAgbGV0IHJlc3VsdDogVHJhbnNmb3JtUmVzdWx0IHwgbnVsbCA9IG51bGxcblxuICAgIGlmICh0aGlzLmdldFRyYW5zZm9ybU1vZGUoaWQpID09PSAnd2ViJykge1xuICAgICAgLy8gZm9yIGNvbXBvbmVudHMgbGlrZSBWdWUsIHdlIHdhbnQgdG8gdXNlIHRoZSBjbGllbnQgc2lkZVxuICAgICAgLy8gcGx1Z2lucyBidXQgdGhlbiBjb252ZXJ0IHRoZSBjb2RlIHRvIGJlIGNvbnN1bWVkIGJ5IHRoZSBzZXJ2ZXJcbiAgICAgIHJlc3VsdCA9IGF3YWl0IHRoaXMuc2VydmVyLnRyYW5zZm9ybVJlcXVlc3QoaWQpXG4gICAgICBpZiAocmVzdWx0KVxuICAgICAgICByZXN1bHQgPSBhd2FpdCB0aGlzLnNlcnZlci5zc3JUcmFuc2Zvcm0ocmVzdWx0LmNvZGUsIHJlc3VsdC5tYXAsIGlkKVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHJlc3VsdCA9IGF3YWl0IHRoaXMuc2VydmVyLnRyYW5zZm9ybVJlcXVlc3QoaWQsIHsgc3NyOiB0cnVlIH0pXG4gICAgfVxuXG4gICAgY29uc3Qgc291cmNlbWFwID0gdGhpcy5vcHRpb25zLnNvdXJjZW1hcCA/PyAnaW5saW5lJ1xuICAgIGlmIChzb3VyY2VtYXAgPT09ICdpbmxpbmUnICYmIHJlc3VsdCAmJiAhaWQuaW5jbHVkZXMoJ25vZGVfbW9kdWxlcycpKVxuICAgICAgd2l0aElubGluZVNvdXJjZW1hcChyZXN1bHQpXG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFHQSxNQUFNLFVBQVUsR0FBRyxvREFBb0QsQ0FBQztBQUN4RSxNQUFNLGFBQWEsR0FBRyxrQkFBa0IsQ0FBQztBQUN6QyxNQUFNLGFBQWEsR0FBRztBQUN0QixFQUFFLFVBQVU7QUFDWixFQUFFLE9BQU87QUFDVCxFQUFFLFVBQVU7QUFDWixFQUFFLGFBQWE7QUFDZixDQUFDLENBQUM7QUFDRixNQUFNLFlBQVksR0FBRztBQUNyQixFQUFFLFlBQVk7QUFDZCxFQUFFLFFBQVE7QUFDVixDQUFDLENBQUM7QUFDSyxTQUFTLGVBQWUsQ0FBQyxFQUFFLEVBQUU7QUFDcEMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUU7QUFDNUIsSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJO0FBQ3BCLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDO0FBQ3BDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDO0FBQ3ZDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDO0FBQ3ZDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDO0FBQ25DLEtBQUssRUFBRTtBQUNQLE1BQU0sSUFBSSxVQUFVLENB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
194
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlcyI6WyIuLi9zcmMvZXh0ZXJuYWxpemUudHMiLCIuLi9zcmMvc2VydmVyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGV4aXN0c1N5bmMgfSBmcm9tICdmcydcbmltcG9ydCB7IGlzTm9kZUJ1aWx0aW4sIGlzVmFsaWROb2RlSW1wb3J0IH0gZnJvbSAnbWxseSdcbmltcG9ydCB0eXBlIHsgRGVwc0hhbmRsaW5nT3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnXG5pbXBvcnQgeyBzbGFzaCB9IGZyb20gJy4vdXRpbHMnXG5cbmNvbnN0IEVTTV9FWFRfUkUgPSAvXFwuKGVzfGVzbXxlc20tYnJvd3Nlcnxlc20tYnVuZGxlcnxlczZ8bW9kdWxlKVxcLmpzJC9cbmNvbnN0IEVTTV9GT0xERVJfUkUgPSAvXFwvZXNtXFwvKC4qXFwuanMpJC9cblxuY29uc3QgZGVmYXVsdElubGluZSA9IFtcbiAgL3ZpcnR1YWw6LyxcbiAgL1xcLnRzJC8sXG4gIEVTTV9FWFRfUkUsXG4gIEVTTV9GT0xERVJfUkUsXG5dXG5cbmNvbnN0IGRlcHNFeHRlcm5hbCA9IFtcbiAgL1xcLmNqc1xcLmpzJC8sXG4gIC9cXC5tanMkLyxcbl1cblxuZXhwb3J0IGZ1bmN0aW9uIGd1ZXNzQ0pTdmVyc2lvbihpZDogc3RyaW5nKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKGlkLm1hdGNoKEVTTV9FWFRfUkUpKSB7XG4gICAgZm9yIChjb25zdCBpIG9mIFtcbiAgICAgIGlkLnJlcGxhY2UoRVNNX0VYVF9SRSwgJy5tanMnKSxcbiAgICAgIGlkLnJlcGxhY2UoRVNNX0VYVF9SRSwgJy51bWQuanMnKSxcbiAgICAgIGlkLnJlcGxhY2UoRVNNX0VYVF9SRSwgJy5janMuanMnKSxcbiAgICAgIGlkLnJlcGxhY2UoRVNNX0VYVF9SRSwgJy5qcycpLFxuICAgIF0pIHtcbiAgICAgIGlmIChleGlzdHNTeW5jKGkpKVxuICAgICAgICByZXR1cm4gaVxuICAgIH1cbiAgfVxuICBpZiAoaWQubWF0Y2goRVNNX0ZPTERFUl9SRSkpIHtcbiAgICBmb3IgKGNvbnN0IGkgb2YgW1xuICAgICAgaWQucmVwbGFjZShFU01fRk9MREVSX1JFLCAnL3VtZC8kMScpLFxuICAgICAgaWQucmVwbGFjZShFU01fRk9MREVSX1JFLCAnL2Nqcy8kMScpLFxuICAgICAgaWQucmVwbGFjZShFU01fRk9MREVSX1JFLCAnLyQxJyksXG4gICAgXSkge1xuICAgICAgaWYgKGV4aXN0c1N5bmMoaSkpXG4gICAgICAgIHJldHVybiBpXG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBzaG91bGRFeHRlcm5hbGl6ZShcbiAgaWQ6IHN0cmluZyxcbiAgb3B0aW9ucz86IERlcHNIYW5kbGluZ09wdGlvbnMsXG4gIGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIFByb21pc2U8c3RyaW5nIHwgZmFsc2U+PigpLFxuKSB7XG4gIGlmICghY2FjaGUuaGFzKGlkKSlcbiAgICBjYWNoZS5zZXQoaWQsIF9zaG91bGRFeHRlcm5hbGl6ZShpZCwgb3B0aW9ucykpXG4gIHJldHVybiBjYWNoZS5nZXQoaWQpIVxufVxuXG5hc3luYyBmdW5jdGlvbiBfc2hvdWxkRXh0ZXJuYWxpemUoXG4gIGlkOiBzdHJpbmcsXG4gIG9wdGlvbnM/OiBEZXBzSGFuZGxpbmdPcHRpb25zLFxuKTogUHJvbWlzZTxzdHJpbmcgfCBmYWxzZT4ge1xuICBpZiAoaXNOb2RlQnVpbHRpbihpZCkpXG4gICAgcmV0dXJuIGlkXG5cbiAgLy8gZGF0YTogc2hvdWxkIGJlIHByb2Nlc3NlZCBieSBuYXRpdmUgaW1wb3J0LFxuICAvLyBzaW5jZSBpdCBpcyBhIGZlYXR1cmUgb2YgRVNNXG4gIGlmIChpZC5zdGFydHNXaXRoKCdkYXRhOicpKVxuICAgIHJldHVybiBpZFxuXG4gIGlkID0gcGF0Y2hXaW5kb3dzSW1wb3J0UGF0aChpZClcblxuICBpZiAobWF0Y2hFeHRlcm5hbGl6ZVBhdHRlcm4oaWQsIG9wdGlvbnM/LmlubGluZSkpXG4gICAgcmV0dXJuIGZhbHNlXG4gIGlmIChtYXRjaEV4dGVybmFsaXplUGF0dGVybihpZCwgb3B0aW9ucz8uZXh0ZXJuYWwpKVxuICAgIHJldHVybiBpZFxuXG4gIGNvbnN0IGlzTm9kZU1vZHVsZSA9IGlkLmluY2x1ZGVzKCcvbm9kZV9tb2R1bGVzLycpXG4gIGNvbnN0IGd1ZXNzQ0pTID0gaXNOb2RlTW9kdWxlICYmIG9wdGlvbnM/LmZhbGxiYWNrQ0pTXG4gIGlkID0gZ3Vlc3NDSlMgPyBndWVzc0NKU3ZlcnNpb24oaWQpIHx8IGlkIDogaWRcblxuICBpZiAobWF0Y2hFeHRlcm5hbGl6ZVBhdHRlcm4oaWQsIGRlZmF1bHRJbmxpbmUpKVxuICAgIHJldHVybiBmYWxzZVxuICBpZiAobWF0Y2hFeHRlcm5hbGl6ZVBhdHRlcm4oaWQsIGRlcHNFeHRlcm5hbCkpXG4gICAgcmV0dXJuIGlkXG5cbiAgY29uc3QgaXNEaXN0ID0gaWQuaW5jbHVkZXMoJy9kaXN0LycpXG4gIGlmICgoaXNOb2RlTW9kdWxlIHx8IGlzRGlzdCkgJiYgYXdhaXQgaXNWYWxpZE5vZGVJbXBvcnQoaWQpKVxuICAgIHJldHVybiBpZFxuXG4gIHJldHVybiBmYWxzZVxufVxuXG5mdW5jdGlvbiBtYXRjaEV4dGVybmFsaXplUGF0dGVybihpZDogc3RyaW5nLCBwYXR0ZXJucz86IChzdHJpbmcgfCBSZWdFeHApW10pIHtcbiAgaWYgKCFwYXR0ZXJucylcbiAgICByZXR1cm4gZmFsc2VcbiAgZm9yIChjb25zdCBleCBvZiBwYXR0ZXJucykge1xuICAgIGlmICh0eXBlb2YgZXggPT09ICdzdHJpbmcnKSB7XG4gICAgICBpZiAoaWQuaW5jbHVkZXMoYC9ub2RlX21vZHVsZXMvJHtleH0vYCkpXG4gICAgICAgIHJldHVybiB0cnVlXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgaWYgKGV4LnRlc3QoaWQpKVxuICAgICAgICByZXR1cm4gdHJ1ZVxuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2Vcbn1cblxuZnVuY3Rpb24gcGF0Y2hXaW5kb3dzSW1wb3J0UGF0aChwYXRoOiBzdHJpbmcpIHtcbiAgaWYgKHBhdGgubWF0Y2goL15cXHc6XFxcXC8pKVxuICAgIHJldHVybiBgZmlsZTovLy8ke3NsYXNoKHBhdGgpfWBcbiAgZWxzZSBpZiAocGF0aC5tYXRjaCgvXlxcdzpcXC8vKSlcbiAgICByZXR1cm4gYGZpbGU6Ly8vJHtwYXRofWBcbiAgZWxzZVxuICAgIHJldHVybiBwYXRoXG59XG4iLCJpbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aGUnXG5pbXBvcnQgdHlwZSB7IFRyYW5zZm9ybVJlc3VsdCwgVml0ZURldlNlcnZlciB9IGZyb20gJ3ZpdGUnXG5pbXBvcnQgdHlwZSB7IEZldGNoUmVzdWx0LCBSYXdTb3VyY2VNYXAsIFZpdGVOb2RlUmVzb2x2ZUlkLCBWaXRlTm9kZVNlcnZlck9wdGlvbnMgfSBmcm9tICcuL3R5cGVzJ1xuaW1wb3J0IHsgc2hvdWxkRXh0ZXJuYWxpemUgfSBmcm9tICcuL2V4dGVybmFsaXplJ1xuaW1wb3J0IHsgdG9GaWxlUGF0aCwgd2l0aElubGluZVNvdXJjZW1hcCB9IGZyb20gJy4vdXRpbHMnXG5cbmV4cG9ydCAqIGZyb20gJy4vZXh0ZXJuYWxpemUnXG5cbmV4cG9ydCBjbGFzcyBWaXRlTm9kZVNlcnZlciB7XG4gIHByaXZhdGUgZmV0Y2hQcm9taXNlTWFwID0gbmV3IE1hcDxzdHJpbmcsIFByb21pc2U8RmV0Y2hSZXN1bHQ+PigpXG4gIHByaXZhdGUgdHJhbnNmb3JtUHJvbWlzZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBQcm9taXNlPFRyYW5zZm9ybVJlc3VsdCB8IG51bGwgfCB1bmRlZmluZWQ+PigpXG5cbiAgZmV0Y2hDYWNoZSA9IG5ldyBNYXA8c3RyaW5nLCB7XG4gICAgdGltZXN0YW1wOiBudW1iZXJcbiAgICByZXN1bHQ6IEZldGNoUmVzdWx0XG4gIH0+KClcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgc2VydmVyOiBWaXRlRGV2U2VydmVyLFxuICAgIHB1YmxpYyBvcHRpb25zOiBWaXRlTm9kZVNlcnZlck9wdGlvbnMgPSB7fSxcbiAgKSB7fVxuXG4gIHNob3VsZEV4dGVybmFsaXplKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gc2hvdWxkRXh0ZXJuYWxpemUoaWQsIHRoaXMub3B0aW9ucy5kZXBzKVxuICB9XG5cbiAgYXN5bmMgcmVzb2x2ZUlkKGlkOiBzdHJpbmcsIGltcG9ydGVyPzogc3RyaW5nKTogUHJvbWlzZTxWaXRlTm9kZVJlc29sdmVJZCB8IG51bGw+IHtcbiAgICBpZiAoaW1wb3J0ZXIgJiYgIWltcG9ydGVyLnN0YXJ0c1dpdGgodGhpcy5zZXJ2ZXIuY29uZmlnLnJvb3QpKVxuICAgICAgaW1wb3J0ZXIgPSBqb2luKHRoaXMuc2VydmVyLmNvbmZpZy5yb290LCBpbXBvcnRlcilcbiAgICByZXR1cm4gdGhpcy5zZXJ2ZXIucGx1Z2luQ29udGFpbmVyLnJlc29sdmVJZChpZCwgaW1wb3J0ZXIsIHsgc3NyOiB0cnVlIH0pXG4gIH1cblxuICBhc3luYyBmZXRjaE1vZHVsZShpZDogc3RyaW5nKTogUHJvbWlzZTxGZXRjaFJlc3VsdD4ge1xuICAgIC8vIHJldXNlIHRyYW5zZm9ybSBmb3IgY29uY3VycmVudCByZXF1ZXN0c1xuICAgIGlmICghdGhpcy5mZXRjaFByb21pc2VNYXAuaGFzKGlkKSkge1xuICAgICAgdGhpcy5mZXRjaFByb21pc2VNYXAuc2V0KGlkLFxuICAgICAgICB0aGlzLl9mZXRjaE1vZHVsZShpZClcbiAgICAgICAgICAudGhlbigocikgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMub3B0aW9ucy5zb3VyY2VtYXAgIT09IHRydWUgPyB7IC4uLnIsIG1hcDogdW5kZWZpbmVkIH0gOiByXG4gICAgICAgICAgfSlcbiAgICAgICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZldGNoUHJvbWlzZU1hcC5kZWxldGUoaWQpXG4gICAgICAgICAgfSksXG4gICAgICApXG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZldGNoUHJvbWlzZU1hcC5nZXQoaWQpIVxuICB9XG5cbiAgYXN5bmMgdHJhbnNmb3JtUmVxdWVzdChpZDogc3RyaW5nKSB7XG4gICAgLy8gcmV1c2UgdHJhbnNmb3JtIGZvciBjb25jdXJyZW50IHJlcXVlc3RzXG4gICAgaWYgKCF0aGlzLnRyYW5zZm9ybVByb21pc2VNYXAuaGFzKGlkKSkge1xuICAgICAgdGhpcy50cmFuc2Zvcm1Qcm9taXNlTWFwLnNldChpZCxcbiAgICAgICAgdGhpcy5fdHJhbnNmb3JtUmVxdWVzdChpZClcbiAgICAgICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnRyYW5zZm9ybVByb21pc2VNYXAuZGVsZXRlKGlkKVxuICAgICAgICAgIH0pLFxuICAgICAgKVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy50cmFuc2Zvcm1Qcm9taXNlTWFwLmdldChpZCkhXG4gIH1cblxuICBnZXRUcmFuc2Zvcm1Nb2RlKGlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCB3aXRob3V0UXVlcnkgPSBpZC5zcGxpdCgnPycpWzBdXG5cbiAgICBpZiAodGhpcy5vcHRpb25zLnRyYW5zZm9ybU1vZGU/LndlYj8uc29tZShyID0+IHdpdGhvdXRRdWVyeS5tYXRjaChyKSkpXG4gICAgICByZXR1cm4gJ3dlYidcbiAgICBpZiAodGhpcy5vcHRpb25zLnRyYW5zZm9ybU1vZGU/LnNzcj8uc29tZShyID0+IHdpdGhvdXRRdWVyeS5tYXRjaChyKSkpXG4gICAgICByZXR1cm4gJ3NzcidcblxuICAgIGlmICh3aXRob3V0UXVlcnkubWF0Y2goL1xcLihbY21dP1tqdF1zeD98anNvbikkLykpXG4gICAgICByZXR1cm4gJ3NzcidcbiAgICByZXR1cm4gJ3dlYidcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX2ZldGNoTW9kdWxlKGlkOiBzdHJpbmcpOiBQcm9taXNlPEZldGNoUmVzdWx0PiB7XG4gICAgbGV0IHJlc3VsdDogRmV0Y2hSZXN1bHRcblxuICAgIGNvbnN0IGZpbGVQYXRoID0gdG9GaWxlUGF0aChpZCwgdGhpcy5zZXJ2ZXIuY29uZmlnLnJvb3QpXG5cbiAgICBjb25zdCBtb2R1bGUgPSB0aGlzLnNlcnZlci5tb2R1bGVHcmFwaC5nZXRNb2R1bGVCeUlkKGlkKVxuICAgIGNvbnN0IHRpbWVzdGFtcCA9IG1vZHVsZT8ubGFzdEhNUlRpbWVzdGFtcCB8fCBEYXRlLm5vdygpXG4gICAgY29uc3QgY2FjaGUgPSB0aGlzLmZldGNoQ2FjaGUuZ2V0KGZpbGVQYXRoKVxuICAgIGlmICh0aW1lc3RhbXAgJiYgY2FjaGUgJiYgY2FjaGUudGltZXN0YW1wID49IHRpbWVzdGFtcClcbiAgICAgIHJldHVybiBjYWNoZS5yZXN1bHRcblxuICAgIGNvbnN0IGV4dGVybmFsaXplID0gYXdhaXQgdGhpcy5zaG91bGRFeHRlcm5hbGl6ZShmaWxlUGF0aClcbiAgICBpZiAoZXh0ZXJuYWxpemUpIHtcbiAgICAgIHJlc3VsdCA9IHsgZXh0ZXJuYWxpemUgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGNvbnN0IHIgPSBhd2FpdCB0aGlzLl90cmFuc2Zvcm1SZXF1ZXN0KGlkKVxuICAgICAgcmVzdWx0ID0geyBjb2RlOiByPy5jb2RlLCBtYXA6IHI/Lm1hcCBhcyB1bmtub3duIGFzIFJhd1NvdXJjZU1hcCB9XG4gICAgfVxuXG4gICAgdGhpcy5mZXRjaENhY2hlLnNldChmaWxlUGF0aCwge1xuICAgICAgdGltZXN0YW1wLFxuICAgICAgcmVzdWx0LFxuICAgIH0pXG5cbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF90cmFuc2Zvcm1SZXF1ZXN0KGlkOiBzdHJpbmcpIHtcbiAgICBsZXQgcmVzdWx0OiBUcmFuc2Zvcm1SZXN1bHQgfCBudWxsID0gbnVsbFxuXG4gICAgaWYgKHRoaXMuZ2V0VHJhbnNmb3JtTW9kZShpZCkgPT09ICd3ZWInKSB7XG4gICAgICAvLyBmb3IgY29tcG9uZW50cyBsaWtlIFZ1ZSwgd2Ugd2FudCB0byB1c2UgdGhlIGNsaWVudCBzaWRlXG4gICAgICAvLyBwbHVnaW5zIGJ1dCB0aGVuIGNvbnZlcnQgdGhlIGNvZGUgdG8gYmUgY29uc3VtZWQgYnkgdGhlIHNlcnZlclxuICAgICAgcmVzdWx0ID0gYXdhaXQgdGhpcy5zZXJ2ZXIudHJhbnNmb3JtUmVxdWVzdChpZClcbiAgICAgIGlmIChyZXN1bHQpXG4gICAgICAgIHJlc3VsdCA9IGF3YWl0IHRoaXMuc2VydmVyLnNzclRyYW5zZm9ybShyZXN1bHQuY29kZSwgcmVzdWx0Lm1hcCwgaWQpXG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgcmVzdWx0ID0gYXdhaXQgdGhpcy5zZXJ2ZXIudHJhbnNmb3JtUmVxdWVzdChpZCwgeyBzc3I6IHRydWUgfSlcbiAgICB9XG5cbiAgICBjb25zdCBzb3VyY2VtYXAgPSB0aGlzLm9wdGlvbnMuc291cmNlbWFwID8/ICdpbmxpbmUnXG4gICAgaWYgKHNvdXJjZW1hcCA9PT0gJ2lubGluZScgJiYgcmVzdWx0ICYmICFpZC5pbmNsdWRlcygnbm9kZV9tb2R1bGVzJykpXG4gICAgICB3aXRoSW5saW5lU291cmNlbWFwKHJlc3VsdClcblxuICAgIHJldHVybiByZXN1bHRcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUdBLE1BQU0sVUFBVSxHQUFHLG9EQUFvRCxDQUFDO0FBQ3hFLE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUFDO0FBQ3pDLE1BQU0sYUFBYSxHQUFHO0FBQ3RCLEVBQUUsVUFBVTtBQUNaLEVBQUUsT0FBTztBQUNULEVBQUUsVUFBVTtBQUNaLEVBQUUsYUFBYTtBQUNmLENBQUMsQ0FBQztBQUNGLE1BQU0sWUFBWSxHQUFHO0FBQ3JCLEVBQUUsWUFBWTtBQUNkLEVBQUUsUUFBUTtBQUNWLENBQUMsQ0FBQztBQUNLLFNBQVMsZUFBZSxDQUFDLEVBQUUsRUFBRTtBQUNwQyxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsRUFBRTtBQUM1QixJQUFJLEtBQUssTUFBTSxDQUFDLElBQUk7QUFDcEIsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLFVB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
package/index.d.ts CHANGED
@@ -1 +1 @@
1
- export { DepsHandlingOptions, FetchFunction, FetchResult, ModuleCache, RawSourceMap, ResolveIdFunction, StartOfSourceMap, ViteNodeResolveId, ViteNodeRunnerOptions, ViteNodeServerOptions } from './types.js';
1
+ export { D as DepsHandlingOptions, a as FetchFunction, F as FetchResult, c as ModuleCache, M as ModuleCacheMap, R as RawSourceMap, b as ResolveIdFunction, S as StartOfSourceMap, d as ViteNodeResolveId, V as ViteNodeRunnerOptions, e as ViteNodeServerOptions } from './types-7101d113.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vite-node",
3
- "version": "0.6.3",
3
+ "version": "0.7.0",
4
4
  "description": "Vite as Node.js runtime",
5
5
  "homepage": "https://github.com/vitest-dev/vitest#readme",
6
6
  "bugs": {
package/server.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ViteDevServer, TransformResult } from 'vite';
2
- import { DepsHandlingOptions, ViteNodeServerOptions, FetchResult, ViteNodeResolveId } from './types.js';
2
+ import { D as DepsHandlingOptions, e as ViteNodeServerOptions, F as FetchResult, d as ViteNodeResolveId } from './types-7101d113.js';
3
3
 
4
4
  declare function guessCJSversion(id: string): string | undefined;
5
5
  declare function shouldExternalize(id: string, options?: DepsHandlingOptions, cache?: Map<string, Promise<string | false>>): Promise<string | false>;
@@ -0,0 +1,111 @@
1
+ declare const DEFAULT_REQUEST_STUBS: {
2
+ '/@vite/client': {
3
+ injectQuery: (id: string) => string;
4
+ createHotContext(): {
5
+ accept: () => void;
6
+ prune: () => void;
7
+ };
8
+ updateStyle(): void;
9
+ };
10
+ };
11
+ declare class ModuleCacheMap extends Map<string, ModuleCache> {
12
+ normalizePath(fsPath: string): string;
13
+ set(fsPath: string, mod: Partial<ModuleCache>): this;
14
+ get(fsPath: string): ModuleCache | undefined;
15
+ delete(fsPath: string): boolean;
16
+ }
17
+ declare class ViteNodeRunner {
18
+ options: ViteNodeRunnerOptions;
19
+ root: string;
20
+ /**
21
+ * Holds the cache of modules
22
+ * Keys of the map are filepaths, or plain package names
23
+ */
24
+ moduleCache: ModuleCacheMap;
25
+ constructor(options: ViteNodeRunnerOptions);
26
+ executeFile(file: string): Promise<any>;
27
+ executeId(id: string): Promise<any>;
28
+ cachedRequest(rawId: string, callstack: string[]): Promise<any>;
29
+ directRequest(id: string, fsPath: string, callstack: string[]): Promise<any>;
30
+ prepareContext(context: Record<string, any>): Record<string, any>;
31
+ shouldResolveId(dep: string): boolean;
32
+ /**
33
+ * Define if a module should be interop-ed
34
+ * This function mostly for the ability to override by subclass
35
+ */
36
+ shouldInterop(path: string, mod: any): boolean;
37
+ /**
38
+ * Import a module and interop it
39
+ */
40
+ interopedImport(path: string): Promise<any>;
41
+ hasNestedDefault(target: any): any;
42
+ }
43
+
44
+ interface DepsHandlingOptions {
45
+ external?: (string | RegExp)[];
46
+ inline?: (string | RegExp)[];
47
+ /**
48
+ * Try to guess the CJS version of a package when it's invalid ESM
49
+ * @default false
50
+ */
51
+ fallbackCJS?: boolean;
52
+ }
53
+ interface StartOfSourceMap {
54
+ file?: string;
55
+ sourceRoot?: string;
56
+ }
57
+ interface RawSourceMap extends StartOfSourceMap {
58
+ version: string;
59
+ sources: string[];
60
+ names: string[];
61
+ sourcesContent?: string[];
62
+ mappings: string;
63
+ }
64
+ interface FetchResult {
65
+ code?: string;
66
+ externalize?: string;
67
+ map?: RawSourceMap;
68
+ }
69
+ declare type FetchFunction = (id: string) => Promise<FetchResult>;
70
+ declare type ResolveIdFunction = (id: string, importer?: string) => Promise<ViteNodeResolveId | null>;
71
+ interface ModuleCache {
72
+ promise?: Promise<any>;
73
+ exports?: any;
74
+ code?: string;
75
+ }
76
+ interface ViteNodeRunnerOptions {
77
+ root: string;
78
+ fetchModule: FetchFunction;
79
+ resolveId?: ResolveIdFunction;
80
+ base?: string;
81
+ moduleCache?: ModuleCacheMap;
82
+ interopDefault?: boolean;
83
+ requestStubs?: Record<string, any>;
84
+ }
85
+ interface ViteNodeResolveId {
86
+ external?: boolean | 'absolute' | 'relative';
87
+ id: string;
88
+ meta?: Record<string, any> | null;
89
+ moduleSideEffects?: boolean | 'no-treeshake' | null;
90
+ syntheticNamedExports?: boolean | string | null;
91
+ }
92
+ interface ViteNodeServerOptions {
93
+ /**
94
+ * Inject inline sourcemap to modules
95
+ * @default 'inline'
96
+ */
97
+ sourcemap?: 'inline' | boolean;
98
+ /**
99
+ * Deps handling
100
+ */
101
+ deps?: DepsHandlingOptions;
102
+ /**
103
+ * Transform method for modules
104
+ */
105
+ transformMode?: {
106
+ ssr?: RegExp[];
107
+ web?: RegExp[];
108
+ };
109
+ }
110
+
111
+ export { DepsHandlingOptions as D, FetchResult as F, ModuleCache as M, RawSourceMap as R, StartOfSourceMap as S, ViteNodeRunnerOptions as V, FetchFunction as a, ResolveIdFunction as b, ViteNodeResolveId as c, ViteNodeServerOptions as d, DEFAULT_REQUEST_STUBS as e, ModuleCacheMap as f, ViteNodeRunner as g };
@@ -0,0 +1,111 @@
1
+ declare const DEFAULT_REQUEST_STUBS: {
2
+ '/@vite/client': {
3
+ injectQuery: (id: string) => string;
4
+ createHotContext(): {
5
+ accept: () => void;
6
+ prune: () => void;
7
+ };
8
+ updateStyle(): void;
9
+ };
10
+ };
11
+ declare class ModuleCacheMap extends Map<string, ModuleCache> {
12
+ normalizePath(fsPath: string): string;
13
+ set(fsPath: string, mod: Partial<ModuleCache>): this;
14
+ get(fsPath: string): ModuleCache | undefined;
15
+ delete(fsPath: string): boolean;
16
+ }
17
+ declare class ViteNodeRunner {
18
+ options: ViteNodeRunnerOptions;
19
+ root: string;
20
+ /**
21
+ * Holds the cache of modules
22
+ * Keys of the map are filepaths, or plain package names
23
+ */
24
+ moduleCache: ModuleCacheMap;
25
+ constructor(options: ViteNodeRunnerOptions);
26
+ executeFile(file: string): Promise<any>;
27
+ executeId(id: string): Promise<any>;
28
+ cachedRequest(rawId: string, callstack: string[]): Promise<any>;
29
+ directRequest(id: string, fsPath: string, callstack: string[]): Promise<any>;
30
+ prepareContext(context: Record<string, any>): Record<string, any>;
31
+ shouldResolveId(dep: string): boolean;
32
+ /**
33
+ * Define if a module should be interop-ed
34
+ * This function mostly for the ability to override by subclass
35
+ */
36
+ shouldInterop(path: string, mod: any): boolean;
37
+ /**
38
+ * Import a module and interop it
39
+ */
40
+ interopedImport(path: string): Promise<any>;
41
+ hasNestedDefault(target: any): any;
42
+ }
43
+
44
+ interface DepsHandlingOptions {
45
+ external?: (string | RegExp)[];
46
+ inline?: (string | RegExp)[];
47
+ /**
48
+ * Try to guess the CJS version of a package when it's invalid ESM
49
+ * @default false
50
+ */
51
+ fallbackCJS?: boolean;
52
+ }
53
+ interface StartOfSourceMap {
54
+ file?: string;
55
+ sourceRoot?: string;
56
+ }
57
+ interface RawSourceMap extends StartOfSourceMap {
58
+ version: string;
59
+ sources: string[];
60
+ names: string[];
61
+ sourcesContent?: string[];
62
+ mappings: string;
63
+ }
64
+ interface FetchResult {
65
+ code?: string;
66
+ externalize?: string;
67
+ map?: RawSourceMap;
68
+ }
69
+ declare type FetchFunction = (id: string) => Promise<FetchResult>;
70
+ declare type ResolveIdFunction = (id: string, importer?: string) => Promise<ViteNodeResolveId | null>;
71
+ interface ModuleCache {
72
+ promise?: Promise<any>;
73
+ exports?: any;
74
+ code?: string;
75
+ }
76
+ interface ViteNodeRunnerOptions {
77
+ root: string;
78
+ fetchModule: FetchFunction;
79
+ resolveId?: ResolveIdFunction;
80
+ base?: string;
81
+ moduleCache?: ModuleCacheMap;
82
+ interopDefault?: boolean;
83
+ requestStubs?: Record<string, any>;
84
+ }
85
+ interface ViteNodeResolveId {
86
+ external?: boolean | 'absolute' | 'relative';
87
+ id: string;
88
+ meta?: Record<string, any> | null;
89
+ moduleSideEffects?: boolean | 'no-treeshake' | null;
90
+ syntheticNamedExports?: boolean | string | null;
91
+ }
92
+ interface ViteNodeServerOptions {
93
+ /**
94
+ * Inject inline sourcemap to modules
95
+ * @default 'inline'
96
+ */
97
+ sourcemap?: 'inline' | boolean;
98
+ /**
99
+ * Deps handling
100
+ */
101
+ deps?: DepsHandlingOptions;
102
+ /**
103
+ * Transform method for modules
104
+ */
105
+ transformMode?: {
106
+ ssr?: RegExp[];
107
+ web?: RegExp[];
108
+ };
109
+ }
110
+
111
+ export { DepsHandlingOptions as D, FetchResult as F, ModuleCacheMap as M, RawSourceMap as R, StartOfSourceMap as S, ViteNodeRunnerOptions as V, FetchFunction as a, ResolveIdFunction as b, ModuleCache as c, ViteNodeResolveId as d, ViteNodeServerOptions as e, DEFAULT_REQUEST_STUBS as f, ViteNodeRunner as g };
package/types.d.ts CHANGED
@@ -1,68 +1 @@
1
- interface DepsHandlingOptions {
2
- external?: (string | RegExp)[];
3
- inline?: (string | RegExp)[];
4
- /**
5
- * Try to guess the CJS version of a package when it's invalid ESM
6
- * @default true
7
- */
8
- fallbackCJS?: boolean;
9
- }
10
- interface StartOfSourceMap {
11
- file?: string;
12
- sourceRoot?: string;
13
- }
14
- interface RawSourceMap extends StartOfSourceMap {
15
- version: string;
16
- sources: string[];
17
- names: string[];
18
- sourcesContent?: string[];
19
- mappings: string;
20
- }
21
- interface FetchResult {
22
- code?: string;
23
- externalize?: string;
24
- map?: RawSourceMap;
25
- }
26
- declare type FetchFunction = (id: string) => Promise<FetchResult>;
27
- declare type ResolveIdFunction = (id: string, importer?: string) => Promise<ViteNodeResolveId | null>;
28
- interface ModuleCache {
29
- promise?: Promise<any>;
30
- exports?: any;
31
- code?: string;
32
- }
33
- interface ViteNodeRunnerOptions {
34
- root: string;
35
- fetchModule: FetchFunction;
36
- resolveId?: ResolveIdFunction;
37
- base?: string;
38
- moduleCache?: Map<string, ModuleCache>;
39
- interopDefault?: boolean;
40
- requestStubs?: Record<string, any>;
41
- }
42
- interface ViteNodeResolveId {
43
- external?: boolean | 'absolute' | 'relative';
44
- id: string;
45
- meta?: Record<string, any> | null;
46
- moduleSideEffects?: boolean | 'no-treeshake' | null;
47
- syntheticNamedExports?: boolean | string | null;
48
- }
49
- interface ViteNodeServerOptions {
50
- /**
51
- * Inject inline sourcemap to modules
52
- * @default 'inline'
53
- */
54
- sourcemap?: 'inline' | boolean;
55
- /**
56
- * Deps handling
57
- */
58
- deps?: DepsHandlingOptions;
59
- /**
60
- * Transform method for modules
61
- */
62
- transformMode?: {
63
- ssr?: RegExp[];
64
- web?: RegExp[];
65
- };
66
- }
67
-
68
- export { DepsHandlingOptions, FetchFunction, FetchResult, ModuleCache, RawSourceMap, ResolveIdFunction, StartOfSourceMap, ViteNodeResolveId, ViteNodeRunnerOptions, ViteNodeServerOptions };
1
+ export { D as DepsHandlingOptions, a as FetchFunction, F as FetchResult, c as ModuleCache, M as ModuleCacheMap, R as RawSourceMap, b as ResolveIdFunction, S as StartOfSourceMap, d as ViteNodeResolveId, V as ViteNodeRunnerOptions, e as ViteNodeServerOptions } from './types-7101d113.js';