vite-node 0.7.11 → 0.8.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/README.md +2 -2
- package/{cli.d.ts → dist/cli.d.ts} +0 -0
- package/dist/client.cjs +31 -13
- package/{client.d.ts → dist/client.d.ts} +1 -1
- package/dist/client.js +31 -13
- package/{index.d.ts → dist/index.d.ts} +1 -1
- package/{server.d.ts → dist/server.d.ts} +1 -1
- package/{types-3ae135eb.d.ts → dist/types-4b326db0.d.ts} +4 -1
- package/{types.d.ts → dist/types.d.ts} +1 -1
- package/{utils.d.ts → dist/utils.d.ts} +0 -0
- package/package.json +18 -10
- package/types-49baa6c8.d.ts +0 -111
- package/types-7101d113.d.ts +0 -111
- package/types-b082e264.d.ts +0 -115
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@ Vite as Node runtime. The engine powers [Vitest](https://github.com/vitest-dev/v
|
|
|
7
7
|
## Features
|
|
8
8
|
|
|
9
9
|
- Out-of-box ESM & TypeScript support (possible for more with plugins)
|
|
10
|
-
- Top-level await
|
|
10
|
+
- Top-level `await`
|
|
11
11
|
- Vite plugins, resolve, aliasing
|
|
12
12
|
- Respect `vite.config.ts`
|
|
13
13
|
- Shims for `__dirname` and `__filename` in ESM
|
|
@@ -29,7 +29,7 @@ npx vite-node -h
|
|
|
29
29
|
|
|
30
30
|
## Programmatic Usage
|
|
31
31
|
|
|
32
|
-
In Vite Node, the server and runner (client) are separated, so you can integrate them in different contexts (workers, cross-process, or remote) if needed. The demo below shows a simple example of having
|
|
32
|
+
In Vite Node, the server and runner (client) are separated, so you can integrate them in different contexts (workers, cross-process, or remote) if needed. The demo below shows a simple example of having both (server and runner) running in the same context
|
|
33
33
|
|
|
34
34
|
```ts
|
|
35
35
|
import { createServer } from 'vite'
|
|
File without changes
|
package/dist/client.cjs
CHANGED
|
@@ -78,8 +78,9 @@ class ModuleCacheMap extends Map {
|
|
|
78
78
|
class ViteNodeRunner {
|
|
79
79
|
constructor(options) {
|
|
80
80
|
this.options = options;
|
|
81
|
-
this.root = options.root
|
|
82
|
-
this.moduleCache = options.moduleCache
|
|
81
|
+
this.root = options.root ?? process.cwd();
|
|
82
|
+
this.moduleCache = options.moduleCache ?? new ModuleCacheMap();
|
|
83
|
+
this.debug = options.debug ?? (typeof process !== "undefined" ? !!process.env.VITE_NODE_DEBUG : false);
|
|
83
84
|
}
|
|
84
85
|
async executeFile(file) {
|
|
85
86
|
return await this.cachedRequest(`/@fs/${utils.slash(pathe.resolve(file))}`, []);
|
|
@@ -97,23 +98,36 @@ class ViteNodeRunner {
|
|
|
97
98
|
this.moduleCache.set(fsPath, { promise });
|
|
98
99
|
return await promise;
|
|
99
100
|
}
|
|
100
|
-
async directRequest(id, fsPath,
|
|
101
|
-
callstack = [...
|
|
101
|
+
async directRequest(id, fsPath, _callstack) {
|
|
102
|
+
const callstack = [..._callstack, utils.normalizeModuleId(id)];
|
|
102
103
|
const request = async (dep) => {
|
|
103
104
|
var _a, _b;
|
|
105
|
+
const getStack = () => {
|
|
106
|
+
return `stack:
|
|
107
|
+
${[...callstack, dep].reverse().map((p) => `- ${p}`).join("\n")}`;
|
|
108
|
+
};
|
|
104
109
|
if (this.options.resolveId && this.shouldResolveId(dep)) {
|
|
105
110
|
const resolvedDep = await this.options.resolveId(dep, id);
|
|
106
111
|
dep = ((_a = resolvedDep == null ? void 0 : resolvedDep.id) == null ? void 0 : _a.replace(this.root, "")) || dep;
|
|
107
112
|
}
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
113
|
+
let debugTimer;
|
|
114
|
+
if (this.debug)
|
|
115
|
+
debugTimer = setTimeout(() => this.debugLog(() => `module ${dep} takes over 2s to load.
|
|
116
|
+
${getStack()}`), 2e3);
|
|
117
|
+
try {
|
|
118
|
+
if (callstack.includes(utils.normalizeModuleId(dep))) {
|
|
119
|
+
this.debugLog(() => `circular dependency, ${getStack()}`);
|
|
120
|
+
const depExports = (_b = this.moduleCache.get(dep)) == null ? void 0 : _b.exports;
|
|
121
|
+
if (depExports)
|
|
122
|
+
return depExports;
|
|
123
|
+
throw new Error(`[vite-node] Failed to resolve circular dependency, ${getStack()}`);
|
|
124
|
+
}
|
|
125
|
+
const mod = await this.cachedRequest(dep, callstack);
|
|
126
|
+
return mod;
|
|
127
|
+
} finally {
|
|
128
|
+
if (debugTimer)
|
|
129
|
+
clearTimeout(debugTimer);
|
|
115
130
|
}
|
|
116
|
-
return this.cachedRequest(dep, callstack);
|
|
117
131
|
};
|
|
118
132
|
const requestStubs = this.options.requestStubs || DEFAULT_REQUEST_STUBS;
|
|
119
133
|
if (id in requestStubs)
|
|
@@ -189,6 +203,10 @@ ${[...callstack, dep].reverse().map((p) => `- ${p}`).join("\n")}`);
|
|
|
189
203
|
hasNestedDefault(target) {
|
|
190
204
|
return "__esModule" in target && target.__esModule && "default" in target.default;
|
|
191
205
|
}
|
|
206
|
+
debugLog(msg) {
|
|
207
|
+
if (this.debug)
|
|
208
|
+
console.log(`[vite-node] ${msg()}`);
|
|
209
|
+
}
|
|
192
210
|
}
|
|
193
211
|
function proxyMethod(name, tryDefault) {
|
|
194
212
|
return function(target, key, ...args) {
|
|
@@ -220,4 +238,4 @@ function exportAll(exports, sourceModule) {
|
|
|
220
238
|
exports.DEFAULT_REQUEST_STUBS = DEFAULT_REQUEST_STUBS;
|
|
221
239
|
exports.ModuleCacheMap = ModuleCacheMap;
|
|
222
240
|
exports.ViteNodeRunner = ViteNodeRunner;
|
|
223
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmNqcyIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZXF1aXJlIH0gZnJvbSAnbW9kdWxlJ1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCwgcGF0aFRvRmlsZVVSTCB9IGZyb20gJ3VybCdcbmltcG9ydCB2bSBmcm9tICd2bSdcbmltcG9ydCB7IGRpcm5hbWUsIGV4dG5hbWUsIGlzQWJzb2x1dGUsIHJlc29sdmUgfSBmcm9tICdwYXRoZSdcbmltcG9ydCB7IGlzTm9kZUJ1aWx0aW4gfSBmcm9tICdtbGx5J1xuaW1wb3J0IHsgaXNQcmltaXRpdmUsIG5vcm1hbGl6ZU1vZHVsZUlkLCBub3JtYWxpemVSZXF1ZXN0SWQsIHNsYXNoLCB0b0ZpbGVQYXRoIH0gZnJvbSAnLi91dGlscydcbmltcG9ydCB0eXBlIHsgTW9kdWxlQ2FjaGUsIFZpdGVOb2RlUnVubmVyT3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnXG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1JFUVVFU1RfU1RVQlMgPSB7XG4gICcvQHZpdGUvY2xpZW50Jzoge1xuICAgIGluamVjdFF1ZXJ5OiAoaWQ6IHN0cmluZykgPT4gaWQsXG4gICAgY3JlYXRlSG90Q29udGV4dCgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFjY2VwdDogKCkgPT4ge30sXG4gICAgICAgIHBydW5lOiAoKSA9PiB7fSxcbiAgICAgICAgZGlzcG9zZTogKCkgPT4ge30sXG4gICAgICAgIGRlY2xpbmU6ICgpID0+IHt9LFxuICAgICAgICBpbnZhbGlkYXRlOiAoKSA9PiB7fSxcbiAgICAgICAgb246ICgpID0+IHt9LFxuICAgICAgfVxuICAgIH0sXG4gICAgdXBkYXRlU3R5bGUoKSB7fSxcbiAgfSxcbn1cblxuZXhwb3J0IGNsYXNzIE1vZHVsZUNhY2hlTWFwIGV4dGVuZHMgTWFwPHN0cmluZywgTW9kdWxlQ2FjaGU+IHtcbiAgbm9ybWFsaXplUGF0aChmc1BhdGg6IHN0cmluZykge1xuICAgIHJldHVybiBub3JtYWxpemVNb2R1bGVJZChmc1BhdGgpXG4gIH1cblxuICBzZXQoZnNQYXRoOiBzdHJpbmcsIG1vZDogUGFydGlhbDxNb2R1bGVDYWNoZT4pIHtcbiAgICBmc1BhdGggPSB0aGlzLm5vcm1hbGl6ZVBhdGgoZnNQYXRoKVxuICAgIGlmICghc3VwZXIuaGFzKGZzUGF0aCkpXG4gICAgICBzdXBlci5zZXQoZnNQYXRoLCBtb2QpXG4gICAgZWxzZVxuICAgICAgT2JqZWN0LmFzc2lnbihzdXBlci5nZXQoZnNQYXRoKSwgbW9kKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBnZXQoZnNQYXRoOiBzdHJpbmcpIHtcbiAgICBmc1BhdGggPSB0aGlzLm5vcm1hbGl6ZVBhdGgoZnNQYXRoKVxuICAgIHJldHVybiBzdXBlci5nZXQoZnNQYXRoKVxuICB9XG5cbiAgZGVsZXRlKGZzUGF0aDogc3RyaW5nKSB7XG4gICAgZnNQYXRoID0gdGhpcy5ub3JtYWxpemVQYXRoKGZzUGF0aClcbiAgICByZXR1cm4gc3VwZXIuZGVsZXRlKGZzUGF0aClcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVml0ZU5vZGVSdW5uZXIge1xuICByb290OiBzdHJpbmdcblxuICAvKipcbiAgICogSG9sZHMgdGhlIGNhY2hlIG9mIG1vZHVsZXNcbiAgICogS2V5cyBvZiB0aGUgbWFwIGFyZSBmaWxlcGF0aHMsIG9yIHBsYWluIHBhY2thZ2UgbmFtZXNcbiAgICovXG4gIG1vZHVsZUNhY2hlOiBNb2R1bGVDYWNoZU1hcFxuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBvcHRpb25zOiBWaXRlTm9kZVJ1bm5lck9wdGlvbnMpIHtcbiAgICB0aGlzLnJvb3QgPSBvcHRpb25zLnJvb3QgfHwgcHJvY2Vzcy5jd2QoKVxuICAgIHRoaXMubW9kdWxlQ2FjaGUgPSBvcHRpb25zLm1vZHVsZUNhY2hlIHx8IG5ldyBNb2R1bGVDYWNoZU1hcCgpXG4gIH1cblxuICBhc3luYyBleGVjdXRlRmlsZShmaWxlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jYWNoZWRSZXF1ZXN0KGAvQGZzLyR7c2xhc2gocmVzb2x2ZShmaWxlKSl9YCwgW10pXG4gIH1cblxuICBhc3luYyBleGVjdXRlSWQoaWQ6IHN0cmluZykge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNhY2hlZFJlcXVlc3QoaWQsIFtdKVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBhc3luYyBjYWNoZWRSZXF1ZXN0KHJhd0lkOiBzdHJpbmcsIGNhbGxzdGFjazogc3RyaW5nW10pIHtcbiAgICBjb25zdCBpZCA9IG5vcm1hbGl6ZVJlcXVlc3RJZChyYXdJZCwgdGhpcy5vcHRpb25zLmJhc2UpXG4gICAgY29uc3QgZnNQYXRoID0gdG9GaWxlUGF0aChpZCwgdGhpcy5yb290KVxuXG4gICAgaWYgKHRoaXMubW9kdWxlQ2FjaGUuZ2V0KGZzUGF0aCk/LnByb21pc2UpXG4gICAgICByZXR1cm4gdGhpcy5tb2R1bGVDYWNoZS5nZXQoZnNQYXRoKT8ucHJvbWlzZVxuXG4gICAgY29uc3QgcHJvbWlzZSA9IHRoaXMuZGlyZWN0UmVxdWVzdChpZCwgZnNQYXRoLCBjYWxsc3RhY2spXG4gICAgdGhpcy5tb2R1bGVDYWNoZS5zZXQoZnNQYXRoLCB7IHByb21pc2UgfSlcblxuICAgIHJldHVybiBhd2FpdCBwcm9taXNlXG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIGFzeW5jIGRpcmVjdFJlcXVlc3QoaWQ6IHN0cmluZywgZnNQYXRoOiBzdHJpbmcsIGNhbGxzdGFjazogc3RyaW5nW10pIHtcbiAgICBjYWxsc3RhY2sgPSBbLi4uY2FsbHN0YWNrLCBub3JtYWxpemVNb2R1bGVJZChpZCldXG4gICAgY29uc3QgcmVxdWVzdCA9IGFzeW5jKGRlcDogc3RyaW5nKSA9PiB7XG4gICAgICAvLyBwcm9iYWJseSBtZWFucyBpdCB3YXMgcGFzc2VkIGFzIHZhcmlhYmxlXG4gICAgICAvLyBhbmQgd2Fzbid0IHRyYW5zZm9ybWVkIGJ5IFZpdGVcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMucmVzb2x2ZUlkICYmIHRoaXMuc2hvdWxkUmVzb2x2ZUlkKGRlcCkpIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWREZXAgPSBhd2FpdCB0aGlzLm9wdGlvbnMucmVzb2x2ZUlkKGRlcCwgaWQpXG4gICAgICAgIGRlcCA9IHJlc29sdmVkRGVwPy5pZD8ucmVwbGFjZSh0aGlzLnJvb3QsICcnKSB8fCBkZXBcbiAgICAgIH1cblxuICAgICAgaWYgKGNhbGxzdGFjay5pbmNsdWRlcyhub3JtYWxpemVNb2R1bGVJZChkZXApKSkge1xuICAgICAgICBjb25zdCBkZXBFeHBvcnRzID0gdGhpcy5tb2R1bGVDYWNoZS5nZXQoZGVwKT8uZXhwb3J0c1xuICAgICAgICBpZiAoZGVwRXhwb3J0cylcbiAgICAgICAgICByZXR1cm4gZGVwRXhwb3J0c1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFt2aXRlLW5vZGVdIENpcmN1bGFyIGRlcGVuZGVuY3kgZGV0ZWN0ZWRcXG5TdGFjazpcXG4ke1suLi5jYWxsc3RhY2ssIGRlcF0ucmV2ZXJzZSgpLm1hcChwID0+IGAtICR7cH1gKS5qb2luKCdcXG4nKX1gKVxuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuY2FjaGVkUmVxdWVzdChkZXAsIGNhbGxzdGFjaylcbiAgICB9XG5cbiAgICBjb25zdCByZXF1ZXN0U3R1YnMgPSB0aGlzLm9wdGlvbnMucmVxdWVzdFN0dWJzIHx8IERFRkFVTFRfUkVRVUVTVF9TVFVCU1xuICAgIGlmIChpZCBpbiByZXF1ZXN0U3R1YnMpXG4gICAgICByZXR1cm4gcmVxdWVzdFN0dWJzW2lkXVxuXG4gICAgY29uc3QgeyBjb2RlOiB0cmFuc2Zvcm1lZCwgZXh0ZXJuYWxpemUgfSA9IGF3YWl0IHRoaXMub3B0aW9ucy5mZXRjaE1vZHVsZShpZClcbiAgICBpZiAoZXh0ZXJuYWxpemUpIHtcbiAgICAgIGNvbnN0IG1vZCA9IGF3YWl0IHRoaXMuaW50ZXJvcGVkSW1wb3J0KGV4dGVybmFsaXplKVxuICAgICAgdGhpcy5tb2R1bGVDYWNoZS5zZXQoZnNQYXRoLCB7IGV4cG9ydHM6IG1vZCB9KVxuICAgICAgcmV0dXJuIG1vZFxuICAgIH1cblxuICAgIGlmICh0cmFuc2Zvcm1lZCA9PSBudWxsKVxuICAgICAgdGhyb3cgbmV3IEVycm9yKGBbdml0ZS1ub2RlXSBGYWlsZWQgdG8gbG9hZCAke2lkfWApXG5cbiAgICAvLyBkaXNhbWJpZ3VhdGUgdGhlIGA8VU5JVD46L2Agb24gd2luZG93czogc2VlIG5vZGVqcy9ub2RlIzMxNzEwXG4gICAgY29uc3QgdXJsID0gcGF0aFRvRmlsZVVSTChmc1BhdGgpLmhyZWZcbiAgICBjb25zdCBleHBvcnRzOiBhbnkgPSBPYmplY3QuY3JlYXRlKG51bGwpXG4gICAgZXhwb3J0c1tTeW1ib2wudG9TdHJpbmdUYWddID0gJ01vZHVsZSdcblxuICAgIHRoaXMubW9kdWxlQ2FjaGUuc2V0KGlkLCB7IGNvZGU6IHRyYW5zZm9ybWVkLCBleHBvcnRzIH0pXG5cbiAgICBjb25zdCBfX2ZpbGVuYW1lID0gZmlsZVVSTFRvUGF0aCh1cmwpXG4gICAgY29uc3QgbW9kdWxlUHJveHkgPSB7XG4gICAgICBzZXQgZXhwb3J0cyh2YWx1ZSkge1xuICAgICAgICBleHBvcnRBbGwoZXhwb3J0cywgdmFsdWUpXG4gICAgICAgIGV4cG9ydHMuZGVmYXVsdCA9IHZhbHVlXG4gICAgICB9LFxuICAgICAgZ2V0IGV4cG9ydHMoKSB7XG4gICAgICAgIHJldHVybiBleHBvcnRzLmRlZmF1bHRcbiAgICAgIH0sXG4gICAgfVxuXG4gICAgLy8gQmUgY2FyZWZ1bCB3aGVuIGNoYW5naW5nIHRoaXNcbiAgICAvLyBjaGFuZ2luZyBjb250ZXh0IHdpbGwgY2hhbmdlIGFtb3VudCBvZiBjb2RlIGFkZGVkIG9uIGxpbmUgOjExNCAodm0ucnVuSW5UaGlzQ29udGV4dClcbiAgICAvLyB0aGlzIG1lc3NlcyB1cCBzb3VyY2VtYXBzIGZvciBjb3ZlcmFnZVxuICAgIC8vIGFkanVzdCBgb2Zmc2V0YCB2YXJpYWJsZSBpbiBwYWNrYWdlcy92aXRlc3Qvc3JjL2ludGVncmF0aW9ucy9jb3ZlcmFnZS50cyNMMTAwIGlmIHlvdSBkbyBjaGFuZ2UgdGhpc1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLnByZXBhcmVDb250ZXh0KHtcbiAgICAgIC8vIGVzbSB0cmFuc2Zvcm1lZCBieSBWaXRlXG4gICAgICBfX3ZpdGVfc3NyX2ltcG9ydF9fOiByZXF1ZXN0LFxuICAgICAgX192aXRlX3Nzcl9keW5hbWljX2ltcG9ydF9fOiByZXF1ZXN0LFxuICAgICAgX192aXRlX3Nzcl9leHBvcnRzX186IGV4cG9ydHMsXG4gICAgICBfX3ZpdGVfc3NyX2V4cG9ydEFsbF9fOiAob2JqOiBhbnkpID0+IGV4cG9ydEFsbChleHBvcnRzLCBvYmopLFxuICAgICAgX192aXRlX3Nzcl9pbXBvcnRfbWV0YV9fOiB7IHVybCB9LFxuXG4gICAgICAvLyBjanMgY29tcGFjdFxuICAgICAgcmVxdWlyZTogY3JlYXRlUmVxdWlyZSh1cmwpLFxuICAgICAgZXhwb3J0cyxcbiAgICAgIG1vZHVsZTogbW9kdWxlUHJveHksXG4gICAgICBfX2ZpbGVuYW1lLFxuICAgICAgX19kaXJuYW1lOiBkaXJuYW1lKF9fZmlsZW5hbWUpLFxuICAgIH0pXG5cbiAgICAvLyBhZGQgJ3VzZSBzdHJpY3QnIHNpbmNlIEVTTSBlbmFibGVzIGl0IGJ5IGRlZmF1bHRcbiAgICBjb25zdCBmbiA9IHZtLnJ1bkluVGhpc0NvbnRleHQoYCd1c2Ugc3RyaWN0Jzthc3luYyAoJHtPYmplY3Qua2V5cyhjb250ZXh0KS5qb2luKCcsJyl9KT0+e3ske3RyYW5zZm9ybWVkfVxcbn19YCwge1xuICAgICAgZmlsZW5hbWU6IGZzUGF0aCxcbiAgICAgIGxpbmVPZmZzZXQ6IDAsXG4gICAgfSlcblxuICAgIGF3YWl0IGZuKC4uLk9iamVjdC52YWx1ZXMoY29udGV4dCkpXG5cbiAgICByZXR1cm4gZXhwb3J0c1xuICB9XG5cbiAgcHJlcGFyZUNvbnRleHQoY29udGV4dDogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAgIHJldHVybiBjb250ZXh0XG4gIH1cblxuICBzaG91bGRSZXNvbHZlSWQoZGVwOiBzdHJpbmcpIHtcbiAgICBpZiAoaXNOb2RlQnVpbHRpbihkZXApIHx8IGRlcCBpbiAodGhpcy5vcHRpb25zLnJlcXVlc3RTdHVicyB8fCBERUZBVUxUX1JFUVVFU1RfU1RVQlMpKVxuICAgICAgcmV0dXJuIGZhbHNlXG5cbiAgICByZXR1cm4gIWlzQWJzb2x1dGUoZGVwKSB8fCAhZXh0bmFtZShkZXApXG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIGlmIGEgbW9kdWxlIHNob3VsZCBiZSBpbnRlcm9wLWVkXG4gICAqIFRoaXMgZnVuY3Rpb24gbW9zdGx5IGZvciB0aGUgYWJpbGl0eSB0byBvdmVycmlkZSBieSBzdWJjbGFzc1xuICAgKi9cbiAgc2hvdWxkSW50ZXJvcChwYXRoOiBzdHJpbmcsIG1vZDogYW55KSB7XG4gICAgaWYgKHRoaXMub3B0aW9ucy5pbnRlcm9wRGVmYXVsdCA9PT0gZmFsc2UpXG4gICAgICByZXR1cm4gZmFsc2VcbiAgICAvLyBuZXZlciBpbnRlcm9wIEVTTSBtb2R1bGVzXG4gICAgLy8gVE9ETzogc2hvdWxkIGFsc28gc2tpcCBmb3IgYC5qc2Agd2l0aCBgdHlwZT1cIm1vZHVsZVwiYFxuICAgIHJldHVybiAhcGF0aC5lbmRzV2l0aCgnLm1qcycpICYmICdkZWZhdWx0JyBpbiBtb2RcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnQgYSBtb2R1bGUgYW5kIGludGVyb3AgaXRcbiAgICovXG4gIGFzeW5jIGludGVyb3BlZEltcG9ydChwYXRoOiBzdHJpbmcpIHtcbiAgICBjb25zdCBtb2QgPSBhd2FpdCBpbXBvcnQocGF0aClcblxuICAgIGlmICh0aGlzLnNob3VsZEludGVyb3AocGF0aCwgbW9kKSkge1xuICAgICAgY29uc3QgdHJ5RGVmYXVsdCA9IHRoaXMuaGFzTmVzdGVkRGVmYXVsdChtb2QpXG4gICAgICByZXR1cm4gbmV3IFByb3h5KG1vZCwge1xuICAgICAgICBnZXQ6IHByb3h5TWV0aG9kKCdnZXQnLCB0cnlEZWZhdWx0KSxcbiAgICAgICAgc2V0OiBwcm94eU1ldGhvZCgnc2V0JywgdHJ5RGVmYXVsdCksXG4gICAgICAgIGhhczogcHJveHlNZXRob2QoJ2hhcycsIHRyeURlZmF1bHQpLFxuICAgICAgICBkZWxldGVQcm9wZXJ0eTogcHJveHlNZXRob2QoJ2RlbGV0ZVByb3BlcnR5JywgdHJ5RGVmYXVsdCksXG4gICAgICB9KVxuICAgIH1cblxuICAgIHJldHVybiBtb2RcbiAgfVxuXG4gIGhhc05lc3RlZERlZmF1bHQodGFyZ2V0OiBhbnkpIHtcbiAgICByZXR1cm4gJ19fZXNNb2R1bGUnIGluIHRhcmdldCAmJiB0YXJnZXQuX19lc01vZHVsZSAmJiAnZGVmYXVsdCcgaW4gdGFyZ2V0LmRlZmF1bHRcbiAgfVxufVxuXG5mdW5jdGlvbiBwcm94eU1ldGhvZChuYW1lOiAnZ2V0JyB8ICdzZXQnIHwgJ2hhcycgfCAnZGVsZXRlUHJvcGVydHknLCB0cnlEZWZhdWx0OiBib29sZWFuKSB7XG4gIHJldHVybiBmdW5jdGlvbih0YXJnZXQ6IGFueSwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIC4uLmFyZ3M6IFthbnk/LCBhbnk/XSkge1xuICAgIGNvbnN0IHJlc3VsdCA9IFJlZmxlY3RbbmFtZV0odGFyZ2V0LCBrZXksIC4uLmFyZ3MpXG4gICAgaWYgKGlzUHJpbWl0aXZlKHRhcmdldC5kZWZhdWx0KSlcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICBpZiAoKHRyeURlZmF1bHQgJiYga2V5ID09PSAnZGVmYXVsdCcpIHx8IHR5cGVvZiByZXN1bHQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgcmV0dXJuIFJlZmxlY3RbbmFtZV0odGFyZ2V0LmRlZmF1bHQsIGtleSwgLi4uYXJncylcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cbn1cblxuZnVuY3Rpb24gZXhwb3J0QWxsKGV4cG9ydHM6IGFueSwgc291cmNlTW9kdWxlOiBhbnkpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gIGZvciAoY29uc3Qga2V5IGluIHNvdXJjZU1vZHVsZSkge1xuICAgIGlmIChrZXkgIT09ICdkZWZhdWx0Jykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwge1xuICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgIGdldCgpIHsgcmV0dXJuIHNvdXJjZU1vZHVsZVtrZXldIH0sXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgICBjYXRjaCAoX2VycikgeyB9XG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOlsibm9ybWFsaXplTW9kdWxlSWQiLCJzbGFzaCIsInJlc29sdmUiLCJub3JtYWxpemVSZXF1ZXN0SWQiLCJ0b0ZpbGVQYXRoIiwidXJsIiwicGF0aFRvRmlsZVVSTCIsImZpbGVVUkxUb1BhdGgiLCJjcmVhdGVSZXF1aXJlIiwiZGlybmFtZSIsInZtIiwiaXNOb2RlQnVpbHRpbiIsImlzQWJzb2x1dGUiLCJleHRuYW1lIiwiaXNQcmltaXRpdmUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVFPLE1BQU0scUJBQXdCLEdBQUE7QUFBQSxFQUNuQyxlQUFpQixFQUFBO0FBQUEsSUFDZixXQUFBLEVBQWEsQ0FBQyxFQUFlLEtBQUEsRUFBQTtBQUFBLElBQzdCLGdCQUFtQixHQUFBO0FBQ2pCLE1BQU8sT0FBQTtBQUFBLFFBQ0wsUUFBUSxNQUFNO0FBQUEsU0FBQztBQUFBLFFBQ2YsT0FBTyxNQUFNO0FBQUEsU0FBQztBQUFBLFFBQ2QsU0FBUyxNQUFNO0FBQUEsU0FBQztBQUFBLFFBQ2hCLFNBQVMsTUFBTTtBQUFBLFNBQUM7QUFBQSxRQUNoQixZQUFZLE1BQU07QUFBQSxTQUFDO0FBQUEsUUFDbkIsSUFBSSxNQUFNO0FBQUEsU0FBQztBQUFBLE9BQ2IsQ0FBQTtBQUFB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
|
|
241
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmNqcyIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVSZXF1aXJlIH0gZnJvbSAnbW9kdWxlJ1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCwgcGF0aFRvRmlsZVVSTCB9IGZyb20gJ3VybCdcbmltcG9ydCB2bSBmcm9tICd2bSdcbmltcG9ydCB7IGRpcm5hbWUsIGV4dG5hbWUsIGlzQWJzb2x1dGUsIHJlc29sdmUgfSBmcm9tICdwYXRoZSdcbmltcG9ydCB7IGlzTm9kZUJ1aWx0aW4gfSBmcm9tICdtbGx5J1xuaW1wb3J0IHsgaXNQcmltaXRpdmUsIG5vcm1hbGl6ZU1vZHVsZUlkLCBub3JtYWxpemVSZXF1ZXN0SWQsIHNsYXNoLCB0b0ZpbGVQYXRoIH0gZnJvbSAnLi91dGlscydcbmltcG9ydCB0eXBlIHsgTW9kdWxlQ2FjaGUsIFZpdGVOb2RlUnVubmVyT3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnXG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1JFUVVFU1RfU1RVQlMgPSB7XG4gICcvQHZpdGUvY2xpZW50Jzoge1xuICAgIGluamVjdFF1ZXJ5OiAoaWQ6IHN0cmluZykgPT4gaWQsXG4gICAgY3JlYXRlSG90Q29udGV4dCgpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFjY2VwdDogKCkgPT4ge30sXG4gICAgICAgIHBydW5lOiAoKSA9PiB7fSxcbiAgICAgICAgZGlzcG9zZTogKCkgPT4ge30sXG4gICAgICAgIGRlY2xpbmU6ICgpID0+IHt9LFxuICAgICAgICBpbnZhbGlkYXRlOiAoKSA9PiB7fSxcbiAgICAgICAgb246ICgpID0+IHt9LFxuICAgICAgfVxuICAgIH0sXG4gICAgdXBkYXRlU3R5bGUoKSB7fSxcbiAgfSxcbn1cblxuZXhwb3J0IGNsYXNzIE1vZHVsZUNhY2hlTWFwIGV4dGVuZHMgTWFwPHN0cmluZywgTW9kdWxlQ2FjaGU+IHtcbiAgbm9ybWFsaXplUGF0aChmc1BhdGg6IHN0cmluZykge1xuICAgIHJldHVybiBub3JtYWxpemVNb2R1bGVJZChmc1BhdGgpXG4gIH1cblxuICBzZXQoZnNQYXRoOiBzdHJpbmcsIG1vZDogUGFydGlhbDxNb2R1bGVDYWNoZT4pIHtcbiAgICBmc1BhdGggPSB0aGlzLm5vcm1hbGl6ZVBhdGgoZnNQYXRoKVxuICAgIGlmICghc3VwZXIuaGFzKGZzUGF0aCkpXG4gICAgICBzdXBlci5zZXQoZnNQYXRoLCBtb2QpXG4gICAgZWxzZVxuICAgICAgT2JqZWN0LmFzc2lnbihzdXBlci5nZXQoZnNQYXRoKSwgbW9kKVxuICAgIHJldHVybiB0aGlzXG4gIH1cblxuICBnZXQoZnNQYXRoOiBzdHJpbmcpIHtcbiAgICBmc1BhdGggPSB0aGlzLm5vcm1hbGl6ZVBhdGgoZnNQYXRoKVxuICAgIHJldHVybiBzdXBlci5nZXQoZnNQYXRoKVxuICB9XG5cbiAgZGVsZXRlKGZzUGF0aDogc3RyaW5nKSB7XG4gICAgZnNQYXRoID0gdGhpcy5ub3JtYWxpemVQYXRoKGZzUGF0aClcbiAgICByZXR1cm4gc3VwZXIuZGVsZXRlKGZzUGF0aClcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVml0ZU5vZGVSdW5uZXIge1xuICByb290OiBzdHJpbmdcblxuICBkZWJ1ZzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBIb2xkcyB0aGUgY2FjaGUgb2YgbW9kdWxlc1xuICAgKiBLZXlzIG9mIHRoZSBtYXAgYXJlIGZpbGVwYXRocywgb3IgcGxhaW4gcGFja2FnZSBuYW1lc1xuICAgKi9cbiAgbW9kdWxlQ2FjaGU6IE1vZHVsZUNhY2hlTWFwXG5cbiAgY29uc3RydWN0b3IocHVibGljIG9wdGlvbnM6IFZpdGVOb2RlUnVubmVyT3B0aW9ucykge1xuICAgIHRoaXMucm9vdCA9IG9wdGlvbnMucm9vdCA/PyBwcm9jZXNzLmN3ZCgpXG4gICAgdGhpcy5tb2R1bGVDYWNoZSA9IG9wdGlvbnMubW9kdWxlQ2FjaGUgPz8gbmV3IE1vZHVsZUNhY2hlTWFwKClcbiAgICB0aGlzLmRlYnVnID0gb3B0aW9ucy5kZWJ1ZyA/PyAodHlwZW9mIHByb2Nlc3MgIT09ICd1bmRlZmluZWQnID8gISFwcm9jZXNzLmVudi5WSVRFX05PREVfREVCVUcgOiBmYWxzZSlcbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGVGaWxlKGZpbGU6IHN0cmluZykge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNhY2hlZFJlcXVlc3QoYC9AZnMvJHtzbGFzaChyZXNvbHZlKGZpbGUpKX1gLCBbXSlcbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGVJZChpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY2FjaGVkUmVxdWVzdChpZCwgW10pXG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIGFzeW5jIGNhY2hlZFJlcXVlc3QocmF3SWQ6IHN0cmluZywgY2FsbHN0YWNrOiBzdHJpbmdbXSkge1xuICAgIGNvbnN0IGlkID0gbm9ybWFsaXplUmVxdWVzdElkKHJhd0lkLCB0aGlzLm9wdGlvbnMuYmFzZSlcbiAgICBjb25zdCBmc1BhdGggPSB0b0ZpbGVQYXRoKGlkLCB0aGlzLnJvb3QpXG5cbiAgICBpZiAodGhpcy5tb2R1bGVDYWNoZS5nZXQoZnNQYXRoKT8ucHJvbWlzZSlcbiAgICAgIHJldHVybiB0aGlzLm1vZHVsZUNhY2hlLmdldChmc1BhdGgpPy5wcm9taXNlXG5cbiAgICBjb25zdCBwcm9taXNlID0gdGhpcy5kaXJlY3RSZXF1ZXN0KGlkLCBmc1BhdGgsIGNhbGxzdGFjaylcbiAgICB0aGlzLm1vZHVsZUNhY2hlLnNldChmc1BhdGgsIHsgcHJvbWlzZSB9KVxuXG4gICAgcmV0dXJuIGF3YWl0IHByb21pc2VcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgYXN5bmMgZGlyZWN0UmVxdWVzdChpZDogc3RyaW5nLCBmc1BhdGg6IHN0cmluZywgX2NhbGxzdGFjazogc3RyaW5nW10pIHtcbiAgICBjb25zdCBjYWxsc3RhY2sgPSBbLi4uX2NhbGxzdGFjaywgbm9ybWFsaXplTW9kdWxlSWQoaWQpXVxuICAgIGNvbnN0IHJlcXVlc3QgPSBhc3luYyhkZXA6IHN0cmluZykgPT4ge1xuICAgICAgY29uc3QgZ2V0U3RhY2sgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiBgc3RhY2s6XFxuJHtbLi4uY2FsbHN0YWNrLCBkZXBdLnJldmVyc2UoKS5tYXAocCA9PiBgLSAke3B9YCkuam9pbignXFxuJyl9YFxuICAgICAgfVxuXG4gICAgICAvLyBwcm9iYWJseSBtZWFucyBpdCB3YXMgcGFzc2VkIGFzIHZhcmlhYmxlXG4gICAgICAvLyBhbmQgd2Fzbid0IHRyYW5zZm9ybWVkIGJ5IFZpdGVcbiAgICAgIGlmICh0aGlzLm9wdGlvbnMucmVzb2x2ZUlkICYmIHRoaXMuc2hvdWxkUmVzb2x2ZUlkKGRlcCkpIHtcbiAgICAgICAgY29uc3QgcmVzb2x2ZWREZXAgPSBhd2FpdCB0aGlzLm9wdGlvbnMucmVzb2x2ZUlkKGRlcCwgaWQpXG4gICAgICAgIGRlcCA9IHJlc29sdmVkRGVwPy5pZD8ucmVwbGFjZSh0aGlzLnJvb3QsICcnKSB8fCBkZXBcbiAgICAgIH1cblxuICAgICAgbGV0IGRlYnVnVGltZXI6IGFueVxuICAgICAgaWYgKHRoaXMuZGVidWcpXG4gICAgICAgIGRlYnVnVGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZGVidWdMb2coKCkgPT4gYG1vZHVsZSAke2RlcH0gdGFrZXMgb3ZlciAycyB0byBsb2FkLlxcbiR7Z2V0U3RhY2soKX1gKSwgMjAwMClcblxuICAgICAgdHJ5IHtcbiAgICAgICAgaWYgKGNhbGxzdGFjay5pbmNsdWRlcyhub3JtYWxpemVNb2R1bGVJZChkZXApKSkge1xuICAgICAgICAgIHRoaXMuZGVidWdMb2coKCkgPT4gYGNpcmN1bGFyIGRlcGVuZGVuY3ksICR7Z2V0U3RhY2soKX1gKVxuICAgICAgICAgIGNvbnN0IGRlcEV4cG9ydHMgPSB0aGlzLm1vZHVsZUNhY2hlLmdldChkZXApPy5leHBvcnRzXG4gICAgICAgICAgaWYgKGRlcEV4cG9ydHMpXG4gICAgICAgICAgICByZXR1cm4gZGVwRXhwb3J0c1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgW3ZpdGUtbm9kZV0gRmFpbGVkIHRvIHJlc29sdmUgY2lyY3VsYXIgZGVwZW5kZW5jeSwgJHtnZXRTdGFjaygpfWApXG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtb2QgPSBhd2FpdCB0aGlzLmNhY2hlZFJlcXVlc3QoZGVwLCBjYWxsc3RhY2spXG5cbiAgICAgICAgcmV0dXJuIG1vZFxuICAgICAgfVxuICAgICAgZmluYWxseSB7XG4gICAgICAgIGlmIChkZWJ1Z1RpbWVyKVxuICAgICAgICAgIGNsZWFyVGltZW91dChkZWJ1Z1RpbWVyKVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHJlcXVlc3RTdHVicyA9IHRoaXMub3B0aW9ucy5yZXF1ZXN0U3R1YnMgfHwgREVGQVVMVF9SRVFVRVNUX1NUVUJTXG4gICAgaWYgKGlkIGluIHJlcXVlc3RTdHVicylcbiAgICAgIHJldHVybiByZXF1ZXN0U3R1YnNbaWRdXG5cbiAgICBjb25zdCB7IGNvZGU6IHRyYW5zZm9ybWVkLCBleHRlcm5hbGl6ZSB9ID0gYXdhaXQgdGhpcy5vcHRpb25zLmZldGNoTW9kdWxlKGlkKVxuICAgIGlmIChleHRlcm5hbGl6ZSkge1xuICAgICAgY29uc3QgbW9kID0gYXdhaXQgdGhpcy5pbnRlcm9wZWRJbXBvcnQoZXh0ZXJuYWxpemUpXG4gICAgICB0aGlzLm1vZHVsZUNhY2hlLnNldChmc1BhdGgsIHsgZXhwb3J0czogbW9kIH0pXG4gICAgICByZXR1cm4gbW9kXG4gICAgfVxuXG4gICAgaWYgKHRyYW5zZm9ybWVkID09IG51bGwpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFt2aXRlLW5vZGVdIEZhaWxlZCB0byBsb2FkICR7aWR9YClcblxuICAgIC8vIGRpc2FtYmlndWF0ZSB0aGUgYDxVTklUPjovYCBvbiB3aW5kb3dzOiBzZWUgbm9kZWpzL25vZGUjMzE3MTBcbiAgICBjb25zdCB1cmwgPSBwYXRoVG9GaWxlVVJMKGZzUGF0aCkuaHJlZlxuICAgIGNvbnN0IGV4cG9ydHM6IGFueSA9IE9iamVjdC5jcmVhdGUobnVsbClcbiAgICBleHBvcnRzW1N5bWJvbC50b1N0cmluZ1RhZ10gPSAnTW9kdWxlJ1xuXG4gICAgdGhpcy5tb2R1bGVDYWNoZS5zZXQoaWQsIHsgY29kZTogdHJhbnNmb3JtZWQsIGV4cG9ydHMgfSlcblxuICAgIGNvbnN0IF9fZmlsZW5hbWUgPSBmaWxlVVJMVG9QYXRoKHVybClcbiAgICBjb25zdCBtb2R1bGVQcm94eSA9IHtcbiAgICAgIHNldCBleHBvcnRzKHZhbHVlKSB7XG4gICAgICAgIGV4cG9ydEFsbChleHBvcnRzLCB2YWx1ZSlcbiAgICAgICAgZXhwb3J0cy5kZWZhdWx0ID0gdmFsdWVcbiAgICAgIH0sXG4gICAgICBnZXQgZXhwb3J0cygpIHtcbiAgICAgICAgcmV0dXJuIGV4cG9ydHMuZGVmYXVsdFxuICAgICAgfSxcbiAgICB9XG5cbiAgICAvLyBCZSBjYXJlZnVsIHdoZW4gY2hhbmdpbmcgdGhpc1xuICAgIC8vIGNoYW5naW5nIGNvbnRleHQgd2lsbCBjaGFuZ2UgYW1vdW50IG9mIGNvZGUgYWRkZWQgb24gbGluZSA6MTE0ICh2bS5ydW5JblRoaXNDb250ZXh0KVxuICAgIC8vIHRoaXMgbWVzc2VzIHVwIHNvdXJjZW1hcHMgZm9yIGNvdmVyYWdlXG4gICAgLy8gYWRqdXN0IGBvZmZzZXRgIHZhcmlhYmxlIGluIHBhY2thZ2VzL3ZpdGVzdC9zcmMvaW50ZWdyYXRpb25zL2NvdmVyYWdlLnRzI0wxMDAgaWYgeW91IGRvIGNoYW5nZSB0aGlzXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMucHJlcGFyZUNvbnRleHQoe1xuICAgICAgLy8gZXNtIHRyYW5zZm9ybWVkIGJ5IFZpdGVcbiAgICAgIF9fdml0ZV9zc3JfaW1wb3J0X186IHJlcXVlc3QsXG4gICAgICBfX3ZpdGVfc3NyX2R5bmFtaWNfaW1wb3J0X186IHJlcXVlc3QsXG4gICAgICBfX3ZpdGVfc3NyX2V4cG9ydHNfXzogZXhwb3J0cyxcbiAgICAgIF9fdml0ZV9zc3JfZXhwb3J0QWxsX186IChvYmo6IGFueSkgPT4gZXhwb3J0QWxsKGV4cG9ydHMsIG9iaiksXG4gICAgICBfX3ZpdGVfc3NyX2ltcG9ydF9tZXRhX186IHsgdXJsIH0sXG5cbiAgICAgIC8vIGNqcyBjb21wYWN0XG4gICAgICByZXF1aXJlOiBjcmVhdGVSZXF1aXJlKHVybCksXG4gICAgICBleHBvcnRzLFxuICAgICAgbW9kdWxlOiBtb2R1bGVQcm94eSxcbiAgICAgIF9fZmlsZW5hbWUsXG4gICAgICBfX2Rpcm5hbWU6IGRpcm5hbWUoX19maWxlbmFtZSksXG4gICAgfSlcblxuICAgIC8vIGFkZCAndXNlIHN0cmljdCcgc2luY2UgRVNNIGVuYWJsZXMgaXQgYnkgZGVmYXVsdFxuICAgIGNvbnN0IGZuID0gdm0ucnVuSW5UaGlzQ29udGV4dChgJ3VzZSBzdHJpY3QnO2FzeW5jICgke09iamVjdC5rZXlzKGNvbnRleHQpLmpvaW4oJywnKX0pPT57eyR7dHJhbnNmb3JtZWR9XFxufX1gLCB7XG4gICAgICBmaWxlbmFtZTogZnNQYXRoLFxuICAgICAgbGluZU9mZnNldDogMCxcbiAgICB9KVxuXG4gICAgYXdhaXQgZm4oLi4uT2JqZWN0LnZhbHVlcyhjb250ZXh0KSlcblxuICAgIHJldHVybiBleHBvcnRzXG4gIH1cblxuICBwcmVwYXJlQ29udGV4dChjb250ZXh0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gICAgcmV0dXJuIGNvbnRleHRcbiAgfVxuXG4gIHNob3VsZFJlc29sdmVJZChkZXA6IHN0cmluZykge1xuICAgIGlmIChpc05vZGVCdWlsdGluKGRlcCkgfHwgZGVwIGluICh0aGlzLm9wdGlvbnMucmVxdWVzdFN0dWJzIHx8IERFRkFVTFRfUkVRVUVTVF9TVFVCUykpXG4gICAgICByZXR1cm4gZmFsc2VcblxuICAgIHJldHVybiAhaXNBYnNvbHV0ZShkZXApIHx8ICFleHRuYW1lKGRlcClcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgaWYgYSBtb2R1bGUgc2hvdWxkIGJlIGludGVyb3AtZWRcbiAgICogVGhpcyBmdW5jdGlvbiBtb3N0bHkgZm9yIHRoZSBhYmlsaXR5IHRvIG92ZXJyaWRlIGJ5IHN1YmNsYXNzXG4gICAqL1xuICBzaG91bGRJbnRlcm9wKHBhdGg6IHN0cmluZywgbW9kOiBhbnkpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLmludGVyb3BEZWZhdWx0ID09PSBmYWxzZSlcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIC8vIG5ldmVyIGludGVyb3AgRVNNIG1vZHVsZXNcbiAgICAvLyBUT0RPOiBzaG91bGQgYWxzbyBza2lwIGZvciBgLmpzYCB3aXRoIGB0eXBlPVwibW9kdWxlXCJgXG4gICAgcmV0dXJuICFwYXRoLmVuZHNXaXRoKCcubWpzJykgJiYgJ2RlZmF1bHQnIGluIG1vZFxuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhIG1vZHVsZSBhbmQgaW50ZXJvcCBpdFxuICAgKi9cbiAgYXN5bmMgaW50ZXJvcGVkSW1wb3J0KHBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IG1vZCA9IGF3YWl0IGltcG9ydChwYXRoKVxuXG4gICAgaWYgKHRoaXMuc2hvdWxkSW50ZXJvcChwYXRoLCBtb2QpKSB7XG4gICAgICBjb25zdCB0cnlEZWZhdWx0ID0gdGhpcy5oYXNOZXN0ZWREZWZhdWx0KG1vZClcbiAgICAgIHJldHVybiBuZXcgUHJveHkobW9kLCB7XG4gICAgICAgIGdldDogcHJveHlNZXRob2QoJ2dldCcsIHRyeURlZmF1bHQpLFxuICAgICAgICBzZXQ6IHByb3h5TWV0aG9kKCdzZXQnLCB0cnlEZWZhdWx0KSxcbiAgICAgICAgaGFzOiBwcm94eU1ldGhvZCgnaGFzJywgdHJ5RGVmYXVsdCksXG4gICAgICAgIGRlbGV0ZVByb3BlcnR5OiBwcm94eU1ldGhvZCgnZGVsZXRlUHJvcGVydHknLCB0cnlEZWZhdWx0KSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIG1vZFxuICB9XG5cbiAgaGFzTmVzdGVkRGVmYXVsdCh0YXJnZXQ6IGFueSkge1xuICAgIHJldHVybiAnX19lc01vZHVsZScgaW4gdGFyZ2V0ICYmIHRhcmdldC5fX2VzTW9kdWxlICYmICdkZWZhdWx0JyBpbiB0YXJnZXQuZGVmYXVsdFxuICB9XG5cbiAgcHJpdmF0ZSBkZWJ1Z0xvZyhtc2c6ICgpID0+IHN0cmluZykge1xuICAgIGlmICh0aGlzLmRlYnVnKVxuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgICAgIGNvbnNvbGUubG9nKGBbdml0ZS1ub2RlXSAke21zZygpfWApXG4gIH1cbn1cblxuZnVuY3Rpb24gcHJveHlNZXRob2QobmFtZTogJ2dldCcgfCAnc2V0JyB8ICdoYXMnIHwgJ2RlbGV0ZVByb3BlcnR5JywgdHJ5RGVmYXVsdDogYm9vbGVhbikge1xuICByZXR1cm4gZnVuY3Rpb24odGFyZ2V0OiBhbnksIGtleTogc3RyaW5nIHwgc3ltYm9sLCAuLi5hcmdzOiBbYW55PywgYW55P10pIHtcbiAgICBjb25zdCByZXN1bHQgPSBSZWZsZWN0W25hbWVdKHRhcmdldCwga2V5LCAuLi5hcmdzKVxuICAgIGlmIChpc1ByaW1pdGl2ZSh0YXJnZXQuZGVmYXVsdCkpXG4gICAgICByZXR1cm4gcmVzdWx0XG4gICAgaWYgKCh0cnlEZWZhdWx0ICYmIGtleSA9PT0gJ2RlZmF1bHQnKSB8fCB0eXBlb2YgcmVzdWx0ID09PSAndW5kZWZpbmVkJylcbiAgICAgIHJldHVybiBSZWZsZWN0W25hbWVdKHRhcmdldC5kZWZhdWx0LCBrZXksIC4uLmFyZ3MpXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG59XG5cbmZ1bmN0aW9uIGV4cG9ydEFsbChleHBvcnRzOiBhbnksIHNvdXJjZU1vZHVsZTogYW55KSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICBmb3IgKGNvbnN0IGtleSBpbiBzb3VyY2VNb2R1bGUpIHtcbiAgICBpZiAoa2V5ICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHtcbiAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZSxcbiAgICAgICAgICBnZXQoKSB7IHJldHVybiBzb3VyY2VNb2R1bGVba2V5XSB9LFxuICAgICAgICB9KVxuICAgICAgfVxuICAgICAgY2F0Y2ggKF9lcnIpIHsgfVxuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbIm5vcm1hbGl6ZU1vZHVsZUlkIiwic2xhc2giLCJyZXNvbHZlIiwibm9ybWFsaXplUmVxdWVzdElkIiwidG9GaWxlUGF0aCIsInVybCIsInBhdGhUb0ZpbGVVUkwiLCJmaWxlVVJMVG9QYXRoIiwiY3JlYXRlUmVxdWlyZSIsImRpcm5hbWUiLCJ2bSIsImlzTm9kZUJ1aWx0aW4iLCJpc0Fic29sdXRlIiwiZXh0bmFtZSIsImlzUHJpbWl0aXZlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFRTyxNQUFNLHFCQUF3QixHQUFBO0FBQUEsRUFDbkMsZUFBaUIsRUFBQTtBQUFBLElBQ2YsV0FBQSxFQUFhLENBQUMsRUFBZSxLQUFBLEVBQUE7QUFBQSxJQUM3QixnQkFBbUIsR0FBQTtBQUNqQixNQUFPLE9BQUE7QUFBQSxRQUNMLFFBQVEsTUFBTTtBQUFBLFNBQUM7QUFBQSxRQUNmLE9BQU8sTUFBTTtBQUFBLFNBQUM7QUFBQSxRQUNkLFNBQVMsTUFBTTtBQUFBLFNBQUM7QUFBQSxRQUNoQixTQUFTLE1BQU07QUFBQSxTQUFDO0FBQUEsUUFDaEIsWUFBWSxNQUFNO0FBQUEsU0FBQztBQUFBLFFBQ25CLElBQUksTUFBTTtBQUFBLFNBQUM7QUFBQSxPQUNiLENBQUE7QUFBQSxLQUNGO0FBQUEsSUFDQSxXQUFjLEdBQUE7QUFBQSxLQUFDO0FBQUEsR0FDakI7QUFDRixFQUFBO0FBRU8sTUFBTSx1QkFBdUIsR0FBeUIsQ0FBQTtBQUFBLEVBQzNELGNBQWMsTUFBZ0IsRUFBQTtBQUM1QixJQUFB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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { f as DEFAULT_REQUEST_STUBS, M as ModuleCacheMap, g as ViteNodeRunner } from './types-
|
|
1
|
+
export { f as DEFAULT_REQUEST_STUBS, M as ModuleCacheMap, g as ViteNodeRunner } from './types-4b326db0.js';
|
package/dist/client.js
CHANGED
|
@@ -52,8 +52,9 @@ class ModuleCacheMap extends Map {
|
|
|
52
52
|
class ViteNodeRunner {
|
|
53
53
|
constructor(options) {
|
|
54
54
|
this.options = options;
|
|
55
|
-
this.root = options.root
|
|
56
|
-
this.moduleCache = options.moduleCache
|
|
55
|
+
this.root = options.root ?? process.cwd();
|
|
56
|
+
this.moduleCache = options.moduleCache ?? new ModuleCacheMap();
|
|
57
|
+
this.debug = options.debug ?? (typeof process !== "undefined" ? !!process.env.VITE_NODE_DEBUG : false);
|
|
57
58
|
}
|
|
58
59
|
async executeFile(file) {
|
|
59
60
|
return await this.cachedRequest(`/@fs/${slash(resolve(file))}`, []);
|
|
@@ -71,23 +72,36 @@ class ViteNodeRunner {
|
|
|
71
72
|
this.moduleCache.set(fsPath, { promise });
|
|
72
73
|
return await promise;
|
|
73
74
|
}
|
|
74
|
-
async directRequest(id, fsPath,
|
|
75
|
-
callstack = [...
|
|
75
|
+
async directRequest(id, fsPath, _callstack) {
|
|
76
|
+
const callstack = [..._callstack, normalizeModuleId(id)];
|
|
76
77
|
const request = async (dep) => {
|
|
77
78
|
var _a, _b;
|
|
79
|
+
const getStack = () => {
|
|
80
|
+
return `stack:
|
|
81
|
+
${[...callstack, dep].reverse().map((p) => `- ${p}`).join("\n")}`;
|
|
82
|
+
};
|
|
78
83
|
if (this.options.resolveId && this.shouldResolveId(dep)) {
|
|
79
84
|
const resolvedDep = await this.options.resolveId(dep, id);
|
|
80
85
|
dep = ((_a = resolvedDep == null ? void 0 : resolvedDep.id) == null ? void 0 : _a.replace(this.root, "")) || dep;
|
|
81
86
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
87
|
+
let debugTimer;
|
|
88
|
+
if (this.debug)
|
|
89
|
+
debugTimer = setTimeout(() => this.debugLog(() => `module ${dep} takes over 2s to load.
|
|
90
|
+
${getStack()}`), 2e3);
|
|
91
|
+
try {
|
|
92
|
+
if (callstack.includes(normalizeModuleId(dep))) {
|
|
93
|
+
this.debugLog(() => `circular dependency, ${getStack()}`);
|
|
94
|
+
const depExports = (_b = this.moduleCache.get(dep)) == null ? void 0 : _b.exports;
|
|
95
|
+
if (depExports)
|
|
96
|
+
return depExports;
|
|
97
|
+
throw new Error(`[vite-node] Failed to resolve circular dependency, ${getStack()}`);
|
|
98
|
+
}
|
|
99
|
+
const mod = await this.cachedRequest(dep, callstack);
|
|
100
|
+
return mod;
|
|
101
|
+
} finally {
|
|
102
|
+
if (debugTimer)
|
|
103
|
+
clearTimeout(debugTimer);
|
|
89
104
|
}
|
|
90
|
-
return this.cachedRequest(dep, callstack);
|
|
91
105
|
};
|
|
92
106
|
const requestStubs = this.options.requestStubs || DEFAULT_REQUEST_STUBS;
|
|
93
107
|
if (id in requestStubs)
|
|
@@ -163,6 +177,10 @@ ${[...callstack, dep].reverse().map((p) => `- ${p}`).join("\n")}`);
|
|
|
163
177
|
hasNestedDefault(target) {
|
|
164
178
|
return "__esModule" in target && target.__esModule && "default" in target.default;
|
|
165
179
|
}
|
|
180
|
+
debugLog(msg) {
|
|
181
|
+
if (this.debug)
|
|
182
|
+
console.log(`[vite-node] ${msg()}`);
|
|
183
|
+
}
|
|
166
184
|
}
|
|
167
185
|
function proxyMethod(name, tryDefault) {
|
|
168
186
|
return function(target, key, ...args) {
|
|
@@ -192,4 +210,4 @@ function exportAll(exports, sourceModule) {
|
|
|
192
210
|
}
|
|
193
211
|
|
|
194
212
|
export { DEFAULT_REQUEST_STUBS, ModuleCacheMap, ViteNodeRunner };
|
|
195
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlcyI6WyIuLi9zcmMvY2xpZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tICdtb2R1bGUnXG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoLCBwYXRoVG9GaWxlVVJMIH0gZnJvbSAndXJsJ1xuaW1wb3J0IHZtIGZyb20gJ3ZtJ1xuaW1wb3J0IHsgZGlybmFtZSwgZXh0bmFtZSwgaXNBYnNvbHV0ZSwgcmVzb2x2ZSB9IGZyb20gJ3BhdGhlJ1xuaW1wb3J0IHsgaXNOb2RlQnVpbHRpbiB9IGZyb20gJ21sbHknXG5pbXBvcnQgeyBpc1ByaW1pdGl2ZSwgbm9ybWFsaXplTW9kdWxlSWQsIG5vcm1hbGl6ZVJlcXVlc3RJZCwgc2xhc2gsIHRvRmlsZVBhdGggfSBmcm9tICcuL3V0aWxzJ1xuaW1wb3J0IHR5cGUgeyBNb2R1bGVDYWNoZSwgVml0ZU5vZGVSdW5uZXJPcHRpb25zIH0gZnJvbSAnLi90eXBlcydcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUkVRVUVTVF9TVFVCUyA9IHtcbiAgJy9Adml0ZS9jbGllbnQnOiB7XG4gICAgaW5qZWN0UXVlcnk6IChpZDogc3RyaW5nKSA9PiBpZCxcbiAgICBjcmVhdGVIb3RDb250ZXh0KCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWNjZXB0OiAoKSA9PiB7fSxcbiAgICAgICAgcHJ1bmU6ICgpID0+IHt9LFxuICAgICAgICBkaXNwb3NlOiAoKSA9PiB7fSxcbiAgICAgICAgZGVjbGluZTogKCkgPT4ge30sXG4gICAgICAgIGludmFsaWRhdGU6ICgpID0+IHt9LFxuICAgICAgICBvbjogKCkgPT4ge30sXG4gICAgICB9XG4gICAgfSxcbiAgICB1cGRhdGVTdHlsZSgpIHt9LFxuICB9LFxufVxuXG5leHBvcnQgY2xhc3MgTW9kdWxlQ2FjaGVNYXAgZXh0ZW5kcyBNYXA8c3RyaW5nLCBNb2R1bGVDYWNoZT4ge1xuICBub3JtYWxpemVQYXRoKGZzUGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZU1vZHVsZUlkKGZzUGF0aClcbiAgfVxuXG4gIHNldChmc1BhdGg6IHN0cmluZywgbW9kOiBQYXJ0aWFsPE1vZHVsZUNhY2hlPikge1xuICAgIGZzUGF0aCA9IHRoaXMubm9ybWFsaXplUGF0aChmc1BhdGgpXG4gICAgaWYgKCFzdXBlci5oYXMoZnNQYXRoKSlcbiAgICAgIHN1cGVyLnNldChmc1BhdGgsIG1vZClcbiAgICBlbHNlXG4gICAgICBPYmplY3QuYXNzaWduKHN1cGVyLmdldChmc1BhdGgpLCBtb2QpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIGdldChmc1BhdGg6IHN0cmluZykge1xuICAgIGZzUGF0aCA9IHRoaXMubm9ybWFsaXplUGF0aChmc1BhdGgpXG4gICAgcmV0dXJuIHN1cGVyLmdldChmc1BhdGgpXG4gIH1cblxuICBkZWxldGUoZnNQYXRoOiBzdHJpbmcpIHtcbiAgICBmc1BhdGggPSB0aGlzLm5vcm1hbGl6ZVBhdGgoZnNQYXRoKVxuICAgIHJldHVybiBzdXBlci5kZWxldGUoZnNQYXRoKVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBWaXRlTm9kZVJ1bm5lciB7XG4gIHJvb3Q6IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBIb2xkcyB0aGUgY2FjaGUgb2YgbW9kdWxlc1xuICAgKiBLZXlzIG9mIHRoZSBtYXAgYXJlIGZpbGVwYXRocywgb3IgcGxhaW4gcGFja2FnZSBuYW1lc1xuICAgKi9cbiAgbW9kdWxlQ2FjaGU6IE1vZHVsZUNhY2hlTWFwXG5cbiAgY29uc3RydWN0b3IocHVibGljIG9wdGlvbnM6IFZpdGVOb2RlUnVubmVyT3B0aW9ucykge1xuICAgIHRoaXMucm9vdCA9IG9wdGlvbnMucm9vdCB8fCBwcm9jZXNzLmN3ZCgpXG4gICAgdGhpcy5tb2R1bGVDYWNoZSA9IG9wdGlvbnMubW9kdWxlQ2FjaGUgfHwgbmV3IE1vZHVsZUNhY2hlTWFwKClcbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGVGaWxlKGZpbGU6IHN0cmluZykge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmNhY2hlZFJlcXVlc3QoYC9AZnMvJHtzbGFzaChyZXNvbHZlKGZpbGUpKX1gLCBbXSlcbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGVJZChpZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY2FjaGVkUmVxdWVzdChpZCwgW10pXG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIGFzeW5jIGNhY2hlZFJlcXVlc3QocmF3SWQ6IHN0cmluZywgY2FsbHN0YWNrOiBzdHJpbmdbXSkge1xuICAgIGNvbnN0IGlkID0gbm9ybWFsaXplUmVxdWVzdElkKHJhd0lkLCB0aGlzLm9wdGlvbnMuYmFzZSlcbiAgICBjb25zdCBmc1BhdGggPSB0b0ZpbGVQYXRoKGlkLCB0aGlzLnJvb3QpXG5cbiAgICBpZiAodGhpcy5tb2R1bGVDYWNoZS5nZXQoZnNQYXRoKT8ucHJvbWlzZSlcbiAgICAgIHJldHVybiB0aGlzLm1vZHVsZUNhY2hlLmdldChmc1BhdGgpPy5wcm9taXNlXG5cbiAgICBjb25zdCBwcm9taXNlID0gdGhpcy5kaXJlY3RSZXF1ZXN0KGlkLCBmc1BhdGgsIGNhbGxzdGFjaylcbiAgICB0aGlzLm1vZHVsZUNhY2hlLnNldChmc1BhdGgsIHsgcHJvbWlzZSB9KVxuXG4gICAgcmV0dXJuIGF3YWl0IHByb21pc2VcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgYXN5bmMgZGlyZWN0UmVxdWVzdChpZDogc3RyaW5nLCBmc1BhdGg6IHN0cmluZywgY2FsbHN0YWNrOiBzdHJpbmdbXSkge1xuICAgIGNhbGxzdGFjayA9IFsuLi5jYWxsc3RhY2ssIG5vcm1hbGl6ZU1vZHVsZUlkKGlkKV1cbiAgICBjb25zdCByZXF1ZXN0ID0gYXN5bmMoZGVwOiBzdHJpbmcpID0+IHtcbiAgICAgIC8vIHByb2JhYmx5IG1lYW5zIGl0IHdhcyBwYXNzZWQgYXMgdmFyaWFibGVcbiAgICAgIC8vIGFuZCB3YXNuJ3QgdHJhbnNmb3JtZWQgYnkgVml0ZVxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5yZXNvbHZlSWQgJiYgdGhpcy5zaG91bGRSZXNvbHZlSWQoZGVwKSkge1xuICAgICAgICBjb25zdCByZXNvbHZlZERlcCA9IGF3YWl0IHRoaXMub3B0aW9ucy5yZXNvbHZlSWQoZGVwLCBpZClcbiAgICAgICAgZGVwID0gcmVzb2x2ZWREZXA/LmlkPy5yZXBsYWNlKHRoaXMucm9vdCwgJycpIHx8IGRlcFxuICAgICAgfVxuXG4gICAgICBpZiAoY2FsbHN0YWNrLmluY2x1ZGVzKG5vcm1hbGl6ZU1vZHVsZUlkKGRlcCkpKSB7XG4gICAgICAgIGNvbnN0IGRlcEV4cG9ydHMgPSB0aGlzLm1vZHVsZUNhY2hlLmdldChkZXApPy5leHBvcnRzXG4gICAgICAgIGlmIChkZXBFeHBvcnRzKVxuICAgICAgICAgIHJldHVybiBkZXBFeHBvcnRzXG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgW3ZpdGUtbm9kZV0gQ2lyY3VsYXIgZGVwZW5kZW5jeSBkZXRlY3RlZFxcblN0YWNrOlxcbiR7Wy4uLmNhbGxzdGFjaywgZGVwXS5yZXZlcnNlKCkubWFwKHAgPT4gYC0gJHtwfWApLmpvaW4oJ1xcbicpfWApXG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5jYWNoZWRSZXF1ZXN0KGRlcCwgY2FsbHN0YWNrKVxuICAgIH1cblxuICAgIGNvbnN0IHJlcXVlc3RTdHVicyA9IHRoaXMub3B0aW9ucy5yZXF1ZXN0U3R1YnMgfHwgREVGQVVMVF9SRVFVRVNUX1NUVUJTXG4gICAgaWYgKGlkIGluIHJlcXVlc3RTdHVicylcbiAgICAgIHJldHVybiByZXF1ZXN0U3R1YnNbaWRdXG5cbiAgICBjb25zdCB7IGNvZGU6IHRyYW5zZm9ybWVkLCBleHRlcm5hbGl6ZSB9ID0gYXdhaXQgdGhpcy5vcHRpb25zLmZldGNoTW9kdWxlKGlkKVxuICAgIGlmIChleHRlcm5hbGl6ZSkge1xuICAgICAgY29uc3QgbW9kID0gYXdhaXQgdGhpcy5pbnRlcm9wZWRJbXBvcnQoZXh0ZXJuYWxpemUpXG4gICAgICB0aGlzLm1vZHVsZUNhY2hlLnNldChmc1BhdGgsIHsgZXhwb3J0czogbW9kIH0pXG4gICAgICByZXR1cm4gbW9kXG4gICAgfVxuXG4gICAgaWYgKHRyYW5zZm9ybWVkID09IG51bGwpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFt2aXRlLW5vZGVdIEZhaWxlZCB0byBsb2FkICR7aWR9YClcblxuICAgIC8vIGRpc2FtYmlndWF0ZSB0aGUgYDxVTklUPjovYCBvbiB3aW5kb3dzOiBzZWUgbm9kZWpzL25vZGUjMzE3MTBcbiAgICBjb25zdCB1cmwgPSBwYXRoVG9GaWxlVVJMKGZzUGF0aCkuaHJlZlxuICAgIGNvbnN0IGV4cG9ydHM6IGFueSA9IE9iamVjdC5jcmVhdGUobnVsbClcbiAgICBleHBvcnRzW1N5bWJvbC50b1N0cmluZ1RhZ10gPSAnTW9kdWxlJ1xuXG4gICAgdGhpcy5tb2R1bGVDYWNoZS5zZXQoaWQsIHsgY29kZTogdHJhbnNmb3JtZWQsIGV4cG9ydHMgfSlcblxuICAgIGNvbnN0IF9fZmlsZW5hbWUgPSBmaWxlVVJMVG9QYXRoKHVybClcbiAgICBjb25zdCBtb2R1bGVQcm94eSA9IHtcbiAgICAgIHNldCBleHBvcnRzKHZhbHVlKSB7XG4gICAgICAgIGV4cG9ydEFsbChleHBvcnRzLCB2YWx1ZSlcbiAgICAgICAgZXhwb3J0cy5kZWZhdWx0ID0gdmFsdWVcbiAgICAgIH0sXG4gICAgICBnZXQgZXhwb3J0cygpIHtcbiAgICAgICAgcmV0dXJuIGV4cG9ydHMuZGVmYXVsdFxuICAgICAgfSxcbiAgICB9XG5cbiAgICAvLyBCZSBjYXJlZnVsIHdoZW4gY2hhbmdpbmcgdGhpc1xuICAgIC8vIGNoYW5naW5nIGNvbnRleHQgd2lsbCBjaGFuZ2UgYW1vdW50IG9mIGNvZGUgYWRkZWQgb24gbGluZSA6MTE0ICh2bS5ydW5JblRoaXNDb250ZXh0KVxuICAgIC8vIHRoaXMgbWVzc2VzIHVwIHNvdXJjZW1hcHMgZm9yIGNvdmVyYWdlXG4gICAgLy8gYWRqdXN0IGBvZmZzZXRgIHZhcmlhYmxlIGluIHBhY2thZ2VzL3ZpdGVzdC9zcmMvaW50ZWdyYXRpb25zL2NvdmVyYWdlLnRzI0wxMDAgaWYgeW91IGRvIGNoYW5nZSB0aGlzXG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMucHJlcGFyZUNvbnRleHQoe1xuICAgICAgLy8gZXNtIHRyYW5zZm9ybWVkIGJ5IFZpdGVcbiAgICAgIF9fdml0ZV9zc3JfaW1wb3J0X186IHJlcXVlc3QsXG4gICAgICBfX3ZpdGVfc3NyX2R5bmFtaWNfaW1wb3J0X186IHJlcXVlc3QsXG4gICAgICBfX3ZpdGVfc3NyX2V4cG9ydHNfXzogZXhwb3J0cyxcbiAgICAgIF9fdml0ZV9zc3JfZXhwb3J0QWxsX186IChvYmo6IGFueSkgPT4gZXhwb3J0QWxsKGV4cG9ydHMsIG9iaiksXG4gICAgICBfX3ZpdGVfc3NyX2ltcG9ydF9tZXRhX186IHsgdXJsIH0sXG5cbiAgICAgIC8vIGNqcyBjb21wYWN0XG4gICAgICByZXF1aXJlOiBjcmVhdGVSZXF1aXJlKHVybCksXG4gICAgICBleHBvcnRzLFxuICAgICAgbW9kdWxlOiBtb2R1bGVQcm94eSxcbiAgICAgIF9fZmlsZW5hbWUsXG4gICAgICBfX2Rpcm5hbWU6IGRpcm5hbWUoX19maWxlbmFtZSksXG4gICAgfSlcblxuICAgIC8vIGFkZCAndXNlIHN0cmljdCcgc2luY2UgRVNNIGVuYWJsZXMgaXQgYnkgZGVmYXVsdFxuICAgIGNvbnN0IGZuID0gdm0ucnVuSW5UaGlzQ29udGV4dChgJ3VzZSBzdHJpY3QnO2FzeW5jICgke09iamVjdC5rZXlzKGNvbnRleHQpLmpvaW4oJywnKX0pPT57eyR7dHJhbnNmb3JtZWR9XFxufX1gLCB7XG4gICAgICBmaWxlbmFtZTogZnNQYXRoLFxuICAgICAgbGluZU9mZnNldDogMCxcbiAgICB9KVxuXG4gICAgYXdhaXQgZm4oLi4uT2JqZWN0LnZhbHVlcyhjb250ZXh0KSlcblxuICAgIHJldHVybiBleHBvcnRzXG4gIH1cblxuICBwcmVwYXJlQ29udGV4dChjb250ZXh0OiBSZWNvcmQ8c3RyaW5nLCBhbnk+KSB7XG4gICAgcmV0dXJuIGNvbnRleHRcbiAgfVxuXG4gIHNob3VsZFJlc29sdmVJZChkZXA6IHN0cmluZykge1xuICAgIGlmIChpc05vZGVCdWlsdGluKGRlcCkgfHwgZGVwIGluICh0aGlzLm9wdGlvbnMucmVxdWVzdFN0dWJzIHx8IERFRkFVTFRfUkVRVUVTVF9TVFVCUykpXG4gICAgICByZXR1cm4gZmFsc2VcblxuICAgIHJldHVybiAhaXNBYnNvbHV0ZShkZXApIHx8ICFleHRuYW1lKGRlcClcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgaWYgYSBtb2R1bGUgc2hvdWxkIGJlIGludGVyb3AtZWRcbiAgICogVGhpcyBmdW5jdGlvbiBtb3N0bHkgZm9yIHRoZSBhYmlsaXR5IHRvIG92ZXJyaWRlIGJ5IHN1YmNsYXNzXG4gICAqL1xuICBzaG91bGRJbnRlcm9wKHBhdGg6IHN0cmluZywgbW9kOiBhbnkpIHtcbiAgICBpZiAodGhpcy5vcHRpb25zLmludGVyb3BEZWZhdWx0ID09PSBmYWxzZSlcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIC8vIG5ldmVyIGludGVyb3AgRVNNIG1vZHVsZXNcbiAgICAvLyBUT0RPOiBzaG91bGQgYWxzbyBza2lwIGZvciBgLmpzYCB3aXRoIGB0eXBlPVwibW9kdWxlXCJgXG4gICAgcmV0dXJuICFwYXRoLmVuZHNXaXRoKCcubWpzJykgJiYgJ2RlZmF1bHQnIGluIG1vZFxuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydCBhIG1vZHVsZSBhbmQgaW50ZXJvcCBpdFxuICAgKi9cbiAgYXN5bmMgaW50ZXJvcGVkSW1wb3J0KHBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IG1vZCA9IGF3YWl0IGltcG9ydChwYXRoKVxuXG4gICAgaWYgKHRoaXMuc2hvdWxkSW50ZXJvcChwYXRoLCBtb2QpKSB7XG4gICAgICBjb25zdCB0cnlEZWZhdWx0ID0gdGhpcy5oYXNOZXN0ZWREZWZhdWx0KG1vZClcbiAgICAgIHJldHVybiBuZXcgUHJveHkobW9kLCB7XG4gICAgICAgIGdldDogcHJveHlNZXRob2QoJ2dldCcsIHRyeURlZmF1bHQpLFxuICAgICAgICBzZXQ6IHByb3h5TWV0aG9kKCdzZXQnLCB0cnlEZWZhdWx0KSxcbiAgICAgICAgaGFzOiBwcm94eU1ldGhvZCgnaGFzJywgdHJ5RGVmYXVsdCksXG4gICAgICAgIGRlbGV0ZVByb3BlcnR5OiBwcm94eU1ldGhvZCgnZGVsZXRlUHJvcGVydHknLCB0cnlEZWZhdWx0KSxcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgcmV0dXJuIG1vZFxuICB9XG5cbiAgaGFzTmVzdGVkRGVmYXVsdCh0YXJnZXQ6IGFueSkge1xuICAgIHJldHVybiAnX19lc01vZHVsZScgaW4gdGFyZ2V0ICYmIHRhcmdldC5fX2VzTW9kdWxlICYmICdkZWZhdWx0JyBpbiB0YXJnZXQuZGVmYXVsdFxuICB9XG59XG5cbmZ1bmN0aW9uIHByb3h5TWV0aG9kKG5hbWU6ICdnZXQnIHwgJ3NldCcgfCAnaGFzJyB8ICdkZWxldGVQcm9wZXJ0eScsIHRyeURlZmF1bHQ6IGJvb2xlYW4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKHRhcmdldDogYW55LCBrZXk6IHN0cmluZyB8IHN5bWJvbCwgLi4uYXJnczogW2FueT8sIGFueT9dKSB7XG4gICAgY29uc3QgcmVzdWx0ID0gUmVmbGVjdFtuYW1lXSh0YXJnZXQsIGtleSwgLi4uYXJncylcbiAgICBpZiAoaXNQcmltaXRpdmUodGFyZ2V0LmRlZmF1bHQpKVxuICAgICAgcmV0dXJuIHJlc3VsdFxuICAgIGlmICgodHJ5RGVmYXVsdCAmJiBrZXkgPT09ICdkZWZhdWx0JykgfHwgdHlwZW9mIHJlc3VsdCA9PT0gJ3VuZGVmaW5lZCcpXG4gICAgICByZXR1cm4gUmVmbGVjdFtuYW1lXSh0YXJnZXQuZGVmYXVsdCwga2V5LCAuLi5hcmdzKVxuICAgIHJldHVybiByZXN1bHRcbiAgfVxufVxuXG5mdW5jdGlvbiBleHBvcnRBbGwoZXhwb3J0czogYW55LCBzb3VyY2VNb2R1bGU6IGFueSkge1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgZm9yIChjb25zdCBrZXkgaW4gc291cmNlTW9kdWxlKSB7XG4gICAgaWYgKGtleSAhPT0gJ2RlZmF1bHQnKSB7XG4gICAgICB0cnkge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7XG4gICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgICAgZ2V0KCkgeyByZXR1cm4gc291cmNlTW9kdWxlW2tleV0gfSxcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICAgIGNhdGNoIChfZXJyKSB7IH1cbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBTVksTUFBQyxxQkFBcUIsR0FBRztBQUNyQyxFQUFFLGVBQWUsRUFBRTtBQUNuQixJQUFJLFdBQVcsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFO0FBQzNCLElBQUksZ0JBQWdCLEdBQUc7QUFDdkIsTUFBTSxPQUFPO0FBQ2IsUUFBUSxNQUFNLEVBQUUsTUFBTTtBQUN0QixTQUFTO0FBQ1QsUUFBUSxLQUFLLEVBQUUsTUFBTTtBQUNyQixTQUFTO0FBQ1QsUUFBUSxPQUFPLEVBQUUsTUFBTTtBQUN2QixTQUFTO0FBQ1QsUUFBUSxPQUFPLEVBQUUsTUFBTTtBQUN2QixTQUFTO0FBQ1QsUUFBUSxVQUFVLEVBQUUsTUFBTTtBQUMxQixTQUFTO0FBQ1QsUUFBUSxFQUFFLEVBQUUsTUFBTTtBQUNsQixTQUFTO0FBQ1QsT0FBTyxDQUFDO0FBQ1IsS0FBSztBQUNMLElBQUksV0FBVyxHQUFHO0FBQ2xCLEtBQUs7QUFDTCxHQUFHO0FBQ0gsRUFBRTtBQUNLLE1BQU0sY0FBYyxTQUFTLEdBQUcsQ0FBQztBQUN4QyxFQUFFLGFBQWEsQ0FBQyxNQUFNLEVBQUU7QUFDeEIsSUFBSSxPQUFPLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3JDLEdBQUc7QUFDSCxFQUFFLEdBQUcs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
|
|
213
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlcyI6WyIuLi9zcmMvY2xpZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZVJlcXVpcmUgfSBmcm9tICdtb2R1bGUnXG5pbXBvcnQgeyBmaWxlVVJMVG9QYXRoLCBwYXRoVG9GaWxlVVJMIH0gZnJvbSAndXJsJ1xuaW1wb3J0IHZtIGZyb20gJ3ZtJ1xuaW1wb3J0IHsgZGlybmFtZSwgZXh0bmFtZSwgaXNBYnNvbHV0ZSwgcmVzb2x2ZSB9IGZyb20gJ3BhdGhlJ1xuaW1wb3J0IHsgaXNOb2RlQnVpbHRpbiB9IGZyb20gJ21sbHknXG5pbXBvcnQgeyBpc1ByaW1pdGl2ZSwgbm9ybWFsaXplTW9kdWxlSWQsIG5vcm1hbGl6ZVJlcXVlc3RJZCwgc2xhc2gsIHRvRmlsZVBhdGggfSBmcm9tICcuL3V0aWxzJ1xuaW1wb3J0IHR5cGUgeyBNb2R1bGVDYWNoZSwgVml0ZU5vZGVSdW5uZXJPcHRpb25zIH0gZnJvbSAnLi90eXBlcydcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfUkVRVUVTVF9TVFVCUyA9IHtcbiAgJy9Adml0ZS9jbGllbnQnOiB7XG4gICAgaW5qZWN0UXVlcnk6IChpZDogc3RyaW5nKSA9PiBpZCxcbiAgICBjcmVhdGVIb3RDb250ZXh0KCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgYWNjZXB0OiAoKSA9PiB7fSxcbiAgICAgICAgcHJ1bmU6ICgpID0+IHt9LFxuICAgICAgICBkaXNwb3NlOiAoKSA9PiB7fSxcbiAgICAgICAgZGVjbGluZTogKCkgPT4ge30sXG4gICAgICAgIGludmFsaWRhdGU6ICgpID0+IHt9LFxuICAgICAgICBvbjogKCkgPT4ge30sXG4gICAgICB9XG4gICAgfSxcbiAgICB1cGRhdGVTdHlsZSgpIHt9LFxuICB9LFxufVxuXG5leHBvcnQgY2xhc3MgTW9kdWxlQ2FjaGVNYXAgZXh0ZW5kcyBNYXA8c3RyaW5nLCBNb2R1bGVDYWNoZT4ge1xuICBub3JtYWxpemVQYXRoKGZzUGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZU1vZHVsZUlkKGZzUGF0aClcbiAgfVxuXG4gIHNldChmc1BhdGg6IHN0cmluZywgbW9kOiBQYXJ0aWFsPE1vZHVsZUNhY2hlPikge1xuICAgIGZzUGF0aCA9IHRoaXMubm9ybWFsaXplUGF0aChmc1BhdGgpXG4gICAgaWYgKCFzdXBlci5oYXMoZnNQYXRoKSlcbiAgICAgIHN1cGVyLnNldChmc1BhdGgsIG1vZClcbiAgICBlbHNlXG4gICAgICBPYmplY3QuYXNzaWduKHN1cGVyLmdldChmc1BhdGgpLCBtb2QpXG4gICAgcmV0dXJuIHRoaXNcbiAgfVxuXG4gIGdldChmc1BhdGg6IHN0cmluZykge1xuICAgIGZzUGF0aCA9IHRoaXMubm9ybWFsaXplUGF0aChmc1BhdGgpXG4gICAgcmV0dXJuIHN1cGVyLmdldChmc1BhdGgpXG4gIH1cblxuICBkZWxldGUoZnNQYXRoOiBzdHJpbmcpIHtcbiAgICBmc1BhdGggPSB0aGlzLm5vcm1hbGl6ZVBhdGgoZnNQYXRoKVxuICAgIHJldHVybiBzdXBlci5kZWxldGUoZnNQYXRoKVxuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBWaXRlTm9kZVJ1bm5lciB7XG4gIHJvb3Q6IHN0cmluZ1xuXG4gIGRlYnVnOiBib29sZWFuXG5cbiAgLyoqXG4gICAqIEhvbGRzIHRoZSBjYWNoZSBvZiBtb2R1bGVzXG4gICAqIEtleXMgb2YgdGhlIG1hcCBhcmUgZmlsZXBhdGhzLCBvciBwbGFpbiBwYWNrYWdlIG5hbWVzXG4gICAqL1xuICBtb2R1bGVDYWNoZTogTW9kdWxlQ2FjaGVNYXBcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgb3B0aW9uczogVml0ZU5vZGVSdW5uZXJPcHRpb25zKSB7XG4gICAgdGhpcy5yb290ID0gb3B0aW9ucy5yb290ID8/IHByb2Nlc3MuY3dkKClcbiAgICB0aGlzLm1vZHVsZUNhY2hlID0gb3B0aW9ucy5tb2R1bGVDYWNoZSA/PyBuZXcgTW9kdWxlQ2FjaGVNYXAoKVxuICAgIHRoaXMuZGVidWcgPSBvcHRpb25zLmRlYnVnID8/ICh0eXBlb2YgcHJvY2VzcyAhPT0gJ3VuZGVmaW5lZCcgPyAhIXByb2Nlc3MuZW52LlZJVEVfTk9ERV9ERUJVRyA6IGZhbHNlKVxuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZUZpbGUoZmlsZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuY2FjaGVkUmVxdWVzdChgL0Bmcy8ke3NsYXNoKHJlc29sdmUoZmlsZSkpfWAsIFtdKVxuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZUlkKGlkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5jYWNoZWRSZXF1ZXN0KGlkLCBbXSlcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgYXN5bmMgY2FjaGVkUmVxdWVzdChyYXdJZDogc3RyaW5nLCBjYWxsc3RhY2s6IHN0cmluZ1tdKSB7XG4gICAgY29uc3QgaWQgPSBub3JtYWxpemVSZXF1ZXN0SWQocmF3SWQsIHRoaXMub3B0aW9ucy5iYXNlKVxuICAgIGNvbnN0IGZzUGF0aCA9IHRvRmlsZVBhdGgoaWQsIHRoaXMucm9vdClcblxuICAgIGlmICh0aGlzLm1vZHVsZUNhY2hlLmdldChmc1BhdGgpPy5wcm9taXNlKVxuICAgICAgcmV0dXJuIHRoaXMubW9kdWxlQ2FjaGUuZ2V0KGZzUGF0aCk/LnByb21pc2VcblxuICAgIGNvbnN0IHByb21pc2UgPSB0aGlzLmRpcmVjdFJlcXVlc3QoaWQsIGZzUGF0aCwgY2FsbHN0YWNrKVxuICAgIHRoaXMubW9kdWxlQ2FjaGUuc2V0KGZzUGF0aCwgeyBwcm9taXNlIH0pXG5cbiAgICByZXR1cm4gYXdhaXQgcHJvbWlzZVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBhc3luYyBkaXJlY3RSZXF1ZXN0KGlkOiBzdHJpbmcsIGZzUGF0aDogc3RyaW5nLCBfY2FsbHN0YWNrOiBzdHJpbmdbXSkge1xuICAgIGNvbnN0IGNhbGxzdGFjayA9IFsuLi5fY2FsbHN0YWNrLCBub3JtYWxpemVNb2R1bGVJZChpZCldXG4gICAgY29uc3QgcmVxdWVzdCA9IGFzeW5jKGRlcDogc3RyaW5nKSA9PiB7XG4gICAgICBjb25zdCBnZXRTdGFjayA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIGBzdGFjazpcXG4ke1suLi5jYWxsc3RhY2ssIGRlcF0ucmV2ZXJzZSgpLm1hcChwID0+IGAtICR7cH1gKS5qb2luKCdcXG4nKX1gXG4gICAgICB9XG5cbiAgICAgIC8vIHByb2JhYmx5IG1lYW5zIGl0IHdhcyBwYXNzZWQgYXMgdmFyaWFibGVcbiAgICAgIC8vIGFuZCB3YXNuJ3QgdHJhbnNmb3JtZWQgYnkgVml0ZVxuICAgICAgaWYgKHRoaXMub3B0aW9ucy5yZXNvbHZlSWQgJiYgdGhpcy5zaG91bGRSZXNvbHZlSWQoZGVwKSkge1xuICAgICAgICBjb25zdCByZXNvbHZlZERlcCA9IGF3YWl0IHRoaXMub3B0aW9ucy5yZXNvbHZlSWQoZGVwLCBpZClcbiAgICAgICAgZGVwID0gcmVzb2x2ZWREZXA/LmlkPy5yZXBsYWNlKHRoaXMucm9vdCwgJycpIHx8IGRlcFxuICAgICAgfVxuXG4gICAgICBsZXQgZGVidWdUaW1lcjogYW55XG4gICAgICBpZiAodGhpcy5kZWJ1ZylcbiAgICAgICAgZGVidWdUaW1lciA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5kZWJ1Z0xvZygoKSA9PiBgbW9kdWxlICR7ZGVwfSB0YWtlcyBvdmVyIDJzIHRvIGxvYWQuXFxuJHtnZXRTdGFjaygpfWApLCAyMDAwKVxuXG4gICAgICB0cnkge1xuICAgICAgICBpZiAoY2FsbHN0YWNrLmluY2x1ZGVzKG5vcm1hbGl6ZU1vZHVsZUlkKGRlcCkpKSB7XG4gICAgICAgICAgdGhpcy5kZWJ1Z0xvZygoKSA9PiBgY2lyY3VsYXIgZGVwZW5kZW5jeSwgJHtnZXRTdGFjaygpfWApXG4gICAgICAgICAgY29uc3QgZGVwRXhwb3J0cyA9IHRoaXMubW9kdWxlQ2FjaGUuZ2V0KGRlcCk/LmV4cG9ydHNcbiAgICAgICAgICBpZiAoZGVwRXhwb3J0cylcbiAgICAgICAgICAgIHJldHVybiBkZXBFeHBvcnRzXG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBbdml0ZS1ub2RlXSBGYWlsZWQgdG8gcmVzb2x2ZSBjaXJjdWxhciBkZXBlbmRlbmN5LCAke2dldFN0YWNrKCl9YClcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG1vZCA9IGF3YWl0IHRoaXMuY2FjaGVkUmVxdWVzdChkZXAsIGNhbGxzdGFjaylcblxuICAgICAgICByZXR1cm4gbW9kXG4gICAgICB9XG4gICAgICBmaW5hbGx5IHtcbiAgICAgICAgaWYgKGRlYnVnVGltZXIpXG4gICAgICAgICAgY2xlYXJUaW1lb3V0KGRlYnVnVGltZXIpXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcmVxdWVzdFN0dWJzID0gdGhpcy5vcHRpb25zLnJlcXVlc3RTdHVicyB8fCBERUZBVUxUX1JFUVVFU1RfU1RVQlNcbiAgICBpZiAoaWQgaW4gcmVxdWVzdFN0dWJzKVxuICAgICAgcmV0dXJuIHJlcXVlc3RTdHVic1tpZF1cblxuICAgIGNvbnN0IHsgY29kZTogdHJhbnNmb3JtZWQsIGV4dGVybmFsaXplIH0gPSBhd2FpdCB0aGlzLm9wdGlvbnMuZmV0Y2hNb2R1bGUoaWQpXG4gICAgaWYgKGV4dGVybmFsaXplKSB7XG4gICAgICBjb25zdCBtb2QgPSBhd2FpdCB0aGlzLmludGVyb3BlZEltcG9ydChleHRlcm5hbGl6ZSlcbiAgICAgIHRoaXMubW9kdWxlQ2FjaGUuc2V0KGZzUGF0aCwgeyBleHBvcnRzOiBtb2QgfSlcbiAgICAgIHJldHVybiBtb2RcbiAgICB9XG5cbiAgICBpZiAodHJhbnNmb3JtZWQgPT0gbnVsbClcbiAgICAgIHRocm93IG5ldyBFcnJvcihgW3ZpdGUtbm9kZV0gRmFpbGVkIHRvIGxvYWQgJHtpZH1gKVxuXG4gICAgLy8gZGlzYW1iaWd1YXRlIHRoZSBgPFVOSVQ+Oi9gIG9uIHdpbmRvd3M6IHNlZSBub2RlanMvbm9kZSMzMTcxMFxuICAgIGNvbnN0IHVybCA9IHBhdGhUb0ZpbGVVUkwoZnNQYXRoKS5ocmVmXG4gICAgY29uc3QgZXhwb3J0czogYW55ID0gT2JqZWN0LmNyZWF0ZShudWxsKVxuICAgIGV4cG9ydHNbU3ltYm9sLnRvU3RyaW5nVGFnXSA9ICdNb2R1bGUnXG5cbiAgICB0aGlzLm1vZHVsZUNhY2hlLnNldChpZCwgeyBjb2RlOiB0cmFuc2Zvcm1lZCwgZXhwb3J0cyB9KVxuXG4gICAgY29uc3QgX19maWxlbmFtZSA9IGZpbGVVUkxUb1BhdGgodXJsKVxuICAgIGNvbnN0IG1vZHVsZVByb3h5ID0ge1xuICAgICAgc2V0IGV4cG9ydHModmFsdWUpIHtcbiAgICAgICAgZXhwb3J0QWxsKGV4cG9ydHMsIHZhbHVlKVxuICAgICAgICBleHBvcnRzLmRlZmF1bHQgPSB2YWx1ZVxuICAgICAgfSxcbiAgICAgIGdldCBleHBvcnRzKCkge1xuICAgICAgICByZXR1cm4gZXhwb3J0cy5kZWZhdWx0XG4gICAgICB9LFxuICAgIH1cblxuICAgIC8vIEJlIGNhcmVmdWwgd2hlbiBjaGFuZ2luZyB0aGlzXG4gICAgLy8gY2hhbmdpbmcgY29udGV4dCB3aWxsIGNoYW5nZSBhbW91bnQgb2YgY29kZSBhZGRlZCBvbiBsaW5lIDoxMTQgKHZtLnJ1bkluVGhpc0NvbnRleHQpXG4gICAgLy8gdGhpcyBtZXNzZXMgdXAgc291cmNlbWFwcyBmb3IgY292ZXJhZ2VcbiAgICAvLyBhZGp1c3QgYG9mZnNldGAgdmFyaWFibGUgaW4gcGFja2FnZXMvdml0ZXN0L3NyYy9pbnRlZ3JhdGlvbnMvY292ZXJhZ2UudHMjTDEwMCBpZiB5b3UgZG8gY2hhbmdlIHRoaXNcbiAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5wcmVwYXJlQ29udGV4dCh7XG4gICAgICAvLyBlc20gdHJhbnNmb3JtZWQgYnkgVml0ZVxuICAgICAgX192aXRlX3Nzcl9pbXBvcnRfXzogcmVxdWVzdCxcbiAgICAgIF9fdml0ZV9zc3JfZHluYW1pY19pbXBvcnRfXzogcmVxdWVzdCxcbiAgICAgIF9fdml0ZV9zc3JfZXhwb3J0c19fOiBleHBvcnRzLFxuICAgICAgX192aXRlX3Nzcl9leHBvcnRBbGxfXzogKG9iajogYW55KSA9PiBleHBvcnRBbGwoZXhwb3J0cywgb2JqKSxcbiAgICAgIF9fdml0ZV9zc3JfaW1wb3J0X21ldGFfXzogeyB1cmwgfSxcblxuICAgICAgLy8gY2pzIGNvbXBhY3RcbiAgICAgIHJlcXVpcmU6IGNyZWF0ZVJlcXVpcmUodXJsKSxcbiAgICAgIGV4cG9ydHMsXG4gICAgICBtb2R1bGU6IG1vZHVsZVByb3h5LFxuICAgICAgX19maWxlbmFtZSxcbiAgICAgIF9fZGlybmFtZTogZGlybmFtZShfX2ZpbGVuYW1lKSxcbiAgICB9KVxuXG4gICAgLy8gYWRkICd1c2Ugc3RyaWN0JyBzaW5jZSBFU00gZW5hYmxlcyBpdCBieSBkZWZhdWx0XG4gICAgY29uc3QgZm4gPSB2bS5ydW5JblRoaXNDb250ZXh0KGAndXNlIHN0cmljdCc7YXN5bmMgKCR7T2JqZWN0LmtleXMoY29udGV4dCkuam9pbignLCcpfSk9Pnt7JHt0cmFuc2Zvcm1lZH1cXG59fWAsIHtcbiAgICAgIGZpbGVuYW1lOiBmc1BhdGgsXG4gICAgICBsaW5lT2Zmc2V0OiAwLFxuICAgIH0pXG5cbiAgICBhd2FpdCBmbiguLi5PYmplY3QudmFsdWVzKGNvbnRleHQpKVxuXG4gICAgcmV0dXJuIGV4cG9ydHNcbiAgfVxuXG4gIHByZXBhcmVDb250ZXh0KGNvbnRleHQ6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgICByZXR1cm4gY29udGV4dFxuICB9XG5cbiAgc2hvdWxkUmVzb2x2ZUlkKGRlcDogc3RyaW5nKSB7XG4gICAgaWYgKGlzTm9kZUJ1aWx0aW4oZGVwKSB8fCBkZXAgaW4gKHRoaXMub3B0aW9ucy5yZXF1ZXN0U3R1YnMgfHwgREVGQVVMVF9SRVFVRVNUX1NUVUJTKSlcbiAgICAgIHJldHVybiBmYWxzZVxuXG4gICAgcmV0dXJuICFpc0Fic29sdXRlKGRlcCkgfHwgIWV4dG5hbWUoZGVwKVxuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSBpZiBhIG1vZHVsZSBzaG91bGQgYmUgaW50ZXJvcC1lZFxuICAgKiBUaGlzIGZ1bmN0aW9uIG1vc3RseSBmb3IgdGhlIGFiaWxpdHkgdG8gb3ZlcnJpZGUgYnkgc3ViY2xhc3NcbiAgICovXG4gIHNob3VsZEludGVyb3AocGF0aDogc3RyaW5nLCBtb2Q6IGFueSkge1xuICAgIGlmICh0aGlzLm9wdGlvbnMuaW50ZXJvcERlZmF1bHQgPT09IGZhbHNlKVxuICAgICAgcmV0dXJuIGZhbHNlXG4gICAgLy8gbmV2ZXIgaW50ZXJvcCBFU00gbW9kdWxlc1xuICAgIC8vIFRPRE86IHNob3VsZCBhbHNvIHNraXAgZm9yIGAuanNgIHdpdGggYHR5cGU9XCJtb2R1bGVcImBcbiAgICByZXR1cm4gIXBhdGguZW5kc1dpdGgoJy5tanMnKSAmJiAnZGVmYXVsdCcgaW4gbW9kXG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0IGEgbW9kdWxlIGFuZCBpbnRlcm9wIGl0XG4gICAqL1xuICBhc3luYyBpbnRlcm9wZWRJbXBvcnQocGF0aDogc3RyaW5nKSB7XG4gICAgY29uc3QgbW9kID0gYXdhaXQgaW1wb3J0KHBhdGgpXG5cbiAgICBpZiAodGhpcy5zaG91bGRJbnRlcm9wKHBhdGgsIG1vZCkpIHtcbiAgICAgIGNvbnN0IHRyeURlZmF1bHQgPSB0aGlzLmhhc05lc3RlZERlZmF1bHQobW9kKVxuICAgICAgcmV0dXJuIG5ldyBQcm94eShtb2QsIHtcbiAgICAgICAgZ2V0OiBwcm94eU1ldGhvZCgnZ2V0JywgdHJ5RGVmYXVsdCksXG4gICAgICAgIHNldDogcHJveHlNZXRob2QoJ3NldCcsIHRyeURlZmF1bHQpLFxuICAgICAgICBoYXM6IHByb3h5TWV0aG9kKCdoYXMnLCB0cnlEZWZhdWx0KSxcbiAgICAgICAgZGVsZXRlUHJvcGVydHk6IHByb3h5TWV0aG9kKCdkZWxldGVQcm9wZXJ0eScsIHRyeURlZmF1bHQpLFxuICAgICAgfSlcbiAgICB9XG5cbiAgICByZXR1cm4gbW9kXG4gIH1cblxuICBoYXNOZXN0ZWREZWZhdWx0KHRhcmdldDogYW55KSB7XG4gICAgcmV0dXJuICdfX2VzTW9kdWxlJyBpbiB0YXJnZXQgJiYgdGFyZ2V0Ll9fZXNNb2R1bGUgJiYgJ2RlZmF1bHQnIGluIHRhcmdldC5kZWZhdWx0XG4gIH1cblxuICBwcml2YXRlIGRlYnVnTG9nKG1zZzogKCkgPT4gc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMuZGVidWcpXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29uc29sZVxuICAgICAgY29uc29sZS5sb2coYFt2aXRlLW5vZGVdICR7bXNnKCl9YClcbiAgfVxufVxuXG5mdW5jdGlvbiBwcm94eU1ldGhvZChuYW1lOiAnZ2V0JyB8ICdzZXQnIHwgJ2hhcycgfCAnZGVsZXRlUHJvcGVydHknLCB0cnlEZWZhdWx0OiBib29sZWFuKSB7XG4gIHJldHVybiBmdW5jdGlvbih0YXJnZXQ6IGFueSwga2V5OiBzdHJpbmcgfCBzeW1ib2wsIC4uLmFyZ3M6IFthbnk/LCBhbnk/XSkge1xuICAgIGNvbnN0IHJlc3VsdCA9IFJlZmxlY3RbbmFtZV0odGFyZ2V0LCBrZXksIC4uLmFyZ3MpXG4gICAgaWYgKGlzUHJpbWl0aXZlKHRhcmdldC5kZWZhdWx0KSlcbiAgICAgIHJldHVybiByZXN1bHRcbiAgICBpZiAoKHRyeURlZmF1bHQgJiYga2V5ID09PSAnZGVmYXVsdCcpIHx8IHR5cGVvZiByZXN1bHQgPT09ICd1bmRlZmluZWQnKVxuICAgICAgcmV0dXJuIFJlZmxlY3RbbmFtZV0odGFyZ2V0LmRlZmF1bHQsIGtleSwgLi4uYXJncylcbiAgICByZXR1cm4gcmVzdWx0XG4gIH1cbn1cblxuZnVuY3Rpb24gZXhwb3J0QWxsKGV4cG9ydHM6IGFueSwgc291cmNlTW9kdWxlOiBhbnkpIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gIGZvciAoY29uc3Qga2V5IGluIHNvdXJjZU1vZHVsZSkge1xuICAgIGlmIChrZXkgIT09ICdkZWZhdWx0Jykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwge1xuICAgICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICAgIGdldCgpIHsgcmV0dXJuIHNvdXJjZU1vZHVsZVtrZXldIH0sXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgICBjYXRjaCAoX2VycikgeyB9XG4gICAgfVxuICB9XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQU1ZLE1BQUMscUJBQXFCLEdBQUc7QUFDckMsRUFBRSxlQUFlLEVBQUU7QUFDbkIsSUFBSSxXQUFXLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRTtBQUMzQixJQUFJLGdCQUFnQixHQUFHO0FBQ3ZCLE1BQU0sT0FBTztBQUNiLFFBQVEsTUFBTSxFQUFFLE1BQU07QUFDdEIsU0FBUztBQUNULFFBQVEsS0FBSyxFQUFFLE1BQU07QUFDckIsU0FBUztBQUNULFFBQVEsT0FBTyxFQUFFLE1BQU07QUFDdkIsU0FBUztBQUNULFFBQVEsT0FBTyxFQUFFLE1BQU07QUFDdkIsU0FBUztBQUNULFFBQVEsVUFBVSxFQUFFLE1BQU07QUFDMUIsU0FBUztBQUNULFFBQVEsRUFBRSxFQUFFLE1BQU07QUFDbEIsU0FBUztBQUNULE9BQU8sQ0FBQztBQUNSLEtBQUs7QUFDTCxJQUFJLFdBQVcsR0FBRztBQUNsQixLQUFLO0FBQ0wsR0FBRztBQUNILEVBQUU7QUFDSyxNQUFNLGNBQWMsU0FBUyxHQUFHLENBQUM7QUFDeEMsRUFBRSxhQUFhLENBQUMsTUFBTSxFQUFFO0FBQ3hCLElBQUksT0FBTyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNyQyxHQUFHO0FBQ0gsRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLEdBQUcsRUFBRTtBQUNuQixJQUFJLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3hDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMs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
|
|
@@ -1 +1 @@
|
|
|
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-
|
|
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-4b326db0.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ViteDevServer, TransformResult } from 'vite';
|
|
2
|
-
import { D as DepsHandlingOptions, e as ViteNodeServerOptions, F as FetchResult, d as ViteNodeResolveId } from './types-
|
|
2
|
+
import { D as DepsHandlingOptions, e as ViteNodeServerOptions, F as FetchResult, d as ViteNodeResolveId } from './types-4b326db0.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>;
|
|
@@ -21,6 +21,7 @@ declare class ModuleCacheMap extends Map<string, ModuleCache> {
|
|
|
21
21
|
declare class ViteNodeRunner {
|
|
22
22
|
options: ViteNodeRunnerOptions;
|
|
23
23
|
root: string;
|
|
24
|
+
debug: boolean;
|
|
24
25
|
/**
|
|
25
26
|
* Holds the cache of modules
|
|
26
27
|
* Keys of the map are filepaths, or plain package names
|
|
@@ -32,7 +33,7 @@ declare class ViteNodeRunner {
|
|
|
32
33
|
/** @internal */
|
|
33
34
|
cachedRequest(rawId: string, callstack: string[]): Promise<any>;
|
|
34
35
|
/** @internal */
|
|
35
|
-
directRequest(id: string, fsPath: string,
|
|
36
|
+
directRequest(id: string, fsPath: string, _callstack: string[]): Promise<any>;
|
|
36
37
|
prepareContext(context: Record<string, any>): Record<string, any>;
|
|
37
38
|
shouldResolveId(dep: string): boolean;
|
|
38
39
|
/**
|
|
@@ -45,6 +46,7 @@ declare class ViteNodeRunner {
|
|
|
45
46
|
*/
|
|
46
47
|
interopedImport(path: string): Promise<any>;
|
|
47
48
|
hasNestedDefault(target: any): any;
|
|
49
|
+
private debugLog;
|
|
48
50
|
}
|
|
49
51
|
|
|
50
52
|
interface DepsHandlingOptions {
|
|
@@ -87,6 +89,7 @@ interface ViteNodeRunnerOptions {
|
|
|
87
89
|
moduleCache?: ModuleCacheMap;
|
|
88
90
|
interopDefault?: boolean;
|
|
89
91
|
requestStubs?: Record<string, any>;
|
|
92
|
+
debug?: boolean;
|
|
90
93
|
}
|
|
91
94
|
interface ViteNodeResolveId {
|
|
92
95
|
external?: boolean | 'absolute' | 'relative';
|
|
@@ -1 +1 @@
|
|
|
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-
|
|
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-4b326db0.js';
|
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vite-node",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Vite as Node.js runtime",
|
|
5
5
|
"homepage": "https://github.com/vitest-dev/vitest/blob/main/packages/vite-node#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -24,34 +24,42 @@
|
|
|
24
24
|
".": {
|
|
25
25
|
"import": "./dist/index.js",
|
|
26
26
|
"require": "./dist/index.cjs",
|
|
27
|
-
"types": "./index.d.ts"
|
|
27
|
+
"types": "./dist/index.d.ts"
|
|
28
28
|
},
|
|
29
29
|
"./client": {
|
|
30
30
|
"import": "./dist/client.js",
|
|
31
31
|
"require": "./dist/client.cjs",
|
|
32
|
-
"types": "./client.d.ts"
|
|
32
|
+
"types": "./dist/client.d.ts"
|
|
33
33
|
},
|
|
34
34
|
"./server": {
|
|
35
35
|
"import": "./dist/server.js",
|
|
36
36
|
"require": "./dist/server.cjs",
|
|
37
|
-
"types": "./server.d.ts"
|
|
37
|
+
"types": "./dist/server.d.ts"
|
|
38
38
|
},
|
|
39
39
|
"./utils": {
|
|
40
40
|
"import": "./dist/utils.js",
|
|
41
41
|
"require": "./dist/utils.cjs",
|
|
42
|
-
"types": "./utils.d.ts"
|
|
42
|
+
"types": "./dist/utils.d.ts"
|
|
43
43
|
}
|
|
44
44
|
},
|
|
45
45
|
"main": "./dist/index.js",
|
|
46
46
|
"module": "./dist/index.js",
|
|
47
|
-
"types": "./index.d.ts",
|
|
47
|
+
"types": "./dist/index.d.ts",
|
|
48
48
|
"bin": {
|
|
49
49
|
"vite-node": "./vite-node.mjs"
|
|
50
50
|
},
|
|
51
|
+
"typesVersions": {
|
|
52
|
+
"*": {
|
|
53
|
+
"*": [
|
|
54
|
+
"./dist/*",
|
|
55
|
+
"./dist/index.d.ts"
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
},
|
|
51
59
|
"dependencies": {
|
|
52
60
|
"kolorist": "^1.5.1",
|
|
53
|
-
"minimist": "^1.2.
|
|
54
|
-
"mlly": "^0.
|
|
61
|
+
"minimist": "^1.2.6",
|
|
62
|
+
"mlly": "^0.5.1",
|
|
55
63
|
"pathe": "^0.2.0",
|
|
56
64
|
"vite": "^2.8.6"
|
|
57
65
|
},
|
|
@@ -60,12 +68,12 @@
|
|
|
60
68
|
"rollup": "^2.70.1"
|
|
61
69
|
},
|
|
62
70
|
"engines": {
|
|
63
|
-
"node": ">=v14.
|
|
71
|
+
"node": ">=v14.19.1"
|
|
64
72
|
},
|
|
65
73
|
"scripts": {
|
|
66
74
|
"build": "rimraf dist && rollup -c",
|
|
67
75
|
"dev": "rollup -c --watch --watch.include=src/**",
|
|
68
76
|
"typecheck": "tsc --noEmit"
|
|
69
77
|
},
|
|
70
|
-
"readme": "# vite-node\n\n[](https://www.npmjs.com/package/vite-node)\n\nVite as Node runtime. The engine powers [Vitest](https://github.com/vitest-dev/vitest).\n\n## Features\n\n- Out-of-box ESM & TypeScript support (possible for more with plugins)\n- Top-level await
|
|
78
|
+
"readme": "# vite-node\n\n[](https://www.npmjs.com/package/vite-node)\n\nVite as Node runtime. The engine powers [Vitest](https://github.com/vitest-dev/vitest).\n\n## Features\n\n- Out-of-box ESM & TypeScript support (possible for more with plugins)\n- Top-level `await`\n- Vite plugins, resolve, aliasing\n- Respect `vite.config.ts`\n- Shims for `__dirname` and `__filename` in ESM\n- Access to native node modules like `fs`, `path`, etc.\n\n## CLI Usage\n\nRun JS/TS file on Node.js using Vite's resolvers and transformers.\n\n```bash\nnpx vite-node index.ts\n```\n\nOptions:\n\n```bash\nnpx vite-node -h\n```\n\n## Programmatic Usage\n\nIn Vite Node, the server and runner (client) are separated, so you can integrate them in different contexts (workers, cross-process, or remote) if needed. The demo below shows a simple example of having both (server and runner) running in the same context\n\n```ts\nimport { createServer } from 'vite'\nimport { ViteNodeServer } from 'vite-node/server'\nimport { ViteNodeRunner } from 'vite-node/client'\n\n// create vite server\nconst server = await createServer()\n// this is need to initialize the plugins\nawait server.pluginContainer.buildStart({})\n\n// create vite-node server\nconst node = new ViteNodeServer(server)\n\n// create vite-node runner\nconst runner = new ViteNodeRunner({\n root: server.config.root,\n base: server.config.base,\n // when having the server and runner in a different context,\n // you will need to handle the communication between them\n // and pass to this function\n fetchModule(id) {\n return node.fetchModule(id)\n },\n resolveId(id, importer) {\n return node.resolveId(id, importer)\n },\n})\n\n// execute the file\nawait runner.executeFile('./example.ts')\n\n// close the vite server\nawait server.close()\n```\n\n## Credits\n\nBased on [@pi0](https://github.com/pi0)'s brilliant idea of having a Vite server as the on-demand transforming service for [Nuxt's Vite SSR](https://github.com/nuxt/vite/pull/201).\n\nThanks [@brillout](https://github.com/brillout) for kindly sharing this package name.\n\n## Sponsors\n\n<p align=\"center\">\n <a href=\"https://cdn.jsdelivr.net/gh/antfu/static/sponsors.svg\">\n <img src='https://cdn.jsdelivr.net/gh/antfu/static/sponsors.svg'/>\n </a>\n</p>\n\n## License\n\n[MIT](./LICENSE) License © 2021 [Anthony Fu](https://github.com/antfu)\n"
|
|
71
79
|
}
|
package/types-49baa6c8.d.ts
DELETED
|
@@ -1,111 +0,0 @@
|
|
|
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 };
|
package/types-7101d113.d.ts
DELETED
|
@@ -1,111 +0,0 @@
|
|
|
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-b082e264.d.ts
DELETED
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
declare const DEFAULT_REQUEST_STUBS: {
|
|
2
|
-
'/@vite/client': {
|
|
3
|
-
injectQuery: (id: string) => string;
|
|
4
|
-
createHotContext(): {
|
|
5
|
-
accept: () => void;
|
|
6
|
-
prune: () => void;
|
|
7
|
-
dispose: () => void;
|
|
8
|
-
decline: () => void;
|
|
9
|
-
invalidate: () => void;
|
|
10
|
-
on: () => void;
|
|
11
|
-
};
|
|
12
|
-
updateStyle(): void;
|
|
13
|
-
};
|
|
14
|
-
};
|
|
15
|
-
declare class ModuleCacheMap extends Map<string, ModuleCache> {
|
|
16
|
-
normalizePath(fsPath: string): string;
|
|
17
|
-
set(fsPath: string, mod: Partial<ModuleCache>): this;
|
|
18
|
-
get(fsPath: string): ModuleCache | undefined;
|
|
19
|
-
delete(fsPath: string): boolean;
|
|
20
|
-
}
|
|
21
|
-
declare class ViteNodeRunner {
|
|
22
|
-
options: ViteNodeRunnerOptions;
|
|
23
|
-
root: string;
|
|
24
|
-
/**
|
|
25
|
-
* Holds the cache of modules
|
|
26
|
-
* Keys of the map are filepaths, or plain package names
|
|
27
|
-
*/
|
|
28
|
-
moduleCache: ModuleCacheMap;
|
|
29
|
-
constructor(options: ViteNodeRunnerOptions);
|
|
30
|
-
executeFile(file: string): Promise<any>;
|
|
31
|
-
executeId(id: string): Promise<any>;
|
|
32
|
-
cachedRequest(rawId: string, callstack: string[]): Promise<any>;
|
|
33
|
-
directRequest(id: string, fsPath: string, callstack: string[]): Promise<any>;
|
|
34
|
-
prepareContext(context: Record<string, any>): Record<string, any>;
|
|
35
|
-
shouldResolveId(dep: string): boolean;
|
|
36
|
-
/**
|
|
37
|
-
* Define if a module should be interop-ed
|
|
38
|
-
* This function mostly for the ability to override by subclass
|
|
39
|
-
*/
|
|
40
|
-
shouldInterop(path: string, mod: any): boolean;
|
|
41
|
-
/**
|
|
42
|
-
* Import a module and interop it
|
|
43
|
-
*/
|
|
44
|
-
interopedImport(path: string): Promise<any>;
|
|
45
|
-
hasNestedDefault(target: any): any;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
interface DepsHandlingOptions {
|
|
49
|
-
external?: (string | RegExp)[];
|
|
50
|
-
inline?: (string | RegExp)[];
|
|
51
|
-
/**
|
|
52
|
-
* Try to guess the CJS version of a package when it's invalid ESM
|
|
53
|
-
* @default false
|
|
54
|
-
*/
|
|
55
|
-
fallbackCJS?: boolean;
|
|
56
|
-
}
|
|
57
|
-
interface StartOfSourceMap {
|
|
58
|
-
file?: string;
|
|
59
|
-
sourceRoot?: string;
|
|
60
|
-
}
|
|
61
|
-
interface RawSourceMap extends StartOfSourceMap {
|
|
62
|
-
version: string;
|
|
63
|
-
sources: string[];
|
|
64
|
-
names: string[];
|
|
65
|
-
sourcesContent?: string[];
|
|
66
|
-
mappings: string;
|
|
67
|
-
}
|
|
68
|
-
interface FetchResult {
|
|
69
|
-
code?: string;
|
|
70
|
-
externalize?: string;
|
|
71
|
-
map?: RawSourceMap;
|
|
72
|
-
}
|
|
73
|
-
declare type FetchFunction = (id: string) => Promise<FetchResult>;
|
|
74
|
-
declare type ResolveIdFunction = (id: string, importer?: string) => Promise<ViteNodeResolveId | null>;
|
|
75
|
-
interface ModuleCache {
|
|
76
|
-
promise?: Promise<any>;
|
|
77
|
-
exports?: any;
|
|
78
|
-
code?: string;
|
|
79
|
-
}
|
|
80
|
-
interface ViteNodeRunnerOptions {
|
|
81
|
-
root: string;
|
|
82
|
-
fetchModule: FetchFunction;
|
|
83
|
-
resolveId?: ResolveIdFunction;
|
|
84
|
-
base?: string;
|
|
85
|
-
moduleCache?: ModuleCacheMap;
|
|
86
|
-
interopDefault?: boolean;
|
|
87
|
-
requestStubs?: Record<string, any>;
|
|
88
|
-
}
|
|
89
|
-
interface ViteNodeResolveId {
|
|
90
|
-
external?: boolean | 'absolute' | 'relative';
|
|
91
|
-
id: string;
|
|
92
|
-
meta?: Record<string, any> | null;
|
|
93
|
-
moduleSideEffects?: boolean | 'no-treeshake' | null;
|
|
94
|
-
syntheticNamedExports?: boolean | string | null;
|
|
95
|
-
}
|
|
96
|
-
interface ViteNodeServerOptions {
|
|
97
|
-
/**
|
|
98
|
-
* Inject inline sourcemap to modules
|
|
99
|
-
* @default 'inline'
|
|
100
|
-
*/
|
|
101
|
-
sourcemap?: 'inline' | boolean;
|
|
102
|
-
/**
|
|
103
|
-
* Deps handling
|
|
104
|
-
*/
|
|
105
|
-
deps?: DepsHandlingOptions;
|
|
106
|
-
/**
|
|
107
|
-
* Transform method for modules
|
|
108
|
-
*/
|
|
109
|
-
transformMode?: {
|
|
110
|
-
ssr?: RegExp[];
|
|
111
|
-
web?: RegExp[];
|
|
112
|
-
};
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
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 };
|