vite-plugin-react-server 1.2.2 → 1.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/package.json +1 -1
- package/dist/plugin/helpers/createSharedLoader.d.ts +1 -1
- package/dist/plugin/helpers/createSharedLoader.d.ts.map +1 -1
- package/dist/plugin/helpers/createSharedLoader.js +14 -56
- package/dist/plugin/loader/directives/analyzeDirectives.js +2 -2
- package/dist/plugin/loader/react-loader.d.ts.map +1 -1
- package/dist/plugin/loader/react-loader.js +4 -70
- package/dist/plugin/worker/rsc/createRscWorkerLoader.d.ts +2 -6
- package/dist/plugin/worker/rsc/createRscWorkerLoader.d.ts.map +1 -1
- package/dist/plugin/worker/rsc/createRscWorkerLoader.js +1 -34
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/plugin/helpers/createSharedLoader.ts +17 -70
- package/plugin/loader/directives/analyzeDirectives.ts +5 -1
- package/plugin/loader/react-loader.ts +5 -79
- package/plugin/worker/rsc/createRscWorkerLoader.ts +4 -51
package/README.md
CHANGED
|
@@ -306,7 +306,7 @@ export function Counter() {
|
|
|
306
306
|
|
|
307
307
|
## Contributing
|
|
308
308
|
|
|
309
|
-
This project uses experimental React features and includes a patch system for compatibility. See [
|
|
309
|
+
This project uses experimental React features and includes a patch system for compatibility. See [React Type Compatibility](./docs/react-type-compatibility.md) for maintenance details.
|
|
310
310
|
|
|
311
311
|
## Documentation
|
|
312
312
|
|
|
@@ -325,6 +325,7 @@ This project uses experimental React features and includes a patch system for co
|
|
|
325
325
|
| [React Compatibility](./docs/react-type-compatibility.md) |
|
|
326
326
|
| [Troubleshooting](./docs/troubleshooting-guide.md) |
|
|
327
327
|
| [Package Exports](./docs/package-exports.md) |
|
|
328
|
+
| [Transformations](./docs/transformations.md) |
|
|
328
329
|
|
|
329
330
|
|
|
330
331
|
## License
|
package/dist/package.json
CHANGED
|
@@ -16,7 +16,7 @@ import type { InputNormalizer } from "../types.js";
|
|
|
16
16
|
* @param options - Loader configuration options
|
|
17
17
|
* @returns The resolved module (already a module object, not a Promise)
|
|
18
18
|
*/
|
|
19
|
-
export declare function createSharedLoader({ moduleId, exportName, verbose, logger, resolveVirtual, manifest, normalizer, moduleBase, preserveModulesRoot, projectRoot, buildOutDir, buildServerDir, isBuildMode, isServeMode, effectiveProjectRoot, build, }: {
|
|
19
|
+
export declare function createSharedLoader({ moduleId, exportName, verbose, logger, resolveVirtual, manifest, normalizer, moduleBase, preserveModulesRoot, projectRoot, buildOutDir, buildServerDir, isBuildMode, isServeMode: _isServeMode, effectiveProjectRoot, build, }: {
|
|
20
20
|
moduleId: string;
|
|
21
21
|
exportName?: string;
|
|
22
22
|
verbose?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSharedLoader.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/createSharedLoader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAInD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,QAAQ,EACR,UAAU,EACV,OAAe,EACf,MAAM,EAEN,cAAqB,EAErB,QAAQ,EACR,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,cAAc,EAEd,WAAmB,EACnB,
|
|
1
|
+
{"version":3,"file":"createSharedLoader.d.ts","sourceRoot":"","sources":["../../../plugin/helpers/createSharedLoader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAInD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,QAAQ,EACR,UAAU,EACV,OAAe,EACf,MAAM,EAEN,cAAqB,EAErB,QAAQ,EACR,UAAU,EACV,UAAU,EACV,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,cAAc,EAEd,WAAmB,EACnB,WAAW,EAAE,YAAoB,EACjC,oBAAoB,EACpB,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAC,CAAC;IACxD,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE;QACN,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAoF/B"}
|
|
@@ -25,7 +25,7 @@ async function createSharedLoader({
|
|
|
25
25
|
buildServerDir,
|
|
26
26
|
// Direct import options
|
|
27
27
|
isBuildMode = false,
|
|
28
|
-
isServeMode = false,
|
|
28
|
+
isServeMode: _isServeMode = false,
|
|
29
29
|
effectiveProjectRoot,
|
|
30
30
|
build
|
|
31
31
|
}) {
|
|
@@ -56,82 +56,40 @@ async function createSharedLoader({
|
|
|
56
56
|
});
|
|
57
57
|
if (manifestResolution.manifestEntry && manifestResolution.resolvedPath) {
|
|
58
58
|
resolvedModuleID = manifestResolution.resolvedPath;
|
|
59
|
-
if (verbose) {
|
|
60
|
-
logger?.info(
|
|
61
|
-
`[createSharedLoader] Build mode: resolved via manifest to: ${resolvedModuleID}`
|
|
62
|
-
);
|
|
63
|
-
}
|
|
64
59
|
} else {
|
|
65
60
|
resolvedModuleID = manifestResolution.builtModuleId;
|
|
66
|
-
if (verbose) {
|
|
67
|
-
logger?.info(
|
|
68
|
-
`[createSharedLoader] Build mode: not in manifest, using builtModuleId: ${resolvedModuleID}`
|
|
69
|
-
);
|
|
70
|
-
}
|
|
71
61
|
const isSourcePath = moduleId.startsWith(moduleBase + "/") || moduleId.startsWith("./" + moduleBase + "/") || isAbsolute(moduleId) && moduleId.includes(moduleBase);
|
|
72
62
|
if (!isSourcePath && !isAbsolute(resolvedModuleID) && effectiveProjectRoot && build) {
|
|
73
|
-
|
|
63
|
+
resolvedModuleID = join(
|
|
74
64
|
effectiveProjectRoot,
|
|
75
65
|
build.outDir || "dist",
|
|
76
|
-
build.server || "server"
|
|
77
|
-
|
|
78
|
-
resolvedModuleID = join(serverBuildPath, resolvedModuleID);
|
|
79
|
-
if (verbose) {
|
|
80
|
-
logger?.info(
|
|
81
|
-
`[createSharedLoader] Build mode: prefixing with ${serverBuildPath}: ${resolvedModuleID}`
|
|
82
|
-
);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
} else if (isServeMode) {
|
|
87
|
-
if (verbose) {
|
|
88
|
-
logger?.info(
|
|
89
|
-
`[createSharedLoader] Dev mode: loading directly from source`
|
|
90
|
-
);
|
|
91
|
-
}
|
|
92
|
-
} else if (isBuildMode && effectiveProjectRoot && build) {
|
|
93
|
-
if (!isAbsolute(resolvedModuleID)) {
|
|
94
|
-
const serverBuildPath = join(
|
|
95
|
-
effectiveProjectRoot,
|
|
96
|
-
build.outDir || "dist",
|
|
97
|
-
build.server || "server"
|
|
98
|
-
);
|
|
99
|
-
resolvedModuleID = join(serverBuildPath, resolvedModuleID);
|
|
100
|
-
if (verbose) {
|
|
101
|
-
logger?.info(
|
|
102
|
-
`[createSharedLoader] Build mode fallback: prefixing with ${serverBuildPath}: ${resolvedModuleID}`
|
|
66
|
+
build.server || "server",
|
|
67
|
+
resolvedModuleID
|
|
103
68
|
);
|
|
104
69
|
}
|
|
105
70
|
}
|
|
71
|
+
} else if (isBuildMode && effectiveProjectRoot && build && !isAbsolute(resolvedModuleID)) {
|
|
72
|
+
resolvedModuleID = join(
|
|
73
|
+
effectiveProjectRoot,
|
|
74
|
+
build.outDir || "dist",
|
|
75
|
+
build.server || "server",
|
|
76
|
+
resolvedModuleID
|
|
77
|
+
);
|
|
106
78
|
}
|
|
107
79
|
const fullPath = isAbsolute(resolvedModuleID) ? resolvedModuleID : effectiveProjectRoot ? join(effectiveProjectRoot, resolvedModuleID) : resolvedModuleID;
|
|
108
|
-
if (verbose) {
|
|
109
|
-
logger?.info(`[createSharedLoader] Importing from: ${fullPath}`);
|
|
110
|
-
}
|
|
111
80
|
const fileUrl = isAbsolute(fullPath) ? pathToFileURL(fullPath).href : fullPath;
|
|
112
81
|
const result = await import(fileUrl);
|
|
113
82
|
if (result == null) {
|
|
114
83
|
throw new Error(`Module "${moduleId}" does not have any exports`);
|
|
115
84
|
}
|
|
116
85
|
if (!Object.keys(result).length && exportName?.length) {
|
|
117
|
-
throw new Error(
|
|
118
|
-
`Module "${moduleId}" is a module, but does not have any exports so it can't find ${exportName}`
|
|
119
|
-
);
|
|
86
|
+
throw new Error(`Module "${moduleId}" has no exports, can't find ${exportName}`);
|
|
120
87
|
}
|
|
121
88
|
if (exportName && !(exportName in result)) {
|
|
122
|
-
throw new Error(
|
|
123
|
-
`Module "${moduleId}" exists, but does not export "${exportName}"`
|
|
124
|
-
);
|
|
125
|
-
}
|
|
126
|
-
if (verbose) {
|
|
127
|
-
logger?.info(
|
|
128
|
-
`[createSharedLoader] Module loaded successfully, exports: ${Object.keys(
|
|
129
|
-
result
|
|
130
|
-
).join(", ")}`
|
|
131
|
-
);
|
|
89
|
+
throw new Error(`Module "${moduleId}" does not export "${exportName}"`);
|
|
132
90
|
}
|
|
133
91
|
return result;
|
|
134
92
|
}
|
|
135
93
|
|
|
136
94
|
export { createSharedLoader };
|
|
137
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlU2hhcmVkTG9hZGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9wbHVnaW4vaGVscGVycy9jcmVhdGVTaGFyZWRMb2FkZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgam9pbiwgaXNBYnNvbHV0ZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IHBhdGhUb0ZpbGVVUkwgfSBmcm9tIFwibm9kZTp1cmxcIjtcbmltcG9ydCB0eXBlIHsgTG9nZ2VyIH0gZnJvbSBcInZpdGVcIjtcbmltcG9ydCB0eXBlIHsgSW5wdXROb3JtYWxpemVyIH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyByZXNvbHZlVmlydHVhbEFuZE5vZGVNb2R1bGVzIH0gZnJvbSBcIi4vcmVzb2x2ZVZpcnR1YWxBbmROb2RlTW9kdWxlcy5qc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZU1vZHVsZUZyb21NYW5pZmVzdCB9IGZyb20gXCIuL3Jlc29sdmVNb2R1bGVGcm9tTWFuaWZlc3QuanNcIjtcblxuLyoqXG4gKiBTaGFyZWQgbG9hZGVyIHV0aWxpdHkgdGhhdCBib3RoIFJTQyB3b3JrZXIgbG9hZGVyIGFuZCBidWlsZCBsb2FkZXIgY2FuIHVzZS5cbiAqIFxuICogVGhpcyBoYW5kbGVzIHRoZSBjb21tb24gcGF0dGVybjpcbiAqIDEuIFBhcnNlIGlkIHRvIGdldCBtb2R1bGVJZCBhbmQgZXhwb3J0TmFtZVxuICogMi4gSGFuZGxlIHZpcnR1YWwgbW9kdWxlcyBhbmQgbm9kZV9tb2R1bGVzICh2aWEgcmVzb2x2ZVZpcnR1YWxBbmROb2RlTW9kdWxlcylcbiAqIDMuIFRyeSBtYW5pZmVzdC1iYXNlZCByZXNvbHV0aW9uIChidWlsZCBtb2RlKVxuICogNC4gSW1wb3J0IHRoZSBtb2R1bGVcbiAqIDUuIFZhbGlkYXRlIGV4cG9ydHNcbiAqIFxuICogSWYgdGhlIHJlc3VsdCBpcyBhbHJlYWR5IGEgbW9kdWxlIG9iamVjdCAobm90IGEgUHJvbWlzZSksIGl0J3MgcmV0dXJuZWQgZGlyZWN0bHkuXG4gKiBUaGlzIGFsbG93cyBsb2FkZXJzIHRvIHJldXNlIGFscmVhZHktbG9hZGVkIG1vZHVsZXMuXG4gKiBcbiAqIEBwYXJhbSBvcHRpb25zIC0gTG9hZGVyIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuICogQHJldHVybnMgVGhlIHJlc29sdmVkIG1vZHVsZSAoYWxyZWFkeSBhIG1vZHVsZSBvYmplY3QsIG5vdCBhIFByb21pc2UpXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVTaGFyZWRMb2FkZXIoe1xuICBtb2R1bGVJZCxcbiAgZXhwb3J0TmFtZSxcbiAgdmVyYm9zZSA9IGZhbHNlLFxuICBsb2dnZXIsXG4gIC8vIFZpcnR1YWwgbW9kdWxlIGhhbmRsaW5nXG4gIHJlc29sdmVWaXJ0dWFsID0gdHJ1ZSxcbiAgLy8gTWFuaWZlc3QgcmVzb2x1dGlvblxuICBtYW5pZmVzdCxcbiAgbm9ybWFsaXplcixcbiAgbW9kdWxlQmFzZSxcbiAgcHJlc2VydmVNb2R1bGVzUm9vdCxcbiAgcHJvamVjdFJvb3QsXG4gIGJ1aWxkT3V0RGlyLFxuICBidWlsZFNlcnZlckRpcixcbiAgLy8gRGlyZWN0IGltcG9ydCBvcHRpb25zXG4gIGlzQnVpbGRNb2RlID0gZmFsc2UsXG4gIGlzU2VydmVNb2RlID0gZmFsc2UsXG4gIGVmZmVjdGl2ZVByb2plY3RSb290LFxuICBidWlsZCxcbn06IHtcbiAgbW9kdWxlSWQ6IHN0cmluZztcbiAgZXhwb3J0TmFtZT86IHN0cmluZztcbiAgdmVyYm9zZT86IGJvb2xlYW47XG4gIGxvZ2dlcj86IExvZ2dlcjtcbiAgLy8gVmlydHVhbCBtb2R1bGUgaGFuZGxpbmdcbiAgcmVzb2x2ZVZpcnR1YWw/OiBib29sZWFuO1xuICAvLyBNYW5pZmVzdCByZXNvbHV0aW9uXG4gIG1hbmlmZXN0PzogUmVjb3JkPHN0cmluZywgeyBmaWxlOiBzdHJpbmcgfSB8IHVuZGVmaW5lZD47XG4gIG5vcm1hbGl6ZXI/OiBJbnB1dE5vcm1hbGl6ZXI7XG4gIG1vZHVsZUJhc2U/OiBzdHJpbmc7XG4gIHByZXNlcnZlTW9kdWxlc1Jvb3Q/OiBib29sZWFuO1xuICBwcm9qZWN0Um9vdD86IHN0cmluZztcbiAgYnVpbGRPdXREaXI/OiBzdHJpbmc7XG4gIGJ1aWxkU2VydmVyRGlyPzogc3RyaW5nO1xuICAvLyBEaXJlY3QgaW1wb3J0IG9wdGlvbnNcbiAgaXNCdWlsZE1vZGU/OiBib29sZWFuO1xuICBpc1NlcnZlTW9kZT86IGJvb2xlYW47XG4gIGVmZmVjdGl2ZVByb2plY3RSb290Pzogc3RyaW5nO1xuICBidWlsZD86IHtcbiAgICBzZXJ2ZXI/OiBzdHJpbmc7XG4gICAgY2xpZW50Pzogc3RyaW5nO1xuICAgIHN0YXRpYz86IHN0cmluZztcbiAgICBvdXREaXI/OiBzdHJpbmc7XG4gIH07XG59KTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gIC8vIFN0ZXAgMTogSGFuZGxlIHZpcnR1YWwgbW9kdWxlcyBhbmQgbm9kZV9tb2R1bGVzIGZpcnN0IChpZiBlbmFibGVkKVxuICBpZiAocmVzb2x2ZVZpcnR1YWwpIHtcbiAgICBjb25zdCB2aXJ0dWFsT3JOb2RlTW9kdWxlID0gYXdhaXQgcmVzb2x2ZVZpcnR1YWxBbmROb2RlTW9kdWxlcyhcbiAgICAgIG1vZHVsZUlkLFxuICAgICAgZXhwb3J0TmFtZSxcbiAgICAgIHZlcmJvc2UsXG4gICAgICBsb2dnZXJcbiAgICApO1xuICAgIGlmICh2aXJ0dWFsT3JOb2RlTW9kdWxlICE9PSBudWxsKSB7XG4gICAgICAvLyByZXNvbHZlVmlydHVhbEFuZE5vZGVNb2R1bGVzIHJldHVybnMgYSBtb2R1bGUgb2JqZWN0IGRpcmVjdGx5IChub3QgYSBQcm9taXNlKVxuICAgICAgLy8gSWYgaXQncyBhbHJlYWR5IGEgbW9kdWxlIG9iamVjdCwgcmV0dXJuIGl0IGRpcmVjdGx5XG4gICAgICByZXR1cm4gdmlydHVhbE9yTm9kZU1vZHVsZTtcbiAgICB9XG4gIH1cblxuICAvLyBTdGVwIDI6IFRyeSBtYW5pZmVzdC1iYXNlZCByZXNvbHV0aW9uIChidWlsZCBtb2RlKVxuICBsZXQgcmVzb2x2ZWRNb2R1bGVJRCA9IG1vZHVsZUlkO1xuICBpZiAoaXNCdWlsZE1vZGUgJiYgbWFuaWZlc3QgJiYgbm9ybWFsaXplciAmJiBtb2R1bGVCYXNlICYmIHByb2plY3RSb290ICYmIGJ1aWxkT3V0RGlyICYmIGJ1aWxkU2VydmVyRGlyKSB7XG4gICAgY29uc3QgbWFuaWZlc3RSZXNvbHV0aW9uID0gcmVzb2x2ZU1vZHVsZUZyb21NYW5pZmVzdCh7XG4gICAgICBtb2R1bGVJZCxcbiAgICAgIG5vcm1hbGl6ZXIsXG4gICAgICBtYW5pZmVzdCxcbiAgICAgIG1vZHVsZUJhc2UsXG4gICAgICBwcmVzZXJ2ZU1vZHVsZXNSb290LFxuICAgICAgcHJvamVjdFJvb3QsXG4gICAgICBidWlsZE91dERpcixcbiAgICAgIGJ1aWxkU2VydmVyRGlyLFxuICAgICAgdmVyYm9zZSxcbiAgICAgIGxvZ2dlcixcbiAgICB9KTtcblxuICAgIGlmIChtYW5pZmVzdFJlc29sdXRpb24ubWFuaWZlc3RFbnRyeSAmJiBtYW5pZmVzdFJlc29sdXRpb24ucmVzb2x2ZWRQYXRoKSB7XG4gICAgICAvLyBGb3VuZCBpbiBtYW5pZmVzdCAtIHVzZSB0aGUgcmVzb2x2ZWQgcGF0aCAoaXQncyBhbHJlYWR5IGEgZnVsbCBhYnNvbHV0ZSBwYXRoKVxuICAgICAgcmVzb2x2ZWRNb2R1bGVJRCA9IG1hbmlmZXN0UmVzb2x1dGlvbi5yZXNvbHZlZFBhdGg7XG4gICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICBsb2dnZXI/LmluZm8oXG4gICAgICAgICAgYFtjcmVhdGVTaGFyZWRMb2FkZXJdIEJ1aWxkIG1vZGU6IHJlc29sdmVkIHZpYSBtYW5pZmVzdCB0bzogJHtyZXNvbHZlZE1vZHVsZUlEfWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gTm90IGluIG1hbmlmZXN0IC0gdXNlIHRoZSBidWlsdE1vZHVsZUlkIGZyb20gcmVzb2x1dGlvblxuICAgICAgcmVzb2x2ZWRNb2R1bGVJRCA9IG1hbmlmZXN0UmVzb2x1dGlvbi5idWlsdE1vZHVsZUlkO1xuICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgbG9nZ2VyPy5pbmZvKFxuICAgICAgICAgIGBbY3JlYXRlU2hhcmVkTG9hZGVyXSBCdWlsZCBtb2RlOiBub3QgaW4gbWFuaWZlc3QsIHVzaW5nIGJ1aWx0TW9kdWxlSWQ6ICR7cmVzb2x2ZWRNb2R1bGVJRH1gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIENoZWNrIGlmIHdlIG5lZWQgdG8gcHJlZml4IHdpdGggYnVpbGQgZGlyZWN0b3J5XG4gICAgICAvLyBBIHNvdXJjZSBwYXRoIHN0YXJ0cyB3aXRoIG1vZHVsZUJhc2UgKGUuZy4sIFwic3JjL1wiKSwgYSBidWlsdCBwYXRoIGRvZXNuJ3RcbiAgICAgIC8vIEFsc28gY2hlY2sgaWYgaXQncyBhbHJlYWR5IGFuIGFic29sdXRlIHBhdGggb3Igc3RhcnRzIHdpdGggZmlsZTovL1xuICAgICAgY29uc3QgaXNTb3VyY2VQYXRoID0gbW9kdWxlSWQuc3RhcnRzV2l0aChtb2R1bGVCYXNlICsgXCIvXCIpIHx8IFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtb2R1bGVJZC5zdGFydHNXaXRoKFwiLi9cIiArIG1vZHVsZUJhc2UgKyBcIi9cIikgfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgKGlzQWJzb2x1dGUobW9kdWxlSWQpICYmIG1vZHVsZUlkLmluY2x1ZGVzKG1vZHVsZUJhc2UpKTtcbiAgICAgIFxuICAgICAgLy8gSWYgaXQncyBub3QgYSBzb3VyY2UgcGF0aCBhbmQgbm90IGFscmVhZHkgYWJzb2x1dGUsIHByZWZpeCB3aXRoIHNlcnZlciBidWlsZCBkaXJlY3RvcnlcbiAgICAgIGlmICghaXNTb3VyY2VQYXRoICYmICFpc0Fic29sdXRlKHJlc29sdmVkTW9kdWxlSUQpICYmIGVmZmVjdGl2ZVByb2plY3RSb290ICYmIGJ1aWxkKSB7XG4gICAgICAgIGNvbnN0IHNlcnZlckJ1aWxkUGF0aCA9IGpvaW4oXG4gICAgICAgICAgZWZmZWN0aXZlUHJvamVjdFJvb3QsXG4gICAgICAgICAgYnVpbGQub3V0RGlyIHx8IFwiZGlzdFwiLFxuICAgICAgICAgIGJ1aWxkLnNlcnZlciB8fCBcInNlcnZlclwiXG4gICAgICAgICk7XG4gICAgICAgIHJlc29sdmVkTW9kdWxlSUQgPSBqb2luKHNlcnZlckJ1aWxkUGF0aCwgcmVzb2x2ZWRNb2R1bGVJRCk7XG4gICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgbG9nZ2VyPy5pbmZvKFxuICAgICAgICAgICAgYFtjcmVhdGVTaGFyZWRMb2FkZXJdIEJ1aWxkIG1vZGU6IHByZWZpeGluZyB3aXRoICR7c2VydmVyQnVpbGRQYXRofTogJHtyZXNvbHZlZE1vZHVsZUlEfWBcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9IGVsc2UgaWYgKGlzU2VydmVNb2RlKSB7XG4gICAgLy8gRGV2IG1vZGU6IGxvYWQgZGlyZWN0bHkgZnJvbSBzb3VyY2UgZmlsZXMsIG5vIGJ1aWxkIHBhdGggcHJlZml4aW5nXG4gICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgIGxvZ2dlcj8uaW5mbyhcbiAgICAgICAgYFtjcmVhdGVTaGFyZWRMb2FkZXJdIERldiBtb2RlOiBsb2FkaW5nIGRpcmVjdGx5IGZyb20gc291cmNlYFxuICAgICAgKTtcbiAgICB9XG4gIH0gZWxzZSBpZiAoaXNCdWlsZE1vZGUgJiYgZWZmZWN0aXZlUHJvamVjdFJvb3QgJiYgYnVpbGQpIHtcbiAgICAvLyBCdWlsZCBtb2RlIGZhbGxiYWNrOiBwcmVmaXggd2l0aCBzZXJ2ZXIgYnVpbGQgZGlyZWN0b3J5IGV2ZW4gd2l0aG91dCBtYW5pZmVzdC9ub3JtYWxpemVyXG4gICAgaWYgKCFpc0Fic29sdXRlKHJlc29sdmVkTW9kdWxlSUQpKSB7XG4gICAgICBjb25zdCBzZXJ2ZXJCdWlsZFBhdGggPSBqb2luKFxuICAgICAgICBlZmZlY3RpdmVQcm9qZWN0Um9vdCxcbiAgICAgICAgYnVpbGQub3V0RGlyIHx8IFwiZGlzdFwiLFxuICAgICAgICBidWlsZC5zZXJ2ZXIgfHwgXCJzZXJ2ZXJcIlxuICAgICAgKTtcbiAgICAgIHJlc29sdmVkTW9kdWxlSUQgPSBqb2luKHNlcnZlckJ1aWxkUGF0aCwgcmVzb2x2ZWRNb2R1bGVJRCk7XG4gICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICBsb2dnZXI/LmluZm8oXG4gICAgICAgICAgYFtjcmVhdGVTaGFyZWRMb2FkZXJdIEJ1aWxkIG1vZGUgZmFsbGJhY2s6IHByZWZpeGluZyB3aXRoICR7c2VydmVyQnVpbGRQYXRofTogJHtyZXNvbHZlZE1vZHVsZUlEfWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBTdGVwIDM6IENvbnN0cnVjdCB0aGUgZnVsbCBwYXRoIGFuZCBpbXBvcnRcbiAgY29uc3QgZnVsbFBhdGggPSBpc0Fic29sdXRlKHJlc29sdmVkTW9kdWxlSUQpIFxuICAgID8gcmVzb2x2ZWRNb2R1bGVJRCBcbiAgICA6IGVmZmVjdGl2ZVByb2plY3RSb290IFxuICAgICAgPyBqb2luKGVmZmVjdGl2ZVByb2plY3RSb290LCByZXNvbHZlZE1vZHVsZUlEKVxuICAgICAgOiByZXNvbHZlZE1vZHVsZUlEO1xuXG4gIGlmICh2ZXJib3NlKSB7XG4gICAgbG9nZ2VyPy5pbmZvKGBbY3JlYXRlU2hhcmVkTG9hZGVyXSBJbXBvcnRpbmcgZnJvbTogJHtmdWxsUGF0aH1gKTtcbiAgfVxuXG4gIC8vIFN0ZXAgNDogSW1wb3J0IHRoZSBtb2R1bGVcbiAgY29uc3QgZmlsZVVybCA9IGlzQWJzb2x1dGUoZnVsbFBhdGgpID8gcGF0aFRvRmlsZVVSTChmdWxsUGF0aCkuaHJlZiA6IGZ1bGxQYXRoO1xuICBjb25zdCByZXN1bHQgPSBhd2FpdCBpbXBvcnQoZmlsZVVybCk7XG5cbiAgLy8gU3RlcCA1OiBWYWxpZGF0ZSBleHBvcnRzXG4gIGlmIChyZXN1bHQgPT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTW9kdWxlIFwiJHttb2R1bGVJZH1cIiBkb2VzIG5vdCBoYXZlIGFueSBleHBvcnRzYCk7XG4gIH1cblxuICBpZiAoIU9iamVjdC5rZXlzKHJlc3VsdCkubGVuZ3RoICYmIGV4cG9ydE5hbWU/Lmxlbmd0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBNb2R1bGUgXCIke21vZHVsZUlkfVwiIGlzIGEgbW9kdWxlLCBidXQgZG9lcyBub3QgaGF2ZSBhbnkgZXhwb3J0cyBzbyBpdCBjYW4ndCBmaW5kICR7ZXhwb3J0TmFtZX1gXG4gICAgKTtcbiAgfVxuXG4gIGlmIChleHBvcnROYW1lICYmICEoZXhwb3J0TmFtZSBpbiByZXN1bHQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYE1vZHVsZSBcIiR7bW9kdWxlSWR9XCIgZXhpc3RzLCBidXQgZG9lcyBub3QgZXhwb3J0IFwiJHtleHBvcnROYW1lfVwiYFxuICAgICk7XG4gIH1cblxuICBpZiAodmVyYm9zZSkge1xuICAgIGxvZ2dlcj8uaW5mbyhcbiAgICAgIGBbY3JlYXRlU2hhcmVkTG9hZGVyXSBNb2R1bGUgbG9hZGVkIHN1Y2Nlc3NmdWxseSwgZXhwb3J0czogJHtPYmplY3Qua2V5cyhcbiAgICAgICAgcmVzdWx0XG4gICAgICApLmpvaW4oXCIsIFwiKX1gXG4gICAgKTtcbiAgfVxuXG4gIC8vIEltcG9ydCBhbHdheXMgcmV0dXJucyBhIG1vZHVsZSBvYmplY3QgKG5vdCBhIFByb21pc2UpLCBzbyByZXR1cm4gaXQgZGlyZWN0bHlcbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUF1QkEsZUFBc0Isa0JBQW1CLENBQUE7QUFBQSxFQUN2QyxRQUFBO0FBQUEsRUFDQSxVQUFBO0FBQUEsRUFDQSxPQUFVLEdBQUEsS0FBQTtBQUFBLEVBQ1YsTUFBQTtBQUFBO0FBQUEsRUFFQSxjQUFpQixHQUFBLElBQUE7QUFBQTtB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
|
|
95
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlU2hhcmVkTG9hZGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9wbHVnaW4vaGVscGVycy9jcmVhdGVTaGFyZWRMb2FkZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgam9pbiwgaXNBYnNvbHV0ZSB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IHBhdGhUb0ZpbGVVUkwgfSBmcm9tIFwibm9kZTp1cmxcIjtcbmltcG9ydCB0eXBlIHsgTG9nZ2VyIH0gZnJvbSBcInZpdGVcIjtcbmltcG9ydCB0eXBlIHsgSW5wdXROb3JtYWxpemVyIH0gZnJvbSBcIi4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyByZXNvbHZlVmlydHVhbEFuZE5vZGVNb2R1bGVzIH0gZnJvbSBcIi4vcmVzb2x2ZVZpcnR1YWxBbmROb2RlTW9kdWxlcy5qc1wiO1xuaW1wb3J0IHsgcmVzb2x2ZU1vZHVsZUZyb21NYW5pZmVzdCB9IGZyb20gXCIuL3Jlc29sdmVNb2R1bGVGcm9tTWFuaWZlc3QuanNcIjtcblxuLyoqXG4gKiBTaGFyZWQgbG9hZGVyIHV0aWxpdHkgdGhhdCBib3RoIFJTQyB3b3JrZXIgbG9hZGVyIGFuZCBidWlsZCBsb2FkZXIgY2FuIHVzZS5cbiAqIFxuICogVGhpcyBoYW5kbGVzIHRoZSBjb21tb24gcGF0dGVybjpcbiAqIDEuIFBhcnNlIGlkIHRvIGdldCBtb2R1bGVJZCBhbmQgZXhwb3J0TmFtZVxuICogMi4gSGFuZGxlIHZpcnR1YWwgbW9kdWxlcyBhbmQgbm9kZV9tb2R1bGVzICh2aWEgcmVzb2x2ZVZpcnR1YWxBbmROb2RlTW9kdWxlcylcbiAqIDMuIFRyeSBtYW5pZmVzdC1iYXNlZCByZXNvbHV0aW9uIChidWlsZCBtb2RlKVxuICogNC4gSW1wb3J0IHRoZSBtb2R1bGVcbiAqIDUuIFZhbGlkYXRlIGV4cG9ydHNcbiAqIFxuICogSWYgdGhlIHJlc3VsdCBpcyBhbHJlYWR5IGEgbW9kdWxlIG9iamVjdCAobm90IGEgUHJvbWlzZSksIGl0J3MgcmV0dXJuZWQgZGlyZWN0bHkuXG4gKiBUaGlzIGFsbG93cyBsb2FkZXJzIHRvIHJldXNlIGFscmVhZHktbG9hZGVkIG1vZHVsZXMuXG4gKiBcbiAqIEBwYXJhbSBvcHRpb25zIC0gTG9hZGVyIGNvbmZpZ3VyYXRpb24gb3B0aW9uc1xuICogQHJldHVybnMgVGhlIHJlc29sdmVkIG1vZHVsZSAoYWxyZWFkeSBhIG1vZHVsZSBvYmplY3QsIG5vdCBhIFByb21pc2UpXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVTaGFyZWRMb2FkZXIoe1xuICBtb2R1bGVJZCxcbiAgZXhwb3J0TmFtZSxcbiAgdmVyYm9zZSA9IGZhbHNlLFxuICBsb2dnZXIsXG4gIC8vIFZpcnR1YWwgbW9kdWxlIGhhbmRsaW5nXG4gIHJlc29sdmVWaXJ0dWFsID0gdHJ1ZSxcbiAgLy8gTWFuaWZlc3QgcmVzb2x1dGlvblxuICBtYW5pZmVzdCxcbiAgbm9ybWFsaXplcixcbiAgbW9kdWxlQmFzZSxcbiAgcHJlc2VydmVNb2R1bGVzUm9vdCxcbiAgcHJvamVjdFJvb3QsXG4gIGJ1aWxkT3V0RGlyLFxuICBidWlsZFNlcnZlckRpcixcbiAgLy8gRGlyZWN0IGltcG9ydCBvcHRpb25zXG4gIGlzQnVpbGRNb2RlID0gZmFsc2UsXG4gIGlzU2VydmVNb2RlOiBfaXNTZXJ2ZU1vZGUgPSBmYWxzZSxcbiAgZWZmZWN0aXZlUHJvamVjdFJvb3QsXG4gIGJ1aWxkLFxufToge1xuICBtb2R1bGVJZDogc3RyaW5nO1xuICBleHBvcnROYW1lPzogc3RyaW5nO1xuICB2ZXJib3NlPzogYm9vbGVhbjtcbiAgbG9nZ2VyPzogTG9nZ2VyO1xuICAvLyBWaXJ0dWFsIG1vZHVsZSBoYW5kbGluZ1xuICByZXNvbHZlVmlydHVhbD86IGJvb2xlYW47XG4gIC8vIE1hbmlmZXN0IHJlc29sdXRpb25cbiAgbWFuaWZlc3Q/OiBSZWNvcmQ8c3RyaW5nLCB7IGZpbGU6IHN0cmluZyB9IHwgdW5kZWZpbmVkPjtcbiAgbm9ybWFsaXplcj86IElucHV0Tm9ybWFsaXplcjtcbiAgbW9kdWxlQmFzZT86IHN0cmluZztcbiAgcHJlc2VydmVNb2R1bGVzUm9vdD86IGJvb2xlYW47XG4gIHByb2plY3RSb290Pzogc3RyaW5nO1xuICBidWlsZE91dERpcj86IHN0cmluZztcbiAgYnVpbGRTZXJ2ZXJEaXI/OiBzdHJpbmc7XG4gIC8vIERpcmVjdCBpbXBvcnQgb3B0aW9uc1xuICBpc0J1aWxkTW9kZT86IGJvb2xlYW47XG4gIGlzU2VydmVNb2RlPzogYm9vbGVhbjtcbiAgZWZmZWN0aXZlUHJvamVjdFJvb3Q/OiBzdHJpbmc7XG4gIGJ1aWxkPzoge1xuICAgIHNlcnZlcj86IHN0cmluZztcbiAgICBjbGllbnQ/OiBzdHJpbmc7XG4gICAgc3RhdGljPzogc3RyaW5nO1xuICAgIG91dERpcj86IHN0cmluZztcbiAgfTtcbn0pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIGFueT4+IHtcbiAgLy8gU3RlcCAxOiBIYW5kbGUgdmlydHVhbCBtb2R1bGVzIGFuZCBub2RlX21vZHVsZXMgZmlyc3QgKGlmIGVuYWJsZWQpXG4gIGlmIChyZXNvbHZlVmlydHVhbCkge1xuICAgIGNvbnN0IHZpcnR1YWxPck5vZGVNb2R1bGUgPSBhd2FpdCByZXNvbHZlVmlydHVhbEFuZE5vZGVNb2R1bGVzKFxuICAgICAgbW9kdWxlSWQsXG4gICAgICBleHBvcnROYW1lLFxuICAgICAgdmVyYm9zZSxcbiAgICAgIGxvZ2dlclxuICAgICk7XG4gICAgaWYgKHZpcnR1YWxPck5vZGVNb2R1bGUgIT09IG51bGwpIHtcbiAgICAgIC8vIHJlc29sdmVWaXJ0dWFsQW5kTm9kZU1vZHVsZXMgcmV0dXJucyBhIG1vZHVsZSBvYmplY3QgZGlyZWN0bHkgKG5vdCBhIFByb21pc2UpXG4gICAgICAvLyBJZiBpdCdzIGFscmVhZHkgYSBtb2R1bGUgb2JqZWN0LCByZXR1cm4gaXQgZGlyZWN0bHlcbiAgICAgIHJldHVybiB2aXJ0dWFsT3JOb2RlTW9kdWxlO1xuICAgIH1cbiAgfVxuXG4gIC8vIFN0ZXAgMjogVHJ5IG1hbmlmZXN0LWJhc2VkIHJlc29sdXRpb24gKGJ1aWxkIG1vZGUpXG4gIGxldCByZXNvbHZlZE1vZHVsZUlEID0gbW9kdWxlSWQ7XG4gIGlmIChpc0J1aWxkTW9kZSAmJiBtYW5pZmVzdCAmJiBub3JtYWxpemVyICYmIG1vZHVsZUJhc2UgJiYgcHJvamVjdFJvb3QgJiYgYnVpbGRPdXREaXIgJiYgYnVpbGRTZXJ2ZXJEaXIpIHtcbiAgICBjb25zdCBtYW5pZmVzdFJlc29sdXRpb24gPSByZXNvbHZlTW9kdWxlRnJvbU1hbmlmZXN0KHtcbiAgICAgIG1vZHVsZUlkLFxuICAgICAgbm9ybWFsaXplcixcbiAgICAgIG1hbmlmZXN0LFxuICAgICAgbW9kdWxlQmFzZSxcbiAgICAgIHByZXNlcnZlTW9kdWxlc1Jvb3QsXG4gICAgICBwcm9qZWN0Um9vdCxcbiAgICAgIGJ1aWxkT3V0RGlyLFxuICAgICAgYnVpbGRTZXJ2ZXJEaXIsXG4gICAgICB2ZXJib3NlLFxuICAgICAgbG9nZ2VyLFxuICAgIH0pO1xuXG4gICAgaWYgKG1hbmlmZXN0UmVzb2x1dGlvbi5tYW5pZmVzdEVudHJ5ICYmIG1hbmlmZXN0UmVzb2x1dGlvbi5yZXNvbHZlZFBhdGgpIHtcbiAgICAgIHJlc29sdmVkTW9kdWxlSUQgPSBtYW5pZmVzdFJlc29sdXRpb24ucmVzb2x2ZWRQYXRoO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXNvbHZlZE1vZHVsZUlEID0gbWFuaWZlc3RSZXNvbHV0aW9uLmJ1aWx0TW9kdWxlSWQ7XG4gICAgICBcbiAgICAgIC8vIFByZWZpeCBub24tc291cmNlLCBub24tYWJzb2x1dGUgcGF0aHMgd2l0aCBzZXJ2ZXIgYnVpbGQgZGlyZWN0b3J5XG4gICAgICBjb25zdCBpc1NvdXJjZVBhdGggPSBtb2R1bGVJZC5zdGFydHNXaXRoKG1vZHVsZUJhc2UgKyBcIi9cIikgfHwgXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1vZHVsZUlkLnN0YXJ0c1dpdGgoXCIuL1wiICsgbW9kdWxlQmFzZSArIFwiL1wiKSB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgICAoaXNBYnNvbHV0ZShtb2R1bGVJZCkgJiYgbW9kdWxlSWQuaW5jbHVkZXMobW9kdWxlQmFzZSkpO1xuICAgICAgXG4gICAgICBpZiAoIWlzU291cmNlUGF0aCAmJiAhaXNBYnNvbHV0ZShyZXNvbHZlZE1vZHVsZUlEKSAmJiBlZmZlY3RpdmVQcm9qZWN0Um9vdCAmJiBidWlsZCkge1xuICAgICAgICByZXNvbHZlZE1vZHVsZUlEID0gam9pbihcbiAgICAgICAgICBlZmZlY3RpdmVQcm9qZWN0Um9vdCxcbiAgICAgICAgICBidWlsZC5vdXREaXIgfHwgXCJkaXN0XCIsXG4gICAgICAgICAgYnVpbGQuc2VydmVyIHx8IFwic2VydmVyXCIsXG4gICAgICAgICAgcmVzb2x2ZWRNb2R1bGVJRFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfSBlbHNlIGlmIChpc0J1aWxkTW9kZSAmJiBlZmZlY3RpdmVQcm9qZWN0Um9vdCAmJiBidWlsZCAmJiAhaXNBYnNvbHV0ZShyZXNvbHZlZE1vZHVsZUlEKSkge1xuICAgIC8vIEJ1aWxkIG1vZGUgZmFsbGJhY2sgd2l0aG91dCBtYW5pZmVzdFxuICAgIHJlc29sdmVkTW9kdWxlSUQgPSBqb2luKFxuICAgICAgZWZmZWN0aXZlUHJvamVjdFJvb3QsXG4gICAgICBidWlsZC5vdXREaXIgfHwgXCJkaXN0XCIsXG4gICAgICBidWlsZC5zZXJ2ZXIgfHwgXCJzZXJ2ZXJcIixcbiAgICAgIHJlc29sdmVkTW9kdWxlSURcbiAgICApO1xuICB9XG5cbiAgLy8gU3RlcCAzOiBDb25zdHJ1Y3QgdGhlIGZ1bGwgcGF0aCBhbmQgaW1wb3J0XG4gIGNvbnN0IGZ1bGxQYXRoID0gaXNBYnNvbHV0ZShyZXNvbHZlZE1vZHVsZUlEKSBcbiAgICA/IHJlc29sdmVkTW9kdWxlSUQgXG4gICAgOiBlZmZlY3RpdmVQcm9qZWN0Um9vdCBcbiAgICAgID8gam9pbihlZmZlY3RpdmVQcm9qZWN0Um9vdCwgcmVzb2x2ZWRNb2R1bGVJRClcbiAgICAgIDogcmVzb2x2ZWRNb2R1bGVJRDtcblxuICAvLyBJbXBvcnQgdGhlIG1vZHVsZVxuICBjb25zdCBmaWxlVXJsID0gaXNBYnNvbHV0ZShmdWxsUGF0aCkgPyBwYXRoVG9GaWxlVVJMKGZ1bGxQYXRoKS5ocmVmIDogZnVsbFBhdGg7XG4gIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGltcG9ydChmaWxlVXJsKTtcblxuICAvLyBWYWxpZGF0ZSBleHBvcnRzXG4gIGlmIChyZXN1bHQgPT0gbnVsbCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTW9kdWxlIFwiJHttb2R1bGVJZH1cIiBkb2VzIG5vdCBoYXZlIGFueSBleHBvcnRzYCk7XG4gIH1cbiAgaWYgKCFPYmplY3Qua2V5cyhyZXN1bHQpLmxlbmd0aCAmJiBleHBvcnROYW1lPy5sZW5ndGgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1vZHVsZSBcIiR7bW9kdWxlSWR9XCIgaGFzIG5vIGV4cG9ydHMsIGNhbid0IGZpbmQgJHtleHBvcnROYW1lfWApO1xuICB9XG4gIGlmIChleHBvcnROYW1lICYmICEoZXhwb3J0TmFtZSBpbiByZXN1bHQpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBNb2R1bGUgXCIke21vZHVsZUlkfVwiIGRvZXMgbm90IGV4cG9ydCBcIiR7ZXhwb3J0TmFtZX1cImApO1xuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUF1QkEsZUFBc0Isa0JBQW1CLENBQUE7QUFBQSxFQUN2QyxRQUFBO0FBQUEsRUFDQSxVQUFBO0FBQUEsRUFDQSxPQUFVLEdBQUEsS0FBQTtBQUFBLEVBQ1YsTUFBQTtBQUFBO0FBQUEsRUFFQSxjQUFpQixHQUFBLElBQUE7QUFBQTtBQUFBLEVBRWpCLFFBQUE7QUFBQSxFQUNBLFVBQUE7QUFBQSxFQUNBLFVBQUE7QUFBQSxFQUNBLG1CQUFBO0FBQUEsRUFDQSxXQUFBO0FBQUEsRUFDQSxXQUFBO0FBQUEsRUFDQSxjQUFBO0FBQUE7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
|
|
@@ -24,7 +24,7 @@ function analyzeDirectives(ast, source, optionsOrMatches, _logger) {
|
|
|
24
24
|
let firstDirective = null;
|
|
25
25
|
const verbose = hasOptions && typeof optionsOrMatches === "object" && "verbose" in optionsOrMatches && optionsOrMatches.verbose;
|
|
26
26
|
const logger = hasOptions && typeof optionsOrMatches === "object" && "logger" in optionsOrMatches ? optionsOrMatches.logger ?? _logger ?? createLogger() : _logger ?? createLogger();
|
|
27
|
-
const isViteInjectedCode = source.includes("__vite__createHotContext") || source.includes("import.meta.hot") || source.includes("import.meta.env") || source.includes("/@vite/client");
|
|
27
|
+
const isViteInjectedCode = source.includes("__vite__createHotContext") || source.includes("import.meta.hot") || source.includes("import.meta.env") || source.includes("/@vite/client") || source.includes("__vitePreload") || source.includes("\0vite/");
|
|
28
28
|
for (const node of ast.body) {
|
|
29
29
|
if (verbose) {
|
|
30
30
|
logger.info(
|
|
@@ -245,4 +245,4 @@ beforeNode: ${node.start > 0 ? JSON.stringify(source.slice(0, node.start)).slice
|
|
|
245
245
|
}
|
|
246
246
|
|
|
247
247
|
export { analyzeDirectives };
|
|
248
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZURpcmVjdGl2ZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BsdWdpbi9sb2FkZXIvZGlyZWN0aXZlcy9hbmFseXplRGlyZWN0aXZlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaW5kRGlyZWN0aXZlTWF0Y2hlcyB9IGZyb20gXCIuL2ZpbmREaXJlY3RpdmVNYXRjaGVzLmpzXCI7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uTm9kZSB9IGZyb20gXCIuL3R5cGVHdWFyZHMuanNcIjtcbmltcG9ydCB7IGdldEZ1bmN0aW9uQm9keSB9IGZyb20gXCIuL2dldEZ1bmN0aW9uQm9keS5qc1wiO1xuaW1wb3J0IHsgZ2V0RnVuY3Rpb25OYW1lIH0gZnJvbSBcIi4vZ2V0RnVuY3Rpb25OYW1lLmpzXCI7XG5pbXBvcnQgeyBnZXRFeHBvcnRlZE5hbWUgfSBmcm9tIFwiLi9nZXRFeHBvcnRlZE5hbWUuanNcIjtcbmltcG9ydCB7IHByb2Nlc3NGdW5jdGlvbk5vZGUgfSBmcm9tIFwiLi9wcm9jZXNzRnVuY3Rpb25Ob2RlLmpzXCI7XG5pbXBvcnQge1xuICBpc0RpcmVjdGl2ZUF0U3RhcnQsXG4gIGdldERpcmVjdGl2ZVZhbHVlLFxuICBtYXRjaE92ZXJsYXBzRGlyZWN0aXZlLFxufSBmcm9tIFwiLi91dGlscy5qc1wiO1xuaW1wb3J0IHR5cGUge1xuICBEaXJlY3RpdmVJbmZvLFxuICBEaXJlY3RpdmVNYXRjaCxcbiAgRGlyZWN0aXZlTWF0Y2hlcyxcbn0gZnJvbSBcIi4vdHlwZXMuanNcIjtcbmltcG9ydCB0eXBlIHsgTm9kZSwgUHJvZ3JhbSB9IGZyb20gXCJhY29yblwiO1xuaW1wb3J0IHR5cGUgeyBEaXJlY3RpdmVPcHRpb25zIH0gZnJvbSBcIi4uLy4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyBjcmVhdGVMb2dnZXIsIHR5cGUgTG9nZ2VyIH0gZnJvbSBcInZpdGVcIjtcblxuLyoqXG4gKiBBbmFseXplcyBkaXJlY3RpdmVzIGluIHRoZSBnaXZlbiBzb3VyY2UgYW5kIEFTVCwgcmV0dXJuaW5nIGRpcmVjdGl2ZUluZm8uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhbmFseXplRGlyZWN0aXZlcyhcbiAgYXN0OiBQcm9ncmFtLFxuICBzb3VyY2U6IHN0cmluZyxcbiAgbWF0Y2hlcz86IERpcmVjdGl2ZU1hdGNoZXMsXG4gIGxvZ2dlcj86IExvZ2dlclxuKTogRGlyZWN0aXZlSW5mbztcbmV4cG9ydCBmdW5jdGlvbiBhbmFseXplRGlyZWN0aXZlcyhcbiAgYXN0OiBQcm9ncmFtLFxuICBzb3VyY2U6IHN0cmluZyxcbiAgb3B0aW9ucz86IERpcmVjdGl2ZU9wdGlvbnMsXG4gIGxvZ2dlcj86IExvZ2dlclxuKTogRGlyZWN0aXZlSW5mbztcbmV4cG9ydCBmdW5jdGlvbiBhbmFseXplRGlyZWN0aXZlcyhcbiAgYXN0OiBQcm9ncmFtLFxuICBzb3VyY2U6IHN0cmluZyxcbiAgb3B0aW9uc09yTWF0Y2hlcz86IERpcmVjdGl2ZU1hdGNoZXMgfCBEaXJlY3RpdmVPcHRpb25zLFxuICBfbG9nZ2VyPzogTG9nZ2VyXG4pOiBEaXJlY3RpdmVJbmZvIHtcbiAgY29uc3QgaGFzT3B0aW9ucyA9XG4gICAgb3B0aW9uc09yTWF0Y2hlcyAhPSBudWxsICYmIHR5cGVvZiBvcHRpb25zT3JNYXRjaGVzID09PSBcIm9iamVjdFwiO1xuICBjb25zdCBkaXJlY3RpdmVNYXRjaGVzID1cbiAgICBoYXNPcHRpb25zICYmIFwibWF0Y2hlc1wiIGluIG9wdGlvbnNPck1hdGNoZXNcbiAgICAgID8gb3B0aW9uc09yTWF0Y2hlc1xuICAgICAgOiBmaW5kRGlyZWN0aXZlTWF0Y2hlcyhzb3VyY2UpO1xuXG4gIGNvbnN0IGRpcmVjdGl2ZUluZm86IERpcmVjdGl2ZUluZm8gPSB7XG4gICAgZmlsZUxldmVsOiBudWxsLFxuICAgIGZ1bmN0aW9uTGV2ZWw6IFtdLFxuICAgIHdhcm5pbmdzOiBbXSxcbiAgfTtcblxuICAvLyBGaW5kIGZpbGUtbGV2ZWwgZGlyZWN0aXZlcyBieSBjaGVja2luZyBBU1RcbiAgbGV0IGZvdW5kTm9uRGlyZWN0aXZlID0gZmFsc2U7XG4gIGxldCBmaXJzdERpcmVjdGl2ZTogRGlyZWN0aXZlTWF0Y2ggfCBudWxsID0gbnVsbDtcbiAgY29uc3QgdmVyYm9zZSA9XG4gICAgaGFzT3B0aW9ucyAmJlxuICAgIHR5cGVvZiBvcHRpb25zT3JNYXRjaGVzID09PSBcIm9iamVjdFwiICYmXG4gICAgXCJ2ZXJib3NlXCIgaW4gb3B0aW9uc09yTWF0Y2hlcyAmJlxuICAgIG9wdGlvbnNPck1hdGNoZXMudmVyYm9zZTtcbiAgY29uc3QgbG9nZ2VyID1cbiAgICBoYXNPcHRpb25zICYmXG4gICAgdHlwZW9mIG9wdGlvbnNPck1hdGNoZXMgPT09IFwib2JqZWN0XCIgJiZcbiAgICBcImxvZ2dlclwiIGluIG9wdGlvbnNPck1hdGNoZXNcbiAgICAgID8gb3B0aW9uc09yTWF0Y2hlcy5sb2dnZXIgPz8gX2xvZ2dlciA/PyBjcmVhdGVMb2dnZXIoKVxuICAgICAgOiBfbG9nZ2VyID8/IGNyZWF0ZUxvZ2dlcigpO1xuICAvLyBDaGVjayBpZiB0aGlzIGxvb2tzIGxpa2UgVml0ZS1pbmplY3RlZCBjb2RlXG4gIGNvbnN0IGlzVml0ZUluamVjdGVkQ29kZSA9XG4gICAgc291cmNlLmluY2x1ZGVzKFwiX192aXRlX19jcmVhdGVIb3RDb250ZXh0XCIpIHx8XG4gICAgc291cmNlLmluY2x1ZGVzKFwiaW1wb3J0Lm1ldGEuaG90XCIpIHx8XG4gICAgc291cmNlLmluY2x1ZGVzKFwiaW1wb3J0Lm1ldGEuZW52XCIpIHx8XG4gICAgc291cmNlLmluY2x1ZGVzKFwiL0B2aXRlL2NsaWVudFwiKTtcblxuICBmb3IgKGNvbnN0IG5vZGUgb2YgYXN0LmJvZHkpIHtcbiAgICAvLyBEZWJ1ZyBsb2dnaW5nXG4gICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgIGxvZ2dlci5pbmZvKFxuICAgICAgICBgW2FuYWx5emVEaXJlY3RpdmVzXSBQcm9jZXNzaW5nIG5vZGU6ICR7bm9kZS50eXBlfSBzdGFydDogJHtub2RlLnN0YXJ0fSBlbmQ6ICR7bm9kZS5lbmR9XG5kaXJlY3RpdmU6ICR7XCJkaXJlY3RpdmVcIiBpbiBub2RlID8gbm9kZS5kaXJlY3RpdmUgOiBcIm5vbmVcIn1cbmJlZm9yZU5vZGU6ICR7bm9kZS5zdGFydCEgPiAwID8gSlNPTi5zdHJpbmdpZnkoc291cmNlLnNsaWNlKDAsIG5vZGUuc3RhcnQhKSkuc2xpY2UoMCwgMTAwKSA6IFwibm9uZVwifWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gT25seSBjaGVjayBmb3IgZGlyZWN0aXZlcyBpbiBleHByZXNzaW9uIHN0YXRlbWVudHNcbiAgICBpZiAobm9kZS50eXBlID09PSBcIkV4cHJlc3Npb25TdGF0ZW1lbnRcIikge1xuICAgICAgbGV0IGRpcmVjdGl2ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgICBpZiAoXCJkaXJlY3RpdmVcIiBpbiBub2RlICYmIHR5cGVvZiBub2RlLmRpcmVjdGl2ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBkaXJlY3RpdmUgPSBub2RlLmRpcmVjdGl2ZTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIG5vZGUuZXhwcmVzc2lvbi50eXBlID09PSBcIkxpdGVyYWxcIiAmJlxuICAgICAgICB0eXBlb2Ygbm9kZS5leHByZXNzaW9uLnZhbHVlID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgIChub2RlLmV4cHJlc3Npb24udmFsdWUgPT09IFwidXNlIHNlcnZlclwiIHx8XG4gICAgICAgICAgbm9kZS5leHByZXNzaW9uLnZhbHVlID09PSBcInVzZSBjbGllbnRcIilcbiAgICAgICkge1xuICAgICAgICBkaXJlY3RpdmUgPSBub2RlLmV4cHJlc3Npb24udmFsdWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChkaXJlY3RpdmUpIHtcbiAgICAgICAgY29uc3QgZ2V0RGlyZWN0aXZlVHlwZSA9XG4gICAgICAgICAgb3B0aW9uc09yTWF0Y2hlcyAhPSBudWxsICYmIFwibG9hZGVyXCIgaW4gb3B0aW9uc09yTWF0Y2hlc1xuICAgICAgICAgICAgPyBvcHRpb25zT3JNYXRjaGVzLmxvYWRlcj8uZ2V0RGlyZWN0aXZlVHlwZVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IHR5cGUgPVxuICAgICAgICAgIGdldERpcmVjdGl2ZVR5cGU/LihkaXJlY3RpdmUpID8/XG4gICAgICAgICAgKGRpcmVjdGl2ZSA9PT0gXCJ1c2Ugc2VydmVyXCIgPyBcInNlcnZlclwiIDogXCJjbGllbnRcIik7XG4gICAgICAgIGlmICghZmlyc3REaXJlY3RpdmUpIHtcbiAgICAgICAgICBmaXJzdERpcmVjdGl2ZSA9IHsgdHlwZSwgcmFuZ2U6IFtub2RlLnN0YXJ0ISwgbm9kZS5lbmQhXSB9O1xuICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICBsb2dnZXIuaW5mbyhcbiAgICAgICAgICAgICAgYFthbmFseXplRGlyZWN0aXZlc10gRm91bmQgZmlyc3QgZGlyZWN0aXZlOiAke2RpcmVjdGl2ZX0gYXQgcmFuZ2U6ICR7W1xuICAgICAgICAgICAgICAgIG5vZGUuc3RhcnQhLFxuICAgICAgICAgICAgICAgIG5vZGUuZW5kISxcbiAgICAgICAgICAgICAgXX1gXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkaXJlY3RpdmVJbmZvLndhcm5pbmdzLnB1c2goe1xuICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgXCJDYW5ub3QgaGF2ZSBib3RoICd1c2UgY2xpZW50JyBhbmQgJ3VzZSBzZXJ2ZXInIGRpcmVjdGl2ZXMgaW4gdGhlIHNhbWUgZmlsZVwiLFxuICAgICAgICAgICAgcmFuZ2U6IFswLCAwXSxcbiAgICAgICAgICAgIHR5cGU6IFwic2VydmVyXCIsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoaXMgZXhwcmVzc2lvbiBzdGF0ZW1lbnQgaXMgbm90IGEgZGlyZWN0aXZlLCBzbyBtYXJrIGFzIG5vbi1kaXJlY3RpdmVcbiAgICAgICAgLy8gaWYgd2UgaGF2ZW4ndCBmb3VuZCB0aGUgZmlyc3QgZGlyZWN0aXZlIHlldFxuICAgICAgICBpZiAoIWZpcnN0RGlyZWN0aXZlKSB7XG4gICAgICAgICAgZm91bmROb25EaXJlY3RpdmUgPSB0cnVlO1xuICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICBsb2dnZXIuaW5mbyhcbiAgICAgICAgICAgICAgYFthbmFseXplRGlyZWN0aXZlc10gRm91bmQgbm9uLWRpcmVjdGl2ZSBleHByZXNzaW9uIGJlZm9yZSBmaXJzdCBkaXJlY3RpdmUsIHNldHRpbmcgZm91bmROb25EaXJlY3RpdmU9dHJ1ZWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE9ubHkgbWFyayBhY3R1YWwgY29kZSAobm90IGltcG9ydHMvZXhwb3J0cykgYXMgbm9uLWRpcmVjdGl2ZVxuICAgICAgLy8gaWYgd2UgaGF2ZW4ndCBmb3VuZCB0aGUgZmlyc3QgZGlyZWN0aXZlIHlldFxuICAgICAgaWYgKCFmaXJzdERpcmVjdGl2ZSkge1xuICAgICAgICBmb3VuZE5vbkRpcmVjdGl2ZSA9IHRydWU7XG4gICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgbG9nZ2VyLmluZm8oXG4gICAgICAgICAgICBgW2FuYWx5emVEaXJlY3RpdmVzXSBGb3VuZCBub24tZGlyZWN0aXZlIG5vZGUgYmVmb3JlIGZpcnN0IGRpcmVjdGl2ZTogJHtub2RlLnR5cGV9LCBzZXR0aW5nIGZvdW5kTm9uRGlyZWN0aXZlPXRydWVgXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHRoaXMgbm9kZSBpcyBhZnRlciBhbnkgY29tbWVudHMgb3Igbm9uLXdoaXRlc3BhY2UgY29udGVudFxuICAgIC8vIE9ubHkgbWF0dGVycyBpZiB3ZSBoYXZlbid0IGZvdW5kIHRoZSBmaXJzdCBkaXJlY3RpdmUgeWV0XG4gICAgaWYgKCFmaXJzdERpcmVjdGl2ZSAmJiBub2RlLnN0YXJ0ISA+IDApIHtcbiAgICAgIGNvbnN0IGJlZm9yZU5vZGUgPSBzb3VyY2Uuc2xpY2UoMCwgbm9kZS5zdGFydCEpLnRyaW0oKTtcbiAgICAgIGlmIChiZWZvcmVOb2RlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZm91bmROb25EaXJlY3RpdmUgPSB0cnVlO1xuICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgIGxvZ2dlci5pbmZvKFxuICAgICAgICAgICAgYFthbmFseXplRGlyZWN0aXZlc10gRm91bmQgY29udGVudCBiZWZvcmUgZmlyc3QgZGlyZWN0aXZlOiAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgICBiZWZvcmVOb2RlLnNsaWNlKDAsIDEwMClcbiAgICAgICAgICAgICl9LCBzZXR0aW5nIGZvdW5kTm9uRGlyZWN0aXZlPXRydWVgXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNldCB0aGUgZmlyc3QgZGlyZWN0aXZlIGFzIGZpbGUtbGV2ZWwgaWYgZm91bmRcbiAgaWYgKGZpcnN0RGlyZWN0aXZlKSB7XG4gICAgZGlyZWN0aXZlSW5mby5maWxlTGV2ZWwgPSBmaXJzdERpcmVjdGl2ZTtcblxuICAgIC8vIENoZWNrIGlmIHRoZXJlIHdhcyBjb250ZW50IChpbmNsdWRpbmcgY29tbWVudHMpIGJlZm9yZSB0aGUgZGlyZWN0aXZlXG4gICAgaWYgKCFmb3VuZE5vbkRpcmVjdGl2ZSAmJiBmaXJzdERpcmVjdGl2ZS5yYW5nZVswXSA+IDApIHtcbiAgICAgIGNvbnN0IGJlZm9yZURpcmVjdGl2ZSA9IHNvdXJjZS5zbGljZSgwLCBmaXJzdERpcmVjdGl2ZS5yYW5nZVswXSkudHJpbSgpO1xuICAgICAgaWYgKGJlZm9yZURpcmVjdGl2ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvdW5kTm9uRGlyZWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgICBsb2dnZXIuaW5mbyhcbiAgICAgICAgICAgIGBbYW5hbHl6ZURpcmVjdGl2ZXNdIEZvdW5kIGNvbnRlbnQgYmVmb3JlIGRpcmVjdGl2ZTogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgYmVmb3JlRGlyZWN0aXZlXG4gICAgICAgICAgICApfSwgc2V0dGluZyBmb3VuZE5vbkRpcmVjdGl2ZT10cnVlIGZvciBkaXJlY3RpdmVgXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE9ubHkgd2FybiBhYm91dCBkaXJlY3RpdmUgcGxhY2VtZW50IGlmIGl0J3Mgbm90IFZpdGUtaW5qZWN0ZWQgY29kZVxuICAgIGlmIChmb3VuZE5vbkRpcmVjdGl2ZSAmJiAhaXNWaXRlSW5qZWN0ZWRDb2RlKSB7XG4gICAgICBkaXJlY3RpdmVJbmZvLndhcm5pbmdzLnB1c2goe1xuICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgIFwiRmlsZS1sZXZlbCBkaXJlY3RpdmVzIG11c3QgYmUgYXQgdGhlIHRvcCBvZiB0aGUgZmlsZSwgYmVmb3JlIGFueSBvdGhlciBjb2RlXCIsXG4gICAgICAgIHJhbmdlOiBbZmlyc3REaXJlY3RpdmUucmFuZ2VbMF0sIGZpcnN0RGlyZWN0aXZlLnJhbmdlWzFdXSxcbiAgICAgICAgdHlwZTogZmlyc3REaXJlY3RpdmUudHlwZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIFByb2Nlc3MgZnVuY3Rpb24tbGV2ZWwgZGlyZWN0aXZlc1xuICBjb25zdCBmdW5jdGlvbkxldmVsTWF0Y2hlcyA9IGRpcmVjdGl2ZU1hdGNoZXMubWF0Y2hlcy5maWx0ZXIoXG4gICAgKG1hdGNoOiBEaXJlY3RpdmVNYXRjaCkgPT4ge1xuICAgICAgLy8gU2tpcCBpZiB0aGlzIG1hdGNoIGlzIGFscmVhZHkgdXNlZCBhcyBhIGZpbGUtbGV2ZWwgZGlyZWN0aXZlXG4gICAgICBpZiAoXG4gICAgICAgIGRpcmVjdGl2ZUluZm8uZmlsZUxldmVsICYmXG4gICAgICAgIG1hdGNoLnJhbmdlWzBdID09PSBkaXJlY3RpdmVJbmZvLmZpbGVMZXZlbC5yYW5nZVswXSAmJlxuICAgICAgICBtYXRjaC5yYW5nZVsxXSA9PT0gZGlyZWN0aXZlSW5mby5maWxlTGV2ZWwucmFuZ2VbMV1cbiAgICAgICkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICk7XG5cbiAgY29uc3QgcHJvY2Vzc2VkRnVuY3Rpb25zID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgLy8gRmlyc3QgcGFzczogY29sbGVjdCBhbGwgZnVuY3Rpb24gbm9kZXMgd2l0aCB0aGVpciBkaXJlY3RpdmVzXG4gIGNvbnN0IGZ1bmN0aW9uTm9kZXM6IEFycmF5PHtcbiAgICBub2RlOiBOb2RlO1xuICAgIG1hdGNoOiBEaXJlY3RpdmVNYXRjaDtcbiAgICBjb250ZXh0OiBzdHJpbmc7XG4gIH0+ID0gW107XG5cbiAgLy8gVHJhY2sgY29udGV4dCBkdXJpbmcgdHJhdmVyc2FsXG4gIGZ1bmN0aW9uIHRyYXZlcnNlV2l0aENvbnRleHQoXG4gICAgbm9kZTogTm9kZSxcbiAgICBjb250ZXh0OiB7IGluRnVuY3Rpb246IGJvb2xlYW47IGluQ2xhc3M6IGJvb2xlYW4gfVxuICApIHtcbiAgICBpZiAoaXNGdW5jdGlvbk5vZGUobm9kZSkpIHtcbiAgICAgIGNvbnN0IGJvZHkgPSBnZXRGdW5jdGlvbkJvZHkobm9kZSk7XG4gICAgICBpZiAoYm9keSkge1xuICAgICAgICAvLyBDaGVjayBpZiBkaXJlY3RpdmUgaXMgYXQgdGhlIHN0YXJ0IG9mIHRoZSBmdW5jdGlvbiBib2R5XG4gICAgICAgIGZvciAoY29uc3QgbWF0Y2ggb2YgZnVuY3Rpb25MZXZlbE1hdGNoZXMpIHtcbiAgICAgICAgICBjb25zdCBkaXJlY3RpdmVWYWx1ZSA9IGdldERpcmVjdGl2ZVZhbHVlKG1hdGNoLnR5cGUpO1xuXG4gICAgICAgICAgaWYgKGlzRGlyZWN0aXZlQXRTdGFydChub2RlLCBkaXJlY3RpdmVWYWx1ZSkpIHtcbiAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBtYXRjaCByYW5nZSBjb3JyZXNwb25kcyB0byB0aGlzIHNwZWNpZmljIGRpcmVjdGl2ZSBwb3NpdGlvblxuICAgICAgICAgICAgY29uc3QgZGlyZWN0aXZlTm9kZSA9IGJvZHkuYm9keVswXTtcbiAgICAgICAgICAgIGNvbnN0IGRpcmVjdGl2ZVN0YXJ0ID0gZGlyZWN0aXZlTm9kZS5zdGFydCE7XG4gICAgICAgICAgICBjb25zdCBkaXJlY3RpdmVFbmQgPSBkaXJlY3RpdmVOb2RlLmVuZCE7XG5cbiAgICAgICAgICAgIC8vIE1hdGNoIGJhc2VkIG9uIHBvc2l0aW9uIC0gdGhlIG1hdGNoIHNob3VsZCBvdmVybGFwIHdpdGggdGhlIGRpcmVjdGl2ZSBub2RlXG4gICAgICAgICAgICBjb25zdCBtYXRjaE92ZXJsYXBzID0gbWF0Y2hPdmVybGFwc0RpcmVjdGl2ZShcbiAgICAgICAgICAgICAgbWF0Y2gucmFuZ2UsXG4gICAgICAgICAgICAgIGRpcmVjdGl2ZVN0YXJ0LFxuICAgICAgICAgICAgICBkaXJlY3RpdmVFbmRcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChtYXRjaE92ZXJsYXBzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IGdldEZ1bmN0aW9uTmFtZShub2RlKSB8fCBcImFub255bW91c1wiO1xuXG4gICAgICAgICAgICAgIC8vIENoZWNrIGZvciBpbnZhbGlkIGNvbnRleHRzIGJhc2VkIG9uIHRyYXZlcnNhbCBjb250ZXh0XG4gICAgICAgICAgICAgIGlmIChjb250ZXh0LmluRnVuY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuYW1lRGVzYyA9XG4gICAgICAgICAgICAgICAgICBmdW5jdGlvbk5hbWUgPT09IFwiYW5vbnltb3VzXCIgPyBcIlwiIDogYCAnJHtmdW5jdGlvbk5hbWV9J2A7XG4gICAgICAgICAgICAgICAgZGlyZWN0aXZlSW5mby53YXJuaW5ncy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGBGdW5jdGlvbiR7bmFtZURlc2N9IHdpdGggJyR7ZGlyZWN0aXZlVmFsdWV9JyBkaXJlY3RpdmUgY2Fubm90IGJlIG5lc3RlZCBpbnNpZGUgYW5vdGhlciBmdW5jdGlvbi4gRGlyZWN0aXZlcyBhcmUgb25seSBhbGxvd2VkIGluIHRvcC1sZXZlbCBmdW5jdGlvbnMuYCxcbiAgICAgICAgICAgICAgICAgIHJhbmdlOiBtYXRjaC5yYW5nZSxcbiAgICAgICAgICAgICAgICAgIHR5cGU6IG1hdGNoLnR5cGUsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBTa2lwIHRoaXMgZnVuY3Rpb24gZW50aXJlbHlcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChjb250ZXh0LmluQ2xhc3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuYW1lRGVzYyA9XG4gICAgICAgICAgICAgICAgICBmdW5jdGlvbk5hbWUgPT09IFwiYW5vbnltb3VzXCIgPyBcIlwiIDogYCAnJHtmdW5jdGlvbk5hbWV9J2A7XG4gICAgICAgICAgICAgICAgZGlyZWN0aXZlSW5mby53YXJuaW5ncy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGBDbGFzcyBtZXRob2Qke25hbWVEZXNjfSB3aXRoICcke2RpcmVjdGl2ZVZhbHVlfScgZGlyZWN0aXZlIGlzIG5vdCBzdXBwb3J0ZWQuIERpcmVjdGl2ZXMgYXJlIG9ubHkgYWxsb3dlZCBpbiB0b3AtbGV2ZWwgZnVuY3Rpb25zLmAsXG4gICAgICAgICAgICAgICAgICByYW5nZTogbWF0Y2gucmFuZ2UsXG4gICAgICAgICAgICAgICAgICB0eXBlOiBtYXRjaC50eXBlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjsgLy8gU2tpcCB0aGlzIGZ1bmN0aW9uIGVudGlyZWx5XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBPbmx5IGFsbG93IHNlcnZlciBkaXJlY3RpdmVzIGluIGZ1bmN0aW9uLWxldmVsIGNvbnRleHRzXG4gICAgICAgICAgICAgIGlmIChtYXRjaC50eXBlID09PSBcInNlcnZlclwiKSB7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb25Ob2Rlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgICBtYXRjaCxcbiAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IGNvbnRleHQuaW5GdW5jdGlvblxuICAgICAgICAgICAgICAgICAgICA/IFwibmVzdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgOiBjb250ZXh0LmluQ2xhc3NcbiAgICAgICAgICAgICAgICAgICAgPyBcImNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgOiBcInRvcC1sZXZlbFwiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIEdlbmVyYXRlIHdhcm5pbmcgZm9yIGNsaWVudCBkaXJlY3RpdmVzIGluIGZ1bmN0aW9uc1xuICAgICAgICAgICAgICAgIGRpcmVjdGl2ZUluZm8ud2FybmluZ3MucHVzaCh7XG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIkZ1bmN0aW9uLWxldmVsICd1c2UgY2xpZW50JyBpc24ndCBhbGxvd2VkXCIsXG4gICAgICAgICAgICAgICAgICByYW5nZTogbWF0Y2gucmFuZ2UsXG4gICAgICAgICAgICAgICAgICB0eXBlOiBcImNsaWVudFwiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBDb250aW51ZSB0cmF2ZXJzYWwgd2l0aCB1cGRhdGVkIGNvbnRleHQgKG5vdyBpbnNpZGUgYSBmdW5jdGlvbilcbiAgICAgIHRyYXZlcnNlQ2hpbGRyZW4obm9kZSwgeyBpbkZ1bmN0aW9uOiB0cnVlLCBpbkNsYXNzOiBjb250ZXh0LmluQ2xhc3MgfSk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIG5vZGUudHlwZSA9PT0gXCJDbGFzc0RlY2xhcmF0aW9uXCIgfHxcbiAgICAgIG5vZGUudHlwZSA9PT0gXCJDbGFzc0V4cHJlc3Npb25cIlxuICAgICkge1xuICAgICAgLy8gQ29udGludWUgdHJhdmVyc2FsIHdpdGggdXBkYXRlZCBjb250ZXh0IChub3cgaW5zaWRlIGEgY2xhc3MpXG4gICAgICB0cmF2ZXJzZUNoaWxkcmVuKG5vZGUsIHsgaW5GdW5jdGlvbjogY29udGV4dC5pbkZ1bmN0aW9uLCBpbkNsYXNzOiB0cnVlIH0pO1xuICAgIH0gZWxzZSBpZiAobm9kZS50eXBlID09PSBcIk1ldGhvZERlZmluaXRpb25cIikge1xuICAgICAgLy8gTWV0aG9kIGRlZmluaXRpb25zIGFyZSBpbnNpZGUgY2xhc3Nlc1xuICAgICAgdHJhdmVyc2VDaGlsZHJlbihub2RlLCB7IGluRnVuY3Rpb246IGNvbnRleHQuaW5GdW5jdGlvbiwgaW5DbGFzczogdHJ1ZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ29udGludWUgd2l0aCBzYW1lIGNvbnRleHRcbiAgICAgIHRyYXZlcnNlQ2hpbGRyZW4obm9kZSwgY29udGV4dCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhdmVyc2VDaGlsZHJlbihcbiAgICBub2RlOiBOb2RlLFxuICAgIGNvbnRleHQ6IHsgaW5GdW5jdGlvbjogYm9vbGVhbjsgaW5DbGFzczogYm9vbGVhbiB9XG4gICkge1xuICAgIGNvbnN0IG5vZGVXaXRoQ2hpbGRyZW4gPSBub2RlIGFzIGFueTtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBub2RlV2l0aENoaWxkcmVuKSB7XG4gICAgICBpZiAoXG4gICAgICAgIGtleSA9PT0gXCJwYXJlbnRcIiB8fFxuICAgICAgICBrZXkgPT09IFwic3RhcnRcIiB8fFxuICAgICAgICBrZXkgPT09IFwiZW5kXCIgfHxcbiAgICAgICAga2V5ID09PSBcImxvY1wiIHx8XG4gICAgICAgIGtleSA9PT0gXCJyYW5nZVwiXG4gICAgICApIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHZhbHVlID0gbm9kZVdpdGhDaGlsZHJlbltrZXldO1xuICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHZhbHVlKSB7XG4gICAgICAgICAgICBpZiAoY2hpbGQgJiYgdHlwZW9mIGNoaWxkID09PSBcIm9iamVjdFwiICYmIGNoaWxkLnR5cGUpIHtcbiAgICAgICAgICAgICAgdHJhdmVyc2VXaXRoQ29udGV4dChjaGlsZCwgY29udGV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLnR5cGUpIHtcbiAgICAgICAgICB0cmF2ZXJzZVdpdGhDb250ZXh0KHZhbHVlLCBjb250ZXh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFN0YXJ0IHRyYXZlcnNhbCBhdCB0b3AgbGV2ZWwgKG5vdCBpbiBmdW5jdGlvbiBvciBjbGFzcylcbiAgdHJhdmVyc2VXaXRoQ29udGV4dChhc3QsIHsgaW5GdW5jdGlvbjogZmFsc2UsIGluQ2xhc3M6IGZhbHNlIH0pO1xuXG4gIC8vIFNlY29uZCBwYXNzOiBwcm9jZXNzIGZ1bmN0aW9ucyBpbiBvcmRlclxuICBmb3IgKGNvbnN0IHsgbm9kZSwgbWF0Y2ggfSBvZiBmdW5jdGlvbk5vZGVzKSB7XG4gICAgY29uc3QgbmFtZSA9IGdldEZ1bmN0aW9uTmFtZShub2RlKSB8fCBcImFub255bW91c1wiO1xuICAgIGNvbnN0IGV4cG9ydE5hbWUgPSBnZXRFeHBvcnRlZE5hbWUobm9kZSk7XG4gICAgY29uc3QgZnVuY3Rpb25LZXkgPSBgJHtuYW1lfS0ke2V4cG9ydE5hbWUgfHwgXCJcIn0tJHttYXRjaC5yYW5nZVswXX1gO1xuXG4gICAgLy8gU2tpcCBpZiB3ZSd2ZSBhbHJlYWR5IHByb2Nlc3NlZCB0aGlzIGZ1bmN0aW9uXG4gICAgaWYgKHByb2Nlc3NlZEZ1bmN0aW9ucy5oYXMoZnVuY3Rpb25LZXkpKSBjb250aW51ZTtcbiAgICBwcm9jZXNzZWRGdW5jdGlvbnMuYWRkKGZ1bmN0aW9uS2V5KTtcblxuICAgIHByb2Nlc3NGdW5jdGlvbk5vZGUobm9kZSwgbmFtZSwgZXhwb3J0TmFtZSwgbWF0Y2gsIGRpcmVjdGl2ZUluZm8pO1xuICB9XG5cbiAgLy8gQWRkIHdhcm5pbmdzIGZvciBtaXhlZCBzZXJ2ZXIvY2xpZW50IGRpcmVjdGl2ZXNcbiAgaWYgKGRpcmVjdGl2ZUluZm8uZmlsZUxldmVsICYmIGRpcmVjdGl2ZUluZm8uZnVuY3Rpb25MZXZlbC5sZW5ndGggPiAwKSB7XG4gICAgZm9yIChjb25zdCBmdW5jIG9mIGRpcmVjdGl2ZUluZm8uZnVuY3Rpb25MZXZlbCkge1xuICAgICAgaWYgKGRpcmVjdGl2ZUluZm8uZmlsZUxldmVsLnR5cGUgIT09IGZ1bmMudHlwZSkge1xuICAgICAgICBkaXJlY3RpdmVJbmZvLndhcm5pbmdzLnB1c2goe1xuICAgICAgICAgIG1lc3NhZ2U6IGBDYW5ub3QgaGF2ZSBib3RoICd1c2UgJHtkaXJlY3RpdmVJbmZvLmZpbGVMZXZlbC50eXBlfScgYW5kICd1c2UgJHtmdW5jLnR5cGV9JyBkaXJlY3RpdmVzIGluIHRoZSBzYW1lIGZpbGVgLFxuICAgICAgICAgIHJhbmdlOiBmdW5jLnJhbmdlLFxuICAgICAgICAgIHR5cGU6IFwic2VydmVyXCIsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChmdW5jLnR5cGUgIT09IFwic2VydmVyXCIpIHtcbiAgICAgICAgZGlyZWN0aXZlSW5mby53YXJuaW5ncy5wdXNoKHtcbiAgICAgICAgICBtZXNzYWdlOiBgRnVuY3Rpb24tbGV2ZWwgZGlyZWN0aXZlcyBzaG91bGQgYmUgJ3VzZSBzZXJ2ZXInLCBidXQgZ290ICd1c2UgJHtmdW5jLnR5cGV9J2AsXG4gICAgICAgICAgcmFuZ2U6IGZ1bmMucmFuZ2UsXG4gICAgICAgICAgdHlwZTogXCJjbGllbnRcIixcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkaXJlY3RpdmVJbmZvLndhcm5pbmdzLnB1c2goe1xuICAgICAgICAgIG1lc3NhZ2U6IGAndXNlIHNlcnZlcicgaXMgYWxyZWFkeSBkZWZpbmVkIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUsIHRoaXMgZGlyZWN0aXZlIHNob3VsZCBiZSByZW1vdmVkLmAsXG4gICAgICAgICAgcmFuZ2U6IGZ1bmMucmFuZ2UsXG4gICAgICAgICAgdHlwZTogXCJzZXJ2ZXJcIixcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRpcmVjdGl2ZUluZm87XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFtQ08sU0FBUyxpQkFDZCxDQUFBLEdBQUEsRUFDQSxNQUNBLEVBQUEsZ0JBQUEsRUFDQSxPQUNlLEVBQUE7QUFDZixFQUFBLE1BQU0sVUFDSixHQUFBLGdCQUFBLElBQW9CLElBQVEsSUFBQSxPQUFPLGdCQUFxQixLQUFBLFFBQUE7QUFDMUQsRUFBQSxNQUFNLG1CQUNKLFVBQWMsSUFBQSxTQUFBLElBQWEsZ0JBQ3ZCLEdBQUEsZ0JBQUEsR0FDQSxxQkFBcUIsTUFBTSxDQUFBO0FBRWpDLEVBQUEsTUFBTSxhQUErQixHQUFBO0FBQUEsSUFDbkMsU0FBVyxFQUFBLElBQUE7QUFBQSxJQUNYLGVBQWUsRUFBQztBQUFBLElBQ2hCLFVBQVU7QUFBQyxHQUNiO0FBR0EsRUFBQSxJQUFJLGlCQUFvQixHQUFBLEtBQUE7QUFDeEIsRUFBQSxJ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
|
|
248
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5hbHl6ZURpcmVjdGl2ZXMuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BsdWdpbi9sb2FkZXIvZGlyZWN0aXZlcy9hbmFseXplRGlyZWN0aXZlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaW5kRGlyZWN0aXZlTWF0Y2hlcyB9IGZyb20gXCIuL2ZpbmREaXJlY3RpdmVNYXRjaGVzLmpzXCI7XG5pbXBvcnQgeyBpc0Z1bmN0aW9uTm9kZSB9IGZyb20gXCIuL3R5cGVHdWFyZHMuanNcIjtcbmltcG9ydCB7IGdldEZ1bmN0aW9uQm9keSB9IGZyb20gXCIuL2dldEZ1bmN0aW9uQm9keS5qc1wiO1xuaW1wb3J0IHsgZ2V0RnVuY3Rpb25OYW1lIH0gZnJvbSBcIi4vZ2V0RnVuY3Rpb25OYW1lLmpzXCI7XG5pbXBvcnQgeyBnZXRFeHBvcnRlZE5hbWUgfSBmcm9tIFwiLi9nZXRFeHBvcnRlZE5hbWUuanNcIjtcbmltcG9ydCB7IHByb2Nlc3NGdW5jdGlvbk5vZGUgfSBmcm9tIFwiLi9wcm9jZXNzRnVuY3Rpb25Ob2RlLmpzXCI7XG5pbXBvcnQge1xuICBpc0RpcmVjdGl2ZUF0U3RhcnQsXG4gIGdldERpcmVjdGl2ZVZhbHVlLFxuICBtYXRjaE92ZXJsYXBzRGlyZWN0aXZlLFxufSBmcm9tIFwiLi91dGlscy5qc1wiO1xuaW1wb3J0IHR5cGUge1xuICBEaXJlY3RpdmVJbmZvLFxuICBEaXJlY3RpdmVNYXRjaCxcbiAgRGlyZWN0aXZlTWF0Y2hlcyxcbn0gZnJvbSBcIi4vdHlwZXMuanNcIjtcbmltcG9ydCB0eXBlIHsgTm9kZSwgUHJvZ3JhbSB9IGZyb20gXCJhY29yblwiO1xuaW1wb3J0IHR5cGUgeyBEaXJlY3RpdmVPcHRpb25zIH0gZnJvbSBcIi4uLy4uL3R5cGVzLmpzXCI7XG5pbXBvcnQgeyBjcmVhdGVMb2dnZXIsIHR5cGUgTG9nZ2VyIH0gZnJvbSBcInZpdGVcIjtcblxuLyoqXG4gKiBBbmFseXplcyBkaXJlY3RpdmVzIGluIHRoZSBnaXZlbiBzb3VyY2UgYW5kIEFTVCwgcmV0dXJuaW5nIGRpcmVjdGl2ZUluZm8uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhbmFseXplRGlyZWN0aXZlcyhcbiAgYXN0OiBQcm9ncmFtLFxuICBzb3VyY2U6IHN0cmluZyxcbiAgbWF0Y2hlcz86IERpcmVjdGl2ZU1hdGNoZXMsXG4gIGxvZ2dlcj86IExvZ2dlclxuKTogRGlyZWN0aXZlSW5mbztcbmV4cG9ydCBmdW5jdGlvbiBhbmFseXplRGlyZWN0aXZlcyhcbiAgYXN0OiBQcm9ncmFtLFxuICBzb3VyY2U6IHN0cmluZyxcbiAgb3B0aW9ucz86IERpcmVjdGl2ZU9wdGlvbnMsXG4gIGxvZ2dlcj86IExvZ2dlclxuKTogRGlyZWN0aXZlSW5mbztcbmV4cG9ydCBmdW5jdGlvbiBhbmFseXplRGlyZWN0aXZlcyhcbiAgYXN0OiBQcm9ncmFtLFxuICBzb3VyY2U6IHN0cmluZyxcbiAgb3B0aW9uc09yTWF0Y2hlcz86IERpcmVjdGl2ZU1hdGNoZXMgfCBEaXJlY3RpdmVPcHRpb25zLFxuICBfbG9nZ2VyPzogTG9nZ2VyXG4pOiBEaXJlY3RpdmVJbmZvIHtcbiAgY29uc3QgaGFzT3B0aW9ucyA9XG4gICAgb3B0aW9uc09yTWF0Y2hlcyAhPSBudWxsICYmIHR5cGVvZiBvcHRpb25zT3JNYXRjaGVzID09PSBcIm9iamVjdFwiO1xuICBjb25zdCBkaXJlY3RpdmVNYXRjaGVzID1cbiAgICBoYXNPcHRpb25zICYmIFwibWF0Y2hlc1wiIGluIG9wdGlvbnNPck1hdGNoZXNcbiAgICAgID8gb3B0aW9uc09yTWF0Y2hlc1xuICAgICAgOiBmaW5kRGlyZWN0aXZlTWF0Y2hlcyhzb3VyY2UpO1xuXG4gIGNvbnN0IGRpcmVjdGl2ZUluZm86IERpcmVjdGl2ZUluZm8gPSB7XG4gICAgZmlsZUxldmVsOiBudWxsLFxuICAgIGZ1bmN0aW9uTGV2ZWw6IFtdLFxuICAgIHdhcm5pbmdzOiBbXSxcbiAgfTtcblxuICAvLyBGaW5kIGZpbGUtbGV2ZWwgZGlyZWN0aXZlcyBieSBjaGVja2luZyBBU1RcbiAgbGV0IGZvdW5kTm9uRGlyZWN0aXZlID0gZmFsc2U7XG4gIGxldCBmaXJzdERpcmVjdGl2ZTogRGlyZWN0aXZlTWF0Y2ggfCBudWxsID0gbnVsbDtcbiAgY29uc3QgdmVyYm9zZSA9XG4gICAgaGFzT3B0aW9ucyAmJlxuICAgIHR5cGVvZiBvcHRpb25zT3JNYXRjaGVzID09PSBcIm9iamVjdFwiICYmXG4gICAgXCJ2ZXJib3NlXCIgaW4gb3B0aW9uc09yTWF0Y2hlcyAmJlxuICAgIG9wdGlvbnNPck1hdGNoZXMudmVyYm9zZTtcbiAgY29uc3QgbG9nZ2VyID1cbiAgICBoYXNPcHRpb25zICYmXG4gICAgdHlwZW9mIG9wdGlvbnNPck1hdGNoZXMgPT09IFwib2JqZWN0XCIgJiZcbiAgICBcImxvZ2dlclwiIGluIG9wdGlvbnNPck1hdGNoZXNcbiAgICAgID8gb3B0aW9uc09yTWF0Y2hlcy5sb2dnZXIgPz8gX2xvZ2dlciA/PyBjcmVhdGVMb2dnZXIoKVxuICAgICAgOiBfbG9nZ2VyID8/IGNyZWF0ZUxvZ2dlcigpO1xuICAvLyBDaGVjayBpZiB0aGlzIGxvb2tzIGxpa2UgVml0ZS1pbmplY3RlZCBjb2RlXG4gIC8vIER1cmluZyBidWlsZCwgVml0ZSBtYXkgcHJlcGVuZCBpbXBvcnRzIChlLmcuLCBfX3ZpdGVQcmVsb2FkIGZvciBkeW5hbWljIGltcG9ydHMpXG4gIC8vIGJlZm9yZSBcInVzZSBjbGllbnRcIi9cInVzZSBzZXJ2ZXJcIiBkaXJlY3RpdmVzXG4gIGNvbnN0IGlzVml0ZUluamVjdGVkQ29kZSA9XG4gICAgc291cmNlLmluY2x1ZGVzKFwiX192aXRlX19jcmVhdGVIb3RDb250ZXh0XCIpIHx8XG4gICAgc291cmNlLmluY2x1ZGVzKFwiaW1wb3J0Lm1ldGEuaG90XCIpIHx8XG4gICAgc291cmNlLmluY2x1ZGVzKFwiaW1wb3J0Lm1ldGEuZW52XCIpIHx8XG4gICAgc291cmNlLmluY2x1ZGVzKFwiL0B2aXRlL2NsaWVudFwiKSB8fFxuICAgIHNvdXJjZS5pbmNsdWRlcyhcIl9fdml0ZVByZWxvYWRcIikgfHxcbiAgICBzb3VyY2UuaW5jbHVkZXMoXCJcXDB2aXRlL1wiKTtcblxuICBmb3IgKGNvbnN0IG5vZGUgb2YgYXN0LmJvZHkpIHtcbiAgICAvLyBEZWJ1ZyBsb2dnaW5nXG4gICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgIGxvZ2dlci5pbmZvKFxuICAgICAgICBgW2FuYWx5emVEaXJlY3RpdmVzXSBQcm9jZXNzaW5nIG5vZGU6ICR7bm9kZS50eXBlfSBzdGFydDogJHtub2RlLnN0YXJ0fSBlbmQ6ICR7bm9kZS5lbmR9XG5kaXJlY3RpdmU6ICR7XCJkaXJlY3RpdmVcIiBpbiBub2RlID8gbm9kZS5kaXJlY3RpdmUgOiBcIm5vbmVcIn1cbmJlZm9yZU5vZGU6ICR7bm9kZS5zdGFydCEgPiAwID8gSlNPTi5zdHJpbmdpZnkoc291cmNlLnNsaWNlKDAsIG5vZGUuc3RhcnQhKSkuc2xpY2UoMCwgMTAwKSA6IFwibm9uZVwifWBcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gT25seSBjaGVjayBmb3IgZGlyZWN0aXZlcyBpbiBleHByZXNzaW9uIHN0YXRlbWVudHNcbiAgICBpZiAobm9kZS50eXBlID09PSBcIkV4cHJlc3Npb25TdGF0ZW1lbnRcIikge1xuICAgICAgbGV0IGRpcmVjdGl2ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgICBpZiAoXCJkaXJlY3RpdmVcIiBpbiBub2RlICYmIHR5cGVvZiBub2RlLmRpcmVjdGl2ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICBkaXJlY3RpdmUgPSBub2RlLmRpcmVjdGl2ZTtcbiAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgIG5vZGUuZXhwcmVzc2lvbi50eXBlID09PSBcIkxpdGVyYWxcIiAmJlxuICAgICAgICB0eXBlb2Ygbm9kZS5leHByZXNzaW9uLnZhbHVlID09PSBcInN0cmluZ1wiICYmXG4gICAgICAgIChub2RlLmV4cHJlc3Npb24udmFsdWUgPT09IFwidXNlIHNlcnZlclwiIHx8XG4gICAgICAgICAgbm9kZS5leHByZXNzaW9uLnZhbHVlID09PSBcInVzZSBjbGllbnRcIilcbiAgICAgICkge1xuICAgICAgICBkaXJlY3RpdmUgPSBub2RlLmV4cHJlc3Npb24udmFsdWU7XG4gICAgICB9XG5cbiAgICAgIGlmIChkaXJlY3RpdmUpIHtcbiAgICAgICAgY29uc3QgZ2V0RGlyZWN0aXZlVHlwZSA9XG4gICAgICAgICAgb3B0aW9uc09yTWF0Y2hlcyAhPSBudWxsICYmIFwibG9hZGVyXCIgaW4gb3B0aW9uc09yTWF0Y2hlc1xuICAgICAgICAgICAgPyBvcHRpb25zT3JNYXRjaGVzLmxvYWRlcj8uZ2V0RGlyZWN0aXZlVHlwZVxuICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgIGNvbnN0IHR5cGUgPVxuICAgICAgICAgIGdldERpcmVjdGl2ZVR5cGU/LihkaXJlY3RpdmUpID8/XG4gICAgICAgICAgKGRpcmVjdGl2ZSA9PT0gXCJ1c2Ugc2VydmVyXCIgPyBcInNlcnZlclwiIDogXCJjbGllbnRcIik7XG4gICAgICAgIGlmICghZmlyc3REaXJlY3RpdmUpIHtcbiAgICAgICAgICBmaXJzdERpcmVjdGl2ZSA9IHsgdHlwZSwgcmFuZ2U6IFtub2RlLnN0YXJ0ISwgbm9kZS5lbmQhXSB9O1xuICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICBsb2dnZXIuaW5mbyhcbiAgICAgICAgICAgICAgYFthbmFseXplRGlyZWN0aXZlc10gRm91bmQgZmlyc3QgZGlyZWN0aXZlOiAke2RpcmVjdGl2ZX0gYXQgcmFuZ2U6ICR7W1xuICAgICAgICAgICAgICAgIG5vZGUuc3RhcnQhLFxuICAgICAgICAgICAgICAgIG5vZGUuZW5kISxcbiAgICAgICAgICAgICAgXX1gXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkaXJlY3RpdmVJbmZvLndhcm5pbmdzLnB1c2goe1xuICAgICAgICAgICAgbWVzc2FnZTpcbiAgICAgICAgICAgICAgXCJDYW5ub3QgaGF2ZSBib3RoICd1c2UgY2xpZW50JyBhbmQgJ3VzZSBzZXJ2ZXInIGRpcmVjdGl2ZXMgaW4gdGhlIHNhbWUgZmlsZVwiLFxuICAgICAgICAgICAgcmFuZ2U6IFswLCAwXSxcbiAgICAgICAgICAgIHR5cGU6IFwic2VydmVyXCIsXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFRoaXMgZXhwcmVzc2lvbiBzdGF0ZW1lbnQgaXMgbm90IGEgZGlyZWN0aXZlLCBzbyBtYXJrIGFzIG5vbi1kaXJlY3RpdmVcbiAgICAgICAgLy8gaWYgd2UgaGF2ZW4ndCBmb3VuZCB0aGUgZmlyc3QgZGlyZWN0aXZlIHlldFxuICAgICAgICBpZiAoIWZpcnN0RGlyZWN0aXZlKSB7XG4gICAgICAgICAgZm91bmROb25EaXJlY3RpdmUgPSB0cnVlO1xuICAgICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgICBsb2dnZXIuaW5mbyhcbiAgICAgICAgICAgICAgYFthbmFseXplRGlyZWN0aXZlc10gRm91bmQgbm9uLWRpcmVjdGl2ZSBleHByZXNzaW9uIGJlZm9yZSBmaXJzdCBkaXJlY3RpdmUsIHNldHRpbmcgZm91bmROb25EaXJlY3RpdmU9dHJ1ZWBcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE9ubHkgbWFyayBhY3R1YWwgY29kZSAobm90IGltcG9ydHMvZXhwb3J0cykgYXMgbm9uLWRpcmVjdGl2ZVxuICAgICAgLy8gaWYgd2UgaGF2ZW4ndCBmb3VuZCB0aGUgZmlyc3QgZGlyZWN0aXZlIHlldFxuICAgICAgaWYgKCFmaXJzdERpcmVjdGl2ZSkge1xuICAgICAgICBmb3VuZE5vbkRpcmVjdGl2ZSA9IHRydWU7XG4gICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgbG9nZ2VyLmluZm8oXG4gICAgICAgICAgICBgW2FuYWx5emVEaXJlY3RpdmVzXSBGb3VuZCBub24tZGlyZWN0aXZlIG5vZGUgYmVmb3JlIGZpcnN0IGRpcmVjdGl2ZTogJHtub2RlLnR5cGV9LCBzZXR0aW5nIGZvdW5kTm9uRGlyZWN0aXZlPXRydWVgXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIHRoaXMgbm9kZSBpcyBhZnRlciBhbnkgY29tbWVudHMgb3Igbm9uLXdoaXRlc3BhY2UgY29udGVudFxuICAgIC8vIE9ubHkgbWF0dGVycyBpZiB3ZSBoYXZlbid0IGZvdW5kIHRoZSBmaXJzdCBkaXJlY3RpdmUgeWV0XG4gICAgaWYgKCFmaXJzdERpcmVjdGl2ZSAmJiBub2RlLnN0YXJ0ISA+IDApIHtcbiAgICAgIGNvbnN0IGJlZm9yZU5vZGUgPSBzb3VyY2Uuc2xpY2UoMCwgbm9kZS5zdGFydCEpLnRyaW0oKTtcbiAgICAgIGlmIChiZWZvcmVOb2RlLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZm91bmROb25EaXJlY3RpdmUgPSB0cnVlO1xuICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgIGxvZ2dlci5pbmZvKFxuICAgICAgICAgICAgYFthbmFseXplRGlyZWN0aXZlc10gRm91bmQgY29udGVudCBiZWZvcmUgZmlyc3QgZGlyZWN0aXZlOiAke0pTT04uc3RyaW5naWZ5KFxuICAgICAgICAgICAgICBiZWZvcmVOb2RlLnNsaWNlKDAsIDEwMClcbiAgICAgICAgICAgICl9LCBzZXR0aW5nIGZvdW5kTm9uRGlyZWN0aXZlPXRydWVgXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFNldCB0aGUgZmlyc3QgZGlyZWN0aXZlIGFzIGZpbGUtbGV2ZWwgaWYgZm91bmRcbiAgaWYgKGZpcnN0RGlyZWN0aXZlKSB7XG4gICAgZGlyZWN0aXZlSW5mby5maWxlTGV2ZWwgPSBmaXJzdERpcmVjdGl2ZTtcblxuICAgIC8vIENoZWNrIGlmIHRoZXJlIHdhcyBjb250ZW50IChpbmNsdWRpbmcgY29tbWVudHMpIGJlZm9yZSB0aGUgZGlyZWN0aXZlXG4gICAgaWYgKCFmb3VuZE5vbkRpcmVjdGl2ZSAmJiBmaXJzdERpcmVjdGl2ZS5yYW5nZVswXSA+IDApIHtcbiAgICAgIGNvbnN0IGJlZm9yZURpcmVjdGl2ZSA9IHNvdXJjZS5zbGljZSgwLCBmaXJzdERpcmVjdGl2ZS5yYW5nZVswXSkudHJpbSgpO1xuICAgICAgaWYgKGJlZm9yZURpcmVjdGl2ZS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZvdW5kTm9uRGlyZWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgICBsb2dnZXIuaW5mbyhcbiAgICAgICAgICAgIGBbYW5hbHl6ZURpcmVjdGl2ZXNdIEZvdW5kIGNvbnRlbnQgYmVmb3JlIGRpcmVjdGl2ZTogJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgICAgYmVmb3JlRGlyZWN0aXZlXG4gICAgICAgICAgICApfSwgc2V0dGluZyBmb3VuZE5vbkRpcmVjdGl2ZT10cnVlIGZvciBkaXJlY3RpdmVgXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIE9ubHkgd2FybiBhYm91dCBkaXJlY3RpdmUgcGxhY2VtZW50IGlmIGl0J3Mgbm90IFZpdGUtaW5qZWN0ZWQgY29kZVxuICAgIGlmIChmb3VuZE5vbkRpcmVjdGl2ZSAmJiAhaXNWaXRlSW5qZWN0ZWRDb2RlKSB7XG4gICAgICBkaXJlY3RpdmVJbmZvLndhcm5pbmdzLnB1c2goe1xuICAgICAgICBtZXNzYWdlOlxuICAgICAgICAgIFwiRmlsZS1sZXZlbCBkaXJlY3RpdmVzIG11c3QgYmUgYXQgdGhlIHRvcCBvZiB0aGUgZmlsZSwgYmVmb3JlIGFueSBvdGhlciBjb2RlXCIsXG4gICAgICAgIHJhbmdlOiBbZmlyc3REaXJlY3RpdmUucmFuZ2VbMF0sIGZpcnN0RGlyZWN0aXZlLnJhbmdlWzFdXSxcbiAgICAgICAgdHlwZTogZmlyc3REaXJlY3RpdmUudHlwZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIFByb2Nlc3MgZnVuY3Rpb24tbGV2ZWwgZGlyZWN0aXZlc1xuICBjb25zdCBmdW5jdGlvbkxldmVsTWF0Y2hlcyA9IGRpcmVjdGl2ZU1hdGNoZXMubWF0Y2hlcy5maWx0ZXIoXG4gICAgKG1hdGNoOiBEaXJlY3RpdmVNYXRjaCkgPT4ge1xuICAgICAgLy8gU2tpcCBpZiB0aGlzIG1hdGNoIGlzIGFscmVhZHkgdXNlZCBhcyBhIGZpbGUtbGV2ZWwgZGlyZWN0aXZlXG4gICAgICBpZiAoXG4gICAgICAgIGRpcmVjdGl2ZUluZm8uZmlsZUxldmVsICYmXG4gICAgICAgIG1hdGNoLnJhbmdlWzBdID09PSBkaXJlY3RpdmVJbmZvLmZpbGVMZXZlbC5yYW5nZVswXSAmJlxuICAgICAgICBtYXRjaC5yYW5nZVsxXSA9PT0gZGlyZWN0aXZlSW5mby5maWxlTGV2ZWwucmFuZ2VbMV1cbiAgICAgICkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICk7XG5cbiAgY29uc3QgcHJvY2Vzc2VkRnVuY3Rpb25zID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbiAgLy8gRmlyc3QgcGFzczogY29sbGVjdCBhbGwgZnVuY3Rpb24gbm9kZXMgd2l0aCB0aGVpciBkaXJlY3RpdmVzXG4gIGNvbnN0IGZ1bmN0aW9uTm9kZXM6IEFycmF5PHtcbiAgICBub2RlOiBOb2RlO1xuICAgIG1hdGNoOiBEaXJlY3RpdmVNYXRjaDtcbiAgICBjb250ZXh0OiBzdHJpbmc7XG4gIH0+ID0gW107XG5cbiAgLy8gVHJhY2sgY29udGV4dCBkdXJpbmcgdHJhdmVyc2FsXG4gIGZ1bmN0aW9uIHRyYXZlcnNlV2l0aENvbnRleHQoXG4gICAgbm9kZTogTm9kZSxcbiAgICBjb250ZXh0OiB7IGluRnVuY3Rpb246IGJvb2xlYW47IGluQ2xhc3M6IGJvb2xlYW4gfVxuICApIHtcbiAgICBpZiAoaXNGdW5jdGlvbk5vZGUobm9kZSkpIHtcbiAgICAgIGNvbnN0IGJvZHkgPSBnZXRGdW5jdGlvbkJvZHkobm9kZSk7XG4gICAgICBpZiAoYm9keSkge1xuICAgICAgICAvLyBDaGVjayBpZiBkaXJlY3RpdmUgaXMgYXQgdGhlIHN0YXJ0IG9mIHRoZSBmdW5jdGlvbiBib2R5XG4gICAgICAgIGZvciAoY29uc3QgbWF0Y2ggb2YgZnVuY3Rpb25MZXZlbE1hdGNoZXMpIHtcbiAgICAgICAgICBjb25zdCBkaXJlY3RpdmVWYWx1ZSA9IGdldERpcmVjdGl2ZVZhbHVlKG1hdGNoLnR5cGUpO1xuXG4gICAgICAgICAgaWYgKGlzRGlyZWN0aXZlQXRTdGFydChub2RlLCBkaXJlY3RpdmVWYWx1ZSkpIHtcbiAgICAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBtYXRjaCByYW5nZSBjb3JyZXNwb25kcyB0byB0aGlzIHNwZWNpZmljIGRpcmVjdGl2ZSBwb3NpdGlvblxuICAgICAgICAgICAgY29uc3QgZGlyZWN0aXZlTm9kZSA9IGJvZHkuYm9keVswXTtcbiAgICAgICAgICAgIGNvbnN0IGRpcmVjdGl2ZVN0YXJ0ID0gZGlyZWN0aXZlTm9kZS5zdGFydCE7XG4gICAgICAgICAgICBjb25zdCBkaXJlY3RpdmVFbmQgPSBkaXJlY3RpdmVOb2RlLmVuZCE7XG5cbiAgICAgICAgICAgIC8vIE1hdGNoIGJhc2VkIG9uIHBvc2l0aW9uIC0gdGhlIG1hdGNoIHNob3VsZCBvdmVybGFwIHdpdGggdGhlIGRpcmVjdGl2ZSBub2RlXG4gICAgICAgICAgICBjb25zdCBtYXRjaE92ZXJsYXBzID0gbWF0Y2hPdmVybGFwc0RpcmVjdGl2ZShcbiAgICAgICAgICAgICAgbWF0Y2gucmFuZ2UsXG4gICAgICAgICAgICAgIGRpcmVjdGl2ZVN0YXJ0LFxuICAgICAgICAgICAgICBkaXJlY3RpdmVFbmRcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIGlmIChtYXRjaE92ZXJsYXBzKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGZ1bmN0aW9uTmFtZSA9IGdldEZ1bmN0aW9uTmFtZShub2RlKSB8fCBcImFub255bW91c1wiO1xuXG4gICAgICAgICAgICAgIC8vIENoZWNrIGZvciBpbnZhbGlkIGNvbnRleHRzIGJhc2VkIG9uIHRyYXZlcnNhbCBjb250ZXh0XG4gICAgICAgICAgICAgIGlmIChjb250ZXh0LmluRnVuY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuYW1lRGVzYyA9XG4gICAgICAgICAgICAgICAgICBmdW5jdGlvbk5hbWUgPT09IFwiYW5vbnltb3VzXCIgPyBcIlwiIDogYCAnJHtmdW5jdGlvbk5hbWV9J2A7XG4gICAgICAgICAgICAgICAgZGlyZWN0aXZlSW5mby53YXJuaW5ncy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGBGdW5jdGlvbiR7bmFtZURlc2N9IHdpdGggJyR7ZGlyZWN0aXZlVmFsdWV9JyBkaXJlY3RpdmUgY2Fubm90IGJlIG5lc3RlZCBpbnNpZGUgYW5vdGhlciBmdW5jdGlvbi4gRGlyZWN0aXZlcyBhcmUgb25seSBhbGxvd2VkIGluIHRvcC1sZXZlbCBmdW5jdGlvbnMuYCxcbiAgICAgICAgICAgICAgICAgIHJhbmdlOiBtYXRjaC5yYW5nZSxcbiAgICAgICAgICAgICAgICAgIHR5cGU6IG1hdGNoLnR5cGUsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBTa2lwIHRoaXMgZnVuY3Rpb24gZW50aXJlbHlcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIGlmIChjb250ZXh0LmluQ2xhc3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBuYW1lRGVzYyA9XG4gICAgICAgICAgICAgICAgICBmdW5jdGlvbk5hbWUgPT09IFwiYW5vbnltb3VzXCIgPyBcIlwiIDogYCAnJHtmdW5jdGlvbk5hbWV9J2A7XG4gICAgICAgICAgICAgICAgZGlyZWN0aXZlSW5mby53YXJuaW5ncy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgIG1lc3NhZ2U6IGBDbGFzcyBtZXRob2Qke25hbWVEZXNjfSB3aXRoICcke2RpcmVjdGl2ZVZhbHVlfScgZGlyZWN0aXZlIGlzIG5vdCBzdXBwb3J0ZWQuIERpcmVjdGl2ZXMgYXJlIG9ubHkgYWxsb3dlZCBpbiB0b3AtbGV2ZWwgZnVuY3Rpb25zLmAsXG4gICAgICAgICAgICAgICAgICByYW5nZTogbWF0Y2gucmFuZ2UsXG4gICAgICAgICAgICAgICAgICB0eXBlOiBtYXRjaC50eXBlLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIHJldHVybjsgLy8gU2tpcCB0aGlzIGZ1bmN0aW9uIGVudGlyZWx5XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBPbmx5IGFsbG93IHNlcnZlciBkaXJlY3RpdmVzIGluIGZ1bmN0aW9uLWxldmVsIGNvbnRleHRzXG4gICAgICAgICAgICAgIGlmIChtYXRjaC50eXBlID09PSBcInNlcnZlclwiKSB7XG4gICAgICAgICAgICAgICAgZnVuY3Rpb25Ob2Rlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgIG5vZGUsXG4gICAgICAgICAgICAgICAgICBtYXRjaCxcbiAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IGNvbnRleHQuaW5GdW5jdGlvblxuICAgICAgICAgICAgICAgICAgICA/IFwibmVzdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgOiBjb250ZXh0LmluQ2xhc3NcbiAgICAgICAgICAgICAgICAgICAgPyBcImNsYXNzXCJcbiAgICAgICAgICAgICAgICAgICAgOiBcInRvcC1sZXZlbFwiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIEdlbmVyYXRlIHdhcm5pbmcgZm9yIGNsaWVudCBkaXJlY3RpdmVzIGluIGZ1bmN0aW9uc1xuICAgICAgICAgICAgICAgIGRpcmVjdGl2ZUluZm8ud2FybmluZ3MucHVzaCh7XG4gICAgICAgICAgICAgICAgICBtZXNzYWdlOiBcIkZ1bmN0aW9uLWxldmVsICd1c2UgY2xpZW50JyBpc24ndCBhbGxvd2VkXCIsXG4gICAgICAgICAgICAgICAgICByYW5nZTogbWF0Y2gucmFuZ2UsXG4gICAgICAgICAgICAgICAgICB0eXBlOiBcImNsaWVudFwiLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBDb250aW51ZSB0cmF2ZXJzYWwgd2l0aCB1cGRhdGVkIGNvbnRleHQgKG5vdyBpbnNpZGUgYSBmdW5jdGlvbilcbiAgICAgIHRyYXZlcnNlQ2hpbGRyZW4obm9kZSwgeyBpbkZ1bmN0aW9uOiB0cnVlLCBpbkNsYXNzOiBjb250ZXh0LmluQ2xhc3MgfSk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIG5vZGUudHlwZSA9PT0gXCJDbGFzc0RlY2xhcmF0aW9uXCIgfHxcbiAgICAgIG5vZGUudHlwZSA9PT0gXCJDbGFzc0V4cHJlc3Npb25cIlxuICAgICkge1xuICAgICAgLy8gQ29udGludWUgdHJhdmVyc2FsIHdpdGggdXBkYXRlZCBjb250ZXh0IChub3cgaW5zaWRlIGEgY2xhc3MpXG4gICAgICB0cmF2ZXJzZUNoaWxkcmVuKG5vZGUsIHsgaW5GdW5jdGlvbjogY29udGV4dC5pbkZ1bmN0aW9uLCBpbkNsYXNzOiB0cnVlIH0pO1xuICAgIH0gZWxzZSBpZiAobm9kZS50eXBlID09PSBcIk1ldGhvZERlZmluaXRpb25cIikge1xuICAgICAgLy8gTWV0aG9kIGRlZmluaXRpb25zIGFyZSBpbnNpZGUgY2xhc3Nlc1xuICAgICAgdHJhdmVyc2VDaGlsZHJlbihub2RlLCB7IGluRnVuY3Rpb246IGNvbnRleHQuaW5GdW5jdGlvbiwgaW5DbGFzczogdHJ1ZSB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ29udGludWUgd2l0aCBzYW1lIGNvbnRleHRcbiAgICAgIHRyYXZlcnNlQ2hpbGRyZW4obm9kZSwgY29udGV4dCk7XG4gICAgfVxuICB9XG5cbiAgZnVuY3Rpb24gdHJhdmVyc2VDaGlsZHJlbihcbiAgICBub2RlOiBOb2RlLFxuICAgIGNvbnRleHQ6IHsgaW5GdW5jdGlvbjogYm9vbGVhbjsgaW5DbGFzczogYm9vbGVhbiB9XG4gICkge1xuICAgIGNvbnN0IG5vZGVXaXRoQ2hpbGRyZW4gPSBub2RlIGFzIGFueTtcbiAgICBmb3IgKGNvbnN0IGtleSBpbiBub2RlV2l0aENoaWxkcmVuKSB7XG4gICAgICBpZiAoXG4gICAgICAgIGtleSA9PT0gXCJwYXJlbnRcIiB8fFxuICAgICAgICBrZXkgPT09IFwic3RhcnRcIiB8fFxuICAgICAgICBrZXkgPT09IFwiZW5kXCIgfHxcbiAgICAgICAga2V5ID09PSBcImxvY1wiIHx8XG4gICAgICAgIGtleSA9PT0gXCJyYW5nZVwiXG4gICAgICApIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHZhbHVlID0gbm9kZVdpdGhDaGlsZHJlbltrZXldO1xuICAgICAgaWYgKHZhbHVlICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJvYmplY3RcIikge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHZhbHVlKSB7XG4gICAgICAgICAgICBpZiAoY2hpbGQgJiYgdHlwZW9mIGNoaWxkID09PSBcIm9iamVjdFwiICYmIGNoaWxkLnR5cGUpIHtcbiAgICAgICAgICAgICAgdHJhdmVyc2VXaXRoQ29udGV4dChjaGlsZCwgY29udGV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHZhbHVlLnR5cGUpIHtcbiAgICAgICAgICB0cmF2ZXJzZVdpdGhDb250ZXh0KHZhbHVlLCBjb250ZXh0KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIFN0YXJ0IHRyYXZlcnNhbCBhdCB0b3AgbGV2ZWwgKG5vdCBpbiBmdW5jdGlvbiBvciBjbGFzcylcbiAgdHJhdmVyc2VXaXRoQ29udGV4dChhc3QsIHsgaW5GdW5jdGlvbjogZmFsc2UsIGluQ2xhc3M6IGZhbHNlIH0pO1xuXG4gIC8vIFNlY29uZCBwYXNzOiBwcm9jZXNzIGZ1bmN0aW9ucyBpbiBvcmRlclxuICBmb3IgKGNvbnN0IHsgbm9kZSwgbWF0Y2ggfSBvZiBmdW5jdGlvbk5vZGVzKSB7XG4gICAgY29uc3QgbmFtZSA9IGdldEZ1bmN0aW9uTmFtZShub2RlKSB8fCBcImFub255bW91c1wiO1xuICAgIGNvbnN0IGV4cG9ydE5hbWUgPSBnZXRFeHBvcnRlZE5hbWUobm9kZSk7XG4gICAgY29uc3QgZnVuY3Rpb25LZXkgPSBgJHtuYW1lfS0ke2V4cG9ydE5hbWUgfHwgXCJcIn0tJHttYXRjaC5yYW5nZVswXX1gO1xuXG4gICAgLy8gU2tpcCBpZiB3ZSd2ZSBhbHJlYWR5IHByb2Nlc3NlZCB0aGlzIGZ1bmN0aW9uXG4gICAgaWYgKHByb2Nlc3NlZEZ1bmN0aW9ucy5oYXMoZnVuY3Rpb25LZXkpKSBjb250aW51ZTtcbiAgICBwcm9jZXNzZWRGdW5jdGlvbnMuYWRkKGZ1bmN0aW9uS2V5KTtcblxuICAgIHByb2Nlc3NGdW5jdGlvbk5vZGUobm9kZSwgbmFtZSwgZXhwb3J0TmFtZSwgbWF0Y2gsIGRpcmVjdGl2ZUluZm8pO1xuICB9XG5cbiAgLy8gQWRkIHdhcm5pbmdzIGZvciBtaXhlZCBzZXJ2ZXIvY2xpZW50IGRpcmVjdGl2ZXNcbiAgaWYgKGRpcmVjdGl2ZUluZm8uZmlsZUxldmVsICYmIGRpcmVjdGl2ZUluZm8uZnVuY3Rpb25MZXZlbC5sZW5ndGggPiAwKSB7XG4gICAgZm9yIChjb25zdCBmdW5jIG9mIGRpcmVjdGl2ZUluZm8uZnVuY3Rpb25MZXZlbCkge1xuICAgICAgaWYgKGRpcmVjdGl2ZUluZm8uZmlsZUxldmVsLnR5cGUgIT09IGZ1bmMudHlwZSkge1xuICAgICAgICBkaXJlY3RpdmVJbmZvLndhcm5pbmdzLnB1c2goe1xuICAgICAgICAgIG1lc3NhZ2U6IGBDYW5ub3QgaGF2ZSBib3RoICd1c2UgJHtkaXJlY3RpdmVJbmZvLmZpbGVMZXZlbC50eXBlfScgYW5kICd1c2UgJHtmdW5jLnR5cGV9JyBkaXJlY3RpdmVzIGluIHRoZSBzYW1lIGZpbGVgLFxuICAgICAgICAgIHJhbmdlOiBmdW5jLnJhbmdlLFxuICAgICAgICAgIHR5cGU6IFwic2VydmVyXCIsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIGlmIChmdW5jLnR5cGUgIT09IFwic2VydmVyXCIpIHtcbiAgICAgICAgZGlyZWN0aXZlSW5mby53YXJuaW5ncy5wdXNoKHtcbiAgICAgICAgICBtZXNzYWdlOiBgRnVuY3Rpb24tbGV2ZWwgZGlyZWN0aXZlcyBzaG91bGQgYmUgJ3VzZSBzZXJ2ZXInLCBidXQgZ290ICd1c2UgJHtmdW5jLnR5cGV9J2AsXG4gICAgICAgICAgcmFuZ2U6IGZ1bmMucmFuZ2UsXG4gICAgICAgICAgdHlwZTogXCJjbGllbnRcIixcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBkaXJlY3RpdmVJbmZvLndhcm5pbmdzLnB1c2goe1xuICAgICAgICAgIG1lc3NhZ2U6IGAndXNlIHNlcnZlcicgaXMgYWxyZWFkeSBkZWZpbmVkIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUsIHRoaXMgZGlyZWN0aXZlIHNob3VsZCBiZSByZW1vdmVkLmAsXG4gICAgICAgICAgcmFuZ2U6IGZ1bmMucmFuZ2UsXG4gICAgICAgICAgdHlwZTogXCJzZXJ2ZXJcIixcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGRpcmVjdGl2ZUluZm87XG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFtQ08sU0FBUyxpQkFDZCxDQUFBLEdBQUEsRUFDQSxNQUNBLEVBQUEsZ0JBQUEsRUFDQSxPQUNlLEVBQUE7QUFDZixFQUFBLE1BQU0sVUFDSixHQUFBLGdCQUFBLElBQW9CLElBQVEsSUFBQSxPQUFPLGdCQUFxQixLQUFBLFFBQUE7QUFD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-loader.d.ts","sourceRoot":"","sources":["../../../plugin/loader/react-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AASvD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAOzD,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAyB7E,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,qBAAqB,CAAC;IACnC,cAAc,EAAE,wBAAwB,CAAC;CAC1C,QA4CA;AAED,eAAO,MAAM,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"react-loader.d.ts","sourceRoot":"","sources":["../../../plugin/loader/react-loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEzC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AASvD,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAOzD,MAAM,MAAM,aAAa,GAAG;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;AAyB7E,wBAAgB,UAAU,CAAC,IAAI,EAAE;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,WAAW,CAAC;IAClB,WAAW,EAAE,qBAAqB,CAAC;IACnC,cAAc,EAAE,wBAAwB,CAAC;CAC1C,QA4CA;AAED,eAAO,MAAM,IAAI,EAAE,QAqHlB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,WAErB,CAAC"}
|
|
@@ -65,26 +65,9 @@ const load = async (url, context, nextLoad) => {
|
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
67
|
const verbose2 = userOptions?.verbose ?? false;
|
|
68
|
-
if (verbose2) {
|
|
69
|
-
logger.info(`Attempting to load: ${url}`);
|
|
70
|
-
logger.info(`Context: ${JSON.stringify({
|
|
71
|
-
format: context.format,
|
|
72
|
-
conditions: context.conditions
|
|
73
|
-
})}`);
|
|
74
|
-
}
|
|
75
68
|
const { format } = context;
|
|
76
69
|
if (format === "module" || format === "module-typescript") {
|
|
77
|
-
if (verbose2) {
|
|
78
|
-
logger.info(`Loading module: ${url}`);
|
|
79
|
-
}
|
|
80
70
|
const result = await nextLoad(url, context);
|
|
81
|
-
if (verbose2) {
|
|
82
|
-
logger.info(`Next load result: ${JSON.stringify({
|
|
83
|
-
format: result.format,
|
|
84
|
-
shortCircuit: result.shortCircuit,
|
|
85
|
-
source: typeof result.source
|
|
86
|
-
})}`);
|
|
87
|
-
}
|
|
88
71
|
let source = typeof result.source === "string" ? result.source : result.source instanceof Uint8Array ? new TextDecoder().decode(result.source) : String(result.source);
|
|
89
72
|
if (!url.includes("node_modules")) {
|
|
90
73
|
const namedImportRe = /import\s*\{([^}]+)\}\s*from\s*["']react["']\s*;?/g;
|
|
@@ -104,35 +87,13 @@ const load = async (url, context, nextLoad) => {
|
|
|
104
87
|
const hasFileLevelClientDirective = source.startsWith('"use client"') || source.startsWith("'use client'");
|
|
105
88
|
const isServer = hasFileLevelServerDirective || (typeof isServerFunction === "function" ? isServerFunction(source, url) : false);
|
|
106
89
|
const isClient = hasFileLevelClientDirective || (typeof isClientComponent === "function" ? isClientComponent(source, url) : false);
|
|
107
|
-
if (verbose2) {
|
|
108
|
-
let startPreviewIndex = 0;
|
|
109
|
-
let startLine = 0;
|
|
110
|
-
const lines = source.split("\n");
|
|
111
|
-
while (lines[startLine].trim() === "" || lines[startLine].trim() === "\r" || // comment lines
|
|
112
|
-
lines[startLine].trim().startsWith("//") || lines[startLine].trim().startsWith("/**") || lines[startLine].trim().startsWith("*")) {
|
|
113
|
-
startPreviewIndex += lines[startLine].length;
|
|
114
|
-
startLine++;
|
|
115
|
-
}
|
|
116
|
-
logger.info(`Module analysis: ${JSON.stringify({
|
|
117
|
-
url,
|
|
118
|
-
isServer,
|
|
119
|
-
isClient,
|
|
120
|
-
hasFileLevelServerDirective,
|
|
121
|
-
hasFileLevelClientDirective,
|
|
122
|
-
sourceLength: source.length,
|
|
123
|
-
sourcePreview: source.slice(startPreviewIndex, startPreviewIndex + 100) + "..."
|
|
124
|
-
})}`);
|
|
125
|
-
}
|
|
126
90
|
if (!isServer && !isClient) {
|
|
127
|
-
if (verbose2) {
|
|
128
|
-
logger.info(`Skipping non-server/non-client module: ${url}`);
|
|
129
|
-
}
|
|
130
91
|
return { ...result, source };
|
|
131
92
|
}
|
|
132
|
-
const filePath = url.startsWith("file://") ? fileURLToPath(url) : url;
|
|
133
93
|
if (verbose2) {
|
|
134
|
-
logger.info(`
|
|
94
|
+
logger.info(`[react-loader] ${isServer ? "server" : "client"} module: ${url}`);
|
|
135
95
|
}
|
|
96
|
+
const filePath = url.startsWith("file://") ? fileURLToPath(url) : url;
|
|
136
97
|
if (typeof userOptions.moduleID !== "function") {
|
|
137
98
|
const buildConfigEnv = resolvedConfig?.configEnv ?? { command: "build"};
|
|
138
99
|
userOptions.moduleID = createDefaultModuleID({
|
|
@@ -151,24 +112,9 @@ const load = async (url, context, nextLoad) => {
|
|
|
151
112
|
const [, value] = userOptions.normalizer(filePath);
|
|
152
113
|
moduleID = join(userOptions.moduleBasePath, value);
|
|
153
114
|
finalID = userOptions.moduleID?.(moduleID) || moduleID;
|
|
154
|
-
if (verbose2) {
|
|
155
|
-
logger.info(`Normalized IDs: ${moduleID} -> ${finalID}`);
|
|
156
|
-
logger.info(`userOptions: ${JSON.stringify(userOptions)}`);
|
|
157
|
-
}
|
|
158
115
|
}
|
|
159
116
|
const { code: transformed, map } = await transformer(source, moduleID, finalID);
|
|
160
|
-
if (verbose2) {
|
|
161
|
-
logger.info(`Transformation result: ${JSON.stringify({
|
|
162
|
-
originalLength: source.length,
|
|
163
|
-
transformedLength: transformed.length,
|
|
164
|
-
wasTransformed: source !== transformed,
|
|
165
|
-
hasSourceMap: !!map
|
|
166
|
-
})}`);
|
|
167
|
-
}
|
|
168
117
|
if (loaderPort) {
|
|
169
|
-
if (verbose2) {
|
|
170
|
-
logger.info("Sending SERVER_MODULE message");
|
|
171
|
-
}
|
|
172
118
|
loaderPort.postMessage({
|
|
173
119
|
type: "SERVER_MODULE",
|
|
174
120
|
id: finalID,
|
|
@@ -182,23 +128,11 @@ const load = async (url, context, nextLoad) => {
|
|
|
182
128
|
map
|
|
183
129
|
};
|
|
184
130
|
}
|
|
185
|
-
if (verbose2) {
|
|
186
|
-
logger.info(`Skipping non-module format: ${format}`);
|
|
187
|
-
}
|
|
188
131
|
return nextLoad(url, context);
|
|
189
132
|
};
|
|
190
133
|
const resolve = async (specifier, context, nextResolve) => {
|
|
191
|
-
|
|
192
|
-
if (verbose) {
|
|
193
|
-
logger.info(`Resolving: ${specifier}`);
|
|
194
|
-
logger.info(`Resolve context: ${JSON.stringify(context)}`);
|
|
195
|
-
}
|
|
196
|
-
const result = await nextResolve(specifier, context);
|
|
197
|
-
if (verbose) {
|
|
198
|
-
logger.info(`Resolve result: ${JSON.stringify(result)}`);
|
|
199
|
-
}
|
|
200
|
-
return result;
|
|
134
|
+
return nextResolve(specifier, context);
|
|
201
135
|
};
|
|
202
136
|
|
|
203
137
|
export { initialize, load, resolve };
|
|
204
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3QtbG9hZGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9wbHVnaW4vbG9hZGVyL3JlYWN0LWxvYWRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIFJlc29sdmVkVXNlck9wdGlvbnMsXG4gIFNlcmlhbGl6ZWRSZXNvbHZlZENvbmZpZyxcbiAgU2VyaWFsaXplZFVzZXJPcHRpb25zLFxufSBmcm9tIFwiLi4vdHlwZXMuanNcIjtcbmltcG9ydCB0eXBlIHsgTW9kdWxlSW5mbyB9IGZyb20gXCJyb2xsdXBcIjtcbmltcG9ydCB7IHBhcmVudFBvcnQgfSBmcm9tIFwibm9kZTp3b3JrZXJfdGhyZWFkc1wiO1xuaW1wb3J0IHR5cGUgeyBNZXNzYWdlUG9ydCB9IGZyb20gXCJub2RlOndvcmtlcl90aHJlYWRzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEluaXRpYWxpemVkUmVhY3RMb2FkZXJNZXNzYWdlLFxuICBTZXJ2ZXJNb2R1bGVNZXNzYWdlLFxufSBmcm9tIFwiLi4vd29ya2VyL3JzYy90eXBlcy5qc1wiO1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCB9IGZyb20gXCJub2RlOnVybFwiO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IGh5ZHJhdGVVc2VyT3B0aW9ucyB9IGZyb20gXCIuLi9oZWxwZXJzL2h5ZHJhdGVVc2VyT3B0aW9ucy5qc1wiO1xuaW1wb3J0IHsgREVGQVVMVF9MT0FERVJfQ09ORklHIH0gZnJvbSBcIi4uL2NvbmZpZy9kZWZhdWx0cy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBMb2FkSG9vaywgUmVzb2x2ZUhvb2sgfSBmcm9tIFwibm9kZTptb2R1bGVcIjtcbmltcG9ydCB0eXBlIHsgUmF3U291cmNlTWFwIH0gZnJvbSBcInNvdXJjZS1tYXBcIjtcbmltcG9ydCB7IGNyZWF0ZVRyYW5zZm9ybWVyIH0gZnJvbSBcIi4vY3JlYXRlVHJhbnNmb3JtZXIuanNcIjtcblxuaW1wb3J0IHsgY3JlYXRlTG9nZ2VyLCB0eXBlIExvZ2dlciB9IGZyb20gXCJ2aXRlXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZhdWx0TW9kdWxlSUQgfSBmcm9tIFwiLi4vY29uZmlnL2NyZWF0ZU1vZHVsZUlELmpzXCI7XG5cbmV4cG9ydCB0eXBlIExvYWRlck9wdGlvbnMgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHJlc29sdmVEZXBlbmRlbmNpZXM/OiBib29sZWFuO1xuICBmb3JtYXQ/OiBzdHJpbmc7XG4gIGNvbmRpdGlvbnM/OiBzdHJpbmdbXTtcbiAgaW1wb3J0QXNzZXJ0aW9ucz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBpbXBvcnRBdHRyaWJ1dGVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHNvdXJjZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgTG9hZGVyRnVuY3Rpb24gPSAob3B0aW9uczogTG9hZGVyT3B0aW9ucykgPT4gUHJvbWlzZTxNb2R1bGVJbmZvPjtcblxubGV0IGluaXRpYWxpemVkID0gZmFsc2U7XG5sZXQgdXNlck9wdGlvbnM6IFJlc29sdmVkVXNlck9wdGlvbnM7XG5sZXQgbG9hZGVyUG9ydDogTWVzc2FnZVBvcnQgfCBudWxsO1xubGV0IHJlc29sdmVkQ29uZmlnOiBTZXJpYWxpemVkUmVzb2x2ZWRDb25maWc7XG5sZXQgaXNTZXJ2ZXJGdW5jdGlvbjpcbiAgfCBSZWdFeHBNYXRjaEFycmF5XG4gIHwgUmVnRXhwXG4gIHwgKChzb3VyY2U6IHN0cmluZywgdXJsOiBzdHJpbmcpID0+IGJvb2xlYW4pXG4gIHwgbnVsbCA9IERFRkFVTFRfTE9BREVSX0NPTkZJRy5pc1NlcnZlckZ1bmN0aW9uQ29kZTtcblxubGV0IGlzQ2xpZW50Q29tcG9uZW50OlxuICB8IFJlZ0V4cE1hdGNoQXJyYXlcbiAgfCBSZWdFeHBcbiAgfCAoKHNvdXJjZTogc3RyaW5nLCB1cmw6IHN0cmluZykgPT4gYm9vbGVhbilcbiAgfCBudWxsID0gREVGQVVMVF9MT0FERVJfQ09ORklHLmlzQ2xpZW50Q29tcG9uZW50Q29kZTtcbmxldCBsb2dnZXI6IExvZ2dlcjtcbmxldCB2ZXJib3NlOiBib29sZWFuO1xubGV0IHRyYW5zZm9ybWVyOiAoXG4gIHNvdXJjZTogc3RyaW5nLFxuICBtb2R1bGVJZDogc3RyaW5nLFxuICB0cmFuc2Zvcm1lZE1vZHVsZUlkOiBzdHJpbmdcbikgPT4gUHJvbWlzZTx7IGNvZGU6IHN0cmluZzsgbWFwOiBSYXdTb3VyY2VNYXAgfCBudWxsIH0+O1xuXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGl6ZShkYXRhOiB7XG4gIGlkOiBzdHJpbmc7XG4gIHBvcnQ6IE1lc3NhZ2VQb3J0O1xuICB1c2VyT3B0aW9uczogU2VyaWFsaXplZFVzZXJPcHRpb25zO1xuICByZXNvbHZlZENvbmZpZzogU2VyaWFsaXplZFJlc29sdmVkQ29uZmlnO1xufSkge1xuICBjb25zdCB7XG4gICAgaWQsXG4gICAgcG9ydCxcbiAgICB1c2VyT3B0aW9uczogc2VyaWFsaXplZFVzZXJPcHRpb25zLFxuICAgIHJlc29sdmVkQ29uZmlnOiBzZXJpYWxpemVkUmVzb2x2ZWRDb25maWcsXG4gIH0gPSBkYXRhO1xuICBcbiAgdmVyYm9zZSA9IHNlcmlhbGl6ZWRVc2VyT3B0aW9ucz8udmVyYm9zZSA/PyBmYWxzZTtcbiAgbG9nZ2VyID0gY3JlYXRlTG9nZ2VyKHNlcmlhbGl6ZWRSZXNvbHZlZENvbmZpZz8ubG9nTGV2ZWwgPz8gXCJpbmZvXCIsIHtcbiAgICBwcmVmaXg6IGlkLFxuICB9KTtcbiAgXG4gIC8vIFN0b3JlIHJlc29sdmVkQ29uZmlnIGF0IG1vZHVsZSBsZXZlbCBmb3IgdXNlIGluIG90aGVyIGZ1bmN0aW9uc1xuICByZXNvbHZlZENvbmZpZyA9IHNlcmlhbGl6ZWRSZXNvbHZlZENvbmZpZztcbiAgXG4gIGlmICh2ZXJib3NlKSB7XG4gICAgbG9nZ2VyLmluZm8oYEluaXRpYWxpemluZyB3aXRoIG9wdGlvbnM6ICR7aWR9YCk7XG4gIH1cbiAgbG9hZGVyUG9ydCA9IHBvcnQ7XG4gIFxuICAvLyB3aGVuIHVzZXIgb3B0aW9ucyBhcmUgcHJvdmlkZWQsIHVzZSB0aGUgdXNlciBvcHRpb25zIHVzaW5nIHRoZSBoeWRyYXRlVXNlck9wdGlvbnMgZnVuY3Rpb25cbiAgY29uc3QgcmVzb2x2ZWRVc2VyT3B0aW9ucyA9IGh5ZHJhdGVVc2VyT3B0aW9ucyhzZXJpYWxpemVkVXNlck9wdGlvbnMpO1xuICBpZiAocmVzb2x2ZWRVc2VyT3B0aW9ucy50eXBlID09PSBcImVycm9yXCIpIHtcbiAgICB0aHJvdyByZXNvbHZlZFVzZXJPcHRpb25zLmVycm9yO1xuICB9XG5cbiAgLy8gVXNlIHRoZSBoeWRyYXRlZCB1c2VyIG9wdGlvbnMgZGlyZWN0bHkgKGluY2x1ZGVzIHJlY3JlYXRlZCBmdW5jdGlvbnMpXG4gIHVzZXJPcHRpb25zID0gcmVzb2x2ZWRVc2VyT3B0aW9ucy51c2VyT3B0aW9ucztcblxuICBpc1NlcnZlckZ1bmN0aW9uID0gdXNlck9wdGlvbnMubG9hZGVyPy5pc1NlcnZlckZ1bmN0aW9uQ29kZSA/PyBERUZBVUxUX0xPQURFUl9DT05GSUcuaXNTZXJ2ZXJGdW5jdGlvbkNvZGU7XG4gIGlzQ2xpZW50Q29tcG9uZW50ID0gdXNlck9wdGlvbnMubG9hZGVyPy5pc0NsaWVudENvbXBvbmVudENvZGUgPz8gREVGQVVMVF9MT0FERVJfQ09ORklHLmlzQ2xpZW50Q29tcG9uZW50Q29kZTtcbiAgXG4gIHRyYW5zZm9ybWVyID0gY3JlYXRlVHJhbnNmb3JtZXIoe1xuICAgIG9wdGlvbnM6IHVzZXJPcHRpb25zLFxuICB9KTtcbiAgXG4gIGlmICghaW5pdGlhbGl6ZWQgJiYgbG9hZGVyUG9ydCkge1xuICAgIGxvYWRlclBvcnQucG9zdE1lc3NhZ2Uoe1xuICAgICAgdHlwZTogXCJJTklUSUFMSVpFRF9SRUFDVF9MT0FERVJcIixcbiAgICAgIGlkLFxuICAgIH0gc2F0aXNmaWVzIEluaXRpYWxpemVkUmVhY3RMb2FkZXJNZXNzYWdlKTtcbiAgfVxuICBpbml0aWFsaXplZCA9IHRydWU7XG59XG5cbmV4cG9ydCBjb25zdCBsb2FkOiBMb2FkSG9vayA9IGFzeW5jICh1cmwsIGNvbnRleHQsIG5leHRMb2FkKSA9PiB7XG4gIGlmICghaW5pdGlhbGl6ZWQpIHtcbiAgICAvLyBGYWxsYmFjayBpbml0aWFsaXphdGlvbiB3aGVuIG5vdCBwcm9wZXJseSBzZXQgdXBcbiAgICAvLyBUaGlzIHNob3VsZCBub3QgaGFwcGVuIGluIG5vcm1hbCB1c2FnZSwgYnV0IHByb3ZpZGVzIGEgYmFzaWMgZmFsbGJhY2tcbiAgICBpbml0aWFsaXplKHtcbiAgICAgIGlkOiBcInJlYWN0LWxvYWRlclwiLFxuICAgICAgcG9ydDogcGFyZW50UG9ydCEsXG4gICAgICB1c2VyT3B0aW9uczoge30gYXMgYW55LFxuICAgICAgcmVzb2x2ZWRDb25maWc6IHt9IGFzIGFueSxcbiAgICB9KTtcbiAgfVxuICBjb25zdCB2ZXJib3NlID0gdXNlck9wdGlvbnM/LnZlcmJvc2UgPz8gZmFsc2U7XG4gIGlmICh2ZXJib3NlKSB7XG4gICAgbG9nZ2VyLmluZm8oYEF0dGVtcHRpbmcgdG8gbG9hZDogJHt1cmx9YCk7XG4gICAgbG9nZ2VyLmluZm8oYENvbnRleHQ6ICR7SlNPTi5zdHJpbmdpZnkoe1xuICAgICAgZm9ybWF0OiBjb250ZXh0LmZvcm1hdCxcbiAgICAgIGNvbmRpdGlvbnM6IGNvbnRleHQuY29uZGl0aW9ucyxcbiAgICB9KX1gKTtcbiAgfVxuXG4gIGNvbnN0IHsgZm9ybWF0IH0gPSBjb250ZXh0O1xuICBpZiAoZm9ybWF0ID09PSBcIm1vZHVsZVwiIHx8IGZvcm1hdCA9PT0gXCJtb2R1bGUtdHlwZXNjcmlwdFwiKSB7XG4gICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgIGxvZ2dlci5pbmZvKGBMb2FkaW5nIG1vZHVsZTogJHt1cmx9YCk7XG4gICAgfVxuICAgIFxuICAgIC8vIExvYWQgdGhlIFVSTCBub3JtYWxseVxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IG5leHRMb2FkKHVybCwgY29udGV4dCk7XG4gICAgXG4gICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgIGxvZ2dlci5pbmZvKGBOZXh0IGxvYWQgcmVzdWx0OiAke0pTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgZm9ybWF0OiByZXN1bHQuZm9ybWF0LFxuICAgICAgICBzaG9ydENpcmN1aXQ6IHJlc3VsdC5zaG9ydENpcmN1aXQsXG4gICAgICAgIHNvdXJjZTogdHlwZW9mIHJlc3VsdC5zb3VyY2UsXG4gICAgICB9KX1gKTtcbiAgICB9XG5cbiAgICBsZXQgc291cmNlID1cbiAgICAgIHR5cGVvZiByZXN1bHQuc291cmNlID09PSBcInN0cmluZ1wiXG4gICAgICAgID8gcmVzdWx0LnNvdXJjZVxuICAgICAgICA6IHJlc3VsdC5zb3VyY2UgaW5zdGFuY2VvZiBVaW50OEFycmF5XG4gICAgICAgID8gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKHJlc3VsdC5zb3VyY2UpXG4gICAgICAgIDogU3RyaW5nKHJlc3VsdC5zb3VyY2UpO1xuXG4gICAgLy8gRml4IENKUyBSZWFjdCBuYW1lZCBpbXBvcnRzOiBSZWFjdCdzIHJlYWN0LXNlcnZlciBjb25kaXRpb24gZXhwb3J0cyBDSlMsXG4gICAgLy8gYnV0IGVzYnVpbGQvdHN4IHRyYW5zZm9ybXMgcHJvZHVjZSBFU00gbmFtZWQgaW1wb3J0cyB0aGF0IGZhaWwgYXQgcnVudGltZS5cbiAgICAvLyBSZXdyaXRlIGBpbXBvcnQgeyBYIH0gZnJvbSBcInJlYWN0XCJgIOKGkiBgaW1wb3J0IF9fcmVhY3QgZnJvbSBcInJlYWN0XCI7IGNvbnN0IHsgWCB9ID0gX19yZWFjdDtgXG4gICAgaWYgKCF1cmwuaW5jbHVkZXMoJ25vZGVfbW9kdWxlcycpKSB7XG4gICAgICBjb25zdCBuYW1lZEltcG9ydFJlID0gL2ltcG9ydFxccypcXHsoW159XSspXFx9XFxzKmZyb21cXHMqW1wiJ11yZWFjdFtcIiddXFxzKjs/L2c7XG4gICAgICBpZiAobmFtZWRJbXBvcnRSZS50ZXN0KHNvdXJjZSkpIHtcbiAgICAgICAgbmFtZWRJbXBvcnRSZS5sYXN0SW5kZXggPSAwO1xuICAgICAgICBsZXQgY291bnRlciA9IDA7XG4gICAgICAgIHNvdXJjZSA9IHNvdXJjZS5yZXBsYWNlKG5hbWVkSW1wb3J0UmUsIChfbWF0Y2g6IHN0cmluZywgaW1wb3J0czogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgY29uc3QgYWxpYXMgPSBgX19yZWFjdF9janNfJHtjb3VudGVyKyt9YDtcbiAgICAgICAgICByZXR1cm4gYGltcG9ydCAke2FsaWFzfSBmcm9tIFwicmVhY3RcIjsgY29uc3QgeyR7aW1wb3J0c319ID0gJHthbGlhc307YDtcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgICAgbG9nZ2VyLmluZm8oYFJld3JvdGUgQ0pTIFJlYWN0IG5hbWVkIGltcG9ydHMgaW46ICR7dXJsfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgLy8gQ2hlY2sgZm9yIGZpbGUtbGV2ZWwgc2VydmVyIGRpcmVjdGl2ZSBmaXJzdFxuICAgIGNvbnN0IGhhc0ZpbGVMZXZlbFNlcnZlckRpcmVjdGl2ZSA9XG4gICAgICBzb3VyY2Uuc3RhcnRzV2l0aCgnXCJ1c2Ugc2VydmVyXCInKSB8fCBzb3VyY2Uuc3RhcnRzV2l0aChcIid1c2Ugc2VydmVyJ1wiKTtcbiAgICBjb25zdCBoYXNGaWxlTGV2ZWxDbGllbnREaXJlY3RpdmUgPVxuICAgICAgc291cmNlLnN0YXJ0c1dpdGgoJ1widXNlIGNsaWVudFwiJykgfHwgc291cmNlLnN0YXJ0c1dpdGgoXCIndXNlIGNsaWVudCdcIik7XG5cbiAgICBjb25zdCBpc1NlcnZlciA9XG4gICAgICBoYXNGaWxlTGV2ZWxTZXJ2ZXJEaXJlY3RpdmUgfHxcbiAgICAgICh0eXBlb2YgaXNTZXJ2ZXJGdW5jdGlvbiA9PT0gXCJmdW5jdGlvblwiXG4gICAgICAgID8gaXNTZXJ2ZXJGdW5jdGlvbihzb3VyY2UsIHVybClcbiAgICAgICAgOiBmYWxzZSk7XG5cbiAgICBjb25zdCBpc0NsaWVudCA9XG4gICAgICBoYXNGaWxlTGV2ZWxDbGllbnREaXJlY3RpdmUgfHxcbiAgICAgICh0eXBlb2YgaXNDbGllbnRDb21wb25lbnQgPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICA/IGlzQ2xpZW50Q29tcG9uZW50KHNvdXJjZSwgdXJsKVxuICAgICAgICA6IGZhbHNlKTtcblxuICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICBsZXQgc3RhcnRQcmV2aWV3SW5kZXggPSAwO1xuICAgICAgbGV0IHN0YXJ0TGluZSA9IDA7XG4gICAgICBjb25zdCBsaW5lcyA9IHNvdXJjZS5zcGxpdChcIlxcblwiKTtcbiAgICAgIHdoaWxlIChcbiAgICAgICAgbGluZXNbc3RhcnRMaW5lXS50cmltKCkgPT09IFwiXCIgfHwgbGluZXNbc3RhcnRMaW5lXS50cmltKCkgPT09IFwiXFxyXCIgfHxcbiAgICAgICAgLy8gY29tbWVudCBsaW5lc1xuICAgICAgICBsaW5lc1tzdGFydExpbmVdLnRyaW0oKS5zdGFydHNXaXRoKFwiLy9cIilcbiAgICAgICAgfHwgbGluZXNbc3RhcnRMaW5lXS50cmltKCkuc3RhcnRzV2l0aChcIi8qKlwiKVxuICAgICAgICB8fCBsaW5lc1tzdGFydExpbmVdLnRyaW0oKS5zdGFydHNXaXRoKFwiKlwiKVxuICAgICAgKSB7XG4gICAgICAgIHN0YXJ0UHJldmlld0luZGV4ICs9IGxpbmVzW3N0YXJ0TGluZV0ubGVuZ3RoO1xuICAgICAgICBzdGFydExpbmUrKztcbiAgICAgIH1cbiAgICAgIGxvZ2dlci5pbmZvKGBNb2R1bGUgYW5hbHlzaXM6ICR7SlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICB1cmwsXG4gICAgICAgIGlzU2VydmVyLFxuICAgICAgICBpc0NsaWVudCxcbiAgICAgICAgaGFzRmlsZUxldmVsU2VydmVyRGlyZWN0aXZlLFxuICAgICAgICBoYXNGaWxlTGV2ZWxDbGllbnREaXJlY3RpdmUsXG4gICAgICAgIHNvdXJjZUxlbmd0aDogc291cmNlLmxlbmd0aCxcbiAgICAgICAgc291cmNlUHJldmlldzogc291cmNlLnNsaWNlKHN0YXJ0UHJldmlld0luZGV4LCBzdGFydFByZXZpZXdJbmRleCArIDEwMCkgKyBcIi4uLlwiLFxuICAgICAgfSl9YCk7XG4gICAgfVxuXG4gICAgaWYgKCFpc1NlcnZlciAmJiAhaXNDbGllbnQpIHtcbiAgICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICAgIGxvZ2dlci5pbmZvKGBTa2lwcGluZyBub24tc2VydmVyL25vbi1jbGllbnQgbW9kdWxlOiAke3VybH1gKTtcbiAgICAgIH1cbiAgICAgIC8vIFJldHVybiBtb2RpZmllZCBzb3VyY2UgaWYgQ0pTIFJlYWN0IGltcG9ydHMgd2VyZSByZXdyaXR0ZW5cbiAgICAgIHJldHVybiB7IC4uLnJlc3VsdCwgc291cmNlIH07XG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIGZpbGUgVVJMc1xuICAgIGNvbnN0IGZpbGVQYXRoID0gdXJsLnN0YXJ0c1dpdGgoXCJmaWxlOi8vXCIpID8gZmlsZVVSTFRvUGF0aCh1cmwpIDogdXJsO1xuICAgIGlmICh2ZXJib3NlKSB7XG4gICAgICBsb2dnZXIuaW5mbyhgRmlsZSBwYXRoOiAke2ZpbGVQYXRofWApO1xuICAgIH1cblxuICAgIGlmKHR5cGVvZiB1c2VyT3B0aW9ucy5tb2R1bGVJRCAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAvLyBFbnN1cmUgd2UgaGF2ZSBwcm9wZXIgYnVpbGQgY29udGV4dCBmb3IgUlNDIHdvcmtlclxuICAgICAgLy8gSWYgY29uZmlnRW52IGlzIG5vdCBhdmFpbGFibGUgb3IgZG9lc24ndCBpbmRpY2F0ZSBidWlsZCBtb2RlLCBjcmVhdGUgYSBidWlsZC1jb21wYXRpYmxlIGNvbmZpZ0VudlxuICAgICAgY29uc3QgYnVpbGRDb25maWdFbnYgPSByZXNvbHZlZENvbmZpZz8uY29uZmlnRW52ID8/IHsgY29tbWFuZDogXCJidWlsZFwiLCBtb2RlOiBcInByb2R1Y3Rpb25cIiB9O1xuICAgICAgXG4gICAgICB1c2VyT3B0aW9ucy5tb2R1bGVJRCA9IGNyZWF0ZURlZmF1bHRNb2R1bGVJRCh7XG4gICAgICAgIG1vZHVsZUJhc2U6IHVzZXJPcHRpb25zLm1vZHVsZUJhc2UsXG4gICAgICAgIG1vZHVsZUJhc2VQYXRoOiB1c2VyT3B0aW9ucy5tb2R1bGVCYXNlUGF0aCxcbiAgICAgICAgYXV0b0Rpc2NvdmVyOiB1c2VyT3B0aW9ucy5hdXRvRGlzY292ZXIsXG4gICAgICAgIGJ1aWxkOiB1c2VyT3B0aW9ucy5idWlsZCxcbiAgICAgICAgZGV2OiB1c2VyT3B0aW9ucy5kZXYsXG4gICAgICAgIG1vZHVsZUJhc2VVUkw6IHVzZXJPcHRpb25zLm1vZHVsZUJhc2VVUkwsXG4gICAgICAgIHByb2plY3RSb290OiB1c2VyT3B0aW9ucy5wcm9qZWN0Um9vdCxcbiAgICAgIH0sIGJ1aWxkQ29uZmlnRW52KTtcbiAgICB9XG5cbiAgICAvLyBOb3JtYWxpemUgdGhlIFVSTCB1c2luZyB0aGUgc2FtZSBsb2dpYyBhcyBwbHVnaW4uc2VydmVyLnRzXG4gICAgbGV0IG1vZHVsZUlEID0gZmlsZVBhdGg7XG4gICAgbGV0IGZpbmFsSUQgPSBmaWxlUGF0aDtcbiAgICBpZiAodXNlck9wdGlvbnM/Lm5vcm1hbGl6ZXIpIHtcbiAgICAgIGNvbnN0IFssIHZhbHVlXSA9IHVzZXJPcHRpb25zLm5vcm1hbGl6ZXIoZmlsZVBhdGgpO1xuICAgICAgbW9kdWxlSUQgPSBqb2luKHVzZXJPcHRpb25zLm1vZHVsZUJhc2VQYXRoLCB2YWx1ZSk7XG4gICAgICBmaW5hbElEID0gdXNlck9wdGlvbnMubW9kdWxlSUQ/Lihtb2R1bGVJRCkgfHwgbW9kdWxlSUQ7XG4gICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICBsb2dnZXIuaW5mbyhgTm9ybWFsaXplZCBJRHM6ICR7bW9kdWxlSUR9IC0+ICR7ZmluYWxJRH1gKTtcbiAgICAgICAgbG9nZ2VyLmluZm8oYHVzZXJPcHRpb25zOiAke0pTT04uc3RyaW5naWZ5KHVzZXJPcHRpb25zKX1gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB7IGNvZGU6IHRyYW5zZm9ybWVkLCBtYXAgfSA9IGF3YWl0IHRyYW5zZm9ybWVyKHNvdXJjZSwgbW9kdWxlSUQsIGZpbmFsSUQpO1xuXG4gICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgIGxvZ2dlci5pbmZvKGBUcmFuc2Zvcm1hdGlvbiByZXN1bHQ6ICR7SlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBvcmlnaW5hbExlbmd0aDogc291cmNlLmxlbmd0aCxcbiAgICAgICAgdHJhbnNmb3JtZWRMZW5ndGg6IHRyYW5zZm9ybWVkLmxlbmd0aCxcbiAgICAgICAgd2FzVHJhbnNmb3JtZWQ6IHNvdXJjZSAhPT0gdHJhbnNmb3JtZWQsXG4gICAgICAgIGhhc1NvdXJjZU1hcDogISFtYXAsXG4gICAgICB9KX1gKTtcbiAgICB9XG5cbiAgICBpZiAobG9hZGVyUG9ydCkge1xuICAgICAgaWYgKHZlcmJvc2UpIHtcbiAgICAgICAgbG9nZ2VyLmluZm8oXCJTZW5kaW5nIFNFUlZFUl9NT0RVTEUgbWVzc2FnZVwiKTtcbiAgICAgIH1cbiAgICAgIGxvYWRlclBvcnQucG9zdE1lc3NhZ2Uoe1xuICAgICAgICB0eXBlOiBcIlNFUlZFUl9NT0RVTEVcIixcbiAgICAgICAgaWQ6IGZpbmFsSUQsXG4gICAgICAgIHVybDogZmlsZVBhdGgsXG4gICAgICAgIHNvdXJjZTogdHJhbnNmb3JtZWQsXG4gICAgICB9IHNhdGlzZmllcyBTZXJ2ZXJNb2R1bGVNZXNzYWdlKTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ucmVzdWx0LFxuICAgICAgc291cmNlOiB0cmFuc2Zvcm1lZCxcbiAgICAgIG1hcCxcbiAgICB9O1xuICB9XG5cbiAgaWYgKHZlcmJvc2UpIHtcbiAgICBsb2dnZXIuaW5mbyhgU2tpcHBpbmcgbm9uLW1vZHVsZSBmb3JtYXQ6ICR7Zm9ybWF0fWApO1xuICB9XG4gIHJldHVybiBuZXh0TG9hZCh1cmwsIGNvbnRleHQpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlc29sdmU6IFJlc29sdmVIb29rID0gYXN5bmMgKHNwZWNpZmllciwgY29udGV4dCwgbmV4dFJlc29sdmUpID0+IHtcbiAgdmVyYm9zZSA9IHVzZXJPcHRpb25zPy52ZXJib3NlID8/IGZhbHNlO1xuICBpZiAodmVyYm9zZSkge1xuICAgIGxvZ2dlci5pbmZvKGBSZXNvbHZpbmc6ICR7c3BlY2lmaWVyfWApO1xuICAgIGxvZ2dlci5pbmZvKGBSZXNvbHZlIGNvbnRleHQ6ICR7SlNPTi5zdHJpbmdpZnkoY29udGV4dCl9YCk7XG4gIH1cbiAgY29uc3QgcmVzdWx0ID0gYXdhaXQgbmV4dFJlc29sdmUoc3BlY2lmaWVyLCBjb250ZXh0KTtcbiAgaWYgKHZlcmJvc2UpIHtcbiAgICBsb2dnZXIuaW5mbyhgUmVzb2x2ZSByZXN1bHQ6ICR7SlNPTi5zdHJpbmdpZnkocmVzdWx0KX1gKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufTtcbiJdLCJuYW1lcyI6WyJ2ZXJib3NlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQW1DQSxJQUFJLFdBQWMsR0FBQSxLQUFBO0FBQ2xCLElBQUksV0FBQTtBQUNKLElBQUksVUFBQTtBQUNKLElBQUksY0FBQTtBQUNKLElBQUksbUJBSU8scUJBQXNCLENBQUEsb0JBQUE7QUFFakMsSUFBSSxvQkFJTyxxQkFBc0IsQ0FBQSxxQkFBQTtBQUNqQyxJQUFJLE1BQUE7QUFDSixJQUFJLE9BQUE7QUFDSixJQUFJLFdBQUE7QUFNRyxTQUFTLFdBQVcsSUFLeEIsRUFBQTtBQUNELEVBQU0sTUFBQTtBQUFBLElBQ0osRUFBQTtBQUFBLElBQ0EsSUFBQTtBQUFBLElBQ0EsV0FBYSxFQUFBLHFCQUFBO0FBQUEsSUFDYixjQUFnQixFQUFBO0FBQUEsR0FDZCxHQUFBLElBQUE7QUFFSixFQUFBLE9BQUEsR0FBVSx1QkFBdUIsT0FBVyxJQUFBLEtBQUE7QUFDNUMsRUFBUyxNQUFBLEdBQUEsWUFBQSxDQUFhLHdCQUEwQixFQUFBLFFBQUEsSUFBWSxNQUFRLEVBQUE7QUFBQSxJQUNsRSxNQUFRLEVBQUE7QUFBQSxHQUNULENBQUE7QUFHRCxFQUFpQixjQUFBLEdBQUEs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
|
|
138
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3QtbG9hZGVyLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi9wbHVnaW4vbG9hZGVyL3JlYWN0LWxvYWRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIFJlc29sdmVkVXNlck9wdGlvbnMsXG4gIFNlcmlhbGl6ZWRSZXNvbHZlZENvbmZpZyxcbiAgU2VyaWFsaXplZFVzZXJPcHRpb25zLFxufSBmcm9tIFwiLi4vdHlwZXMuanNcIjtcbmltcG9ydCB0eXBlIHsgTW9kdWxlSW5mbyB9IGZyb20gXCJyb2xsdXBcIjtcbmltcG9ydCB7IHBhcmVudFBvcnQgfSBmcm9tIFwibm9kZTp3b3JrZXJfdGhyZWFkc1wiO1xuaW1wb3J0IHR5cGUgeyBNZXNzYWdlUG9ydCB9IGZyb20gXCJub2RlOndvcmtlcl90aHJlYWRzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEluaXRpYWxpemVkUmVhY3RMb2FkZXJNZXNzYWdlLFxuICBTZXJ2ZXJNb2R1bGVNZXNzYWdlLFxufSBmcm9tIFwiLi4vd29ya2VyL3JzYy90eXBlcy5qc1wiO1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCB9IGZyb20gXCJub2RlOnVybFwiO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB7IGh5ZHJhdGVVc2VyT3B0aW9ucyB9IGZyb20gXCIuLi9oZWxwZXJzL2h5ZHJhdGVVc2VyT3B0aW9ucy5qc1wiO1xuaW1wb3J0IHsgREVGQVVMVF9MT0FERVJfQ09ORklHIH0gZnJvbSBcIi4uL2NvbmZpZy9kZWZhdWx0cy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBMb2FkSG9vaywgUmVzb2x2ZUhvb2sgfSBmcm9tIFwibm9kZTptb2R1bGVcIjtcbmltcG9ydCB0eXBlIHsgUmF3U291cmNlTWFwIH0gZnJvbSBcInNvdXJjZS1tYXBcIjtcbmltcG9ydCB7IGNyZWF0ZVRyYW5zZm9ybWVyIH0gZnJvbSBcIi4vY3JlYXRlVHJhbnNmb3JtZXIuanNcIjtcblxuaW1wb3J0IHsgY3JlYXRlTG9nZ2VyLCB0eXBlIExvZ2dlciB9IGZyb20gXCJ2aXRlXCI7XG5pbXBvcnQgeyBjcmVhdGVEZWZhdWx0TW9kdWxlSUQgfSBmcm9tIFwiLi4vY29uZmlnL2NyZWF0ZU1vZHVsZUlELmpzXCI7XG5cbmV4cG9ydCB0eXBlIExvYWRlck9wdGlvbnMgPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHJlc29sdmVEZXBlbmRlbmNpZXM/OiBib29sZWFuO1xuICBmb3JtYXQ/OiBzdHJpbmc7XG4gIGNvbmRpdGlvbnM/OiBzdHJpbmdbXTtcbiAgaW1wb3J0QXNzZXJ0aW9ucz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBpbXBvcnRBdHRyaWJ1dGVzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHNvdXJjZTogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgTG9hZGVyRnVuY3Rpb24gPSAob3B0aW9uczogTG9hZGVyT3B0aW9ucykgPT4gUHJvbWlzZTxNb2R1bGVJbmZvPjtcblxubGV0IGluaXRpYWxpemVkID0gZmFsc2U7XG5sZXQgdXNlck9wdGlvbnM6IFJlc29sdmVkVXNlck9wdGlvbnM7XG5sZXQgbG9hZGVyUG9ydDogTWVzc2FnZVBvcnQgfCBudWxsO1xubGV0IHJlc29sdmVkQ29uZmlnOiBTZXJpYWxpemVkUmVzb2x2ZWRDb25maWc7XG5sZXQgaXNTZXJ2ZXJGdW5jdGlvbjpcbiAgfCBSZWdFeHBNYXRjaEFycmF5XG4gIHwgUmVnRXhwXG4gIHwgKChzb3VyY2U6IHN0cmluZywgdXJsOiBzdHJpbmcpID0+IGJvb2xlYW4pXG4gIHwgbnVsbCA9IERFRkFVTFRfTE9BREVSX0NPTkZJRy5pc1NlcnZlckZ1bmN0aW9uQ29kZTtcblxubGV0IGlzQ2xpZW50Q29tcG9uZW50OlxuICB8IFJlZ0V4cE1hdGNoQXJyYXlcbiAgfCBSZWdFeHBcbiAgfCAoKHNvdXJjZTogc3RyaW5nLCB1cmw6IHN0cmluZykgPT4gYm9vbGVhbilcbiAgfCBudWxsID0gREVGQVVMVF9MT0FERVJfQ09ORklHLmlzQ2xpZW50Q29tcG9uZW50Q29kZTtcbmxldCBsb2dnZXI6IExvZ2dlcjtcbmxldCB2ZXJib3NlOiBib29sZWFuO1xubGV0IHRyYW5zZm9ybWVyOiAoXG4gIHNvdXJjZTogc3RyaW5nLFxuICBtb2R1bGVJZDogc3RyaW5nLFxuICB0cmFuc2Zvcm1lZE1vZHVsZUlkOiBzdHJpbmdcbikgPT4gUHJvbWlzZTx7IGNvZGU6IHN0cmluZzsgbWFwOiBSYXdTb3VyY2VNYXAgfCBudWxsIH0+O1xuXG5leHBvcnQgZnVuY3Rpb24gaW5pdGlhbGl6ZShkYXRhOiB7XG4gIGlkOiBzdHJpbmc7XG4gIHBvcnQ6IE1lc3NhZ2VQb3J0O1xuICB1c2VyT3B0aW9uczogU2VyaWFsaXplZFVzZXJPcHRpb25zO1xuICByZXNvbHZlZENvbmZpZzogU2VyaWFsaXplZFJlc29sdmVkQ29uZmlnO1xufSkge1xuICBjb25zdCB7XG4gICAgaWQsXG4gICAgcG9ydCxcbiAgICB1c2VyT3B0aW9uczogc2VyaWFsaXplZFVzZXJPcHRpb25zLFxuICAgIHJlc29sdmVkQ29uZmlnOiBzZXJpYWxpemVkUmVzb2x2ZWRDb25maWcsXG4gIH0gPSBkYXRhO1xuICBcbiAgdmVyYm9zZSA9IHNlcmlhbGl6ZWRVc2VyT3B0aW9ucz8udmVyYm9zZSA/PyBmYWxzZTtcbiAgbG9nZ2VyID0gY3JlYXRlTG9nZ2VyKHNlcmlhbGl6ZWRSZXNvbHZlZENvbmZpZz8ubG9nTGV2ZWwgPz8gXCJpbmZvXCIsIHtcbiAgICBwcmVmaXg6IGlkLFxuICB9KTtcbiAgXG4gIC8vIFN0b3JlIHJlc29sdmVkQ29uZmlnIGF0IG1vZHVsZSBsZXZlbCBmb3IgdXNlIGluIG90aGVyIGZ1bmN0aW9uc1xuICByZXNvbHZlZENvbmZpZyA9IHNlcmlhbGl6ZWRSZXNvbHZlZENvbmZpZztcbiAgXG4gIGlmICh2ZXJib3NlKSB7XG4gICAgbG9nZ2VyLmluZm8oYEluaXRpYWxpemluZyB3aXRoIG9wdGlvbnM6ICR7aWR9YCk7XG4gIH1cbiAgbG9hZGVyUG9ydCA9IHBvcnQ7XG4gIFxuICAvLyB3aGVuIHVzZXIgb3B0aW9ucyBhcmUgcHJvdmlkZWQsIHVzZSB0aGUgdXNlciBvcHRpb25zIHVzaW5nIHRoZSBoeWRyYXRlVXNlck9wdGlvbnMgZnVuY3Rpb25cbiAgY29uc3QgcmVzb2x2ZWRVc2VyT3B0aW9ucyA9IGh5ZHJhdGVVc2VyT3B0aW9ucyhzZXJpYWxpemVkVXNlck9wdGlvbnMpO1xuICBpZiAocmVzb2x2ZWRVc2VyT3B0aW9ucy50eXBlID09PSBcImVycm9yXCIpIHtcbiAgICB0aHJvdyByZXNvbHZlZFVzZXJPcHRpb25zLmVycm9yO1xuICB9XG5cbiAgLy8gVXNlIHRoZSBoeWRyYXRlZCB1c2VyIG9wdGlvbnMgZGlyZWN0bHkgKGluY2x1ZGVzIHJlY3JlYXRlZCBmdW5jdGlvbnMpXG4gIHVzZXJPcHRpb25zID0gcmVzb2x2ZWRVc2VyT3B0aW9ucy51c2VyT3B0aW9ucztcblxuICBpc1NlcnZlckZ1bmN0aW9uID0gdXNlck9wdGlvbnMubG9hZGVyPy5pc1NlcnZlckZ1bmN0aW9uQ29kZSA/PyBERUZBVUxUX0xPQURFUl9DT05GSUcuaXNTZXJ2ZXJGdW5jdGlvbkNvZGU7XG4gIGlzQ2xpZW50Q29tcG9uZW50ID0gdXNlck9wdGlvbnMubG9hZGVyPy5pc0NsaWVudENvbXBvbmVudENvZGUgPz8gREVGQVVMVF9MT0FERVJfQ09ORklHLmlzQ2xpZW50Q29tcG9uZW50Q29kZTtcbiAgXG4gIHRyYW5zZm9ybWVyID0gY3JlYXRlVHJhbnNmb3JtZXIoe1xuICAgIG9wdGlvbnM6IHVzZXJPcHRpb25zLFxuICB9KTtcbiAgXG4gIGlmICghaW5pdGlhbGl6ZWQgJiYgbG9hZGVyUG9ydCkge1xuICAgIGxvYWRlclBvcnQucG9zdE1lc3NhZ2Uoe1xuICAgICAgdHlwZTogXCJJTklUSUFMSVpFRF9SRUFDVF9MT0FERVJcIixcbiAgICAgIGlkLFxuICAgIH0gc2F0aXNmaWVzIEluaXRpYWxpemVkUmVhY3RMb2FkZXJNZXNzYWdlKTtcbiAgfVxuICBpbml0aWFsaXplZCA9IHRydWU7XG59XG5cbmV4cG9ydCBjb25zdCBsb2FkOiBMb2FkSG9vayA9IGFzeW5jICh1cmwsIGNvbnRleHQsIG5leHRMb2FkKSA9PiB7XG4gIGlmICghaW5pdGlhbGl6ZWQpIHtcbiAgICAvLyBGYWxsYmFjayBpbml0aWFsaXphdGlvbiB3aGVuIG5vdCBwcm9wZXJseSBzZXQgdXBcbiAgICAvLyBUaGlzIHNob3VsZCBub3QgaGFwcGVuIGluIG5vcm1hbCB1c2FnZSwgYnV0IHByb3ZpZGVzIGEgYmFzaWMgZmFsbGJhY2tcbiAgICBpbml0aWFsaXplKHtcbiAgICAgIGlkOiBcInJlYWN0LWxvYWRlclwiLFxuICAgICAgcG9ydDogcGFyZW50UG9ydCEsXG4gICAgICB1c2VyT3B0aW9uczoge30gYXMgYW55LFxuICAgICAgcmVzb2x2ZWRDb25maWc6IHt9IGFzIGFueSxcbiAgICB9KTtcbiAgfVxuICBjb25zdCB2ZXJib3NlID0gdXNlck9wdGlvbnM/LnZlcmJvc2UgPz8gZmFsc2U7XG5cbiAgY29uc3QgeyBmb3JtYXQgfSA9IGNvbnRleHQ7XG4gIGlmIChmb3JtYXQgPT09IFwibW9kdWxlXCIgfHwgZm9ybWF0ID09PSBcIm1vZHVsZS10eXBlc2NyaXB0XCIpIHtcbiAgICAvLyBMb2FkIHRoZSBVUkwgbm9ybWFsbHlcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBuZXh0TG9hZCh1cmwsIGNvbnRleHQpO1xuXG4gICAgbGV0IHNvdXJjZSA9XG4gICAgICB0eXBlb2YgcmVzdWx0LnNvdXJjZSA9PT0gXCJzdHJpbmdcIlxuICAgICAgICA/IHJlc3VsdC5zb3VyY2VcbiAgICAgICAgOiByZXN1bHQuc291cmNlIGluc3RhbmNlb2YgVWludDhBcnJheVxuICAgICAgICA/IG5ldyBUZXh0RGVjb2RlcigpLmRlY29kZShyZXN1bHQuc291cmNlKVxuICAgICAgICA6IFN0cmluZyhyZXN1bHQuc291cmNlKTtcblxuICAgIC8vIEZpeCBDSlMgUmVhY3QgbmFtZWQgaW1wb3J0czogUmVhY3QncyByZWFjdC1zZXJ2ZXIgY29uZGl0aW9uIGV4cG9ydHMgQ0pTLFxuICAgIC8vIGJ1dCBlc2J1aWxkL3RzeCB0cmFuc2Zvcm1zIHByb2R1Y2UgRVNNIG5hbWVkIGltcG9ydHMgdGhhdCBmYWlsIGF0IHJ1bnRpbWUuXG4gICAgLy8gUmV3cml0ZSBgaW1wb3J0IHsgWCB9IGZyb20gXCJyZWFjdFwiYCDihpIgYGltcG9ydCBfX3JlYWN0IGZyb20gXCJyZWFjdFwiOyBjb25zdCB7IFggfSA9IF9fcmVhY3Q7YFxuICAgIGlmICghdXJsLmluY2x1ZGVzKCdub2RlX21vZHVsZXMnKSkge1xuICAgICAgY29uc3QgbmFtZWRJbXBvcnRSZSA9IC9pbXBvcnRcXHMqXFx7KFtefV0rKVxcfVxccypmcm9tXFxzKltcIiddcmVhY3RbXCInXVxccyo7Py9nO1xuICAgICAgaWYgKG5hbWVkSW1wb3J0UmUudGVzdChzb3VyY2UpKSB7XG4gICAgICAgIG5hbWVkSW1wb3J0UmUubGFzdEluZGV4ID0gMDtcbiAgICAgICAgbGV0IGNvdW50ZXIgPSAwO1xuICAgICAgICBzb3VyY2UgPSBzb3VyY2UucmVwbGFjZShuYW1lZEltcG9ydFJlLCAoX21hdGNoOiBzdHJpbmcsIGltcG9ydHM6IHN0cmluZykgPT4ge1xuICAgICAgICAgIGNvbnN0IGFsaWFzID0gYF9fcmVhY3RfY2pzXyR7Y291bnRlcisrfWA7XG4gICAgICAgICAgcmV0dXJuIGBpbXBvcnQgJHthbGlhc30gZnJvbSBcInJlYWN0XCI7IGNvbnN0IHske2ltcG9ydHN9fSA9ICR7YWxpYXN9O2A7XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAodmVyYm9zZSkge1xuICAgICAgICAgIGxvZ2dlci5pbmZvKGBSZXdyb3RlIENKUyBSZWFjdCBuYW1lZCBpbXBvcnRzIGluOiAke3VybH1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciBmaWxlLWxldmVsIHNlcnZlciBkaXJlY3RpdmUgZmlyc3RcbiAgICBjb25zdCBoYXNGaWxlTGV2ZWxTZXJ2ZXJEaXJlY3RpdmUgPVxuICAgICAgc291cmNlLnN0YXJ0c1dpdGgoJ1widXNlIHNlcnZlclwiJykgfHwgc291cmNlLnN0YXJ0c1dpdGgoXCIndXNlIHNlcnZlcidcIik7XG4gICAgY29uc3QgaGFzRmlsZUxldmVsQ2xpZW50RGlyZWN0aXZlID1cbiAgICAgIHNvdXJjZS5zdGFydHNXaXRoKCdcInVzZSBjbGllbnRcIicpIHx8IHNvdXJjZS5zdGFydHNXaXRoKFwiJ3VzZSBjbGllbnQnXCIpO1xuXG4gICAgY29uc3QgaXNTZXJ2ZXIgPVxuICAgICAgaGFzRmlsZUxldmVsU2VydmVyRGlyZWN0aXZlIHx8XG4gICAgICAodHlwZW9mIGlzU2VydmVyRnVuY3Rpb24gPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICA/IGlzU2VydmVyRnVuY3Rpb24oc291cmNlLCB1cmwpXG4gICAgICAgIDogZmFsc2UpO1xuXG4gICAgY29uc3QgaXNDbGllbnQgPVxuICAgICAgaGFzRmlsZUxldmVsQ2xpZW50RGlyZWN0aXZlIHx8XG4gICAgICAodHlwZW9mIGlzQ2xpZW50Q29tcG9uZW50ID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgPyBpc0NsaWVudENvbXBvbmVudChzb3VyY2UsIHVybClcbiAgICAgICAgOiBmYWxzZSk7XG5cbiAgICBpZiAoIWlzU2VydmVyICYmICFpc0NsaWVudCkge1xuICAgICAgLy8gUmV0dXJuIG1vZGlmaWVkIHNvdXJjZSBpZiBDSlMgUmVhY3QgaW1wb3J0cyB3ZXJlIHJld3JpdHRlblxuICAgICAgcmV0dXJuIHsgLi4ucmVzdWx0LCBzb3VyY2UgfTtcbiAgICB9XG5cbiAgICBpZiAodmVyYm9zZSkge1xuICAgICAgbG9nZ2VyLmluZm8oYFtyZWFjdC1sb2FkZXJdICR7aXNTZXJ2ZXIgPyAnc2VydmVyJyA6ICdjbGllbnQnfSBtb2R1bGU6ICR7dXJsfWApO1xuICAgIH1cblxuICAgIC8vIEhhbmRsZSBmaWxlIFVSTHNcbiAgICBjb25zdCBmaWxlUGF0aCA9IHVybC5zdGFydHNXaXRoKFwiZmlsZTovL1wiKSA/IGZpbGVVUkxUb1BhdGgodXJsKSA6IHVybDtcblxuICAgIGlmKHR5cGVvZiB1c2VyT3B0aW9ucy5tb2R1bGVJRCAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAvLyBFbnN1cmUgd2UgaGF2ZSBwcm9wZXIgYnVpbGQgY29udGV4dCBmb3IgUlNDIHdvcmtlclxuICAgICAgLy8gSWYgY29uZmlnRW52IGlzIG5vdCBhdmFpbGFibGUgb3IgZG9lc24ndCBpbmRpY2F0ZSBidWlsZCBtb2RlLCBjcmVhdGUgYSBidWlsZC1jb21wYXRpYmxlIGNvbmZpZ0VudlxuICAgICAgY29uc3QgYnVpbGRDb25maWdFbnYgPSByZXNvbHZlZENvbmZpZz8uY29uZmlnRW52ID8/IHsgY29tbWFuZDogXCJidWlsZFwiLCBtb2RlOiBcInByb2R1Y3Rpb25cIiB9O1xuICAgICAgXG4gICAgICB1c2VyT3B0aW9ucy5tb2R1bGVJRCA9IGNyZWF0ZURlZmF1bHRNb2R1bGVJRCh7XG4gICAgICAgIG1vZHVsZUJhc2U6IHVzZXJPcHRpb25zLm1vZHVsZUJhc2UsXG4gICAgICAgIG1vZHVsZUJhc2VQYXRoOiB1c2VyT3B0aW9ucy5tb2R1bGVCYXNlUGF0aCxcbiAgICAgICAgYXV0b0Rpc2NvdmVyOiB1c2VyT3B0aW9ucy5hdXRvRGlzY292ZXIsXG4gICAgICAgIGJ1aWxkOiB1c2VyT3B0aW9ucy5idWlsZCxcbiAgICAgICAgZGV2OiB1c2VyT3B0aW9ucy5kZXYsXG4gICAgICAgIG1vZHVsZUJhc2VVUkw6IHVzZXJPcHRpb25zLm1vZHVsZUJhc2VVUkwsXG4gICAgICAgIHByb2plY3RSb290OiB1c2VyT3B0aW9ucy5wcm9qZWN0Um9vdCxcbiAgICAgIH0sIGJ1aWxkQ29uZmlnRW52KTtcbiAgICB9XG5cbiAgICAvLyBOb3JtYWxpemUgdGhlIFVSTCB1c2luZyB0aGUgc2FtZSBsb2dpYyBhcyBwbHVnaW4uc2VydmVyLnRzXG4gICAgbGV0IG1vZHVsZUlEID0gZmlsZVBhdGg7XG4gICAgbGV0IGZpbmFsSUQgPSBmaWxlUGF0aDtcbiAgICBpZiAodXNlck9wdGlvbnM/Lm5vcm1hbGl6ZXIpIHtcbiAgICAgIGNvbnN0IFssIHZhbHVlXSA9IHVzZXJPcHRpb25zLm5vcm1hbGl6ZXIoZmlsZVBhdGgpO1xuICAgICAgbW9kdWxlSUQgPSBqb2luKHVzZXJPcHRpb25zLm1vZHVsZUJhc2VQYXRoLCB2YWx1ZSk7XG4gICAgICBmaW5hbElEID0gdXNlck9wdGlvbnMubW9kdWxlSUQ/Lihtb2R1bGVJRCkgfHwgbW9kdWxlSUQ7XG4gICAgfVxuXG4gICAgY29uc3QgeyBjb2RlOiB0cmFuc2Zvcm1lZCwgbWFwIH0gPSBhd2FpdCB0cmFuc2Zvcm1lcihzb3VyY2UsIG1vZHVsZUlELCBmaW5hbElEKTtcblxuICAgIGlmIChsb2FkZXJQb3J0KSB7XG4gICAgICBsb2FkZXJQb3J0LnBvc3RNZXNzYWdlKHtcbiAgICAgICAgdHlwZTogXCJTRVJWRVJfTU9EVUxFXCIsXG4gICAgICAgIGlkOiBmaW5hbElELFxuICAgICAgICB1cmw6IGZpbGVQYXRoLFxuICAgICAgICBzb3VyY2U6IHRyYW5zZm9ybWVkLFxuICAgICAgfSBzYXRpc2ZpZXMgU2VydmVyTW9kdWxlTWVzc2FnZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnJlc3VsdCxcbiAgICAgIHNvdXJjZTogdHJhbnNmb3JtZWQsXG4gICAgICBtYXAsXG4gICAgfTtcbiAgfVxuXG4gIHJldHVybiBuZXh0TG9hZCh1cmwsIGNvbnRleHQpO1xufTtcblxuZXhwb3J0IGNvbnN0IHJlc29sdmU6IFJlc29sdmVIb29rID0gYXN5bmMgKHNwZWNpZmllciwgY29udGV4dCwgbmV4dFJlc29sdmUpID0+IHtcbiAgcmV0dXJuIG5leHRSZXNvbHZlKHNwZWNpZmllciwgY29udGV4dCk7XG59O1xuIl0sIm5hbWVzIjpbInZlcmJvc2UiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBbUNBLElBQUksV0FBYyxHQUFBLEtBQUE7QUFDbEIsSUFBSSxXQUFBO0FBQ0osSUFBSSxVQUFBO0FBQ0osSUFBSSxjQUFBO0FBQ0osSUFBSSxtQkFJTyxxQkFB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
|
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
import { type Logger } from "vite";
|
|
2
2
|
import type { GenericModuleLoader } from "../../types.js";
|
|
3
3
|
/**
|
|
4
|
-
* Creates a
|
|
5
|
-
*
|
|
6
|
-
* This follows the same pattern as the main thread server version:
|
|
7
|
-
* - Simple dynamic import-based loading
|
|
8
|
-
* - Proper export name resolution
|
|
9
|
-
* - Works in both dev and build scenarios
|
|
4
|
+
* Creates a GenericModuleLoader for the RSC worker.
|
|
5
|
+
* Uses createSharedLoader for virtual modules, manifest resolution, and imports.
|
|
10
6
|
*/
|
|
11
7
|
export declare const createRscWorkerLoader: ({ verbose, logger, projectRoot, build, manifest, }?: {
|
|
12
8
|
verbose?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createRscWorkerLoader.d.ts","sourceRoot":"","sources":["../../../../plugin/worker/rsc/createRscWorkerLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAEjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG1D
|
|
1
|
+
{"version":3,"file":"createRscWorkerLoader.d.ts","sourceRoot":"","sources":["../../../../plugin/worker/rsc/createRscWorkerLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAEjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAG1D;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAI,qDAQnC;IACD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE;QACN,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC3B,KAAG,mBA4BR,CAAC"}
|