@decaf-ts/for-nest 0.11.2-refactor → 0.11.2-refactor.3
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/for-nest.cjs +201 -182
- package/dist/for-nest.js +226 -207
- package/lib/cjs/auth/AuthInterceptor.cjs +9 -4
- package/lib/cjs/auth/DecafAuthModule.cjs +2 -8
- package/lib/cjs/auth/constants.cjs +4 -3
- package/lib/cjs/cli-module.cjs +19 -4
- package/lib/cjs/constants.cjs +3 -4
- package/lib/cjs/controllers.cjs +5 -9
- package/lib/cjs/decaf-model/DecafModelModule.cjs +7 -3
- package/lib/cjs/decaf-model/FromModelController.cjs +22 -5
- package/lib/cjs/decaf-model/decorators/decorators.cjs +4 -4
- package/lib/cjs/decaf-model/index.cjs +2 -2
- package/lib/cjs/index.cjs +3 -3
- package/lib/cjs/interceptors/DecafRequestHandlerInterceptor.cjs +2 -4
- package/lib/cjs/module.cjs +3 -2
- package/lib/cjs/request/DecafRequestContext.cjs +5 -2
- package/lib/esm/auth/AuthInterceptor.js +9 -4
- package/lib/esm/auth/DecafAuthModule.js +1 -7
- package/lib/esm/auth/constants.js +2 -1
- package/lib/esm/cli-module.js +18 -3
- package/lib/esm/constants.js +1 -2
- package/lib/esm/controllers.js +4 -8
- package/lib/esm/decaf-model/DecafModelModule.js +6 -2
- package/lib/esm/decaf-model/FromModelController.js +22 -5
- package/lib/esm/decaf-model/decorators/decorators.js +2 -2
- package/lib/esm/decaf-model/index.js +1 -1
- package/lib/esm/index.js +3 -3
- package/lib/esm/interceptors/DecafRequestHandlerInterceptor.js +1 -3
- package/lib/esm/module.js +2 -1
- package/lib/esm/request/DecafRequestContext.js +4 -1
- package/lib/types/auth/constants.d.cts +1 -0
- package/lib/types/auth/constants.d.mts +1 -0
- package/lib/types/constants.d.cts +0 -1
- package/lib/types/constants.d.mts +0 -1
- package/lib/types/decaf-model/FromModelController.d.cts +1 -1
- package/lib/types/decaf-model/FromModelController.d.mts +1 -1
- package/lib/types/decaf-model/decorators/decorators.d.cts +1 -1
- package/lib/types/decaf-model/decorators/decorators.d.mts +1 -1
- package/lib/types/decaf-model/index.d.cts +1 -0
- package/lib/types/decaf-model/index.d.mts +1 -0
- package/lib/types/index.d.cts +3 -3
- package/lib/types/index.d.mts +3 -3
- package/lib/types/request/DecafRequestContext.d.cts +1 -0
- package/lib/types/request/DecafRequestContext.d.mts +1 -0
- package/package.json +1 -1
package/lib/esm/cli-module.js
CHANGED
|
@@ -134,7 +134,7 @@ const migrateCommand = new Command()
|
|
|
134
134
|
const { input, config } = resolveMigrateCommandConfig(options, pkg);
|
|
135
135
|
let app;
|
|
136
136
|
try {
|
|
137
|
-
app = await NestFactory.create(await normalizeImport(import(path.join(process.cwd(), input))), { logger: false });
|
|
137
|
+
app = await NestFactory.create(resolveNestModule(await normalizeImport(import(path.join(process.cwd(), input)))), { logger: false });
|
|
138
138
|
await app.init();
|
|
139
139
|
log.info(`App booted`);
|
|
140
140
|
const cache = Adapter["_cache"];
|
|
@@ -196,6 +196,21 @@ const migrateCommand = new Command()
|
|
|
196
196
|
}
|
|
197
197
|
});
|
|
198
198
|
export { migrateCommand };
|
|
199
|
+
function resolveNestModule(mod) {
|
|
200
|
+
if (typeof mod === "function")
|
|
201
|
+
return mod;
|
|
202
|
+
if (mod?.default && typeof mod.default === "function")
|
|
203
|
+
return mod.default;
|
|
204
|
+
if (mod && typeof mod === "object") {
|
|
205
|
+
const classes = Object.values(mod).filter((v) => typeof v === "function");
|
|
206
|
+
if (classes.length === 1)
|
|
207
|
+
return classes[0];
|
|
208
|
+
const named = mod[Object.keys(mod).find((k) => /Module$/.test(k)) || ""];
|
|
209
|
+
if (typeof named === "function")
|
|
210
|
+
return named;
|
|
211
|
+
}
|
|
212
|
+
return mod;
|
|
213
|
+
}
|
|
199
214
|
const exportApiCommand = new Command()
|
|
200
215
|
.name("export-api")
|
|
201
216
|
.description("boots the app context headlessly, extracts the OpenAPI spec, and writes it to a JSON file")
|
|
@@ -210,7 +225,7 @@ const exportApiCommand = new Command()
|
|
|
210
225
|
const input = resolveInputPath(options.input);
|
|
211
226
|
let app;
|
|
212
227
|
try {
|
|
213
|
-
app = await NestFactory.create(await normalizeImport(import(path.join(process.cwd(), input))), { logger: false });
|
|
228
|
+
app = await NestFactory.create(resolveNestModule(await normalizeImport(import(path.join(process.cwd(), input)))), { logger: false });
|
|
214
229
|
await app.init();
|
|
215
230
|
log.info(`App booted from ${input}`);
|
|
216
231
|
const config = new DocumentBuilder()
|
|
@@ -244,4 +259,4 @@ nestCmd.addCommand(exportApiCommand);
|
|
|
244
259
|
export default function nest() {
|
|
245
260
|
return nestCmd;
|
|
246
261
|
}
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGktbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU1QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBRXZDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDaEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRSxNQUFNLHNCQUFzQixHQUFHO0lBQzdCLHNCQUFzQjtJQUN0QixxQkFBcUI7SUFDckIscUJBQXFCO0NBQ3RCLENBQUM7QUFFRixTQUFTLHNCQUFzQixDQUFDLFNBQWlCO0lBQy9DLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLEtBQWMsRUFDZCxTQUF5QyxzQkFBc0IsRUFDL0QsVUFBVSxHQUFHLHNCQUFzQjtJQUVu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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2dnaW5nIH0gZnJvbSBcIkBkZWNhZi10cy9sb2dnaW5nXCI7XG5cbmNvbnN0IGxvZ2dlciA9IExvZ2dpbmcuZm9yKFwiZm9yLW5lc3RcIik7XG5cbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5pbXBvcnQgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgQWRhcHRlciwgbm9ybWFsaXplSW1wb3J0LCBTZXJ2aWNlLCBUYXNrTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IFNlbXZlck1pZ3JhdGlvblZlcnNpb25pbmcgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmUvbWlncmF0aW9ucy9TZW12ZXJNaWdyYXRpb25WZXJzaW9uaW5nXCI7XG5pbXBvcnQgeyBNaWdyYXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlL21pZ3JhdGlvbnNcIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IE5lc3RGYWN0b3J5IH0gZnJvbSBcIkBuZXN0anMvY29yZVwiO1xuaW1wb3J0IHsgSU5lc3RBcHBsaWNhdGlvbiB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgRG9jdW1lbnRCdWlsZGVyLCBTd2FnZ2VyTW9kdWxlIH0gZnJvbSBcIkBuZXN0anMvc3dhZ2dlclwiO1xuXG5jb25zdCBkZWZhdWx0SW5wdXRDYW5kaWRhdGVzID0gW1xuICBcIi4vbGliL2FwcC5tb2R1bGUuY2pzXCIsXG4gIFwiLi9saWIvYXBwLm1vZHVsZS5qc1wiLFxuICBcIi4vc3JjL2FwcC5tb2R1bGUudHNcIixcbl07XG5cbmZ1bmN0aW9uIGRlZmF1bHRDYW5kaWRhdGVFeGlzdHMoY2FuZGlkYXRlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGZzLmV4aXN0c1N5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIGNhbmRpZGF0ZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUlucHV0UGF0aChcbiAgaW5wdXQ/OiBzdHJpbmcsXG4gIGV4aXN0czogKGNhbmRpZGF0ZTogc3RyaW5nKSA9PiBib29sZWFuID0gZGVmYXVsdENhbmRpZGF0ZUV4aXN0cyxcbiAgY2FuZGlkYXRlcyA9IGRlZmF1bHRJbnB1dENhbmRpZGF0ZXNcbik6IHN0cmluZyB7XG4gIGlmIChpbnB1dCkgcmV0dXJuIGlucHV0O1xuICBjb25zdCBmb3VuZCA9IGNhbmRpZGF0ZXMuZmluZCgoY2FuZGlkYXRlKSA9PiBleGlzdHMoY2FuZGlkYXRlKSk7XG4gIHJldHVybiBmb3VuZCB8fCBcIi4vc3JjL2FwcC5tb2R1bGUudHNcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkT3V0cHV0RmlsZVBhdGgocGFyYW1zOiB7XG4gIG91dHB1dERpcjogc3RyaW5nO1xuICBwa2dOYW1lPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBmaWxlTmFtZT86IHN0cmluZztcbiAgYXBwZW5kVmVyc2lvbj86IGJvb2xlYW47XG4gIHZlcnNpb24/OiBzdHJpbmc7XG59KTogc3RyaW5nIHtcbiAgY29uc3Qge1xuICAgIG91dHB1dERpcixcbiAgICBwa2dOYW1lLFxuICAgIG5hbWUsXG4gICAgZmlsZU5hbWUsXG4gICAgYXBwZW5kVmVyc2lvbiA9IGZhbHNlLFxuICAgIHZlcnNpb24sXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGJhc2VEaXIgPSBwYXRoLnJlc29sdmUob3V0cHV0RGlyKTtcbiAgY29uc3QgZGVmYXVsdFBrZ05hbWUgPSBwa2dOYW1lO1xuICBjb25zdCByZXNvbHZlZFJhd1NvdXJjZSA9IGZpbGVOYW1lIHx8IG5hbWUgfHwgZGVmYXVsdFBrZ05hbWUgfHwgXCJhcGlcIjtcbiAgY29uc3QgYmFzZU5hbWUgPSBwYXRoLmJhc2VuYW1lKHJlc29sdmVkUmF3U291cmNlKTtcbiAgY29uc3QgcmVzb2x2ZWRSYXcgPSBiYXNlTmFtZS5yZXBsYWNlKC9bXFxcXC9dL2csIFwiX1wiKTtcbiAgY29uc3QgdHJpbW1lZCA9IHJlc29sdmVkUmF3LnJlcGxhY2UoL15bLl9dKy8sIFwiXCIpO1xuICBjb25zdCByZXNvbHZlZE5hbWUgPSB0cmltbWVkIHx8IFwiYXBpXCI7XG4gIGNvbnN0IHN1ZmZpeCA9IGFwcGVuZFZlcnNpb24gJiYgdmVyc2lvbiA/IGAtJHt2ZXJzaW9ufWAgOiBcIlwiO1xuICByZXR1cm4gcGF0aC5qb2luKGJhc2VEaXIsIGAke3Jlc29sdmVkTmFtZX0ke3N1ZmZpeH0uanNvbmApO1xufVxuXG5mdW5jdGlvbiBwYXJzZUxpc3QodmFsdWU6IHVua25vd24pOiBzdHJpbmdbXSB7XG4gIGlmICghdmFsdWUpIHJldHVybiBbXTtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKVxuICAgIHJldHVybiB2YWx1ZS5mbGF0TWFwKChlbnRyeSkgPT4gcGFyc2VMaXN0KGVudHJ5KSkuZmlsdGVyKEJvb2xlYW4pO1xuICByZXR1cm4gU3RyaW5nKHZhbHVlKVxuICAgIC5zcGxpdChcIixcIilcbiAgICAubWFwKChlbnRyeSkgPT4gZW50cnkudHJpbSgpKVxuICAgIC5maWx0ZXIoQm9vbGVhbik7XG59XG5cbmZ1bmN0aW9uIHBhcnNlQm9vbGVhbkZsYWcodmFsdWU6IHVua25vd24pOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiB1bmRlZmluZWQ7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYm9vbGVhblwiKSByZXR1cm4gdmFsdWU7XG5cbiAgY29uc3Qgbm9ybWFsaXplZCA9IGAke3ZhbHVlfWAudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gIGlmIChbXCIxXCIsIFwidHJ1ZVwiLCBcInllc1wiLCBcIm9uXCJdLmluY2x1ZGVzKG5vcm1hbGl6ZWQpKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKFtcIjBcIiwgXCJmYWxzZVwiLCBcIm5vXCIsIFwib2ZmXCJdLmluY2x1ZGVzKG5vcm1hbGl6ZWQpKSByZXR1cm4gZmFsc2U7XG4gIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBJbnZhbGlkIGJvb2xlYW4gZmxhZyB2YWx1ZTogJHt2YWx1ZX1gKTtcbn1cblxuZnVuY3Rpb24gdW5pcXVlKHZhbHVlczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gIHJldHVybiBbLi4ubmV3IFNldCh2YWx1ZXMpXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVNaWdyYXRlQ29tbWFuZENvbmZpZyhcbiAgb3B0aW9uczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fSxcbiAgcGtnOiBhbnkgPSB7fVxuKToge1xuICBpbnB1dDogc3RyaW5nO1xuICBjb25maWc6IHtcbiAgICB0b1ZlcnNpb246IHN0cmluZztcbiAgICB0YXNrTW9kZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICBkcnlSdW46IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgZmxhdm91cnM6IHN0cmluZ1tdO1xuICAgIHZlcnNpb25EaXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICByZWZlcmVuY2VzOiBzdHJpbmdbXTtcbiAgfTtcbn0ge1xuICBjb25zdCBwYWNrYWdlTWlncmF0aW9uID0gcGtnPy5kZWNhZj8ubWlncmF0aW9uID8/IHt9O1xuICBjb25zdCBpbnB1dCA9XG4gICAgKG9wdGlvbnMuaW5wdXQgYXMgc3RyaW5nIHwgdW5kZWZpbmVkKSB8fFxuICAgIHBhY2thZ2VNaWdyYXRpb24uaW5wdXQgfHxcbiAgICBcIi4vc3JjL2FwcC5tb2R1bGUudHNcIjtcbiAgY29uc3QgdG9WZXJzaW9uID1cbiAgICAob3B0aW9ucy50byBhcyBzdHJpbmcgfCB1bmRlZmluZWQpIHx8XG4gICAgcGFja2FnZU1pZ3JhdGlvbi50b1ZlcnNpb24gfHxcbiAgICBwa2c/LnZlcnNpb24gfHxcbiAgICBcIjAuMC4wXCI7XG4gIGNvbnN0IGNsaUZsYXZvdXJzID0gcGFyc2VMaXN0KG9wdGlvbnMuZmxhdm91ciA/PyBvcHRpb25zLmFkYXB0ZXIpO1xuICBjb25zdCBwYWNrYWdlRmxhdm91cnMgPSBwYXJzZUxpc3QoXG4gICAgcGFja2FnZU1pZ3JhdGlvbi5mbGF2b3VyID8/IHBhY2thZ2VNaWdyYXRpb24uZmxhdm91cnNcbiAgKTtcbiAgY29uc3QgZmxhdm91cnMgPSBjbGlGbGF2b3Vycy5sZW5ndGggPiAwID8gdW5pcXVlKGNsaUZsYXZvdXJzKSA6IHVuaXF1ZShwYWNrYWdlRmxhdm91cnMpO1xuICBjb25zdCB2ZXJzaW9uRGlyID1cbiAgICAob3B0aW9ucy52ZXJzaW9uRGlyIGFzIHN0cmluZyB8IHVuZGVmaW5lZCkgfHwgcGFja2FnZU1pZ3JhdGlvbi52ZXJzaW9uRGlyO1xuICBjb25zdCByZWZlcmVuY2VzID0gcGFyc2VMaXN0KG9wdGlvbnMucmVmZXJlbmNlID8/IHBhY2thZ2VNaWdyYXRpb24ucmVmZXJlbmNlcyk7XG5cbiAgcmV0dXJuIHtcbiAgICBpbnB1dCxcbiAgICBjb25maWc6IHtcbiAgICAgIHRvVmVyc2lvbixcbiAgICAgIHRhc2tNb2RlOiBwYXJzZUJvb2xlYW5GbGFnKG9wdGlvbnMudGFza01vZGUgPz8gcGFja2FnZU1pZ3JhdGlvbi50YXNrTW9kZSksXG4gICAgICBkcnlSdW46IHBhcnNlQm9vbGVhbkZsYWcob3B0aW9ucy5kcnlSdW4gPz8gcGFja2FnZU1pZ3JhdGlvbi5kcnlSdW4pLFxuICAgICAgZmxhdm91cnMsXG4gICAgICB2ZXJzaW9uRGlyLFxuICAgICAgcmVmZXJlbmNlcyxcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRGaWxlVmVyc2lvbkhhbmRsZXJzKFxuICB2ZXJzaW9uRGlyOiBzdHJpbmcsXG4gIGFkYXB0ZXJzOiBBZGFwdGVyPGFueSwgYW55LCBhbnksIGFueT5bXVxuKTogUGFydGlhbDxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gIGNvbnN0IGhhbmRsZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gIGZvciAoY29uc3QgYWRhcHRlciBvZiBhZGFwdGVycykge1xuICAgIGNvbnN0IGFsaWFzID0gYWRhcHRlci5hbGlhcztcbiAgICBjb25zdCBmaWxlID0gcGF0aC5qb2luKHZlcnNpb25EaXIsIGAke2FsaWFzfS5taWdyYXRpb24udmVyc2lvbmApO1xuICAgIGhhbmRsZXJzW2FsaWFzXSA9IHtcbiAgICAgIC8vIGFkYXB0ZXIgYW5kIGN0eEFyZ3MgYXJlIGF2YWlsYWJsZSBidXQgbm90IG5lZWRlZCDigJQgdmVyc2lvbiBsaXZlcyBpbiB0aGUgZmlsZVxuICAgICAgcmV0cmlldmVMYXN0VmVyc2lvbjogYXN5bmMgKF9hZGFwdGVyPzogYW55LCAuLi5fYXJnczogYW55W10pID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhmaWxlKSkge1xuICAgICAgICAgICAgY29uc3QgdiA9IGZzLnJlYWRGaWxlU3luYyhmaWxlLCBcInV0Zi04XCIpLnRyaW0oKTtcbiAgICAgICAgICAgIHJldHVybiB2IHx8IHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIG5vIGZpbGUgeWV0IOKGkiBmaXJzdCBydW5cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfSxcbiAgICAgIHNldEN1cnJlbnRWZXJzaW9uOiBhc3luYyAodmVyc2lvbjogc3RyaW5nLCBfYWRhcHRlcj86IGFueSwgLi4uX2FyZ3M6IGFueVtdKSA9PiB7XG4gICAgICAgIGZzLm1rZGlyU3luYyh2ZXJzaW9uRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgZnMud3JpdGVGaWxlU3luYyhmaWxlLCB2ZXJzaW9uLCBcInV0Zi04XCIpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG4gIHJldHVybiBoYW5kbGVycztcbn1cblxuY29uc3QgbWlncmF0ZUNvbW1hbmQgPSBuZXcgQ29tbWFuZCgpXG4gIC5uYW1lKFwibWlncmF0ZVwiKVxuICAuZGVzY3JpcHRpb24oXG4gICAgXCJib290cyB0aGUgYXBwIGNvbnRleHQgaGVhZGxlc3NseSwgZXhlY3V0ZXMgZGVjYWYgbWlncmF0aW9ucywgYW5kIGV4aXRzXCJcbiAgKVxuICAub3B0aW9uKFwiLS1pbnB1dCA8U3RyaW5nPlwiLCBcInBhdGggdG8gYXBwIG1vZHVsZSAodHMgb3IgY29tcGlsZWQpXCIpXG4gIC5vcHRpb24oXCItLXRvIDxTdHJpbmc+XCIsIFwidGFyZ2V0IG1pZ3JhdGlvbiB2ZXJzaW9uXCIpXG4gIC5vcHRpb24oXCItLWZsYXZvdXIgPFN0cmluZz5cIiwgXCJ0YXJnZXQgZmxhdm91cihzKSwgY29tbWEtc2VwYXJhdGVkXCIpXG4gIC5vcHRpb24oXG4gICAgXCItLWFkYXB0ZXIgPFN0cmluZz5cIixcbiAgICBcImFkYXB0ZXIgZmxhdm91ciBhbGlhcyhlcyksIGNvbW1hLXNlcGFyYXRlZCAoc2FtZSBiZWhhdmlvciBhcyAtLWZsYXZvdXIpXCJcbiAgKVxuICAub3B0aW9uKFxuICAgIFwiLS10YXNrLW1vZGUgW0Jvb2xlYW5dXCIsXG4gICAgXCJydW5zIG1pZ3JhdGlvbiB2aWEgdGFzayBtb2RlICh0cnVlL2ZhbHNlKS4gYWNjZXB0cyBiYXJlIGZsYWcgYXMgdHJ1ZVwiXG4gIClcbiAgLm9wdGlvbihcbiAgICBcIi0tZHJ5LXJ1biBbQm9vbGVhbl1cIixcbiAgICBcInJ1bnMgbWlncmF0aW9ucyB3aXRoIGRyeS1ydW4gY29udGV4dCAodHJ1ZS9mYWxzZSkuIGFjY2VwdHMgYmFyZSBmbGFnIGFzIHRydWVcIlxuICApXG4gIC5vcHRpb24oXG4gICAgXCItLXZlcnNpb24tZGlyIDxTdHJpbmc+XCIsXG4gICAgXCJkaXJlY3Rvcnkgd2hlcmUgcGVyLWFkYXB0ZXIgdmVyc2lvbiBmaWxlcyBhcmUgcGVyc2lzdGVkIChlLmcuIGEgRG9ja2VyIHZvbHVtZSBwYXRoKS4gXCIgK1xuICAgICAgXCJFYWNoIGFkYXB0ZXIgd3JpdGVzIGl0cyBsYXN0LW1pZ3JhdGVkIHZlcnNpb24gdG8gPHZlcnNpb25EaXI+LzxhbGlhcz4ubWlncmF0aW9uLnZlcnNpb24uIFwiICtcbiAgICAgIFwiQ2FuIGFsc28gYmUgc2V0IHZpYSBwYWNrYWdlLmpzb24gZGVjYWYubWlncmF0aW9uLnZlcnNpb25EaXIuXCJcbiAgKVxuICAub3B0aW9uKFxuICAgIFwiLS1yZWZlcmVuY2UgPFN0cmluZz5cIixcbiAgICBcInJ1biBvbmx5IHRoZSBuYW1lZCBtaWdyYXRpb24gcmVmZXJlbmNlKHMpLCBjb21tYS1zZXBhcmF0ZWQgKGUuZy4gJ3Byb2R1Y3QtbWlncmF0aW9uJykuIFwiICtcbiAgICAgIFwiQnlwYXNzZXMgdmVyc2lvbiByYW5nZSBmaWx0ZXJpbmcg4oCUIHVzZSBmb3IgemVyby1kYXkgb3Igb25lLW9mZiBtaWdyYXRpb25zLiBcIiArXG4gICAgICBcIkNhbiBhbHNvIGJlIHNldCB2aWEgcGFja2FnZS5qc29uIGRlY2FmLm1pZ3JhdGlvbi5yZWZlcmVuY2VzLlwiXG4gIClcbiAgLmFjdGlvbihhc3luYyAob3B0aW9uczogYW55KSA9PiB7XG4gICAgY29uc3QgcGtnID0gSlNPTi5wYXJzZShcbiAgICAgIGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgXCJwYWNrYWdlLmpzb25cIiksIFwidXRmLThcIilcbiAgICApO1xuICAgIGNvbnN0IGxvZyA9IGxvZ2dlci5mb3IoXCJtaWdyYXRlXCIpO1xuICAgIGNvbnN0IHsgaW5wdXQsIGNvbmZpZyB9ID0gcmVzb2x2ZU1pZ3JhdGVDb21tYW5kQ29uZmlnKG9wdGlvbnMsIHBrZyk7XG4gICAgbGV0IGFwcDogSU5lc3RBcHBsaWNhdGlvbiB8IHVuZGVmaW5lZDtcbiAgICB0cnkge1xuICAgICAgYXBwID0gYXdhaXQgTmVzdEZhY3RvcnkuY3JlYXRlKFxuICAgICAgICBhd2FpdCBub3JtYWxpemVJbXBvcnQoaW1wb3J0KHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBpbnB1dCkpKSxcbiAgICAgICAgeyBsb2dnZXI6IGZhbHNlIH1cbiAgICAgICk7XG4gICAgICBhd2FpdCBhcHAuaW5pdCgpO1xuICAgICAgbG9nLmluZm8oYEFwcCBib290ZWRgKTtcblxuICAgICAgY29uc3QgY2FjaGUgPSAoQWRhcHRlciBhcyBhbnkpW1wiX2NhY2hlXCJdIGFzIFJlY29yZDxzdHJpbmcsIEFkYXB0ZXI8YW55LCBhbnksIGFueSwgYW55Pj47XG4gICAgICBjb25zdCBzZWVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgICBjb25zdCBhZGFwdGVycyA9IE9iamVjdC52YWx1ZXMoY2FjaGUpLmZpbHRlcigoYSkgPT4ge1xuICAgICAgICBpZiAoc2Vlbi5oYXMoYS5hbGlhcykpIHJldHVybiBmYWxzZTtcbiAgICAgICAgc2Vlbi5hZGQoYS5hbGlhcyk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSk7XG5cbiAgICAgIGxldCB0YXNrU2VydmljZTogYW55O1xuICAgICAgaWYgKGNvbmZpZy50YXNrTW9kZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHRhc2tTZXJ2aWNlID0gU2VydmljZS5nZXQoVGFza01vZGVsKTtcbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgLy8gbm90IHJlZ2lzdGVyZWRcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRhc2tTZXJ2aWNlKVxuICAgICAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKFxuICAgICAgICAgICAgYHRhc2stbW9kZSByZXF1ZXN0ZWQgYnV0IG5vIFRhc2tTZXJ2aWNlIGlzIHJlZ2lzdGVyZWQgKGV4cGVjdGVkIEBzZXJ2aWNlKFRhc2tNb2RlbCkpYFxuICAgICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIC8vIEV4Y2x1ZGUgdGhlIHRhc2sgZW5naW5lJ3MgYWRhcHRlciBmcm9tIG1pZ3JhdGlvbiB0YXJnZXRzIOKAlCBNaWdyYXRpb25TZXJ2aWNlXG4gICAgICAvLyB3aWxsIHRocm93IGlmIGl0IGFwcGVhcnMgaW4gdGhlIGFkYXB0ZXIgbGlzdCBhbG9uZ3NpZGUgY2ZnLnRhc2tTZXJ2aWNlLlxuICAgICAgY29uc3QgdGFza0FkYXB0ZXJBbGlhczogc3RyaW5nIHwgdW5kZWZpbmVkID1cbiAgICAgICAgKHRhc2tTZXJ2aWNlIGFzIGFueSk/LmNsaWVudD8uYWRhcHRlcj8uYWxpYXMgfHxcbiAgICAgICAgKHRhc2tTZXJ2aWNlIGFzIGFueSk/LmNsaWVudD8uYWRhcHRlcj8uZmxhdm91cjtcbiAgICAgIGNvbnN0IG1pZ3JhdGVBZGFwdGVycyA9IHRhc2tBZGFwdGVyQWxpYXNcbiAgICAgICAgPyBhZGFwdGVycy5maWx0ZXIoKGEpID0+IGEuYWxpYXMgIT09IHRhc2tBZGFwdGVyQWxpYXMgJiYgYS5mbGF2b3VyICE9PSB0YXNrQWRhcHRlckFsaWFzKVxuICAgICAgICA6IGFkYXB0ZXJzO1xuXG4gICAgICBjb25zdCBoYW5kbGVycyA9IGNvbmZpZy52ZXJzaW9uRGlyXG4gICAgICAgID8gYnVpbGRGaWxlVmVyc2lvbkhhbmRsZXJzKGNvbmZpZy52ZXJzaW9uRGlyLCBtaWdyYXRlQWRhcHRlcnMpXG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICBpZiAoY29uZmlnLnZlcnNpb25EaXIpXG4gICAgICAgIGxvZy5pbmZvKGBWZXJzaW9uIHRyYWNraW5nOiAke3BhdGgucmVzb2x2ZShjb25maWcudmVyc2lvbkRpcil9YCk7XG4gICAgICBlbHNlXG4gICAgICAgIGxvZy53YXJuKGBObyAtLXZlcnNpb24tZGlyIHNldCDigJQgZXZlcnkgcnVuIHdpbGwgcmUtYXBwbHkgYWxsIG1pZ3JhdGlvbnMgdXAgdG8gJHtjb25maWcudG9WZXJzaW9ufWApO1xuXG4gICAgICBpZiAoY29uZmlnLnJlZmVyZW5jZXMubGVuZ3RoKVxuICAgICAgICBsb2cuaW5mbyhgUnVubmluZyBvbmx5IHJlZmVyZW5jZXM6ICR7Y29uZmlnLnJlZmVyZW5jZXMuam9pbihcIiwgXCIpfWApO1xuXG4gICAgICBjb25zdCBtaWdyYXRpb25zID0gYXdhaXQgTWlncmF0aW9uU2VydmljZS5taWdyYXRlQWRhcHRlcnMoXG4gICAgICAgIG1pZ3JhdGVBZGFwdGVycyxcbiAgICAgICAge1xuICAgICAgICAgIHRvVmVyc2lvbjogY29uZmlnLnRvVmVyc2lvbixcbiAgICAgICAgICB0YXNrTW9kZTogY29uZmlnLnRhc2tNb2RlLFxuICAgICAgICAgIGRyeVJ1bjogY29uZmlnLmRyeVJ1bixcbiAgICAgICAgICBmbGF2b3VyczogY29uZmlnLmZsYXZvdXJzLmxlbmd0aCA+IDAgPyBjb25maWcuZmxhdm91cnMgOiB1bmRlZmluZWQsXG4gICAgICAgICAgdGFza1NlcnZpY2UsXG4gICAgICAgICAgaGFuZGxlcnMsXG4gICAgICAgICAgdmVyc2lvbmluZzogbmV3IFNlbXZlck1pZ3JhdGlvblZlcnNpb25pbmcoKSxcbiAgICAgICAgICByZWZlcmVuY2VzOlxuICAgICAgICAgICAgY29uZmlnLnJlZmVyZW5jZXMubGVuZ3RoID4gMCA/IGNvbmZpZy5yZWZlcmVuY2VzIDogdW5kZWZpbmVkLFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBmb3IgKGNvbnN0IG1pZ3JhdGlvblNlcnZpY2Ugb2YgbWlncmF0aW9ucyB8fCBbXSkge1xuICAgICAgICBhd2FpdCBtaWdyYXRpb25TZXJ2aWNlLnRyYWNrKCk7XG4gICAgICB9XG5cbiAgICAgIGxvZy5pbmZvKFxuICAgICAgICBgTWlncmF0aW9uIGNvbXBsZXRlZCR7b3B0aW9ucy50byB8fCBwa2cudmVyc2lvbiA/IGAgdXAgdG8gJHtvcHRpb25zLnRvIHx8IHBrZy52ZXJzaW9ufWAgOiBcIlwifWBcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgdGhyb3cgbmV3IEludGVybmFsRXJyb3IoZSBhcyBFcnJvcik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChhcHApIGF3YWl0IGFwcC5jbG9zZSgpO1xuICAgIH1cbiAgfSk7XG5cbmV4cG9ydCB7IG1pZ3JhdGVDb21tYW5kIH07XG5cbmNvbnN0IGV4cG9ydEFwaUNvbW1hbmQgPSBuZXcgQ29tbWFuZCgpXG4gIC5uYW1lKFwiZXhwb3J0LWFwaVwiKVxuICAuZGVzY3JpcHRpb24oXG4gICAgXCJib290cyB0aGUgYXBwIGNvbnRleHQgaGVhZGxlc3NseSwgZXh0cmFjdHMgdGhlIE9wZW5BUEkgc3BlYywgYW5kIHdyaXRlcyBpdCB0byBhIEpTT04gZmlsZVwiXG4gIClcbiAgLm9wdGlvbihcIi0taW5wdXQgPFN0cmluZz5cIiwgXCJwYXRoIHRvIGFwcCBtb2R1bGUgKHRzIG9yIGNvbXBpbGVkKVwiKVxuICAub3B0aW9uKFwiLS1vdXRwdXQgPFN0cmluZz5cIiwgXCJvdXRwdXQgZGlyZWN0b3J5IGZvciB0aGUgT3BlbkFQSSBKU09OIGZpbGVcIiwgXCIuL1wiKVxuICAub3B0aW9uKFwiLS1maWxlTmFtZSA8U3RyaW5nPlwiLCBcIm91dHB1dCBmaWxlIG5hbWUgKHdpdGhvdXQgZXh0ZW5zaW9uKVwiLCBcIm9wZW5hcGlcIilcbiAgLm9wdGlvbihcIi0tdGl0bGUgPFN0cmluZz5cIiwgXCJPcGVuQVBJIGRvY3VtZW50IHRpdGxlXCIsIFwiREVDQUYgQVBJXCIpXG4gIC5vcHRpb24oXCItLWRlc2NyaXB0aW9uIDxTdHJpbmc+XCIsIFwiT3BlbkFQSSBkb2N1bWVudCBkZXNjcmlwdGlvblwiLCBcIkF1dG8tZ2VuZXJhdGVkIE9wZW5BUEkgc3BlY2lmaWNhdGlvblwiKVxuICAub3B0aW9uKFwiLS12ZXJzaW9uIDxTdHJpbmc+XCIsIFwiT3BlbkFQSSBkb2N1bWVudCB2ZXJzaW9uXCIpXG4gIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnM6IGFueSkgPT4ge1xuICAgIGNvbnN0IGxvZyA9IGxvZ2dlci5mb3IoXCJleHBvcnQtYXBpXCIpO1xuICAgIGNvbnN0IGlucHV0ID0gcmVzb2x2ZUlucHV0UGF0aChvcHRpb25zLmlucHV0KTtcbiAgICBsZXQgYXBwOiBJTmVzdEFwcGxpY2F0aW9uIHwgdW5kZWZpbmVkO1xuICAgIHRyeSB7XG4gICAgICBhcHAgPSBhd2FpdCBOZXN0RmFjdG9yeS5jcmVhdGUoXG4gICAgICAgIGF3YWl0IG5vcm1hbGl6ZUltcG9ydChpbXBvcnQocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIGlucHV0KSkpLFxuICAgICAgICB7IGxvZ2dlcjogZmFsc2UgfVxuICAgICAgKTtcbiAgICAgIGF3YWl0IGFwcC5pbml0KCk7XG4gICAgICBsb2cuaW5mbyhgQXBwIGJvb3RlZCBmcm9tICR7aW5wdXR9YCk7XG5cbiAgICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBEb2N1bWVudEJ1aWxkZXIoKVxuICAgICAgICAuc2V0VGl0bGUob3B0aW9ucy50aXRsZSlcbiAgICAgICAgLnNldERlc2NyaXB0aW9uKG9wdGlvbnMuZGVzY3JpcHRpb24pXG4gICAgICAgIC5zZXRWZXJzaW9uKG9wdGlvbnMudmVyc2lvbiB8fCBcIjEuMC4wXCIpXG4gICAgICAgIC5hZGRCZWFyZXJBdXRoKClcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICAgIGNvbnN0IGRvY3VtZW50ID0gU3dhZ2dlck1vZHVsZS5jcmVhdGVEb2N1bWVudChhcHAsIGNvbmZpZyk7XG5cbiAgICAgIGNvbnN0IG91dHB1dERpciA9IHBhdGgucmVzb2x2ZShvcHRpb25zLm91dHB1dCk7XG4gICAgICBmcy5ta2RpclN5bmMob3V0cHV0RGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIGNvbnN0IG91dHB1dEZpbGUgPSBwYXRoLmpvaW4ob3V0cHV0RGlyLCBgJHtvcHRpb25zLmZpbGVOYW1lfS5qc29uYCk7XG4gICAgICBmcy53cml0ZUZpbGVTeW5jKG91dHB1dEZpbGUsIEpTT04uc3RyaW5naWZ5KGRvY3VtZW50LCBudWxsLCAyKSwgXCJ1dGYtOFwiKTtcblxuICAgICAgY29uc3QgcGF0aENvdW50ID0gT2JqZWN0LmtleXMoZG9jdW1lbnQucGF0aHMgfHwge30pLmxlbmd0aDtcbiAgICAgIGNvbnN0IHNjaGVtYUNvdW50ID0gT2JqZWN0LmtleXMoZG9jdW1lbnQuY29tcG9uZW50cz8uc2NoZW1hcyB8fCB7fSkubGVuZ3RoO1xuICAgICAgbG9nLmluZm8oYE9wZW5BUEkgc3BlYyB3cml0dGVuIHRvICR7b3V0cHV0RmlsZX0gKCR7cGF0aENvdW50fSBwYXRocywgJHtzY2hlbWFDb3VudH0gc2NoZW1hcylgKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihlIGFzIEVycm9yKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKGFwcCkgYXdhaXQgYXBwLmNsb3NlKCk7XG4gICAgfVxuICB9KTtcblxuY29uc3QgbmVzdENtZCA9IG5ldyBDb21tYW5kKClcbiAgLm5hbWUoXCJuZXN0XCIpXG4gIC5kZXNjcmlwdGlvbihcImV4cG9zZXMgdmFyaW91cyBjb21tYW5kcyB0byBoZWxwIG1hbmFnZSB0aGUgbmVzdCBpbnRlZ3JhdGlvblwiKTtcblxubmVzdENtZC5hZGRDb21tYW5kKG1pZ3JhdGVDb21tYW5kKTtcbm5lc3RDbWQuYWRkQ29tbWFuZChleHBvcnRBcGlDb21tYW5kKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbmVzdCgpIHtcbiAgcmV0dXJuIG5lc3RDbWQ7XG59XG4iXX0=
|
|
262
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGktbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU1QyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBRXZDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3BCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUN4QixPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDaEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVqRSxNQUFNLHNCQUFzQixHQUFHO0lBQzdCLHNCQUFzQjtJQUN0QixxQkFBcUI7SUFDckIscUJBQXFCO0NBQ3RCLENBQUM7QUFFRixTQUFTLHNCQUFzQixDQUFDLFNBQWlCO0lBQy9DLE9BQU8sRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzlCLEtBQWMsRUFDZCxTQUF5QyxzQkFBc0IsRUFDL0QsVUFBVSxHQUFHLHNCQUFzQjtJQUVu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QUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXpFLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDM0QsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDM0UsR0FBRyxDQUFDLElBQUksQ0FBQywyQkFBMkIsVUFBVSxLQUFLLFNBQVMsV0FBVyxXQUFXLFdBQVcsQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFBQyxPQUFPLENBQVUsRUFBRSxDQUFDO1FBQ3BCLE1BQU0sSUFBSSxhQUFhLENBQUMsQ0FBVSxDQUFDLENBQUM7SUFDdEMsQ0FBQztZQUFTLENBQUM7UUFDVCxJQUFJLEdBQUc7WUFBRSxNQUFNLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM3QixDQUFDO0FBQ0gsQ0FBQyxDQUFDLENBQUM7QUFFTCxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sRUFBRTtLQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDO0tBQ1osV0FBVyxDQUFDLDhEQUE4RCxDQUFDLENBQUM7QUFFL0UsT0FBTyxDQUFDLFVBQVUsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUNuQyxPQUFPLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFFckMsTUFBTSxDQUFDLE9BQU8sVUFBVSxJQUFJO0lBQzFCLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2dnaW5nIH0gZnJvbSBcIkBkZWNhZi10cy9sb2dnaW5nXCI7XG5cbmNvbnN0IGxvZ2dlciA9IExvZ2dpbmcuZm9yKFwiZm9yLW5lc3RcIik7XG5cbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tIFwiY29tbWFuZGVyXCI7XG5pbXBvcnQgZnMgZnJvbSBcImZzXCI7XG5pbXBvcnQgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgQWRhcHRlciwgbm9ybWFsaXplSW1wb3J0LCBTZXJ2aWNlLCBUYXNrTW9kZWwgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IFNlbXZlck1pZ3JhdGlvblZlcnNpb25pbmcgfSBmcm9tIFwiQGRlY2FmLXRzL2NvcmUvbWlncmF0aW9ucy9TZW12ZXJNaWdyYXRpb25WZXJzaW9uaW5nXCI7XG5pbXBvcnQgeyBNaWdyYXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlL21pZ3JhdGlvbnNcIjtcbmltcG9ydCB7IEludGVybmFsRXJyb3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RiLWRlY29yYXRvcnNcIjtcbmltcG9ydCB7IE5lc3RGYWN0b3J5IH0gZnJvbSBcIkBuZXN0anMvY29yZVwiO1xuaW1wb3J0IHsgSU5lc3RBcHBsaWNhdGlvbiB9IGZyb20gXCJAbmVzdGpzL2NvbW1vblwiO1xuaW1wb3J0IHsgRG9jdW1lbnRCdWlsZGVyLCBTd2FnZ2VyTW9kdWxlIH0gZnJvbSBcIkBuZXN0anMvc3dhZ2dlclwiO1xuXG5jb25zdCBkZWZhdWx0SW5wdXRDYW5kaWRhdGVzID0gW1xuICBcIi4vbGliL2FwcC5tb2R1bGUuY2pzXCIsXG4gIFwiLi9saWIvYXBwLm1vZHVsZS5qc1wiLFxuICBcIi4vc3JjL2FwcC5tb2R1bGUudHNcIixcbl07XG5cbmZ1bmN0aW9uIGRlZmF1bHRDYW5kaWRhdGVFeGlzdHMoY2FuZGlkYXRlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGZzLmV4aXN0c1N5bmMocGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIGNhbmRpZGF0ZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUlucHV0UGF0aChcbiAgaW5wdXQ/OiBzdHJpbmcsXG4gIGV4aXN0czogKGNhbmRpZGF0ZTogc3RyaW5nKSA9PiBib29sZWFuID0gZGVmYXVsdENhbmRpZGF0ZUV4aXN0cyxcbiAgY2FuZGlkYXRlcyA9IGRlZmF1bHRJbnB1dENhbmRpZGF0ZXNcbik6IHN0cmluZyB7XG4gIGlmIChpbnB1dCkgcmV0dXJuIGlucHV0O1xuICBjb25zdCBmb3VuZCA9IGNhbmRpZGF0ZXMuZmluZCgoY2FuZGlkYXRlKSA9PiBleGlzdHMoY2FuZGlkYXRlKSk7XG4gIHJldHVybiBmb3VuZCB8fCBcIi4vc3JjL2FwcC5tb2R1bGUudHNcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkT3V0cHV0RmlsZVBhdGgocGFyYW1zOiB7XG4gIG91dHB1dERpcjogc3RyaW5nO1xuICBwa2dOYW1lPzogc3RyaW5nO1xuICBuYW1lPzogc3RyaW5nO1xuICBmaWxlTmFtZT86IHN0cmluZztcbiAgYXBwZW5kVmVyc2lvbj86IGJvb2xlYW47XG4gIHZlcnNpb24/OiBzdHJpbmc7XG59KTogc3RyaW5nIHtcbiAgY29uc3Qge1xuICAgIG91dHB1dERpcixcbiAgICBwa2dOYW1lLFxuICAgIG5hbWUsXG4gICAgZmlsZU5hbWUsXG4gICAgYXBwZW5kVmVyc2lvbiA9IGZhbHNlLFxuICAgIHZlcnNpb24sXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGJhc2VEaXIgPSBwYXRoLnJlc29sdmUob3V0cHV0RGlyKTtcbiAgY29uc3QgZGVmYXVsdFBrZ05hbWUgPSBwa2dOYW1lO1xuICBjb25zdCByZXNvbHZlZFJhd1NvdXJjZSA9IGZpbGVOYW1lIHx8IG5hbWUgfHwgZGVmYXVsdFBrZ05hbWUgfHwgXCJhcGlcIjtcbiAgY29uc3QgYmFzZU5hbWUgPSBwYXRoLmJhc2VuYW1lKHJlc29sdmVkUmF3U291cmNlKTtcbiAgY29uc3QgcmVzb2x2ZWRSYXcgPSBiYXNlTmFtZS5yZXBsYWNlKC9bXFxcXC9dL2csIFwiX1wiKTtcbiAgY29uc3QgdHJpbW1lZCA9IHJlc29sdmVkUmF3LnJlcGxhY2UoL15bLl9dKy8sIFwiXCIpO1xuICBjb25zdCByZXNvbHZlZE5hbWUgPSB0cmltbWVkIHx8IFwiYXBpXCI7XG4gIGNvbnN0IHN1ZmZpeCA9IGFwcGVuZFZlcnNpb24gJiYgdmVyc2lvbiA/IGAtJHt2ZXJzaW9ufWAgOiBcIlwiO1xuICByZXR1cm4gcGF0aC5qb2luKGJhc2VEaXIsIGAke3Jlc29sdmVkTmFtZX0ke3N1ZmZpeH0uanNvbmApO1xufVxuXG5mdW5jdGlvbiBwYXJzZUxpc3QodmFsdWU6IHVua25vd24pOiBzdHJpbmdbXSB7XG4gIGlmICghdmFsdWUpIHJldHVybiBbXTtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKVxuICAgIHJldHVybiB2YWx1ZS5mbGF0TWFwKChlbnRyeSkgPT4gcGFyc2VMaXN0KGVudHJ5KSkuZmlsdGVyKEJvb2xlYW4pO1xuICByZXR1cm4gU3RyaW5nKHZhbHVlKVxuICAgIC5zcGxpdChcIixcIilcbiAgICAubWFwKChlbnRyeSkgPT4gZW50cnkudHJpbSgpKVxuICAgIC5maWx0ZXIoQm9vbGVhbik7XG59XG5cbmZ1bmN0aW9uIHBhcnNlQm9vbGVhbkZsYWcodmFsdWU6IHVua25vd24pOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHJldHVybiB1bmRlZmluZWQ7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYm9vbGVhblwiKSByZXR1cm4gdmFsdWU7XG5cbiAgY29uc3Qgbm9ybWFsaXplZCA9IGAke3ZhbHVlfWAudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gIGlmIChbXCIxXCIsIFwidHJ1ZVwiLCBcInllc1wiLCBcIm9uXCJdLmluY2x1ZGVzKG5vcm1hbGl6ZWQpKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKFtcIjBcIiwgXCJmYWxzZVwiLCBcIm5vXCIsIFwib2ZmXCJdLmluY2x1ZGVzKG5vcm1hbGl6ZWQpKSByZXR1cm4gZmFsc2U7XG4gIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGBJbnZhbGlkIGJvb2xlYW4gZmxhZyB2YWx1ZTogJHt2YWx1ZX1gKTtcbn1cblxuZnVuY3Rpb24gdW5pcXVlKHZhbHVlczogc3RyaW5nW10pOiBzdHJpbmdbXSB7XG4gIHJldHVybiBbLi4ubmV3IFNldCh2YWx1ZXMpXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVNaWdyYXRlQ29tbWFuZENvbmZpZyhcbiAgb3B0aW9uczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fSxcbiAgcGtnOiBhbnkgPSB7fVxuKToge1xuICBpbnB1dDogc3RyaW5nO1xuICBjb25maWc6IHtcbiAgICB0b1ZlcnNpb246IHN0cmluZztcbiAgICB0YXNrTW9kZTogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgICBkcnlSdW46IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG4gICAgZmxhdm91cnM6IHN0cmluZ1tdO1xuICAgIHZlcnNpb25EaXI6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICByZWZlcmVuY2VzOiBzdHJpbmdbXTtcbiAgfTtcbn0ge1xuICBjb25zdCBwYWNrYWdlTWlncmF0aW9uID0gcGtnPy5kZWNhZj8ubWlncmF0aW9uID8/IHt9O1xuICBjb25zdCBpbnB1dCA9XG4gICAgKG9wdGlvbnMuaW5wdXQgYXMgc3RyaW5nIHwgdW5kZWZpbmVkKSB8fFxuICAgIHBhY2thZ2VNaWdyYXRpb24uaW5wdXQgfHxcbiAgICBcIi4vc3JjL2FwcC5tb2R1bGUudHNcIjtcbiAgY29uc3QgdG9WZXJzaW9uID1cbiAgICAob3B0aW9ucy50byBhcyBzdHJpbmcgfCB1bmRlZmluZWQpIHx8XG4gICAgcGFja2FnZU1pZ3JhdGlvbi50b1ZlcnNpb24gfHxcbiAgICBwa2c/LnZlcnNpb24gfHxcbiAgICBcIjAuMC4wXCI7XG4gIGNvbnN0IGNsaUZsYXZvdXJzID0gcGFyc2VMaXN0KG9wdGlvbnMuZmxhdm91ciA/PyBvcHRpb25zLmFkYXB0ZXIpO1xuICBjb25zdCBwYWNrYWdlRmxhdm91cnMgPSBwYXJzZUxpc3QoXG4gICAgcGFja2FnZU1pZ3JhdGlvbi5mbGF2b3VyID8/IHBhY2thZ2VNaWdyYXRpb24uZmxhdm91cnNcbiAgKTtcbiAgY29uc3QgZmxhdm91cnMgPSBjbGlGbGF2b3Vycy5sZW5ndGggPiAwID8gdW5pcXVlKGNsaUZsYXZvdXJzKSA6IHVuaXF1ZShwYWNrYWdlRmxhdm91cnMpO1xuICBjb25zdCB2ZXJzaW9uRGlyID1cbiAgICAob3B0aW9ucy52ZXJzaW9uRGlyIGFzIHN0cmluZyB8IHVuZGVmaW5lZCkgfHwgcGFja2FnZU1pZ3JhdGlvbi52ZXJzaW9uRGlyO1xuICBjb25zdCByZWZlcmVuY2VzID0gcGFyc2VMaXN0KG9wdGlvbnMucmVmZXJlbmNlID8/IHBhY2thZ2VNaWdyYXRpb24ucmVmZXJlbmNlcyk7XG5cbiAgcmV0dXJuIHtcbiAgICBpbnB1dCxcbiAgICBjb25maWc6IHtcbiAgICAgIHRvVmVyc2lvbixcbiAgICAgIHRhc2tNb2RlOiBwYXJzZUJvb2xlYW5GbGFnKG9wdGlvbnMudGFza01vZGUgPz8gcGFja2FnZU1pZ3JhdGlvbi50YXNrTW9kZSksXG4gICAgICBkcnlSdW46IHBhcnNlQm9vbGVhbkZsYWcob3B0aW9ucy5kcnlSdW4gPz8gcGFja2FnZU1pZ3JhdGlvbi5kcnlSdW4pLFxuICAgICAgZmxhdm91cnMsXG4gICAgICB2ZXJzaW9uRGlyLFxuICAgICAgcmVmZXJlbmNlcyxcbiAgICB9LFxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRGaWxlVmVyc2lvbkhhbmRsZXJzKFxuICB2ZXJzaW9uRGlyOiBzdHJpbmcsXG4gIGFkYXB0ZXJzOiBBZGFwdGVyPGFueSwgYW55LCBhbnksIGFueT5bXVxuKTogUGFydGlhbDxSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gIGNvbnN0IGhhbmRsZXJzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XG4gIGZvciAoY29uc3QgYWRhcHRlciBvZiBhZGFwdGVycykge1xuICAgIGNvbnN0IGFsaWFzID0gYWRhcHRlci5hbGlhcztcbiAgICBjb25zdCBmaWxlID0gcGF0aC5qb2luKHZlcnNpb25EaXIsIGAke2FsaWFzfS5taWdyYXRpb24udmVyc2lvbmApO1xuICAgIGhhbmRsZXJzW2FsaWFzXSA9IHtcbiAgICAgIC8vIGFkYXB0ZXIgYW5kIGN0eEFyZ3MgYXJlIGF2YWlsYWJsZSBidXQgbm90IG5lZWRlZCDigJQgdmVyc2lvbiBsaXZlcyBpbiB0aGUgZmlsZVxuICAgICAgcmV0cmlldmVMYXN0VmVyc2lvbjogYXN5bmMgKF9hZGFwdGVyPzogYW55LCAuLi5fYXJnczogYW55W10pID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAoZnMuZXhpc3RzU3luYyhmaWxlKSkge1xuICAgICAgICAgICAgY29uc3QgdiA9IGZzLnJlYWRGaWxlU3luYyhmaWxlLCBcInV0Zi04XCIpLnRyaW0oKTtcbiAgICAgICAgICAgIHJldHVybiB2IHx8IHVuZGVmaW5lZDtcbiAgICAgICAgICB9XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIG5vIGZpbGUgeWV0IOKGkiBmaXJzdCBydW5cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfSxcbiAgICAgIHNldEN1cnJlbnRWZXJzaW9uOiBhc3luYyAodmVyc2lvbjogc3RyaW5nLCBfYWRhcHRlcj86IGFueSwgLi4uX2FyZ3M6IGFueVtdKSA9PiB7XG4gICAgICAgIGZzLm1rZGlyU3luYyh2ZXJzaW9uRGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgICAgZnMud3JpdGVGaWxlU3luYyhmaWxlLCB2ZXJzaW9uLCBcInV0Zi04XCIpO1xuICAgICAgfSxcbiAgICB9O1xuICB9XG4gIHJldHVybiBoYW5kbGVycztcbn1cblxuY29uc3QgbWlncmF0ZUNvbW1hbmQgPSBuZXcgQ29tbWFuZCgpXG4gIC5uYW1lKFwibWlncmF0ZVwiKVxuICAuZGVzY3JpcHRpb24oXG4gICAgXCJib290cyB0aGUgYXBwIGNvbnRleHQgaGVhZGxlc3NseSwgZXhlY3V0ZXMgZGVjYWYgbWlncmF0aW9ucywgYW5kIGV4aXRzXCJcbiAgKVxuICAub3B0aW9uKFwiLS1pbnB1dCA8U3RyaW5nPlwiLCBcInBhdGggdG8gYXBwIG1vZHVsZSAodHMgb3IgY29tcGlsZWQpXCIpXG4gIC5vcHRpb24oXCItLXRvIDxTdHJpbmc+XCIsIFwidGFyZ2V0IG1pZ3JhdGlvbiB2ZXJzaW9uXCIpXG4gIC5vcHRpb24oXCItLWZsYXZvdXIgPFN0cmluZz5cIiwgXCJ0YXJnZXQgZmxhdm91cihzKSwgY29tbWEtc2VwYXJhdGVkXCIpXG4gIC5vcHRpb24oXG4gICAgXCItLWFkYXB0ZXIgPFN0cmluZz5cIixcbiAgICBcImFkYXB0ZXIgZmxhdm91ciBhbGlhcyhlcyksIGNvbW1hLXNlcGFyYXRlZCAoc2FtZSBiZWhhdmlvciBhcyAtLWZsYXZvdXIpXCJcbiAgKVxuICAub3B0aW9uKFxuICAgIFwiLS10YXNrLW1vZGUgW0Jvb2xlYW5dXCIsXG4gICAgXCJydW5zIG1pZ3JhdGlvbiB2aWEgdGFzayBtb2RlICh0cnVlL2ZhbHNlKS4gYWNjZXB0cyBiYXJlIGZsYWcgYXMgdHJ1ZVwiXG4gIClcbiAgLm9wdGlvbihcbiAgICBcIi0tZHJ5LXJ1biBbQm9vbGVhbl1cIixcbiAgICBcInJ1bnMgbWlncmF0aW9ucyB3aXRoIGRyeS1ydW4gY29udGV4dCAodHJ1ZS9mYWxzZSkuIGFjY2VwdHMgYmFyZSBmbGFnIGFzIHRydWVcIlxuICApXG4gIC5vcHRpb24oXG4gICAgXCItLXZlcnNpb24tZGlyIDxTdHJpbmc+XCIsXG4gICAgXCJkaXJlY3Rvcnkgd2hlcmUgcGVyLWFkYXB0ZXIgdmVyc2lvbiBmaWxlcyBhcmUgcGVyc2lzdGVkIChlLmcuIGEgRG9ja2VyIHZvbHVtZSBwYXRoKS4gXCIgK1xuICAgICAgXCJFYWNoIGFkYXB0ZXIgd3JpdGVzIGl0cyBsYXN0LW1pZ3JhdGVkIHZlcnNpb24gdG8gPHZlcnNpb25EaXI+LzxhbGlhcz4ubWlncmF0aW9uLnZlcnNpb24uIFwiICtcbiAgICAgIFwiQ2FuIGFsc28gYmUgc2V0IHZpYSBwYWNrYWdlLmpzb24gZGVjYWYubWlncmF0aW9uLnZlcnNpb25EaXIuXCJcbiAgKVxuICAub3B0aW9uKFxuICAgIFwiLS1yZWZlcmVuY2UgPFN0cmluZz5cIixcbiAgICBcInJ1biBvbmx5IHRoZSBuYW1lZCBtaWdyYXRpb24gcmVmZXJlbmNlKHMpLCBjb21tYS1zZXBhcmF0ZWQgKGUuZy4gJ3Byb2R1Y3QtbWlncmF0aW9uJykuIFwiICtcbiAgICAgIFwiQnlwYXNzZXMgdmVyc2lvbiByYW5nZSBmaWx0ZXJpbmcg4oCUIHVzZSBmb3IgemVyby1kYXkgb3Igb25lLW9mZiBtaWdyYXRpb25zLiBcIiArXG4gICAgICBcIkNhbiBhbHNvIGJlIHNldCB2aWEgcGFja2FnZS5qc29uIGRlY2FmLm1pZ3JhdGlvbi5yZWZlcmVuY2VzLlwiXG4gIClcbiAgLmFjdGlvbihhc3luYyAob3B0aW9uczogYW55KSA9PiB7XG4gICAgY29uc3QgcGtnID0gSlNPTi5wYXJzZShcbiAgICAgIGZzLnJlYWRGaWxlU3luYyhwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgXCJwYWNrYWdlLmpzb25cIiksIFwidXRmLThcIilcbiAgICApO1xuICAgIGNvbnN0IGxvZyA9IGxvZ2dlci5mb3IoXCJtaWdyYXRlXCIpO1xuICAgIGNvbnN0IHsgaW5wdXQsIGNvbmZpZyB9ID0gcmVzb2x2ZU1pZ3JhdGVDb21tYW5kQ29uZmlnKG9wdGlvbnMsIHBrZyk7XG4gICAgbGV0IGFwcDogSU5lc3RBcHBsaWNhdGlvbiB8IHVuZGVmaW5lZDtcbiAgICB0cnkge1xuICAgICAgYXBwID0gYXdhaXQgTmVzdEZhY3RvcnkuY3JlYXRlKFxuICAgICAgICByZXNvbHZlTmVzdE1vZHVsZShhd2FpdCBub3JtYWxpemVJbXBvcnQoaW1wb3J0KHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBpbnB1dCkpKSksXG4gICAgICAgIHsgbG9nZ2VyOiBmYWxzZSB9XG4gICAgICApO1xuICAgICAgYXdhaXQgYXBwLmluaXQoKTtcbiAgICAgIGxvZy5pbmZvKGBBcHAgYm9vdGVkYCk7XG5cbiAgICAgIGNvbnN0IGNhY2hlID0gKEFkYXB0ZXIgYXMgYW55KVtcIl9jYWNoZVwiXSBhcyBSZWNvcmQ8c3RyaW5nLCBBZGFwdGVyPGFueSwgYW55LCBhbnksIGFueT4+O1xuICAgICAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgICAgY29uc3QgYWRhcHRlcnMgPSBPYmplY3QudmFsdWVzKGNhY2hlKS5maWx0ZXIoKGEpID0+IHtcbiAgICAgICAgaWYgKHNlZW4uaGFzKGEuYWxpYXMpKSByZXR1cm4gZmFsc2U7XG4gICAgICAgIHNlZW4uYWRkKGEuYWxpYXMpO1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH0pO1xuXG4gICAgICBsZXQgdGFza1NlcnZpY2U6IGFueTtcbiAgICAgIGlmIChjb25maWcudGFza01vZGUpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB0YXNrU2VydmljZSA9IFNlcnZpY2UuZ2V0KFRhc2tNb2RlbCk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIC8vIG5vdCByZWdpc3RlcmVkXG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0YXNrU2VydmljZSlcbiAgICAgICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihcbiAgICAgICAgICAgIGB0YXNrLW1vZGUgcmVxdWVzdGVkIGJ1dCBubyBUYXNrU2VydmljZSBpcyByZWdpc3RlcmVkIChleHBlY3RlZCBAc2VydmljZShUYXNrTW9kZWwpKWBcbiAgICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICAvLyBFeGNsdWRlIHRoZSB0YXNrIGVuZ2luZSdzIGFkYXB0ZXIgZnJvbSBtaWdyYXRpb24gdGFyZ2V0cyDigJQgTWlncmF0aW9uU2VydmljZVxuICAgICAgLy8gd2lsbCB0aHJvdyBpZiBpdCBhcHBlYXJzIGluIHRoZSBhZGFwdGVyIGxpc3QgYWxvbmdzaWRlIGNmZy50YXNrU2VydmljZS5cbiAgICAgIGNvbnN0IHRhc2tBZGFwdGVyQWxpYXM6IHN0cmluZyB8IHVuZGVmaW5lZCA9XG4gICAgICAgICh0YXNrU2VydmljZSBhcyBhbnkpPy5jbGllbnQ/LmFkYXB0ZXI/LmFsaWFzIHx8XG4gICAgICAgICh0YXNrU2VydmljZSBhcyBhbnkpPy5jbGllbnQ/LmFkYXB0ZXI/LmZsYXZvdXI7XG4gICAgICBjb25zdCBtaWdyYXRlQWRhcHRlcnMgPSB0YXNrQWRhcHRlckFsaWFzXG4gICAgICAgID8gYWRhcHRlcnMuZmlsdGVyKChhKSA9PiBhLmFsaWFzICE9PSB0YXNrQWRhcHRlckFsaWFzICYmIGEuZmxhdm91ciAhPT0gdGFza0FkYXB0ZXJBbGlhcylcbiAgICAgICAgOiBhZGFwdGVycztcblxuICAgICAgY29uc3QgaGFuZGxlcnMgPSBjb25maWcudmVyc2lvbkRpclxuICAgICAgICA/IGJ1aWxkRmlsZVZlcnNpb25IYW5kbGVycyhjb25maWcudmVyc2lvbkRpciwgbWlncmF0ZUFkYXB0ZXJzKVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgICAgaWYgKGNvbmZpZy52ZXJzaW9uRGlyKVxuICAgICAgICBsb2cuaW5mbyhgVmVyc2lvbiB0cmFja2luZzogJHtwYXRoLnJlc29sdmUoY29uZmlnLnZlcnNpb25EaXIpfWApO1xuICAgICAgZWxzZVxuICAgICAgICBsb2cud2FybihgTm8gLS12ZXJzaW9uLWRpciBzZXQg4oCUIGV2ZXJ5IHJ1biB3aWxsIHJlLWFwcGx5IGFsbCBtaWdyYXRpb25zIHVwIHRvICR7Y29uZmlnLnRvVmVyc2lvbn1gKTtcblxuICAgICAgaWYgKGNvbmZpZy5yZWZlcmVuY2VzLmxlbmd0aClcbiAgICAgICAgbG9nLmluZm8oYFJ1bm5pbmcgb25seSByZWZlcmVuY2VzOiAke2NvbmZpZy5yZWZlcmVuY2VzLmpvaW4oXCIsIFwiKX1gKTtcblxuICAgICAgY29uc3QgbWlncmF0aW9ucyA9IGF3YWl0IE1pZ3JhdGlvblNlcnZpY2UubWlncmF0ZUFkYXB0ZXJzKFxuICAgICAgICBtaWdyYXRlQWRhcHRlcnMsXG4gICAgICAgIHtcbiAgICAgICAgICB0b1ZlcnNpb246IGNvbmZpZy50b1ZlcnNpb24sXG4gICAgICAgICAgdGFza01vZGU6IGNvbmZpZy50YXNrTW9kZSxcbiAgICAgICAgICBkcnlSdW46IGNvbmZpZy5kcnlSdW4sXG4gICAgICAgICAgZmxhdm91cnM6IGNvbmZpZy5mbGF2b3Vycy5sZW5ndGggPiAwID8gY29uZmlnLmZsYXZvdXJzIDogdW5kZWZpbmVkLFxuICAgICAgICAgIHRhc2tTZXJ2aWNlLFxuICAgICAgICAgIGhhbmRsZXJzLFxuICAgICAgICAgIHZlcnNpb25pbmc6IG5ldyBTZW12ZXJNaWdyYXRpb25WZXJzaW9uaW5nKCksXG4gICAgICAgICAgcmVmZXJlbmNlczpcbiAgICAgICAgICAgIGNvbmZpZy5yZWZlcmVuY2VzLmxlbmd0aCA+IDAgPyBjb25maWcucmVmZXJlbmNlcyA6IHVuZGVmaW5lZCxcbiAgICAgICAgfVxuICAgICAgKTtcblxuICAgICAgZm9yIChjb25zdCBtaWdyYXRpb25TZXJ2aWNlIG9mIG1pZ3JhdGlvbnMgfHwgW10pIHtcbiAgICAgICAgYXdhaXQgbWlncmF0aW9uU2VydmljZS50cmFjaygpO1xuICAgICAgfVxuXG4gICAgICBsb2cuaW5mbyhcbiAgICAgICAgYE1pZ3JhdGlvbiBjb21wbGV0ZWQke29wdGlvbnMudG8gfHwgcGtnLnZlcnNpb24gPyBgIHVwIHRvICR7b3B0aW9ucy50byB8fCBwa2cudmVyc2lvbn1gIDogXCJcIn1gXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGU6IHVua25vd24pIHtcbiAgICAgIHRocm93IG5ldyBJbnRlcm5hbEVycm9yKGUgYXMgRXJyb3IpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoYXBwKSBhd2FpdCBhcHAuY2xvc2UoKTtcbiAgICB9XG4gIH0pO1xuXG5leHBvcnQgeyBtaWdyYXRlQ29tbWFuZCB9O1xuXG5mdW5jdGlvbiByZXNvbHZlTmVzdE1vZHVsZShtb2Q6IGFueSk6IGFueSB7XG4gIGlmICh0eXBlb2YgbW9kID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBtb2Q7XG4gIGlmIChtb2Q/LmRlZmF1bHQgJiYgdHlwZW9mIG1vZC5kZWZhdWx0ID09PSBcImZ1bmN0aW9uXCIpIHJldHVybiBtb2QuZGVmYXVsdDtcbiAgaWYgKG1vZCAmJiB0eXBlb2YgbW9kID09PSBcIm9iamVjdFwiKSB7XG4gICAgY29uc3QgY2xhc3NlcyA9IE9iamVjdC52YWx1ZXMobW9kKS5maWx0ZXIoKHYpID0+IHR5cGVvZiB2ID09PSBcImZ1bmN0aW9uXCIpO1xuICAgIGlmIChjbGFzc2VzLmxlbmd0aCA9PT0gMSkgcmV0dXJuIGNsYXNzZXNbMF07XG4gICAgY29uc3QgbmFtZWQgPSAobW9kIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pW1xuICAgICAgT2JqZWN0LmtleXMobW9kKS5maW5kKChrKSA9PiAvTW9kdWxlJC8udGVzdChrKSkgfHwgXCJcIlxuICAgIF07XG4gICAgaWYgKHR5cGVvZiBuYW1lZCA9PT0gXCJmdW5jdGlvblwiKSByZXR1cm4gbmFtZWQ7XG4gIH1cbiAgcmV0dXJuIG1vZDtcbn1cblxuY29uc3QgZXhwb3J0QXBpQ29tbWFuZCA9IG5ldyBDb21tYW5kKClcbiAgLm5hbWUoXCJleHBvcnQtYXBpXCIpXG4gIC5kZXNjcmlwdGlvbihcbiAgICBcImJvb3RzIHRoZSBhcHAgY29udGV4dCBoZWFkbGVzc2x5LCBleHRyYWN0cyB0aGUgT3BlbkFQSSBzcGVjLCBhbmQgd3JpdGVzIGl0IHRvIGEgSlNPTiBmaWxlXCJcbiAgKVxuICAub3B0aW9uKFwiLS1pbnB1dCA8U3RyaW5nPlwiLCBcInBhdGggdG8gYXBwIG1vZHVsZSAodHMgb3IgY29tcGlsZWQpXCIpXG4gIC5vcHRpb24oXCItLW91dHB1dCA8U3RyaW5nPlwiLCBcIm91dHB1dCBkaXJlY3RvcnkgZm9yIHRoZSBPcGVuQVBJIEpTT04gZmlsZVwiLCBcIi4vXCIpXG4gIC5vcHRpb24oXCItLWZpbGVOYW1lIDxTdHJpbmc+XCIsIFwib3V0cHV0IGZpbGUgbmFtZSAod2l0aG91dCBleHRlbnNpb24pXCIsIFwib3BlbmFwaVwiKVxuICAub3B0aW9uKFwiLS10aXRsZSA8U3RyaW5nPlwiLCBcIk9wZW5BUEkgZG9jdW1lbnQgdGl0bGVcIiwgXCJERUNBRiBBUElcIilcbiAgLm9wdGlvbihcIi0tZGVzY3JpcHRpb24gPFN0cmluZz5cIiwgXCJPcGVuQVBJIGRvY3VtZW50IGRlc2NyaXB0aW9uXCIsIFwiQXV0by1nZW5lcmF0ZWQgT3BlbkFQSSBzcGVjaWZpY2F0aW9uXCIpXG4gIC5vcHRpb24oXCItLXZlcnNpb24gPFN0cmluZz5cIiwgXCJPcGVuQVBJIGRvY3VtZW50IHZlcnNpb25cIilcbiAgLmFjdGlvbihhc3luYyAob3B0aW9uczogYW55KSA9PiB7XG4gICAgY29uc3QgbG9nID0gbG9nZ2VyLmZvcihcImV4cG9ydC1hcGlcIik7XG4gICAgY29uc3QgaW5wdXQgPSByZXNvbHZlSW5wdXRQYXRoKG9wdGlvbnMuaW5wdXQpO1xuICAgIGxldCBhcHA6IElOZXN0QXBwbGljYXRpb24gfCB1bmRlZmluZWQ7XG4gICAgdHJ5IHtcbiAgICAgIGFwcCA9IGF3YWl0IE5lc3RGYWN0b3J5LmNyZWF0ZShcbiAgICAgICAgcmVzb2x2ZU5lc3RNb2R1bGUoYXdhaXQgbm9ybWFsaXplSW1wb3J0KGltcG9ydChwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgaW5wdXQpKSkpLFxuICAgICAgICB7IGxvZ2dlcjogZmFsc2UgfVxuICAgICAgKTtcbiAgICAgIGF3YWl0IGFwcC5pbml0KCk7XG4gICAgICBsb2cuaW5mbyhgQXBwIGJvb3RlZCBmcm9tICR7aW5wdXR9YCk7XG5cbiAgICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBEb2N1bWVudEJ1aWxkZXIoKVxuICAgICAgICAuc2V0VGl0bGUob3B0aW9ucy50aXRsZSlcbiAgICAgICAgLnNldERlc2NyaXB0aW9uKG9wdGlvbnMuZGVzY3JpcHRpb24pXG4gICAgICAgIC5zZXRWZXJzaW9uKG9wdGlvbnMudmVyc2lvbiB8fCBcIjEuMC4wXCIpXG4gICAgICAgIC5hZGRCZWFyZXJBdXRoKClcbiAgICAgICAgLmJ1aWxkKCk7XG5cbiAgICAgIGNvbnN0IGRvY3VtZW50ID0gU3dhZ2dlck1vZHVsZS5jcmVhdGVEb2N1bWVudChhcHAsIGNvbmZpZyk7XG5cbiAgICAgIGNvbnN0IG91dHB1dERpciA9IHBhdGgucmVzb2x2ZShvcHRpb25zLm91dHB1dCk7XG4gICAgICBmcy5ta2RpclN5bmMob3V0cHV0RGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIGNvbnN0IG91dHB1dEZpbGUgPSBwYXRoLmpvaW4ob3V0cHV0RGlyLCBgJHtvcHRpb25zLmZpbGVOYW1lfS5qc29uYCk7XG4gICAgICBmcy53cml0ZUZpbGVTeW5jKG91dHB1dEZpbGUsIEpTT04uc3RyaW5naWZ5KGRvY3VtZW50LCBudWxsLCAyKSwgXCJ1dGYtOFwiKTtcblxuICAgICAgY29uc3QgcGF0aENvdW50ID0gT2JqZWN0LmtleXMoZG9jdW1lbnQucGF0aHMgfHwge30pLmxlbmd0aDtcbiAgICAgIGNvbnN0IHNjaGVtYUNvdW50ID0gT2JqZWN0LmtleXMoZG9jdW1lbnQuY29tcG9uZW50cz8uc2NoZW1hcyB8fCB7fSkubGVuZ3RoO1xuICAgICAgbG9nLmluZm8oYE9wZW5BUEkgc3BlYyB3cml0dGVuIHRvICR7b3V0cHV0RmlsZX0gKCR7cGF0aENvdW50fSBwYXRocywgJHtzY2hlbWFDb3VudH0gc2NoZW1hcylgKTtcbiAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICB0aHJvdyBuZXcgSW50ZXJuYWxFcnJvcihlIGFzIEVycm9yKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKGFwcCkgYXdhaXQgYXBwLmNsb3NlKCk7XG4gICAgfVxuICB9KTtcblxuY29uc3QgbmVzdENtZCA9IG5ldyBDb21tYW5kKClcbiAgLm5hbWUoXCJuZXN0XCIpXG4gIC5kZXNjcmlwdGlvbihcImV4cG9zZXMgdmFyaW91cyBjb21tYW5kcyB0byBoZWxwIG1hbmFnZSB0aGUgbmVzdCBpbnRlZ3JhdGlvblwiKTtcblxubmVzdENtZC5hZGRDb21tYW5kKG1pZ3JhdGVDb21tYW5kKTtcbm5lc3RDbWQuYWRkQ29tbWFuZChleHBvcnRBcGlDb21tYW5kKTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbmVzdCgpIHtcbiAgcmV0dXJuIG5lc3RDbWQ7XG59XG4iXX0=
|
package/lib/esm/constants.js
CHANGED
|
@@ -3,8 +3,7 @@ export const DECAF_ADAPTER_ID = "DecafAdapter";
|
|
|
3
3
|
export const DECAF_TASK_SERVICE_ID = "DecafTaskService";
|
|
4
4
|
export const DECAF_ROUTE = "DecafRoute";
|
|
5
5
|
export const DECAF_HANDLERS = Symbol("DecafHandlers");
|
|
6
|
-
export const DECAF_ADAPTER_OPTIONS = Symbol("DecafAdapterForOptions");
|
|
7
6
|
export const DECAF_EXPOSE = "DecafExpose";
|
|
8
7
|
export const DECAF_CONTROLLER_CONFIG = "DecafControllerConfig";
|
|
9
8
|
export const DECAF_CONTEXT_KEY = Symbol("decaf:context");
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxvQkFBb0IsQ0FBQztBQUN6RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUM7QUFDL0MsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsa0JBQWtCLENBQUM7QUFFeEQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztBQUN4QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQ3RELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUM7QUFDMUMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsdUJBQXVCLENBQUM7QUFFL0QsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWRhcHRlckZsYWdzLCBDb250ZXh0IH0gZnJvbSBcIkBkZWNhZi10cy9jb3JlXCI7XG5pbXBvcnQgeyBMb2dnZXIgfSBmcm9tIFwiQGRlY2FmLXRzL2xvZ2dpbmdcIjtcblxuZXhwb3J0IGNvbnN0IERFQ0FGX01PRFVMRV9PUFRJT05TID0gXCJEZWNhZk1vZHVsZU9wdGlvbnNcIjtcbmV4cG9ydCBjb25zdCBERUNBRl9BREFQVEVSX0lEID0gXCJEZWNhZkFkYXB0ZXJcIjtcbmV4cG9ydCBjb25zdCBERUNBRl9UQVNLX1NFUlZJQ0VfSUQgPSBcIkRlY2FmVGFza1NlcnZpY2VcIjtcblxuZXhwb3J0IGNvbnN0IERFQ0FGX1JPVVRFID0gXCJEZWNhZlJvdXRlXCI7XG5leHBvcnQgY29uc3QgREVDQUZfSEFORExFUlMgPSBTeW1ib2woXCJEZWNhZkhhbmRsZXJzXCIpO1xuZXhwb3J0IGNvbnN0IERFQ0FGX0VYUE9TRSA9IFwiRGVjYWZFeHBvc2VcIjtcbmV4cG9ydCBjb25zdCBERUNBRl9DT05UUk9MTEVSX0NPTkZJRyA9IFwiRGVjYWZDb250cm9sbGVyQ29uZmlnXCI7XG5cbmV4cG9ydCBjb25zdCBERUNBRl9DT05URVhUX0tFWSA9IFN5bWJvbChcImRlY2FmOmNvbnRleHRcIik7XG5cbmV4cG9ydCB0eXBlIERlY2FmU2VydmVyRmxhZ3M8TE9HIGV4dGVuZHMgTG9nZ2VyID0gTG9nZ2VyPiA9XG4gIEFkYXB0ZXJGbGFnczxMT0c+ICYge1xuICAgIGhlYWRlcnM6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgb3ZlcnJpZGVzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xuICB9O1xuXG5leHBvcnQgdHlwZSBEZWNhZlNlcnZlckN0eCA9IENvbnRleHQ8RGVjYWZTZXJ2ZXJGbGFncz47XG4iXX0=
|
package/lib/esm/controllers.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { DecafController as HttpDecafController } from "@decaf-ts/for-http/server";
|
|
2
2
|
import { ModelService, Repository, Service, } from "@decaf-ts/core";
|
|
3
|
-
import { DECAF_ADAPTER_OPTIONS } from "./constants.js";
|
|
4
3
|
export class DecafController extends HttpDecafController {
|
|
5
4
|
constructor(clientContext, _name) {
|
|
6
5
|
super(clientContext);
|
|
@@ -27,15 +26,12 @@ export class DecafModelController extends DecafController {
|
|
|
27
26
|
this._persistence = Repository.forModel(this.class);
|
|
28
27
|
}
|
|
29
28
|
}
|
|
30
|
-
const
|
|
31
|
-
if (ctx) {
|
|
32
|
-
this.clientContext.put(certs);
|
|
33
|
-
}
|
|
29
|
+
const overrides = this.clientContext.toOverrides();
|
|
34
30
|
return ctx
|
|
35
31
|
? this._persistence instanceof Repository
|
|
36
|
-
? this._persistence.override(
|
|
37
|
-
: this._persistence.for(
|
|
32
|
+
? this._persistence.override(overrides)
|
|
33
|
+
: this._persistence.for(overrides)
|
|
38
34
|
: this._persistence;
|
|
39
35
|
}
|
|
40
36
|
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbGxlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29udHJvbGxlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsSUFBSSxtQkFBbUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25GLE9BQU8sRUFFTCxZQUFZLEVBRVosVUFBVSxFQUNWLE9BQU8sR0FDUixNQUFNLGdCQUFnQixDQUFDO0FBTXhCLE1BQU0sT0FBZ0IsZUFFcEIsU0FBUSxtQkFBc0Q7SUFDOUQsWUFDcUIsYUFBa0MsRUFDckQsS0FBYTtRQUViLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUhGLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtJQUl2RCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQWdCLG9CQUdwQixTQUFRLGVBQWtCO0lBRzFCLFlBQzhCLGFBQWtDLEVBQzlELEtBQWE7UUFFYixLQUFLLENBQUMsYUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBSEEsa0JBQWEsR0FBYixhQUFhLENBQXFCO0lBSWhFLENBQUM7SUFJRCxXQUFXLENBQUMsR0FBa0I7UUFDNUIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZO1lBQ3BCLElBQUksQ0FBQztnQkFDSCxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQWtCLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDN0QsNkRBQTZEO1lBQy9ELENBQUM7WUFBQyxPQUFPLENBQVUsRUFBRSxDQUFDO2dCQUNwQixJQUFJLENBQUM7b0JBQ0gsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUMsVUFBVSxDQUN6QyxJQUFJLENBQUMsS0FBSyxDQUNRLENBQUM7b0JBQ3JCLDZEQUE2RDtnQkFDL0QsQ0FBQztnQkFBQyxPQUFPLENBQVUsRUFBRSxDQUFDO29CQUNwQixJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBWSxDQUFDO2dCQUNqRSxDQUFDO1lBQ0gsQ0FBQztRQUVILE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFbkQsT0FBTyxHQUFHO1lBQ1IsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLFlBQVksVUFBVTtnQkFDdkMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQztnQkFDdkMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQztZQUNwQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUN4QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIFJlcXVlc3QgfSBmcm9tIFwiZXhwcmVzc1wiO1xuaW1wb3J0IHsgRGVjYWZDb250cm9sbGVyIGFzIEh0dHBEZWNhZkNvbnRyb2xsZXIgfSBmcm9tIFwiQGRlY2FmLXRzL2Zvci1odHRwL3NlcnZlclwiO1xuaW1wb3J0IHtcbiAgQ29udGV4dCxcbiAgTW9kZWxTZXJ2aWNlLFxuICBSZXBvLFxuICBSZXBvc2l0b3J5LFxuICBTZXJ2aWNlLFxufSBmcm9tIFwiQGRlY2FmLXRzL2NvcmVcIjtcbmltcG9ydCB7IE1vZGVsLCB0eXBlIE1vZGVsQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5cbmltcG9ydCB7IERlY2FmU2VydmVyQ3R4IH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBEZWNhZlJlcXVlc3RDb250ZXh0IH0gZnJvbSBcIi4vcmVxdWVzdC9EZWNhZlJlcXVlc3RDb250ZXh0XCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEZWNhZkNvbnRyb2xsZXI8XG4gIENPTlRFWFQgZXh0ZW5kcyBEZWNhZlNlcnZlckN0eCA9IERlY2FmU2VydmVyQ3R4LFxuPiBleHRlbmRzIEh0dHBEZWNhZkNvbnRyb2xsZXI8UmVxdWVzdCwgYW55LCBEZWNhZlJlcXVlc3RDb250ZXh0PiB7XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2xpZW50Q29udGV4dDogRGVjYWZSZXF1ZXN0Q29udGV4dCxcbiAgICBfbmFtZTogc3RyaW5nXG4gICkge1xuICAgIHN1cGVyKGNsaWVudENvbnRleHQpO1xuICB9XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEZWNhZk1vZGVsQ29udHJvbGxlcjxcbiAgTSBleHRlbmRzIE1vZGVsPGJvb2xlYW4+LFxuICBDIGV4dGVuZHMgRGVjYWZTZXJ2ZXJDdHggPSBEZWNhZlNlcnZlckN0eCxcbj4gZXh0ZW5kcyBEZWNhZkNvbnRyb2xsZXI8Qz4ge1xuICBwcml2YXRlIF9wZXJzaXN0ZW5jZT86IFJlcG88TT4gfCBNb2RlbFNlcnZpY2U8TT47XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBvdmVycmlkZSByZWFkb25seSBjbGllbnRDb250ZXh0OiBEZWNhZlJlcXVlc3RDb250ZXh0LFxuICAgIF9uYW1lOiBzdHJpbmdcbiAgKSB7XG4gICAgc3VwZXIoY2xpZW50Q29udGV4dCwgX25hbWUpO1xuICB9XG5cbiAgYWJzdHJhY3QgZ2V0IGNsYXNzKCk6IE1vZGVsQ29uc3RydWN0b3I8TT47XG5cbiAgcGVyc2lzdGVuY2UoY3R4PzogQ29udGV4dDxhbnk+KTogUmVwbzxNPiB8IE1vZGVsU2VydmljZTxNPiB7XG4gICAgaWYgKCF0aGlzLl9wZXJzaXN0ZW5jZSlcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuX3BlcnNpc3RlbmNlID0gU2VydmljZS5nZXQ8TW9kZWxTZXJ2aWNlPE0+Pih0aGlzLmNsYXNzKTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgfSBjYXRjaCAoZTogdW5rbm93bikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHRoaXMuX3BlcnNpc3RlbmNlID0gTW9kZWxTZXJ2aWNlLmdldFNlcnZpY2UoXG4gICAgICAgICAgICB0aGlzLmNsYXNzXG4gICAgICAgICAgKSBhcyBNb2RlbFNlcnZpY2U8TT47XG4gICAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgICAgICB9IGNhdGNoIChlOiB1bmtub3duKSB7XG4gICAgICAgICAgdGhpcy5fcGVyc2lzdGVuY2UgPSBSZXBvc2l0b3J5LmZvck1vZGVsKHRoaXMuY2xhc3MpIGFzIFJlcG88TT47XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgIGNvbnN0IG92ZXJyaWRlcyA9IHRoaXMuY2xpZW50Q29udGV4dC50b092ZXJyaWRlcygpO1xuXG4gICAgcmV0dXJuIGN0eFxuICAgICAgPyB0aGlzLl9wZXJzaXN0ZW5jZSBpbnN0YW5jZW9mIFJlcG9zaXRvcnlcbiAgICAgICAgPyB0aGlzLl9wZXJzaXN0ZW5jZS5vdmVycmlkZShvdmVycmlkZXMpXG4gICAgICAgIDogdGhpcy5fcGVyc2lzdGVuY2UuZm9yKG92ZXJyaWRlcylcbiAgICAgIDogdGhpcy5fcGVyc2lzdGVuY2U7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -44,7 +44,11 @@ export function getModuleFor(flavour) {
|
|
|
44
44
|
modelServices = this.createModelServices(trackedModels);
|
|
45
45
|
log.info(`Auto-services completed. ${modelServices.length} services initialized.`);
|
|
46
46
|
}
|
|
47
|
-
const
|
|
47
|
+
const globalDefaults = {};
|
|
48
|
+
if (options.aggregations === false) {
|
|
49
|
+
globalDefaults.allowGroupingQueries = false;
|
|
50
|
+
}
|
|
51
|
+
const controllers = trackedModels.map((model) => FromModelController.create(model, options.controllerConfig, globalDefaults));
|
|
48
52
|
log.info(`Generated ${controllers.length} controllers`);
|
|
49
53
|
return {
|
|
50
54
|
module: DecafModelModule_1,
|
|
@@ -63,4 +67,4 @@ export function getModuleFor(flavour) {
|
|
|
63
67
|
});
|
|
64
68
|
return DecafModelModule;
|
|
65
69
|
}
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVjYWZNb2RlbE1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9kZWNhZi1tb2RlbC9EZWNhZk1vZGVsTW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLE9BQU8sRUFBaUIsTUFBTSxFQUFZLE1BQU0sZ0JBQWdCLENBQUM7QUFDakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGlDQUE4QjtBQUc1RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSwwQkFBcUI7QUFHNUMsTUFBTSxVQUFVLFlBQVksQ0FBQyxPQUFlOztJQUUxQyxJQUFNLGdCQUFnQixHQUF0QixNQUFNLGdCQUFnQjs7aUJBQ0osUUFBRyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxBQUFsRCxDQUFtRDtRQUV0RSxNQUFNLENBQUMsbUJBQW1CLENBQ3hCLE1BQTZCO1lBRTdCLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDNUIsT0FBTyxFQUFFLEdBQUcsS0FBSyxDQUFDLElBQUksU0FBUztnQkFDL0IsVUFBVSxFQUFFLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsS0FBWSxDQUFDO2FBQ3RELENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQztRQUVELE1BQU0sQ0FBQyxTQUFTLENBQ2QsS0FBNEIsRUFDNUIsUUFBNkM7WUFFN0MsTUFBTSxRQUFRLEdBQUcsUUFBUSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hDLE1BQU0sS0FBSyxHQUNULE9BQU8sUUFBUSxLQUFLLFdBQVc7Z0JBQzdCLENBQUMsQ0FBQyxRQUFRO2dCQUNWLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFFdEQsSUFBSSxPQUFPLEtBQUssS0FBSyxXQUFXO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQzlDLElBQUksS0FBSyxLQUFLLElBQUk7Z0JBQUUsT0FBTyxJQUFJLENBQUM7WUFDaEMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztnQkFBRSxPQUFPLEtBQUssQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDekQsT0FBTyxLQUFLLENBQUM7UUFDZixDQUFDO1FBRUQsTUFBTSxDQUFDLE9BQU8sQ0FDWixPQUFlLEVBQ2YsVUFBdUMsRUFBRTtZQUV6QyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdkMsR0FBRyxDQUFDLElBQUksQ0FBQyx1Q0FBdUMsQ0FBQyxDQUFDO1lBRWxELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDN0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQ2xELENBQUM7WUFFRixJQUFJLGFBQWEsR0FBZSxFQUFFLENBQUM7WUFDbkMsSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3pCLEdBQUcsQ0FBQyxJQUFJLENBQUMseURBQXlELENBQUMsQ0FBQztnQkFDcEUsYUFBYSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsQ0FBQztnQkFDeEQsR0FBRyxDQUFDLElBQUksQ0FDTiw0QkFBNEIsYUFBYSxDQUFDLE1BQU0sd0JBQXdCLENBQ3pFLENBQUM7WUFDSixDQUFDO1lBRUQsTUFBTSxjQUFjLEdBQTBDLEVBQUUsQ0FBQztZQUNqRSxJQUFJLE9BQU8sQ0FBQyxZQUFZLEtBQUssS0FBSyxFQUFFLENBQUM7Z0JBQ25DLGNBQWMsQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7WUFDOUMsQ0FBQztZQUVELE1BQU0sV0FBVyxHQUFHLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUM5QyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxjQUFjLENBQUMsQ0FDNUUsQ0FBQztZQUNGLEdBQUcsQ0FBQyxJQUFJLENBQUMsYUFBYSxXQUFXLENBQUMsTUFBTSxjQUFjLENBQUMsQ0FBQztZQUV4RCxPQUFPO2dCQUNMLE1BQU0sRUFBRSxrQkFBZ0I7Z0JBQ3hCLFdBQVc7Z0JBQ1gsU0FBUyxFQUFFO29CQUNULEdBQUcsYUFBYTtpQkFDakI7YUFDRixDQUFDO1FBQ0osQ0FBQzs7SUFqRUcsZ0JBQWdCO1FBRHJCLE1BQU0sQ0FBQyxFQUFFLENBQUM7T0FDTCxnQkFBZ0IsQ0FrRXJCO0lBQ0QsTUFBTSxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUU7UUFDdEMsS0FBSyxFQUFFLGNBQWMsT0FBTyxFQUFFO0tBQy9CLENBQUMsQ0FBQztJQUNILE9BQU8sZ0JBQWdCLENBQUM7QUFDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER5bmFtaWNNb2R1bGUsIE1vZHVsZSwgUHJvdmlkZXIgfSBmcm9tIFwiQG5lc3Rqcy9jb21tb25cIjtcbmltcG9ydCB7IEFkYXB0ZXIsIE1vZGVsU2VydmljZSB9IGZyb20gXCJAZGVjYWYtdHMvY29yZVwiO1xuaW1wb3J0IHsgTG9nZ2luZyB9IGZyb20gXCJAZGVjYWYtdHMvbG9nZ2luZ1wiO1xuaW1wb3J0IHsgRnJvbU1vZGVsQ29udHJvbGxlciB9IGZyb20gXCIuL0Zyb21Nb2RlbENvbnRyb2xsZXJcIjtcbmltcG9ydCB7IERlY2FmTW9kdWxlT3B0aW9ucyB9IGZyb20gXCIuLi90eXBlc1wiO1xuaW1wb3J0IHsgTW9kZWwsIE1vZGVsQ29uc3RydWN0b3IgfSBmcm9tIFwiQGRlY2FmLXRzL2RlY29yYXRvci12YWxpZGF0aW9uXCI7XG5pbXBvcnQgeyBNZXRhZGF0YSB9IGZyb20gXCJAZGVjYWYtdHMvZGVjb3JhdGlvblwiO1xuaW1wb3J0IHsgREVDQUZfRVhQT1NFIH0gZnJvbSBcIi4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHR5cGUgeyBNb2RlbENvbnRyb2xsZXJGYWN0b3J5Q29uZmlnIH0gZnJvbSBcIkBkZWNhZi10cy9mb3ItaHR0cC9zZXJ2ZXJcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1vZHVsZUZvcihmbGF2b3VyOiBzdHJpbmcpIHtcbiAgQE1vZHVsZSh7fSlcbiAgY2xhc3MgRGVjYWZNb2RlbE1vZHVsZSB7XG4gICAgc3RhdGljIHJlYWRvbmx5IGxvZyA9IExvZ2dpbmcuZm9yKERlY2FmTW9kZWxNb2R1bGUubmFtZSkuZm9yKGZsYXZvdXIpO1xuXG4gICAgc3RhdGljIGNyZWF0ZU1vZGVsU2VydmljZXM8VCBleHRlbmRzIE1vZGVsPGJvb2xlYW4+PihcbiAgICAgIG1vZGVsczogTW9kZWxDb25zdHJ1Y3RvcjxUPltdXG4gICAgKTogUHJvdmlkZXJbXSB7XG4gICAgICByZXR1cm4gbW9kZWxzLm1hcCgobW9kZWwpID0+ICh7XG4gICAgICAgIHByb3ZpZGU6IGAke21vZGVsLm5hbWV9U2VydmljZWAsXG4gICAgICAgIHVzZUZhY3Rvcnk6ICgpID0+IE1vZGVsU2VydmljZS5mb3JNb2RlbChtb2RlbCBhcyBhbnkpLFxuICAgICAgfSkpO1xuICAgIH1cblxuICAgIHN0YXRpYyBpc0V4cG9zZWQoXG4gICAgICBtb2RlbDogTW9kZWxDb25zdHJ1Y3Rvcjxhbnk+LFxuICAgICAgZXhwb3N1cmU/OiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuIHwgc3RyaW5nW10+XG4gICAgKTogYm9vbGVhbiB7XG4gICAgICBjb25zdCBvdmVycmlkZSA9IGV4cG9zdXJlPy5bbW9kZWwubmFtZV07XG4gICAgICBjb25zdCB2YWx1ZSA9XG4gICAgICAgIHR5cGVvZiBvdmVycmlkZSAhPT0gXCJ1bmRlZmluZWRcIlxuICAgICAgICAgID8gb3ZlcnJpZGVcbiAgICAgICAgICA6IE1ldGFkYXRhLmdldChtb2RlbCwgTWV0YWRhdGEua2V5KERFQ0FGX0VYUE9TRSkpO1xuXG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcInVuZGVmaW5lZFwiKSByZXR1cm4gdHJ1ZTtcbiAgICAgIGlmICh2YWx1ZSA9PT0gdHJ1ZSkgcmV0dXJuIHRydWU7XG4gICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHJldHVybiB2YWx1ZS5pbmNsdWRlcyhmbGF2b3VyKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBzdGF0aWMgZm9yUm9vdChcbiAgICAgIGZsYXZvdXI6IHN0cmluZyxcbiAgICAgIG9wdGlvbnM6IFBhcnRpYWw8RGVjYWZNb2R1bGVPcHRpb25zPiA9IHt9XG4gICAgKTogRHluYW1pY01vZHVsZSB7XG4gICAgICBjb25zdCBsb2cgPSB0aGlzLmxvZy5mb3IodGhpcy5mb3JSb290KTtcbiAgICAgIGxvZy5pbmZvKGBHZW5lcmF0aW5nIGNvbnRyb2xsZXJzIGZvciBmbGF2b3VyLi4uYCk7XG5cbiAgICAgIGNvbnN0IHRyYWNrZWRNb2RlbHMgPSBBZGFwdGVyLm1vZGVscyhmbGF2b3VyKS5maWx0ZXIoKG1vZGVsKSA9PlxuICAgICAgICB0aGlzLmlzRXhwb3NlZChtb2RlbCwgb3B0aW9ucy5jb250cm9sbGVyRXhwb3N1cmUpXG4gICAgICApO1xuXG4gICAgICBsZXQgbW9kZWxTZXJ2aWNlczogUHJvdmlkZXJbXSA9IFtdO1xuICAgICAgaWYgKG9wdGlvbnMuYXV0b1NlcnZpY2VzKSB7XG4gICAgICAgIGxvZy5pbmZvKFwiQXV0by1zZXJ2aWNlcyBlbmFibGVkLiBJbml0aWFsaXppbmcgc2VydmljZSBnZW5lcmF0aW9uLlwiKTtcbiAgICAgICAgbW9kZWxTZXJ2aWNlcyA9IHRoaXMuY3JlYXRlTW9kZWxTZXJ2aWNlcyh0cmFja2VkTW9kZWxzKTtcbiAgICAgICAgbG9nLmluZm8oXG4gICAgICAgICAgYEF1dG8tc2VydmljZXMgY29tcGxldGVkLiAke21vZGVsU2VydmljZXMubGVuZ3RofSBzZXJ2aWNlcyBpbml0aWFsaXplZC5gXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGdsb2JhbERlZmF1bHRzOiBQYXJ0aWFsPE1vZGVsQ29udHJvbGxlckZhY3RvcnlDb25maWc+ID0ge307XG4gICAgICBpZiAob3B0aW9ucy5hZ2dyZWdhdGlvbnMgPT09IGZhbHNlKSB7XG4gICAgICAgIGdsb2JhbERlZmF1bHRzLmFsbG93R3JvdXBpbmdRdWVyaWVzID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGNvbnRyb2xsZXJzID0gdHJhY2tlZE1vZGVscy5tYXAoKG1vZGVsKSA9PlxuICAgICAgICBGcm9tTW9kZWxDb250cm9sbGVyLmNyZWF0ZShtb2RlbCwgb3B0aW9ucy5jb250cm9sbGVyQ29uZmlnLCBnbG9iYWxEZWZhdWx0cylcbiAgICAgICk7XG4gICAgICBsb2cuaW5mbyhgR2VuZXJhdGVkICR7Y29udHJvbGxlcnMubGVuZ3RofSBjb250cm9sbGVyc2ApO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBtb2R1bGU6IERlY2FmTW9kZWxNb2R1bGUsXG4gICAgICAgIGNvbnRyb2xsZXJzLFxuICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAuLi5tb2RlbFNlcnZpY2VzLFxuICAgICAgICBdLFxuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgT2JqZWN0LmFzc2lnbihEZWNhZk1vZGVsTW9kdWxlLCBcIm5hbWVcIiwge1xuICAgIHZhbHVlOiBgRGVjYWZNb2R1bGUke2ZsYXZvdXJ9YCxcbiAgfSk7XG4gIHJldHVybiBEZWNhZk1vZGVsTW9kdWxlO1xufVxuIl19
|