every-plugin 0.4.4 → 0.4.6
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/dist/build/rspack/index.cjs +300 -0
- package/dist/build/rspack/index.d.cts +20 -0
- package/dist/build/rspack/index.d.mts +20 -0
- package/dist/build/rspack/index.mjs +298 -0
- package/dist/chunk-QQAxy9l9.mjs +31 -0
- package/dist/chunk-zltIcp7o.cjs +46 -0
- package/dist/effect.cjs +9 -0
- package/dist/effect.d.cts +1 -0
- package/dist/effect.d.mts +1 -0
- package/dist/effect.mjs +3 -0
- package/dist/errors-CVnoPl9v.cjs +68 -0
- package/dist/errors-Car4tFVP.d.mts +75 -0
- package/dist/errors-D7keKf7a.mjs +63 -0
- package/dist/errors-DKPPPYYT.d.cts +75 -0
- package/dist/errors.cjs +4 -0
- package/dist/errors.d.cts +3 -0
- package/dist/errors.d.mts +3 -0
- package/dist/errors.mjs +4 -0
- package/dist/fetch-Cc95-7kM.cjs +336 -0
- package/dist/fetch-KLktuWuM.mjs +335 -0
- package/dist/index-bwAhA9ca.d.mts +383 -0
- package/dist/index-matrPV4m.d.cts +382 -0
- package/dist/index.cjs +57 -0
- package/dist/index.d.cts +5 -0
- package/dist/index.d.mts +5 -0
- package/dist/index.mjs +52 -0
- package/dist/{runtime/services/normalize.d.ts → normalize-BLTyqFww.d.mts} +5 -2
- package/dist/{runtime/services/normalize.js → normalize-BW7kk8Lk.d.cts} +5 -1
- package/dist/normalize-D4Qh0wVk.cjs +28 -0
- package/dist/normalize-D7nae0Hn.mjs +22 -0
- package/dist/openapi.DrTcell5-C6kyDyUK.mjs +669 -0
- package/dist/openapi.DrTcell5-DDf4D5V3.cjs +687 -0
- package/dist/orpc.cjs +46 -0
- package/dist/orpc.d.cts +7 -0
- package/dist/orpc.d.mts +7 -0
- package/dist/orpc.mjs +11 -0
- package/dist/package-CmegWGdE.cjs +154 -0
- package/dist/package-Dn-xZ55N.mjs +149 -0
- package/dist/plugins-C-7lh5gK.cjs +128 -0
- package/dist/plugins-Ps5Xxpk2.mjs +128 -0
- package/dist/runtime/index.cjs +6 -0
- package/dist/runtime/index.d.cts +5 -0
- package/dist/runtime/index.d.mts +5 -0
- package/dist/runtime/index.mjs +5 -0
- package/dist/runtime/services/normalize.cjs +3 -0
- package/dist/runtime/services/normalize.d.cts +2 -0
- package/dist/runtime/services/normalize.d.mts +2 -0
- package/dist/runtime/services/normalize.mjs +3 -0
- package/dist/runtime-CgRUExK3.cjs +523 -0
- package/dist/runtime-Da2NjzYy.mjs +458 -0
- package/dist/standard-DaxKTFui.mjs +595 -0
- package/dist/standard-eUgUkWaf.cjs +702 -0
- package/dist/testing/index.cjs +78 -0
- package/dist/testing/index.d.cts +60 -0
- package/dist/testing/index.d.mts +60 -0
- package/dist/testing/index.mjs +75 -0
- package/dist/zod-A7Pti5IV.d.cts +4 -0
- package/dist/zod-BVo51kgJ.mjs +10 -0
- package/dist/zod-D4CFw8d9.d.mts +4 -0
- package/dist/zod-DYghWCz1.cjs +14 -0
- package/dist/zod.cjs +10 -0
- package/dist/zod.d.cts +2 -0
- package/dist/zod.d.mts +2 -0
- package/dist/zod.mjs +5 -0
- package/dist/zod4-BXTBR1od.cjs +318 -0
- package/dist/zod4-VpXuwRO7.mjs +317 -0
- package/package.json +64 -23
- package/dist/effect.d.ts +0 -2
- package/dist/effect.d.ts.map +0 -1
- package/dist/effect.js +0 -1
- package/dist/errors.d.ts +0 -70
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -61
- package/dist/index.d.ts +0 -6
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -5
- package/dist/orpc.d.ts +0 -10
- package/dist/orpc.d.ts.map +0 -1
- package/dist/orpc.js +0 -6
- package/dist/plugin.d.ts +0 -57
- package/dist/plugin.d.ts.map +0 -1
- package/dist/plugin.js +0 -43
- package/dist/runtime/errors.d.ts +0 -36
- package/dist/runtime/errors.d.ts.map +0 -1
- package/dist/runtime/errors.js +0 -47
- package/dist/runtime/index.d.ts +0 -20
- package/dist/runtime/index.d.ts.map +0 -1
- package/dist/runtime/index.js +0 -131
- package/dist/runtime/services/module-federation.service.d.ts +0 -13
- package/dist/runtime/services/module-federation.service.d.ts.map +0 -1
- package/dist/runtime/services/module-federation.service.js +0 -155
- package/dist/runtime/services/normalize.d.ts.map +0 -1
- package/dist/runtime/services/plugin-lifecycle.service.d.ts +0 -14
- package/dist/runtime/services/plugin-lifecycle.service.d.ts.map +0 -1
- package/dist/runtime/services/plugin-lifecycle.service.js +0 -34
- package/dist/runtime/services/plugin-loader.service.d.ts +0 -45
- package/dist/runtime/services/plugin-loader.service.d.ts.map +0 -1
- package/dist/runtime/services/plugin-loader.service.js +0 -93
- package/dist/runtime/services/plugin.service.d.ts +0 -36
- package/dist/runtime/services/plugin.service.d.ts.map +0 -1
- package/dist/runtime/services/plugin.service.js +0 -31
- package/dist/runtime/services/secrets.service.d.ts +0 -15
- package/dist/runtime/services/secrets.service.d.ts.map +0 -1
- package/dist/runtime/services/secrets.service.js +0 -35
- package/dist/runtime/services.d.ts +0 -6
- package/dist/runtime/services.d.ts.map +0 -1
- package/dist/runtime/services.js +0 -5
- package/dist/runtime/validation.d.ts +0 -5
- package/dist/runtime/validation.d.ts.map +0 -1
- package/dist/runtime/validation.js +0 -13
- package/dist/testing/index.d.ts +0 -59
- package/dist/testing/index.d.ts.map +0 -1
- package/dist/testing/index.js +0 -45
- package/dist/testing/mocks/module-federation.service.d.ts +0 -6
- package/dist/testing/mocks/module-federation.service.d.ts.map +0 -1
- package/dist/testing/mocks/module-federation.service.js +0 -29
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/types.d.ts +0 -187
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -1
- package/dist/zod.d.ts +0 -2
- package/dist/zod.d.ts.map +0 -1
- package/dist/zod.js +0 -1
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
const require_chunk = require('../../chunk-zltIcp7o.cjs');
|
|
2
|
+
const require_normalize = require('../../normalize-D4Qh0wVk.cjs');
|
|
3
|
+
const require_package$1 = require('../../package-CmegWGdE.cjs');
|
|
4
|
+
let __rspack_core = require("@rspack/core");
|
|
5
|
+
let node_path = require("node:path");
|
|
6
|
+
node_path = require_chunk.__toESM(node_path);
|
|
7
|
+
let node_fs = require("node:fs");
|
|
8
|
+
node_fs = require_chunk.__toESM(node_fs);
|
|
9
|
+
|
|
10
|
+
//#region src/build/rspack/utils.ts
|
|
11
|
+
function getPluginInfo(context) {
|
|
12
|
+
const pkgPath = node_path.default.join(context, "package.json");
|
|
13
|
+
const pkg = JSON.parse(node_fs.default.readFileSync(pkgPath, "utf-8"));
|
|
14
|
+
return {
|
|
15
|
+
name: pkg.name,
|
|
16
|
+
version: pkg.version,
|
|
17
|
+
normalizedName: require_normalize.getNormalizedRemoteName(pkg.name),
|
|
18
|
+
dependencies: pkg.dependencies || {},
|
|
19
|
+
peerDependencies: pkg.peerDependencies || {}
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
const loadedModules = /* @__PURE__ */ new Set();
|
|
23
|
+
function loadDevConfig(devConfigPath) {
|
|
24
|
+
try {
|
|
25
|
+
const fullPath = node_path.default.resolve(devConfigPath);
|
|
26
|
+
if (loadedModules.has(fullPath)) {
|
|
27
|
+
delete require.cache[fullPath];
|
|
28
|
+
const dirPath = node_path.default.dirname(fullPath);
|
|
29
|
+
for (const key of Object.keys(require.cache)) if (key.startsWith(dirPath) && key !== fullPath) delete require.cache[key];
|
|
30
|
+
}
|
|
31
|
+
const module$1 = require(fullPath).default;
|
|
32
|
+
loadedModules.add(fullPath);
|
|
33
|
+
return module$1;
|
|
34
|
+
} catch (error) {
|
|
35
|
+
console.warn(`Could not load dev config from ${devConfigPath}:`, error.message);
|
|
36
|
+
return null;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
//#endregion
|
|
41
|
+
//#region src/build/rspack/module-federation.ts
|
|
42
|
+
function buildSharedDependencies(pluginInfo) {
|
|
43
|
+
const everyPluginPkg = require_package$1.require_package();
|
|
44
|
+
return {
|
|
45
|
+
"every-plugin": {
|
|
46
|
+
version: everyPluginPkg.version,
|
|
47
|
+
singleton: true,
|
|
48
|
+
requiredVersion: `${everyPluginPkg.version}`,
|
|
49
|
+
strictVersion: false,
|
|
50
|
+
eager: false
|
|
51
|
+
},
|
|
52
|
+
effect: {
|
|
53
|
+
version: everyPluginPkg.dependencies.effect,
|
|
54
|
+
singleton: true,
|
|
55
|
+
requiredVersion: `${everyPluginPkg.dependencies.effect}`,
|
|
56
|
+
strictVersion: false,
|
|
57
|
+
eager: false
|
|
58
|
+
},
|
|
59
|
+
zod: {
|
|
60
|
+
version: everyPluginPkg.dependencies.zod,
|
|
61
|
+
singleton: true,
|
|
62
|
+
requiredVersion: `${everyPluginPkg.dependencies.zod}`,
|
|
63
|
+
strictVersion: false,
|
|
64
|
+
eager: false
|
|
65
|
+
},
|
|
66
|
+
"@orpc/contract": {
|
|
67
|
+
version: everyPluginPkg.dependencies["@orpc/contract"],
|
|
68
|
+
singleton: true,
|
|
69
|
+
requiredVersion: `${everyPluginPkg.dependencies["@orpc/contract"]}`,
|
|
70
|
+
strictVersion: false,
|
|
71
|
+
eager: false
|
|
72
|
+
},
|
|
73
|
+
"@orpc/server": {
|
|
74
|
+
version: everyPluginPkg.dependencies["@orpc/server"],
|
|
75
|
+
singleton: true,
|
|
76
|
+
requiredVersion: `${everyPluginPkg.dependencies["@orpc/server"]}`,
|
|
77
|
+
strictVersion: false,
|
|
78
|
+
eager: false
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
//#endregion
|
|
84
|
+
//#region src/build/rspack/dev-server-middleware.ts
|
|
85
|
+
function setupPluginMiddleware(devServer, pluginInfo, devConfig, port) {
|
|
86
|
+
let handlers = {
|
|
87
|
+
rpc: null,
|
|
88
|
+
api: null
|
|
89
|
+
};
|
|
90
|
+
let cleanup = null;
|
|
91
|
+
const performCleanup = async () => {
|
|
92
|
+
if (cleanup) {
|
|
93
|
+
await cleanup();
|
|
94
|
+
cleanup = null;
|
|
95
|
+
}
|
|
96
|
+
};
|
|
97
|
+
(async () => {
|
|
98
|
+
await performCleanup();
|
|
99
|
+
try {
|
|
100
|
+
const { createPluginRuntime } = await Promise.resolve().then(() => require("../../index.cjs"));
|
|
101
|
+
const { RPCHandler } = await import("@orpc/server/fetch");
|
|
102
|
+
const { onError } = await import("@orpc/server");
|
|
103
|
+
const { OpenAPIHandler } = await Promise.resolve().then(() => require("../../fetch-Cc95-7kM.cjs"));
|
|
104
|
+
const { OpenAPIReferencePlugin } = await Promise.resolve().then(() => require("../../plugins-C-7lh5gK.cjs"));
|
|
105
|
+
const { ZodToJsonSchemaConverter } = await Promise.resolve().then(() => require("../../zod4-BXTBR1od.cjs"));
|
|
106
|
+
const pluginId = devConfig?.pluginId || pluginInfo.normalizedName;
|
|
107
|
+
const runtime = createPluginRuntime({ registry: { [pluginId]: { remoteUrl: `http://localhost:${port}/remoteEntry.js` } } });
|
|
108
|
+
const loaded = await runtime.usePlugin(pluginId, devConfig?.config);
|
|
109
|
+
cleanup = async () => {
|
|
110
|
+
if (loaded && typeof loaded.dispose === "function") await loaded.dispose();
|
|
111
|
+
if (runtime && typeof runtime.cleanup === "function") await runtime.cleanup();
|
|
112
|
+
handlers.rpc = null;
|
|
113
|
+
handlers.api = null;
|
|
114
|
+
if (devServer.app.locals.handlers) devServer.app.locals.handlers = null;
|
|
115
|
+
};
|
|
116
|
+
handlers.rpc = new RPCHandler(loaded.router, { interceptors: [onError((error) => {
|
|
117
|
+
console.error("🔴 RPC Error:", error);
|
|
118
|
+
})] });
|
|
119
|
+
handlers.api = new OpenAPIHandler(loaded.router, {
|
|
120
|
+
plugins: [new OpenAPIReferencePlugin({ schemaConverters: [new ZodToJsonSchemaConverter()] })],
|
|
121
|
+
interceptors: [onError((error) => {
|
|
122
|
+
console.error("🔴 OpenAPI Error:", error);
|
|
123
|
+
})]
|
|
124
|
+
});
|
|
125
|
+
console.log(`╭─────────────────────────────────────────────`);
|
|
126
|
+
console.log(`│ ✅ Plugin dev server ready: `);
|
|
127
|
+
console.log(`├─────────────────────────────────────────────`);
|
|
128
|
+
console.log(`│ 📡 RPC: http://localhost:${port}/api/rpc`);
|
|
129
|
+
console.log(`│ 📖 Docs: http://localhost:${port}/api`);
|
|
130
|
+
console.log(`│ 💚 Health: http://localhost:${port}/`);
|
|
131
|
+
console.log(`╰─────────────────────────────────────────────`);
|
|
132
|
+
devServer.app.locals.handlers = handlers;
|
|
133
|
+
if (devServer.server) devServer.server.once("close", async () => {
|
|
134
|
+
await performCleanup();
|
|
135
|
+
});
|
|
136
|
+
} catch (error) {
|
|
137
|
+
console.error("❌ Failed to load plugin:", error);
|
|
138
|
+
await performCleanup();
|
|
139
|
+
}
|
|
140
|
+
})();
|
|
141
|
+
process.once("SIGINT", async () => {
|
|
142
|
+
await performCleanup();
|
|
143
|
+
});
|
|
144
|
+
process.once("SIGTERM", async () => {
|
|
145
|
+
await performCleanup();
|
|
146
|
+
});
|
|
147
|
+
devServer.app.get("/", (req, res) => {
|
|
148
|
+
res.json({
|
|
149
|
+
ok: true,
|
|
150
|
+
plugin: pluginInfo.normalizedName,
|
|
151
|
+
version: pluginInfo.version,
|
|
152
|
+
status: devServer.app.locals.handlers?.rpc ? "ready" : "loading",
|
|
153
|
+
endpoints: {
|
|
154
|
+
health: "/",
|
|
155
|
+
docs: "/api",
|
|
156
|
+
rpc: "/api/rpc"
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
const handleApiRequest = async (req, res) => {
|
|
161
|
+
const apiHandler = devServer.app.locals.handlers?.api;
|
|
162
|
+
if (!apiHandler) return res.status(503).json({ error: "Plugin still loading..." });
|
|
163
|
+
try {
|
|
164
|
+
const url = `http://${req.headers.host}${req.url}`;
|
|
165
|
+
const webRequest = new Request(url, {
|
|
166
|
+
method: req.method,
|
|
167
|
+
headers: req.headers,
|
|
168
|
+
body: req.method !== "GET" && req.method !== "HEAD" ? req : void 0
|
|
169
|
+
});
|
|
170
|
+
const result = await apiHandler.handle(webRequest, {
|
|
171
|
+
prefix: "/api",
|
|
172
|
+
context: {}
|
|
173
|
+
});
|
|
174
|
+
if (result.response) {
|
|
175
|
+
res.status(result.response.status);
|
|
176
|
+
result.response.headers.forEach((value, key) => {
|
|
177
|
+
res.setHeader(key, value);
|
|
178
|
+
});
|
|
179
|
+
const text = await result.response.text();
|
|
180
|
+
res.send(text);
|
|
181
|
+
} else res.status(404).send("Not Found");
|
|
182
|
+
} catch (error) {
|
|
183
|
+
console.error("OpenAPI error:", error);
|
|
184
|
+
res.status(500).json({ error: error.message });
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
devServer.app.all("/api", handleApiRequest);
|
|
188
|
+
devServer.app.all("/api/*", handleApiRequest);
|
|
189
|
+
devServer.app.all("/api/rpc/*", async (req, res) => {
|
|
190
|
+
const rpcHandler = devServer.app.locals.handlers?.rpc;
|
|
191
|
+
if (!rpcHandler) return res.status(503).json({ error: "Plugin still loading..." });
|
|
192
|
+
try {
|
|
193
|
+
const url = `http://${req.headers.host}${req.url}`;
|
|
194
|
+
const webRequest = new Request(url, {
|
|
195
|
+
method: req.method,
|
|
196
|
+
headers: req.headers,
|
|
197
|
+
body: req.method !== "GET" && req.method !== "HEAD" ? req : void 0
|
|
198
|
+
});
|
|
199
|
+
const result = await rpcHandler.handle(webRequest, {
|
|
200
|
+
prefix: "/api/rpc",
|
|
201
|
+
context: {}
|
|
202
|
+
});
|
|
203
|
+
if (result.response) {
|
|
204
|
+
res.status(result.response.status);
|
|
205
|
+
result.response.headers.forEach((value, key) => {
|
|
206
|
+
res.setHeader(key, value);
|
|
207
|
+
});
|
|
208
|
+
const text = await result.response.text();
|
|
209
|
+
res.send(text);
|
|
210
|
+
} else res.status(404).send("Not Found");
|
|
211
|
+
} catch (error) {
|
|
212
|
+
console.error("RPC error:", error);
|
|
213
|
+
res.status(500).json({ error: error.message });
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
//#endregion
|
|
219
|
+
//#region src/build/rspack/plugin.ts
|
|
220
|
+
var EveryPluginDevServer = class {
|
|
221
|
+
name = "EveryPluginDevServer";
|
|
222
|
+
constructor(options = {}) {
|
|
223
|
+
this.options = options;
|
|
224
|
+
}
|
|
225
|
+
apply(compiler) {
|
|
226
|
+
const pluginInfo = getPluginInfo(compiler.options.context || process.cwd());
|
|
227
|
+
const devConfig = loadDevConfig(this.options.devConfigPath || "./plugin.dev.ts");
|
|
228
|
+
const port = this.options.port || devConfig?.port || 3999;
|
|
229
|
+
this.configureDefaults(compiler, pluginInfo);
|
|
230
|
+
if (!compiler.options.devServer) compiler.options.devServer = {};
|
|
231
|
+
this.configureDevServer(compiler, pluginInfo, devConfig, port);
|
|
232
|
+
new __rspack_core.rspack.container.ModuleFederationPlugin({
|
|
233
|
+
name: pluginInfo.normalizedName,
|
|
234
|
+
filename: "remoteEntry.js",
|
|
235
|
+
runtimePlugins: [require.resolve("@module-federation/node/runtimePlugin")],
|
|
236
|
+
library: { type: "commonjs-module" },
|
|
237
|
+
exposes: { "./plugin": "./src/index.ts" },
|
|
238
|
+
shared: buildSharedDependencies(pluginInfo)
|
|
239
|
+
}).apply(compiler);
|
|
240
|
+
}
|
|
241
|
+
configureDefaults(compiler, pluginInfo) {
|
|
242
|
+
const context = compiler.options.context || process.cwd();
|
|
243
|
+
if (!compiler.options.output) compiler.options.output = {};
|
|
244
|
+
compiler.options.output.uniqueName = pluginInfo.normalizedName;
|
|
245
|
+
compiler.options.output.publicPath = "auto";
|
|
246
|
+
compiler.options.output.path = node_path.default.resolve(context, "dist");
|
|
247
|
+
compiler.options.output.clean = true;
|
|
248
|
+
compiler.options.output.library = { type: "commonjs-module" };
|
|
249
|
+
if (!compiler.options.entry) compiler.options.entry = { main: { import: ["./src/index"] } };
|
|
250
|
+
if (!compiler.options.target) compiler.options.target = "async-node";
|
|
251
|
+
if (!compiler.options.mode) compiler.options.mode = process.env.NODE_ENV === "development" ? "development" : "production";
|
|
252
|
+
if (!compiler.options.devtool) compiler.options.devtool = "source-map";
|
|
253
|
+
if (!compiler.options.infrastructureLogging) compiler.options.infrastructureLogging = { level: "warn" };
|
|
254
|
+
this.ensureTypeScriptLoader(compiler);
|
|
255
|
+
if (!compiler.options.resolve) compiler.options.resolve = {};
|
|
256
|
+
compiler.options.resolve.extensions = [
|
|
257
|
+
"...",
|
|
258
|
+
".tsx",
|
|
259
|
+
".ts"
|
|
260
|
+
];
|
|
261
|
+
}
|
|
262
|
+
ensureTypeScriptLoader(compiler) {
|
|
263
|
+
if (!compiler.options.module) compiler.options.module = { rules: [] };
|
|
264
|
+
if (!compiler.options.module.rules) compiler.options.module.rules = [];
|
|
265
|
+
if (!compiler.options.module.rules.some((rule) => typeof rule === "object" && rule !== null && "test" in rule && rule.test instanceof RegExp && rule.test.test(".ts"))) compiler.options.module.rules.push({
|
|
266
|
+
test: /\.tsx?$/,
|
|
267
|
+
use: "builtin:swc-loader",
|
|
268
|
+
exclude: /node_modules/
|
|
269
|
+
});
|
|
270
|
+
}
|
|
271
|
+
configureDevServer(compiler, pluginInfo, devConfig, port) {
|
|
272
|
+
if (!compiler.options.devServer) return;
|
|
273
|
+
const context = compiler.options.context || process.cwd();
|
|
274
|
+
const originalSetup = compiler.options.devServer.setupMiddlewares;
|
|
275
|
+
compiler.options.devServer.port = port;
|
|
276
|
+
compiler.options.devServer.static = node_path.default.join(context, "dist");
|
|
277
|
+
compiler.options.devServer.hot = true;
|
|
278
|
+
compiler.options.devServer.devMiddleware = { writeToDisk: true };
|
|
279
|
+
compiler.options.devServer.headers = {
|
|
280
|
+
"Access-Control-Allow-Origin": "*",
|
|
281
|
+
"Access-Control-Allow-Methods": "GET, POST, PUT, DELETE, PATCH, OPTIONS",
|
|
282
|
+
"Access-Control-Allow-Headers": "X-Requested-With, content-type, Authorization"
|
|
283
|
+
};
|
|
284
|
+
compiler.options.devServer.client = {
|
|
285
|
+
logging: "warn",
|
|
286
|
+
overlay: {
|
|
287
|
+
warnings: false,
|
|
288
|
+
errors: true
|
|
289
|
+
}
|
|
290
|
+
};
|
|
291
|
+
compiler.options.devServer.setupMiddlewares = (middlewares, devServer) => {
|
|
292
|
+
setupPluginMiddleware(devServer, pluginInfo, devConfig, port);
|
|
293
|
+
return originalSetup ? originalSetup(middlewares, devServer) : middlewares;
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
};
|
|
297
|
+
|
|
298
|
+
//#endregion
|
|
299
|
+
exports.EveryPluginDevServer = EveryPluginDevServer;
|
|
300
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY2pzIiwibmFtZXMiOlsicGF0aCIsImZzIiwiZ2V0Tm9ybWFsaXplZFJlbW90ZU5hbWUiLCJtb2R1bGUiLCJoYW5kbGVyczogeyBycGM6IGFueSwgYXBpOiBhbnkgfSIsImNsZWFudXA6ICgoKSA9PiBQcm9taXNlPHZvaWQ+KSB8IG51bGwiLCJvcHRpb25zOiBFdmVyeVBsdWdpbk9wdGlvbnMiLCJyc3BhY2siLCJwYXRoIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2J1aWxkL3JzcGFjay91dGlscy50cyIsIi4uLy4uLy4uL3NyYy9idWlsZC9yc3BhY2svbW9kdWxlLWZlZGVyYXRpb24udHMiLCIuLi8uLi8uLi9zcmMvYnVpbGQvcnNwYWNrL2Rldi1zZXJ2ZXItbWlkZGxld2FyZS50cyIsIi4uLy4uLy4uL3NyYy9idWlsZC9yc3BhY2svcGx1Z2luLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgZnMgZnJvbSAnbm9kZTpmcyc7XG5pbXBvcnQgeyBnZXROb3JtYWxpemVkUmVtb3RlTmFtZSB9IGZyb20gJ2V2ZXJ5LXBsdWdpbi9ub3JtYWxpemUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBsdWdpbkluZm8ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZlcnNpb246IHN0cmluZztcbiAgbm9ybWFsaXplZE5hbWU6IHN0cmluZztcbiAgZGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBwZWVyRGVwZW5kZW5jaWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGx1Z2luSW5mbyhjb250ZXh0OiBzdHJpbmcpOiBQbHVnaW5JbmZvIHtcbiAgY29uc3QgcGtnUGF0aCA9IHBhdGguam9pbihjb250ZXh0LCAncGFja2FnZS5qc29uJyk7XG4gIGNvbnN0IHBrZyA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHBrZ1BhdGgsICd1dGYtOCcpKTtcblxuICByZXR1cm4ge1xuICAgIG5hbWU6IHBrZy5uYW1lLFxuICAgIHZlcnNpb246IHBrZy52ZXJzaW9uLFxuICAgIG5vcm1hbGl6ZWROYW1lOiBnZXROb3JtYWxpemVkUmVtb3RlTmFtZShwa2cubmFtZSksXG4gICAgZGVwZW5kZW5jaWVzOiBwa2cuZGVwZW5kZW5jaWVzIHx8IHt9LFxuICAgIHBlZXJEZXBlbmRlbmNpZXM6IHBrZy5wZWVyRGVwZW5kZW5jaWVzIHx8IHt9LFxuICB9O1xufVxuXG5jb25zdCBsb2FkZWRNb2R1bGVzID0gbmV3IFNldDxzdHJpbmc+KCk7XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2FkRGV2Q29uZmlnKGRldkNvbmZpZ1BhdGg6IHN0cmluZykge1xuICB0cnkge1xuICAgIGNvbnN0IGZ1bGxQYXRoID0gcGF0aC5yZXNvbHZlKGRldkNvbmZpZ1BhdGgpO1xuICAgIFxuICAgIGlmIChsb2FkZWRNb2R1bGVzLmhhcyhmdWxsUGF0aCkpIHtcbiAgICAgIGRlbGV0ZSByZXF1aXJlLmNhY2hlW2Z1bGxQYXRoXTtcbiAgICAgIGNvbnN0IGRpclBhdGggPSBwYXRoLmRpcm5hbWUoZnVsbFBhdGgpO1xuICAgICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMocmVxdWlyZS5jYWNoZSkpIHtcbiAgICAgICAgaWYgKGtleS5zdGFydHNXaXRoKGRpclBhdGgpICYmIGtleSAhPT0gZnVsbFBhdGgpIHtcbiAgICAgICAgICBkZWxldGUgcmVxdWlyZS5jYWNoZVtrZXldO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIFxuICAgIGNvbnN0IG1vZHVsZSA9IHJlcXVpcmUoZnVsbFBhdGgpLmRlZmF1bHQ7XG4gICAgbG9hZGVkTW9kdWxlcy5hZGQoZnVsbFBhdGgpO1xuICAgIHJldHVybiBtb2R1bGU7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc29sZS53YXJuKGBDb3VsZCBub3QgbG9hZCBkZXYgY29uZmlnIGZyb20gJHtkZXZDb25maWdQYXRofTpgLCAoZXJyb3IgYXMgRXJyb3IpLm1lc3NhZ2UpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhbnVwRGV2Q29uZmlnKCkge1xuICBmb3IgKGNvbnN0IG1vZHVsZVBhdGggb2YgbG9hZGVkTW9kdWxlcykge1xuICAgIGRlbGV0ZSByZXF1aXJlLmNhY2hlW21vZHVsZVBhdGhdO1xuICB9XG4gIGxvYWRlZE1vZHVsZXMuY2xlYXIoKTtcbn1cbiIsImltcG9ydCB0eXBlIHsgUGx1Z2luSW5mbyB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRTaGFyZWREZXBlbmRlbmNpZXMocGx1Z2luSW5mbzogUGx1Z2luSW5mbykge1xuICAvLyBHZXQgZXZlcnktcGx1Z2luIHBhY2thZ2UgaW5mbyBmb3IgdmVyc2lvbiBjb25zdHJhaW50c1xuICBjb25zdCBldmVyeVBsdWdpblBrZyA9IHJlcXVpcmUoJ2V2ZXJ5LXBsdWdpbi9wYWNrYWdlLmpzb24nKTtcblxuICByZXR1cm4ge1xuICAgICdldmVyeS1wbHVnaW4nOiB7XG4gICAgICB2ZXJzaW9uOiBldmVyeVBsdWdpblBrZy52ZXJzaW9uLFxuICAgICAgc2luZ2xldG9uOiB0cnVlLFxuICAgICAgcmVxdWlyZWRWZXJzaW9uOiBgJHtldmVyeVBsdWdpblBrZy52ZXJzaW9ufWAsXG4gICAgICBzdHJpY3RWZXJzaW9uOiBmYWxzZSxcbiAgICAgIGVhZ2VyOiBmYWxzZSxcbiAgICB9LFxuICAgIGVmZmVjdDoge1xuICAgICAgdmVyc2lvbjogZXZlcnlQbHVnaW5Qa2cuZGVwZW5kZW5jaWVzLmVmZmVjdCxcbiAgICAgIHNpbmdsZXRvbjogdHJ1ZSxcbiAgICAgIHJlcXVpcmVkVmVyc2lvbjogYCR7ZXZlcnlQbHVnaW5Qa2cuZGVwZW5kZW5jaWVzLmVmZmVjdH1gLFxuICAgICAgc3RyaWN0VmVyc2lvbjogZmFsc2UsXG4gICAgICBlYWdlcjogZmFsc2UsXG4gICAgfSxcbiAgICB6b2Q6IHtcbiAgICAgIHZlcnNpb246IGV2ZXJ5UGx1Z2luUGtnLmRlcGVuZGVuY2llcy56b2QsXG4gICAgICBzaW5nbGV0b246IHRydWUsXG4gICAgICByZXF1aXJlZFZlcnNpb246IGAke2V2ZXJ5UGx1Z2luUGtnLmRlcGVuZGVuY2llcy56b2R9YCxcbiAgICAgIHN0cmljdFZlcnNpb246IGZhbHNlLFxuICAgICAgZWFnZXI6IGZhbHNlLFxuICAgIH0sXG4gICAgJ0BvcnBjL2NvbnRyYWN0Jzoge1xuICAgICAgdmVyc2lvbjogZXZlcnlQbHVnaW5Qa2cuZGVwZW5kZW5jaWVzWydAb3JwYy9jb250cmFjdCddLFxuICAgICAgc2luZ2xldG9uOiB0cnVlLFxuICAgICAgcmVxdWlyZWRWZXJzaW9uOiBgJHtldmVyeVBsdWdpblBrZy5kZXBlbmRlbmNpZXNbJ0BvcnBjL2NvbnRyYWN0J119YCxcbiAgICAgIHN0cmljdFZlcnNpb246IGZhbHNlLFxuICAgICAgZWFnZXI6IGZhbHNlLFxuICAgIH0sXG4gICAgJ0BvcnBjL3NlcnZlcic6IHtcbiAgICAgIHZlcnNpb246IGV2ZXJ5UGx1Z2luUGtnLmRlcGVuZGVuY2llc1snQG9ycGMvc2VydmVyJ10sXG4gICAgICBzaW5nbGV0b246IHRydWUsXG4gICAgICByZXF1aXJlZFZlcnNpb246IGAke2V2ZXJ5UGx1Z2luUGtnLmRlcGVuZGVuY2llc1snQG9ycGMvc2VydmVyJ119YCxcbiAgICAgIHN0cmljdFZlcnNpb246IGZhbHNlLFxuICAgICAgZWFnZXI6IGZhbHNlLFxuICAgIH0sXG4gIH07XG59XG4iLCJpbXBvcnQgdHlwZSB7IFBsdWdpbkluZm8gfSBmcm9tICcuL3V0aWxzJztcblxuZXhwb3J0IGZ1bmN0aW9uIHNldHVwUGx1Z2luTWlkZGxld2FyZShkZXZTZXJ2ZXI6IGFueSwgcGx1Z2luSW5mbzogUGx1Z2luSW5mbywgZGV2Q29uZmlnOiBhbnksIHBvcnQ6IG51bWJlcikge1xuICBsZXQgaGFuZGxlcnM6IHsgcnBjOiBhbnksIGFwaTogYW55IH0gPSB7IHJwYzogbnVsbCwgYXBpOiBudWxsIH07XG4gIGxldCBjbGVhbnVwOiAoKCkgPT4gUHJvbWlzZTx2b2lkPikgfCBudWxsID0gbnVsbDtcblxuICBjb25zdCBwZXJmb3JtQ2xlYW51cCA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAoY2xlYW51cCkge1xuICAgICAgYXdhaXQgY2xlYW51cCgpO1xuICAgICAgY2xlYW51cCA9IG51bGw7XG4gICAgfVxuICB9O1xuXG4gIChhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgcGVyZm9ybUNsZWFudXAoKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IGNyZWF0ZVBsdWdpblJ1bnRpbWUgfSA9IGF3YWl0IGltcG9ydCgnZXZlcnktcGx1Z2luJyk7XG4gICAgICBjb25zdCB7IFJQQ0hhbmRsZXIgfSA9IGF3YWl0IGltcG9ydCgnQG9ycGMvc2VydmVyL2ZldGNoJyk7XG4gICAgICBjb25zdCB7IG9uRXJyb3IgfSA9IGF3YWl0IGltcG9ydCgnQG9ycGMvc2VydmVyJyk7XG4gICAgICBjb25zdCB7IE9wZW5BUElIYW5kbGVyIH0gPSBhd2FpdCBpbXBvcnQoJ0BvcnBjL29wZW5hcGkvZmV0Y2gnKTtcbiAgICAgIGNvbnN0IHsgT3BlbkFQSVJlZmVyZW5jZVBsdWdpbiB9ID0gYXdhaXQgaW1wb3J0KCdAb3JwYy9vcGVuYXBpL3BsdWdpbnMnKTtcbiAgICAgIGNvbnN0IHsgWm9kVG9Kc29uU2NoZW1hQ29udmVydGVyIH0gPSBhd2FpdCBpbXBvcnQoJ0BvcnBjL3pvZC96b2Q0Jyk7XG5cbiAgICAgIGNvbnN0IHBsdWdpbklkID0gZGV2Q29uZmlnPy5wbHVnaW5JZCB8fCBwbHVnaW5JbmZvLm5vcm1hbGl6ZWROYW1lO1xuXG4gICAgICBjb25zdCBydW50aW1lID0gY3JlYXRlUGx1Z2luUnVudGltZSh7XG4gICAgICAgIHJlZ2lzdHJ5OiB7XG4gICAgICAgICAgW3BsdWdpbklkXToge1xuICAgICAgICAgICAgcmVtb3RlVXJsOiBgaHR0cDovL2xvY2FsaG9zdDoke3BvcnR9L3JlbW90ZUVudHJ5LmpzYFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGNvbnN0IGxvYWRlZCA9IGF3YWl0IHJ1bnRpbWUudXNlUGx1Z2luKHBsdWdpbklkLCBkZXZDb25maWc/LmNvbmZpZyk7XG5cbiAgICAgIGNsZWFudXAgPSBhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmIChsb2FkZWQgJiYgdHlwZW9mIChsb2FkZWQgYXMgYW55KS5kaXNwb3NlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgYXdhaXQgKGxvYWRlZCBhcyBhbnkpLmRpc3Bvc2UoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocnVudGltZSAmJiB0eXBlb2YgKHJ1bnRpbWUgYXMgYW55KS5jbGVhbnVwID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgYXdhaXQgKHJ1bnRpbWUgYXMgYW55KS5jbGVhbnVwKCk7XG4gICAgICAgIH1cbiAgICAgICAgaGFuZGxlcnMucnBjID0gbnVsbDtcbiAgICAgICAgaGFuZGxlcnMuYXBpID0gbnVsbDtcbiAgICAgICAgaWYgKGRldlNlcnZlci5hcHAubG9jYWxzLmhhbmRsZXJzKSB7XG4gICAgICAgICAgZGV2U2VydmVyLmFwcC5sb2NhbHMuaGFuZGxlcnMgPSBudWxsO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIG5vIHR5cGVcbiAgICAgIGhhbmRsZXJzLnJwYyA9IG5ldyBSUENIYW5kbGVyKGxvYWRlZC5yb3V0ZXIsIHtcbiAgICAgICAgaW50ZXJjZXB0b3JzOiBbXG4gICAgICAgICAgb25FcnJvcigoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcign8J+UtCBSUEMgRXJyb3I6JywgZXJyb3IpO1xuICAgICAgICAgIH0pLFxuICAgICAgICBdXG4gICAgICB9KTtcblxuICAgICAgLy8gQ3JlYXRlIE9wZW5BUEkgaGFuZGxlciBmb3IgZG9jdW1lbnRhdGlvblxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciBubyB0eXBlXG4gICAgICBoYW5kbGVycy5hcGkgPSBuZXcgT3BlbkFQSUhhbmRsZXIobG9hZGVkLnJvdXRlciwge1xuICAgICAgICBwbHVnaW5zOiBbXG4gICAgICAgICAgbmV3IE9wZW5BUElSZWZlcmVuY2VQbHVnaW4oe1xuICAgICAgICAgICAgc2NoZW1hQ29udmVydGVyczogW25ldyBab2RUb0pzb25TY2hlbWFDb252ZXJ0ZXIoKV0sXG4gICAgICAgICAgfSksXG4gICAgICAgIF0sXG4gICAgICAgIGludGVyY2VwdG9yczogW1xuICAgICAgICAgIG9uRXJyb3IoKGVycm9yOiBhbnkpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ/CflLQgT3BlbkFQSSBFcnJvcjonLCBlcnJvcik7XG4gICAgICAgICAgfSksXG4gICAgICAgIF1cbiAgICAgIH0pO1xuXG4gICAgICBjb25zb2xlLmxvZyhg4pWt4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSA4pSAYCk7XG4gICAgICBjb25zb2xlLmxvZyhg4pSCICDinIUgUGx1Z2luIGRldiBzZXJ2ZXIgcmVhZHk6IGApO1xuICAgICAgY29uc29sZS5sb2coYOKUnOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgGApO1xuICAgICAgY29uc29sZS5sb2coYOKUgiAg8J+ToSBSUEM6ICAgIGh0dHA6Ly9sb2NhbGhvc3Q6JHtwb3J0fS9hcGkvcnBjYCk7XG4gICAgICBjb25zb2xlLmxvZyhg4pSCICDwn5OWIERvY3M6ICAgaHR0cDovL2xvY2FsaG9zdDoke3BvcnR9L2FwaWApO1xuICAgICAgY29uc29sZS5sb2coYOKUgiAg8J+SmiBIZWFsdGg6IGh0dHA6Ly9sb2NhbGhvc3Q6JHtwb3J0fS9gKTtcbiAgICAgIGNvbnNvbGUubG9nKGDilbDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIBgKTtcblxuICAgICAgZGV2U2VydmVyLmFwcC5sb2NhbHMuaGFuZGxlcnMgPSBoYW5kbGVycztcblxuICAgICAgaWYgKGRldlNlcnZlci5zZXJ2ZXIpIHtcbiAgICAgICAgZGV2U2VydmVyLnNlcnZlci5vbmNlKCdjbG9zZScsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICBhd2FpdCBwZXJmb3JtQ2xlYW51cCgpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcign4p2MIEZhaWxlZCB0byBsb2FkIHBsdWdpbjonLCBlcnJvcik7XG4gICAgICBhd2FpdCBwZXJmb3JtQ2xlYW51cCgpO1xuICAgIH1cbiAgfSkoKTtcblxuICBwcm9jZXNzLm9uY2UoJ1NJR0lOVCcsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBwZXJmb3JtQ2xlYW51cCgpO1xuICB9KTtcbiAgcHJvY2Vzcy5vbmNlKCdTSUdURVJNJywgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHBlcmZvcm1DbGVhbnVwKCk7XG4gIH0pO1xuXG4gIC8vIFJvb3QgaGVhbHRoIGNoZWNrXG4gIGRldlNlcnZlci5hcHAuZ2V0KCcvJywgKHJlcTogYW55LCByZXM6IGFueSkgPT4ge1xuICAgIHJlcy5qc29uKHtcbiAgICAgIG9rOiB0cnVlLFxuICAgICAgcGx1Z2luOiBwbHVnaW5JbmZvLm5vcm1hbGl6ZWROYW1lLFxuICAgICAgdmVyc2lvbjogcGx1Z2luSW5mby52ZXJzaW9uLFxuICAgICAgc3RhdHVzOiBkZXZTZXJ2ZXIuYXBwLmxvY2Fscy5oYW5kbGVycz8ucnBjID8gJ3JlYWR5JyA6ICdsb2FkaW5nJyxcbiAgICAgIGVuZHBvaW50czoge1xuICAgICAgICBoZWFsdGg6ICcvJyxcbiAgICAgICAgZG9jczogJy9hcGknLFxuICAgICAgICBycGM6ICcvYXBpL3JwYydcbiAgICAgIH1cbiAgICB9KTtcbiAgfSk7XG5cbiAgLy8gT3BlbkFQSSBkb2N1bWVudGF0aW9uIGFuZCBSRVNUIGVuZHBvaW50cyBhdCAvYXBpIGFuZCAvYXBpLypcbiAgY29uc3QgaGFuZGxlQXBpUmVxdWVzdCA9IGFzeW5jIChyZXE6IGFueSwgcmVzOiBhbnkpID0+IHtcbiAgICBjb25zdCBhcGlIYW5kbGVyID0gZGV2U2VydmVyLmFwcC5sb2NhbHMuaGFuZGxlcnM/LmFwaTtcbiAgICBpZiAoIWFwaUhhbmRsZXIpIHtcbiAgICAgIHJldHVybiByZXMuc3RhdHVzKDUwMykuanNvbih7IGVycm9yOiAnUGx1Z2luIHN0aWxsIGxvYWRpbmcuLi4nIH0pO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB1cmwgPSBgaHR0cDovLyR7cmVxLmhlYWRlcnMuaG9zdH0ke3JlcS51cmx9YDtcbiAgICAgIGNvbnN0IHdlYlJlcXVlc3QgPSBuZXcgUmVxdWVzdCh1cmwsIHtcbiAgICAgICAgbWV0aG9kOiByZXEubWV0aG9kLFxuICAgICAgICBoZWFkZXJzOiByZXEuaGVhZGVycyxcbiAgICAgICAgYm9keTogcmVxLm1ldGhvZCAhPT0gJ0dFVCcgJiYgcmVxLm1ldGhvZCAhPT0gJ0hFQUQnID8gcmVxIDogdW5kZWZpbmVkXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgYXBpSGFuZGxlci5oYW5kbGUod2ViUmVxdWVzdCwge1xuICAgICAgICBwcmVmaXg6ICcvYXBpJyxcbiAgICAgICAgY29udGV4dDoge31cbiAgICAgIH0pO1xuXG4gICAgICBpZiAocmVzdWx0LnJlc3BvbnNlKSB7XG4gICAgICAgIHJlcy5zdGF0dXMocmVzdWx0LnJlc3BvbnNlLnN0YXR1cyk7XG4gICAgICAgIHJlc3VsdC5yZXNwb25zZS5oZWFkZXJzLmZvckVhY2goKHZhbHVlOiBzdHJpbmcsIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgcmVzLnNldEhlYWRlcihrZXksIHZhbHVlKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHRleHQgPSBhd2FpdCByZXN1bHQucmVzcG9uc2UudGV4dCgpO1xuICAgICAgICByZXMuc2VuZCh0ZXh0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcy5zdGF0dXMoNDA0KS5zZW5kKCdOb3QgRm91bmQnKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5lcnJvcignT3BlbkFQSSBlcnJvcjonLCBlcnJvcik7XG4gICAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7IGVycm9yOiAoZXJyb3IgYXMgRXJyb3IpLm1lc3NhZ2UgfSk7XG4gICAgfVxuICB9O1xuXG4gIGRldlNlcnZlci5hcHAuYWxsKCcvYXBpJywgaGFuZGxlQXBpUmVxdWVzdCk7XG4gIGRldlNlcnZlci5hcHAuYWxsKCcvYXBpLyonLCBoYW5kbGVBcGlSZXF1ZXN0KTtcblxuICAvLyBSUEMgY2FsbHMgYXQgL2FwaS9ycGMvKlxuICBkZXZTZXJ2ZXIuYXBwLmFsbCgnL2FwaS9ycGMvKicsIGFzeW5jIChyZXE6IGFueSwgcmVzOiBhbnkpID0+IHtcbiAgICBjb25zdCBycGNIYW5kbGVyID0gZGV2U2VydmVyLmFwcC5sb2NhbHMuaGFuZGxlcnM/LnJwYztcbiAgICBpZiAoIXJwY0hhbmRsZXIpIHtcbiAgICAgIHJldHVybiByZXMuc3RhdHVzKDUwMykuanNvbih7IGVycm9yOiAnUGx1Z2luIHN0aWxsIGxvYWRpbmcuLi4nIH0pO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCB1cmwgPSBgaHR0cDovLyR7cmVxLmhlYWRlcnMuaG9zdH0ke3JlcS51cmx9YDtcbiAgICAgIGNvbnN0IHdlYlJlcXVlc3QgPSBuZXcgUmVxdWVzdCh1cmwsIHtcbiAgICAgICAgbWV0aG9kOiByZXEubWV0aG9kLFxuICAgICAgICBoZWFkZXJzOiByZXEuaGVhZGVycyxcbiAgICAgICAgYm9keTogcmVxLm1ldGhvZCAhPT0gJ0dFVCcgJiYgcmVxLm1ldGhvZCAhPT0gJ0hFQUQnID8gcmVxIDogdW5kZWZpbmVkXG4gICAgICB9KTtcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcnBjSGFuZGxlci5oYW5kbGUod2ViUmVxdWVzdCwge1xuICAgICAgICBwcmVmaXg6ICcvYXBpL3JwYycsXG4gICAgICAgIGNvbnRleHQ6IHt9XG4gICAgICB9KTtcblxuICAgICAgaWYgKHJlc3VsdC5yZXNwb25zZSkge1xuICAgICAgICByZXMuc3RhdHVzKHJlc3VsdC5yZXNwb25zZS5zdGF0dXMpO1xuICAgICAgICByZXN1bHQucmVzcG9uc2UuaGVhZGVycy5mb3JFYWNoKCh2YWx1ZTogc3RyaW5nLCBrZXk6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHJlcy5zZXRIZWFkZXIoa2V5LCB2YWx1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgcmVzdWx0LnJlc3BvbnNlLnRleHQoKTtcbiAgICAgICAgcmVzLnNlbmQodGV4dCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXMuc3RhdHVzKDQwNCkuc2VuZCgnTm90IEZvdW5kJyk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1JQQyBlcnJvcjonLCBlcnJvcik7XG4gICAgICByZXMuc3RhdHVzKDUwMCkuanNvbih7IGVycm9yOiAoZXJyb3IgYXMgRXJyb3IpLm1lc3NhZ2UgfSk7XG4gICAgfVxuICB9KTtcbn1cbiIsImltcG9ydCB0eXBlIHsgQ29tcGlsZXIsIFJzcGFja1BsdWdpbkluc3RhbmNlIH0gZnJvbSAnQHJzcGFjay9jb3JlJztcbmltcG9ydCB7IHJzcGFjayB9IGZyb20gJ0Byc3BhY2svY29yZSc7XG5pbXBvcnQgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgZ2V0UGx1Z2luSW5mbyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgbG9hZERldkNvbmZpZyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgYnVpbGRTaGFyZWREZXBlbmRlbmNpZXMgfSBmcm9tICcuL21vZHVsZS1mZWRlcmF0aW9uJztcbmltcG9ydCB7IHNldHVwUGx1Z2luTWlkZGxld2FyZSB9IGZyb20gJy4vZGV2LXNlcnZlci1taWRkbGV3YXJlJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZXJ5UGx1Z2luT3B0aW9ucyB7XG4gIGRldkNvbmZpZ1BhdGg/OiBzdHJpbmc7ICAvLyBkZWZhdWx0cyB0byAnLi9wbHVnaW4uZGV2LnRzJ1xuICBwb3J0PzogbnVtYmVyOyAgICAgICAgICAgLy8gb3ZlcnJpZGUgcGx1Z2luLmRldi50cyBwb3J0XG4gIHBsdWdpbklkPzogc3RyaW5nOyAgICAgICAvLyBvdmVycmlkZSBhdXRvLWRldGVjdGVkXG59XG5cbmV4cG9ydCBjbGFzcyBFdmVyeVBsdWdpbkRldlNlcnZlciBpbXBsZW1lbnRzIFJzcGFja1BsdWdpbkluc3RhbmNlIHtcbiAgbmFtZSA9ICdFdmVyeVBsdWdpbkRldlNlcnZlcic7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBvcHRpb25zOiBFdmVyeVBsdWdpbk9wdGlvbnMgPSB7fSkge31cblxuICBhcHBseShjb21waWxlcjogQ29tcGlsZXIpIHtcbiAgICAvLyBMb2FkIGNvbmZpZ3VyYXRpb25cbiAgICBjb25zdCBwbHVnaW5JbmZvID0gZ2V0UGx1Z2luSW5mbyhjb21waWxlci5vcHRpb25zLmNvbnRleHQgfHwgcHJvY2Vzcy5jd2QoKSk7XG4gICAgY29uc3QgZGV2Q29uZmlnID0gbG9hZERldkNvbmZpZyh0aGlzLm9wdGlvbnMuZGV2Q29uZmlnUGF0aCB8fCAnLi9wbHVnaW4uZGV2LnRzJyk7XG4gICAgY29uc3QgcG9ydCA9IHRoaXMub3B0aW9ucy5wb3J0IHx8IGRldkNvbmZpZz8ucG9ydCB8fCAzOTk5O1xuXG4gICAgLy8gQ29uZmlndXJlIGRlZmF1bHRzIGltbWVkaWF0ZWx5IChubyBob29rcyBuZWVkZWQpXG4gICAgdGhpcy5jb25maWd1cmVEZWZhdWx0cyhjb21waWxlciwgcGx1Z2luSW5mbyk7XG5cbiAgICAvLyBJbml0aWFsaXplIGRldlNlcnZlciBpZiBpdCBkb2Vzbid0IGV4aXN0XG4gICAgaWYgKCFjb21waWxlci5vcHRpb25zLmRldlNlcnZlcikge1xuICAgICAgY29tcGlsZXIub3B0aW9ucy5kZXZTZXJ2ZXIgPSB7fTtcbiAgICB9XG5cbiAgICAvLyBDb25maWd1cmUgZGV2IHNlcnZlclxuICAgIHRoaXMuY29uZmlndXJlRGV2U2VydmVyKGNvbXBpbGVyLCBwbHVnaW5JbmZvLCBkZXZDb25maWcsIHBvcnQpO1xuXG4gICAgLy8gQXBwbHkgTW9kdWxlIEZlZGVyYXRpb24gcGx1Z2luXG4gICAgbmV3IHJzcGFjay5jb250YWluZXIuTW9kdWxlRmVkZXJhdGlvblBsdWdpbih7XG4gICAgICBuYW1lOiBwbHVnaW5JbmZvLm5vcm1hbGl6ZWROYW1lLFxuICAgICAgZmlsZW5hbWU6ICdyZW1vdGVFbnRyeS5qcycsXG4gICAgICBydW50aW1lUGx1Z2luczogW1xuICAgICAgICByZXF1aXJlLnJlc29sdmUoJ0Btb2R1bGUtZmVkZXJhdGlvbi9ub2RlL3J1bnRpbWVQbHVnaW4nKSxcbiAgICAgIF0sXG4gICAgICBsaWJyYXJ5OiB7IHR5cGU6ICdjb21tb25qcy1tb2R1bGUnIH0sXG4gICAgICBleHBvc2VzOiB7XG4gICAgICAgICcuL3BsdWdpbic6ICcuL3NyYy9pbmRleC50cycsXG4gICAgICB9LFxuICAgICAgc2hhcmVkOiBidWlsZFNoYXJlZERlcGVuZGVuY2llcyhwbHVnaW5JbmZvKSxcbiAgICB9KS5hcHBseShjb21waWxlcik7XG4gIH1cblxuICBwcml2YXRlIGNvbmZpZ3VyZURlZmF1bHRzKGNvbXBpbGVyOiBDb21waWxlciwgcGx1Z2luSW5mbzogYW55KSB7XG4gICAgY29uc3QgY29udGV4dCA9IGNvbXBpbGVyLm9wdGlvbnMuY29udGV4dCB8fCBwcm9jZXNzLmN3ZCgpO1xuXG4gICAgLy8gQ29uZmlndXJlIG91dHB1dCBkZWZhdWx0c1xuICAgIGlmICghY29tcGlsZXIub3B0aW9ucy5vdXRwdXQpIHtcbiAgICAgIGNvbXBpbGVyLm9wdGlvbnMub3V0cHV0ID0ge307XG4gICAgfVxuICAgIGNvbXBpbGVyLm9wdGlvbnMub3V0cHV0LnVuaXF1ZU5hbWUgPSBwbHVnaW5JbmZvLm5vcm1hbGl6ZWROYW1lO1xuICAgIGNvbXBpbGVyLm9wdGlvbnMub3V0cHV0LnB1YmxpY1BhdGggPSAnYXV0byc7XG4gICAgY29tcGlsZXIub3B0aW9ucy5vdXRwdXQucGF0aCA9IHBhdGgucmVzb2x2ZShjb250ZXh0LCAnZGlzdCcpO1xuICAgIGNvbXBpbGVyLm9wdGlvbnMub3V0cHV0LmNsZWFuID0gdHJ1ZTtcbiAgICBjb21waWxlci5vcHRpb25zLm91dHB1dC5saWJyYXJ5ID0geyB0eXBlOiAnY29tbW9uanMtbW9kdWxlJyB9O1xuXG4gICAgLy8gQ29uZmlndXJlIGVudHJ5IGlmIG5vdCBzZXRcbiAgICBpZiAoIWNvbXBpbGVyLm9wdGlvbnMuZW50cnkpIHtcbiAgICAgIGNvbXBpbGVyLm9wdGlvbnMuZW50cnkgPSB7XG4gICAgICAgIG1haW46IHtcbiAgICAgICAgICBpbXBvcnQ6IFsnLi9zcmMvaW5kZXgnXVxuICAgICAgICB9XG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIENvbmZpZ3VyZSB0YXJnZXQgYW5kIG1vZGUgZGVmYXVsdHNcbiAgICBpZiAoIWNvbXBpbGVyLm9wdGlvbnMudGFyZ2V0KSB7XG4gICAgICBjb21waWxlci5vcHRpb25zLnRhcmdldCA9ICdhc3luYy1ub2RlJztcbiAgICB9XG5cbiAgICBpZiAoIWNvbXBpbGVyLm9wdGlvbnMubW9kZSkge1xuICAgICAgY29tcGlsZXIub3B0aW9ucy5tb2RlID0gcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcgPyAnZGV2ZWxvcG1lbnQnIDogJ3Byb2R1Y3Rpb24nO1xuICAgIH1cblxuICAgIC8vIENvbmZpZ3VyZSBkZXZ0b29sXG4gICAgaWYgKCFjb21waWxlci5vcHRpb25zLmRldnRvb2wpIHtcbiAgICAgIGNvbXBpbGVyLm9wdGlvbnMuZGV2dG9vbCA9ICdzb3VyY2UtbWFwJztcbiAgICB9XG5cbiAgICAvLyBTdXBwcmVzcyB2ZXJib3NlIGluZnJhc3RydWN0dXJlIGxvZ2dpbmdcbiAgICBpZiAoIWNvbXBpbGVyLm9wdGlvbnMuaW5mcmFzdHJ1Y3R1cmVMb2dnaW5nKSB7XG4gICAgICBjb21waWxlci5vcHRpb25zLmluZnJhc3RydWN0dXJlTG9nZ2luZyA9IHtcbiAgICAgICAgbGV2ZWw6ICd3YXJuJywgIC8vIE9ubHkgc2hvdyB3YXJuaW5ncyBhbmQgZXJyb3JzXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIENvbmZpZ3VyZSBtb2R1bGUgcnVsZXMgLSBlbnN1cmUgVHlwZVNjcmlwdCBsb2FkZXIgaXMgcHJlc2VudFxuICAgIHRoaXMuZW5zdXJlVHlwZVNjcmlwdExvYWRlcihjb21waWxlcik7XG5cbiAgICAvLyBDb25maWd1cmUgcmVzb2x2ZSBleHRlbnNpb25zXG4gICAgaWYgKCFjb21waWxlci5vcHRpb25zLnJlc29sdmUpIHtcbiAgICAgIGNvbXBpbGVyLm9wdGlvbnMucmVzb2x2ZSA9IHt9O1xuICAgIH1cbiAgICBjb21waWxlci5vcHRpb25zLnJlc29sdmUuZXh0ZW5zaW9ucyA9IFsnLi4uJywgJy50c3gnLCAnLnRzJ107XG4gIH1cblxuICBwcml2YXRlIGVuc3VyZVR5cGVTY3JpcHRMb2FkZXIoY29tcGlsZXI6IENvbXBpbGVyKSB7XG4gICAgaWYgKCFjb21waWxlci5vcHRpb25zLm1vZHVsZSkge1xuICAgICAgY29tcGlsZXIub3B0aW9ucy5tb2R1bGUgPSB7IHJ1bGVzOiBbXSB9IGFzIGFueTtcbiAgICB9XG5cbiAgICBpZiAoIWNvbXBpbGVyLm9wdGlvbnMubW9kdWxlLnJ1bGVzKSB7XG4gICAgICBjb21waWxlci5vcHRpb25zLm1vZHVsZS5ydWxlcyA9IFtdO1xuICAgIH1cblxuICAgIC8vIENoZWNrIGlmIFR5cGVTY3JpcHQgbG9hZGVyIGlzIGFscmVhZHkgY29uZmlndXJlZFxuICAgIGNvbnN0IGhhc1RzTG9hZGVyID0gY29tcGlsZXIub3B0aW9ucy5tb2R1bGUucnVsZXMuc29tZSgocnVsZTogYW55KSA9PlxuICAgICAgdHlwZW9mIHJ1bGUgPT09ICdvYmplY3QnICYmXG4gICAgICBydWxlICE9PSBudWxsICYmXG4gICAgICAndGVzdCcgaW4gcnVsZSAmJlxuICAgICAgcnVsZS50ZXN0IGluc3RhbmNlb2YgUmVnRXhwICYmXG4gICAgICBydWxlLnRlc3QudGVzdCgnLnRzJylcbiAgICApO1xuXG4gICAgLy8gQWRkIFR5cGVTY3JpcHQgbG9hZGVyIGlmIG5vdCBwcmVzZW50XG4gICAgaWYgKCFoYXNUc0xvYWRlcikge1xuICAgICAgY29tcGlsZXIub3B0aW9ucy5tb2R1bGUucnVsZXMucHVzaCh7XG4gICAgICAgIHRlc3Q6IC9cXC50c3g/JC8sXG4gICAgICAgIHVzZTogJ2J1aWx0aW46c3djLWxvYWRlcicsXG4gICAgICAgIGV4Y2x1ZGU6IC9ub2RlX21vZHVsZXMvLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjb25maWd1cmVEZXZTZXJ2ZXIoY29tcGlsZXI6IENvbXBpbGVyLCBwbHVnaW5JbmZvOiBhbnksIGRldkNvbmZpZzogYW55LCBwb3J0OiBudW1iZXIpIHtcbiAgICBpZiAoIWNvbXBpbGVyLm9wdGlvbnMuZGV2U2VydmVyKSB7XG4gICAgICByZXR1cm47IC8vIFNob3VsZCBuZXZlciBoYXBwZW4gZHVlIHRvIGNoZWNrIGluIGFwcGx5KClcbiAgICB9XG5cbiAgICBjb25zdCBjb250ZXh0ID0gY29tcGlsZXIub3B0aW9ucy5jb250ZXh0IHx8IHByb2Nlc3MuY3dkKCk7XG4gICAgY29uc3Qgb3JpZ2luYWxTZXR1cCA9IGNvbXBpbGVyLm9wdGlvbnMuZGV2U2VydmVyLnNldHVwTWlkZGxld2FyZXM7XG5cbiAgICBjb21waWxlci5vcHRpb25zLmRldlNlcnZlci5wb3J0ID0gcG9ydDtcbiAgICBjb21waWxlci5vcHRpb25zLmRldlNlcnZlci5zdGF0aWMgPSBwYXRoLmpvaW4oY29udGV4dCwgJ2Rpc3QnKTtcbiAgICBjb21waWxlci5vcHRpb25zLmRldlNlcnZlci5ob3QgPSB0cnVlO1xuICAgIGNvbXBpbGVyLm9wdGlvbnMuZGV2U2VydmVyLmRldk1pZGRsZXdhcmUgPSB7IHdyaXRlVG9EaXNrOiB0cnVlIH07XG4gICAgY29tcGlsZXIub3B0aW9ucy5kZXZTZXJ2ZXIuaGVhZGVycyA9IHtcbiAgICAgICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nOiAnKicsXG4gICAgICAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kcyc6ICdHRVQsIFBPU1QsIFBVVCwgREVMRVRFLCBQQVRDSCwgT1BUSU9OUycsXG4gICAgICAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctSGVhZGVycyc6ICdYLVJlcXVlc3RlZC1XaXRoLCBjb250ZW50LXR5cGUsIEF1dGhvcml6YXRpb24nLFxuICAgIH07XG5cbiAgICAvLyBTdXBwcmVzcyB2ZXJib3NlIGxvZ2dpbmdcbiAgICBjb21waWxlci5vcHRpb25zLmRldlNlcnZlci5jbGllbnQgPSB7XG4gICAgICBsb2dnaW5nOiAnd2FybicsICAvLyBPbmx5IHNob3cgd2FybmluZ3MgYW5kIGVycm9yc1xuICAgICAgb3ZlcmxheToge1xuICAgICAgICB3YXJuaW5nczogZmFsc2UsICAvLyBEb24ndCBzaG93IHdhcm5pbmcgb3ZlcmxheVxuICAgICAgICBlcnJvcnM6IHRydWUsICAgICAvLyBTdGlsbCBzaG93IGVycm9yc1xuICAgICAgfSxcbiAgICB9O1xuXG4gICAgY29tcGlsZXIub3B0aW9ucy5kZXZTZXJ2ZXIuc2V0dXBNaWRkbGV3YXJlcyA9IChtaWRkbGV3YXJlcywgZGV2U2VydmVyKSA9PiB7XG4gICAgICBzZXR1cFBsdWdpbk1pZGRsZXdhcmUoZGV2U2VydmVyLCBwbHVnaW5JbmZvLCBkZXZDb25maWcsIHBvcnQpO1xuICAgICAgcmV0dXJuIG9yaWdpbmFsU2V0dXAgPyBvcmlnaW5hbFNldHVwKG1pZGRsZXdhcmVzLCBkZXZTZXJ2ZXIpIDogbWlkZGxld2FyZXM7XG4gICAgfTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBWUEsU0FBZ0IsY0FBYyxTQUE2QjtDQUN6RCxNQUFNLFVBQVVBLGtCQUFLLEtBQUssU0FBUyxlQUFlO0NBQ2xELE1BQU0sTUFBTSxLQUFLLE1BQU1DLGdCQUFHLGFBQWEsU0FBUyxRQUFRLENBQUM7QUFFekQsUUFBTztFQUNMLE1BQU0sSUFBSTtFQUNWLFNBQVMsSUFBSTtFQUNiLGdCQUFnQkMsMENBQXdCLElBQUksS0FBSztFQUNqRCxjQUFjLElBQUksZ0JBQWdCLEVBQUU7RUFDcEMsa0JBQWtCLElBQUksb0JBQW9CLEVBQUU7RUFDN0M7O0FBR0gsTUFBTSxnQ0FBZ0IsSUFBSSxLQUFhO0FBRXZDLFNBQWdCLGNBQWMsZUFBdUI7QUFDbkQsS0FBSTtFQUNGLE1BQU0sV0FBV0Ysa0JBQUssUUFBUSxjQUFjO0FBRTVDLE1BQUksY0FBYyxJQUFJLFNBQVMsRUFBRTtBQUMvQixVQUFPLFFBQVEsTUFBTTtHQUNyQixNQUFNLFVBQVVBLGtCQUFLLFFBQVEsU0FBUztBQUN0QyxRQUFLLE1BQU0sT0FBTyxPQUFPLEtBQUssUUFBUSxNQUFNLENBQzFDLEtBQUksSUFBSSxXQUFXLFFBQVEsSUFBSSxRQUFRLFNBQ3JDLFFBQU8sUUFBUSxNQUFNOztFQUszQixNQUFNRyxXQUFTLFFBQVEsU0FBUyxDQUFDO0FBQ2pDLGdCQUFjLElBQUksU0FBUztBQUMzQixTQUFPQTtVQUNBLE9BQU87QUFDZCxVQUFRLEtBQUssa0NBQWtDLGNBQWMsSUFBSyxNQUFnQixRQUFRO0FBQzFGLFNBQU87Ozs7OztBQzVDWCxTQUFnQix3QkFBd0Is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
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Compiler, RspackPluginInstance } from "@rspack/core";
|
|
2
|
+
|
|
3
|
+
//#region src/build/rspack/plugin.d.ts
|
|
4
|
+
interface EveryPluginOptions {
|
|
5
|
+
devConfigPath?: string;
|
|
6
|
+
port?: number;
|
|
7
|
+
pluginId?: string;
|
|
8
|
+
}
|
|
9
|
+
declare class EveryPluginDevServer implements RspackPluginInstance {
|
|
10
|
+
private options;
|
|
11
|
+
name: string;
|
|
12
|
+
constructor(options?: EveryPluginOptions);
|
|
13
|
+
apply(compiler: Compiler): void;
|
|
14
|
+
private configureDefaults;
|
|
15
|
+
private ensureTypeScriptLoader;
|
|
16
|
+
private configureDevServer;
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { EveryPluginDevServer, type EveryPluginOptions };
|
|
20
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5jdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2J1aWxkL3JzcGFjay9wbHVnaW4udHMiXSwic291cmNlc0NvbnRlbnQiOltdLCJtYXBwaW5ncyI6Ijs7O1VBU2lCLGtCQUFBOztFQUFBLElBQUEsQ0FBQSxFQUFBLE1BQUE7RUFNSixRQUFBLENBQUEsRUFBQSxNQUFBOztBQUtLLGNBTEwsb0JBQUEsWUFBZ0Msb0JBSzNCLENBQUE7RUFMMkIsUUFBQSxPQUFBO0VBQW9CLElBQUEsRUFBQSxNQUFBO3dCQUdsQztrQkFFYiJ9
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { Compiler, RspackPluginInstance } from "@rspack/core";
|
|
2
|
+
|
|
3
|
+
//#region src/build/rspack/plugin.d.ts
|
|
4
|
+
interface EveryPluginOptions {
|
|
5
|
+
devConfigPath?: string;
|
|
6
|
+
port?: number;
|
|
7
|
+
pluginId?: string;
|
|
8
|
+
}
|
|
9
|
+
declare class EveryPluginDevServer implements RspackPluginInstance {
|
|
10
|
+
private options;
|
|
11
|
+
name: string;
|
|
12
|
+
constructor(options?: EveryPluginOptions);
|
|
13
|
+
apply(compiler: Compiler): void;
|
|
14
|
+
private configureDefaults;
|
|
15
|
+
private ensureTypeScriptLoader;
|
|
16
|
+
private configureDevServer;
|
|
17
|
+
}
|
|
18
|
+
//#endregion
|
|
19
|
+
export { EveryPluginDevServer, type EveryPluginOptions };
|
|
20
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC5tdHMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2J1aWxkL3JzcGFjay9wbHVnaW4udHMiXSwic291cmNlc0NvbnRlbnQiOltdLCJtYXBwaW5ncyI6Ijs7O1VBU2lCLGtCQUFBOztFQUFBLElBQUEsQ0FBQSxFQUFBLE1BQUE7RUFNSixRQUFBLENBQUEsRUFBQSxNQUFBOztBQUtLLGNBTEwsb0JBQUEsWUFBZ0Msb0JBSzNCLENBQUE7RUFMMkIsUUFBQSxPQUFBO0VBQW9CLElBQUEsRUFBQSxNQUFBO3dCQUdsQztrQkFFYiJ9
|