Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@eventual/core

Package Overview
Dependencies
Maintainers
2
Versions
164
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@eventual/core - npm Package Compare versions

Comparing version 0.39.2 to 0.39.3

20

lib/cjs/http/api.d.ts

@@ -5,3 +5,3 @@ import type openapi from "openapi3-ts";

import type { SourceLocation } from "../internal/service-spec.js";
import { Command, CommandContext, CommandHandler, CommandOptions } from "./command.js";
import { Command, CommandContext, CommandHandler, CommandOptions, CommandOutputOptions } from "./command.js";
import type { MiddlewareInput, MiddlewareOutput } from "./middleware.js";

@@ -22,2 +22,16 @@ import type { HttpRequest, HttpResponse } from "./request-response.js";

export type RouteRuntimeProps = FunctionRuntimeProps;
export interface ApiRouteProps extends RouteRuntimeProps {
/**
* Description of the route.
*
* Used to generate the {@link ApiSpecification}.
*/
description?: string;
/**
* Outputs of the route.
*
* Used to generate the {@link ApiSpecification}.
*/
outputs?: CommandOutputOptions<any>[];
}
export type HttpHandler<Context extends CommandContext = CommandContext> = (request: HttpRequest, context: Context) => HttpResponse | Promise<HttpResponse>;

@@ -28,3 +42,3 @@ export interface HttpRoute {

method: HttpMethod;
runtimeProps?: RouteRuntimeProps;
props?: ApiRouteProps;
/**

@@ -36,3 +50,3 @@ * Only available during eventual-infer

export interface HttpRouteFactory<Context extends CommandContext> {
(path: string, props: RouteRuntimeProps, handlers: HttpHandler<Context>): HttpRouter<Context>;
(path: string, props: ApiRouteProps, handlers: HttpHandler<Context>): HttpRouter<Context>;
(path: string, handlers: HttpHandler<Context>): HttpRouter<Context>;

@@ -39,0 +53,0 @@ }

4

lib/cjs/http/api.js

@@ -62,2 +62,3 @@ "use strict";

const command = {
description: routeProps?.description,
kind: "Command",

@@ -72,2 +73,3 @@ handler,

middlewares,
otherOutputs: routeProps?.outputs,
// we want the base HTTP request, not the transformed one

@@ -97,2 +99,2 @@ passThrough: true,

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2h0dHAvYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhEQUErQjtBQUkvQixxREFBeUU7QUFDekUsbUVBQW1FO0FBRW5FLDZDQVFzQjtBQVF0QixNQUFNLE1BQU0sR0FBRyxxQkFBSSxDQUFDLE1BQU0sRUFBdUMsQ0FBQztBQUVsRTs7Ozs7Ozs7OztHQVVHO0FBQ1UsUUFBQSxHQUFHLEdBQStCLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUVoRSxTQUFTLFlBQVksQ0FDbkIsV0FBb0M7SUFFcEMsT0FBTyxJQUFJLEtBQUssQ0FDZCxFQUFFLEVBQ0Y7UUFDRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBMkIsRUFBRSxFQUFFO1lBQ3RDLElBQUksTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLEtBQUssUUFBUSxFQUFFO2dCQUM5QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN2QjtpQkFBTSxJQUFJLE1BQU0sS0FBSyxLQUFLLEVBQUU7Z0JBQzNCLE9BQU8sQ0FBQyxVQUFnQyxFQUFFLEVBQUUsQ0FDMUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO2FBQ3REO2lCQUFNLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtnQkFDL0IsT0FBTyxDQUFDLEdBQUcsSUFBVyxFQUFFLEVBQUU7b0JBQ3hCLE1BQU0sQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FDNUMsSUFBQSw2QkFBZ0IsRUFBQyxJQUFJLENBQUMsQ0FBQztvQkFDekIsT0FBUSxvQkFBZSxDQUNyQixjQUFjLEVBQ2QsSUFBSSxFQUNKO3dCQUNFLEdBQUcsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO3dCQUNsQixXQUFXO3FCQUNaLEVBQ0QsT0FBTyxDQUNSLENBQUM7Z0JBQ0osQ0FBQyxDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsT0FBTyxDQUNMLEdBQUcsSUFJMkMsRUFDOUMsRUFBRTtvQkFDRixNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQy9DLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVE7d0JBQ3pCLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxVQUFVOzRCQUM3QixDQUFDLENBQUUsSUFLQzs0QkFDSixDQUFDLENBQUM7Z0NBQ0UsSUFBSSxDQUFDLENBQUMsQ0FBbUI7Z0NBQ3pCLElBQUksQ0FBQyxDQUFDLENBQVc7Z0NBQ2pCLFNBQVM7Z0NBQ1QsSUFBSSxDQUFDLENBQUMsQ0FBZ0I7NkJBQ3ZCO3dCQUNMLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxVQUFVOzRCQUMvQixDQUFDLENBQUM7Z0NBQ0UsU0FBUztnQ0FDVCxJQUFJLENBQUMsQ0FBQyxDQUFDO2dDQUNQLElBQUksQ0FBQyxDQUFDLENBQXNCO2dDQUM1QixJQUFJLENBQUMsQ0FBQyxDQUFnQjs2QkFDdkI7NEJBQ0gsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBZ0IsQ0FBQyxDQUFDO29CQUM5RCxNQUFNLE9BQU8sR0FBZTt3QkFDMUIsSUFBSSxFQUFFLFNBQVM7d0JBQ2YsT0FBTzt3QkFDUCxVQUFVLEVBQUUsVUFBVSxFQUFFLFVBQVU7d0JBQ2xDLE1BQU0sRUFBRSxNQUFNLENBQUMsV0FBVyxFQUFnQjt3QkFDMUMsSUFBSSxFQUFFLElBQUk7d0JBQ1YsSUFBSSxFQUFFLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBVzt3QkFDakUsY0FBYzt3QkFDZCxjQUFjLEVBQUUsVUFBVSxFQUFFLGNBQWM7d0JBQzFDLFdBQVc7d0JBQ1gseURBQXlEO3dCQUN6RCxXQUFXLEVBQUUsSUFBSTtxQkFDbEIsQ0FBQztvQkFDRixvQkFBUSxDQUFDLElBQUksQ0FBQyxPQUFjLENBQUMsQ0FBQztvQkFFOUIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDL0MsQ0FBQyxDQUFDO2FBQ0g7UUFDSCxDQUFDO0tBQ0YsQ0FDSyxDQUFDO0FBQ1gsQ0FBQztBQXdFWSxRQUFBLGdCQUFnQixHQUFxQjtJQUNoRCxRQUFRLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUNwQixNQUFNLFdBQVcsR0FBRyxJQUFBLGtDQUFzQixHQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLFdBQVcsRUFBRTtZQUNoQixNQUFNLElBQUksS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7U0FDakU7UUFDRCxPQUFPLElBQUEsc0NBQW1CLEVBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUU7WUFDM0QsZUFBZSxFQUFFLElBQUk7WUFDckIsY0FBYyxFQUFFLE9BQU8sRUFBRSxlQUFlLElBQUksS0FBSztZQUNqRCxJQUFJLEVBQUUsV0FBVyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsSUFBSTtZQUMxQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDM0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgaXR0eSBmcm9tIFwiaXR0eS1yb3V0ZXJcIjtcbmltcG9ydCB0eXBlIG9wZW5hcGkgZnJvbSBcIm9wZW5hcGkzLXRzXCI7XG5pbXBvcnQgdHlwZSB7IEZ1bmN0aW9uUnVudGltZVByb3BzIH0gZnJvbSBcIi4uL2Z1bmN0aW9uLXByb3BzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEh0dHBNZXRob2QgfSBmcm9tIFwiLi4vaHR0cC1tZXRob2QuanNcIjtcbmltcG9ydCB7IGNvbW1hbmRzLCBnZXRFbnZpcm9ubWVudE1hbmlmZXN0IH0gZnJvbSBcIi4uL2ludGVybmFsL2dsb2JhbC5qc1wiO1xuaW1wb3J0IHsgZ2VuZXJhdGVPcGVuQVBJU3BlYyB9IGZyb20gXCIuLi9pbnRlcm5hbC9vcGVuLWFwaS1zcGVjLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFNvdXJjZUxvY2F0aW9uIH0gZnJvbSBcIi4uL2ludGVybmFsL3NlcnZpY2Utc3BlYy5qc1wiO1xuaW1wb3J0IHtcbiAgQW55Q29tbWFuZCxcbiAgQ29tbWFuZCxcbiAgY29tbWFuZCxcbiAgQ29tbWFuZENvbnRleHQsXG4gIENvbW1hbmRIYW5kbGVyLFxuICBDb21tYW5kT3B0aW9ucyxcbiAgcGFyc2VDb21tYW5kQXJncyxcbn0gZnJvbSBcIi4vY29tbWFuZC5qc1wiO1xuaW1wb3J0IHR5cGUge1xuICBNaWRkbGV3YXJlLFxuICBNaWRkbGV3YXJlSW5wdXQsXG4gIE1pZGRsZXdhcmVPdXRwdXQsXG59IGZyb20gXCIuL21pZGRsZXdhcmUuanNcIjtcbmltcG9ydCB0eXBlIHsgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZSB9IGZyb20gXCIuL3JlcXVlc3QtcmVzcG9uc2UuanNcIjtcblxuY29uc3Qgcm91dGVyID0gaXR0eS5Sb3V0ZXIoKSBhcyBhbnkgYXMgSHR0cFJvdXRlcjxDb21tYW5kQ29udGV4dD47XG5cbi8qKlxuICogVGhpcyBQcm94eSBpbnRlcmNlcHRzIHRoZSBtZXRob2QgIGJlaW5nIGNhbGxlZCwgZS5nLiBgZ2V0YCwgYHBvc3RgLCBldGMuXG4gKiBhbmQgaW5jbHVkZXMgdGhhdCBpbmZvcm1hdGlvbiBpbiB0aGUgY3JlYXRlZCB7QGxpbmsgSHR0cFJvdXRlfSBvYmplY3QuIFRoaXNcbiAqIGluZm9ybWF0aW9uIGlzIHRoZW4gcGlja2VkIHVwIGR1cmluZyBpbmZlciBzbyB3ZSBrbm93IHRoZSBIVFRQIG1ldGhvZFxuICogZm9yIGVhY2ggcm91dGUuXG4gKlxuICogSXQgYWxzbyBpbmNsdWRlcyBgc291cmNlTG9jYXRpb25gIChpbmplY3RlZCBieSB0aGUgY29tcGlsZXIpLCBgcGF0aGAsIGFuZFxuICogYW55IGBydW50aW1lUHJvcHNgIHBhc3NlZCBpbiBieSB0aGUgdXNlci5cbiAqXG4gKiBAc2VlIEh0dHBSb3V0ZSBmb3IgYWxsIHRoZSBtZXRhZGF0YSBhc3NvY2lhdGVkIHdpdGggZWFjaCByb3V0ZVxuICovXG5leHBvcnQgY29uc3QgYXBpOiBIdHRwUm91dGVyPENvbW1hbmRDb250ZXh0PiA9IGNyZWF0ZVJvdXRlcihbXSk7XG5cbmZ1bmN0aW9uIGNyZWF0ZVJvdXRlcjxDb250ZXh0IGV4dGVuZHMgQ29tbWFuZENvbnRleHQ+KFxuICBtaWRkbGV3YXJlcz86IE1pZGRsZXdhcmU8YW55LCBhbnk+W11cbik6IEh0dHBSb3V0ZXI8Q29udGV4dD4ge1xuICByZXR1cm4gbmV3IFByb3h5KFxuICAgIHt9LFxuICAgIHtcbiAgICAgIGdldDogKF8sIG1ldGhvZDoga2V5b2YgdHlwZW9mIHJvdXRlcikgPT4ge1xuICAgICAgICBpZiAobWV0aG9kID09PSBcInJvdXRlc1wiIHx8IG1ldGhvZCA9PT0gXCJoYW5kbGVcIikge1xuICAgICAgICAgIHJldHVybiByb3V0ZXJbbWV0aG9kXTtcbiAgICAgICAgfSBlbHNlIGlmIChtZXRob2QgPT09IFwidXNlXCIpIHtcbiAgICAgICAgICByZXR1cm4gKG1pZGRsZXdhcmU6IE1pZGRsZXdhcmU8YW55LCBhbnk+KSA9PlxuICAgICAgICAgICAgY3JlYXRlUm91dGVyKFsuLi4obWlkZGxld2FyZXMgPz8gW10pLCBtaWRkbGV3YXJlXSk7XG4gICAgICAgIH0gZWxzZSBpZiAobWV0aG9kID09PSBcImNvbW1hbmRcIikge1xuICAgICAgICAgIHJldHVybiAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IFtzb3VyY2VMb2NhdGlvbiwgbmFtZSwgb3B0aW9ucywgaGFuZGxlcl0gPVxuICAgICAgICAgICAgICBwYXJzZUNvbW1hbmRBcmdzKGFyZ3MpO1xuICAgICAgICAgICAgcmV0dXJuIChjb21tYW5kIGFzIGFueSkoXG4gICAgICAgICAgICAgIHNvdXJjZUxvY2F0aW9uLFxuICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4uKG9wdGlvbnMgPz8ge30pLFxuICAgICAgICAgICAgICAgIG1pZGRsZXdhcmVzLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBoYW5kbGVyXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIC4uLmFyZ3M6XG4gICAgICAgICAgICAgIHwgW1NvdXJjZUxvY2F0aW9uLCBzdHJpbmcsIEh0dHBIYW5kbGVyW11dXG4gICAgICAgICAgICAgIHwgW1NvdXJjZUxvY2F0aW9uLCBzdHJpbmcsIFJvdXRlUnVudGltZVByb3BzLCBIdHRwSGFuZGxlcltdXVxuICAgICAgICAgICAgICB8IFtzdHJpbmcsIEh0dHBIYW5kbGVyW11dXG4gICAgICAgICAgICAgIHwgW3N0cmluZywgUm91dGVSdW50aW1lUHJvcHMsIEh0dHBIYW5kbGVyW11dXG4gICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBbc291cmNlTG9jYXRpb24sIHBhdGgsIHJvdXRlUHJvcHMsIGhhbmRsZXJdID1cbiAgICAgICAgICAgICAgdHlwZW9mIGFyZ3NbMF0gPT09IFwib2JqZWN0XCJcbiAgICAgICAgICAgICAgICA/IHR5cGVvZiBhcmdzWzNdID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICAgID8gKGFyZ3MgYXMgYW55IGFzIFtcbiAgICAgICAgICAgICAgICAgICAgICBTb3VyY2VMb2NhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgUm91dGVSdW50aW1lUHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgSHR0cEhhbmRsZXJcbiAgICAgICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgICAgIDogW1xuICAgICAgICAgICAgICAgICAgICAgIGFyZ3NbMF0gYXMgU291cmNlTG9jYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgYXJnc1sxXSBhcyBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgIGFyZ3NbMl0gYXMgSHR0cEhhbmRsZXIsXG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICA6IHR5cGVvZiBhcmdzWzJdID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICBhcmdzWzBdLFxuICAgICAgICAgICAgICAgICAgICBhcmdzWzFdIGFzIFJvdXRlUnVudGltZVByb3BzLFxuICAgICAgICAgICAgICAgICAgICBhcmdzWzJdIGFzIEh0dHBIYW5kbGVyLFxuICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIDogW3VuZGVmaW5lZCwgYXJnc1swXSwgdW5kZWZpbmVkLCBhcmdzWzFdIGFzIEh0dHBIYW5kbGVyXTtcbiAgICAgICAgICAgIGNvbnN0IGNvbW1hbmQ6IEFueUNvbW1hbmQgPSB7XG4gICAgICAgICAgICAgIGtpbmQ6IFwiQ29tbWFuZFwiLFxuICAgICAgICAgICAgICBoYW5kbGVyLFxuICAgICAgICAgICAgICBtZW1vcnlTaXplOiByb3V0ZVByb3BzPy5tZW1vcnlTaXplLFxuICAgICAgICAgICAgICBtZXRob2Q6IG1ldGhvZC50b1VwcGVyQ2FzZSgpIGFzIEh0dHBNZXRob2QsXG4gICAgICAgICAgICAgIG5hbWU6IHBhdGgsXG4gICAgICAgICAgICAgIHBhdGg6ICh0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IGFyZ3NbMF0gOiBhcmdzWzFdKSBhcyBzdHJpbmcsXG4gICAgICAgICAgICAgIHNvdXJjZUxvY2F0aW9uLFxuICAgICAgICAgICAgICBoYW5kbGVyVGltZW91dDogcm91dGVQcm9wcz8uaGFuZGxlclRpbWVvdXQsXG4gICAgICAgICAgICAgIG1pZGRsZXdhcmVzLFxuICAgICAgICAgICAgICAvLyB3ZSB3YW50IHRoZSBiYXNlIEhUVFAgcmVxdWVzdCwgbm90IHRoZSB0cmFuc2Zvcm1lZCBvbmVcbiAgICAgICAgICAgICAgcGFzc1Rocm91Z2g6IHRydWUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29tbWFuZHMucHVzaChjb21tYW5kIGFzIGFueSk7XG5cbiAgICAgICAgICAgIHJldHVybiByb3V0ZXJbbWV0aG9kXShwYXRoLCBjb21tYW5kLmhhbmRsZXIpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfVxuICApIGFzIGFueTtcbn1cblxuZXhwb3J0IHR5cGUgUm91dGVSdW50aW1lUHJvcHMgPSBGdW5jdGlvblJ1bnRpbWVQcm9wcztcblxuZXhwb3J0IHR5cGUgSHR0cEhhbmRsZXI8Q29udGV4dCBleHRlbmRzIENvbW1hbmRDb250ZXh0ID0gQ29tbWFuZENvbnRleHQ+ID0gKFxuICByZXF1ZXN0OiBIdHRwUmVxdWVzdCxcbiAgY29udGV4dDogQ29udGV4dFxuKSA9PiBIdHRwUmVzcG9uc2UgfCBQcm9taXNlPEh0dHBSZXNwb25zZT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cFJvdXRlIHtcbiAgcGF0aDogc3RyaW5nO1xuICBoYW5kbGVyczogSHR0cEhhbmRsZXI8YW55PltdO1xuICBtZXRob2Q6IEh0dHBNZXRob2Q7XG4gIHJ1bnRpbWVQcm9wcz86IFJvdXRlUnVudGltZVByb3BzO1xuICAvKipcbiAgICogT25seSBhdmFpbGFibGUgZHVyaW5nIGV2ZW50dWFsLWluZmVyXG4gICAqL1xuICBzb3VyY2VMb2NhdGlvbj86IFNvdXJjZUxvY2F0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBSb3V0ZUZhY3Rvcnk8Q29udGV4dCBleHRlbmRzIENvbW1hbmRDb250ZXh0PiB7XG4gIChcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgcHJvcHM6IFJvdXRlUnVudGltZVByb3BzLFxuICAgIGhhbmRsZXJzOiBIdHRwSGFuZGxlcjxDb250ZXh0PlxuICApOiBIdHRwUm91dGVyPENvbnRleHQ+O1xuICAocGF0aDogc3RyaW5nLCBoYW5kbGVyczogSHR0cEhhbmRsZXI8Q29udGV4dD4pOiBIdHRwUm91dGVyPENvbnRleHQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBSb3V0ZXI8Q29udGV4dCBleHRlbmRzIENvbW1hbmRDb250ZXh0PiB7XG4gIGhhbmRsZTogKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0LCAuLi5leHRyYTogYW55KSA9PiBQcm9taXNlPEh0dHBSZXNwb25zZT47XG4gIHJvdXRlczogSHR0cFJvdXRlRW50cnlbXTtcbiAgYWxsOiBIdHRwUm91dGVGYWN0b3J5PENvbnRleHQ+O1xuICBnZXQ6IEh0dHBSb3V0ZUZhY3Rvcnk8Q29udGV4dD47XG4gIGhlYWQ6IEh0dHBSb3V0ZUZhY3Rvcnk8Q29udGV4dD47XG4gIHBvc3Q6IEh0dHBSb3V0ZUZhY3Rvcnk8Q29udGV4dD47XG4gIHB1dDogSHR0cFJvdXRlRmFjdG9yeTxDb250ZXh0PjtcbiAgZGVsZXRlOiBIdHRwUm91dGVGYWN0b3J5PENvbnRleHQ+O1xuICBjb25uZWN0OiBIdHRwUm91dGVGYWN0b3J5PENvbnRleHQ+O1xuICBvcHRpb25zOiBIdHRwUm91dGVGYWN0b3J5PENvbnRleHQ+O1xuICB0cmFjZTogSHR0cFJvdXRlRmFjdG9yeTxDb250ZXh0PjtcbiAgcGF0Y2g6IEh0dHBSb3V0ZUZhY3Rvcnk8Q29udGV4dD47XG4gIHVzZTxOZXh0Q29udGV4dCBleHRlbmRzIENvbW1hbmRDb250ZXh0PihcbiAgICBtaWRkbGV3YXJlOiAoXG4gICAgICBpbnB1dDogTWlkZGxld2FyZUlucHV0PENvbnRleHQ+XG4gICAgKSA9PiBQcm9taXNlPE1pZGRsZXdhcmVPdXRwdXQ8TmV4dENvbnRleHQ+PiB8IE1pZGRsZXdhcmVPdXRwdXQ8TmV4dENvbnRleHQ+XG4gICk6IEh0dHBSb3V0ZXI8TmV4dENvbnRleHQ+O1xuXG4gIGNvbW1hbmQ8TmFtZSBleHRlbmRzIHN0cmluZywgSW5wdXQgPSB1bmRlZmluZWQsIE91dHB1dCA9IHZvaWQ+KFxuICAgIG5hbWU6IE5hbWUsXG4gICAgaGFuZGxlcjogQ29tbWFuZEhhbmRsZXI8SW5wdXQsIE91dHB1dCwgQ29udGV4dD5cbiAgKTogQ29tbWFuZDxOYW1lLCBJbnB1dCwgT3V0cHV0LCBDb250ZXh0LCB1bmRlZmluZWQsIHVuZGVmaW5lZD47XG5cbiAgY29tbWFuZDxcbiAgICBOYW1lIGV4dGVuZHMgc3RyaW5nLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBQYXRoIGV4dGVuZHMgc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIE1ldGhvZCBleHRlbmRzIEh0dHBNZXRob2QgfCB1bmRlZmluZWRcbiAgPihcbiAgICBuYW1lOiBOYW1lLFxuICAgIG9wdGlvbnM6IENvbW1hbmRPcHRpb25zPElucHV0LCBPdXRwdXQsIFBhdGgsIE1ldGhvZD4sXG4gICAgaGFuZGxlcjogQ29tbWFuZEhhbmRsZXI8SW5wdXQsIE91dHB1dCwgQ29udGV4dD5cbiAgKTogQ29tbWFuZDxOYW1lLCBJbnB1dCwgT3V0cHV0LCBDb250ZXh0LCBQYXRoLCBNZXRob2Q+O1xufVxuXG5leHBvcnQgdHlwZSBIdHRwUm91dGVFbnRyeSA9IFtzdHJpbmcsIFJlZ0V4cCwgSHR0cEhhbmRsZXJdO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaVNwZWNpZmljYXRpb24ge1xuICBnZW5lcmF0ZTogKG9wdGlvbnM/OiB7IGluY2x1ZGVScGNQYXRocz86IGJvb2xlYW4gfSkgPT4gb3BlbmFwaS5PcGVuQVBJT2JqZWN0O1xufVxuXG5leHBvcnQgY29uc3QgQXBpU3BlY2lmaWNhdGlvbjogQXBpU3BlY2lmaWNhdGlvbiA9IHtcbiAgZ2VuZXJhdGU6IChvcHRpb25zKSA9PiB7XG4gICAgY29uc3QgZW52TWFuaWZlc3QgPSBnZXRFbnZpcm9ubWVudE1hbmlmZXN0KCk7XG4gICAgaWYgKCFlbnZNYW5pZmVzdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRW52aXJvbm1lbnRNYW5pZmVzdCBoYXMgbm90IGJlZW4gcmVnaXN0ZXJlZC5cIik7XG4gICAgfVxuICAgIHJldHVybiBnZW5lcmF0ZU9wZW5BUElTcGVjKGVudk1hbmlmZXN0LnNlcnZpY2VTcGVjLmNvbW1hbmRzLCB7XG4gICAgICBjcmVhdGVSZXN0UGF0aHM6IHRydWUsXG4gICAgICBjcmVhdGVScGNQYXRoczogb3B0aW9ucz8uaW5jbHVkZVJwY1BhdGhzID8/IGZhbHNlLFxuICAgICAgaW5mbzogZW52TWFuaWZlc3Quc2VydmljZVNwZWMub3BlbkFwaS5pbmZvLFxuICAgICAgc2VydmVyczogW3sgdXJsOiBlbnZNYW5pZmVzdC5zZXJ2aWNlVXJsIH1dLFxuICAgIH0pO1xuICB9LFxufTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2h0dHAvYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDhEQUErQjtBQUkvQixxREFBeUU7QUFDekUsbUVBQW1FO0FBRW5FLDZDQVNzQjtBQVF0QixNQUFNLE1BQU0sR0FBRyxxQkFBSSxDQUFDLE1BQU0sRUFBdUMsQ0FBQztBQUVsRTs7Ozs7Ozs7OztHQVVHO0FBQ1UsUUFBQSxHQUFHLEdBQStCLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUVoRSxTQUFTLFlBQVksQ0FDbkIsV0FBb0M7SUFFcEMsT0FBTyxJQUFJLEtBQUssQ0FDZCxFQUFFLEVBQ0Y7UUFDRSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBMkIsRUFBRSxFQUFFO1lBQ3RDLElBQUksTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLEtBQUssUUFBUSxFQUFFO2dCQUM5QyxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUN2QjtpQkFBTSxJQUFJLE1BQU0sS0FBSyxLQUFLLEVBQUU7Z0JBQzNCLE9BQU8sQ0FBQyxVQUFnQyxFQUFFLEVBQUUsQ0FDMUMsWUFBWSxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO2FBQ3REO2lCQUFNLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtnQkFDL0IsT0FBTyxDQUFDLEdBQUcsSUFBVyxFQUFFLEVBQUU7b0JBQ3hCLE1BQU0sQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FDNUMsSUFBQSw2QkFBZ0IsRUFBQyxJQUFJLENBQUMsQ0FBQztvQkFDekIsT0FBUSxvQkFBZSxDQUNyQixjQUFjLEVBQ2QsSUFBSSxFQUNKO3dCQUNFLEdBQUcsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDO3dCQUNsQixXQUFXO3FCQUNaLEVBQ0QsT0FBTyxDQUNSLENBQUM7Z0JBQ0osQ0FBQyxDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsT0FBTyxDQUNMLEdBQUcsSUFJdUMsRUFDMUMsRUFBRTtvQkFDRixNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLEdBQy9DLE9BQU8sSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLFFBQVE7d0JBQ3pCLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxVQUFVOzRCQUM3QixDQUFDLENBQUUsSUFLQzs0QkFDSixDQUFDLENBQUM7Z0NBQ0UsSUFBSSxDQUFDLENBQUMsQ0FBbUI7Z0NBQ3pCLElBQUksQ0FBQyxDQUFDLENBQVc7Z0NBQ2pCLFNBQVM7Z0NBQ1QsSUFBSSxDQUFDLENBQUMsQ0FBZ0I7NkJBQ3ZCO3dCQUNMLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxVQUFVOzRCQUMvQixDQUFDLENBQUM7Z0NBQ0UsU0FBUztnQ0FDVCxJQUFJLENBQUMsQ0FBQyxDQUFDO2dDQUNQLElBQUksQ0FBQyxDQUFDLENBQWtCO2dDQUN4QixJQUFJLENBQUMsQ0FBQyxDQUFnQjs2QkFDdkI7NEJBQ0gsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBZ0IsQ0FBQyxDQUFDO29CQUM5RCxNQUFNLE9BQU8sR0FBZTt3QkFDMUIsV0FBVyxFQUFFLFVBQVUsRUFBRSxXQUFXO3dCQUNwQyxJQUFJLEVBQUUsU0FBUzt3QkFDZixPQUFPO3dCQUNQLFVBQVUsRUFBRSxVQUFVLEVBQUUsVUFBVTt3QkFDbEMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxXQUFXLEVBQWdCO3dCQUMxQyxJQUFJLEVBQUUsSUFBSTt3QkFDVixJQUFJLEVBQUUsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFXO3dCQUNqRSxjQUFjO3dCQUNkLGNBQWMsRUFBRSxVQUFVLEVBQUUsY0FBYzt3QkFDMUMsV0FBVzt3QkFDWCxZQUFZLEVBQUUsVUFBVSxFQUFFLE9BQU87d0JBQ2pDLHlEQUF5RDt3QkFDekQsV0FBVyxFQUFFLElBQUk7cUJBQ2xCLENBQUM7b0JBQ0Ysb0JBQVEsQ0FBQyxJQUFJLENBQUMsT0FBYyxDQUFDLENBQUM7b0JBRTlCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQy9DLENBQUMsQ0FBQzthQUNIO1FBQ0gsQ0FBQztLQUNGLENBQ0ssQ0FBQztBQUNYLENBQUM7QUF1RlksUUFBQSxnQkFBZ0IsR0FBcUI7SUFDaEQsUUFBUSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDcEIsTUFBTSxXQUFXLEdBQUcsSUFBQSxrQ0FBc0IsR0FBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFDO1NBQ2pFO1FBQ0QsT0FBTyxJQUFBLHNDQUFtQixFQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFO1lBQzNELGVBQWUsRUFBRSxJQUFJO1lBQ3JCLGNBQWMsRUFBRSxPQUFPLEVBQUUsZUFBZSxJQUFJLEtBQUs7WUFDakQsSUFBSSxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUk7WUFDMUMsT0FBTyxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQzNDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGl0dHkgZnJvbSBcIml0dHktcm91dGVyXCI7XG5pbXBvcnQgdHlwZSBvcGVuYXBpIGZyb20gXCJvcGVuYXBpMy10c1wiO1xuaW1wb3J0IHR5cGUgeyBGdW5jdGlvblJ1bnRpbWVQcm9wcyB9IGZyb20gXCIuLi9mdW5jdGlvbi1wcm9wcy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBIdHRwTWV0aG9kIH0gZnJvbSBcIi4uL2h0dHAtbWV0aG9kLmpzXCI7XG5pbXBvcnQgeyBjb21tYW5kcywgZ2V0RW52aXJvbm1lbnRNYW5pZmVzdCB9IGZyb20gXCIuLi9pbnRlcm5hbC9nbG9iYWwuanNcIjtcbmltcG9ydCB7IGdlbmVyYXRlT3BlbkFQSVNwZWMgfSBmcm9tIFwiLi4vaW50ZXJuYWwvb3Blbi1hcGktc3BlYy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBTb3VyY2VMb2NhdGlvbiB9IGZyb20gXCIuLi9pbnRlcm5hbC9zZXJ2aWNlLXNwZWMuanNcIjtcbmltcG9ydCB7XG4gIEFueUNvbW1hbmQsXG4gIENvbW1hbmQsXG4gIENvbW1hbmRDb250ZXh0LFxuICBDb21tYW5kSGFuZGxlcixcbiAgQ29tbWFuZE9wdGlvbnMsXG4gIENvbW1hbmRPdXRwdXRPcHRpb25zLFxuICBjb21tYW5kLFxuICBwYXJzZUNvbW1hbmRBcmdzLFxufSBmcm9tIFwiLi9jb21tYW5kLmpzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIE1pZGRsZXdhcmUsXG4gIE1pZGRsZXdhcmVJbnB1dCxcbiAgTWlkZGxld2FyZU91dHB1dCxcbn0gZnJvbSBcIi4vbWlkZGxld2FyZS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBIdHRwUmVxdWVzdCwgSHR0cFJlc3BvbnNlIH0gZnJvbSBcIi4vcmVxdWVzdC1yZXNwb25zZS5qc1wiO1xuXG5jb25zdCByb3V0ZXIgPSBpdHR5LlJvdXRlcigpIGFzIGFueSBhcyBIdHRwUm91dGVyPENvbW1hbmRDb250ZXh0PjtcblxuLyoqXG4gKiBUaGlzIFByb3h5IGludGVyY2VwdHMgdGhlIG1ldGhvZCAgYmVpbmcgY2FsbGVkLCBlLmcuIGBnZXRgLCBgcG9zdGAsIGV0Yy5cbiAqIGFuZCBpbmNsdWRlcyB0aGF0IGluZm9ybWF0aW9uIGluIHRoZSBjcmVhdGVkIHtAbGluayBIdHRwUm91dGV9IG9iamVjdC4gVGhpc1xuICogaW5mb3JtYXRpb24gaXMgdGhlbiBwaWNrZWQgdXAgZHVyaW5nIGluZmVyIHNvIHdlIGtub3cgdGhlIEhUVFAgbWV0aG9kXG4gKiBmb3IgZWFjaCByb3V0ZS5cbiAqXG4gKiBJdCBhbHNvIGluY2x1ZGVzIGBzb3VyY2VMb2NhdGlvbmAgKGluamVjdGVkIGJ5IHRoZSBjb21waWxlciksIGBwYXRoYCwgYW5kXG4gKiBhbnkgYHJ1bnRpbWVQcm9wc2AgcGFzc2VkIGluIGJ5IHRoZSB1c2VyLlxuICpcbiAqIEBzZWUgSHR0cFJvdXRlIGZvciBhbGwgdGhlIG1ldGFkYXRhIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHJvdXRlXG4gKi9cbmV4cG9ydCBjb25zdCBhcGk6IEh0dHBSb3V0ZXI8Q29tbWFuZENvbnRleHQ+ID0gY3JlYXRlUm91dGVyKFtdKTtcblxuZnVuY3Rpb24gY3JlYXRlUm91dGVyPENvbnRleHQgZXh0ZW5kcyBDb21tYW5kQ29udGV4dD4oXG4gIG1pZGRsZXdhcmVzPzogTWlkZGxld2FyZTxhbnksIGFueT5bXVxuKTogSHR0cFJvdXRlcjxDb250ZXh0PiB7XG4gIHJldHVybiBuZXcgUHJveHkoXG4gICAge30sXG4gICAge1xuICAgICAgZ2V0OiAoXywgbWV0aG9kOiBrZXlvZiB0eXBlb2Ygcm91dGVyKSA9PiB7XG4gICAgICAgIGlmIChtZXRob2QgPT09IFwicm91dGVzXCIgfHwgbWV0aG9kID09PSBcImhhbmRsZVwiKSB7XG4gICAgICAgICAgcmV0dXJuIHJvdXRlclttZXRob2RdO1xuICAgICAgICB9IGVsc2UgaWYgKG1ldGhvZCA9PT0gXCJ1c2VcIikge1xuICAgICAgICAgIHJldHVybiAobWlkZGxld2FyZTogTWlkZGxld2FyZTxhbnksIGFueT4pID0+XG4gICAgICAgICAgICBjcmVhdGVSb3V0ZXIoWy4uLihtaWRkbGV3YXJlcyA/PyBbXSksIG1pZGRsZXdhcmVdKTtcbiAgICAgICAgfSBlbHNlIGlmIChtZXRob2QgPT09IFwiY29tbWFuZFwiKSB7XG4gICAgICAgICAgcmV0dXJuICguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgW3NvdXJjZUxvY2F0aW9uLCBuYW1lLCBvcHRpb25zLCBoYW5kbGVyXSA9XG4gICAgICAgICAgICAgIHBhcnNlQ29tbWFuZEFyZ3MoYXJncyk7XG4gICAgICAgICAgICByZXR1cm4gKGNvbW1hbmQgYXMgYW55KShcbiAgICAgICAgICAgICAgc291cmNlTG9jYXRpb24sXG4gICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi4ob3B0aW9ucyA/PyB7fSksXG4gICAgICAgICAgICAgICAgbWlkZGxld2FyZXMsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGhhbmRsZXJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgLi4uYXJnczpcbiAgICAgICAgICAgICAgfCBbU291cmNlTG9jYXRpb24sIHN0cmluZywgSHR0cEhhbmRsZXJbXV1cbiAgICAgICAgICAgICAgfCBbU291cmNlTG9jYXRpb24sIHN0cmluZywgQXBpUm91dGVQcm9wcywgSHR0cEhhbmRsZXJbXV1cbiAgICAgICAgICAgICAgfCBbc3RyaW5nLCBIdHRwSGFuZGxlcltdXVxuICAgICAgICAgICAgICB8IFtzdHJpbmcsIEFwaVJvdXRlUHJvcHMsIEh0dHBIYW5kbGVyW11dXG4gICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBbc291cmNlTG9jYXRpb24sIHBhdGgsIHJvdXRlUHJvcHMsIGhhbmRsZXJdID1cbiAgICAgICAgICAgICAgdHlwZW9mIGFyZ3NbMF0gPT09IFwib2JqZWN0XCJcbiAgICAgICAgICAgICAgICA/IHR5cGVvZiBhcmdzWzNdID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICAgID8gKGFyZ3MgYXMgYW55IGFzIFtcbiAgICAgICAgICAgICAgICAgICAgICBTb3VyY2VMb2NhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgQXBpUm91dGVQcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgICBIdHRwSGFuZGxlclxuICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgOiBbXG4gICAgICAgICAgICAgICAgICAgICAgYXJnc1swXSBhcyBTb3VyY2VMb2NhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICBhcmdzWzFdIGFzIHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgYXJnc1syXSBhcyBIdHRwSGFuZGxlcixcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIDogdHlwZW9mIGFyZ3NbMl0gPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgID8gW1xuICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgIGFyZ3NbMF0sXG4gICAgICAgICAgICAgICAgICAgIGFyZ3NbMV0gYXMgQXBpUm91dGVQcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgYXJnc1syXSBhcyBIdHRwSGFuZGxlcixcbiAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICA6IFt1bmRlZmluZWQsIGFyZ3NbMF0sIHVuZGVmaW5lZCwgYXJnc1sxXSBhcyBIdHRwSGFuZGxlcl07XG4gICAgICAgICAgICBjb25zdCBjb21tYW5kOiBBbnlDb21tYW5kID0ge1xuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogcm91dGVQcm9wcz8uZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgIGtpbmQ6IFwiQ29tbWFuZFwiLFxuICAgICAgICAgICAgICBoYW5kbGVyLFxuICAgICAgICAgICAgICBtZW1vcnlTaXplOiByb3V0ZVByb3BzPy5tZW1vcnlTaXplLFxuICAgICAgICAgICAgICBtZXRob2Q6IG1ldGhvZC50b1VwcGVyQ2FzZSgpIGFzIEh0dHBNZXRob2QsXG4gICAgICAgICAgICAgIG5hbWU6IHBhdGgsXG4gICAgICAgICAgICAgIHBhdGg6ICh0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IGFyZ3NbMF0gOiBhcmdzWzFdKSBhcyBzdHJpbmcsXG4gICAgICAgICAgICAgIHNvdXJjZUxvY2F0aW9uLFxuICAgICAgICAgICAgICBoYW5kbGVyVGltZW91dDogcm91dGVQcm9wcz8uaGFuZGxlclRpbWVvdXQsXG4gICAgICAgICAgICAgIG1pZGRsZXdhcmVzLFxuICAgICAgICAgICAgICBvdGhlck91dHB1dHM6IHJvdXRlUHJvcHM/Lm91dHB1dHMsXG4gICAgICAgICAgICAgIC8vIHdlIHdhbnQgdGhlIGJhc2UgSFRUUCByZXF1ZXN0LCBub3QgdGhlIHRyYW5zZm9ybWVkIG9uZVxuICAgICAgICAgICAgICBwYXNzVGhyb3VnaDogdHJ1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb21tYW5kcy5wdXNoKGNvbW1hbmQgYXMgYW55KTtcblxuICAgICAgICAgICAgcmV0dXJuIHJvdXRlclttZXRob2RdKHBhdGgsIGNvbW1hbmQuaGFuZGxlcik7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gICkgYXMgYW55O1xufVxuXG5leHBvcnQgdHlwZSBSb3V0ZVJ1bnRpbWVQcm9wcyA9IEZ1bmN0aW9uUnVudGltZVByb3BzO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaVJvdXRlUHJvcHMgZXh0ZW5kcyBSb3V0ZVJ1bnRpbWVQcm9wcyB7XG4gIC8qKlxuICAgKiBEZXNjcmlwdGlvbiBvZiB0aGUgcm91dGUuXG4gICAqXG4gICAqIFVzZWQgdG8gZ2VuZXJhdGUgdGhlIHtAbGluayBBcGlTcGVjaWZpY2F0aW9ufS5cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogT3V0cHV0cyBvZiB0aGUgcm91dGUuXG4gICAqXG4gICAqIFVzZWQgdG8gZ2VuZXJhdGUgdGhlIHtAbGluayBBcGlTcGVjaWZpY2F0aW9ufS5cbiAgICovXG4gIG91dHB1dHM/OiBDb21tYW5kT3V0cHV0T3B0aW9uczxhbnk+W107XG59XG5cbmV4cG9ydCB0eXBlIEh0dHBIYW5kbGVyPENvbnRleHQgZXh0ZW5kcyBDb21tYW5kQ29udGV4dCA9IENvbW1hbmRDb250ZXh0PiA9IChcbiAgcmVxdWVzdDogSHR0cFJlcXVlc3QsXG4gIGNvbnRleHQ6IENvbnRleHRcbikgPT4gSHR0cFJlc3BvbnNlIHwgUHJvbWlzZTxIdHRwUmVzcG9uc2U+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBSb3V0ZSB7XG4gIHBhdGg6IHN0cmluZztcbiAgaGFuZGxlcnM6IEh0dHBIYW5kbGVyPGFueT5bXTtcbiAgbWV0aG9kOiBIdHRwTWV0aG9kO1xuICBwcm9wcz86IEFwaVJvdXRlUHJvcHM7XG4gIC8qKlxuICAgKiBPbmx5IGF2YWlsYWJsZSBkdXJpbmcgZXZlbnR1YWwtaW5mZXJcbiAgICovXG4gIHNvdXJjZUxvY2F0aW9uPzogU291cmNlTG9jYXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cFJvdXRlRmFjdG9yeTxDb250ZXh0IGV4dGVuZHMgQ29tbWFuZENvbnRleHQ+IHtcbiAgKFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBwcm9wczogQXBpUm91dGVQcm9wcyxcbiAgICBoYW5kbGVyczogSHR0cEhhbmRsZXI8Q29udGV4dD5cbiAgKTogSHR0cFJvdXRlcjxDb250ZXh0PjtcbiAgKHBhdGg6IHN0cmluZywgaGFuZGxlcnM6IEh0dHBIYW5kbGVyPENvbnRleHQ+KTogSHR0cFJvdXRlcjxDb250ZXh0Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIdHRwUm91dGVyPENvbnRleHQgZXh0ZW5kcyBDb21tYW5kQ29udGV4dD4ge1xuICBoYW5kbGU6IChyZXF1ZXN0OiBIdHRwUmVxdWVzdCwgLi4uZXh0cmE6IGFueSkgPT4gUHJvbWlzZTxIdHRwUmVzcG9uc2U+O1xuICByb3V0ZXM6IEh0dHBSb3V0ZUVudHJ5W107XG4gIGFsbDogSHR0cFJvdXRlRmFjdG9yeTxDb250ZXh0PjtcbiAgZ2V0OiBIdHRwUm91dGVGYWN0b3J5PENvbnRleHQ+O1xuICBoZWFkOiBIdHRwUm91dGVGYWN0b3J5PENvbnRleHQ+O1xuICBwb3N0OiBIdHRwUm91dGVGYWN0b3J5PENvbnRleHQ+O1xuICBwdXQ6IEh0dHBSb3V0ZUZhY3Rvcnk8Q29udGV4dD47XG4gIGRlbGV0ZTogSHR0cFJvdXRlRmFjdG9yeTxDb250ZXh0PjtcbiAgY29ubmVjdDogSHR0cFJvdXRlRmFjdG9yeTxDb250ZXh0PjtcbiAgb3B0aW9uczogSHR0cFJvdXRlRmFjdG9yeTxDb250ZXh0PjtcbiAgdHJhY2U6IEh0dHBSb3V0ZUZhY3Rvcnk8Q29udGV4dD47XG4gIHBhdGNoOiBIdHRwUm91dGVGYWN0b3J5PENvbnRleHQ+O1xuICB1c2U8TmV4dENvbnRleHQgZXh0ZW5kcyBDb21tYW5kQ29udGV4dD4oXG4gICAgbWlkZGxld2FyZTogKFxuICAgICAgaW5wdXQ6IE1pZGRsZXdhcmVJbnB1dDxDb250ZXh0PlxuICAgICkgPT4gUHJvbWlzZTxNaWRkbGV3YXJlT3V0cHV0PE5leHRDb250ZXh0Pj4gfCBNaWRkbGV3YXJlT3V0cHV0PE5leHRDb250ZXh0PlxuICApOiBIdHRwUm91dGVyPE5leHRDb250ZXh0PjtcblxuICBjb21tYW5kPE5hbWUgZXh0ZW5kcyBzdHJpbmcsIElucHV0ID0gdW5kZWZpbmVkLCBPdXRwdXQgPSB2b2lkPihcbiAgICBuYW1lOiBOYW1lLFxuICAgIGhhbmRsZXI6IENvbW1hbmRIYW5kbGVyPElucHV0LCBPdXRwdXQsIENvbnRleHQ+XG4gICk6IENvbW1hbmQ8TmFtZSwgSW5wdXQsIE91dHB1dCwgQ29udGV4dCwgdW5kZWZpbmVkLCB1bmRlZmluZWQ+O1xuXG4gIGNvbW1hbmQ8XG4gICAgTmFtZSBleHRlbmRzIHN0cmluZyxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUGF0aCBleHRlbmRzIHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBNZXRob2QgZXh0ZW5kcyBIdHRwTWV0aG9kIHwgdW5kZWZpbmVkXG4gID4oXG4gICAgbmFtZTogTmFtZSxcbiAgICBvcHRpb25zOiBDb21tYW5kT3B0aW9uczxJbnB1dCwgT3V0cHV0LCBQYXRoLCBNZXRob2Q+LFxuICAgIGhhbmRsZXI6IENvbW1hbmRIYW5kbGVyPElucHV0LCBPdXRwdXQsIENvbnRleHQ+XG4gICk6IENvbW1hbmQ8TmFtZSwgSW5wdXQsIE91dHB1dCwgQ29udGV4dCwgUGF0aCwgTWV0aG9kPjtcbn1cblxuZXhwb3J0IHR5cGUgSHR0cFJvdXRlRW50cnkgPSBbc3RyaW5nLCBSZWdFeHAsIEh0dHBIYW5kbGVyXTtcblxuZXhwb3J0IGludGVyZmFjZSBBcGlTcGVjaWZpY2F0aW9uIHtcbiAgZ2VuZXJhdGU6IChvcHRpb25zPzogeyBpbmNsdWRlUnBjUGF0aHM/OiBib29sZWFuIH0pID0+IG9wZW5hcGkuT3BlbkFQSU9iamVjdDtcbn1cblxuZXhwb3J0IGNvbnN0IEFwaVNwZWNpZmljYXRpb246IEFwaVNwZWNpZmljYXRpb24gPSB7XG4gIGdlbmVyYXRlOiAob3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IGVudk1hbmlmZXN0ID0gZ2V0RW52aXJvbm1lbnRNYW5pZmVzdCgpO1xuICAgIGlmICghZW52TWFuaWZlc3QpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkVudmlyb25tZW50TWFuaWZlc3QgaGFzIG5vdCBiZWVuIHJlZ2lzdGVyZWQuXCIpO1xuICAgIH1cbiAgICByZXR1cm4gZ2VuZXJhdGVPcGVuQVBJU3BlYyhlbnZNYW5pZmVzdC5zZXJ2aWNlU3BlYy5jb21tYW5kcywge1xuICAgICAgY3JlYXRlUmVzdFBhdGhzOiB0cnVlLFxuICAgICAgY3JlYXRlUnBjUGF0aHM6IG9wdGlvbnM/LmluY2x1ZGVScGNQYXRocyA/PyBmYWxzZSxcbiAgICAgIGluZm86IGVudk1hbmlmZXN0LnNlcnZpY2VTcGVjLm9wZW5BcGkuaW5mbyxcbiAgICAgIHNlcnZlcnM6IFt7IHVybDogZW52TWFuaWZlc3Quc2VydmljZVVybCB9XSxcbiAgICB9KTtcbiAgfSxcbn07XG4iXX0=

@@ -1,2 +0,2 @@

import type z from "zod";
import type { z } from "zod";
import type { FunctionRuntimeProps } from "../function-props.js";

@@ -21,6 +21,10 @@ import type { HttpMethod } from "../http-method.js";

export type AnyCommand = Command<string, any, any, any, any, HttpMethod | undefined>;
export interface Command<Name extends string = string, Input = undefined, Output = void, Context extends CommandContext = CommandContext, Path extends string | undefined = undefined, Method extends HttpMethod | undefined = undefined> extends Omit<CommandSpec<Name, Input, Path, Method>, "input" | "output"> {
export interface Command<Name extends string = string, Input = undefined, Output = void, Context extends CommandContext = CommandContext, Path extends string | undefined = undefined, Method extends HttpMethod | undefined = undefined> extends Omit<CommandSpec<Name, Input, Path, Method>, "input" | "outputs" | "output"> {
kind: "Command";
input?: z.ZodType<Input>;
output?: z.ZodType<Awaited<Output>>;
output?: CommandOutputOptions<Output>;
/**
* Other possible outputs of the command, for example, errors.
*/
otherOutputs?: CommandOutputOptions<any>[];
handler: CommandHandler<Input, Output, Context>;

@@ -94,11 +98,30 @@ middlewares?: Middleware<any, any>[];

}
export type CommandHandler<T = undefined, U = void, Context extends CommandContext = CommandContext> = (input: T, context: Context) => Promise<U> | Awaited<U>;
export type CommandHandler<T = undefined, U = void, Context extends CommandContext = CommandContext> = (input: T, context: Context) => Promise<U> | U;
export type CommandInput<C extends AnyCommand> = C extends Command<any, infer Input, any, any, any, any> ? Input : never;
export interface CommandOutputOptions<Output> {
/**
* @default - {@link z.any}
*/
schema?: z.ZodType<Output>;
description: string;
restStatusCode: number;
}
export type CommandOutput<Output> = z.ZodType<Output> | CommandOutputOptions<Output>;
export interface CommandOptions<Input, Output, Path extends string | undefined, Method extends HttpMethod | undefined> extends FunctionRuntimeProps, Pick<CommandSpec<string, Input, Path, Method>, "path" | "method" | "summary" | "description" | "params" | "validate"> {
input?: z.ZodType<Input>;
output?: z.ZodType<Output>;
/**
* The output schema of the command.
*
* When a description of the output can is provided, it will be used the {@link ApiSpecification}.
*
* When a rest status is provided and the command supports a rest path, that status will be used to return a successful result.
* Note: RPC commands will always return 200.
*
* @default 200 {@link z.any} OK
*/
output?: CommandOutput<Output>;
}
export declare function command<Name extends string, Input = undefined, Output = void, Context extends CommandContext = CommandContext>(name: Name, handler: CommandHandler<Input, Output, Context>): Command<Name, Input, Output, Context, undefined, undefined>;
export declare function command<Name extends string, Input = undefined, Output = void, Context extends CommandContext = CommandContext, Path extends string | undefined = undefined, Method extends HttpMethod | undefined = undefined>(name: Name, options: CommandOptions<Input, Output, Path, Method>, handler: CommandHandler<Input, Output, Context>): Command<Name, Input, Output, Context, Path, Method>;
export declare function parseCommandArgs<Input = undefined, Output = void, Context extends CommandContext = CommandContext>(args: any[]): readonly [import("../internal/service-spec.js").SourceLocation | undefined, any, any, CommandHandler<Input, Output, Context> | undefined];
export declare function parseCommandArgs<Input = undefined, Output = void, Context extends CommandContext = CommandContext>(args: any[]): readonly [import("../internal/service-spec.js").SourceLocation | undefined, any, CommandOptions<Input, Output, any, any> | undefined, CommandHandler<Input, Output, Context>];
//# sourceMappingURL=command.d.ts.map

@@ -27,2 +27,7 @@ "use strict";

...options,
output: options?.output
? "restStatusCode" in options.output
? options.output
: { schema: options.output, description: "OK", restStatusCode: 200 }
: { schema: undefined, description: "OK", restStatusCode: 200 },
};

@@ -44,2 +49,2 @@ global_js_1.commands.push(command);

exports.parseCommandArgs = parseCommandArgs;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9odHRwL2NvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EscURBQWlEO0FBQ2pELGlFQUE0RTtBQUs1RSxTQUFnQix5QkFBeUIsQ0FFdkMsT0FBVTtJQUNWLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO0FBQzVCLENBQUM7QUFKRCw4REFJQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixjQUFjLENBQzVCLE9BQStDO0lBRS9DLE9BQU8sTUFDTCx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQ2pFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUM5RCxDQUFDO0FBTkQsd0NBTUM7QUF3S0QsU0FBZ0IsT0FBTyxDQUtyQixHQUFHLElBQVc7SUFDZCxNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEUsTUFBTSxPQUFPLEdBQW9EO1FBQy9ELElBQUksRUFBRSxTQUFTO1FBQ2YsSUFBSTtRQUNKLE9BQU87UUFDUCxjQUFjO1FBQ2QsR0FBRyxPQUFPO0tBQ1gsQ0FBQztJQUNGLG9CQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZCLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFoQkQsMEJBZ0JDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBSTlCLElBQVc7SUFDWCxPQUFPO1FBQ0wsK0dBQStHO1FBQy9HLDhGQUE4RjtRQUM5RixJQUFJLENBQUMsSUFBSSxDQUFDLGtDQUFnQixDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQztRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxJQUFBLGtDQUFnQixFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFVBQVUsQ0FFM0I7S0FDTCxDQUFDO0FBQ2IsQ0FBQztBQWZELDRDQWVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeiBmcm9tIFwiem9kXCI7XG5pbXBvcnQgdHlwZSB7IEZ1bmN0aW9uUnVudGltZVByb3BzIH0gZnJvbSBcIi4uL2Z1bmN0aW9uLXByb3BzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEh0dHBNZXRob2QgfSBmcm9tIFwiLi4vaHR0cC1tZXRob2QuanNcIjtcbmltcG9ydCB7IGNvbW1hbmRzIH0gZnJvbSBcIi4uL2ludGVybmFsL2dsb2JhbC5qc1wiO1xuaW1wb3J0IHsgQ29tbWFuZFNwZWMsIGlzU291cmNlTG9jYXRpb24gfSBmcm9tIFwiLi4vaW50ZXJuYWwvc2VydmljZS1zcGVjLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFNlcnZpY2VDb250ZXh0IH0gZnJvbSBcIi4uL3NlcnZpY2UuanNcIjtcbmltcG9ydCB0eXBlIHsgTWlkZGxld2FyZSB9IGZyb20gXCIuL21pZGRsZXdhcmUuanNcIjtcbmltcG9ydCB0eXBlIHsgUGFyc2VQYXRoIH0gZnJvbSBcIi4vcGF0aC5qc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNEZWZhdWx0TmFtZXNwYWNlQ29tbWFuZDxcbiAgQyBleHRlbmRzIFBpY2s8QW55Q29tbWFuZCwgXCJuYW1lXCIgfCBcIm5hbWVzcGFjZVwiPlxuPihjb21tYW5kOiBDKTogY29tbWFuZCBpcyBDICYgeyBuYW1lc3BhY2U6IHVuZGVmaW5lZCB9IHtcbiAgcmV0dXJuICFjb21tYW5kLm5hbWVzcGFjZTtcbn1cblxuLyoqXG4gKiBGb3JtYXRzIHRoZSBSUEMgUmVzdCBwYXRoIGZvciBhIGNvbW1hbmQuXG4gKlxuICogcnBjWy9uYW1lc3BhY2VdL25hbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbW1hbmRScGNQYXRoKFxuICBjb21tYW5kOiBQaWNrPEFueUNvbW1hbmQsIFwibmFtZVwiIHwgXCJuYW1lc3BhY2VcIj5cbikge1xuICByZXR1cm4gYHJwYyR7XG4gICAgaXNEZWZhdWx0TmFtZXNwYWNlQ29tbWFuZChjb21tYW5kKSA/IFwiXCIgOiBgLyR7Y29tbWFuZC5uYW1lc3BhY2V9YFxuICB9JHtjb21tYW5kLm5hbWUuc3RhcnRzV2l0aChcIi9cIikgPyBcIlwiIDogXCIvXCJ9JHtjb21tYW5kLm5hbWV9YDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kQ29udGV4dCB7XG4gIHNlcnZpY2U6IFNlcnZpY2VDb250ZXh0O1xufVxuXG5leHBvcnQgdHlwZSBBbnlDb21tYW5kID0gQ29tbWFuZDxcbiAgc3RyaW5nLFxuICBhbnksXG4gIGFueSxcbiAgYW55LFxuICBhbnksXG4gIEh0dHBNZXRob2QgfCB1bmRlZmluZWRcbj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWFuZDxcbiAgTmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbiAgSW5wdXQgPSB1bmRlZmluZWQsXG4gIE91dHB1dCA9IHZvaWQsXG4gIENvbnRleHQgZXh0ZW5kcyBDb21tYW5kQ29udGV4dCA9IENvbW1hbmRDb250ZXh0LFxuICBQYXRoIGV4dGVuZHMgc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICBNZXRob2QgZXh0ZW5kcyBIdHRwTWV0aG9kIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4+IGV4dGVuZHMgT21pdDxDb21tYW5kU3BlYzxOYW1lLCBJbnB1dCwgUGF0aCwgTWV0aG9kPiwgXCJpbnB1dFwiIHwgXCJvdXRwdXRcIj4ge1xuICBraW5kOiBcIkNvbW1hbmRcIjtcbiAgaW5wdXQ/OiB6LlpvZFR5cGU8SW5wdXQ+O1xuICBvdXRwdXQ/OiB6LlpvZFR5cGU8QXdhaXRlZDxPdXRwdXQ+PjtcbiAgaGFuZGxlcjogQ29tbWFuZEhhbmRsZXI8SW5wdXQsIE91dHB1dCwgQ29udGV4dD47XG4gIG1pZGRsZXdhcmVzPzogTWlkZGxld2FyZTxhbnksIGFueT5bXTtcbn1cblxuZXhwb3J0IHR5cGUgUmVzdE9wdGlvbnM8XG4gIElucHV0LFxuICBQYXRoIGV4dGVuZHMgc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBNZXRob2QgZXh0ZW5kcyBIdHRwTWV0aG9kIHwgdW5kZWZpbmVkXG4+ID0ge1xuICBwYXRoPzogUGF0aDtcbiAgbWV0aG9kPzogTWV0aG9kO1xuICAvKipcbiAgICogTWFwcyBwYXJhbWV0ZXJzIGZyb20gZGlmZmVyZW50IHNvdXJjZXMgdG8gYSBzaW5nbGUgaW5wdXQgb2JqZWN0LlxuICAgKlxuICAgKiBgYGB0c1xuICAgKiAvLyBQT1NUIC9wcm9wZXJ0aWVzLzp1c2VySWQ/ZXhwZWN0ZWRWZXJzaW9uPTFcbiAgICogLy8geyBhZ2U6IDM1IH1cbiAgICogY29tbWFuZChcIi9wcm9wZXJ0aWVzLzp1c2VySWRcIiwge1xuICAgKiAgICBwYXJhbXM6IHtcbiAgICogICAgICAgZXhwZWN0ZWRWZXJzaW9uOiBcInF1ZXJ5XCIsXG4gICAqICAgICAgIGNvbnRlbnRUeXBlOiB7IGluOiBcImhlYWRlcnNcIiwgbmFtZTogXCJjb250ZW50LXR5cGVcIiB9LFxuICAgKiAgICB9LFxuICAgKiAgICBpbnB1dDogei5vYmplY3Qoe1xuICAgKiAgICAgICB1c2VySWQ6IHouc3RyaW5nKCksXG4gICAqICAgICAgIGV4cGVjdGVkVmVyc2lvbjogei5udW1iZXIoKS5vcHRpb25hbCgpLFxuICAgKiAgICAgICBjb250ZW50VHlwZTogei5zdHJpbmcoKSxcbiAgICogICAgICAgYWdlOiB6Lm51bWJlcigpXG4gICAqICAgIH0pLFxuICAgKiB9LCAoe3VzZXJJZH0pID0+IHsgY29uc29sZS5sb2codXNlcklkKTsgfSk7XG4gICAqIGBgYFxuICAgKlxuICAgKiB1c2VySWQgLSBhc3N1bWVkIHRvIGNvbWUgZnJvbSB0aGUgcGF0aFxuICAgKiBleHBlY3RlZFZlcnNpb24gLSBleHBsaWNpdGx5IG1hcHBlZCBmcm9tIHRoZSBxdWVyeSBzdHJpbmdcbiAgICogY29udGVudFR5cGUgLSBleHBsaWNpdGx5IG1hcHBlZCBmcm9tIHRoZSBoZWFkZXJzIGFuZCByZW5hbWVkXG4gICAqIGFnZSAtIGFzc3VtZWQgdG8gY29tZSBmcm9tIHRoZSBib2R5XG4gICAqXG4gICAqIERlZmF1bHQgbG9jYXRpb246XG4gICAqICAgIEdFVC9ERUxFVEUvSEVBRC9PUFRJT05TIC0gcXVlcnlcbiAgICogICAgUE9TVC9QVVQvUEFUQ0ggLSBib2R5XG4gICAqL1xuICBwYXJhbXM/OiBSZXN0UGFyYW1zPElucHV0LCBQYXRoLCBNZXRob2Q+O1xufTtcblxuZXhwb3J0IHR5cGUgUmVzdFBhcmFtczxcbiAgSW5wdXQsXG4gIFBhdGggZXh0ZW5kcyBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIE1ldGhvZCBleHRlbmRzIEh0dHBNZXRob2QgfCB1bmRlZmluZWRcbj4gPSB7XG4gIFtrIGluIGtleW9mIFBhcnRpYWw8SW5wdXQ+XTogayBleHRlbmRzIFBhcnNlUGF0aDxFeGNsdWRlPFBhdGgsIHVuZGVmaW5lZD4+XG4gICAgPyBcInBhdGhcIlxuICAgIDogTWV0aG9kIGV4dGVuZHMgXCJHRVRcIiB8IFwiREVMRVRFXCIgfCBcIkhFQURcIiB8IFwiT1BUSU9OU1wiXG4gICAgPyBSZXN0UGFyYW08XCJxdWVyeVwiIHwgXCJoZWFkZXJcIiB8IFwicGF0aFwiPlxuICAgIDogUmVzdFBhcmFtO1xufTtcblxuZXhwb3J0IHR5cGUgUmVzdFBhcmFtTG9jYXRpb24gPSBcInF1ZXJ5XCIgfCBcImJvZHlcIiB8IFwiaGVhZGVyXCIgfCBcInBhdGhcIjtcblxuZXhwb3J0IHR5cGUgUmVzdFBhcmFtPEluIGV4dGVuZHMgUmVzdFBhcmFtTG9jYXRpb24gPSBSZXN0UGFyYW1Mb2NhdGlvbj4gPVxuICB8IEluXG4gIHwge1xuICAgICAgaW46IEV4Y2x1ZGU8SW4sIFwicGF0aFwiPjtcbiAgICAgIC8qKlxuICAgICAgICogVGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlciBpbiB0aGUgc291cmNlIGxvY2F0aW9uLlxuICAgICAgICpcbiAgICAgICAqIEZvciBleGFtcGxlLCBpZiB0aGUgcXVlcnkgc3RyaW5nIHBhcmFtZXRlciBpcyBgVXNlcklEYCwgYnV0IHRoZSBpbnB1dCBzY2hlbWEgdXNlcyBgdXNlcklkYC5cbiAgICAgICAqXG4gICAgICAgKiBgYGB0c1xuICAgICAgICogLy8gL3Byb3BlcnRpZXM/VXNlcklEPS4uLlxuICAgICAgICogY29tbWFuZChcIi9wcm9wZXJ0aWVzXCIsIHtcbiAgICAgICAqICAgIHBhcmFtczoge1xuICAgICAgICogICAgICAgdXNlcklkOiB7XG4gICAgICAgKiAgICAgICAgICBpbjogXCJxdWVyeVwiLFxuICAgICAgICogICAgICAgICAgbmFtZTogXCJVc2VySURcIlxuICAgICAgICogICAgICAgfSxcbiAgICAgICAqICAgIH0sXG4gICAgICAgKiAgICBpbnB1dDogei5vYmplY3Qoe1xuICAgICAgICogICAgICAgdXNlcklkOiB6LnN0cmluZygpLm9wdGlvbmFsKClcbiAgICAgICAqICAgIH0pLFxuICAgICAgICogfSwgKHt1c2VySWR9KSA9PiB7IGNvbnNvbGUubG9nKHVzZXJJZCk7IH0pO1xuICAgICAgICogYGBgXG4gICAgICAgKi9cbiAgICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgfTtcblxuZXhwb3J0IGludGVyZmFjZSBIZWFkZXJzIHtcbiAgW2hlYWRlck5hbWU6IHN0cmluZ106IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQ29tbWFuZEhhbmRsZXI8XG4gIFQgPSB1bmRlZmluZWQsXG4gIFUgPSB2b2lkLFxuICBDb250ZXh0IGV4dGVuZHMgQ29tbWFuZENvbnRleHQgPSBDb21tYW5kQ29udGV4dFxuPiA9IChpbnB1dDogVCwgY29udGV4dDogQ29udGV4dCkgPT4gUHJvbWlzZTxVPiB8IEF3YWl0ZWQ8VT47XG5cbmV4cG9ydCB0eXBlIENvbW1hbmRJbnB1dDxDIGV4dGVuZHMgQW55Q29tbWFuZD4gPSBDIGV4dGVuZHMgQ29tbWFuZDxcbiAgYW55LFxuICBpbmZlciBJbnB1dCxcbiAgYW55LFxuICBhbnksXG4gIGFueSxcbiAgYW55XG4+XG4gID8gSW5wdXRcbiAgOiBuZXZlcjtcblxuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kT3B0aW9uczxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUGF0aCBleHRlbmRzIHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgTWV0aG9kIGV4dGVuZHMgSHR0cE1ldGhvZCB8IHVuZGVmaW5lZFxuPiBleHRlbmRzIEZ1bmN0aW9uUnVudGltZVByb3BzLFxuICAgIFBpY2s8XG4gICAgICBDb21tYW5kU3BlYzxzdHJpbmcsIElucHV0LCBQYXRoLCBNZXRob2Q+LFxuICAgICAgXCJwYXRoXCIgfCBcIm1ldGhvZFwiIHwgXCJzdW1tYXJ5XCIgfCBcImRlc2NyaXB0aW9uXCIgfCBcInBhcmFtc1wiIHwgXCJ2YWxpZGF0ZVwiXG4gICAgPiB7XG4gIGlucHV0Pzogei5ab2RUeXBlPElucHV0PjtcbiAgb3V0cHV0Pzogei5ab2RUeXBlPE91dHB1dD47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjb21tYW5kPFxuICBOYW1lIGV4dGVuZHMgc3RyaW5nLFxuICBJbnB1dCA9IHVuZGVmaW5lZCxcbiAgT3V0cHV0ID0gdm9pZCxcbiAgQ29udGV4dCBleHRlbmRzIENvbW1hbmRDb250ZXh0ID0gQ29tbWFuZENvbnRleHRcbj4oXG4gIG5hbWU6IE5hbWUsXG4gIGhhbmRsZXI6IENvbW1hbmRIYW5kbGVyPElucHV0LCBPdXRwdXQsIENvbnRleHQ+XG4pOiBDb21tYW5kPE5hbWUsIElucHV0LCBPdXRwdXQsIENvbnRleHQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbW1hbmQ8XG4gIE5hbWUgZXh0ZW5kcyBzdHJpbmcsXG4gIElucHV0ID0gdW5kZWZpbmVkLFxuICBPdXRwdXQgPSB2b2lkLFxuICBDb250ZXh0IGV4dGVuZHMgQ29tbWFuZENvbnRleHQgPSBDb21tYW5kQ29udGV4dCxcbiAgUGF0aCBleHRlbmRzIHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZCxcbiAgTWV0aG9kIGV4dGVuZHMgSHR0cE1ldGhvZCB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZFxuPihcbiAgbmFtZTogTmFtZSxcbiAgb3B0aW9uczogQ29tbWFuZE9wdGlvbnM8SW5wdXQsIE91dHB1dCwgUGF0aCwgTWV0aG9kPixcbiAgaGFuZGxlcjogQ29tbWFuZEhhbmRsZXI8SW5wdXQsIE91dHB1dCwgQ29udGV4dD5cbik6IENvbW1hbmQ8TmFtZSwgSW5wdXQsIE91dHB1dCwgQ29udGV4dCwgUGF0aCwgTWV0aG9kPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGNvbW1hbmQ8XG4gIE5hbWUgZXh0ZW5kcyBzdHJpbmcsXG4gIElucHV0ID0gdW5kZWZpbmVkLFxuICBPdXRwdXQgPSB2b2lkLFxuICBDb250ZXh0IGV4dGVuZHMgQ29tbWFuZENvbnRleHQgPSBDb21tYW5kQ29udGV4dFxuPiguLi5hcmdzOiBhbnlbXSk6IENvbW1hbmQ8TmFtZSwgSW5wdXQsIE91dHB1dCwgQ29udGV4dCwgYW55LCBhbnk+IHtcbiAgY29uc3QgW3NvdXJjZUxvY2F0aW9uLCBuYW1lLCBvcHRpb25zLCBoYW5kbGVyXSA9IHBhcnNlQ29tbWFuZEFyZ3MoYXJncyk7XG4gIGNvbnN0IGNvbW1hbmQ6IENvbW1hbmQ8TmFtZSwgSW5wdXQsIE91dHB1dCwgQ29udGV4dCwgYW55LCBhbnk+ID0ge1xuICAgIGtpbmQ6IFwiQ29tbWFuZFwiLFxuICAgIG5hbWUsXG4gICAgaGFuZGxlcixcbiAgICBzb3VyY2VMb2NhdGlvbixcbiAgICAuLi5vcHRpb25zLFxuICB9O1xuICBjb21tYW5kcy5wdXNoKGNvbW1hbmQpO1xuICByZXR1cm4gY29tbWFuZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlQ29tbWFuZEFyZ3M8XG4gIElucHV0ID0gdW5kZWZpbmVkLFxuICBPdXRwdXQgPSB2b2lkLFxuICBDb250ZXh0IGV4dGVuZHMgQ29tbWFuZENvbnRleHQgPSBDb21tYW5kQ29udGV4dFxuPihhcmdzOiBhbnlbXSkge1xuICByZXR1cm4gW1xuICAgIC8vIFRPRE86IGlzIHRoaXMgNHggc2NhbiB0b28gaW5lZmZpY2llbnQsIG9yIGlzIHRoZSB0cmFkZS1vZmYgYmV0d2VlbiBzaW1wbGljaXR5IGFuZCBwZXJmb3JtYW5jZSB3b3J0aCBpdCBoZXJlP1xuICAgIC8vIGkgdGhpbmsgaXQgd291bGQgYmUgbWFyZ2luYWwgbG9vcGluZyBvdmVyIGEgc21hbGwgYXJyYXkgbXVsdGlwbGUgdGltZXMgYnV0IGkgY291bGQgYmUgd3JvbmdcbiAgICBhcmdzLmZpbmQoaXNTb3VyY2VMb2NhdGlvbiksXG4gICAgYXJncy5maW5kKChhKSA9PiB0eXBlb2YgYSA9PT0gXCJzdHJpbmdcIiksXG4gICAgYXJncy5maW5kKChhKSA9PiB0eXBlb2YgYSA9PT0gXCJvYmplY3RcIiAmJiAhaXNTb3VyY2VMb2NhdGlvbihhKSksXG4gICAgYXJncy5maW5kKChhKSA9PiB0eXBlb2YgYSA9PT0gXCJmdW5jdGlvblwiKSBhc1xuICAgICAgfCBDb21tYW5kSGFuZGxlcjxJbnB1dCwgT3V0cHV0LCBDb250ZXh0PlxuICAgICAgfCB1bmRlZmluZWQsXG4gIF0gYXMgY29uc3Q7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9odHRwL2NvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EscURBQWlEO0FBQ2pELGlFQUE0RTtBQUs1RSxTQUFnQix5QkFBeUIsQ0FFdkMsT0FBVTtJQUNWLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO0FBQzVCLENBQUM7QUFKRCw4REFJQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixjQUFjLENBQzVCLE9BQStDO0lBRS9DLE9BQU8sTUFDTCx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQ2pFLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUM5RCxDQUFDO0FBTkQsd0NBTUM7QUFzTUQsU0FBZ0IsT0FBTyxDQUtyQixHQUFHLElBQVc7SUFDZCxNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsZ0JBQWdCLENBRy9ELElBQUksQ0FBQyxDQUFDO0lBQ1IsTUFBTSxPQUFPLEdBQW9EO1FBQy9ELElBQUksRUFBRSxTQUFTO1FBQ2YsSUFBSTtRQUNKLE9BQU87UUFDUCxjQUFjO1FBQ2QsR0FBRyxPQUFPO1FBQ1YsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNO1lBQ3JCLENBQUMsQ0FBQyxnQkFBZ0IsSUFBSSxPQUFPLENBQUMsTUFBTTtnQkFDbEMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNO2dCQUNoQixDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUU7WUFDdEUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUU7S0FDbEUsQ0FBQztJQUNGLG9CQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZCLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUF4QkQsMEJBd0JDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBSTlCLElBQVc7SUFDWCxPQUFPO1FBQ0wsK0dBQStHO1FBQy9HLDhGQUE4RjtRQUM5RixJQUFJLENBQUMsSUFBSSxDQUFDLGtDQUFnQixDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQztRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxJQUFBLGtDQUFnQixFQUFDLENBQUMsQ0FBQyxDQUVqRDtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFVBQVUsQ0FJdkM7S0FDTyxDQUFDO0FBQ2IsQ0FBQztBQW5CRCw0Q0FtQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IHogfSBmcm9tIFwiem9kXCI7XG5pbXBvcnQgdHlwZSB7IEZ1bmN0aW9uUnVudGltZVByb3BzIH0gZnJvbSBcIi4uL2Z1bmN0aW9uLXByb3BzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEh0dHBNZXRob2QgfSBmcm9tIFwiLi4vaHR0cC1tZXRob2QuanNcIjtcbmltcG9ydCB7IGNvbW1hbmRzIH0gZnJvbSBcIi4uL2ludGVybmFsL2dsb2JhbC5qc1wiO1xuaW1wb3J0IHsgQ29tbWFuZFNwZWMsIGlzU291cmNlTG9jYXRpb24gfSBmcm9tIFwiLi4vaW50ZXJuYWwvc2VydmljZS1zcGVjLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFNlcnZpY2VDb250ZXh0IH0gZnJvbSBcIi4uL3NlcnZpY2UuanNcIjtcbmltcG9ydCB0eXBlIHsgTWlkZGxld2FyZSB9IGZyb20gXCIuL21pZGRsZXdhcmUuanNcIjtcbmltcG9ydCB0eXBlIHsgUGFyc2VQYXRoIH0gZnJvbSBcIi4vcGF0aC5qc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNEZWZhdWx0TmFtZXNwYWNlQ29tbWFuZDxcbiAgQyBleHRlbmRzIFBpY2s8QW55Q29tbWFuZCwgXCJuYW1lXCIgfCBcIm5hbWVzcGFjZVwiPlxuPihjb21tYW5kOiBDKTogY29tbWFuZCBpcyBDICYgeyBuYW1lc3BhY2U6IHVuZGVmaW5lZCB9IHtcbiAgcmV0dXJuICFjb21tYW5kLm5hbWVzcGFjZTtcbn1cblxuLyoqXG4gKiBGb3JtYXRzIHRoZSBSUEMgUmVzdCBwYXRoIGZvciBhIGNvbW1hbmQuXG4gKlxuICogcnBjWy9uYW1lc3BhY2VdL25hbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbW1hbmRScGNQYXRoKFxuICBjb21tYW5kOiBQaWNrPEFueUNvbW1hbmQsIFwibmFtZVwiIHwgXCJuYW1lc3BhY2VcIj5cbikge1xuICByZXR1cm4gYHJwYyR7XG4gICAgaXNEZWZhdWx0TmFtZXNwYWNlQ29tbWFuZChjb21tYW5kKSA/IFwiXCIgOiBgLyR7Y29tbWFuZC5uYW1lc3BhY2V9YFxuICB9JHtjb21tYW5kLm5hbWUuc3RhcnRzV2l0aChcIi9cIikgPyBcIlwiIDogXCIvXCJ9JHtjb21tYW5kLm5hbWV9YDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kQ29udGV4dCB7XG4gIHNlcnZpY2U6IFNlcnZpY2VDb250ZXh0O1xufVxuXG5leHBvcnQgdHlwZSBBbnlDb21tYW5kID0gQ29tbWFuZDxcbiAgc3RyaW5nLFxuICBhbnksXG4gIGFueSxcbiAgYW55LFxuICBhbnksXG4gIEh0dHBNZXRob2QgfCB1bmRlZmluZWRcbj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWFuZDxcbiAgTmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbiAgSW5wdXQgPSB1bmRlZmluZWQsXG4gIE91dHB1dCA9IHZvaWQsXG4gIENvbnRleHQgZXh0ZW5kcyBDb21tYW5kQ29udGV4dCA9IENvbW1hbmRDb250ZXh0LFxuICBQYXRoIGV4dGVuZHMgc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICBNZXRob2QgZXh0ZW5kcyBIdHRwTWV0aG9kIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4+IGV4dGVuZHMgT21pdDxcbiAgICBDb21tYW5kU3BlYzxOYW1lLCBJbnB1dCwgUGF0aCwgTWV0aG9kPixcbiAgICBcImlucHV0XCIgfCBcIm91dHB1dHNcIiB8IFwib3V0cHV0XCJcbiAgPiB7XG4gIGtpbmQ6IFwiQ29tbWFuZFwiO1xuICBpbnB1dD86IHouWm9kVHlwZTxJbnB1dD47XG4gIG91dHB1dD86IENvbW1hbmRPdXRwdXRPcHRpb25zPE91dHB1dD47XG4gIC8qKlxuICAgKiBPdGhlciBwb3NzaWJsZSBvdXRwdXRzIG9mIHRoZSBjb21tYW5kLCBmb3IgZXhhbXBsZSwgZXJyb3JzLlxuICAgKi9cbiAgb3RoZXJPdXRwdXRzPzogQ29tbWFuZE91dHB1dE9wdGlvbnM8YW55PltdO1xuICBoYW5kbGVyOiBDb21tYW5kSGFuZGxlcjxJbnB1dCwgT3V0cHV0LCBDb250ZXh0PjtcbiAgbWlkZGxld2FyZXM/OiBNaWRkbGV3YXJlPGFueSwgYW55PltdO1xufVxuXG5leHBvcnQgdHlwZSBSZXN0T3B0aW9uczxcbiAgSW5wdXQsXG4gIFBhdGggZXh0ZW5kcyBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIE1ldGhvZCBleHRlbmRzIEh0dHBNZXRob2QgfCB1bmRlZmluZWRcbj4gPSB7XG4gIHBhdGg/OiBQYXRoO1xuICBtZXRob2Q/OiBNZXRob2Q7XG4gIC8qKlxuICAgKiBNYXBzIHBhcmFtZXRlcnMgZnJvbSBkaWZmZXJlbnQgc291cmNlcyB0byBhIHNpbmdsZSBpbnB1dCBvYmplY3QuXG4gICAqXG4gICAqIGBgYHRzXG4gICAqIC8vIFBPU1QgL3Byb3BlcnRpZXMvOnVzZXJJZD9leHBlY3RlZFZlcnNpb249MVxuICAgKiAvLyB7IGFnZTogMzUgfVxuICAgKiBjb21tYW5kKFwiL3Byb3BlcnRpZXMvOnVzZXJJZFwiLCB7XG4gICAqICAgIHBhcmFtczoge1xuICAgKiAgICAgICBleHBlY3RlZFZlcnNpb246IFwicXVlcnlcIixcbiAgICogICAgICAgY29udGVudFR5cGU6IHsgaW46IFwiaGVhZGVyc1wiLCBuYW1lOiBcImNvbnRlbnQtdHlwZVwiIH0sXG4gICAqICAgIH0sXG4gICAqICAgIGlucHV0OiB6Lm9iamVjdCh7XG4gICAqICAgICAgIHVzZXJJZDogei5zdHJpbmcoKSxcbiAgICogICAgICAgZXhwZWN0ZWRWZXJzaW9uOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gICAqICAgICAgIGNvbnRlbnRUeXBlOiB6LnN0cmluZygpLFxuICAgKiAgICAgICBhZ2U6IHoubnVtYmVyKClcbiAgICogICAgfSksXG4gICAqIH0sICh7dXNlcklkfSkgPT4geyBjb25zb2xlLmxvZyh1c2VySWQpOyB9KTtcbiAgICogYGBgXG4gICAqXG4gICAqIHVzZXJJZCAtIGFzc3VtZWQgdG8gY29tZSBmcm9tIHRoZSBwYXRoXG4gICAqIGV4cGVjdGVkVmVyc2lvbiAtIGV4cGxpY2l0bHkgbWFwcGVkIGZyb20gdGhlIHF1ZXJ5IHN0cmluZ1xuICAgKiBjb250ZW50VHlwZSAtIGV4cGxpY2l0bHkgbWFwcGVkIGZyb20gdGhlIGhlYWRlcnMgYW5kIHJlbmFtZWRcbiAgICogYWdlIC0gYXNzdW1lZCB0byBjb21lIGZyb20gdGhlIGJvZHlcbiAgICpcbiAgICogRGVmYXVsdCBsb2NhdGlvbjpcbiAgICogICAgR0VUL0RFTEVURS9IRUFEL09QVElPTlMgLSBxdWVyeVxuICAgKiAgICBQT1NUL1BVVC9QQVRDSCAtIGJvZHlcbiAgICovXG4gIHBhcmFtcz86IFJlc3RQYXJhbXM8SW5wdXQsIFBhdGgsIE1ldGhvZD47XG59O1xuXG5leHBvcnQgdHlwZSBSZXN0UGFyYW1zPFxuICBJbnB1dCxcbiAgUGF0aCBleHRlbmRzIHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgTWV0aG9kIGV4dGVuZHMgSHR0cE1ldGhvZCB8IHVuZGVmaW5lZFxuPiA9IHtcbiAgW2sgaW4ga2V5b2YgUGFydGlhbDxJbnB1dD5dOiBrIGV4dGVuZHMgUGFyc2VQYXRoPEV4Y2x1ZGU8UGF0aCwgdW5kZWZpbmVkPj5cbiAgICA/IFwicGF0aFwiXG4gICAgOiBNZXRob2QgZXh0ZW5kcyBcIkdFVFwiIHwgXCJERUxFVEVcIiB8IFwiSEVBRFwiIHwgXCJPUFRJT05TXCJcbiAgICA/IFJlc3RQYXJhbTxcInF1ZXJ5XCIgfCBcImhlYWRlclwiIHwgXCJwYXRoXCI+XG4gICAgOiBSZXN0UGFyYW07XG59O1xuXG5leHBvcnQgdHlwZSBSZXN0UGFyYW1Mb2NhdGlvbiA9IFwicXVlcnlcIiB8IFwiYm9keVwiIHwgXCJoZWFkZXJcIiB8IFwicGF0aFwiO1xuXG5leHBvcnQgdHlwZSBSZXN0UGFyYW08SW4gZXh0ZW5kcyBSZXN0UGFyYW1Mb2NhdGlvbiA9IFJlc3RQYXJhbUxvY2F0aW9uPiA9XG4gIHwgSW5cbiAgfCB7XG4gICAgICBpbjogRXhjbHVkZTxJbiwgXCJwYXRoXCI+O1xuICAgICAgLyoqXG4gICAgICAgKiBUaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIGluIHRoZSBzb3VyY2UgbG9jYXRpb24uXG4gICAgICAgKlxuICAgICAgICogRm9yIGV4YW1wbGUsIGlmIHRoZSBxdWVyeSBzdHJpbmcgcGFyYW1ldGVyIGlzIGBVc2VySURgLCBidXQgdGhlIGlucHV0IHNjaGVtYSB1c2VzIGB1c2VySWRgLlxuICAgICAgICpcbiAgICAgICAqIGBgYHRzXG4gICAgICAgKiAvLyAvcHJvcGVydGllcz9Vc2VySUQ9Li4uXG4gICAgICAgKiBjb21tYW5kKFwiL3Byb3BlcnRpZXNcIiwge1xuICAgICAgICogICAgcGFyYW1zOiB7XG4gICAgICAgKiAgICAgICB1c2VySWQ6IHtcbiAgICAgICAqICAgICAgICAgIGluOiBcInF1ZXJ5XCIsXG4gICAgICAgKiAgICAgICAgICBuYW1lOiBcIlVzZXJJRFwiXG4gICAgICAgKiAgICAgICB9LFxuICAgICAgICogICAgfSxcbiAgICAgICAqICAgIGlucHV0OiB6Lm9iamVjdCh7XG4gICAgICAgKiAgICAgICB1c2VySWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKVxuICAgICAgICogICAgfSksXG4gICAgICAgKiB9LCAoe3VzZXJJZH0pID0+IHsgY29uc29sZS5sb2codXNlcklkKTsgfSk7XG4gICAgICAgKiBgYGBcbiAgICAgICAqL1xuICAgICAgbmFtZT86IHN0cmluZztcbiAgICB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlcnMge1xuICBbaGVhZGVyTmFtZTogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBDb21tYW5kSGFuZGxlcjxcbiAgVCA9IHVuZGVmaW5lZCxcbiAgVSA9IHZvaWQsXG4gIENvbnRleHQgZXh0ZW5kcyBDb21tYW5kQ29udGV4dCA9IENvbW1hbmRDb250ZXh0XG4+ID0gKGlucHV0OiBULCBjb250ZXh0OiBDb250ZXh0KSA9PiBQcm9taXNlPFU+IHwgVTtcblxuZXhwb3J0IHR5cGUgQ29tbWFuZElucHV0PEMgZXh0ZW5kcyBBbnlDb21tYW5kPiA9IEMgZXh0ZW5kcyBDb21tYW5kPFxuICBhbnksXG4gIGluZmVyIElucHV0LFxuICBhbnksXG4gIGFueSxcbiAgYW55LFxuICBhbnlcbj5cbiAgPyBJbnB1dFxuICA6IG5ldmVyO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbW1hbmRPdXRwdXRPcHRpb25zPE91dHB1dD4ge1xuICAvKipcbiAgICogQGRlZmF1bHQgLSB7QGxpbmsgei5hbnl9XG4gICAqL1xuICBzY2hlbWE/OiB6LlpvZFR5cGU8T3V0cHV0PjtcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgcmVzdFN0YXR1c0NvZGU6IG51bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgQ29tbWFuZE91dHB1dDxPdXRwdXQ+ID1cbiAgfCB6LlpvZFR5cGU8T3V0cHV0PlxuICB8IENvbW1hbmRPdXRwdXRPcHRpb25zPE91dHB1dD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWFuZE9wdGlvbnM8XG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFBhdGggZXh0ZW5kcyBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIE1ldGhvZCBleHRlbmRzIEh0dHBNZXRob2QgfCB1bmRlZmluZWRcbj4gZXh0ZW5kcyBGdW5jdGlvblJ1bnRpbWVQcm9wcyxcbiAgICBQaWNrPFxuICAgICAgQ29tbWFuZFNwZWM8c3RyaW5nLCBJbnB1dCwgUGF0aCwgTWV0aG9kPixcbiAgICAgIFwicGF0aFwiIHwgXCJtZXRob2RcIiB8IFwic3VtbWFyeVwiIHwgXCJkZXNjcmlwdGlvblwiIHwgXCJwYXJhbXNcIiB8IFwidmFsaWRhdGVcIlxuICAgID4ge1xuICBpbnB1dD86IHouWm9kVHlwZTxJbnB1dD47XG4gIC8qKlxuICAgKiBUaGUgb3V0cHV0IHNjaGVtYSBvZiB0aGUgY29tbWFuZC5cbiAgICpcbiAgICogV2hlbiBhIGRlc2NyaXB0aW9uIG9mIHRoZSBvdXRwdXQgY2FuIGlzIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHVzZWQgdGhlIHtAbGluayBBcGlTcGVjaWZpY2F0aW9ufS5cbiAgICpcbiAgICogV2hlbiBhIHJlc3Qgc3RhdHVzIGlzIHByb3ZpZGVkIGFuZCB0aGUgY29tbWFuZCBzdXBwb3J0cyBhIHJlc3QgcGF0aCwgdGhhdCBzdGF0dXMgd2lsbCBiZSB1c2VkIHRvIHJldHVybiBhIHN1Y2Nlc3NmdWwgcmVzdWx0LlxuICAgKiBOb3RlOiBSUEMgY29tbWFuZHMgd2lsbCBhbHdheXMgcmV0dXJuIDIwMC5cbiAgICpcbiAgICogQGRlZmF1bHQgMjAwIHtAbGluayB6LmFueX0gT0tcbiAgICovXG4gIG91dHB1dD86IENvbW1hbmRPdXRwdXQ8T3V0cHV0Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbW1hbmQ8XG4gIE5hbWUgZXh0ZW5kcyBzdHJpbmcsXG4gIElucHV0ID0gdW5kZWZpbmVkLFxuICBPdXRwdXQgPSB2b2lkLFxuICBDb250ZXh0IGV4dGVuZHMgQ29tbWFuZENvbnRleHQgPSBDb21tYW5kQ29udGV4dFxuPihcbiAgbmFtZTogTmFtZSxcbiAgaGFuZGxlcjogQ29tbWFuZEhhbmRsZXI8SW5wdXQsIE91dHB1dCwgQ29udGV4dD5cbik6IENvbW1hbmQ8TmFtZSwgSW5wdXQsIE91dHB1dCwgQ29udGV4dCwgdW5kZWZpbmVkLCB1bmRlZmluZWQ+O1xuXG5leHBvcnQgZnVuY3Rpb24gY29tbWFuZDxcbiAgTmFtZSBleHRlbmRzIHN0cmluZyxcbiAgSW5wdXQgPSB1bmRlZmluZWQsXG4gIE91dHB1dCA9IHZvaWQsXG4gIENvbnRleHQgZXh0ZW5kcyBDb21tYW5kQ29udGV4dCA9IENvbW1hbmRDb250ZXh0LFxuICBQYXRoIGV4dGVuZHMgc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICBNZXRob2QgZXh0ZW5kcyBIdHRwTWV0aG9kIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4+KFxuICBuYW1lOiBOYW1lLFxuICBvcHRpb25zOiBDb21tYW5kT3B0aW9uczxJbnB1dCwgT3V0cHV0LCBQYXRoLCBNZXRob2Q+LFxuICBoYW5kbGVyOiBDb21tYW5kSGFuZGxlcjxJbnB1dCwgT3V0cHV0LCBDb250ZXh0PlxuKTogQ29tbWFuZDxOYW1lLCBJbnB1dCwgT3V0cHV0LCBDb250ZXh0LCBQYXRoLCBNZXRob2Q+O1xuXG5leHBvcnQgZnVuY3Rpb24gY29tbWFuZDxcbiAgTmFtZSBleHRlbmRzIHN0cmluZyxcbiAgSW5wdXQgPSB1bmRlZmluZWQsXG4gIE91dHB1dCA9IHZvaWQsXG4gIENvbnRleHQgZXh0ZW5kcyBDb21tYW5kQ29udGV4dCA9IENvbW1hbmRDb250ZXh0XG4+KC4uLmFyZ3M6IGFueVtdKTogQ29tbWFuZDxOYW1lLCBJbnB1dCwgT3V0cHV0LCBDb250ZXh0LCBhbnksIGFueT4ge1xuICBjb25zdCBbc291cmNlTG9jYXRpb24sIG5hbWUsIG9wdGlvbnMsIGhhbmRsZXJdID0gcGFyc2VDb21tYW5kQXJnczxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXRcbiAgPihhcmdzKTtcbiAgY29uc3QgY29tbWFuZDogQ29tbWFuZDxOYW1lLCBJbnB1dCwgT3V0cHV0LCBDb250ZXh0LCBhbnksIGFueT4gPSB7XG4gICAga2luZDogXCJDb21tYW5kXCIsXG4gICAgbmFtZSxcbiAgICBoYW5kbGVyLFxuICAgIHNvdXJjZUxvY2F0aW9uLFxuICAgIC4uLm9wdGlvbnMsXG4gICAgb3V0cHV0OiBvcHRpb25zPy5vdXRwdXRcbiAgICAgID8gXCJyZXN0U3RhdHVzQ29kZVwiIGluIG9wdGlvbnMub3V0cHV0XG4gICAgICAgID8gb3B0aW9ucy5vdXRwdXRcbiAgICAgICAgOiB7IHNjaGVtYTogb3B0aW9ucy5vdXRwdXQsIGRlc2NyaXB0aW9uOiBcIk9LXCIsIHJlc3RTdGF0dXNDb2RlOiAyMDAgfVxuICAgICAgOiB7IHNjaGVtYTogdW5kZWZpbmVkLCBkZXNjcmlwdGlvbjogXCJPS1wiLCByZXN0U3RhdHVzQ29kZTogMjAwIH0sXG4gIH07XG4gIGNvbW1hbmRzLnB1c2goY29tbWFuZCk7XG4gIHJldHVybiBjb21tYW5kO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VDb21tYW5kQXJnczxcbiAgSW5wdXQgPSB1bmRlZmluZWQsXG4gIE91dHB1dCA9IHZvaWQsXG4gIENvbnRleHQgZXh0ZW5kcyBDb21tYW5kQ29udGV4dCA9IENvbW1hbmRDb250ZXh0XG4+KGFyZ3M6IGFueVtdKSB7XG4gIHJldHVybiBbXG4gICAgLy8gVE9ETzogaXMgdGhpcyA0eCBzY2FuIHRvbyBpbmVmZmljaWVudCwgb3IgaXMgdGhlIHRyYWRlLW9mZiBiZXR3ZWVuIHNpbXBsaWNpdHkgYW5kIHBlcmZvcm1hbmNlIHdvcnRoIGl0IGhlcmU/XG4gICAgLy8gaSB0aGluayBpdCB3b3VsZCBiZSBtYXJnaW5hbCBsb29waW5nIG92ZXIgYSBzbWFsbCBhcnJheSBtdWx0aXBsZSB0aW1lcyBidXQgaSBjb3VsZCBiZSB3cm9uZ1xuICAgIGFyZ3MuZmluZChpc1NvdXJjZUxvY2F0aW9uKSxcbiAgICBhcmdzLmZpbmQoKGEpID0+IHR5cGVvZiBhID09PSBcInN0cmluZ1wiKSxcbiAgICBhcmdzLmZpbmQoKGEpID0+IHR5cGVvZiBhID09PSBcIm9iamVjdFwiICYmICFpc1NvdXJjZUxvY2F0aW9uKGEpKSBhc1xuICAgICAgfCBDb21tYW5kT3B0aW9uczxJbnB1dCwgT3V0cHV0LCBhbnksIGFueT5cbiAgICAgIHwgdW5kZWZpbmVkLFxuICAgIGFyZ3MuZmluZCgoYSkgPT4gdHlwZW9mIGEgPT09IFwiZnVuY3Rpb25cIikgYXMgQ29tbWFuZEhhbmRsZXI8XG4gICAgICBJbnB1dCxcbiAgICAgIE91dHB1dCxcbiAgICAgIENvbnRleHRcbiAgICA+LFxuICBdIGFzIGNvbnN0O1xufVxuIl19

@@ -53,5 +53,7 @@ "use strict";

responses: {
default: {
content: { "application/json": { schema: command.output } },
description: `Default response for POST ${commandPath}`,
200: {
content: {
"application/json": { schema: command.output?.schema },
},
description: command.output?.description ?? "OK",
},

@@ -135,10 +137,12 @@ },

},
responses: {
default: {
description: `Default response for ${command.method} ${command.path}`,
content: {
"application/json": { schema: command.output },
},
responses: Object.fromEntries([
...(command.output ? [command.output] : []),
...(command.outputs ?? []),
].map((o) => [
o.restStatusCode,
{
content: { "application/json": { schema: o.schema } },
description: o.description,
},
},
])),
};

@@ -168,2 +172,2 @@ return {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Blbi1hcGktc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnRlcm5hbC9vcGVuLWFwaS1zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLG1EQUFvRDtBQTRCcEQsU0FBZ0IsbUJBQW1CLENBQ2pDLFFBQTJDLEVBQzNDLE9BQTJCO0lBRTNCLE1BQU0sS0FBSyxHQUFHLFFBQVE7U0FDbkIsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDZixPQUFPLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDLENBQUM7U0FDRCxNQUFNLENBQ0wsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUNuRCxFQUFFLENBQ0gsQ0FBQztJQUVKLE9BQU87UUFDTCxPQUFPLEVBQUUsT0FBTztRQUNoQixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7UUFDbEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQ3hCLEtBQUs7S0FDMEIsQ0FBQztJQUVsQyxTQUFTLGFBQWEsQ0FDcEIsQ0FBc0IsRUFDdEIsQ0FBc0I7UUFFdEIsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDN0MsSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFO2dCQUNiLDZCQUE2QjtnQkFDN0IsK0JBQStCO2dCQUMvQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUc7b0JBQ1IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO29CQUNWLEdBQUcsS0FBSztpQkFDVCxDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQzthQUNqQjtTQUNGO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsU0FBUyxjQUFjLENBQ3JC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QUFhLENBQUM7d0JBQzVDLENBQUMsQ0FBQyxhQUFhO2lCQUNsQjthQUNGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUM7QUF4TEQsa0RBd0xDO0FBRUQsU0FBUyxzQkFBc0IsQ0FBQyxJQUFZO0lBQzFDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQzlDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ2pCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRCwyRUFBMkU7QUFDM0UsMENBQTBDO0FBQzFDLFNBQVMsdUJBQXVCLENBQUMsS0FBYTtJQUM1QyxPQUFPLEtBQUssS0FBSyxHQUFHO1FBQ2xCLENBQUMsQ0FBQyxXQUFXO1FBQ2IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIG9wZW5hcGkgZnJvbSBcIm9wZW5hcGkzLXRzXCI7XG5pbXBvcnQgeyBjb21tYW5kUnBjUGF0aCB9IGZyb20gXCIuLi9odHRwL2NvbW1hbmQuanNcIjtcbmltcG9ydCB0eXBlIHsgQ29tbWFuZFNwZWMgfSBmcm9tIFwiLi9zZXJ2aWNlLXNwZWMuanNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBPcGVuQVBJU3BlY09wdGlvbnMge1xuICAvKipcbiAgICogV2hlbiB0cnVlLCBjcmVhdGVzIFJQQyBwYXRocyBpbiB0aGUgZm9ybSBQT1NUIC9ycGMvY29tbWFuZE5hbWUgZm9yIGVhY2ggY29tbWFuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgY3JlYXRlUnBjUGF0aHM/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hlbiB0cnVlLCBjcmVhdGVzIGEgUmVzdCBwYXRoIGluIHRoZSBmb3JtIGAke2NvbW1hbmQubWV0aG9kfSAke2NvbW1hbmQucGF0aH1gIGZvciBlYWNoIGNvbW1hbmQgdGhhdCBoYXMgYSBwYXRoIGRlZmluZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGNyZWF0ZVJlc3RQYXRocz86IGJvb2xlYW47XG4gIGluZm86IG9wZW5hcGkuSW5mb09iamVjdDtcbiAgc2VydmVycz86IG9wZW5hcGkuU2VydmVyT2JqZWN0W107XG4gIG9uUnBjUGF0aD86IChcbiAgICBjb21tYW5kOiBDb21tYW5kU3BlYyxcbiAgICBwYXRoSXRlbTogb3BlbmFwaS5PcGVyYXRpb25PYmplY3RcbiAgKSA9PiBvcGVuYXBpLlBhdGhPYmplY3Q7XG4gIG9uUmVzdFBhdGg/OiAoXG4gICAgY29tbWFuZDogQ29tbWFuZFNwZWMsXG4gICAgcGF0aEl0ZW06IG9wZW5hcGkuT3BlcmF0aW9uT2JqZWN0XG4gICkgPT4gb3BlbmFwaS5QYXRoT2JqZWN0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVPcGVuQVBJU3BlYyhcbiAgY29tbWFuZHM6IENvbW1hbmRTcGVjPGFueSwgYW55LCBhbnksIGFueT5bXSxcbiAgb3B0aW9uczogT3BlbkFQSVNwZWNPcHRpb25zXG4pOiBvcGVuYXBpLk9wZW5BUElPYmplY3Qge1xuICBjb25zdCBwYXRocyA9IGNvbW1hbmRzXG4gICAgLm1hcCgoY29tbWFuZCkgPT4ge1xuICAgICAgcmV0dXJuIGNyZWF0ZUFQSVBhdGhzKGNvbW1hbmQpO1xuICAgIH0pXG4gICAgLnJlZHVjZTxvcGVuYXBpLlBhdGhzT2JqZWN0PihcbiAgICAgIChhbGxQYXRocywgcGF0aHMpID0+IG1lcmdlQVBJUGF0aHMoYWxsUGF0aHMsIHBhdGhzKSxcbiAgICAgIHt9XG4gICAgKTtcblxuICByZXR1cm4ge1xuICAgIG9wZW5hcGk6IFwiMy4wLjFcIixcbiAgICBpbmZvOiBvcHRpb25zLmluZm8sXG4gICAgc2VydmVyczogb3B0aW9ucy5zZXJ2ZXJzLFxuICAgIHBhdGhzLFxuICB9IHNhdGlzZmllcyBvcGVuYXBpLk9wZW5BUElPYmplY3Q7XG5cbiAgZnVuY3Rpb24gbWVyZ2VBUElQYXRocyhcbiAgICBhOiBvcGVuYXBpLlBhdGhzT2JqZWN0LFxuICAgIGI6IG9wZW5hcGkuUGF0aHNPYmplY3RcbiAgKTogb3BlbmFwaS5QYXRoc09iamVjdCB7XG4gICAgZm9yIChjb25zdCBbcGF0aCwgcm91dGVdIG9mIE9iamVjdC5lbnRyaWVzKGIpKSB7XG4gICAgICBpZiAocGF0aCBpbiBhKSB7XG4gICAgICAgIC8vIHNwcmVhZCBjb2xsaXNpb25zIGludG8gb25lXG4gICAgICAgIC8vIGFzc3VtZXMgbm8gZHVwbGljYXRlIE1FVEhPRHNcbiAgICAgICAgYVtwYXRoXSA9IHtcbiAgICAgICAgICAuLi5hW3BhdGhdLFxuICAgICAgICAgIC4uLnJvdXRlLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYVtwYXRoXSA9IHJvdXRlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUFQSVBhdGhzKFxuICAgIGNvbW1hbmQ6IENvbW1hbmRTcGVjPGFueSwgYW55LCBhbnksIGFueT5cbiAgKTogb3BlbmFwaS5QYXRoc09iamVjdCB7XG4gICAgY29uc3QgY29tbWFuZFBhdGggPSBjb21tYW5kUnBjUGF0aChjb21tYW5kKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi4ob3B0aW9ucy5jcmVhdGVScGNQYXRocyA/PyB0cnVlID8gY3JlYXRlUnBjT3BlcmF0aW9uKCkgOiB7fSksXG4gICAgICAuLi4ob3B0aW9ucy5jcmVhdGVSZXN0UGF0aHMgPz8gdHJ1ZSA/IGNyZWF0ZVJlc3RPcGVyYXRpb24oKSA6IHt9KSxcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gY3JlYXRlUnBjT3BlcmF0aW9uKCk6IG9wZW5hcGkuUGF0aEl0ZW1PYmplY3Qge1xuICAgICAgY29uc3Qgb2JqID0ge1xuICAgICAgICBwb3N0OiB7XG4gICAgICAgICAgb3BlcmF0aW9uSWQ6IGAke2NvbW1hbmQubmFtZX0tcnBjYCxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogY29tbWFuZC5kZXNjcmlwdGlvbixcbiAgICAgICAgICBzdW1tYXJ5OiBjb21tYW5kLnN1bW1hcnksXG4gICAgICAgICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAgICAgICBzY2hlbWE6IGNvbW1hbmQuaW5wdXQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzcG9uc2VzOiB7XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHsgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHsgc2NoZW1hOiBjb21tYW5kLm91dHB1dCB9IH0sXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgRGVmYXVsdCByZXNwb25zZSBmb3IgUE9TVCAke2NvbW1hbmRQYXRofWAsXG4gICAgICAgICAgICB9IHNhdGlzZmllcyBvcGVuYXBpLlJlc3BvbnNlT2JqZWN0LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0gc2F0aXNmaWVzIG9wZW5hcGkuT3BlcmF0aW9uT2JqZWN0LFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgW2AvJHtjb21tYW5kUGF0aH1gXTogb3B0aW9ucz8ub25ScGNQYXRoXG4gICAgICAgICAgPyB7IHBvc3Q6IG9wdGlvbnMub25ScGNQYXRoKGNvbW1hbmQsIG9iai5wb3N0KSB9XG4gICAgICAgICAgOiBvYmosXG4gICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZVJlc3RPcGVyYXRpb24oKTogb3BlbmFwaS5QYXRoSXRlbU9iamVjdCB7XG4gICAgICBpZiAoIWNvbW1hbmQucGF0aCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhdGhQYXJhbWV0ZXJzID0gbmV3IFNldChwYXJhbWV0ZXJOYW1lc0Zyb21QYXRoKGNvbW1hbmQucGF0aCkpO1xuXG4gICAgICBjb25zdCBrbm93blByb3BlcnRpZXMgPSBuZXcgU2V0KFtcbiAgICAgICAgLi4uT2JqZWN0LmtleXMoY29tbWFuZC5wYXJhbXMgPz8ge30pLFxuICAgICAgICAuLi5PYmplY3Qua2V5cyhjb21tYW5kLmlucHV0Py5wcm9wZXJ0aWVzID8/IHt9KSxcbiAgICAgICAgLi4ucGF0aFBhcmFtZXRlcnMsXG4gICAgICBdKTtcblxuICAgICAgLy8gZGVmYXVsdCB0byBxdWVyeSB3aGVuIHRoZSBtZXRob2Qgc2hvdWxkIG5vdCBoYXZlIGEgYm9keVxuICAgICAgY29uc3QgZGVmYXVsdFNwZWMgPVxuICAgICAgICAhY29tbWFuZC5tZXRob2QgfHxcbiAgICAgICAgW1wiR0VUXCIsIFwiREVMRVRFXCIsIFwiT1BUSU9OU1wiLCBcIkhFQURcIl0uaW5jbHVkZXMoY29tbWFuZC5tZXRob2QpXG4gICAgICAgICAgPyBcInF1ZXJ5XCJcbiAgICAgICAgICA6IFwiYm9keVwiO1xuXG4gICAgICAvKipcbiAgICAgICAqIDEuIHJlc29sdmVzIHRoZSBzY2hlbWEgbmFtZSBmb3IgdGhlIHBhcmFtZXRlciB3aGljaCBtYXkgYmUgZGlmZmVyZW50IGZyb20gdGhlIG5hbWUgaW4gdGhlIGlucHV0IHNjaGVtYVxuICAgICAgICogMi4gcmVzb2x2ZXMgdGhlIHNwZWMvaW4gdHlwZSBiYXNlZCBvbiB0aGUgc291cmNlIG9mIHRoZSBwYXJhbWV0ZXIgbmFtZSwgY3VycmVudCBtZXRob2QsIGFuZCBleHBsaWNpdCBpbnB1dFxuICAgICAgICogMy4gcmVzb2x2ZSB0aGUgc2NoZW1hIGZyb20gdGhlIGlucHV0IHNjaGVtYSB0byB1c2UgaW4gdGhlIG91dHB1dCBzY2hlbWFcbiAgICAgICAqL1xuICAgICAgY29uc3QgcmVzb2x2ZWRQYXJhbWV0ZXJzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICBbLi4ua25vd25Qcm9wZXJ0aWVzXS5tYXAoKHByb3ApID0+IHtcbiAgICAgICAgICBjb25zdCBwYXJhbSA9IGNvbW1hbmQucGFyYW1zPy5bcHJvcF07XG4gICAgICAgICAgY29uc3QgW25hbWUsIHNwZWNdID1cbiAgICAgICAgICAgIHR5cGVvZiBwYXJhbSA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICA/IFtwcm9wLCBwYXJhbV1cbiAgICAgICAgICAgICAgOiBbcGFyYW0/Lm5hbWUgPz8gcHJvcCwgcGFyYW0/LmluXTtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgbm8gZXhwbGljaXQgb3ZlcnJpZGUgYW5kIHRoZSBwYXJhbSBpcyBpbiB0aGUgcGF0aCwgdGhlIHNwZWMgaXMgcGF0aCwgZWxzZSB0aGUgY29tcHV0ZWQgZGVmYXVsdFxuICAgICAgICAgICAgICBzcGVjOiBzcGVjID8/IChwYXRoUGFyYW1ldGVycy5oYXMobmFtZSkgPyBcInBhdGhcIiA6IGRlZmF1bHRTcGVjKSxcbiAgICAgICAgICAgICAgc2NoZW1hOiBjb21tYW5kLmlucHV0Py5wcm9wZXJ0aWVzPy5bcHJvcF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0gYXMgY29uc3Q7XG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgICBjb25zdCBib2R5UHJvcGVydGllcyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgT2JqZWN0LmVudHJpZXMocmVzb2x2ZWRQYXJhbWV0ZXJzKVxuICAgICAgICAgIC5maWx0ZXIoKFssIHsgc3BlYywgc2NoZW1hIH1dKSA9PiBzcGVjID09PSBcImJvZHlcIiAmJiAhIXNjaGVtYSlcbiAgICAgICAgICAubWFwKChbbmFtZSwgeyBzY2hlbWEgfV0pID0+IFtuYW1lLCBzY2hlbWEhXSlcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGJvZHlTY2hlbWE6IG9wZW5hcGkuU2NoZW1hT2JqZWN0IHwgdW5kZWZpbmVkID1cbiAgICAgICAgY29tbWFuZC5pbnB1dD8ucHJvcGVydGllcyAmJiBPYmplY3Qua2V5cyhib2R5UHJvcGVydGllcykubGVuZ3RoID4gMFxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAuLi5jb21tYW5kLmlucHV0LFxuICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiBib2R5UHJvcGVydGllcyxcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IGNvbW1hbmQuaW5wdXQucmVxdWlyZWQ/LmZpbHRlcihcbiAgICAgICAgICAgICAgICAocCkgPT4gcCBpbiBib2R5UHJvcGVydGllc1xuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICBjb25zdCBvcGVyYXRpb25JdGVtOiBvcGVuYXBpLk9wZXJhdGlvbk9iamVjdCA9IHtcbiAgICAgICAgb3BlcmF0aW9uSWQ6IGAke2NvbW1hbmQubmFtZX0tJHtjb21tYW5kLm1ldGhvZCA/PyBcImdldFwifWAsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBjb21tYW5kLmRlc2NyaXB0aW9uLFxuICAgICAgICBzdW1tYXJ5OiBjb21tYW5kLnN1bW1hcnksXG4gICAgICAgIHBhcmFtZXRlcnM6IE9iamVjdC5lbnRyaWVzKHJlc29sdmVkUGFyYW1ldGVycykuZmxhdE1hcChcbiAgICAgICAgICAoW25hbWUsIHsgc3BlYywgc2NoZW1hIH1dKSA9PlxuICAgICAgICAgICAgc3BlYyA9PT0gXCJib2R5XCJcbiAgICAgICAgICAgICAgPyBbXVxuICAgICAgICAgICAgICA6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgaW46IHNwZWMsXG4gICAgICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYSxcbiAgICAgICAgICAgICAgICAgIH0gc2F0aXNmaWVzIG9wZW5hcGkuUGFyYW1ldGVyT2JqZWN0LFxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgKSxcbiAgICAgICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgICAuLi4oYm9keVNjaGVtYVxuICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYTogYm9keVNjaGVtYSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICByZXNwb25zZXM6IHtcbiAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogYERlZmF1bHQgcmVzcG9uc2UgZm9yICR7Y29tbWFuZC5tZXRob2R9ICR7Y29tbWFuZC5wYXRofWAsXG4gICAgICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7IHNjaGVtYTogY29tbWFuZC5vdXRwdXQgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIFtpdHR5Um91dGVUb09wZW5BcGlSb3V0ZShjb21tYW5kLnBhdGgpXToge1xuICAgICAgICAgIFtjb21tYW5kLm1ldGhvZD8udG9Mb2NhbGVMb3dlckNhc2UoKSA/PyBcImdldFwiXTogb3B0aW9ucz8ub25SZXN0UGF0aFxuICAgICAgICAgICAgPyBvcHRpb25zLm9uUmVzdFBhdGgoY29tbWFuZCwgb3BlcmF0aW9uSXRlbSlcbiAgICAgICAgICAgIDogb3BlcmF0aW9uSXRlbSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHBhcmFtZXRlck5hbWVzRnJvbVBhdGgocGF0aDogc3RyaW5nKTogc3RyaW5nW10ge1xuICByZXR1cm4gQXJyYXkuZnJvbShwYXRoLm1hdGNoQWxsKC9cXC86KFteLz8jXSopL2cpKVxuICAgIC5tYXAoKFssIGddKSA9PiBnKVxuICAgIC5maWx0ZXIoKHgpOiB4IGlzIHN0cmluZyA9PiAhIXgpO1xufVxuXG4vLyBOb3RlOiBvcGVuIGFwaSBkb2Vzbid0IGhhdmUgYSBmb3JtYWwgd2F5IHRvIHJlcHJlc2VudCBncmVlZHkgcGFyYW1ldGVycy5cbi8vIFVzaW5nIEFQSSBHYXRld2F5J3MgZm9ybWF0IG9mIHtwYXJhbSt9LlxuZnVuY3Rpb24gaXR0eVJvdXRlVG9PcGVuQXBpUm91dGUocm91dGU6IHN0cmluZykge1xuICByZXR1cm4gcm91dGUgPT09IFwiKlwiXG4gICAgPyBcIi97cHJveHkrfVwiXG4gICAgOiByb3V0ZS5yZXBsYWNlKC9cXCovZywgXCJ7cHJveHkrfVwiKS5yZXBsYWNlQWxsKC86KFteL10qKS9nLCBcInskMX1cIik7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Blbi1hcGktc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnRlcm5hbC9vcGVuLWFwaS1zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLG1EQUFvRDtBQTRCcEQsU0FBZ0IsbUJBQW1CLENBQ2pDLFFBQTJDLEVBQzNDLE9BQTJCO0lBRTNCLE1BQU0sS0FBSyxHQUFHLFFBQVE7U0FDbkIsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDZixPQUFPLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDLENBQUM7U0FDRCxNQUFNLENBQ0wsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUNuRCxFQUFFLENBQ0gsQ0FBQztJQUVKLE9BQU87UUFDTCxPQUFPLEVBQUUsT0FBTztRQUNoQixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7UUFDbEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQ3hCLEtBQUs7S0FDMEIsQ0FBQztJQUVsQyxTQUFTLGFBQWEsQ0FDcEIsQ0FBc0IsRUFDdEIsQ0FBc0I7UUFFdEIsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDN0MsSUFBSSxJQUFJLElBQUksQ0FBQyxFQUFFO2dCQUNiLDZCQUE2QjtnQkFDN0IsK0JBQStCO2dCQUMvQixDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUc7b0JBQ1IsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO29CQUNWLEdBQUcsS0FBSztpQkFDVCxDQUFDO2FBQ0g7aUJBQU07Z0JBQ0wsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQzthQUNqQjtTQUNGO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsU0FBUyxjQUFjLENBQ3JC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LFdBQVc7cUJBQ007aUJBQ25DLENBQUMsQ0FDSDthQUNGLENBQUM7WUFFRixPQUFPO2dCQUNMLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUU7b0JBQ3ZDLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxVQUFVO3dCQUNqRSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDO3dCQUM1QyxDQUFDLENBQUMsYUFBYTtpQkFDbEI7YUFDRixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBOUxELGtEQThMQztBQUVELFNBQVMsc0JBQXNCLENBQUMsSUFBWTtJQUMxQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUM5QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNqQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBRUQsMkVBQTJFO0FBQzNFLDBDQUEwQztBQUMxQyxTQUFTLHVCQUF1QixDQUFDLEtBQWE7SUFDNUMsT0FBTyxLQUFLLEtBQUssR0FBRztRQUNsQixDQUFDLENBQUMsV0FBVztRQUNiLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBvcGVuYXBpIGZyb20gXCJvcGVuYXBpMy10c1wiO1xuaW1wb3J0IHsgY29tbWFuZFJwY1BhdGggfSBmcm9tIFwiLi4vaHR0cC9jb21tYW5kLmpzXCI7XG5pbXBvcnQgdHlwZSB7IENvbW1hbmRTcGVjIH0gZnJvbSBcIi4vc2VydmljZS1zcGVjLmpzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3BlbkFQSVNwZWNPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSwgY3JlYXRlcyBSUEMgcGF0aHMgaW4gdGhlIGZvcm0gUE9TVCAvcnBjL2NvbW1hbmROYW1lIGZvciBlYWNoIGNvbW1hbmQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGNyZWF0ZVJwY1BhdGhzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSwgY3JlYXRlcyBhIFJlc3QgcGF0aCBpbiB0aGUgZm9ybSBgJHtjb21tYW5kLm1ldGhvZH0gJHtjb21tYW5kLnBhdGh9YCBmb3IgZWFjaCBjb21tYW5kIHRoYXQgaGFzIGEgcGF0aCBkZWZpbmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBjcmVhdGVSZXN0UGF0aHM/OiBib29sZWFuO1xuICBpbmZvOiBvcGVuYXBpLkluZm9PYmplY3Q7XG4gIHNlcnZlcnM/OiBvcGVuYXBpLlNlcnZlck9iamVjdFtdO1xuICBvblJwY1BhdGg/OiAoXG4gICAgY29tbWFuZDogQ29tbWFuZFNwZWMsXG4gICAgcGF0aEl0ZW06IG9wZW5hcGkuT3BlcmF0aW9uT2JqZWN0XG4gICkgPT4gb3BlbmFwaS5QYXRoT2JqZWN0O1xuICBvblJlc3RQYXRoPzogKFxuICAgIGNvbW1hbmQ6IENvbW1hbmRTcGVjLFxuICAgIHBhdGhJdGVtOiBvcGVuYXBpLk9wZXJhdGlvbk9iamVjdFxuICApID0+IG9wZW5hcGkuUGF0aE9iamVjdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlT3BlbkFQSVNwZWMoXG4gIGNvbW1hbmRzOiBDb21tYW5kU3BlYzxhbnksIGFueSwgYW55LCBhbnk+W10sXG4gIG9wdGlvbnM6IE9wZW5BUElTcGVjT3B0aW9uc1xuKTogb3BlbmFwaS5PcGVuQVBJT2JqZWN0IHtcbiAgY29uc3QgcGF0aHMgPSBjb21tYW5kc1xuICAgIC5tYXAoKGNvbW1hbmQpID0+IHtcbiAgICAgIHJldHVybiBjcmVhdGVBUElQYXRocyhjb21tYW5kKTtcbiAgICB9KVxuICAgIC5yZWR1Y2U8b3BlbmFwaS5QYXRoc09iamVjdD4oXG4gICAgICAoYWxsUGF0aHMsIHBhdGhzKSA9PiBtZXJnZUFQSVBhdGhzKGFsbFBhdGhzLCBwYXRocyksXG4gICAgICB7fVxuICAgICk7XG5cbiAgcmV0dXJuIHtcbiAgICBvcGVuYXBpOiBcIjMuMC4xXCIsXG4gICAgaW5mbzogb3B0aW9ucy5pbmZvLFxuICAgIHNlcnZlcnM6IG9wdGlvbnMuc2VydmVycyxcbiAgICBwYXRocyxcbiAgfSBzYXRpc2ZpZXMgb3BlbmFwaS5PcGVuQVBJT2JqZWN0O1xuXG4gIGZ1bmN0aW9uIG1lcmdlQVBJUGF0aHMoXG4gICAgYTogb3BlbmFwaS5QYXRoc09iamVjdCxcbiAgICBiOiBvcGVuYXBpLlBhdGhzT2JqZWN0XG4gICk6IG9wZW5hcGkuUGF0aHNPYmplY3Qge1xuICAgIGZvciAoY29uc3QgW3BhdGgsIHJvdXRlXSBvZiBPYmplY3QuZW50cmllcyhiKSkge1xuICAgICAgaWYgKHBhdGggaW4gYSkge1xuICAgICAgICAvLyBzcHJlYWQgY29sbGlzaW9ucyBpbnRvIG9uZVxuICAgICAgICAvLyBhc3N1bWVzIG5vIGR1cGxpY2F0ZSBNRVRIT0RzXG4gICAgICAgIGFbcGF0aF0gPSB7XG4gICAgICAgICAgLi4uYVtwYXRoXSxcbiAgICAgICAgICAuLi5yb3V0ZSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFbcGF0aF0gPSByb3V0ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGE7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVBUElQYXRocyhcbiAgICBjb21tYW5kOiBDb21tYW5kU3BlYzxhbnksIGFueSwgYW55LCBhbnk+XG4gICk6IG9wZW5hcGkuUGF0aHNPYmplY3Qge1xuICAgIGNvbnN0IGNvbW1hbmRQYXRoID0gY29tbWFuZFJwY1BhdGgoY29tbWFuZCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uKG9wdGlvbnMuY3JlYXRlUnBjUGF0aHMgPz8gdHJ1ZSA/IGNyZWF0ZVJwY09wZXJhdGlvbigpIDoge30pLFxuICAgICAgLi4uKG9wdGlvbnMuY3JlYXRlUmVzdFBhdGhzID8/IHRydWUgPyBjcmVhdGVSZXN0T3BlcmF0aW9uKCkgOiB7fSksXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGNyZWF0ZVJwY09wZXJhdGlvbigpOiBvcGVuYXBpLlBhdGhJdGVtT2JqZWN0IHtcbiAgICAgIGNvbnN0IG9iaiA9IHtcbiAgICAgICAgcG9zdDoge1xuICAgICAgICAgIG9wZXJhdGlvbklkOiBgJHtjb21tYW5kLm5hbWV9LXJwY2AsXG4gICAgICAgICAgZGVzY3JpcHRpb246IGNvbW1hbmQuZGVzY3JpcHRpb24sXG4gICAgICAgICAgc3VtbWFyeTogY29tbWFuZC5zdW1tYXJ5LFxuICAgICAgICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgICAgICAgc2NoZW1hOiBjb21tYW5kLmlucHV0LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc3BvbnNlczoge1xuICAgICAgICAgICAgMjAwOiB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogeyBzY2hlbWE6IGNvbW1hbmQub3V0cHV0Py5zY2hlbWEgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGNvbW1hbmQub3V0cHV0Py5kZXNjcmlwdGlvbiA/PyBcIk9LXCIsXG4gICAgICAgICAgICB9IHNhdGlzZmllcyBvcGVuYXBpLlJlc3BvbnNlT2JqZWN0LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0gc2F0aXNmaWVzIG9wZW5hcGkuT3BlcmF0aW9uT2JqZWN0LFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgW2AvJHtjb21tYW5kUGF0aH1gXTogb3B0aW9ucz8ub25ScGNQYXRoXG4gICAgICAgICAgPyB7IHBvc3Q6IG9wdGlvbnMub25ScGNQYXRoKGNvbW1hbmQsIG9iai5wb3N0KSB9XG4gICAgICAgICAgOiBvYmosXG4gICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZVJlc3RPcGVyYXRpb24oKTogb3BlbmFwaS5QYXRoSXRlbU9iamVjdCB7XG4gICAgICBpZiAoIWNvbW1hbmQucGF0aCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhdGhQYXJhbWV0ZXJzID0gbmV3IFNldChwYXJhbWV0ZXJOYW1lc0Zyb21QYXRoKGNvbW1hbmQucGF0aCkpO1xuXG4gICAgICBjb25zdCBrbm93blByb3BlcnRpZXMgPSBuZXcgU2V0KFtcbiAgICAgICAgLi4uT2JqZWN0LmtleXMoY29tbWFuZC5wYXJhbXMgPz8ge30pLFxuICAgICAgICAuLi5PYmplY3Qua2V5cyhjb21tYW5kLmlucHV0Py5wcm9wZXJ0aWVzID8/IHt9KSxcbiAgICAgICAgLi4ucGF0aFBhcmFtZXRlcnMsXG4gICAgICBdKTtcblxuICAgICAgLy8gZGVmYXVsdCB0byBxdWVyeSB3aGVuIHRoZSBtZXRob2Qgc2hvdWxkIG5vdCBoYXZlIGEgYm9keVxuICAgICAgY29uc3QgZGVmYXVsdFNwZWMgPVxuICAgICAgICAhY29tbWFuZC5tZXRob2QgfHxcbiAgICAgICAgW1wiR0VUXCIsIFwiREVMRVRFXCIsIFwiT1BUSU9OU1wiLCBcIkhFQURcIl0uaW5jbHVkZXMoY29tbWFuZC5tZXRob2QpXG4gICAgICAgICAgPyBcInF1ZXJ5XCJcbiAgICAgICAgICA6IFwiYm9keVwiO1xuXG4gICAgICAvKipcbiAgICAgICAqIDEuIHJlc29sdmVzIHRoZSBzY2hlbWEgbmFtZSBmb3IgdGhlIHBhcmFtZXRlciB3aGljaCBtYXkgYmUgZGlmZmVyZW50IGZyb20gdGhlIG5hbWUgaW4gdGhlIGlucHV0IHNjaGVtYVxuICAgICAgICogMi4gcmVzb2x2ZXMgdGhlIHNwZWMvaW4gdHlwZSBiYXNlZCBvbiB0aGUgc291cmNlIG9mIHRoZSBwYXJhbWV0ZXIgbmFtZSwgY3VycmVudCBtZXRob2QsIGFuZCBleHBsaWNpdCBpbnB1dFxuICAgICAgICogMy4gcmVzb2x2ZSB0aGUgc2NoZW1hIGZyb20gdGhlIGlucHV0IHNjaGVtYSB0byB1c2UgaW4gdGhlIG91dHB1dCBzY2hlbWFcbiAgICAgICAqL1xuICAgICAgY29uc3QgcmVzb2x2ZWRQYXJhbWV0ZXJzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICBbLi4ua25vd25Qcm9wZXJ0aWVzXS5tYXAoKHByb3ApID0+IHtcbiAgICAgICAgICBjb25zdCBwYXJhbSA9IGNvbW1hbmQucGFyYW1zPy5bcHJvcF07XG4gICAgICAgICAgY29uc3QgW25hbWUsIHNwZWNdID1cbiAgICAgICAgICAgIHR5cGVvZiBwYXJhbSA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICA/IFtwcm9wLCBwYXJhbV1cbiAgICAgICAgICAgICAgOiBbcGFyYW0/Lm5hbWUgPz8gcHJvcCwgcGFyYW0/LmluXTtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgbm8gZXhwbGljaXQgb3ZlcnJpZGUgYW5kIHRoZSBwYXJhbSBpcyBpbiB0aGUgcGF0aCwgdGhlIHNwZWMgaXMgcGF0aCwgZWxzZSB0aGUgY29tcHV0ZWQgZGVmYXVsdFxuICAgICAgICAgICAgICBzcGVjOiBzcGVjID8/IChwYXRoUGFyYW1ldGVycy5oYXMobmFtZSkgPyBcInBhdGhcIiA6IGRlZmF1bHRTcGVjKSxcbiAgICAgICAgICAgICAgc2NoZW1hOiBjb21tYW5kLmlucHV0Py5wcm9wZXJ0aWVzPy5bcHJvcF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0gYXMgY29uc3Q7XG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgICBjb25zdCBib2R5UHJvcGVydGllcyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgT2JqZWN0LmVudHJpZXMocmVzb2x2ZWRQYXJhbWV0ZXJzKVxuICAgICAgICAgIC5maWx0ZXIoKFssIHsgc3BlYywgc2NoZW1hIH1dKSA9PiBzcGVjID09PSBcImJvZHlcIiAmJiAhIXNjaGVtYSlcbiAgICAgICAgICAubWFwKChbbmFtZSwgeyBzY2hlbWEgfV0pID0+IFtuYW1lLCBzY2hlbWEhXSlcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGJvZHlTY2hlbWE6IG9wZW5hcGkuU2NoZW1hT2JqZWN0IHwgdW5kZWZpbmVkID1cbiAgICAgICAgY29tbWFuZC5pbnB1dD8ucHJvcGVydGllcyAmJiBPYmplY3Qua2V5cyhib2R5UHJvcGVydGllcykubGVuZ3RoID4gMFxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAuLi5jb21tYW5kLmlucHV0LFxuICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiBib2R5UHJvcGVydGllcyxcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IGNvbW1hbmQuaW5wdXQucmVxdWlyZWQ/LmZpbHRlcihcbiAgICAgICAgICAgICAgICAocCkgPT4gcCBpbiBib2R5UHJvcGVydGllc1xuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICBjb25zdCBvcGVyYXRpb25JdGVtOiBvcGVuYXBpLk9wZXJhdGlvbk9iamVjdCA9IHtcbiAgICAgICAgb3BlcmF0aW9uSWQ6IGAke2NvbW1hbmQubmFtZX0tJHtjb21tYW5kLm1ldGhvZCA/PyBcImdldFwifWAsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBjb21tYW5kLmRlc2NyaXB0aW9uLFxuICAgICAgICBzdW1tYXJ5OiBjb21tYW5kLnN1bW1hcnksXG4gICAgICAgIHBhcmFtZXRlcnM6IE9iamVjdC5lbnRyaWVzKHJlc29sdmVkUGFyYW1ldGVycykuZmxhdE1hcChcbiAgICAgICAgICAoW25hbWUsIHsgc3BlYywgc2NoZW1hIH1dKSA9PlxuICAgICAgICAgICAgc3BlYyA9PT0gXCJib2R5XCJcbiAgICAgICAgICAgICAgPyBbXVxuICAgICAgICAgICAgICA6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgaW46IHNwZWMsXG4gICAgICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYSxcbiAgICAgICAgICAgICAgICAgIH0gc2F0aXNmaWVzIG9wZW5hcGkuUGFyYW1ldGVyT2JqZWN0LFxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgKSxcbiAgICAgICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgICAuLi4oYm9keVNjaGVtYVxuICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYTogYm9keVNjaGVtYSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICByZXNwb25zZXM6IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgICBbXG4gICAgICAgICAgICAuLi4oY29tbWFuZC5vdXRwdXQgPyBbY29tbWFuZC5vdXRwdXRdIDogW10pLFxuICAgICAgICAgICAgLi4uKGNvbW1hbmQub3V0cHV0cyA/PyBbXSksXG4gICAgICAgICAgXS5tYXAoKG8pID0+IFtcbiAgICAgICAgICAgIG8ucmVzdFN0YXR1c0NvZGUsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHsgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHsgc2NoZW1hOiBvLnNjaGVtYSB9IH0sXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBvLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSBzYXRpc2ZpZXMgb3BlbmFwaS5SZXNwb25zZU9iamVjdCxcbiAgICAgICAgICBdKVxuICAgICAgICApLFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgW2l0dHlSb3V0ZVRvT3BlbkFwaVJvdXRlKGNvbW1hbmQucGF0aCldOiB7XG4gICAgICAgICAgW2NvbW1hbmQubWV0aG9kPy50b0xvY2FsZUxvd2VyQ2FzZSgpID8/IFwiZ2V0XCJdOiBvcHRpb25zPy5vblJlc3RQYXRoXG4gICAgICAgICAgICA/IG9wdGlvbnMub25SZXN0UGF0aChjb21tYW5kLCBvcGVyYXRpb25JdGVtKVxuICAgICAgICAgICAgOiBvcGVyYXRpb25JdGVtLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyYW1ldGVyTmFtZXNGcm9tUGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIHJldHVybiBBcnJheS5mcm9tKHBhdGgubWF0Y2hBbGwoL1xcLzooW14vPyNdKikvZykpXG4gICAgLm1hcCgoWywgZ10pID0+IGcpXG4gICAgLmZpbHRlcigoeCk6IHggaXMgc3RyaW5nID0+ICEheCk7XG59XG5cbi8vIE5vdGU6IG9wZW4gYXBpIGRvZXNuJ3QgaGF2ZSBhIGZvcm1hbCB3YXkgdG8gcmVwcmVzZW50IGdyZWVkeSBwYXJhbWV0ZXJzLlxuLy8gVXNpbmcgQVBJIEdhdGV3YXkncyBmb3JtYXQgb2Yge3BhcmFtK30uXG5mdW5jdGlvbiBpdHR5Um91dGVUb09wZW5BcGlSb3V0ZShyb3V0ZTogc3RyaW5nKSB7XG4gIHJldHVybiByb3V0ZSA9PT0gXCIqXCJcbiAgICA/IFwiL3twcm94eSt9XCJcbiAgICA6IHJvdXRlLnJlcGxhY2UoL1xcKi9nLCBcIntwcm94eSt9XCIpLnJlcGxhY2VBbGwoLzooW14vXSopL2csIFwieyQxfVwiKTtcbn1cbiJdfQ==

@@ -74,2 +74,12 @@ import type openapi from "openapi3-ts";

}
export interface CommandOutput {
schema?: openapi.SchemaObject;
description: string;
/**
* Status code of the output used in commands with a rest path.
*
* RPC commands always return a single 200 response.
*/
restStatusCode: number;
}
export interface CommandSpec<Name extends string = string, Input = undefined, Path extends string | undefined = undefined, Method extends HttpMethod | undefined = undefined> extends FunctionRuntimeProps {

@@ -86,3 +96,18 @@ name: Name;

input?: openapi.SchemaObject;
output?: openapi.SchemaObject;
/**
* Output used by RPC commands and Rest commands to define the output of the handler.
*
* RPC will always have a status code of 200, but can override the default description of "OK".
*
* The REST command will return a 200 response unless an alternative is provided.
*/
output?: CommandOutput;
/**
* Optional outputs provided by an http API command using passthrough mode.
*
* These commands return a {@link HttpResponse} which can define any number of outputs with custom status codes.
*
* The outputs are used to generate the {@link ApiSpecification}.
*/
outputs?: CommandOutput[];
path?: Path;

@@ -89,0 +114,0 @@ method?: Method;

@@ -11,2 +11,2 @@ "use strict";

exports.isSourceLocation = isSourceLocation;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ludGVybmFsL3NlcnZpY2Utc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFxSEEsU0FBZ0IsZ0JBQWdCLENBQUMsQ0FBTTtJQUNyQyxPQUFPLENBQ0wsQ0FBQztRQUNELE9BQU8sQ0FBQyxLQUFLLFFBQVE7UUFDckIsT0FBTyxDQUFDLENBQUMsUUFBUSxLQUFLLFFBQVE7UUFDOUIsT0FBTyxDQUFDLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FDakMsQ0FBQztBQUNKLENBQUM7QUFQRCw0Q0FPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIG9wZW5hcGkgZnJvbSBcIm9wZW5hcGkzLXRzXCI7XG5pbXBvcnQgeyBBdHRyaWJ1dGVzIH0gZnJvbSBcIi4uL2VudGl0eS9lbnRpdHkuanNcIjtcbmltcG9ydCB7IENvbXBvc2l0ZUtleVBhcnQsIFN0cmVhbVF1ZXJ5S2V5IH0gZnJvbSBcIi4uL2VudGl0eS9rZXkuanNcIjtcbmltcG9ydCB0eXBlIHsgRnVuY3Rpb25SdW50aW1lUHJvcHMgfSBmcm9tIFwiLi4vZnVuY3Rpb24tcHJvcHMuanNcIjtcbmltcG9ydCB0eXBlIHsgSHR0cE1ldGhvZCB9IGZyb20gXCIuLi9odHRwLW1ldGhvZC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBSZXN0UGFyYW1zIH0gZnJvbSBcIi4uL2h0dHAvY29tbWFuZC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBEdXJhdGlvblNjaGVkdWxlIH0gZnJvbSBcIi4uL3NjaGVkdWxlLmpzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFN1YnNjcmlwdGlvbkZpbHRlcixcbiAgU3Vic2NyaXB0aW9uUnVudGltZVByb3BzLFxufSBmcm9tIFwiLi4vc3Vic2NyaXB0aW9uLmpzXCI7XG5pbXBvcnQgeyBLZXlEZWZpbml0aW9uIH0gZnJvbSBcIi4vZW50aXR5LmpzXCI7XG5pbXBvcnQgdHlwZSB7IFRhc2tTcGVjIH0gZnJvbSBcIi4vdGFzay5qc1wiO1xuXG4vKipcbiAqIFNwZWNpZmljYXRpb24gZm9yIGFuIEV2ZW50dWFsIGFwcGxpY2F0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZVNwZWMge1xuICAvKipcbiAgICogTGlzdCBvZiB3b3JrZmxvd3NcbiAgICovXG4gIHdvcmtmbG93czogV29ya2Zsb3dTcGVjW107XG4gIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25TcGVjW107XG4gIHRhc2tzOiBUYXNrU3BlY1tdO1xuICBjb21tYW5kczogQ29tbWFuZFNwZWM8YW55LCBhbnksIGFueSwgYW55PltdO1xuICAvKipcbiAgICogT3BlbiBBUEkgMyBzY2hlbWEgZGVmaW5pdGlvbnMgZm9yIGFsbCBrbm93biBFdmVudHMgaW4gdGhpcyBTZXJ2aWNlLlxuICAgKi9cbiAgZXZlbnRzOiBFdmVudFNwZWNbXTtcbiAgLyoqXG4gICAqIEluZGl2aWR1YWxseSBidW5kbGVkIHtAbGluayBFdmVudEZ1bmN0aW9ufXMgY29udGFpbmluZyBhIHNpbmdsZSBgc3Vic2NyaXB0aW9uYCBldmVudCBoYW5kbGVyLlxuICAgKi9cbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uU3BlY1tdO1xuICBidWNrZXRzOiB7XG4gICAgYnVja2V0czogQnVja2V0U3BlY1tdO1xuICB9O1xuICBlbnRpdGllczoge1xuICAgIGVudGl0aWVzOiBFbnRpdHlTcGVjW107XG4gIH07XG4gIG9wZW5BcGk6IHtcbiAgICBpbmZvOiBvcGVuYXBpLkluZm9PYmplY3Q7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25TcGVjIHtcbiAgbWVtb3J5U2l6ZT86IG51bWJlcjtcbiAgdGltZW91dD86IER1cmF0aW9uU2NoZWR1bGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3Vic2NyaXB0aW9uU3BlYzxOYW1lIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPiB7XG4gIC8qKlxuICAgKiBVbmlxdWUgbmFtZSBvZiB0aGlzIFN1YnNjcmlwdGlvbi5cbiAgICovXG4gIG5hbWU6IE5hbWU7XG4gIC8qKlxuICAgKiBTdWJzY3JpcHRpb25zIHRoaXMgRXZlbnQgSGFuZGxlciBpcyBzdWJzY3JpYmVkIHRvLiBBbnkgZXZlbnQgZmxvd2luZ1xuICAgKiB0aHJvdWdoIHRoZSBTZXJ2aWNlJ3MgRXZlbnQgQnVzIHRoYXQgbWF0Y2ggdGhlc2UgY3JpdGVyaWEgd2lsbCBiZVxuICAgKiBzZW50IHRvIHRoaXMgTGFtYmRhIEZ1bmN0aW9uLlxuICAgKi9cbiAgZmlsdGVyczogU3Vic2NyaXB0aW9uRmlsdGVyW107XG4gIC8qKlxuICAgKiBSdW50aW1lIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgRXZlbnQgSGFuZGxlci5cbiAgICovXG4gIHByb3BzPzogU3Vic2NyaXB0aW9uUnVudGltZVByb3BzO1xuICAvKipcbiAgICogT25seSBhdmFpbGFibGUgZHVyaW5nIGV2ZW50dWFsLWluZmVyLlxuICAgKi9cbiAgc291cmNlTG9jYXRpb24/OiBTb3VyY2VMb2NhdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFdmVudFNwZWMge1xuICAvKipcbiAgICogVGhlIEV2ZW50J3MgZ2xvYmFsbHkgdW5pcXVlIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBTY2hlbWEgb2YgdGhlIEV2ZW50LlxuICAgKi9cbiAgc2NoZW1hPzogb3BlbmFwaS5TY2hlbWFPYmplY3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWFuZFNwZWM8XG4gIE5hbWUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4gIElucHV0ID0gdW5kZWZpbmVkLFxuICBQYXRoIGV4dGVuZHMgc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICBNZXRob2QgZXh0ZW5kcyBIdHRwTWV0aG9kIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4+IGV4dGVuZHMgRnVuY3Rpb25SdW50aW1lUHJvcHMge1xuICBuYW1lOiBOYW1lO1xuICAvKipcbiAgICogTG9uZyBkZXNjcmlwdGlvbiBvZiB0aGUgQVBJLCB3cml0dGVuIHRvIHRoZSBkZXNjcmlwdGlvbiBmaWVsZCBvZiB0aGUgZ2VuZXJhdGVkIG9wZW4gQVBJIHNwZWMuXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFNob3J0IGRlc2NyaXB0aW9uIG9mIHRoZSBBUEksIHdyaXR0ZW4gdG8gdGhlIHN1bW1hcnkgZmllbGQgb2YgdGhlIGdlbmVyYXRlZCBvcGVuIEFQSSBzcGVjLlxuICAgKi9cbiAgc3VtbWFyeT86IHN0cmluZztcbiAgaW5wdXQ/OiBvcGVuYXBpLlNjaGVtYU9iamVjdDtcbiAgb3V0cHV0Pzogb3BlbmFwaS5TY2hlbWFPYmplY3Q7XG4gIHBhdGg/OiBQYXRoO1xuICBtZXRob2Q/OiBNZXRob2Q7XG4gIHBhcmFtcz86IFJlc3RQYXJhbXM8SW5wdXQsIFBhdGgsIE1ldGhvZD47XG4gIHNvdXJjZUxvY2F0aW9uPzogU291cmNlTG9jYXRpb247XG4gIHBhc3NUaHJvdWdoPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFVzZWQgdG8gaXNvbGF0ZSBycGMgcGF0aHMuXG4gICAqXG4gICAqIC9ycGNbL25hbWVzcGFjZV0vY29tbWFuZFxuICAgKi9cbiAgbmFtZXNwYWNlPzogc3RyaW5nO1xuICAvKipcbiAgICogRW5hYmxlIG9yIGRpc2FibGUgc2NoZW1hIHZhbGlkYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHZhbGlkYXRlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU291cmNlTG9jYXRpb24oYTogYW55KTogYSBpcyBTb3VyY2VMb2NhdGlvbiB7XG4gIHJldHVybiAoXG4gICAgYSAmJlxuICAgIHR5cGVvZiBhID09PSBcIm9iamVjdFwiICYmXG4gICAgdHlwZW9mIGEuZmlsZU5hbWUgPT09IFwic3RyaW5nXCIgJiZcbiAgICB0eXBlb2YgYS5leHBvcnROYW1lID09PSBcInN0cmluZ1wiXG4gICk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlTG9jYXRpb24ge1xuICBmaWxlTmFtZTogc3RyaW5nO1xuICBleHBvcnROYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2NoZW1hcyB7XG4gIFtzY2hlbWFOYW1lOiBzdHJpbmddOiBvcGVuYXBpLlNjaGVtYU9iamVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd1NwZWMge1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVja2V0U3BlYyB7XG4gIG5hbWU6IHN0cmluZztcbiAgaGFuZGxlcnM6IEJ1Y2tldE5vdGlmaWNhdGlvbkhhbmRsZXJTcGVjW107XG59XG5cbmV4cG9ydCB0eXBlIEJ1Y2tldE5vdGlmaWNhdGlvbkV2ZW50VHlwZSA9IFwicHV0XCIgfCBcImNvcHlcIiB8IFwiZGVsZXRlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVja2V0Tm90aWZpY2F0aW9uSGFuZGxlck9wdGlvbnMgZXh0ZW5kcyBGdW5jdGlvblJ1bnRpbWVQcm9wcyB7XG4gIC8qKlxuICAgKiBBIGxpc3Qgb2Ygb3BlcmF0aW9ucyB0byBiZSBzZW5kIHRvIHRoZSBzdHJlYW0uXG4gICAqXG4gICAqIEBkZWZhdWx0IEFsbCBPcGVyYXRpb25zXG4gICAqL1xuICBldmVudFR5cGVzPzogQnVja2V0Tm90aWZpY2F0aW9uRXZlbnRUeXBlW107XG4gIC8qKlxuICAgKiBGaWx0ZXIgb2JqZWN0cyBpbiB0aGUgc3RyZWFtIGJ5IHByZWZpeCBvciBzdWZmaXguXG4gICAqL1xuICBmaWx0ZXJzPzogeyBwcmVmaXg/OiBzdHJpbmc7IHN1ZmZpeD86IHN0cmluZyB9W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVja2V0Tm90aWZpY2F0aW9uSGFuZGxlclNwZWMge1xuICBuYW1lOiBzdHJpbmc7XG4gIGJ1Y2tldE5hbWU6IHN0cmluZztcbiAgb3B0aW9ucz86IEJ1Y2tldE5vdGlmaWNhdGlvbkhhbmRsZXJPcHRpb25zO1xuICBzb3VyY2VMb2NhdGlvbj86IFNvdXJjZUxvY2F0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVNwZWMge1xuICBuYW1lOiBzdHJpbmc7XG4gIGtleTogS2V5RGVmaW5pdGlvbjtcbiAgLyoqXG4gICAqIEFuIE9wdGlvbmFsIHNjaGVtYSBmb3IgdGhlIGVudGl0eSB3aXRoaW4gYW4gZW50aXR5LlxuICAgKi9cbiAgYXR0cmlidXRlczogb3BlbmFwaS5TY2hlbWFPYmplY3Q7XG4gIHN0cmVhbXM6IEVudGl0eVN0cmVhbVNwZWNbXTtcbiAgaW5kaWNlczogRW50aXR5SW5kZXhTcGVjW107XG59XG5cbmV4cG9ydCB0eXBlIEVudGl0eVN0cmVhbU9wZXJhdGlvbiA9IFwiaW5zZXJ0XCIgfCBcIm1vZGlmeVwiIHwgXCJyZW1vdmVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTdHJlYW1PcHRpb25zPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyA9IEF0dHJpYnV0ZXMsXG4gIFBhcnRpdGlvbiBleHRlbmRzIENvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgQ29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWRcbj4gZXh0ZW5kcyBGdW5jdGlvblJ1bnRpbWVQcm9wcyB7XG4gIC8qKlxuICAgKiBBIGxpc3Qgb2Ygb3BlcmF0aW9ucyB0byBiZSBzZW5kIHRvIHRoZSBzdHJlYW0uXG4gICAqXG4gICAqIEBkZWZhdWx0IEFsbCBPcGVyYXRpb25zXG4gICAqL1xuICBvcGVyYXRpb25zPzogRW50aXR5U3RyZWFtT3BlcmF0aW9uW107XG4gIC8qKlxuICAgKiBXaGVuIHRydWUsIHRoZSBvbGQgdmFsdWUgd2lsbCBiZSBzZW50IHdpdGggdGhlIG5ldyB2YWx1ZS5cbiAgICovXG4gIGluY2x1ZGVPbGQ/OiBib29sZWFuO1xuICAvKipcbiAgICogT25lIG9yIG1vcmUga2V5IHF1ZXJpZXMgdGhhdCB3aWxsIGJlIGluY2x1ZGVkIGluIHRoZSBzdHJlYW0uXG4gICAqL1xuICBxdWVyeUtleXM/OiBTdHJlYW1RdWVyeUtleTxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U3RyZWFtU3BlYzxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMgPSBBdHRyaWJ1dGVzLFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBDb21wb3NpdGVLZXlQYXJ0PEF0dHI+ID0gQ29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIENvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPVxuICAgIHwgQ29tcG9zaXRlS2V5UGFydDxBdHRyPlxuICAgIHwgdW5kZWZpbmVkXG4+IHtcbiAgbmFtZTogc3RyaW5nO1xuICBlbnRpdHlOYW1lOiBzdHJpbmc7XG4gIG9wdGlvbnM/OiBFbnRpdHlTdHJlYW1PcHRpb25zPEF0dHIsIFBhcnRpdGlvbiwgU29ydD47XG4gIHNvdXJjZUxvY2F0aW9uPzogU291cmNlTG9jYXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5SW5kZXhTcGVjIHtcbiAgbmFtZTogc3RyaW5nO1xuICBlbnRpdHlOYW1lOiBzdHJpbmc7XG4gIGtleTogS2V5RGVmaW5pdGlvbjtcbiAgcGFydGl0aW9uPzogQ29tcG9zaXRlS2V5UGFydDxhbnk+O1xuICBzb3J0PzogQ29tcG9zaXRlS2V5UGFydDxhbnk+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRyYW5zYWN0aW9uU3BlYyB7XG4gIG5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudE1hbmlmZXN0IHtcbiAgc2VydmljZU5hbWU6IHN0cmluZztcbiAgc2VydmljZVNwZWM6IFNlcnZpY2VTcGVjO1xuICBzZXJ2aWNlVXJsOiBzdHJpbmc7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ludGVybmFsL3NlcnZpY2Utc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUErSUEsU0FBZ0IsZ0JBQWdCLENBQUMsQ0FBTTtJQUNyQyxPQUFPLENBQ0wsQ0FBQztRQUNELE9BQU8sQ0FBQyxLQUFLLFFBQVE7UUFDckIsT0FBTyxDQUFDLENBQUMsUUFBUSxLQUFLLFFBQVE7UUFDOUIsT0FBTyxDQUFDLENBQUMsVUFBVSxLQUFLLFFBQVEsQ0FDakMsQ0FBQztBQUNKLENBQUM7QUFQRCw0Q0FPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIG9wZW5hcGkgZnJvbSBcIm9wZW5hcGkzLXRzXCI7XG5pbXBvcnQgeyBBdHRyaWJ1dGVzIH0gZnJvbSBcIi4uL2VudGl0eS9lbnRpdHkuanNcIjtcbmltcG9ydCB7IENvbXBvc2l0ZUtleVBhcnQsIFN0cmVhbVF1ZXJ5S2V5IH0gZnJvbSBcIi4uL2VudGl0eS9rZXkuanNcIjtcbmltcG9ydCB0eXBlIHsgRnVuY3Rpb25SdW50aW1lUHJvcHMgfSBmcm9tIFwiLi4vZnVuY3Rpb24tcHJvcHMuanNcIjtcbmltcG9ydCB0eXBlIHsgSHR0cE1ldGhvZCB9IGZyb20gXCIuLi9odHRwLW1ldGhvZC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBSZXN0UGFyYW1zIH0gZnJvbSBcIi4uL2h0dHAvY29tbWFuZC5qc1wiO1xuaW1wb3J0IHR5cGUgeyBEdXJhdGlvblNjaGVkdWxlIH0gZnJvbSBcIi4uL3NjaGVkdWxlLmpzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIFN1YnNjcmlwdGlvbkZpbHRlcixcbiAgU3Vic2NyaXB0aW9uUnVudGltZVByb3BzLFxufSBmcm9tIFwiLi4vc3Vic2NyaXB0aW9uLmpzXCI7XG5pbXBvcnQgeyBLZXlEZWZpbml0aW9uIH0gZnJvbSBcIi4vZW50aXR5LmpzXCI7XG5pbXBvcnQgdHlwZSB7IFRhc2tTcGVjIH0gZnJvbSBcIi4vdGFzay5qc1wiO1xuXG4vKipcbiAqIFNwZWNpZmljYXRpb24gZm9yIGFuIEV2ZW50dWFsIGFwcGxpY2F0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZVNwZWMge1xuICAvKipcbiAgICogTGlzdCBvZiB3b3JrZmxvd3NcbiAgICovXG4gIHdvcmtmbG93czogV29ya2Zsb3dTcGVjW107XG4gIHRyYW5zYWN0aW9uczogVHJhbnNhY3Rpb25TcGVjW107XG4gIHRhc2tzOiBUYXNrU3BlY1tdO1xuICBjb21tYW5kczogQ29tbWFuZFNwZWM8YW55LCBhbnksIGFueSwgYW55PltdO1xuICAvKipcbiAgICogT3BlbiBBUEkgMyBzY2hlbWEgZGVmaW5pdGlvbnMgZm9yIGFsbCBrbm93biBFdmVudHMgaW4gdGhpcyBTZXJ2aWNlLlxuICAgKi9cbiAgZXZlbnRzOiBFdmVudFNwZWNbXTtcbiAgLyoqXG4gICAqIEluZGl2aWR1YWxseSBidW5kbGVkIHtAbGluayBFdmVudEZ1bmN0aW9ufXMgY29udGFpbmluZyBhIHNpbmdsZSBgc3Vic2NyaXB0aW9uYCBldmVudCBoYW5kbGVyLlxuICAgKi9cbiAgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uU3BlY1tdO1xuICBidWNrZXRzOiB7XG4gICAgYnVja2V0czogQnVja2V0U3BlY1tdO1xuICB9O1xuICBlbnRpdGllczoge1xuICAgIGVudGl0aWVzOiBFbnRpdHlTcGVjW107XG4gIH07XG4gIG9wZW5BcGk6IHtcbiAgICBpbmZvOiBvcGVuYXBpLkluZm9PYmplY3Q7XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25TcGVjIHtcbiAgbWVtb3J5U2l6ZT86IG51bWJlcjtcbiAgdGltZW91dD86IER1cmF0aW9uU2NoZWR1bGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3Vic2NyaXB0aW9uU3BlYzxOYW1lIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nPiB7XG4gIC8qKlxuICAgKiBVbmlxdWUgbmFtZSBvZiB0aGlzIFN1YnNjcmlwdGlvbi5cbiAgICovXG4gIG5hbWU6IE5hbWU7XG4gIC8qKlxuICAgKiBTdWJzY3JpcHRpb25zIHRoaXMgRXZlbnQgSGFuZGxlciBpcyBzdWJzY3JpYmVkIHRvLiBBbnkgZXZlbnQgZmxvd2luZ1xuICAgKiB0aHJvdWdoIHRoZSBTZXJ2aWNlJ3MgRXZlbnQgQnVzIHRoYXQgbWF0Y2ggdGhlc2UgY3JpdGVyaWEgd2lsbCBiZVxuICAgKiBzZW50IHRvIHRoaXMgTGFtYmRhIEZ1bmN0aW9uLlxuICAgKi9cbiAgZmlsdGVyczogU3Vic2NyaXB0aW9uRmlsdGVyW107XG4gIC8qKlxuICAgKiBSdW50aW1lIGNvbmZpZ3VyYXRpb24gZm9yIHRoaXMgRXZlbnQgSGFuZGxlci5cbiAgICovXG4gIHByb3BzPzogU3Vic2NyaXB0aW9uUnVudGltZVByb3BzO1xuICAvKipcbiAgICogT25seSBhdmFpbGFibGUgZHVyaW5nIGV2ZW50dWFsLWluZmVyLlxuICAgKi9cbiAgc291cmNlTG9jYXRpb24/OiBTb3VyY2VMb2NhdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFdmVudFNwZWMge1xuICAvKipcbiAgICogVGhlIEV2ZW50J3MgZ2xvYmFsbHkgdW5pcXVlIG5hbWUuXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbiBvcHRpb25hbCBTY2hlbWEgb2YgdGhlIEV2ZW50LlxuICAgKi9cbiAgc2NoZW1hPzogb3BlbmFwaS5TY2hlbWFPYmplY3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWFuZE91dHB1dCB7XG4gIHNjaGVtYT86IG9wZW5hcGkuU2NoZW1hT2JqZWN0O1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAvKipcbiAgICogU3RhdHVzIGNvZGUgb2YgdGhlIG91dHB1dCB1c2VkIGluIGNvbW1hbmRzIHdpdGggYSByZXN0IHBhdGguXG4gICAqXG4gICAqIFJQQyBjb21tYW5kcyBhbHdheXMgcmV0dXJuIGEgc2luZ2xlIDIwMCByZXNwb25zZS5cbiAgICovXG4gIHJlc3RTdGF0dXNDb2RlOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWFuZFNwZWM8XG4gIE5hbWUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmcsXG4gIElucHV0ID0gdW5kZWZpbmVkLFxuICBQYXRoIGV4dGVuZHMgc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICBNZXRob2QgZXh0ZW5kcyBIdHRwTWV0aG9kIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4+IGV4dGVuZHMgRnVuY3Rpb25SdW50aW1lUHJvcHMge1xuICBuYW1lOiBOYW1lO1xuICAvKipcbiAgICogTG9uZyBkZXNjcmlwdGlvbiBvZiB0aGUgQVBJLCB3cml0dGVuIHRvIHRoZSBkZXNjcmlwdGlvbiBmaWVsZCBvZiB0aGUgZ2VuZXJhdGVkIG9wZW4gQVBJIHNwZWMuXG4gICAqL1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFNob3J0IGRlc2NyaXB0aW9uIG9mIHRoZSBBUEksIHdyaXR0ZW4gdG8gdGhlIHN1bW1hcnkgZmllbGQgb2YgdGhlIGdlbmVyYXRlZCBvcGVuIEFQSSBzcGVjLlxuICAgKi9cbiAgc3VtbWFyeT86IHN0cmluZztcbiAgaW5wdXQ/OiBvcGVuYXBpLlNjaGVtYU9iamVjdDtcbiAgLyoqXG4gICAqIE91dHB1dCB1c2VkIGJ5IFJQQyBjb21tYW5kcyBhbmQgUmVzdCBjb21tYW5kcyB0byBkZWZpbmUgdGhlIG91dHB1dCBvZiB0aGUgaGFuZGxlci5cbiAgICpcbiAgICogUlBDIHdpbGwgYWx3YXlzIGhhdmUgYSBzdGF0dXMgY29kZSBvZiAyMDAsIGJ1dCBjYW4gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgZGVzY3JpcHRpb24gb2YgXCJPS1wiLlxuICAgKlxuICAgKiBUaGUgUkVTVCBjb21tYW5kIHdpbGwgcmV0dXJuIGEgMjAwIHJlc3BvbnNlIHVubGVzcyBhbiBhbHRlcm5hdGl2ZSBpcyBwcm92aWRlZC5cbiAgICovXG4gIG91dHB1dD86IENvbW1hbmRPdXRwdXQ7XG4gIC8qKlxuICAgKiBPcHRpb25hbCBvdXRwdXRzIHByb3ZpZGVkIGJ5IGFuIGh0dHAgQVBJIGNvbW1hbmQgdXNpbmcgcGFzc3Rocm91Z2ggbW9kZS5cbiAgICpcbiAgICogVGhlc2UgY29tbWFuZHMgcmV0dXJuIGEge0BsaW5rIEh0dHBSZXNwb25zZX0gd2hpY2ggY2FuIGRlZmluZSBhbnkgbnVtYmVyIG9mIG91dHB1dHMgd2l0aCBjdXN0b20gc3RhdHVzIGNvZGVzLlxuICAgKlxuICAgKiBUaGUgb3V0cHV0cyBhcmUgdXNlZCB0byBnZW5lcmF0ZSB0aGUge0BsaW5rIEFwaVNwZWNpZmljYXRpb259LlxuICAgKi9cbiAgb3V0cHV0cz86IENvbW1hbmRPdXRwdXRbXTtcbiAgcGF0aD86IFBhdGg7XG4gIG1ldGhvZD86IE1ldGhvZDtcbiAgcGFyYW1zPzogUmVzdFBhcmFtczxJbnB1dCwgUGF0aCwgTWV0aG9kPjtcbiAgc291cmNlTG9jYXRpb24/OiBTb3VyY2VMb2NhdGlvbjtcbiAgcGFzc1Rocm91Z2g/OiBib29sZWFuO1xuICAvKipcbiAgICogVXNlZCB0byBpc29sYXRlIHJwYyBwYXRocy5cbiAgICpcbiAgICogL3JwY1svbmFtZXNwYWNlXS9jb21tYW5kXG4gICAqL1xuICBuYW1lc3BhY2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBzY2hlbWEgdmFsaWRhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgdmFsaWRhdGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTb3VyY2VMb2NhdGlvbihhOiBhbnkpOiBhIGlzIFNvdXJjZUxvY2F0aW9uIHtcbiAgcmV0dXJuIChcbiAgICBhICYmXG4gICAgdHlwZW9mIGEgPT09IFwib2JqZWN0XCIgJiZcbiAgICB0eXBlb2YgYS5maWxlTmFtZSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgIHR5cGVvZiBhLmV4cG9ydE5hbWUgPT09IFwic3RyaW5nXCJcbiAgKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTb3VyY2VMb2NhdGlvbiB7XG4gIGZpbGVOYW1lOiBzdHJpbmc7XG4gIGV4cG9ydE5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2hlbWFzIHtcbiAgW3NjaGVtYU5hbWU6IHN0cmluZ106IG9wZW5hcGkuU2NoZW1hT2JqZWN0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93U3BlYyB7XG4gIG5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXRTcGVjIHtcbiAgbmFtZTogc3RyaW5nO1xuICBoYW5kbGVyczogQnVja2V0Tm90aWZpY2F0aW9uSGFuZGxlclNwZWNbXTtcbn1cblxuZXhwb3J0IHR5cGUgQnVja2V0Tm90aWZpY2F0aW9uRXZlbnRUeXBlID0gXCJwdXRcIiB8IFwiY29weVwiIHwgXCJkZWxldGVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXROb3RpZmljYXRpb25IYW5kbGVyT3B0aW9ucyBleHRlbmRzIEZ1bmN0aW9uUnVudGltZVByb3BzIHtcbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBvcGVyYXRpb25zIHRvIGJlIHNlbmQgdG8gdGhlIHN0cmVhbS5cbiAgICpcbiAgICogQGRlZmF1bHQgQWxsIE9wZXJhdGlvbnNcbiAgICovXG4gIGV2ZW50VHlwZXM/OiBCdWNrZXROb3RpZmljYXRpb25FdmVudFR5cGVbXTtcbiAgLyoqXG4gICAqIEZpbHRlciBvYmplY3RzIGluIHRoZSBzdHJlYW0gYnkgcHJlZml4IG9yIHN1ZmZpeC5cbiAgICovXG4gIGZpbHRlcnM/OiB7IHByZWZpeD86IHN0cmluZzsgc3VmZml4Pzogc3RyaW5nIH1bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXROb3RpZmljYXRpb25IYW5kbGVyU3BlYyB7XG4gIG5hbWU6IHN0cmluZztcbiAgYnVja2V0TmFtZTogc3RyaW5nO1xuICBvcHRpb25zPzogQnVja2V0Tm90aWZpY2F0aW9uSGFuZGxlck9wdGlvbnM7XG4gIHNvdXJjZUxvY2F0aW9uPzogU291cmNlTG9jYXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U3BlYyB7XG4gIG5hbWU6IHN0cmluZztcbiAga2V5OiBLZXlEZWZpbml0aW9uO1xuICAvKipcbiAgICogQW4gT3B0aW9uYWwgc2NoZW1hIGZvciB0aGUgZW50aXR5IHdpdGhpbiBhbiBlbnRpdHkuXG4gICAqL1xuICBhdHRyaWJ1dGVzOiBvcGVuYXBpLlNjaGVtYU9iamVjdDtcbiAgc3RyZWFtczogRW50aXR5U3RyZWFtU3BlY1tdO1xuICBpbmRpY2VzOiBFbnRpdHlJbmRleFNwZWNbXTtcbn1cblxuZXhwb3J0IHR5cGUgRW50aXR5U3RyZWFtT3BlcmF0aW9uID0gXCJpbnNlcnRcIiB8IFwibW9kaWZ5XCIgfCBcInJlbW92ZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVN0cmVhbU9wdGlvbnM8XG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzID0gQXR0cmlidXRlcyxcbiAgUGFydGl0aW9uIGV4dGVuZHMgQ29tcG9zaXRlS2V5UGFydDxBdHRyPiA9IENvbXBvc2l0ZUtleVBhcnQ8QXR0cj4sXG4gIFNvcnQgZXh0ZW5kcyBDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID1cbiAgICB8IENvbXBvc2l0ZUtleVBhcnQ8QXR0cj5cbiAgICB8IHVuZGVmaW5lZFxuPiBleHRlbmRzIEZ1bmN0aW9uUnVudGltZVByb3BzIHtcbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBvcGVyYXRpb25zIHRvIGJlIHNlbmQgdG8gdGhlIHN0cmVhbS5cbiAgICpcbiAgICogQGRlZmF1bHQgQWxsIE9wZXJhdGlvbnNcbiAgICovXG4gIG9wZXJhdGlvbnM/OiBFbnRpdHlTdHJlYW1PcGVyYXRpb25bXTtcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSwgdGhlIG9sZCB2YWx1ZSB3aWxsIGJlIHNlbnQgd2l0aCB0aGUgbmV3IHZhbHVlLlxuICAgKi9cbiAgaW5jbHVkZU9sZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBPbmUgb3IgbW9yZSBrZXkgcXVlcmllcyB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIHN0cmVhbS5cbiAgICovXG4gIHF1ZXJ5S2V5cz86IFN0cmVhbVF1ZXJ5S2V5PEF0dHIsIFBhcnRpdGlvbiwgU29ydD5bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTdHJlYW1TcGVjPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyA9IEF0dHJpYnV0ZXMsXG4gIFBhcnRpdGlvbiBleHRlbmRzIENvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgQ29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWRcbj4ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGVudGl0eU5hbWU6IHN0cmluZztcbiAgb3B0aW9ucz86IEVudGl0eVN0cmVhbU9wdGlvbnM8QXR0ciwgUGFydGl0aW9uLCBTb3J0PjtcbiAgc291cmNlTG9jYXRpb24/OiBTb3VyY2VMb2NhdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlJbmRleFNwZWMge1xuICBuYW1lOiBzdHJpbmc7XG4gIGVudGl0eU5hbWU6IHN0cmluZztcbiAga2V5OiBLZXlEZWZpbml0aW9uO1xuICBwYXJ0aXRpb24/OiBDb21wb3NpdGVLZXlQYXJ0PGFueT47XG4gIHNvcnQ/OiBDb21wb3NpdGVLZXlQYXJ0PGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25TcGVjIHtcbiAgbmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50TWFuaWZlc3Qge1xuICBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuICBzZXJ2aWNlU3BlYzogU2VydmljZVNwZWM7XG4gIHNlcnZpY2VVcmw6IHN0cmluZztcbn1cbiJdfQ==

@@ -5,3 +5,3 @@ import type openapi from "openapi3-ts";

import type { SourceLocation } from "../internal/service-spec.js";
import { Command, CommandContext, CommandHandler, CommandOptions } from "./command.js";
import { Command, CommandContext, CommandHandler, CommandOptions, CommandOutputOptions } from "./command.js";
import type { MiddlewareInput, MiddlewareOutput } from "./middleware.js";

@@ -22,2 +22,16 @@ import type { HttpRequest, HttpResponse } from "./request-response.js";

export type RouteRuntimeProps = FunctionRuntimeProps;
export interface ApiRouteProps extends RouteRuntimeProps {
/**
* Description of the route.
*
* Used to generate the {@link ApiSpecification}.
*/
description?: string;
/**
* Outputs of the route.
*
* Used to generate the {@link ApiSpecification}.
*/
outputs?: CommandOutputOptions<any>[];
}
export type HttpHandler<Context extends CommandContext = CommandContext> = (request: HttpRequest, context: Context) => HttpResponse | Promise<HttpResponse>;

@@ -28,3 +42,3 @@ export interface HttpRoute {

method: HttpMethod;
runtimeProps?: RouteRuntimeProps;
props?: ApiRouteProps;
/**

@@ -36,3 +50,3 @@ * Only available during eventual-infer

export interface HttpRouteFactory<Context extends CommandContext> {
(path: string, props: RouteRuntimeProps, handlers: HttpHandler<Context>): HttpRouter<Context>;
(path: string, props: ApiRouteProps, handlers: HttpHandler<Context>): HttpRouter<Context>;
(path: string, handlers: HttpHandler<Context>): HttpRouter<Context>;

@@ -39,0 +53,0 @@ }

@@ -56,2 +56,3 @@ import itty from "itty-router";

const command = {
description: routeProps?.description,
kind: "Command",

@@ -66,2 +67,3 @@ handler,

middlewares,
otherOutputs: routeProps?.outputs,
// we want the base HTTP request, not the transformed one

@@ -91,2 +93,2 @@ passThrough: true,

};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2h0dHAvYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUkvQixPQUFPLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbkUsT0FBTyxFQUdMLE9BQU8sRUFJUCxnQkFBZ0IsR0FDakIsTUFBTSxjQUFjLENBQUM7QUFRdEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBdUMsQ0FBQztBQUVsRTs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUErQixZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7QUFFaEUsU0FBUyxZQUFZLENBQ25CLFdBQW9DO0lBRXBDLE9BQU8sSUFBSSxLQUFLLENBQ2QsRUFBRSxFQUNGO1FBQ0UsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQTJCLEVBQUUsRUFBRTtZQUN0QyxJQUFJLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLFFBQVEsRUFBRTtnQkFDOUMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDdkI7aUJBQU0sSUFBSSxNQUFNLEtBQUssS0FBSyxFQUFFO2dCQUMzQixPQUFPLENBQUMsVUFBZ0MsRUFBRSxFQUFFLENBQzFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQzthQUN0RDtpQkFBTSxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7Z0JBQy9CLE9BQU8sQ0FBQyxHQUFHLElBQVcsRUFBRSxFQUFFO29CQUN4QixNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQzVDLGdCQUFn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IjtcbmltcG9ydCB0eXBlIG9wZW5hcGkgZnJvbSBcIm9wZW5hcGkzLXRzXCI7XG5pbXBvcnQgdHlwZSB7IEZ1bmN0aW9uUnVudGltZVByb3BzIH0gZnJvbSBcIi4uL2Z1bmN0aW9uLXByb3BzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEh0dHBNZXRob2QgfSBmcm9tIFwiLi4vaHR0cC1tZXRob2QuanNcIjtcbmltcG9ydCB7IGNvbW1hbmRzLCBnZXRFbnZpcm9ubWVudE1hbmlmZXN0IH0gZnJvbSBcIi4uL2ludGVybmFsL2dsb2JhbC5qc1wiO1xuaW1wb3J0IHsgZ2VuZXJhdGVPcGVuQVBJU3BlYyB9IGZyb20gXCIuLi9pbnRlcm5hbC9vcGVuLWFwaS1zcGVjLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFNvdXJjZUxvY2F0aW9uIH0gZnJvbSBcIi4uL2ludGVybmFsL3NlcnZpY2Utc3BlYy5qc1wiO1xuaW1wb3J0IHtcbiAgQW55Q29tbWFuZCxcbiAgQ29tbWFuZCxcbiAgY29tbWFuZCxcbiAgQ29tbWFuZENvbnRleHQsXG4gIENvbW1hbmRIYW5kbGVyLFxuICBDb21tYW5kT3B0aW9ucyxcbiAgcGFyc2VDb21tYW5kQXJncyxcbn0gZnJvbSBcIi4vY29tbWFuZC5qc1wiO1xuaW1wb3J0IHR5cGUge1xuICBNaWRkbGV3YXJlLFxuICBNaWRkbGV3YXJlSW5wdXQsXG4gIE1pZGRsZXdhcmVPdXRwdXQsXG59IGZyb20gXCIuL21pZGRsZXdhcmUuanNcIjtcbmltcG9ydCB0eXBlIHsgSHR0cFJlcXVlc3QsIEh0dHBSZXNwb25zZSB9IGZyb20gXCIuL3JlcXVlc3QtcmVzcG9uc2UuanNcIjtcblxuY29uc3Qgcm91dGVyID0gaXR0eS5Sb3V0ZXIoKSBhcyBhbnkgYXMgSHR0cFJvdXRlcjxDb21tYW5kQ29udGV4dD47XG5cbi8qKlxuICogVGhpcyBQcm94eSBpbnRlcmNlcHRzIHRoZSBtZXRob2QgIGJlaW5nIGNhbGxlZCwgZS5nLiBgZ2V0YCwgYHBvc3RgLCBldGMuXG4gKiBhbmQgaW5jbHVkZXMgdGhhdCBpbmZvcm1hdGlvbiBpbiB0aGUgY3JlYXRlZCB7QGxpbmsgSHR0cFJvdXRlfSBvYmplY3QuIFRoaXNcbiAqIGluZm9ybWF0aW9uIGlzIHRoZW4gcGlja2VkIHVwIGR1cmluZyBpbmZlciBzbyB3ZSBrbm93IHRoZSBIVFRQIG1ldGhvZFxuICogZm9yIGVhY2ggcm91dGUuXG4gKlxuICogSXQgYWxzbyBpbmNsdWRlcyBgc291cmNlTG9jYXRpb25gIChpbmplY3RlZCBieSB0aGUgY29tcGlsZXIpLCBgcGF0aGAsIGFuZFxuICogYW55IGBydW50aW1lUHJvcHNgIHBhc3NlZCBpbiBieSB0aGUgdXNlci5cbiAqXG4gKiBAc2VlIEh0dHBSb3V0ZSBmb3IgYWxsIHRoZSBtZXRhZGF0YSBhc3NvY2lhdGVkIHdpdGggZWFjaCByb3V0ZVxuICovXG5leHBvcnQgY29uc3QgYXBpOiBIdHRwUm91dGVyPENvbW1hbmRDb250ZXh0PiA9IGNyZWF0ZVJvdXRlcihbXSk7XG5cbmZ1bmN0aW9uIGNyZWF0ZVJvdXRlcjxDb250ZXh0IGV4dGVuZHMgQ29tbWFuZENvbnRleHQ+KFxuICBtaWRkbGV3YXJlcz86IE1pZGRsZXdhcmU8YW55LCBhbnk+W11cbik6IEh0dHBSb3V0ZXI8Q29udGV4dD4ge1xuICByZXR1cm4gbmV3IFByb3h5KFxuICAgIHt9LFxuICAgIHtcbiAgICAgIGdldDogKF8sIG1ldGhvZDoga2V5b2YgdHlwZW9mIHJvdXRlcikgPT4ge1xuICAgICAgICBpZiAobWV0aG9kID09PSBcInJvdXRlc1wiIHx8IG1ldGhvZCA9PT0gXCJoYW5kbGVcIikge1xuICAgICAgICAgIHJldHVybiByb3V0ZXJbbWV0aG9kXTtcbiAgICAgICAgfSBlbHNlIGlmIChtZXRob2QgPT09IFwidXNlXCIpIHtcbiAgICAgICAgICByZXR1cm4gKG1pZGRsZXdhcmU6IE1pZGRsZXdhcmU8YW55LCBhbnk+KSA9PlxuICAgICAgICAgICAgY3JlYXRlUm91dGVyKFsuLi4obWlkZGxld2FyZXMgPz8gW10pLCBtaWRkbGV3YXJlXSk7XG4gICAgICAgIH0gZWxzZSBpZiAobWV0aG9kID09PSBcImNvbW1hbmRcIikge1xuICAgICAgICAgIHJldHVybiAoLi4uYXJnczogYW55W10pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IFtzb3VyY2VMb2NhdGlvbiwgbmFtZSwgb3B0aW9ucywgaGFuZGxlcl0gPVxuICAgICAgICAgICAgICBwYXJzZUNvbW1hbmRBcmdzKGFyZ3MpO1xuICAgICAgICAgICAgcmV0dXJuIChjb21tYW5kIGFzIGFueSkoXG4gICAgICAgICAgICAgIHNvdXJjZUxvY2F0aW9uLFxuICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgLi4uKG9wdGlvbnMgPz8ge30pLFxuICAgICAgICAgICAgICAgIG1pZGRsZXdhcmVzLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBoYW5kbGVyXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIC4uLmFyZ3M6XG4gICAgICAgICAgICAgIHwgW1NvdXJjZUxvY2F0aW9uLCBzdHJpbmcsIEh0dHBIYW5kbGVyW11dXG4gICAgICAgICAgICAgIHwgW1NvdXJjZUxvY2F0aW9uLCBzdHJpbmcsIFJvdXRlUnVudGltZVByb3BzLCBIdHRwSGFuZGxlcltdXVxuICAgICAgICAgICAgICB8IFtzdHJpbmcsIEh0dHBIYW5kbGVyW11dXG4gICAgICAgICAgICAgIHwgW3N0cmluZywgUm91dGVSdW50aW1lUHJvcHMsIEh0dHBIYW5kbGVyW11dXG4gICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBbc291cmNlTG9jYXRpb24sIHBhdGgsIHJvdXRlUHJvcHMsIGhhbmRsZXJdID1cbiAgICAgICAgICAgICAgdHlwZW9mIGFyZ3NbMF0gPT09IFwib2JqZWN0XCJcbiAgICAgICAgICAgICAgICA/IHR5cGVvZiBhcmdzWzNdID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICAgID8gKGFyZ3MgYXMgYW55IGFzIFtcbiAgICAgICAgICAgICAgICAgICAgICBTb3VyY2VMb2NhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgUm91dGVSdW50aW1lUHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgSHR0cEhhbmRsZXJcbiAgICAgICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgICAgICAgIDogW1xuICAgICAgICAgICAgICAgICAgICAgIGFyZ3NbMF0gYXMgU291cmNlTG9jYXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgYXJnc1sxXSBhcyBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgIGFyZ3NbMl0gYXMgSHR0cEhhbmRsZXIsXG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICA6IHR5cGVvZiBhcmdzWzJdID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICBhcmdzWzBdLFxuICAgICAgICAgICAgICAgICAgICBhcmdzWzFdIGFzIFJvdXRlUnVudGltZVByb3BzLFxuICAgICAgICAgICAgICAgICAgICBhcmdzWzJdIGFzIEh0dHBIYW5kbGVyLFxuICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIDogW3VuZGVmaW5lZCwgYXJnc1swXSwgdW5kZWZpbmVkLCBhcmdzWzFdIGFzIEh0dHBIYW5kbGVyXTtcbiAgICAgICAgICAgIGNvbnN0IGNvbW1hbmQ6IEFueUNvbW1hbmQgPSB7XG4gICAgICAgICAgICAgIGtpbmQ6IFwiQ29tbWFuZFwiLFxuICAgICAgICAgICAgICBoYW5kbGVyLFxuICAgICAgICAgICAgICBtZW1vcnlTaXplOiByb3V0ZVByb3BzPy5tZW1vcnlTaXplLFxuICAgICAgICAgICAgICBtZXRob2Q6IG1ldGhvZC50b1VwcGVyQ2FzZSgpIGFzIEh0dHBNZXRob2QsXG4gICAgICAgICAgICAgIG5hbWU6IHBhdGgsXG4gICAgICAgICAgICAgIHBhdGg6ICh0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IGFyZ3NbMF0gOiBhcmdzWzFdKSBhcyBzdHJpbmcsXG4gICAgICAgICAgICAgIHNvdXJjZUxvY2F0aW9uLFxuICAgICAgICAgICAgICBoYW5kbGVyVGltZW91dDogcm91dGVQcm9wcz8uaGFuZGxlclRpbWVvdXQsXG4gICAgICAgICAgICAgIG1pZGRsZXdhcmVzLFxuICAgICAgICAgICAgICAvLyB3ZSB3YW50IHRoZSBiYXNlIEhUVFAgcmVxdWVzdCwgbm90IHRoZSB0cmFuc2Zvcm1lZCBvbmVcbiAgICAgICAgICAgICAgcGFzc1Rocm91Z2g6IHRydWUsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgY29tbWFuZHMucHVzaChjb21tYW5kIGFzIGFueSk7XG5cbiAgICAgICAgICAgIHJldHVybiByb3V0ZXJbbWV0aG9kXShwYXRoLCBjb21tYW5kLmhhbmRsZXIpO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfVxuICApIGFzIGFueTtcbn1cblxuZXhwb3J0IHR5cGUgUm91dGVSdW50aW1lUHJvcHMgPSBGdW5jdGlvblJ1bnRpbWVQcm9wcztcblxuZXhwb3J0IHR5cGUgSHR0cEhhbmRsZXI8Q29udGV4dCBleHRlbmRzIENvbW1hbmRDb250ZXh0ID0gQ29tbWFuZENvbnRleHQ+ID0gKFxuICByZXF1ZXN0OiBIdHRwUmVxdWVzdCxcbiAgY29udGV4dDogQ29udGV4dFxuKSA9PiBIdHRwUmVzcG9uc2UgfCBQcm9taXNlPEh0dHBSZXNwb25zZT47XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cFJvdXRlIHtcbiAgcGF0aDogc3RyaW5nO1xuICBoYW5kbGVyczogSHR0cEhhbmRsZXI8YW55PltdO1xuICBtZXRob2Q6IEh0dHBNZXRob2Q7XG4gIHJ1bnRpbWVQcm9wcz86IFJvdXRlUnVudGltZVByb3BzO1xuICAvKipcbiAgICogT25seSBhdmFpbGFibGUgZHVyaW5nIGV2ZW50dWFsLWluZmVyXG4gICAqL1xuICBzb3VyY2VMb2NhdGlvbj86IFNvdXJjZUxvY2F0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBSb3V0ZUZhY3Rvcnk8Q29udGV4dCBleHRlbmRzIENvbW1hbmRDb250ZXh0PiB7XG4gIChcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgcHJvcHM6IFJvdXRlUnVudGltZVByb3BzLFxuICAgIGhhbmRsZXJzOiBIdHRwSGFuZGxlcjxDb250ZXh0PlxuICApOiBIdHRwUm91dGVyPENvbnRleHQ+O1xuICAocGF0aDogc3RyaW5nLCBoYW5kbGVyczogSHR0cEhhbmRsZXI8Q29udGV4dD4pOiBIdHRwUm91dGVyPENvbnRleHQ+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBSb3V0ZXI8Q29udGV4dCBleHRlbmRzIENvbW1hbmRDb250ZXh0PiB7XG4gIGhhbmRsZTogKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0LCAuLi5leHRyYTogYW55KSA9PiBQcm9taXNlPEh0dHBSZXNwb25zZT47XG4gIHJvdXRlczogSHR0cFJvdXRlRW50cnlbXTtcbiAgYWxsOiBIdHRwUm91dGVGYWN0b3J5PENvbnRleHQ+O1xuICBnZXQ6IEh0dHBSb3V0ZUZhY3Rvcnk8Q29udGV4dD47XG4gIGhlYWQ6IEh0dHBSb3V0ZUZhY3Rvcnk8Q29udGV4dD47XG4gIHBvc3Q6IEh0dHBSb3V0ZUZhY3Rvcnk8Q29udGV4dD47XG4gIHB1dDogSHR0cFJvdXRlRmFjdG9yeTxDb250ZXh0PjtcbiAgZGVsZXRlOiBIdHRwUm91dGVGYWN0b3J5PENvbnRleHQ+O1xuICBjb25uZWN0OiBIdHRwUm91dGVGYWN0b3J5PENvbnRleHQ+O1xuICBvcHRpb25zOiBIdHRwUm91dGVGYWN0b3J5PENvbnRleHQ+O1xuICB0cmFjZTogSHR0cFJvdXRlRmFjdG9yeTxDb250ZXh0PjtcbiAgcGF0Y2g6IEh0dHBSb3V0ZUZhY3Rvcnk8Q29udGV4dD47XG4gIHVzZTxOZXh0Q29udGV4dCBleHRlbmRzIENvbW1hbmRDb250ZXh0PihcbiAgICBtaWRkbGV3YXJlOiAoXG4gICAgICBpbnB1dDogTWlkZGxld2FyZUlucHV0PENvbnRleHQ+XG4gICAgKSA9PiBQcm9taXNlPE1pZGRsZXdhcmVPdXRwdXQ8TmV4dENvbnRleHQ+PiB8IE1pZGRsZXdhcmVPdXRwdXQ8TmV4dENvbnRleHQ+XG4gICk6IEh0dHBSb3V0ZXI8TmV4dENvbnRleHQ+O1xuXG4gIGNvbW1hbmQ8TmFtZSBleHRlbmRzIHN0cmluZywgSW5wdXQgPSB1bmRlZmluZWQsIE91dHB1dCA9IHZvaWQ+KFxuICAgIG5hbWU6IE5hbWUsXG4gICAgaGFuZGxlcjogQ29tbWFuZEhhbmRsZXI8SW5wdXQsIE91dHB1dCwgQ29udGV4dD5cbiAgKTogQ29tbWFuZDxOYW1lLCBJbnB1dCwgT3V0cHV0LCBDb250ZXh0LCB1bmRlZmluZWQsIHVuZGVmaW5lZD47XG5cbiAgY29tbWFuZDxcbiAgICBOYW1lIGV4dGVuZHMgc3RyaW5nLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBQYXRoIGV4dGVuZHMgc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIE1ldGhvZCBleHRlbmRzIEh0dHBNZXRob2QgfCB1bmRlZmluZWRcbiAgPihcbiAgICBuYW1lOiBOYW1lLFxuICAgIG9wdGlvbnM6IENvbW1hbmRPcHRpb25zPElucHV0LCBPdXRwdXQsIFBhdGgsIE1ldGhvZD4sXG4gICAgaGFuZGxlcjogQ29tbWFuZEhhbmRsZXI8SW5wdXQsIE91dHB1dCwgQ29udGV4dD5cbiAgKTogQ29tbWFuZDxOYW1lLCBJbnB1dCwgT3V0cHV0LCBDb250ZXh0LCBQYXRoLCBNZXRob2Q+O1xufVxuXG5leHBvcnQgdHlwZSBIdHRwUm91dGVFbnRyeSA9IFtzdHJpbmcsIFJlZ0V4cCwgSHR0cEhhbmRsZXJdO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaVNwZWNpZmljYXRpb24ge1xuICBnZW5lcmF0ZTogKG9wdGlvbnM/OiB7IGluY2x1ZGVScGNQYXRocz86IGJvb2xlYW4gfSkgPT4gb3BlbmFwaS5PcGVuQVBJT2JqZWN0O1xufVxuXG5leHBvcnQgY29uc3QgQXBpU3BlY2lmaWNhdGlvbjogQXBpU3BlY2lmaWNhdGlvbiA9IHtcbiAgZ2VuZXJhdGU6IChvcHRpb25zKSA9PiB7XG4gICAgY29uc3QgZW52TWFuaWZlc3QgPSBnZXRFbnZpcm9ubWVudE1hbmlmZXN0KCk7XG4gICAgaWYgKCFlbnZNYW5pZmVzdCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRW52aXJvbm1lbnRNYW5pZmVzdCBoYXMgbm90IGJlZW4gcmVnaXN0ZXJlZC5cIik7XG4gICAgfVxuICAgIHJldHVybiBnZW5lcmF0ZU9wZW5BUElTcGVjKGVudk1hbmlmZXN0LnNlcnZpY2VTcGVjLmNvbW1hbmRzLCB7XG4gICAgICBjcmVhdGVSZXN0UGF0aHM6IHRydWUsXG4gICAgICBjcmVhdGVScGNQYXRoczogb3B0aW9ucz8uaW5jbHVkZVJwY1BhdGhzID8/IGZhbHNlLFxuICAgICAgaW5mbzogZW52TWFuaWZlc3Quc2VydmljZVNwZWMub3BlbkFwaS5pbmZvLFxuICAgICAgc2VydmVyczogW3sgdXJsOiBlbnZNYW5pZmVzdC5zZXJ2aWNlVXJsIH1dLFxuICAgIH0pO1xuICB9LFxufTtcbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2h0dHAvYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sSUFBSSxNQUFNLGFBQWEsQ0FBQztBQUkvQixPQUFPLEVBQUUsUUFBUSxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFbkUsT0FBTyxFQU9MLE9BQU8sRUFDUCxnQkFBZ0IsR0FDakIsTUFBTSxjQUFjLENBQUM7QUFRdEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBdUMsQ0FBQztBQUVsRTs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUErQixZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7QUFFaEUsU0FBUyxZQUFZLENBQ25CLFdBQW9DO0lBRXBDLE9BQU8sSUFBSSxLQUFLLENBQ2QsRUFBRSxFQUNGO1FBQ0UsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQTJCLEVBQUUsRUFBRTtZQUN0QyxJQUFJLE1BQU0sS0FBSyxRQUFRLElBQUksTUFBTSxLQUFLLFFBQVEsRUFBRTtnQkFDOUMsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7YUFDdkI7aUJBQU0sSUFBSSxNQUFNLEtBQUssS0FBSyxFQUFFO2dCQUMzQixPQUFPLENBQUMsVUFBZ0MsRUFBRSxFQUFFLENBQzFDLFlBQVksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUMsQ0FBQzthQUN0RDtpQkFBTSxJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUU7Z0JBQy9CLE9BQU8sQ0FBQyxHQUFHLElBQVcsRUFBRSxFQUFFO29CQUN4QixNQUFNLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQzVDLGdCQUFn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QUM7Q0FDRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGl0dHkgZnJvbSBcIml0dHktcm91dGVyXCI7XG5pbXBvcnQgdHlwZSBvcGVuYXBpIGZyb20gXCJvcGVuYXBpMy10c1wiO1xuaW1wb3J0IHR5cGUgeyBGdW5jdGlvblJ1bnRpbWVQcm9wcyB9IGZyb20gXCIuLi9mdW5jdGlvbi1wcm9wcy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBIdHRwTWV0aG9kIH0gZnJvbSBcIi4uL2h0dHAtbWV0aG9kLmpzXCI7XG5pbXBvcnQgeyBjb21tYW5kcywgZ2V0RW52aXJvbm1lbnRNYW5pZmVzdCB9IGZyb20gXCIuLi9pbnRlcm5hbC9nbG9iYWwuanNcIjtcbmltcG9ydCB7IGdlbmVyYXRlT3BlbkFQSVNwZWMgfSBmcm9tIFwiLi4vaW50ZXJuYWwvb3Blbi1hcGktc3BlYy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBTb3VyY2VMb2NhdGlvbiB9IGZyb20gXCIuLi9pbnRlcm5hbC9zZXJ2aWNlLXNwZWMuanNcIjtcbmltcG9ydCB7XG4gIEFueUNvbW1hbmQsXG4gIENvbW1hbmQsXG4gIENvbW1hbmRDb250ZXh0LFxuICBDb21tYW5kSGFuZGxlcixcbiAgQ29tbWFuZE9wdGlvbnMsXG4gIENvbW1hbmRPdXRwdXRPcHRpb25zLFxuICBjb21tYW5kLFxuICBwYXJzZUNvbW1hbmRBcmdzLFxufSBmcm9tIFwiLi9jb21tYW5kLmpzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIE1pZGRsZXdhcmUsXG4gIE1pZGRsZXdhcmVJbnB1dCxcbiAgTWlkZGxld2FyZU91dHB1dCxcbn0gZnJvbSBcIi4vbWlkZGxld2FyZS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBIdHRwUmVxdWVzdCwgSHR0cFJlc3BvbnNlIH0gZnJvbSBcIi4vcmVxdWVzdC1yZXNwb25zZS5qc1wiO1xuXG5jb25zdCByb3V0ZXIgPSBpdHR5LlJvdXRlcigpIGFzIGFueSBhcyBIdHRwUm91dGVyPENvbW1hbmRDb250ZXh0PjtcblxuLyoqXG4gKiBUaGlzIFByb3h5IGludGVyY2VwdHMgdGhlIG1ldGhvZCAgYmVpbmcgY2FsbGVkLCBlLmcuIGBnZXRgLCBgcG9zdGAsIGV0Yy5cbiAqIGFuZCBpbmNsdWRlcyB0aGF0IGluZm9ybWF0aW9uIGluIHRoZSBjcmVhdGVkIHtAbGluayBIdHRwUm91dGV9IG9iamVjdC4gVGhpc1xuICogaW5mb3JtYXRpb24gaXMgdGhlbiBwaWNrZWQgdXAgZHVyaW5nIGluZmVyIHNvIHdlIGtub3cgdGhlIEhUVFAgbWV0aG9kXG4gKiBmb3IgZWFjaCByb3V0ZS5cbiAqXG4gKiBJdCBhbHNvIGluY2x1ZGVzIGBzb3VyY2VMb2NhdGlvbmAgKGluamVjdGVkIGJ5IHRoZSBjb21waWxlciksIGBwYXRoYCwgYW5kXG4gKiBhbnkgYHJ1bnRpbWVQcm9wc2AgcGFzc2VkIGluIGJ5IHRoZSB1c2VyLlxuICpcbiAqIEBzZWUgSHR0cFJvdXRlIGZvciBhbGwgdGhlIG1ldGFkYXRhIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHJvdXRlXG4gKi9cbmV4cG9ydCBjb25zdCBhcGk6IEh0dHBSb3V0ZXI8Q29tbWFuZENvbnRleHQ+ID0gY3JlYXRlUm91dGVyKFtdKTtcblxuZnVuY3Rpb24gY3JlYXRlUm91dGVyPENvbnRleHQgZXh0ZW5kcyBDb21tYW5kQ29udGV4dD4oXG4gIG1pZGRsZXdhcmVzPzogTWlkZGxld2FyZTxhbnksIGFueT5bXVxuKTogSHR0cFJvdXRlcjxDb250ZXh0PiB7XG4gIHJldHVybiBuZXcgUHJveHkoXG4gICAge30sXG4gICAge1xuICAgICAgZ2V0OiAoXywgbWV0aG9kOiBrZXlvZiB0eXBlb2Ygcm91dGVyKSA9PiB7XG4gICAgICAgIGlmIChtZXRob2QgPT09IFwicm91dGVzXCIgfHwgbWV0aG9kID09PSBcImhhbmRsZVwiKSB7XG4gICAgICAgICAgcmV0dXJuIHJvdXRlclttZXRob2RdO1xuICAgICAgICB9IGVsc2UgaWYgKG1ldGhvZCA9PT0gXCJ1c2VcIikge1xuICAgICAgICAgIHJldHVybiAobWlkZGxld2FyZTogTWlkZGxld2FyZTxhbnksIGFueT4pID0+XG4gICAgICAgICAgICBjcmVhdGVSb3V0ZXIoWy4uLihtaWRkbGV3YXJlcyA/PyBbXSksIG1pZGRsZXdhcmVdKTtcbiAgICAgICAgfSBlbHNlIGlmIChtZXRob2QgPT09IFwiY29tbWFuZFwiKSB7XG4gICAgICAgICAgcmV0dXJuICguLi5hcmdzOiBhbnlbXSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgW3NvdXJjZUxvY2F0aW9uLCBuYW1lLCBvcHRpb25zLCBoYW5kbGVyXSA9XG4gICAgICAgICAgICAgIHBhcnNlQ29tbWFuZEFyZ3MoYXJncyk7XG4gICAgICAgICAgICByZXR1cm4gKGNvbW1hbmQgYXMgYW55KShcbiAgICAgICAgICAgICAgc291cmNlTG9jYXRpb24sXG4gICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAuLi4ob3B0aW9ucyA/PyB7fSksXG4gICAgICAgICAgICAgICAgbWlkZGxld2FyZXMsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIGhhbmRsZXJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgLi4uYXJnczpcbiAgICAgICAgICAgICAgfCBbU291cmNlTG9jYXRpb24sIHN0cmluZywgSHR0cEhhbmRsZXJbXV1cbiAgICAgICAgICAgICAgfCBbU291cmNlTG9jYXRpb24sIHN0cmluZywgQXBpUm91dGVQcm9wcywgSHR0cEhhbmRsZXJbXV1cbiAgICAgICAgICAgICAgfCBbc3RyaW5nLCBIdHRwSGFuZGxlcltdXVxuICAgICAgICAgICAgICB8IFtzdHJpbmcsIEFwaVJvdXRlUHJvcHMsIEh0dHBIYW5kbGVyW11dXG4gICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBbc291cmNlTG9jYXRpb24sIHBhdGgsIHJvdXRlUHJvcHMsIGhhbmRsZXJdID1cbiAgICAgICAgICAgICAgdHlwZW9mIGFyZ3NbMF0gPT09IFwib2JqZWN0XCJcbiAgICAgICAgICAgICAgICA/IHR5cGVvZiBhcmdzWzNdID09PSBcImZ1bmN0aW9uXCJcbiAgICAgICAgICAgICAgICAgID8gKGFyZ3MgYXMgYW55IGFzIFtcbiAgICAgICAgICAgICAgICAgICAgICBTb3VyY2VMb2NhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgQXBpUm91dGVQcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgICBIdHRwSGFuZGxlclxuICAgICAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgOiBbXG4gICAgICAgICAgICAgICAgICAgICAgYXJnc1swXSBhcyBTb3VyY2VMb2NhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICBhcmdzWzFdIGFzIHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgYXJnc1syXSBhcyBIdHRwSGFuZGxlcixcbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIDogdHlwZW9mIGFyZ3NbMl0gPT09IFwiZnVuY3Rpb25cIlxuICAgICAgICAgICAgICAgID8gW1xuICAgICAgICAgICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgIGFyZ3NbMF0sXG4gICAgICAgICAgICAgICAgICAgIGFyZ3NbMV0gYXMgQXBpUm91dGVQcm9wcyxcbiAgICAgICAgICAgICAgICAgICAgYXJnc1syXSBhcyBIdHRwSGFuZGxlcixcbiAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICA6IFt1bmRlZmluZWQsIGFyZ3NbMF0sIHVuZGVmaW5lZCwgYXJnc1sxXSBhcyBIdHRwSGFuZGxlcl07XG4gICAgICAgICAgICBjb25zdCBjb21tYW5kOiBBbnlDb21tYW5kID0ge1xuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogcm91dGVQcm9wcz8uZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgIGtpbmQ6IFwiQ29tbWFuZFwiLFxuICAgICAgICAgICAgICBoYW5kbGVyLFxuICAgICAgICAgICAgICBtZW1vcnlTaXplOiByb3V0ZVByb3BzPy5tZW1vcnlTaXplLFxuICAgICAgICAgICAgICBtZXRob2Q6IG1ldGhvZC50b1VwcGVyQ2FzZSgpIGFzIEh0dHBNZXRob2QsXG4gICAgICAgICAgICAgIG5hbWU6IHBhdGgsXG4gICAgICAgICAgICAgIHBhdGg6ICh0eXBlb2YgYXJnc1swXSA9PT0gXCJzdHJpbmdcIiA/IGFyZ3NbMF0gOiBhcmdzWzFdKSBhcyBzdHJpbmcsXG4gICAgICAgICAgICAgIHNvdXJjZUxvY2F0aW9uLFxuICAgICAgICAgICAgICBoYW5kbGVyVGltZW91dDogcm91dGVQcm9wcz8uaGFuZGxlclRpbWVvdXQsXG4gICAgICAgICAgICAgIG1pZGRsZXdhcmVzLFxuICAgICAgICAgICAgICBvdGhlck91dHB1dHM6IHJvdXRlUHJvcHM/Lm91dHB1dHMsXG4gICAgICAgICAgICAgIC8vIHdlIHdhbnQgdGhlIGJhc2UgSFRUUCByZXF1ZXN0LCBub3QgdGhlIHRyYW5zZm9ybWVkIG9uZVxuICAgICAgICAgICAgICBwYXNzVGhyb3VnaDogdHJ1ZSxcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb21tYW5kcy5wdXNoKGNvbW1hbmQgYXMgYW55KTtcblxuICAgICAgICAgICAgcmV0dXJuIHJvdXRlclttZXRob2RdKHBhdGgsIGNvbW1hbmQuaGFuZGxlcik7XG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9XG4gICkgYXMgYW55O1xufVxuXG5leHBvcnQgdHlwZSBSb3V0ZVJ1bnRpbWVQcm9wcyA9IEZ1bmN0aW9uUnVudGltZVByb3BzO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFwaVJvdXRlUHJvcHMgZXh0ZW5kcyBSb3V0ZVJ1bnRpbWVQcm9wcyB7XG4gIC8qKlxuICAgKiBEZXNjcmlwdGlvbiBvZiB0aGUgcm91dGUuXG4gICAqXG4gICAqIFVzZWQgdG8gZ2VuZXJhdGUgdGhlIHtAbGluayBBcGlTcGVjaWZpY2F0aW9ufS5cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogT3V0cHV0cyBvZiB0aGUgcm91dGUuXG4gICAqXG4gICAqIFVzZWQgdG8gZ2VuZXJhdGUgdGhlIHtAbGluayBBcGlTcGVjaWZpY2F0aW9ufS5cbiAgICovXG4gIG91dHB1dHM/OiBDb21tYW5kT3V0cHV0T3B0aW9uczxhbnk+W107XG59XG5cbmV4cG9ydCB0eXBlIEh0dHBIYW5kbGVyPENvbnRleHQgZXh0ZW5kcyBDb21tYW5kQ29udGV4dCA9IENvbW1hbmRDb250ZXh0PiA9IChcbiAgcmVxdWVzdDogSHR0cFJlcXVlc3QsXG4gIGNvbnRleHQ6IENvbnRleHRcbikgPT4gSHR0cFJlc3BvbnNlIHwgUHJvbWlzZTxIdHRwUmVzcG9uc2U+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBSb3V0ZSB7XG4gIHBhdGg6IHN0cmluZztcbiAgaGFuZGxlcnM6IEh0dHBIYW5kbGVyPGFueT5bXTtcbiAgbWV0aG9kOiBIdHRwTWV0aG9kO1xuICBwcm9wcz86IEFwaVJvdXRlUHJvcHM7XG4gIC8qKlxuICAgKiBPbmx5IGF2YWlsYWJsZSBkdXJpbmcgZXZlbnR1YWwtaW5mZXJcbiAgICovXG4gIHNvdXJjZUxvY2F0aW9uPzogU291cmNlTG9jYXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cFJvdXRlRmFjdG9yeTxDb250ZXh0IGV4dGVuZHMgQ29tbWFuZENvbnRleHQ+IHtcbiAgKFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICBwcm9wczogQXBpUm91dGVQcm9wcyxcbiAgICBoYW5kbGVyczogSHR0cEhhbmRsZXI8Q29udGV4dD5cbiAgKTogSHR0cFJvdXRlcjxDb250ZXh0PjtcbiAgKHBhdGg6IHN0cmluZywgaGFuZGxlcnM6IEh0dHBIYW5kbGVyPENvbnRleHQ+KTogSHR0cFJvdXRlcjxDb250ZXh0Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIdHRwUm91dGVyPENvbnRleHQgZXh0ZW5kcyBDb21tYW5kQ29udGV4dD4ge1xuICBoYW5kbGU6IChyZXF1ZXN0OiBIdHRwUmVxdWVzdCwgLi4uZXh0cmE6IGFueSkgPT4gUHJvbWlzZTxIdHRwUmVzcG9uc2U+O1xuICByb3V0ZXM6IEh0dHBSb3V0ZUVudHJ5W107XG4gIGFsbDogSHR0cFJvdXRlRmFjdG9yeTxDb250ZXh0PjtcbiAgZ2V0OiBIdHRwUm91dGVGYWN0b3J5PENvbnRleHQ+O1xuICBoZWFkOiBIdHRwUm91dGVGYWN0b3J5PENvbnRleHQ+O1xuICBwb3N0OiBIdHRwUm91dGVGYWN0b3J5PENvbnRleHQ+O1xuICBwdXQ6IEh0dHBSb3V0ZUZhY3Rvcnk8Q29udGV4dD47XG4gIGRlbGV0ZTogSHR0cFJvdXRlRmFjdG9yeTxDb250ZXh0PjtcbiAgY29ubmVjdDogSHR0cFJvdXRlRmFjdG9yeTxDb250ZXh0PjtcbiAgb3B0aW9uczogSHR0cFJvdXRlRmFjdG9yeTxDb250ZXh0PjtcbiAgdHJhY2U6IEh0dHBSb3V0ZUZhY3Rvcnk8Q29udGV4dD47XG4gIHBhdGNoOiBIdHRwUm91dGVGYWN0b3J5PENvbnRleHQ+O1xuICB1c2U8TmV4dENvbnRleHQgZXh0ZW5kcyBDb21tYW5kQ29udGV4dD4oXG4gICAgbWlkZGxld2FyZTogKFxuICAgICAgaW5wdXQ6IE1pZGRsZXdhcmVJbnB1dDxDb250ZXh0PlxuICAgICkgPT4gUHJvbWlzZTxNaWRkbGV3YXJlT3V0cHV0PE5leHRDb250ZXh0Pj4gfCBNaWRkbGV3YXJlT3V0cHV0PE5leHRDb250ZXh0PlxuICApOiBIdHRwUm91dGVyPE5leHRDb250ZXh0PjtcblxuICBjb21tYW5kPE5hbWUgZXh0ZW5kcyBzdHJpbmcsIElucHV0ID0gdW5kZWZpbmVkLCBPdXRwdXQgPSB2b2lkPihcbiAgICBuYW1lOiBOYW1lLFxuICAgIGhhbmRsZXI6IENvbW1hbmRIYW5kbGVyPElucHV0LCBPdXRwdXQsIENvbnRleHQ+XG4gICk6IENvbW1hbmQ8TmFtZSwgSW5wdXQsIE91dHB1dCwgQ29udGV4dCwgdW5kZWZpbmVkLCB1bmRlZmluZWQ+O1xuXG4gIGNvbW1hbmQ8XG4gICAgTmFtZSBleHRlbmRzIHN0cmluZyxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUGF0aCBleHRlbmRzIHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBNZXRob2QgZXh0ZW5kcyBIdHRwTWV0aG9kIHwgdW5kZWZpbmVkXG4gID4oXG4gICAgbmFtZTogTmFtZSxcbiAgICBvcHRpb25zOiBDb21tYW5kT3B0aW9uczxJbnB1dCwgT3V0cHV0LCBQYXRoLCBNZXRob2Q+LFxuICAgIGhhbmRsZXI6IENvbW1hbmRIYW5kbGVyPElucHV0LCBPdXRwdXQsIENvbnRleHQ+XG4gICk6IENvbW1hbmQ8TmFtZSwgSW5wdXQsIE91dHB1dCwgQ29udGV4dCwgUGF0aCwgTWV0aG9kPjtcbn1cblxuZXhwb3J0IHR5cGUgSHR0cFJvdXRlRW50cnkgPSBbc3RyaW5nLCBSZWdFeHAsIEh0dHBIYW5kbGVyXTtcblxuZXhwb3J0IGludGVyZmFjZSBBcGlTcGVjaWZpY2F0aW9uIHtcbiAgZ2VuZXJhdGU6IChvcHRpb25zPzogeyBpbmNsdWRlUnBjUGF0aHM/OiBib29sZWFuIH0pID0+IG9wZW5hcGkuT3BlbkFQSU9iamVjdDtcbn1cblxuZXhwb3J0IGNvbnN0IEFwaVNwZWNpZmljYXRpb246IEFwaVNwZWNpZmljYXRpb24gPSB7XG4gIGdlbmVyYXRlOiAob3B0aW9ucykgPT4ge1xuICAgIGNvbnN0IGVudk1hbmlmZXN0ID0gZ2V0RW52aXJvbm1lbnRNYW5pZmVzdCgpO1xuICAgIGlmICghZW52TWFuaWZlc3QpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIkVudmlyb25tZW50TWFuaWZlc3QgaGFzIG5vdCBiZWVuIHJlZ2lzdGVyZWQuXCIpO1xuICAgIH1cbiAgICByZXR1cm4gZ2VuZXJhdGVPcGVuQVBJU3BlYyhlbnZNYW5pZmVzdC5zZXJ2aWNlU3BlYy5jb21tYW5kcywge1xuICAgICAgY3JlYXRlUmVzdFBhdGhzOiB0cnVlLFxuICAgICAgY3JlYXRlUnBjUGF0aHM6IG9wdGlvbnM/LmluY2x1ZGVScGNQYXRocyA/PyBmYWxzZSxcbiAgICAgIGluZm86IGVudk1hbmlmZXN0LnNlcnZpY2VTcGVjLm9wZW5BcGkuaW5mbyxcbiAgICAgIHNlcnZlcnM6IFt7IHVybDogZW52TWFuaWZlc3Quc2VydmljZVVybCB9XSxcbiAgICB9KTtcbiAgfSxcbn07XG4iXX0=

@@ -1,2 +0,2 @@

import type z from "zod";
import type { z } from "zod";
import type { FunctionRuntimeProps } from "../function-props.js";

@@ -21,6 +21,10 @@ import type { HttpMethod } from "../http-method.js";

export type AnyCommand = Command<string, any, any, any, any, HttpMethod | undefined>;
export interface Command<Name extends string = string, Input = undefined, Output = void, Context extends CommandContext = CommandContext, Path extends string | undefined = undefined, Method extends HttpMethod | undefined = undefined> extends Omit<CommandSpec<Name, Input, Path, Method>, "input" | "output"> {
export interface Command<Name extends string = string, Input = undefined, Output = void, Context extends CommandContext = CommandContext, Path extends string | undefined = undefined, Method extends HttpMethod | undefined = undefined> extends Omit<CommandSpec<Name, Input, Path, Method>, "input" | "outputs" | "output"> {
kind: "Command";
input?: z.ZodType<Input>;
output?: z.ZodType<Awaited<Output>>;
output?: CommandOutputOptions<Output>;
/**
* Other possible outputs of the command, for example, errors.
*/
otherOutputs?: CommandOutputOptions<any>[];
handler: CommandHandler<Input, Output, Context>;

@@ -94,11 +98,30 @@ middlewares?: Middleware<any, any>[];

}
export type CommandHandler<T = undefined, U = void, Context extends CommandContext = CommandContext> = (input: T, context: Context) => Promise<U> | Awaited<U>;
export type CommandHandler<T = undefined, U = void, Context extends CommandContext = CommandContext> = (input: T, context: Context) => Promise<U> | U;
export type CommandInput<C extends AnyCommand> = C extends Command<any, infer Input, any, any, any, any> ? Input : never;
export interface CommandOutputOptions<Output> {
/**
* @default - {@link z.any}
*/
schema?: z.ZodType<Output>;
description: string;
restStatusCode: number;
}
export type CommandOutput<Output> = z.ZodType<Output> | CommandOutputOptions<Output>;
export interface CommandOptions<Input, Output, Path extends string | undefined, Method extends HttpMethod | undefined> extends FunctionRuntimeProps, Pick<CommandSpec<string, Input, Path, Method>, "path" | "method" | "summary" | "description" | "params" | "validate"> {
input?: z.ZodType<Input>;
output?: z.ZodType<Output>;
/**
* The output schema of the command.
*
* When a description of the output can is provided, it will be used the {@link ApiSpecification}.
*
* When a rest status is provided and the command supports a rest path, that status will be used to return a successful result.
* Note: RPC commands will always return 200.
*
* @default 200 {@link z.any} OK
*/
output?: CommandOutput<Output>;
}
export declare function command<Name extends string, Input = undefined, Output = void, Context extends CommandContext = CommandContext>(name: Name, handler: CommandHandler<Input, Output, Context>): Command<Name, Input, Output, Context, undefined, undefined>;
export declare function command<Name extends string, Input = undefined, Output = void, Context extends CommandContext = CommandContext, Path extends string | undefined = undefined, Method extends HttpMethod | undefined = undefined>(name: Name, options: CommandOptions<Input, Output, Path, Method>, handler: CommandHandler<Input, Output, Context>): Command<Name, Input, Output, Context, Path, Method>;
export declare function parseCommandArgs<Input = undefined, Output = void, Context extends CommandContext = CommandContext>(args: any[]): readonly [import("../internal/service-spec.js").SourceLocation | undefined, any, any, CommandHandler<Input, Output, Context> | undefined];
export declare function parseCommandArgs<Input = undefined, Output = void, Context extends CommandContext = CommandContext>(args: any[]): readonly [import("../internal/service-spec.js").SourceLocation | undefined, any, CommandOptions<Input, Output, any, any> | undefined, CommandHandler<Input, Output, Context>];
//# sourceMappingURL=command.d.ts.map

@@ -22,2 +22,7 @@ import { commands } from "../internal/global.js";

...options,
output: options?.output
? "restStatusCode" in options.output
? options.output
: { schema: options.output, description: "OK", restStatusCode: 200 }
: { schema: undefined, description: "OK", restStatusCode: 200 },
};

@@ -37,2 +42,2 @@ commands.push(command);

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9odHRwL2NvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBZSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBSzVFLE1BQU0sVUFBVSx5QkFBeUIsQ0FFdkMsT0FBVTtJQUNWLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO0FBQzVCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsT0FBK0M7SUFFL0MsT0FBTyxNQUNMLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsRUFDakUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQzlELENBQUM7QUF3S0QsTUFBTSxVQUFVLE9BQU8sQ0FLckIsR0FBRyxJQUFXO0lBQ2QsTUFBTSxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3hFLE1BQU0sT0FBTyxHQUFvRDtRQUMvRCxJQUFJLEVBQUUsU0FBUztRQUNmLElBQUk7UUFDSixPQUFPO1FBQ1AsY0FBYztRQUNkLEdBQUcsT0FBTztLQUNYLENBQUM7SUFDRixRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZCLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBSTlCLElBQVc7SUFDWCxPQUFPO1FBQ0wsK0dBQStHO1FBQy9HLDhGQUE4RjtRQUM5RixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQztRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMvRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxVQUFVLENBRTNCO0tBQ0wsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB6IGZyb20gXCJ6b2RcIjtcbmltcG9ydCB0eXBlIHsgRnVuY3Rpb25SdW50aW1lUHJvcHMgfSBmcm9tIFwiLi4vZnVuY3Rpb24tcHJvcHMuanNcIjtcbmltcG9ydCB0eXBlIHsgSHR0cE1ldGhvZCB9IGZyb20gXCIuLi9odHRwLW1ldGhvZC5qc1wiO1xuaW1wb3J0IHsgY29tbWFuZHMgfSBmcm9tIFwiLi4vaW50ZXJuYWwvZ2xvYmFsLmpzXCI7XG5pbXBvcnQgeyBDb21tYW5kU3BlYywgaXNTb3VyY2VMb2NhdGlvbiB9IGZyb20gXCIuLi9pbnRlcm5hbC9zZXJ2aWNlLXNwZWMuanNcIjtcbmltcG9ydCB0eXBlIHsgU2VydmljZUNvbnRleHQgfSBmcm9tIFwiLi4vc2VydmljZS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBNaWRkbGV3YXJlIH0gZnJvbSBcIi4vbWlkZGxld2FyZS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBQYXJzZVBhdGggfSBmcm9tIFwiLi9wYXRoLmpzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0RlZmF1bHROYW1lc3BhY2VDb21tYW5kPFxuICBDIGV4dGVuZHMgUGljazxBbnlDb21tYW5kLCBcIm5hbWVcIiB8IFwibmFtZXNwYWNlXCI+XG4+KGNvbW1hbmQ6IEMpOiBjb21tYW5kIGlzIEMgJiB7IG5hbWVzcGFjZTogdW5kZWZpbmVkIH0ge1xuICByZXR1cm4gIWNvbW1hbmQubmFtZXNwYWNlO1xufVxuXG4vKipcbiAqIEZvcm1hdHMgdGhlIFJQQyBSZXN0IHBhdGggZm9yIGEgY29tbWFuZC5cbiAqXG4gKiBycGNbL25hbWVzcGFjZV0vbmFtZVxuICovXG5leHBvcnQgZnVuY3Rpb24gY29tbWFuZFJwY1BhdGgoXG4gIGNvbW1hbmQ6IFBpY2s8QW55Q29tbWFuZCwgXCJuYW1lXCIgfCBcIm5hbWVzcGFjZVwiPlxuKSB7XG4gIHJldHVybiBgcnBjJHtcbiAgICBpc0RlZmF1bHROYW1lc3BhY2VDb21tYW5kKGNvbW1hbmQpID8gXCJcIiA6IGAvJHtjb21tYW5kLm5hbWVzcGFjZX1gXG4gIH0ke2NvbW1hbmQubmFtZS5zdGFydHNXaXRoKFwiL1wiKSA/IFwiXCIgOiBcIi9cIn0ke2NvbW1hbmQubmFtZX1gO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvbW1hbmRDb250ZXh0IHtcbiAgc2VydmljZTogU2VydmljZUNvbnRleHQ7XG59XG5cbmV4cG9ydCB0eXBlIEFueUNvbW1hbmQgPSBDb21tYW5kPFxuICBzdHJpbmcsXG4gIGFueSxcbiAgYW55LFxuICBhbnksXG4gIGFueSxcbiAgSHR0cE1ldGhvZCB8IHVuZGVmaW5lZFxuPjtcblxuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kPFxuICBOYW1lIGV4dGVuZHMgc3RyaW5nID0gc3RyaW5nLFxuICBJbnB1dCA9IHVuZGVmaW5lZCxcbiAgT3V0cHV0ID0gdm9pZCxcbiAgQ29udGV4dCBleHRlbmRzIENvbW1hbmRDb250ZXh0ID0gQ29tbWFuZENvbnRleHQsXG4gIFBhdGggZXh0ZW5kcyBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gIE1ldGhvZCBleHRlbmRzIEh0dHBNZXRob2QgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbj4gZXh0ZW5kcyBPbWl0PENvbW1hbmRTcGVjPE5hbWUsIElucHV0LCBQYXRoLCBNZXRob2Q+LCBcImlucHV0XCIgfCBcIm91dHB1dFwiPiB7XG4gIGtpbmQ6IFwiQ29tbWFuZFwiO1xuICBpbnB1dD86IHouWm9kVHlwZTxJbnB1dD47XG4gIG91dHB1dD86IHouWm9kVHlwZTxBd2FpdGVkPE91dHB1dD4+O1xuICBoYW5kbGVyOiBDb21tYW5kSGFuZGxlcjxJbnB1dCwgT3V0cHV0LCBDb250ZXh0PjtcbiAgbWlkZGxld2FyZXM/OiBNaWRkbGV3YXJlPGFueSwgYW55PltdO1xufVxuXG5leHBvcnQgdHlwZSBSZXN0T3B0aW9uczxcbiAgSW5wdXQsXG4gIFBhdGggZXh0ZW5kcyBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIE1ldGhvZCBleHRlbmRzIEh0dHBNZXRob2QgfCB1bmRlZmluZWRcbj4gPSB7XG4gIHBhdGg/OiBQYXRoO1xuICBtZXRob2Q/OiBNZXRob2Q7XG4gIC8qKlxuICAgKiBNYXBzIHBhcmFtZXRlcnMgZnJvbSBkaWZmZXJlbnQgc291cmNlcyB0byBhIHNpbmdsZSBpbnB1dCBvYmplY3QuXG4gICAqXG4gICAqIGBgYHRzXG4gICAqIC8vIFBPU1QgL3Byb3BlcnRpZXMvOnVzZXJJZD9leHBlY3RlZFZlcnNpb249MVxuICAgKiAvLyB7IGFnZTogMzUgfVxuICAgKiBjb21tYW5kKFwiL3Byb3BlcnRpZXMvOnVzZXJJZFwiLCB7XG4gICAqICAgIHBhcmFtczoge1xuICAgKiAgICAgICBleHBlY3RlZFZlcnNpb246IFwicXVlcnlcIixcbiAgICogICAgICAgY29udGVudFR5cGU6IHsgaW46IFwiaGVhZGVyc1wiLCBuYW1lOiBcImNvbnRlbnQtdHlwZVwiIH0sXG4gICAqICAgIH0sXG4gICAqICAgIGlucHV0OiB6Lm9iamVjdCh7XG4gICAqICAgICAgIHVzZXJJZDogei5zdHJpbmcoKSxcbiAgICogICAgICAgZXhwZWN0ZWRWZXJzaW9uOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gICAqICAgICAgIGNvbnRlbnRUeXBlOiB6LnN0cmluZygpLFxuICAgKiAgICAgICBhZ2U6IHoubnVtYmVyKClcbiAgICogICAgfSksXG4gICAqIH0sICh7dXNlcklkfSkgPT4geyBjb25zb2xlLmxvZyh1c2VySWQpOyB9KTtcbiAgICogYGBgXG4gICAqXG4gICAqIHVzZXJJZCAtIGFzc3VtZWQgdG8gY29tZSBmcm9tIHRoZSBwYXRoXG4gICAqIGV4cGVjdGVkVmVyc2lvbiAtIGV4cGxpY2l0bHkgbWFwcGVkIGZyb20gdGhlIHF1ZXJ5IHN0cmluZ1xuICAgKiBjb250ZW50VHlwZSAtIGV4cGxpY2l0bHkgbWFwcGVkIGZyb20gdGhlIGhlYWRlcnMgYW5kIHJlbmFtZWRcbiAgICogYWdlIC0gYXNzdW1lZCB0byBjb21lIGZyb20gdGhlIGJvZHlcbiAgICpcbiAgICogRGVmYXVsdCBsb2NhdGlvbjpcbiAgICogICAgR0VUL0RFTEVURS9IRUFEL09QVElPTlMgLSBxdWVyeVxuICAgKiAgICBQT1NUL1BVVC9QQVRDSCAtIGJvZHlcbiAgICovXG4gIHBhcmFtcz86IFJlc3RQYXJhbXM8SW5wdXQsIFBhdGgsIE1ldGhvZD47XG59O1xuXG5leHBvcnQgdHlwZSBSZXN0UGFyYW1zPFxuICBJbnB1dCxcbiAgUGF0aCBleHRlbmRzIHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgTWV0aG9kIGV4dGVuZHMgSHR0cE1ldGhvZCB8IHVuZGVmaW5lZFxuPiA9IHtcbiAgW2sgaW4ga2V5b2YgUGFydGlhbDxJbnB1dD5dOiBrIGV4dGVuZHMgUGFyc2VQYXRoPEV4Y2x1ZGU8UGF0aCwgdW5kZWZpbmVkPj5cbiAgICA/IFwicGF0aFwiXG4gICAgOiBNZXRob2QgZXh0ZW5kcyBcIkdFVFwiIHwgXCJERUxFVEVcIiB8IFwiSEVBRFwiIHwgXCJPUFRJT05TXCJcbiAgICA/IFJlc3RQYXJhbTxcInF1ZXJ5XCIgfCBcImhlYWRlclwiIHwgXCJwYXRoXCI+XG4gICAgOiBSZXN0UGFyYW07XG59O1xuXG5leHBvcnQgdHlwZSBSZXN0UGFyYW1Mb2NhdGlvbiA9IFwicXVlcnlcIiB8IFwiYm9keVwiIHwgXCJoZWFkZXJcIiB8IFwicGF0aFwiO1xuXG5leHBvcnQgdHlwZSBSZXN0UGFyYW08SW4gZXh0ZW5kcyBSZXN0UGFyYW1Mb2NhdGlvbiA9IFJlc3RQYXJhbUxvY2F0aW9uPiA9XG4gIHwgSW5cbiAgfCB7XG4gICAgICBpbjogRXhjbHVkZTxJbiwgXCJwYXRoXCI+O1xuICAgICAgLyoqXG4gICAgICAgKiBUaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIGluIHRoZSBzb3VyY2UgbG9jYXRpb24uXG4gICAgICAgKlxuICAgICAgICogRm9yIGV4YW1wbGUsIGlmIHRoZSBxdWVyeSBzdHJpbmcgcGFyYW1ldGVyIGlzIGBVc2VySURgLCBidXQgdGhlIGlucHV0IHNjaGVtYSB1c2VzIGB1c2VySWRgLlxuICAgICAgICpcbiAgICAgICAqIGBgYHRzXG4gICAgICAgKiAvLyAvcHJvcGVydGllcz9Vc2VySUQ9Li4uXG4gICAgICAgKiBjb21tYW5kKFwiL3Byb3BlcnRpZXNcIiwge1xuICAgICAgICogICAgcGFyYW1zOiB7XG4gICAgICAgKiAgICAgICB1c2VySWQ6IHtcbiAgICAgICAqICAgICAgICAgIGluOiBcInF1ZXJ5XCIsXG4gICAgICAgKiAgICAgICAgICBuYW1lOiBcIlVzZXJJRFwiXG4gICAgICAgKiAgICAgICB9LFxuICAgICAgICogICAgfSxcbiAgICAgICAqICAgIGlucHV0OiB6Lm9iamVjdCh7XG4gICAgICAgKiAgICAgICB1c2VySWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKVxuICAgICAgICogICAgfSksXG4gICAgICAgKiB9LCAoe3VzZXJJZH0pID0+IHsgY29uc29sZS5sb2codXNlcklkKTsgfSk7XG4gICAgICAgKiBgYGBcbiAgICAgICAqL1xuICAgICAgbmFtZT86IHN0cmluZztcbiAgICB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlcnMge1xuICBbaGVhZGVyTmFtZTogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBDb21tYW5kSGFuZGxlcjxcbiAgVCA9IHVuZGVmaW5lZCxcbiAgVSA9IHZvaWQsXG4gIENvbnRleHQgZXh0ZW5kcyBDb21tYW5kQ29udGV4dCA9IENvbW1hbmRDb250ZXh0XG4+ID0gKGlucHV0OiBULCBjb250ZXh0OiBDb250ZXh0KSA9PiBQcm9taXNlPFU+IHwgQXdhaXRlZDxVPjtcblxuZXhwb3J0IHR5cGUgQ29tbWFuZElucHV0PEMgZXh0ZW5kcyBBbnlDb21tYW5kPiA9IEMgZXh0ZW5kcyBDb21tYW5kPFxuICBhbnksXG4gIGluZmVyIElucHV0LFxuICBhbnksXG4gIGFueSxcbiAgYW55LFxuICBhbnlcbj5cbiAgPyBJbnB1dFxuICA6IG5ldmVyO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbW1hbmRPcHRpb25zPFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBQYXRoIGV4dGVuZHMgc3RyaW5nIHwgdW5kZWZpbmVkLFxuICBNZXRob2QgZXh0ZW5kcyBIdHRwTWV0aG9kIHwgdW5kZWZpbmVkXG4+IGV4dGVuZHMgRnVuY3Rpb25SdW50aW1lUHJvcHMsXG4gICAgUGljazxcbiAgICAgIENvbW1hbmRTcGVjPHN0cmluZywgSW5wdXQsIFBhdGgsIE1ldGhvZD4sXG4gICAgICBcInBhdGhcIiB8IFwibWV0aG9kXCIgfCBcInN1bW1hcnlcIiB8IFwiZGVzY3JpcHRpb25cIiB8IFwicGFyYW1zXCIgfCBcInZhbGlkYXRlXCJcbiAgICA+IHtcbiAgaW5wdXQ/OiB6LlpvZFR5cGU8SW5wdXQ+O1xuICBvdXRwdXQ/OiB6LlpvZFR5cGU8T3V0cHV0Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbW1hbmQ8XG4gIE5hbWUgZXh0ZW5kcyBzdHJpbmcsXG4gIElucHV0ID0gdW5kZWZpbmVkLFxuICBPdXRwdXQgPSB2b2lkLFxuICBDb250ZXh0IGV4dGVuZHMgQ29tbWFuZENvbnRleHQgPSBDb21tYW5kQ29udGV4dFxuPihcbiAgbmFtZTogTmFtZSxcbiAgaGFuZGxlcjogQ29tbWFuZEhhbmRsZXI8SW5wdXQsIE91dHB1dCwgQ29udGV4dD5cbik6IENvbW1hbmQ8TmFtZSwgSW5wdXQsIE91dHB1dCwgQ29udGV4dCwgdW5kZWZpbmVkLCB1bmRlZmluZWQ+O1xuXG5leHBvcnQgZnVuY3Rpb24gY29tbWFuZDxcbiAgTmFtZSBleHRlbmRzIHN0cmluZyxcbiAgSW5wdXQgPSB1bmRlZmluZWQsXG4gIE91dHB1dCA9IHZvaWQsXG4gIENvbnRleHQgZXh0ZW5kcyBDb21tYW5kQ29udGV4dCA9IENvbW1hbmRDb250ZXh0LFxuICBQYXRoIGV4dGVuZHMgc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICBNZXRob2QgZXh0ZW5kcyBIdHRwTWV0aG9kIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4+KFxuICBuYW1lOiBOYW1lLFxuICBvcHRpb25zOiBDb21tYW5kT3B0aW9uczxJbnB1dCwgT3V0cHV0LCBQYXRoLCBNZXRob2Q+LFxuICBoYW5kbGVyOiBDb21tYW5kSGFuZGxlcjxJbnB1dCwgT3V0cHV0LCBDb250ZXh0PlxuKTogQ29tbWFuZDxOYW1lLCBJbnB1dCwgT3V0cHV0LCBDb250ZXh0LCBQYXRoLCBNZXRob2Q+O1xuXG5leHBvcnQgZnVuY3Rpb24gY29tbWFuZDxcbiAgTmFtZSBleHRlbmRzIHN0cmluZyxcbiAgSW5wdXQgPSB1bmRlZmluZWQsXG4gIE91dHB1dCA9IHZvaWQsXG4gIENvbnRleHQgZXh0ZW5kcyBDb21tYW5kQ29udGV4dCA9IENvbW1hbmRDb250ZXh0XG4+KC4uLmFyZ3M6IGFueVtdKTogQ29tbWFuZDxOYW1lLCBJbnB1dCwgT3V0cHV0LCBDb250ZXh0LCBhbnksIGFueT4ge1xuICBjb25zdCBbc291cmNlTG9jYXRpb24sIG5hbWUsIG9wdGlvbnMsIGhhbmRsZXJdID0gcGFyc2VDb21tYW5kQXJncyhhcmdzKTtcbiAgY29uc3QgY29tbWFuZDogQ29tbWFuZDxOYW1lLCBJbnB1dCwgT3V0cHV0LCBDb250ZXh0LCBhbnksIGFueT4gPSB7XG4gICAga2luZDogXCJDb21tYW5kXCIsXG4gICAgbmFtZSxcbiAgICBoYW5kbGVyLFxuICAgIHNvdXJjZUxvY2F0aW9uLFxuICAgIC4uLm9wdGlvbnMsXG4gIH07XG4gIGNvbW1hbmRzLnB1c2goY29tbWFuZCk7XG4gIHJldHVybiBjb21tYW5kO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VDb21tYW5kQXJnczxcbiAgSW5wdXQgPSB1bmRlZmluZWQsXG4gIE91dHB1dCA9IHZvaWQsXG4gIENvbnRleHQgZXh0ZW5kcyBDb21tYW5kQ29udGV4dCA9IENvbW1hbmRDb250ZXh0XG4+KGFyZ3M6IGFueVtdKSB7XG4gIHJldHVybiBbXG4gICAgLy8gVE9ETzogaXMgdGhpcyA0eCBzY2FuIHRvbyBpbmVmZmljaWVudCwgb3IgaXMgdGhlIHRyYWRlLW9mZiBiZXR3ZWVuIHNpbXBsaWNpdHkgYW5kIHBlcmZvcm1hbmNlIHdvcnRoIGl0IGhlcmU/XG4gICAgLy8gaSB0aGluayBpdCB3b3VsZCBiZSBtYXJnaW5hbCBsb29waW5nIG92ZXIgYSBzbWFsbCBhcnJheSBtdWx0aXBsZSB0aW1lcyBidXQgaSBjb3VsZCBiZSB3cm9uZ1xuICAgIGFyZ3MuZmluZChpc1NvdXJjZUxvY2F0aW9uKSxcbiAgICBhcmdzLmZpbmQoKGEpID0+IHR5cGVvZiBhID09PSBcInN0cmluZ1wiKSxcbiAgICBhcmdzLmZpbmQoKGEpID0+IHR5cGVvZiBhID09PSBcIm9iamVjdFwiICYmICFpc1NvdXJjZUxvY2F0aW9uKGEpKSxcbiAgICBhcmdzLmZpbmQoKGEpID0+IHR5cGVvZiBhID09PSBcImZ1bmN0aW9uXCIpIGFzXG4gICAgICB8IENvbW1hbmRIYW5kbGVyPElucHV0LCBPdXRwdXQsIENvbnRleHQ+XG4gICAgICB8IHVuZGVmaW5lZCxcbiAgXSBhcyBjb25zdDtcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9odHRwL2NvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBZSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBSzVFLE1BQU0sVUFBVSx5QkFBeUIsQ0FFdkMsT0FBVTtJQUNWLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO0FBQzVCLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLGNBQWMsQ0FDNUIsT0FBK0M7SUFFL0MsT0FBTyxNQUNMLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxDQUFDLFNBQVMsRUFDakUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQzlELENBQUM7QUFzTUQsTUFBTSxVQUFVLE9BQU8sQ0FLckIsR0FBRyxJQUFXO0lBQ2QsTUFBTSxDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLGdCQUFnQixDQUcvRCxJQUFJLENBQUMsQ0FBQztJQUNSLE1BQU0sT0FBTyxHQUFvRDtRQUMvRCxJQUFJLEVBQUUsU0FBUztRQUNmLElBQUk7UUFDSixPQUFPO1FBQ1AsY0FBYztRQUNkLEdBQUcsT0FBTztRQUNWLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTTtZQUNyQixDQUFDLENBQUMsZ0JBQWdCLElBQUksT0FBTyxDQUFDLE1BQU07Z0JBQ2xDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTTtnQkFDaEIsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsR0FBRyxFQUFFO1lBQ3RFLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsR0FBRyxFQUFFO0tBQ2xFLENBQUM7SUFDRixRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZCLE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBSTlCLElBQVc7SUFDWCxPQUFPO1FBQ0wsK0dBQStHO1FBQy9HLDhGQUE4RjtRQUM5RixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQztRQUN2QyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxRQUFRLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FFakQ7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxVQUFVLENBSXZDO0tBQ08sQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IHogfSBmcm9tIFwiem9kXCI7XG5pbXBvcnQgdHlwZSB7IEZ1bmN0aW9uUnVudGltZVByb3BzIH0gZnJvbSBcIi4uL2Z1bmN0aW9uLXByb3BzLmpzXCI7XG5pbXBvcnQgdHlwZSB7IEh0dHBNZXRob2QgfSBmcm9tIFwiLi4vaHR0cC1tZXRob2QuanNcIjtcbmltcG9ydCB7IGNvbW1hbmRzIH0gZnJvbSBcIi4uL2ludGVybmFsL2dsb2JhbC5qc1wiO1xuaW1wb3J0IHsgQ29tbWFuZFNwZWMsIGlzU291cmNlTG9jYXRpb24gfSBmcm9tIFwiLi4vaW50ZXJuYWwvc2VydmljZS1zcGVjLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFNlcnZpY2VDb250ZXh0IH0gZnJvbSBcIi4uL3NlcnZpY2UuanNcIjtcbmltcG9ydCB0eXBlIHsgTWlkZGxld2FyZSB9IGZyb20gXCIuL21pZGRsZXdhcmUuanNcIjtcbmltcG9ydCB0eXBlIHsgUGFyc2VQYXRoIH0gZnJvbSBcIi4vcGF0aC5qc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNEZWZhdWx0TmFtZXNwYWNlQ29tbWFuZDxcbiAgQyBleHRlbmRzIFBpY2s8QW55Q29tbWFuZCwgXCJuYW1lXCIgfCBcIm5hbWVzcGFjZVwiPlxuPihjb21tYW5kOiBDKTogY29tbWFuZCBpcyBDICYgeyBuYW1lc3BhY2U6IHVuZGVmaW5lZCB9IHtcbiAgcmV0dXJuICFjb21tYW5kLm5hbWVzcGFjZTtcbn1cblxuLyoqXG4gKiBGb3JtYXRzIHRoZSBSUEMgUmVzdCBwYXRoIGZvciBhIGNvbW1hbmQuXG4gKlxuICogcnBjWy9uYW1lc3BhY2VdL25hbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbW1hbmRScGNQYXRoKFxuICBjb21tYW5kOiBQaWNrPEFueUNvbW1hbmQsIFwibmFtZVwiIHwgXCJuYW1lc3BhY2VcIj5cbikge1xuICByZXR1cm4gYHJwYyR7XG4gICAgaXNEZWZhdWx0TmFtZXNwYWNlQ29tbWFuZChjb21tYW5kKSA/IFwiXCIgOiBgLyR7Y29tbWFuZC5uYW1lc3BhY2V9YFxuICB9JHtjb21tYW5kLm5hbWUuc3RhcnRzV2l0aChcIi9cIikgPyBcIlwiIDogXCIvXCJ9JHtjb21tYW5kLm5hbWV9YDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kQ29udGV4dCB7XG4gIHNlcnZpY2U6IFNlcnZpY2VDb250ZXh0O1xufVxuXG5leHBvcnQgdHlwZSBBbnlDb21tYW5kID0gQ29tbWFuZDxcbiAgc3RyaW5nLFxuICBhbnksXG4gIGFueSxcbiAgYW55LFxuICBhbnksXG4gIEh0dHBNZXRob2QgfCB1bmRlZmluZWRcbj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWFuZDxcbiAgTmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbiAgSW5wdXQgPSB1bmRlZmluZWQsXG4gIE91dHB1dCA9IHZvaWQsXG4gIENvbnRleHQgZXh0ZW5kcyBDb21tYW5kQ29udGV4dCA9IENvbW1hbmRDb250ZXh0LFxuICBQYXRoIGV4dGVuZHMgc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICBNZXRob2QgZXh0ZW5kcyBIdHRwTWV0aG9kIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4+IGV4dGVuZHMgT21pdDxcbiAgICBDb21tYW5kU3BlYzxOYW1lLCBJbnB1dCwgUGF0aCwgTWV0aG9kPixcbiAgICBcImlucHV0XCIgfCBcIm91dHB1dHNcIiB8IFwib3V0cHV0XCJcbiAgPiB7XG4gIGtpbmQ6IFwiQ29tbWFuZFwiO1xuICBpbnB1dD86IHouWm9kVHlwZTxJbnB1dD47XG4gIG91dHB1dD86IENvbW1hbmRPdXRwdXRPcHRpb25zPE91dHB1dD47XG4gIC8qKlxuICAgKiBPdGhlciBwb3NzaWJsZSBvdXRwdXRzIG9mIHRoZSBjb21tYW5kLCBmb3IgZXhhbXBsZSwgZXJyb3JzLlxuICAgKi9cbiAgb3RoZXJPdXRwdXRzPzogQ29tbWFuZE91dHB1dE9wdGlvbnM8YW55PltdO1xuICBoYW5kbGVyOiBDb21tYW5kSGFuZGxlcjxJbnB1dCwgT3V0cHV0LCBDb250ZXh0PjtcbiAgbWlkZGxld2FyZXM/OiBNaWRkbGV3YXJlPGFueSwgYW55PltdO1xufVxuXG5leHBvcnQgdHlwZSBSZXN0T3B0aW9uczxcbiAgSW5wdXQsXG4gIFBhdGggZXh0ZW5kcyBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIE1ldGhvZCBleHRlbmRzIEh0dHBNZXRob2QgfCB1bmRlZmluZWRcbj4gPSB7XG4gIHBhdGg/OiBQYXRoO1xuICBtZXRob2Q/OiBNZXRob2Q7XG4gIC8qKlxuICAgKiBNYXBzIHBhcmFtZXRlcnMgZnJvbSBkaWZmZXJlbnQgc291cmNlcyB0byBhIHNpbmdsZSBpbnB1dCBvYmplY3QuXG4gICAqXG4gICAqIGBgYHRzXG4gICAqIC8vIFBPU1QgL3Byb3BlcnRpZXMvOnVzZXJJZD9leHBlY3RlZFZlcnNpb249MVxuICAgKiAvLyB7IGFnZTogMzUgfVxuICAgKiBjb21tYW5kKFwiL3Byb3BlcnRpZXMvOnVzZXJJZFwiLCB7XG4gICAqICAgIHBhcmFtczoge1xuICAgKiAgICAgICBleHBlY3RlZFZlcnNpb246IFwicXVlcnlcIixcbiAgICogICAgICAgY29udGVudFR5cGU6IHsgaW46IFwiaGVhZGVyc1wiLCBuYW1lOiBcImNvbnRlbnQtdHlwZVwiIH0sXG4gICAqICAgIH0sXG4gICAqICAgIGlucHV0OiB6Lm9iamVjdCh7XG4gICAqICAgICAgIHVzZXJJZDogei5zdHJpbmcoKSxcbiAgICogICAgICAgZXhwZWN0ZWRWZXJzaW9uOiB6Lm51bWJlcigpLm9wdGlvbmFsKCksXG4gICAqICAgICAgIGNvbnRlbnRUeXBlOiB6LnN0cmluZygpLFxuICAgKiAgICAgICBhZ2U6IHoubnVtYmVyKClcbiAgICogICAgfSksXG4gICAqIH0sICh7dXNlcklkfSkgPT4geyBjb25zb2xlLmxvZyh1c2VySWQpOyB9KTtcbiAgICogYGBgXG4gICAqXG4gICAqIHVzZXJJZCAtIGFzc3VtZWQgdG8gY29tZSBmcm9tIHRoZSBwYXRoXG4gICAqIGV4cGVjdGVkVmVyc2lvbiAtIGV4cGxpY2l0bHkgbWFwcGVkIGZyb20gdGhlIHF1ZXJ5IHN0cmluZ1xuICAgKiBjb250ZW50VHlwZSAtIGV4cGxpY2l0bHkgbWFwcGVkIGZyb20gdGhlIGhlYWRlcnMgYW5kIHJlbmFtZWRcbiAgICogYWdlIC0gYXNzdW1lZCB0byBjb21lIGZyb20gdGhlIGJvZHlcbiAgICpcbiAgICogRGVmYXVsdCBsb2NhdGlvbjpcbiAgICogICAgR0VUL0RFTEVURS9IRUFEL09QVElPTlMgLSBxdWVyeVxuICAgKiAgICBQT1NUL1BVVC9QQVRDSCAtIGJvZHlcbiAgICovXG4gIHBhcmFtcz86IFJlc3RQYXJhbXM8SW5wdXQsIFBhdGgsIE1ldGhvZD47XG59O1xuXG5leHBvcnQgdHlwZSBSZXN0UGFyYW1zPFxuICBJbnB1dCxcbiAgUGF0aCBleHRlbmRzIHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgTWV0aG9kIGV4dGVuZHMgSHR0cE1ldGhvZCB8IHVuZGVmaW5lZFxuPiA9IHtcbiAgW2sgaW4ga2V5b2YgUGFydGlhbDxJbnB1dD5dOiBrIGV4dGVuZHMgUGFyc2VQYXRoPEV4Y2x1ZGU8UGF0aCwgdW5kZWZpbmVkPj5cbiAgICA/IFwicGF0aFwiXG4gICAgOiBNZXRob2QgZXh0ZW5kcyBcIkdFVFwiIHwgXCJERUxFVEVcIiB8IFwiSEVBRFwiIHwgXCJPUFRJT05TXCJcbiAgICA/IFJlc3RQYXJhbTxcInF1ZXJ5XCIgfCBcImhlYWRlclwiIHwgXCJwYXRoXCI+XG4gICAgOiBSZXN0UGFyYW07XG59O1xuXG5leHBvcnQgdHlwZSBSZXN0UGFyYW1Mb2NhdGlvbiA9IFwicXVlcnlcIiB8IFwiYm9keVwiIHwgXCJoZWFkZXJcIiB8IFwicGF0aFwiO1xuXG5leHBvcnQgdHlwZSBSZXN0UGFyYW08SW4gZXh0ZW5kcyBSZXN0UGFyYW1Mb2NhdGlvbiA9IFJlc3RQYXJhbUxvY2F0aW9uPiA9XG4gIHwgSW5cbiAgfCB7XG4gICAgICBpbjogRXhjbHVkZTxJbiwgXCJwYXRoXCI+O1xuICAgICAgLyoqXG4gICAgICAgKiBUaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIGluIHRoZSBzb3VyY2UgbG9jYXRpb24uXG4gICAgICAgKlxuICAgICAgICogRm9yIGV4YW1wbGUsIGlmIHRoZSBxdWVyeSBzdHJpbmcgcGFyYW1ldGVyIGlzIGBVc2VySURgLCBidXQgdGhlIGlucHV0IHNjaGVtYSB1c2VzIGB1c2VySWRgLlxuICAgICAgICpcbiAgICAgICAqIGBgYHRzXG4gICAgICAgKiAvLyAvcHJvcGVydGllcz9Vc2VySUQ9Li4uXG4gICAgICAgKiBjb21tYW5kKFwiL3Byb3BlcnRpZXNcIiwge1xuICAgICAgICogICAgcGFyYW1zOiB7XG4gICAgICAgKiAgICAgICB1c2VySWQ6IHtcbiAgICAgICAqICAgICAgICAgIGluOiBcInF1ZXJ5XCIsXG4gICAgICAgKiAgICAgICAgICBuYW1lOiBcIlVzZXJJRFwiXG4gICAgICAgKiAgICAgICB9LFxuICAgICAgICogICAgfSxcbiAgICAgICAqICAgIGlucHV0OiB6Lm9iamVjdCh7XG4gICAgICAgKiAgICAgICB1c2VySWQ6IHouc3RyaW5nKCkub3B0aW9uYWwoKVxuICAgICAgICogICAgfSksXG4gICAgICAgKiB9LCAoe3VzZXJJZH0pID0+IHsgY29uc29sZS5sb2codXNlcklkKTsgfSk7XG4gICAgICAgKiBgYGBcbiAgICAgICAqL1xuICAgICAgbmFtZT86IHN0cmluZztcbiAgICB9O1xuXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlcnMge1xuICBbaGVhZGVyTmFtZTogc3RyaW5nXTogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBDb21tYW5kSGFuZGxlcjxcbiAgVCA9IHVuZGVmaW5lZCxcbiAgVSA9IHZvaWQsXG4gIENvbnRleHQgZXh0ZW5kcyBDb21tYW5kQ29udGV4dCA9IENvbW1hbmRDb250ZXh0XG4+ID0gKGlucHV0OiBULCBjb250ZXh0OiBDb250ZXh0KSA9PiBQcm9taXNlPFU+IHwgVTtcblxuZXhwb3J0IHR5cGUgQ29tbWFuZElucHV0PEMgZXh0ZW5kcyBBbnlDb21tYW5kPiA9IEMgZXh0ZW5kcyBDb21tYW5kPFxuICBhbnksXG4gIGluZmVyIElucHV0LFxuICBhbnksXG4gIGFueSxcbiAgYW55LFxuICBhbnlcbj5cbiAgPyBJbnB1dFxuICA6IG5ldmVyO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbW1hbmRPdXRwdXRPcHRpb25zPE91dHB1dD4ge1xuICAvKipcbiAgICogQGRlZmF1bHQgLSB7QGxpbmsgei5hbnl9XG4gICAqL1xuICBzY2hlbWE/OiB6LlpvZFR5cGU8T3V0cHV0PjtcbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgcmVzdFN0YXR1c0NvZGU6IG51bWJlcjtcbn1cblxuZXhwb3J0IHR5cGUgQ29tbWFuZE91dHB1dDxPdXRwdXQ+ID1cbiAgfCB6LlpvZFR5cGU8T3V0cHV0PlxuICB8IENvbW1hbmRPdXRwdXRPcHRpb25zPE91dHB1dD47XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWFuZE9wdGlvbnM8XG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFBhdGggZXh0ZW5kcyBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIE1ldGhvZCBleHRlbmRzIEh0dHBNZXRob2QgfCB1bmRlZmluZWRcbj4gZXh0ZW5kcyBGdW5jdGlvblJ1bnRpbWVQcm9wcyxcbiAgICBQaWNrPFxuICAgICAgQ29tbWFuZFNwZWM8c3RyaW5nLCBJbnB1dCwgUGF0aCwgTWV0aG9kPixcbiAgICAgIFwicGF0aFwiIHwgXCJtZXRob2RcIiB8IFwic3VtbWFyeVwiIHwgXCJkZXNjcmlwdGlvblwiIHwgXCJwYXJhbXNcIiB8IFwidmFsaWRhdGVcIlxuICAgID4ge1xuICBpbnB1dD86IHouWm9kVHlwZTxJbnB1dD47XG4gIC8qKlxuICAgKiBUaGUgb3V0cHV0IHNjaGVtYSBvZiB0aGUgY29tbWFuZC5cbiAgICpcbiAgICogV2hlbiBhIGRlc2NyaXB0aW9uIG9mIHRoZSBvdXRwdXQgY2FuIGlzIHByb3ZpZGVkLCBpdCB3aWxsIGJlIHVzZWQgdGhlIHtAbGluayBBcGlTcGVjaWZpY2F0aW9ufS5cbiAgICpcbiAgICogV2hlbiBhIHJlc3Qgc3RhdHVzIGlzIHByb3ZpZGVkIGFuZCB0aGUgY29tbWFuZCBzdXBwb3J0cyBhIHJlc3QgcGF0aCwgdGhhdCBzdGF0dXMgd2lsbCBiZSB1c2VkIHRvIHJldHVybiBhIHN1Y2Nlc3NmdWwgcmVzdWx0LlxuICAgKiBOb3RlOiBSUEMgY29tbWFuZHMgd2lsbCBhbHdheXMgcmV0dXJuIDIwMC5cbiAgICpcbiAgICogQGRlZmF1bHQgMjAwIHtAbGluayB6LmFueX0gT0tcbiAgICovXG4gIG91dHB1dD86IENvbW1hbmRPdXRwdXQ8T3V0cHV0Pjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvbW1hbmQ8XG4gIE5hbWUgZXh0ZW5kcyBzdHJpbmcsXG4gIElucHV0ID0gdW5kZWZpbmVkLFxuICBPdXRwdXQgPSB2b2lkLFxuICBDb250ZXh0IGV4dGVuZHMgQ29tbWFuZENvbnRleHQgPSBDb21tYW5kQ29udGV4dFxuPihcbiAgbmFtZTogTmFtZSxcbiAgaGFuZGxlcjogQ29tbWFuZEhhbmRsZXI8SW5wdXQsIE91dHB1dCwgQ29udGV4dD5cbik6IENvbW1hbmQ8TmFtZSwgSW5wdXQsIE91dHB1dCwgQ29udGV4dCwgdW5kZWZpbmVkLCB1bmRlZmluZWQ+O1xuXG5leHBvcnQgZnVuY3Rpb24gY29tbWFuZDxcbiAgTmFtZSBleHRlbmRzIHN0cmluZyxcbiAgSW5wdXQgPSB1bmRlZmluZWQsXG4gIE91dHB1dCA9IHZvaWQsXG4gIENvbnRleHQgZXh0ZW5kcyBDb21tYW5kQ29udGV4dCA9IENvbW1hbmRDb250ZXh0LFxuICBQYXRoIGV4dGVuZHMgc3RyaW5nIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkLFxuICBNZXRob2QgZXh0ZW5kcyBIdHRwTWV0aG9kIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkXG4+KFxuICBuYW1lOiBOYW1lLFxuICBvcHRpb25zOiBDb21tYW5kT3B0aW9uczxJbnB1dCwgT3V0cHV0LCBQYXRoLCBNZXRob2Q+LFxuICBoYW5kbGVyOiBDb21tYW5kSGFuZGxlcjxJbnB1dCwgT3V0cHV0LCBDb250ZXh0PlxuKTogQ29tbWFuZDxOYW1lLCBJbnB1dCwgT3V0cHV0LCBDb250ZXh0LCBQYXRoLCBNZXRob2Q+O1xuXG5leHBvcnQgZnVuY3Rpb24gY29tbWFuZDxcbiAgTmFtZSBleHRlbmRzIHN0cmluZyxcbiAgSW5wdXQgPSB1bmRlZmluZWQsXG4gIE91dHB1dCA9IHZvaWQsXG4gIENvbnRleHQgZXh0ZW5kcyBDb21tYW5kQ29udGV4dCA9IENvbW1hbmRDb250ZXh0XG4+KC4uLmFyZ3M6IGFueVtdKTogQ29tbWFuZDxOYW1lLCBJbnB1dCwgT3V0cHV0LCBDb250ZXh0LCBhbnksIGFueT4ge1xuICBjb25zdCBbc291cmNlTG9jYXRpb24sIG5hbWUsIG9wdGlvbnMsIGhhbmRsZXJdID0gcGFyc2VDb21tYW5kQXJnczxcbiAgICBJbnB1dCxcbiAgICBPdXRwdXRcbiAgPihhcmdzKTtcbiAgY29uc3QgY29tbWFuZDogQ29tbWFuZDxOYW1lLCBJbnB1dCwgT3V0cHV0LCBDb250ZXh0LCBhbnksIGFueT4gPSB7XG4gICAga2luZDogXCJDb21tYW5kXCIsXG4gICAgbmFtZSxcbiAgICBoYW5kbGVyLFxuICAgIHNvdXJjZUxvY2F0aW9uLFxuICAgIC4uLm9wdGlvbnMsXG4gICAgb3V0cHV0OiBvcHRpb25zPy5vdXRwdXRcbiAgICAgID8gXCJyZXN0U3RhdHVzQ29kZVwiIGluIG9wdGlvbnMub3V0cHV0XG4gICAgICAgID8gb3B0aW9ucy5vdXRwdXRcbiAgICAgICAgOiB7IHNjaGVtYTogb3B0aW9ucy5vdXRwdXQsIGRlc2NyaXB0aW9uOiBcIk9LXCIsIHJlc3RTdGF0dXNDb2RlOiAyMDAgfVxuICAgICAgOiB7IHNjaGVtYTogdW5kZWZpbmVkLCBkZXNjcmlwdGlvbjogXCJPS1wiLCByZXN0U3RhdHVzQ29kZTogMjAwIH0sXG4gIH07XG4gIGNvbW1hbmRzLnB1c2goY29tbWFuZCk7XG4gIHJldHVybiBjb21tYW5kO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VDb21tYW5kQXJnczxcbiAgSW5wdXQgPSB1bmRlZmluZWQsXG4gIE91dHB1dCA9IHZvaWQsXG4gIENvbnRleHQgZXh0ZW5kcyBDb21tYW5kQ29udGV4dCA9IENvbW1hbmRDb250ZXh0XG4+KGFyZ3M6IGFueVtdKSB7XG4gIHJldHVybiBbXG4gICAgLy8gVE9ETzogaXMgdGhpcyA0eCBzY2FuIHRvbyBpbmVmZmljaWVudCwgb3IgaXMgdGhlIHRyYWRlLW9mZiBiZXR3ZWVuIHNpbXBsaWNpdHkgYW5kIHBlcmZvcm1hbmNlIHdvcnRoIGl0IGhlcmU/XG4gICAgLy8gaSB0aGluayBpdCB3b3VsZCBiZSBtYXJnaW5hbCBsb29waW5nIG92ZXIgYSBzbWFsbCBhcnJheSBtdWx0aXBsZSB0aW1lcyBidXQgaSBjb3VsZCBiZSB3cm9uZ1xuICAgIGFyZ3MuZmluZChpc1NvdXJjZUxvY2F0aW9uKSxcbiAgICBhcmdzLmZpbmQoKGEpID0+IHR5cGVvZiBhID09PSBcInN0cmluZ1wiKSxcbiAgICBhcmdzLmZpbmQoKGEpID0+IHR5cGVvZiBhID09PSBcIm9iamVjdFwiICYmICFpc1NvdXJjZUxvY2F0aW9uKGEpKSBhc1xuICAgICAgfCBDb21tYW5kT3B0aW9uczxJbnB1dCwgT3V0cHV0LCBhbnksIGFueT5cbiAgICAgIHwgdW5kZWZpbmVkLFxuICAgIGFyZ3MuZmluZCgoYSkgPT4gdHlwZW9mIGEgPT09IFwiZnVuY3Rpb25cIikgYXMgQ29tbWFuZEhhbmRsZXI8XG4gICAgICBJbnB1dCxcbiAgICAgIE91dHB1dCxcbiAgICAgIENvbnRleHRcbiAgICA+LFxuICBdIGFzIGNvbnN0O1xufVxuIl19

@@ -50,5 +50,7 @@ import { commandRpcPath } from "../http/command.js";

responses: {
default: {
content: { "application/json": { schema: command.output } },
description: `Default response for POST ${commandPath}`,
200: {
content: {
"application/json": { schema: command.output?.schema },
},
description: command.output?.description ?? "OK",
},

@@ -132,10 +134,12 @@ },

},
responses: {
default: {
description: `Default response for ${command.method} ${command.path}`,
content: {
"application/json": { schema: command.output },
},
responses: Object.fromEntries([
...(command.output ? [command.output] : []),
...(command.outputs ?? []),
].map((o) => [
o.restStatusCode,
{
content: { "application/json": { schema: o.schema } },
description: o.description,
},
},
])),
};

@@ -164,2 +168,2 @@ return {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Blbi1hcGktc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnRlcm5hbC9vcGVuLWFwaS1zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQTRCcEQsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxRQUEyQyxFQUMzQyxPQUEyQjtJQUUzQixNQUFNLEtBQUssR0FBRyxRQUFRO1NBQ25CLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQ2YsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQyxDQUFDO1NBQ0QsTUFBTSxDQUNMLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFDbkQsRUFBRSxDQUNILENBQUM7SUFFSixPQUFPO1FBQ0wsT0FBTyxFQUFFLE9BQU87UUFDaEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1FBQ2xCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztRQUN4QixLQUFLO0tBQzBCLENBQUM7SUFFbEMsU0FBUyxhQUFhLENBQ3BCLENBQXNCLEVBQ3RCLENBQXNCO1FBRXRCLEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzdDLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRTtnQkFDYiw2QkFBNkI7Z0JBQzdCLCtCQUErQjtnQkFDL0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHO29CQUNSLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDVixHQUFHLEtBQUs7aUJBQ1QsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7YUFDakI7U0FDRjtRQUNELE9BQU8sQ0FBQyxDQUFD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QUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDO3dCQUM1QyxDQUFDLENBQUMsYUFBYTtpQkFDbEI7YUFDRixDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxzQkFBc0IsQ0FBQyxJQUFZO0lBQzFDLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1NBQzlDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ2pCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3JDLENBQUM7QUFFRCwyRUFBMkU7QUFDM0UsMENBQTBDO0FBQzFDLFNBQVMsdUJBQXVCLENBQUMsS0FBYTtJQUM1QyxPQUFPLEtBQUssS0FBSyxHQUFHO1FBQ2xCLENBQUMsQ0FBQyxXQUFXO1FBQ2IsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIG9wZW5hcGkgZnJvbSBcIm9wZW5hcGkzLXRzXCI7XG5pbXBvcnQgeyBjb21tYW5kUnBjUGF0aCB9IGZyb20gXCIuLi9odHRwL2NvbW1hbmQuanNcIjtcbmltcG9ydCB0eXBlIHsgQ29tbWFuZFNwZWMgfSBmcm9tIFwiLi9zZXJ2aWNlLXNwZWMuanNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBPcGVuQVBJU3BlY09wdGlvbnMge1xuICAvKipcbiAgICogV2hlbiB0cnVlLCBjcmVhdGVzIFJQQyBwYXRocyBpbiB0aGUgZm9ybSBQT1NUIC9ycGMvY29tbWFuZE5hbWUgZm9yIGVhY2ggY29tbWFuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgY3JlYXRlUnBjUGF0aHM/OiBib29sZWFuO1xuICAvKipcbiAgICogV2hlbiB0cnVlLCBjcmVhdGVzIGEgUmVzdCBwYXRoIGluIHRoZSBmb3JtIGAke2NvbW1hbmQubWV0aG9kfSAke2NvbW1hbmQucGF0aH1gIGZvciBlYWNoIGNvbW1hbmQgdGhhdCBoYXMgYSBwYXRoIGRlZmluZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGNyZWF0ZVJlc3RQYXRocz86IGJvb2xlYW47XG4gIGluZm86IG9wZW5hcGkuSW5mb09iamVjdDtcbiAgc2VydmVycz86IG9wZW5hcGkuU2VydmVyT2JqZWN0W107XG4gIG9uUnBjUGF0aD86IChcbiAgICBjb21tYW5kOiBDb21tYW5kU3BlYyxcbiAgICBwYXRoSXRlbTogb3BlbmFwaS5PcGVyYXRpb25PYmplY3RcbiAgKSA9PiBvcGVuYXBpLlBhdGhPYmplY3Q7XG4gIG9uUmVzdFBhdGg/OiAoXG4gICAgY29tbWFuZDogQ29tbWFuZFNwZWMsXG4gICAgcGF0aEl0ZW06IG9wZW5hcGkuT3BlcmF0aW9uT2JqZWN0XG4gICkgPT4gb3BlbmFwaS5QYXRoT2JqZWN0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVPcGVuQVBJU3BlYyhcbiAgY29tbWFuZHM6IENvbW1hbmRTcGVjPGFueSwgYW55LCBhbnksIGFueT5bXSxcbiAgb3B0aW9uczogT3BlbkFQSVNwZWNPcHRpb25zXG4pOiBvcGVuYXBpLk9wZW5BUElPYmplY3Qge1xuICBjb25zdCBwYXRocyA9IGNvbW1hbmRzXG4gICAgLm1hcCgoY29tbWFuZCkgPT4ge1xuICAgICAgcmV0dXJuIGNyZWF0ZUFQSVBhdGhzKGNvbW1hbmQpO1xuICAgIH0pXG4gICAgLnJlZHVjZTxvcGVuYXBpLlBhdGhzT2JqZWN0PihcbiAgICAgIChhbGxQYXRocywgcGF0aHMpID0+IG1lcmdlQVBJUGF0aHMoYWxsUGF0aHMsIHBhdGhzKSxcbiAgICAgIHt9XG4gICAgKTtcblxuICByZXR1cm4ge1xuICAgIG9wZW5hcGk6IFwiMy4wLjFcIixcbiAgICBpbmZvOiBvcHRpb25zLmluZm8sXG4gICAgc2VydmVyczogb3B0aW9ucy5zZXJ2ZXJzLFxuICAgIHBhdGhzLFxuICB9IHNhdGlzZmllcyBvcGVuYXBpLk9wZW5BUElPYmplY3Q7XG5cbiAgZnVuY3Rpb24gbWVyZ2VBUElQYXRocyhcbiAgICBhOiBvcGVuYXBpLlBhdGhzT2JqZWN0LFxuICAgIGI6IG9wZW5hcGkuUGF0aHNPYmplY3RcbiAgKTogb3BlbmFwaS5QYXRoc09iamVjdCB7XG4gICAgZm9yIChjb25zdCBbcGF0aCwgcm91dGVdIG9mIE9iamVjdC5lbnRyaWVzKGIpKSB7XG4gICAgICBpZiAocGF0aCBpbiBhKSB7XG4gICAgICAgIC8vIHNwcmVhZCBjb2xsaXNpb25zIGludG8gb25lXG4gICAgICAgIC8vIGFzc3VtZXMgbm8gZHVwbGljYXRlIE1FVEhPRHNcbiAgICAgICAgYVtwYXRoXSA9IHtcbiAgICAgICAgICAuLi5hW3BhdGhdLFxuICAgICAgICAgIC4uLnJvdXRlLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgYVtwYXRoXSA9IHJvdXRlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYTtcbiAgfVxuXG4gIGZ1bmN0aW9uIGNyZWF0ZUFQSVBhdGhzKFxuICAgIGNvbW1hbmQ6IENvbW1hbmRTcGVjPGFueSwgYW55LCBhbnksIGFueT5cbiAgKTogb3BlbmFwaS5QYXRoc09iamVjdCB7XG4gICAgY29uc3QgY29tbWFuZFBhdGggPSBjb21tYW5kUnBjUGF0aChjb21tYW5kKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi4ob3B0aW9ucy5jcmVhdGVScGNQYXRocyA/PyB0cnVlID8gY3JlYXRlUnBjT3BlcmF0aW9uKCkgOiB7fSksXG4gICAgICAuLi4ob3B0aW9ucy5jcmVhdGVSZXN0UGF0aHMgPz8gdHJ1ZSA/IGNyZWF0ZVJlc3RPcGVyYXRpb24oKSA6IHt9KSxcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gY3JlYXRlUnBjT3BlcmF0aW9uKCk6IG9wZW5hcGkuUGF0aEl0ZW1PYmplY3Qge1xuICAgICAgY29uc3Qgb2JqID0ge1xuICAgICAgICBwb3N0OiB7XG4gICAgICAgICAgb3BlcmF0aW9uSWQ6IGAke2NvbW1hbmQubmFtZX0tcnBjYCxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogY29tbWFuZC5kZXNjcmlwdGlvbixcbiAgICAgICAgICBzdW1tYXJ5OiBjb21tYW5kLnN1bW1hcnksXG4gICAgICAgICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICAgICAgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHtcbiAgICAgICAgICAgICAgICBzY2hlbWE6IGNvbW1hbmQuaW5wdXQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVzcG9uc2VzOiB7XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHsgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHsgc2NoZW1hOiBjb21tYW5kLm91dHB1dCB9IH0sXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBgRGVmYXVsdCByZXNwb25zZSBmb3IgUE9TVCAke2NvbW1hbmRQYXRofWAsXG4gICAgICAgICAgICB9IHNhdGlzZmllcyBvcGVuYXBpLlJlc3BvbnNlT2JqZWN0LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0gc2F0aXNmaWVzIG9wZW5hcGkuT3BlcmF0aW9uT2JqZWN0LFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgW2AvJHtjb21tYW5kUGF0aH1gXTogb3B0aW9ucz8ub25ScGNQYXRoXG4gICAgICAgICAgPyB7IHBvc3Q6IG9wdGlvbnMub25ScGNQYXRoKGNvbW1hbmQsIG9iai5wb3N0KSB9XG4gICAgICAgICAgOiBvYmosXG4gICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZVJlc3RPcGVyYXRpb24oKTogb3BlbmFwaS5QYXRoSXRlbU9iamVjdCB7XG4gICAgICBpZiAoIWNvbW1hbmQucGF0aCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhdGhQYXJhbWV0ZXJzID0gbmV3IFNldChwYXJhbWV0ZXJOYW1lc0Zyb21QYXRoKGNvbW1hbmQucGF0aCkpO1xuXG4gICAgICBjb25zdCBrbm93blByb3BlcnRpZXMgPSBuZXcgU2V0KFtcbiAgICAgICAgLi4uT2JqZWN0LmtleXMoY29tbWFuZC5wYXJhbXMgPz8ge30pLFxuICAgICAgICAuLi5PYmplY3Qua2V5cyhjb21tYW5kLmlucHV0Py5wcm9wZXJ0aWVzID8/IHt9KSxcbiAgICAgICAgLi4ucGF0aFBhcmFtZXRlcnMsXG4gICAgICBdKTtcblxuICAgICAgLy8gZGVmYXVsdCB0byBxdWVyeSB3aGVuIHRoZSBtZXRob2Qgc2hvdWxkIG5vdCBoYXZlIGEgYm9keVxuICAgICAgY29uc3QgZGVmYXVsdFNwZWMgPVxuICAgICAgICAhY29tbWFuZC5tZXRob2QgfHxcbiAgICAgICAgW1wiR0VUXCIsIFwiREVMRVRFXCIsIFwiT1BUSU9OU1wiLCBcIkhFQURcIl0uaW5jbHVkZXMoY29tbWFuZC5tZXRob2QpXG4gICAgICAgICAgPyBcInF1ZXJ5XCJcbiAgICAgICAgICA6IFwiYm9keVwiO1xuXG4gICAgICAvKipcbiAgICAgICAqIDEuIHJlc29sdmVzIHRoZSBzY2hlbWEgbmFtZSBmb3IgdGhlIHBhcmFtZXRlciB3aGljaCBtYXkgYmUgZGlmZmVyZW50IGZyb20gdGhlIG5hbWUgaW4gdGhlIGlucHV0IHNjaGVtYVxuICAgICAgICogMi4gcmVzb2x2ZXMgdGhlIHNwZWMvaW4gdHlwZSBiYXNlZCBvbiB0aGUgc291cmNlIG9mIHRoZSBwYXJhbWV0ZXIgbmFtZSwgY3VycmVudCBtZXRob2QsIGFuZCBleHBsaWNpdCBpbnB1dFxuICAgICAgICogMy4gcmVzb2x2ZSB0aGUgc2NoZW1hIGZyb20gdGhlIGlucHV0IHNjaGVtYSB0byB1c2UgaW4gdGhlIG91dHB1dCBzY2hlbWFcbiAgICAgICAqL1xuICAgICAgY29uc3QgcmVzb2x2ZWRQYXJhbWV0ZXJzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICBbLi4ua25vd25Qcm9wZXJ0aWVzXS5tYXAoKHByb3ApID0+IHtcbiAgICAgICAgICBjb25zdCBwYXJhbSA9IGNvbW1hbmQucGFyYW1zPy5bcHJvcF07XG4gICAgICAgICAgY29uc3QgW25hbWUsIHNwZWNdID1cbiAgICAgICAgICAgIHR5cGVvZiBwYXJhbSA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICA/IFtwcm9wLCBwYXJhbV1cbiAgICAgICAgICAgICAgOiBbcGFyYW0/Lm5hbWUgPz8gcHJvcCwgcGFyYW0/LmluXTtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgbm8gZXhwbGljaXQgb3ZlcnJpZGUgYW5kIHRoZSBwYXJhbSBpcyBpbiB0aGUgcGF0aCwgdGhlIHNwZWMgaXMgcGF0aCwgZWxzZSB0aGUgY29tcHV0ZWQgZGVmYXVsdFxuICAgICAgICAgICAgICBzcGVjOiBzcGVjID8/IChwYXRoUGFyYW1ldGVycy5oYXMobmFtZSkgPyBcInBhdGhcIiA6IGRlZmF1bHRTcGVjKSxcbiAgICAgICAgICAgICAgc2NoZW1hOiBjb21tYW5kLmlucHV0Py5wcm9wZXJ0aWVzPy5bcHJvcF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0gYXMgY29uc3Q7XG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgICBjb25zdCBib2R5UHJvcGVydGllcyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgT2JqZWN0LmVudHJpZXMocmVzb2x2ZWRQYXJhbWV0ZXJzKVxuICAgICAgICAgIC5maWx0ZXIoKFssIHsgc3BlYywgc2NoZW1hIH1dKSA9PiBzcGVjID09PSBcImJvZHlcIiAmJiAhIXNjaGVtYSlcbiAgICAgICAgICAubWFwKChbbmFtZSwgeyBzY2hlbWEgfV0pID0+IFtuYW1lLCBzY2hlbWEhXSlcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGJvZHlTY2hlbWE6IG9wZW5hcGkuU2NoZW1hT2JqZWN0IHwgdW5kZWZpbmVkID1cbiAgICAgICAgY29tbWFuZC5pbnB1dD8ucHJvcGVydGllcyAmJiBPYmplY3Qua2V5cyhib2R5UHJvcGVydGllcykubGVuZ3RoID4gMFxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAuLi5jb21tYW5kLmlucHV0LFxuICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiBib2R5UHJvcGVydGllcyxcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IGNvbW1hbmQuaW5wdXQucmVxdWlyZWQ/LmZpbHRlcihcbiAgICAgICAgICAgICAgICAocCkgPT4gcCBpbiBib2R5UHJvcGVydGllc1xuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICBjb25zdCBvcGVyYXRpb25JdGVtOiBvcGVuYXBpLk9wZXJhdGlvbk9iamVjdCA9IHtcbiAgICAgICAgb3BlcmF0aW9uSWQ6IGAke2NvbW1hbmQubmFtZX0tJHtjb21tYW5kLm1ldGhvZCA/PyBcImdldFwifWAsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBjb21tYW5kLmRlc2NyaXB0aW9uLFxuICAgICAgICBzdW1tYXJ5OiBjb21tYW5kLnN1bW1hcnksXG4gICAgICAgIHBhcmFtZXRlcnM6IE9iamVjdC5lbnRyaWVzKHJlc29sdmVkUGFyYW1ldGVycykuZmxhdE1hcChcbiAgICAgICAgICAoW25hbWUsIHsgc3BlYywgc2NoZW1hIH1dKSA9PlxuICAgICAgICAgICAgc3BlYyA9PT0gXCJib2R5XCJcbiAgICAgICAgICAgICAgPyBbXVxuICAgICAgICAgICAgICA6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgaW46IHNwZWMsXG4gICAgICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYSxcbiAgICAgICAgICAgICAgICAgIH0gc2F0aXNmaWVzIG9wZW5hcGkuUGFyYW1ldGVyT2JqZWN0LFxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgKSxcbiAgICAgICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgICAuLi4oYm9keVNjaGVtYVxuICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYTogYm9keVNjaGVtYSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICByZXNwb25zZXM6IHtcbiAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICBkZXNjcmlwdGlvbjogYERlZmF1bHQgcmVzcG9uc2UgZm9yICR7Y29tbWFuZC5tZXRob2R9ICR7Y29tbWFuZC5wYXRofWAsXG4gICAgICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7IHNjaGVtYTogY29tbWFuZC5vdXRwdXQgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIFtpdHR5Um91dGVUb09wZW5BcGlSb3V0ZShjb21tYW5kLnBhdGgpXToge1xuICAgICAgICAgIFtjb21tYW5kLm1ldGhvZD8udG9Mb2NhbGVMb3dlckNhc2UoKSA/PyBcImdldFwiXTogb3B0aW9ucz8ub25SZXN0UGF0aFxuICAgICAgICAgICAgPyBvcHRpb25zLm9uUmVzdFBhdGgoY29tbWFuZCwgb3BlcmF0aW9uSXRlbSlcbiAgICAgICAgICAgIDogb3BlcmF0aW9uSXRlbSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfVxuICB9XG59XG5cbmZ1bmN0aW9uIHBhcmFtZXRlck5hbWVzRnJvbVBhdGgocGF0aDogc3RyaW5nKTogc3RyaW5nW10ge1xuICByZXR1cm4gQXJyYXkuZnJvbShwYXRoLm1hdGNoQWxsKC9cXC86KFteLz8jXSopL2cpKVxuICAgIC5tYXAoKFssIGddKSA9PiBnKVxuICAgIC5maWx0ZXIoKHgpOiB4IGlzIHN0cmluZyA9PiAhIXgpO1xufVxuXG4vLyBOb3RlOiBvcGVuIGFwaSBkb2Vzbid0IGhhdmUgYSBmb3JtYWwgd2F5IHRvIHJlcHJlc2VudCBncmVlZHkgcGFyYW1ldGVycy5cbi8vIFVzaW5nIEFQSSBHYXRld2F5J3MgZm9ybWF0IG9mIHtwYXJhbSt9LlxuZnVuY3Rpb24gaXR0eVJvdXRlVG9PcGVuQXBpUm91dGUocm91dGU6IHN0cmluZykge1xuICByZXR1cm4gcm91dGUgPT09IFwiKlwiXG4gICAgPyBcIi97cHJveHkrfVwiXG4gICAgOiByb3V0ZS5yZXBsYWNlKC9cXCovZywgXCJ7cHJveHkrfVwiKS5yZXBsYWNlQWxsKC86KFteL10qKS9nLCBcInskMX1cIik7XG59XG4iXX0=
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Blbi1hcGktc3BlYy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnRlcm5hbC9vcGVuLWFwaS1zcGVjLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQTRCcEQsTUFBTSxVQUFVLG1CQUFtQixDQUNqQyxRQUEyQyxFQUMzQyxPQUEyQjtJQUUzQixNQUFNLEtBQUssR0FBRyxRQUFRO1NBQ25CLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQ2YsT0FBTyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQyxDQUFDO1NBQ0QsTUFBTSxDQUNMLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsRUFDbkQsRUFBRSxDQUNILENBQUM7SUFFSixPQUFPO1FBQ0wsT0FBTyxFQUFFLE9BQU87UUFDaEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1FBQ2xCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztRQUN4QixLQUFLO0tBQzBCLENBQUM7SUFFbEMsU0FBUyxhQUFhLENBQ3BCLENBQXNCLEVBQ3RCLENBQXNCO1FBRXRCLEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzdDLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRTtnQkFDYiw2QkFBNkI7Z0JBQzdCLCtCQUErQjtnQkFDL0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHO29CQUNSLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztvQkFDVixHQUFHLEtBQUs7aUJBQ1QsQ0FBQzthQUNIO2lCQUFNO2dCQUNMLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUM7YUFDakI7U0FDRjtRQUNELE9BQU8sQ0FBQyxDQUFD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QkFDckQsV0FBVyxFQUFFLENBQUMsQ0FBQyxXQUFXO3FCQUNNO2lCQUNuQyxDQUFDLENBQ0g7YUFDRixDQUFDO1lBRUYsT0FBTztnQkFDTCxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUFFO29CQUN2QyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsVUFBVTt3QkFDakUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQzt3QkFDNUMsQ0FBQyxDQUFDLGFBQWE7aUJBQ2xCO2FBQ0YsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsc0JBQXNCLENBQUMsSUFBWTtJQUMxQyxPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUM5QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNqQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQWUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyQyxDQUFDO0FBRUQsMkVBQTJFO0FBQzNFLDBDQUEwQztBQUMxQyxTQUFTLHVCQUF1QixDQUFDLEtBQWE7SUFDNUMsT0FBTyxLQUFLLEtBQUssR0FBRztRQUNsQixDQUFDLENBQUMsV0FBVztRQUNiLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBQ3ZFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSBvcGVuYXBpIGZyb20gXCJvcGVuYXBpMy10c1wiO1xuaW1wb3J0IHsgY29tbWFuZFJwY1BhdGggfSBmcm9tIFwiLi4vaHR0cC9jb21tYW5kLmpzXCI7XG5pbXBvcnQgdHlwZSB7IENvbW1hbmRTcGVjIH0gZnJvbSBcIi4vc2VydmljZS1zcGVjLmpzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3BlbkFQSVNwZWNPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSwgY3JlYXRlcyBSUEMgcGF0aHMgaW4gdGhlIGZvcm0gUE9TVCAvcnBjL2NvbW1hbmROYW1lIGZvciBlYWNoIGNvbW1hbmQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIGNyZWF0ZVJwY1BhdGhzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSwgY3JlYXRlcyBhIFJlc3QgcGF0aCBpbiB0aGUgZm9ybSBgJHtjb21tYW5kLm1ldGhvZH0gJHtjb21tYW5kLnBhdGh9YCBmb3IgZWFjaCBjb21tYW5kIHRoYXQgaGFzIGEgcGF0aCBkZWZpbmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBjcmVhdGVSZXN0UGF0aHM/OiBib29sZWFuO1xuICBpbmZvOiBvcGVuYXBpLkluZm9PYmplY3Q7XG4gIHNlcnZlcnM/OiBvcGVuYXBpLlNlcnZlck9iamVjdFtdO1xuICBvblJwY1BhdGg/OiAoXG4gICAgY29tbWFuZDogQ29tbWFuZFNwZWMsXG4gICAgcGF0aEl0ZW06IG9wZW5hcGkuT3BlcmF0aW9uT2JqZWN0XG4gICkgPT4gb3BlbmFwaS5QYXRoT2JqZWN0O1xuICBvblJlc3RQYXRoPzogKFxuICAgIGNvbW1hbmQ6IENvbW1hbmRTcGVjLFxuICAgIHBhdGhJdGVtOiBvcGVuYXBpLk9wZXJhdGlvbk9iamVjdFxuICApID0+IG9wZW5hcGkuUGF0aE9iamVjdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlT3BlbkFQSVNwZWMoXG4gIGNvbW1hbmRzOiBDb21tYW5kU3BlYzxhbnksIGFueSwgYW55LCBhbnk+W10sXG4gIG9wdGlvbnM6IE9wZW5BUElTcGVjT3B0aW9uc1xuKTogb3BlbmFwaS5PcGVuQVBJT2JqZWN0IHtcbiAgY29uc3QgcGF0aHMgPSBjb21tYW5kc1xuICAgIC5tYXAoKGNvbW1hbmQpID0+IHtcbiAgICAgIHJldHVybiBjcmVhdGVBUElQYXRocyhjb21tYW5kKTtcbiAgICB9KVxuICAgIC5yZWR1Y2U8b3BlbmFwaS5QYXRoc09iamVjdD4oXG4gICAgICAoYWxsUGF0aHMsIHBhdGhzKSA9PiBtZXJnZUFQSVBhdGhzKGFsbFBhdGhzLCBwYXRocyksXG4gICAgICB7fVxuICAgICk7XG5cbiAgcmV0dXJuIHtcbiAgICBvcGVuYXBpOiBcIjMuMC4xXCIsXG4gICAgaW5mbzogb3B0aW9ucy5pbmZvLFxuICAgIHNlcnZlcnM6IG9wdGlvbnMuc2VydmVycyxcbiAgICBwYXRocyxcbiAgfSBzYXRpc2ZpZXMgb3BlbmFwaS5PcGVuQVBJT2JqZWN0O1xuXG4gIGZ1bmN0aW9uIG1lcmdlQVBJUGF0aHMoXG4gICAgYTogb3BlbmFwaS5QYXRoc09iamVjdCxcbiAgICBiOiBvcGVuYXBpLlBhdGhzT2JqZWN0XG4gICk6IG9wZW5hcGkuUGF0aHNPYmplY3Qge1xuICAgIGZvciAoY29uc3QgW3BhdGgsIHJvdXRlXSBvZiBPYmplY3QuZW50cmllcyhiKSkge1xuICAgICAgaWYgKHBhdGggaW4gYSkge1xuICAgICAgICAvLyBzcHJlYWQgY29sbGlzaW9ucyBpbnRvIG9uZVxuICAgICAgICAvLyBhc3N1bWVzIG5vIGR1cGxpY2F0ZSBNRVRIT0RzXG4gICAgICAgIGFbcGF0aF0gPSB7XG4gICAgICAgICAgLi4uYVtwYXRoXSxcbiAgICAgICAgICAuLi5yb3V0ZSxcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFbcGF0aF0gPSByb3V0ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGE7XG4gIH1cblxuICBmdW5jdGlvbiBjcmVhdGVBUElQYXRocyhcbiAgICBjb21tYW5kOiBDb21tYW5kU3BlYzxhbnksIGFueSwgYW55LCBhbnk+XG4gICk6IG9wZW5hcGkuUGF0aHNPYmplY3Qge1xuICAgIGNvbnN0IGNvbW1hbmRQYXRoID0gY29tbWFuZFJwY1BhdGgoY29tbWFuZCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uKG9wdGlvbnMuY3JlYXRlUnBjUGF0aHMgPz8gdHJ1ZSA/IGNyZWF0ZVJwY09wZXJhdGlvbigpIDoge30pLFxuICAgICAgLi4uKG9wdGlvbnMuY3JlYXRlUmVzdFBhdGhzID8/IHRydWUgPyBjcmVhdGVSZXN0T3BlcmF0aW9uKCkgOiB7fSksXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGNyZWF0ZVJwY09wZXJhdGlvbigpOiBvcGVuYXBpLlBhdGhJdGVtT2JqZWN0IHtcbiAgICAgIGNvbnN0IG9iaiA9IHtcbiAgICAgICAgcG9zdDoge1xuICAgICAgICAgIG9wZXJhdGlvbklkOiBgJHtjb21tYW5kLm5hbWV9LXJwY2AsXG4gICAgICAgICAgZGVzY3JpcHRpb246IGNvbW1hbmQuZGVzY3JpcHRpb24sXG4gICAgICAgICAgc3VtbWFyeTogY29tbWFuZC5zdW1tYXJ5LFxuICAgICAgICAgIHJlcXVlc3RCb2R5OiB7XG4gICAgICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgICAgICAgc2NoZW1hOiBjb21tYW5kLmlucHV0LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlc3BvbnNlczoge1xuICAgICAgICAgICAgMjAwOiB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHtcbiAgICAgICAgICAgICAgICBcImFwcGxpY2F0aW9uL2pzb25cIjogeyBzY2hlbWE6IGNvbW1hbmQub3V0cHV0Py5zY2hlbWEgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246IGNvbW1hbmQub3V0cHV0Py5kZXNjcmlwdGlvbiA/PyBcIk9LXCIsXG4gICAgICAgICAgICB9IHNhdGlzZmllcyBvcGVuYXBpLlJlc3BvbnNlT2JqZWN0LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0gc2F0aXNmaWVzIG9wZW5hcGkuT3BlcmF0aW9uT2JqZWN0LFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgW2AvJHtjb21tYW5kUGF0aH1gXTogb3B0aW9ucz8ub25ScGNQYXRoXG4gICAgICAgICAgPyB7IHBvc3Q6IG9wdGlvbnMub25ScGNQYXRoKGNvbW1hbmQsIG9iai5wb3N0KSB9XG4gICAgICAgICAgOiBvYmosXG4gICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZVJlc3RPcGVyYXRpb24oKTogb3BlbmFwaS5QYXRoSXRlbU9iamVjdCB7XG4gICAgICBpZiAoIWNvbW1hbmQucGF0aCkge1xuICAgICAgICByZXR1cm4ge307XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHBhdGhQYXJhbWV0ZXJzID0gbmV3IFNldChwYXJhbWV0ZXJOYW1lc0Zyb21QYXRoKGNvbW1hbmQucGF0aCkpO1xuXG4gICAgICBjb25zdCBrbm93blByb3BlcnRpZXMgPSBuZXcgU2V0KFtcbiAgICAgICAgLi4uT2JqZWN0LmtleXMoY29tbWFuZC5wYXJhbXMgPz8ge30pLFxuICAgICAgICAuLi5PYmplY3Qua2V5cyhjb21tYW5kLmlucHV0Py5wcm9wZXJ0aWVzID8/IHt9KSxcbiAgICAgICAgLi4ucGF0aFBhcmFtZXRlcnMsXG4gICAgICBdKTtcblxuICAgICAgLy8gZGVmYXVsdCB0byBxdWVyeSB3aGVuIHRoZSBtZXRob2Qgc2hvdWxkIG5vdCBoYXZlIGEgYm9keVxuICAgICAgY29uc3QgZGVmYXVsdFNwZWMgPVxuICAgICAgICAhY29tbWFuZC5tZXRob2QgfHxcbiAgICAgICAgW1wiR0VUXCIsIFwiREVMRVRFXCIsIFwiT1BUSU9OU1wiLCBcIkhFQURcIl0uaW5jbHVkZXMoY29tbWFuZC5tZXRob2QpXG4gICAgICAgICAgPyBcInF1ZXJ5XCJcbiAgICAgICAgICA6IFwiYm9keVwiO1xuXG4gICAgICAvKipcbiAgICAgICAqIDEuIHJlc29sdmVzIHRoZSBzY2hlbWEgbmFtZSBmb3IgdGhlIHBhcmFtZXRlciB3aGljaCBtYXkgYmUgZGlmZmVyZW50IGZyb20gdGhlIG5hbWUgaW4gdGhlIGlucHV0IHNjaGVtYVxuICAgICAgICogMi4gcmVzb2x2ZXMgdGhlIHNwZWMvaW4gdHlwZSBiYXNlZCBvbiB0aGUgc291cmNlIG9mIHRoZSBwYXJhbWV0ZXIgbmFtZSwgY3VycmVudCBtZXRob2QsIGFuZCBleHBsaWNpdCBpbnB1dFxuICAgICAgICogMy4gcmVzb2x2ZSB0aGUgc2NoZW1hIGZyb20gdGhlIGlucHV0IHNjaGVtYSB0byB1c2UgaW4gdGhlIG91dHB1dCBzY2hlbWFcbiAgICAgICAqL1xuICAgICAgY29uc3QgcmVzb2x2ZWRQYXJhbWV0ZXJzID0gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgICBbLi4ua25vd25Qcm9wZXJ0aWVzXS5tYXAoKHByb3ApID0+IHtcbiAgICAgICAgICBjb25zdCBwYXJhbSA9IGNvbW1hbmQucGFyYW1zPy5bcHJvcF07XG4gICAgICAgICAgY29uc3QgW25hbWUsIHNwZWNdID1cbiAgICAgICAgICAgIHR5cGVvZiBwYXJhbSA9PT0gXCJzdHJpbmdcIlxuICAgICAgICAgICAgICA/IFtwcm9wLCBwYXJhbV1cbiAgICAgICAgICAgICAgOiBbcGFyYW0/Lm5hbWUgPz8gcHJvcCwgcGFyYW0/LmluXTtcbiAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgbmFtZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgLy8gaWYgdGhlcmUgaXMgbm8gZXhwbGljaXQgb3ZlcnJpZGUgYW5kIHRoZSBwYXJhbSBpcyBpbiB0aGUgcGF0aCwgdGhlIHNwZWMgaXMgcGF0aCwgZWxzZSB0aGUgY29tcHV0ZWQgZGVmYXVsdFxuICAgICAgICAgICAgICBzcGVjOiBzcGVjID8/IChwYXRoUGFyYW1ldGVycy5oYXMobmFtZSkgPyBcInBhdGhcIiA6IGRlZmF1bHRTcGVjKSxcbiAgICAgICAgICAgICAgc2NoZW1hOiBjb21tYW5kLmlucHV0Py5wcm9wZXJ0aWVzPy5bcHJvcF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0gYXMgY29uc3Q7XG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgICBjb25zdCBib2R5UHJvcGVydGllcyA9IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgT2JqZWN0LmVudHJpZXMocmVzb2x2ZWRQYXJhbWV0ZXJzKVxuICAgICAgICAgIC5maWx0ZXIoKFssIHsgc3BlYywgc2NoZW1hIH1dKSA9PiBzcGVjID09PSBcImJvZHlcIiAmJiAhIXNjaGVtYSlcbiAgICAgICAgICAubWFwKChbbmFtZSwgeyBzY2hlbWEgfV0pID0+IFtuYW1lLCBzY2hlbWEhXSlcbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IGJvZHlTY2hlbWE6IG9wZW5hcGkuU2NoZW1hT2JqZWN0IHwgdW5kZWZpbmVkID1cbiAgICAgICAgY29tbWFuZC5pbnB1dD8ucHJvcGVydGllcyAmJiBPYmplY3Qua2V5cyhib2R5UHJvcGVydGllcykubGVuZ3RoID4gMFxuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAuLi5jb21tYW5kLmlucHV0LFxuICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiBib2R5UHJvcGVydGllcyxcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IGNvbW1hbmQuaW5wdXQucmVxdWlyZWQ/LmZpbHRlcihcbiAgICAgICAgICAgICAgICAocCkgPT4gcCBpbiBib2R5UHJvcGVydGllc1xuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICBjb25zdCBvcGVyYXRpb25JdGVtOiBvcGVuYXBpLk9wZXJhdGlvbk9iamVjdCA9IHtcbiAgICAgICAgb3BlcmF0aW9uSWQ6IGAke2NvbW1hbmQubmFtZX0tJHtjb21tYW5kLm1ldGhvZCA/PyBcImdldFwifWAsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBjb21tYW5kLmRlc2NyaXB0aW9uLFxuICAgICAgICBzdW1tYXJ5OiBjb21tYW5kLnN1bW1hcnksXG4gICAgICAgIHBhcmFtZXRlcnM6IE9iamVjdC5lbnRyaWVzKHJlc29sdmVkUGFyYW1ldGVycykuZmxhdE1hcChcbiAgICAgICAgICAoW25hbWUsIHsgc3BlYywgc2NoZW1hIH1dKSA9PlxuICAgICAgICAgICAgc3BlYyA9PT0gXCJib2R5XCJcbiAgICAgICAgICAgICAgPyBbXVxuICAgICAgICAgICAgICA6IFtcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgaW46IHNwZWMsXG4gICAgICAgICAgICAgICAgICAgIG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYSxcbiAgICAgICAgICAgICAgICAgIH0gc2F0aXNmaWVzIG9wZW5hcGkuUGFyYW1ldGVyT2JqZWN0LFxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgKSxcbiAgICAgICAgcmVxdWVzdEJvZHk6IHtcbiAgICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgICAuLi4oYm9keVNjaGVtYVxuICAgICAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgICAgIFwiYXBwbGljYXRpb24vanNvblwiOiB7XG4gICAgICAgICAgICAgICAgICAgIHNjaGVtYTogYm9keVNjaGVtYSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICByZXNwb25zZXM6IE9iamVjdC5mcm9tRW50cmllcyhcbiAgICAgICAgICBbXG4gICAgICAgICAgICAuLi4oY29tbWFuZC5vdXRwdXQgPyBbY29tbWFuZC5vdXRwdXRdIDogW10pLFxuICAgICAgICAgICAgLi4uKGNvbW1hbmQub3V0cHV0cyA/PyBbXSksXG4gICAgICAgICAgXS5tYXAoKG8pID0+IFtcbiAgICAgICAgICAgIG8ucmVzdFN0YXR1c0NvZGUsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGNvbnRlbnQ6IHsgXCJhcHBsaWNhdGlvbi9qc29uXCI6IHsgc2NoZW1hOiBvLnNjaGVtYSB9IH0sXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBvLmRlc2NyaXB0aW9uLFxuICAgICAgICAgICAgfSBzYXRpc2ZpZXMgb3BlbmFwaS5SZXNwb25zZU9iamVjdCxcbiAgICAgICAgICBdKVxuICAgICAgICApLFxuICAgICAgfTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgW2l0dHlSb3V0ZVRvT3BlbkFwaVJvdXRlKGNvbW1hbmQucGF0aCldOiB7XG4gICAgICAgICAgW2NvbW1hbmQubWV0aG9kPy50b0xvY2FsZUxvd2VyQ2FzZSgpID8/IFwiZ2V0XCJdOiBvcHRpb25zPy5vblJlc3RQYXRoXG4gICAgICAgICAgICA/IG9wdGlvbnMub25SZXN0UGF0aChjb21tYW5kLCBvcGVyYXRpb25JdGVtKVxuICAgICAgICAgICAgOiBvcGVyYXRpb25JdGVtLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyYW1ldGVyTmFtZXNGcm9tUGF0aChwYXRoOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIHJldHVybiBBcnJheS5mcm9tKHBhdGgubWF0Y2hBbGwoL1xcLzooW14vPyNdKikvZykpXG4gICAgLm1hcCgoWywgZ10pID0+IGcpXG4gICAgLmZpbHRlcigoeCk6IHggaXMgc3RyaW5nID0+ICEheCk7XG59XG5cbi8vIE5vdGU6IG9wZW4gYXBpIGRvZXNuJ3QgaGF2ZSBhIGZvcm1hbCB3YXkgdG8gcmVwcmVzZW50IGdyZWVkeSBwYXJhbWV0ZXJzLlxuLy8gVXNpbmcgQVBJIEdhdGV3YXkncyBmb3JtYXQgb2Yge3BhcmFtK30uXG5mdW5jdGlvbiBpdHR5Um91dGVUb09wZW5BcGlSb3V0ZShyb3V0ZTogc3RyaW5nKSB7XG4gIHJldHVybiByb3V0ZSA9PT0gXCIqXCJcbiAgICA/IFwiL3twcm94eSt9XCJcbiAgICA6IHJvdXRlLnJlcGxhY2UoL1xcKi9nLCBcIntwcm94eSt9XCIpLnJlcGxhY2VBbGwoLzooW14vXSopL2csIFwieyQxfVwiKTtcbn1cbiJdfQ==

@@ -74,2 +74,12 @@ import type openapi from "openapi3-ts";

}
export interface CommandOutput {
schema?: openapi.SchemaObject;
description: string;
/**
* Status code of the output used in commands with a rest path.
*
* RPC commands always return a single 200 response.
*/
restStatusCode: number;
}
export interface CommandSpec<Name extends string = string, Input = undefined, Path extends string | undefined = undefined, Method extends HttpMethod | undefined = undefined> extends FunctionRuntimeProps {

@@ -86,3 +96,18 @@ name: Name;

input?: openapi.SchemaObject;
output?: openapi.SchemaObject;
/**
* Output used by RPC commands and Rest commands to define the output of the handler.
*
* RPC will always have a status code of 200, but can override the default description of "OK".
*
* The REST command will return a 200 response unless an alternative is provided.
*/
output?: CommandOutput;
/**
* Optional outputs provided by an http API command using passthrough mode.
*
* These commands return a {@link HttpResponse} which can define any number of outputs with custom status codes.
*
* The outputs are used to generate the {@link ApiSpecification}.
*/
outputs?: CommandOutput[];
path?: Path;

@@ -89,0 +114,0 @@ method?: Method;

@@ -7,2 +7,2 @@ export function isSourceLocation(a) {

}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ludGVybmFsL3NlcnZpY2Utc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFxSEEsTUFBTSxVQUFVLGdCQUFnQixDQUFDLENBQU07SUFDckMsT0FBTyxDQUNMLENBQUM7UUFDRCxPQUFPLENBQUMsS0FBSyxRQUFRO1FBQ3JCLE9BQU8sQ0FBQyxDQUFDLFFBQVEsS0FBSyxRQUFRO1FBQzlCLE9BQU8sQ0FBQyxDQUFDLFVBQVUsS0FBSyxRQUFRLENBQ2pDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgb3BlbmFwaSBmcm9tIFwib3BlbmFwaTMtdHNcIjtcbmltcG9ydCB7IEF0dHJpYnV0ZXMgfSBmcm9tIFwiLi4vZW50aXR5L2VudGl0eS5qc1wiO1xuaW1wb3J0IHsgQ29tcG9zaXRlS2V5UGFydCwgU3RyZWFtUXVlcnlLZXkgfSBmcm9tIFwiLi4vZW50aXR5L2tleS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBGdW5jdGlvblJ1bnRpbWVQcm9wcyB9IGZyb20gXCIuLi9mdW5jdGlvbi1wcm9wcy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBIdHRwTWV0aG9kIH0gZnJvbSBcIi4uL2h0dHAtbWV0aG9kLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFJlc3RQYXJhbXMgfSBmcm9tIFwiLi4vaHR0cC9jb21tYW5kLmpzXCI7XG5pbXBvcnQgdHlwZSB7IER1cmF0aW9uU2NoZWR1bGUgfSBmcm9tIFwiLi4vc2NoZWR1bGUuanNcIjtcbmltcG9ydCB0eXBlIHtcbiAgU3Vic2NyaXB0aW9uRmlsdGVyLFxuICBTdWJzY3JpcHRpb25SdW50aW1lUHJvcHMsXG59IGZyb20gXCIuLi9zdWJzY3JpcHRpb24uanNcIjtcbmltcG9ydCB7IEtleURlZmluaXRpb24gfSBmcm9tIFwiLi9lbnRpdHkuanNcIjtcbmltcG9ydCB0eXBlIHsgVGFza1NwZWMgfSBmcm9tIFwiLi90YXNrLmpzXCI7XG5cbi8qKlxuICogU3BlY2lmaWNhdGlvbiBmb3IgYW4gRXZlbnR1YWwgYXBwbGljYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlU3BlYyB7XG4gIC8qKlxuICAgKiBMaXN0IG9mIHdvcmtmbG93c1xuICAgKi9cbiAgd29ya2Zsb3dzOiBXb3JrZmxvd1NwZWNbXTtcbiAgdHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvblNwZWNbXTtcbiAgdGFza3M6IFRhc2tTcGVjW107XG4gIGNvbW1hbmRzOiBDb21tYW5kU3BlYzxhbnksIGFueSwgYW55LCBhbnk+W107XG4gIC8qKlxuICAgKiBPcGVuIEFQSSAzIHNjaGVtYSBkZWZpbml0aW9ucyBmb3IgYWxsIGtub3duIEV2ZW50cyBpbiB0aGlzIFNlcnZpY2UuXG4gICAqL1xuICBldmVudHM6IEV2ZW50U3BlY1tdO1xuICAvKipcbiAgICogSW5kaXZpZHVhbGx5IGJ1bmRsZWQge0BsaW5rIEV2ZW50RnVuY3Rpb259cyBjb250YWluaW5nIGEgc2luZ2xlIGBzdWJzY3JpcHRpb25gIGV2ZW50IGhhbmRsZXIuXG4gICAqL1xuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25TcGVjW107XG4gIGJ1Y2tldHM6IHtcbiAgICBidWNrZXRzOiBCdWNrZXRTcGVjW107XG4gIH07XG4gIGVudGl0aWVzOiB7XG4gICAgZW50aXRpZXM6IEVudGl0eVNwZWNbXTtcbiAgfTtcbiAgb3BlbkFwaToge1xuICAgIGluZm86IG9wZW5hcGkuSW5mb09iamVjdDtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblNwZWMge1xuICBtZW1vcnlTaXplPzogbnVtYmVyO1xuICB0aW1lb3V0PzogRHVyYXRpb25TY2hlZHVsZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWJzY3JpcHRpb25TcGVjPE5hbWUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+IHtcbiAgLyoqXG4gICAqIFVuaXF1ZSBuYW1lIG9mIHRoaXMgU3Vic2NyaXB0aW9uLlxuICAgKi9cbiAgbmFtZTogTmFtZTtcbiAgLyoqXG4gICAqIFN1YnNjcmlwdGlvbnMgdGhpcyBFdmVudCBIYW5kbGVyIGlzIHN1YnNjcmliZWQgdG8uIEFueSBldmVudCBmbG93aW5nXG4gICAqIHRocm91Z2ggdGhlIFNlcnZpY2UncyBFdmVudCBCdXMgdGhhdCBtYXRjaCB0aGVzZSBjcml0ZXJpYSB3aWxsIGJlXG4gICAqIHNlbnQgdG8gdGhpcyBMYW1iZGEgRnVuY3Rpb24uXG4gICAqL1xuICBmaWx0ZXJzOiBTdWJzY3JpcHRpb25GaWx0ZXJbXTtcbiAgLyoqXG4gICAqIFJ1bnRpbWUgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBFdmVudCBIYW5kbGVyLlxuICAgKi9cbiAgcHJvcHM/OiBTdWJzY3JpcHRpb25SdW50aW1lUHJvcHM7XG4gIC8qKlxuICAgKiBPbmx5IGF2YWlsYWJsZSBkdXJpbmcgZXZlbnR1YWwtaW5mZXIuXG4gICAqL1xuICBzb3VyY2VMb2NhdGlvbj86IFNvdXJjZUxvY2F0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50U3BlYyB7XG4gIC8qKlxuICAgKiBUaGUgRXZlbnQncyBnbG9iYWxseSB1bmlxdWUgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIFNjaGVtYSBvZiB0aGUgRXZlbnQuXG4gICAqL1xuICBzY2hlbWE/OiBvcGVuYXBpLlNjaGVtYU9iamVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kU3BlYzxcbiAgTmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbiAgSW5wdXQgPSB1bmRlZmluZWQsXG4gIFBhdGggZXh0ZW5kcyBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gIE1ldGhvZCBleHRlbmRzIEh0dHBNZXRob2QgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbj4gZXh0ZW5kcyBGdW5jdGlvblJ1bnRpbWVQcm9wcyB7XG4gIG5hbWU6IE5hbWU7XG4gIC8qKlxuICAgKiBMb25nIGRlc2NyaXB0aW9uIG9mIHRoZSBBUEksIHdyaXR0ZW4gdG8gdGhlIGRlc2NyaXB0aW9uIGZpZWxkIG9mIHRoZSBnZW5lcmF0ZWQgb3BlbiBBUEkgc3BlYy5cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogU2hvcnQgZGVzY3JpcHRpb24gb2YgdGhlIEFQSSwgd3JpdHRlbiB0byB0aGUgc3VtbWFyeSBmaWVsZCBvZiB0aGUgZ2VuZXJhdGVkIG9wZW4gQVBJIHNwZWMuXG4gICAqL1xuICBzdW1tYXJ5Pzogc3RyaW5nO1xuICBpbnB1dD86IG9wZW5hcGkuU2NoZW1hT2JqZWN0O1xuICBvdXRwdXQ/OiBvcGVuYXBpLlNjaGVtYU9iamVjdDtcbiAgcGF0aD86IFBhdGg7XG4gIG1ldGhvZD86IE1ldGhvZDtcbiAgcGFyYW1zPzogUmVzdFBhcmFtczxJbnB1dCwgUGF0aCwgTWV0aG9kPjtcbiAgc291cmNlTG9jYXRpb24/OiBTb3VyY2VMb2NhdGlvbjtcbiAgcGFzc1Rocm91Z2g/OiBib29sZWFuO1xuICAvKipcbiAgICogVXNlZCB0byBpc29sYXRlIHJwYyBwYXRocy5cbiAgICpcbiAgICogL3JwY1svbmFtZXNwYWNlXS9jb21tYW5kXG4gICAqL1xuICBuYW1lc3BhY2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBzY2hlbWEgdmFsaWRhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgdmFsaWRhdGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTb3VyY2VMb2NhdGlvbihhOiBhbnkpOiBhIGlzIFNvdXJjZUxvY2F0aW9uIHtcbiAgcmV0dXJuIChcbiAgICBhICYmXG4gICAgdHlwZW9mIGEgPT09IFwib2JqZWN0XCIgJiZcbiAgICB0eXBlb2YgYS5maWxlTmFtZSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgIHR5cGVvZiBhLmV4cG9ydE5hbWUgPT09IFwic3RyaW5nXCJcbiAgKTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTb3VyY2VMb2NhdGlvbiB7XG4gIGZpbGVOYW1lOiBzdHJpbmc7XG4gIGV4cG9ydE5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTY2hlbWFzIHtcbiAgW3NjaGVtYU5hbWU6IHN0cmluZ106IG9wZW5hcGkuU2NoZW1hT2JqZWN0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93U3BlYyB7XG4gIG5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXRTcGVjIHtcbiAgbmFtZTogc3RyaW5nO1xuICBoYW5kbGVyczogQnVja2V0Tm90aWZpY2F0aW9uSGFuZGxlclNwZWNbXTtcbn1cblxuZXhwb3J0IHR5cGUgQnVja2V0Tm90aWZpY2F0aW9uRXZlbnRUeXBlID0gXCJwdXRcIiB8IFwiY29weVwiIHwgXCJkZWxldGVcIjtcblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXROb3RpZmljYXRpb25IYW5kbGVyT3B0aW9ucyBleHRlbmRzIEZ1bmN0aW9uUnVudGltZVByb3BzIHtcbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBvcGVyYXRpb25zIHRvIGJlIHNlbmQgdG8gdGhlIHN0cmVhbS5cbiAgICpcbiAgICogQGRlZmF1bHQgQWxsIE9wZXJhdGlvbnNcbiAgICovXG4gIGV2ZW50VHlwZXM/OiBCdWNrZXROb3RpZmljYXRpb25FdmVudFR5cGVbXTtcbiAgLyoqXG4gICAqIEZpbHRlciBvYmplY3RzIGluIHRoZSBzdHJlYW0gYnkgcHJlZml4IG9yIHN1ZmZpeC5cbiAgICovXG4gIGZpbHRlcnM/OiB7IHByZWZpeD86IHN0cmluZzsgc3VmZml4Pzogc3RyaW5nIH1bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWNrZXROb3RpZmljYXRpb25IYW5kbGVyU3BlYyB7XG4gIG5hbWU6IHN0cmluZztcbiAgYnVja2V0TmFtZTogc3RyaW5nO1xuICBvcHRpb25zPzogQnVja2V0Tm90aWZpY2F0aW9uSGFuZGxlck9wdGlvbnM7XG4gIHNvdXJjZUxvY2F0aW9uPzogU291cmNlTG9jYXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U3BlYyB7XG4gIG5hbWU6IHN0cmluZztcbiAga2V5OiBLZXlEZWZpbml0aW9uO1xuICAvKipcbiAgICogQW4gT3B0aW9uYWwgc2NoZW1hIGZvciB0aGUgZW50aXR5IHdpdGhpbiBhbiBlbnRpdHkuXG4gICAqL1xuICBhdHRyaWJ1dGVzOiBvcGVuYXBpLlNjaGVtYU9iamVjdDtcbiAgc3RyZWFtczogRW50aXR5U3RyZWFtU3BlY1tdO1xuICBpbmRpY2VzOiBFbnRpdHlJbmRleFNwZWNbXTtcbn1cblxuZXhwb3J0IHR5cGUgRW50aXR5U3RyZWFtT3BlcmF0aW9uID0gXCJpbnNlcnRcIiB8IFwibW9kaWZ5XCIgfCBcInJlbW92ZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVN0cmVhbU9wdGlvbnM8XG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzID0gQXR0cmlidXRlcyxcbiAgUGFydGl0aW9uIGV4dGVuZHMgQ29tcG9zaXRlS2V5UGFydDxBdHRyPiA9IENvbXBvc2l0ZUtleVBhcnQ8QXR0cj4sXG4gIFNvcnQgZXh0ZW5kcyBDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID1cbiAgICB8IENvbXBvc2l0ZUtleVBhcnQ8QXR0cj5cbiAgICB8IHVuZGVmaW5lZFxuPiBleHRlbmRzIEZ1bmN0aW9uUnVudGltZVByb3BzIHtcbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBvcGVyYXRpb25zIHRvIGJlIHNlbmQgdG8gdGhlIHN0cmVhbS5cbiAgICpcbiAgICogQGRlZmF1bHQgQWxsIE9wZXJhdGlvbnNcbiAgICovXG4gIG9wZXJhdGlvbnM/OiBFbnRpdHlTdHJlYW1PcGVyYXRpb25bXTtcbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSwgdGhlIG9sZCB2YWx1ZSB3aWxsIGJlIHNlbnQgd2l0aCB0aGUgbmV3IHZhbHVlLlxuICAgKi9cbiAgaW5jbHVkZU9sZD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBPbmUgb3IgbW9yZSBrZXkgcXVlcmllcyB0aGF0IHdpbGwgYmUgaW5jbHVkZWQgaW4gdGhlIHN0cmVhbS5cbiAgICovXG4gIHF1ZXJ5S2V5cz86IFN0cmVhbVF1ZXJ5S2V5PEF0dHIsIFBhcnRpdGlvbiwgU29ydD5bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTdHJlYW1TcGVjPFxuICBBdHRyIGV4dGVuZHMgQXR0cmlidXRlcyA9IEF0dHJpYnV0ZXMsXG4gIFBhcnRpdGlvbiBleHRlbmRzIENvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gPSBDb21wb3NpdGVLZXlQYXJ0PEF0dHI+LFxuICBTb3J0IGV4dGVuZHMgQ29tcG9zaXRlS2V5UGFydDxBdHRyPiB8IHVuZGVmaW5lZCA9XG4gICAgfCBDb21wb3NpdGVLZXlQYXJ0PEF0dHI+XG4gICAgfCB1bmRlZmluZWRcbj4ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGVudGl0eU5hbWU6IHN0cmluZztcbiAgb3B0aW9ucz86IEVudGl0eVN0cmVhbU9wdGlvbnM8QXR0ciwgUGFydGl0aW9uLCBTb3J0PjtcbiAgc291cmNlTG9jYXRpb24/OiBTb3VyY2VMb2NhdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlJbmRleFNwZWMge1xuICBuYW1lOiBzdHJpbmc7XG4gIGVudGl0eU5hbWU6IHN0cmluZztcbiAga2V5OiBLZXlEZWZpbml0aW9uO1xuICBwYXJ0aXRpb24/OiBDb21wb3NpdGVLZXlQYXJ0PGFueT47XG4gIHNvcnQ/OiBDb21wb3NpdGVLZXlQYXJ0PGFueT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNhY3Rpb25TcGVjIHtcbiAgbmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50TWFuaWZlc3Qge1xuICBzZXJ2aWNlTmFtZTogc3RyaW5nO1xuICBzZXJ2aWNlU3BlYzogU2VydmljZVNwZWM7XG4gIHNlcnZpY2VVcmw6IHN0cmluZztcbn1cbiJdfQ==
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1zcGVjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ludGVybmFsL3NlcnZpY2Utc3BlYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUErSUEsTUFBTSxVQUFVLGdCQUFnQixDQUFDLENBQU07SUFDckMsT0FBTyxDQUNMLENBQUM7UUFDRCxPQUFPLENBQUMsS0FBSyxRQUFRO1FBQ3JCLE9BQU8sQ0FBQyxDQUFDLFFBQVEsS0FBSyxRQUFRO1FBQzlCLE9BQU8sQ0FBQyxDQUFDLFVBQVUsS0FBSyxRQUFRLENBQ2pDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgb3BlbmFwaSBmcm9tIFwib3BlbmFwaTMtdHNcIjtcbmltcG9ydCB7IEF0dHJpYnV0ZXMgfSBmcm9tIFwiLi4vZW50aXR5L2VudGl0eS5qc1wiO1xuaW1wb3J0IHsgQ29tcG9zaXRlS2V5UGFydCwgU3RyZWFtUXVlcnlLZXkgfSBmcm9tIFwiLi4vZW50aXR5L2tleS5qc1wiO1xuaW1wb3J0IHR5cGUgeyBGdW5jdGlvblJ1bnRpbWVQcm9wcyB9IGZyb20gXCIuLi9mdW5jdGlvbi1wcm9wcy5qc1wiO1xuaW1wb3J0IHR5cGUgeyBIdHRwTWV0aG9kIH0gZnJvbSBcIi4uL2h0dHAtbWV0aG9kLmpzXCI7XG5pbXBvcnQgdHlwZSB7IFJlc3RQYXJhbXMgfSBmcm9tIFwiLi4vaHR0cC9jb21tYW5kLmpzXCI7XG5pbXBvcnQgdHlwZSB7IER1cmF0aW9uU2NoZWR1bGUgfSBmcm9tIFwiLi4vc2NoZWR1bGUuanNcIjtcbmltcG9ydCB0eXBlIHtcbiAgU3Vic2NyaXB0aW9uRmlsdGVyLFxuICBTdWJzY3JpcHRpb25SdW50aW1lUHJvcHMsXG59IGZyb20gXCIuLi9zdWJzY3JpcHRpb24uanNcIjtcbmltcG9ydCB7IEtleURlZmluaXRpb24gfSBmcm9tIFwiLi9lbnRpdHkuanNcIjtcbmltcG9ydCB0eXBlIHsgVGFza1NwZWMgfSBmcm9tIFwiLi90YXNrLmpzXCI7XG5cbi8qKlxuICogU3BlY2lmaWNhdGlvbiBmb3IgYW4gRXZlbnR1YWwgYXBwbGljYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlU3BlYyB7XG4gIC8qKlxuICAgKiBMaXN0IG9mIHdvcmtmbG93c1xuICAgKi9cbiAgd29ya2Zsb3dzOiBXb3JrZmxvd1NwZWNbXTtcbiAgdHJhbnNhY3Rpb25zOiBUcmFuc2FjdGlvblNwZWNbXTtcbiAgdGFza3M6IFRhc2tTcGVjW107XG4gIGNvbW1hbmRzOiBDb21tYW5kU3BlYzxhbnksIGFueSwgYW55LCBhbnk+W107XG4gIC8qKlxuICAgKiBPcGVuIEFQSSAzIHNjaGVtYSBkZWZpbml0aW9ucyBmb3IgYWxsIGtub3duIEV2ZW50cyBpbiB0aGlzIFNlcnZpY2UuXG4gICAqL1xuICBldmVudHM6IEV2ZW50U3BlY1tdO1xuICAvKipcbiAgICogSW5kaXZpZHVhbGx5IGJ1bmRsZWQge0BsaW5rIEV2ZW50RnVuY3Rpb259cyBjb250YWluaW5nIGEgc2luZ2xlIGBzdWJzY3JpcHRpb25gIGV2ZW50IGhhbmRsZXIuXG4gICAqL1xuICBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25TcGVjW107XG4gIGJ1Y2tldHM6IHtcbiAgICBidWNrZXRzOiBCdWNrZXRTcGVjW107XG4gIH07XG4gIGVudGl0aWVzOiB7XG4gICAgZW50aXRpZXM6IEVudGl0eVNwZWNbXTtcbiAgfTtcbiAgb3BlbkFwaToge1xuICAgIGluZm86IG9wZW5hcGkuSW5mb09iamVjdDtcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblNwZWMge1xuICBtZW1vcnlTaXplPzogbnVtYmVyO1xuICB0aW1lb3V0PzogRHVyYXRpb25TY2hlZHVsZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTdWJzY3JpcHRpb25TcGVjPE5hbWUgZXh0ZW5kcyBzdHJpbmcgPSBzdHJpbmc+IHtcbiAgLyoqXG4gICAqIFVuaXF1ZSBuYW1lIG9mIHRoaXMgU3Vic2NyaXB0aW9uLlxuICAgKi9cbiAgbmFtZTogTmFtZTtcbiAgLyoqXG4gICAqIFN1YnNjcmlwdGlvbnMgdGhpcyBFdmVudCBIYW5kbGVyIGlzIHN1YnNjcmliZWQgdG8uIEFueSBldmVudCBmbG93aW5nXG4gICAqIHRocm91Z2ggdGhlIFNlcnZpY2UncyBFdmVudCBCdXMgdGhhdCBtYXRjaCB0aGVzZSBjcml0ZXJpYSB3aWxsIGJlXG4gICAqIHNlbnQgdG8gdGhpcyBMYW1iZGEgRnVuY3Rpb24uXG4gICAqL1xuICBmaWx0ZXJzOiBTdWJzY3JpcHRpb25GaWx0ZXJbXTtcbiAgLyoqXG4gICAqIFJ1bnRpbWUgY29uZmlndXJhdGlvbiBmb3IgdGhpcyBFdmVudCBIYW5kbGVyLlxuICAgKi9cbiAgcHJvcHM/OiBTdWJzY3JpcHRpb25SdW50aW1lUHJvcHM7XG4gIC8qKlxuICAgKiBPbmx5IGF2YWlsYWJsZSBkdXJpbmcgZXZlbnR1YWwtaW5mZXIuXG4gICAqL1xuICBzb3VyY2VMb2NhdGlvbj86IFNvdXJjZUxvY2F0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50U3BlYyB7XG4gIC8qKlxuICAgKiBUaGUgRXZlbnQncyBnbG9iYWxseSB1bmlxdWUgbmFtZS5cbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsIFNjaGVtYSBvZiB0aGUgRXZlbnQuXG4gICAqL1xuICBzY2hlbWE/OiBvcGVuYXBpLlNjaGVtYU9iamVjdDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kT3V0cHV0IHtcbiAgc2NoZW1hPzogb3BlbmFwaS5TY2hlbWFPYmplY3Q7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBTdGF0dXMgY29kZSBvZiB0aGUgb3V0cHV0IHVzZWQgaW4gY29tbWFuZHMgd2l0aCBhIHJlc3QgcGF0aC5cbiAgICpcbiAgICogUlBDIGNvbW1hbmRzIGFsd2F5cyByZXR1cm4gYSBzaW5nbGUgMjAwIHJlc3BvbnNlLlxuICAgKi9cbiAgcmVzdFN0YXR1c0NvZGU6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kU3BlYzxcbiAgTmFtZSBleHRlbmRzIHN0cmluZyA9IHN0cmluZyxcbiAgSW5wdXQgPSB1bmRlZmluZWQsXG4gIFBhdGggZXh0ZW5kcyBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQsXG4gIE1ldGhvZCBleHRlbmRzIEh0dHBNZXRob2QgfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcbj4gZXh0ZW5kcyBGdW5jdGlvblJ1bnRpbWVQcm9wcyB7XG4gIG5hbWU6IE5hbWU7XG4gIC8qKlxuICAgKiBMb25nIGRlc2NyaXB0aW9uIG9mIHRoZSBBUEksIHdyaXR0ZW4gdG8gdGhlIGRlc2NyaXB0aW9uIGZpZWxkIG9mIHRoZSBnZW5lcmF0ZWQgb3BlbiBBUEkgc3BlYy5cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogU2hvcnQgZGVzY3JpcHRpb24gb2YgdGhlIEFQSSwgd3JpdHRlbiB0byB0aGUgc3VtbWFyeSBmaWVsZCBvZiB0aGUgZ2VuZXJhdGVkIG9wZW4gQVBJIHNwZWMuXG4gICAqL1xuICBzdW1tYXJ5Pzogc3RyaW5nO1xuICBpbnB1dD86IG9wZW5hcGkuU2NoZW1hT2JqZWN0O1xuICAvKipcbiAgICogT3V0cHV0IHVzZWQgYnkgUlBDIGNvbW1hbmRzIGFuZCBSZXN0IGNvbW1hbmRzIHRvIGRlZmluZSB0aGUgb3V0cHV0IG9mIHRoZSBoYW5kbGVyLlxuICAgKlxuICAgKiBSUEMgd2lsbCBhbHdheXMgaGF2ZSBhIHN0YXR1cyBjb2RlIG9mIDIwMCwgYnV0IGNhbiBvdmVycmlkZSB0aGUgZGVmYXVsdCBkZXNjcmlwdGlvbiBvZiBcIk9LXCIuXG4gICAqXG4gICAqIFRoZSBSRVNUIGNvbW1hbmQgd2lsbCByZXR1cm4gYSAyMDAgcmVzcG9uc2UgdW5sZXNzIGFuIGFsdGVybmF0aXZlIGlzIHByb3ZpZGVkLlxuICAgKi9cbiAgb3V0cHV0PzogQ29tbWFuZE91dHB1dDtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIG91dHB1dHMgcHJvdmlkZWQgYnkgYW4gaHR0cCBBUEkgY29tbWFuZCB1c2luZyBwYXNzdGhyb3VnaCBtb2RlLlxuICAgKlxuICAgKiBUaGVzZSBjb21tYW5kcyByZXR1cm4gYSB7QGxpbmsgSHR0cFJlc3BvbnNlfSB3aGljaCBjYW4gZGVmaW5lIGFueSBudW1iZXIgb2Ygb3V0cHV0cyB3aXRoIGN1c3RvbSBzdGF0dXMgY29kZXMuXG4gICAqXG4gICAqIFRoZSBvdXRwdXRzIGFyZSB1c2VkIHRvIGdlbmVyYXRlIHRoZSB7QGxpbmsgQXBpU3BlY2lmaWNhdGlvbn0uXG4gICAqL1xuICBvdXRwdXRzPzogQ29tbWFuZE91dHB1dFtdO1xuICBwYXRoPzogUGF0aDtcbiAgbWV0aG9kPzogTWV0aG9kO1xuICBwYXJhbXM/OiBSZXN0UGFyYW1zPElucHV0LCBQYXRoLCBNZXRob2Q+O1xuICBzb3VyY2VMb2NhdGlvbj86IFNvdXJjZUxvY2F0aW9uO1xuICBwYXNzVGhyb3VnaD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBVc2VkIHRvIGlzb2xhdGUgcnBjIHBhdGhzLlxuICAgKlxuICAgKiAvcnBjWy9uYW1lc3BhY2VdL2NvbW1hbmRcbiAgICovXG4gIG5hbWVzcGFjZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEVuYWJsZSBvciBkaXNhYmxlIHNjaGVtYSB2YWxpZGF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICB2YWxpZGF0ZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1NvdXJjZUxvY2F0aW9uKGE6IGFueSk6IGEgaXMgU291cmNlTG9jYXRpb24ge1xuICByZXR1cm4gKFxuICAgIGEgJiZcbiAgICB0eXBlb2YgYSA9PT0gXCJvYmplY3RcIiAmJlxuICAgIHR5cGVvZiBhLmZpbGVOYW1lID09PSBcInN0cmluZ1wiICYmXG4gICAgdHlwZW9mIGEuZXhwb3J0TmFtZSA9PT0gXCJzdHJpbmdcIlxuICApO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZUxvY2F0aW9uIHtcbiAgZmlsZU5hbWU6IHN0cmluZztcbiAgZXhwb3J0TmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVtYXMge1xuICBbc2NoZW1hTmFtZTogc3RyaW5nXTogb3BlbmFwaS5TY2hlbWFPYmplY3Q7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV29ya2Zsb3dTcGVjIHtcbiAgbmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldFNwZWMge1xuICBuYW1lOiBzdHJpbmc7XG4gIGhhbmRsZXJzOiBCdWNrZXROb3RpZmljYXRpb25IYW5kbGVyU3BlY1tdO1xufVxuXG5leHBvcnQgdHlwZSBCdWNrZXROb3RpZmljYXRpb25FdmVudFR5cGUgPSBcInB1dFwiIHwgXCJjb3B5XCIgfCBcImRlbGV0ZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldE5vdGlmaWNhdGlvbkhhbmRsZXJPcHRpb25zIGV4dGVuZHMgRnVuY3Rpb25SdW50aW1lUHJvcHMge1xuICAvKipcbiAgICogQSBsaXN0IG9mIG9wZXJhdGlvbnMgdG8gYmUgc2VuZCB0byB0aGUgc3RyZWFtLlxuICAgKlxuICAgKiBAZGVmYXVsdCBBbGwgT3BlcmF0aW9uc1xuICAgKi9cbiAgZXZlbnRUeXBlcz86IEJ1Y2tldE5vdGlmaWNhdGlvbkV2ZW50VHlwZVtdO1xuICAvKipcbiAgICogRmlsdGVyIG9iamVjdHMgaW4gdGhlIHN0cmVhbSBieSBwcmVmaXggb3Igc3VmZml4LlxuICAgKi9cbiAgZmlsdGVycz86IHsgcHJlZml4Pzogc3RyaW5nOyBzdWZmaXg/OiBzdHJpbmcgfVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1Y2tldE5vdGlmaWNhdGlvbkhhbmRsZXJTcGVjIHtcbiAgbmFtZTogc3RyaW5nO1xuICBidWNrZXROYW1lOiBzdHJpbmc7XG4gIG9wdGlvbnM/OiBCdWNrZXROb3RpZmljYXRpb25IYW5kbGVyT3B0aW9ucztcbiAgc291cmNlTG9jYXRpb24/OiBTb3VyY2VMb2NhdGlvbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnRpdHlTcGVjIHtcbiAgbmFtZTogc3RyaW5nO1xuICBrZXk6IEtleURlZmluaXRpb247XG4gIC8qKlxuICAgKiBBbiBPcHRpb25hbCBzY2hlbWEgZm9yIHRoZSBlbnRpdHkgd2l0aGluIGFuIGVudGl0eS5cbiAgICovXG4gIGF0dHJpYnV0ZXM6IG9wZW5hcGkuU2NoZW1hT2JqZWN0O1xuICBzdHJlYW1zOiBFbnRpdHlTdHJlYW1TcGVjW107XG4gIGluZGljZXM6IEVudGl0eUluZGV4U3BlY1tdO1xufVxuXG5leHBvcnQgdHlwZSBFbnRpdHlTdHJlYW1PcGVyYXRpb24gPSBcImluc2VydFwiIHwgXCJtb2RpZnlcIiB8IFwicmVtb3ZlXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5U3RyZWFtT3B0aW9uczxcbiAgQXR0ciBleHRlbmRzIEF0dHJpYnV0ZXMgPSBBdHRyaWJ1dGVzLFxuICBQYXJ0aXRpb24gZXh0ZW5kcyBDb21wb3NpdGVLZXlQYXJ0PEF0dHI+ID0gQ29tcG9zaXRlS2V5UGFydDxBdHRyPixcbiAgU29ydCBleHRlbmRzIENvbXBvc2l0ZUtleVBhcnQ8QXR0cj4gfCB1bmRlZmluZWQgPVxuICAgIHwgQ29tcG9zaXRlS2V5UGFydDxBdHRyPlxuICAgIHwgdW5kZWZpbmVkXG4+IGV4dGVuZHMgRnVuY3Rpb25SdW50aW1lUHJvcHMge1xuICAvKipcbiAgICogQSBsaXN0IG9mIG9wZXJhdGlvbnMgdG8gYmUgc2VuZCB0byB0aGUgc3RyZWFtLlxuICAgKlxuICAgKiBAZGVmYXVsdCBBbGwgT3BlcmF0aW9uc1xuICAgKi9cbiAgb3BlcmF0aW9ucz86IEVudGl0eVN0cmVhbU9wZXJhdGlvbltdO1xuICAvKipcbiAgICogV2hlbiB0cnVlLCB0aGUgb2xkIHZhbHVlIHdpbGwgYmUgc2VudCB3aXRoIHRoZSBuZXcgdmFsdWUuXG4gICAqL1xuICBpbmNsdWRlT2xkPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIE9uZSBvciBtb3JlIGtleSBxdWVyaWVzIHRoYXQgd2lsbCBiZSBpbmNsdWRlZCBpbiB0aGUgc3RyZWFtLlxuICAgKi9cbiAgcXVlcnlLZXlzPzogU3RyZWFtUXVlcnlLZXk8QXR0ciwgUGFydGl0aW9uLCBTb3J0PltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eVN0cmVhbVNwZWM8XG4gIEF0dHIgZXh0ZW5kcyBBdHRyaWJ1dGVzID0gQXR0cmlidXRlcyxcbiAgUGFydGl0aW9uIGV4dGVuZHMgQ29tcG9zaXRlS2V5UGFydDxBdHRyPiA9IENvbXBvc2l0ZUtleVBhcnQ8QXR0cj4sXG4gIFNvcnQgZXh0ZW5kcyBDb21wb3NpdGVLZXlQYXJ0PEF0dHI+IHwgdW5kZWZpbmVkID1cbiAgICB8IENvbXBvc2l0ZUtleVBhcnQ8QXR0cj5cbiAgICB8IHVuZGVmaW5lZFxuPiB7XG4gIG5hbWU6IHN0cmluZztcbiAgZW50aXR5TmFtZTogc3RyaW5nO1xuICBvcHRpb25zPzogRW50aXR5U3RyZWFtT3B0aW9uczxBdHRyLCBQYXJ0aXRpb24sIFNvcnQ+O1xuICBzb3VyY2VMb2NhdGlvbj86IFNvdXJjZUxvY2F0aW9uO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUluZGV4U3BlYyB7XG4gIG5hbWU6IHN0cmluZztcbiAgZW50aXR5TmFtZTogc3RyaW5nO1xuICBrZXk6IEtleURlZmluaXRpb247XG4gIHBhcnRpdGlvbj86IENvbXBvc2l0ZUtleVBhcnQ8YW55PjtcbiAgc29ydD86IENvbXBvc2l0ZUtleVBhcnQ8YW55Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUcmFuc2FjdGlvblNwZWMge1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnRNYW5pZmVzdCB7XG4gIHNlcnZpY2VOYW1lOiBzdHJpbmc7XG4gIHNlcnZpY2VTcGVjOiBTZXJ2aWNlU3BlYztcbiAgc2VydmljZVVybDogc3RyaW5nO1xufVxuIl19
{
"name": "@eventual/core",
"version": "0.39.2",
"version": "0.39.3",
"exports": {

@@ -5,0 +5,0 @@ ".": {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc