CommunitySolidServer/docs/classes/identity_identityproviderhttphandler.identityproviderhttphandler.html
2021-09-03 07:54:08 +00:00

702 lines
49 KiB
HTML

<!doctype html>
<html class="default no-js">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>IdentityProviderHttpHandler | Community Solid Server - v1.1.0</title>
<meta name="description" content="Documentation for Community Solid Server - v1.1.0">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../assets/css/main.css">
<script async src="../assets/js/search.js" id="search-script"></script>
</head>
<body>
<header>
<div class="tsd-page-toolbar">
<div class="container">
<div class="table-wrap">
<div class="table-cell" id="tsd-search" data-index="../assets/js/search.json" data-base="..">
<div class="field">
<label for="tsd-search-field" class="tsd-widget search no-caption">Search</label>
<input id="tsd-search-field" type="text" />
</div>
<ul class="results">
<li class="state loading">Preparing search index...</li>
<li class="state failure">The search index is not available</li>
</ul>
<a href="../index.html" class="title">Community Solid Server - v1.1.0</a>
</div>
<div class="table-cell" id="tsd-widgets">
<div id="tsd-filter">
<a href="#" class="tsd-widget options no-caption" data-toggle="options">Options</a>
<div class="tsd-filter-group">
<div class="tsd-select" id="tsd-filter-visibility">
<span class="tsd-select-label">All</span>
<ul class="tsd-select-list">
<li data-value="public">Public</li>
<li data-value="protected">Public/Protected</li>
<li data-value="private" class="selected">All</li>
</ul>
</div>
<input type="checkbox" id="tsd-filter-inherited" checked />
<label class="tsd-widget" for="tsd-filter-inherited">Inherited</label>
<input type="checkbox" id="tsd-filter-externals" checked />
<label class="tsd-widget" for="tsd-filter-externals">Externals</label>
</div>
</div>
<a href="#" class="tsd-widget menu no-caption" data-toggle="menu">Menu</a>
</div>
</div>
</div>
</div>
<div class="tsd-page-title">
<div class="container">
<ul class="tsd-breadcrumb">
<li>
<a href="../modules.html">Community Solid Server - v1.1.0</a>
</li>
<li>
<a href="../modules/identity_identityproviderhttphandler.html">identity/IdentityProviderHttpHandler</a>
</li>
<li>
<a href="identity_identityproviderhttphandler.identityproviderhttphandler.html">IdentityProviderHttpHandler</a>
</li>
</ul>
<h1>Class IdentityProviderHttpHandler</h1>
</div>
</div>
</header>
<div class="container container-main">
<div class="row">
<div class="col-8 col-content">
<section class="tsd-panel tsd-comment">
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Handles all requests relevant for the entire IDP interaction,
by sending them to either a matching <a href="identity_identityproviderhttphandler.interactionroute.html">InteractionRoute</a>,
or the generated Provider from the <a href="../interfaces/identity_configuration_providerfactory.providerfactory.html">ProviderFactory</a> if there is no match.</p>
</div>
<p>The InteractionRoutes handle all requests where we need custom behaviour,
such as everything related to generating and validating an account.
The Provider handles all the default request such as the initial handshake.</p>
<p>This handler handles all requests since it assumes all those requests are relevant for the IDP interaction.
A <a href="server_util_routerhandler.routerhandler.html">RouterHandler</a> should be used to filter out other requests.</p>
</div>
</section>
<section class="tsd-panel tsd-hierarchy">
<h3>Hierarchy</h3>
<ul class="tsd-hierarchy">
<li>
<a href="server_httphandler.httphandler.html" class="tsd-signature-type" data-tsd-kind="Class">HttpHandler</a>
<ul class="tsd-hierarchy">
<li>
<span class="target">IdentityProviderHttpHandler</span>
</li>
</ul>
</li>
</ul>
</section>
<section class="tsd-panel-group tsd-index-group">
<h2>Index</h2>
<section class="tsd-panel tsd-index-panel">
<div class="tsd-index-content">
<section class="tsd-index-section ">
<h3>Constructors</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite"><a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#constructor" class="tsd-kind-icon">constructor</a></li>
</ul>
</section>
<section class="tsd-index-section tsd-is-private-protected">
<h3>Properties</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#errorhandler" class="tsd-kind-icon">error<wbr>Handler</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#idppath" class="tsd-kind-icon">idp<wbr>Path</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#interactioncompleter" class="tsd-kind-icon">interaction<wbr>Completer</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#interactionroutes" class="tsd-kind-icon">interaction<wbr>Routes</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#logger" class="tsd-kind-icon">logger</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#providerfactory" class="tsd-kind-icon">provider<wbr>Factory</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#responsewriter" class="tsd-kind-icon">response<wbr>Writer</a></li>
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#templatehandler" class="tsd-kind-icon">template<wbr>Handler</a></li>
</ul>
</section>
<section class="tsd-index-section ">
<h3>Methods</h3>
<ul class="tsd-index-list">
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#canhandle" class="tsd-kind-icon">can<wbr>Handle</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#findroute" class="tsd-kind-icon">find<wbr>Route</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#getpromptmatch" class="tsd-kind-icon">get<wbr>Prompt<wbr>Match</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#getroutematch" class="tsd-kind-icon">get<wbr>Route<wbr>Match</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-overwrite"><a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#handle" class="tsd-kind-icon">handle</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#handlerequest" class="tsd-kind-icon">handle<wbr>Request</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#handlesafe" class="tsd-kind-icon">handle<wbr>Safe</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#handletemplateresponse" class="tsd-kind-icon">handle<wbr>Template<wbr>Response</a></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#resolveroute" class="tsd-kind-icon">resolve<wbr>Route</a></li>
</ul>
</section>
</div>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Constructors</h2>
<section class="tsd-panel tsd-member tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite">
<a name="constructor" class="tsd-anchor"></a>
<h3>constructor</h3>
<ul class="tsd-signatures tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite">
<li class="tsd-signature tsd-kind-icon">new <wbr>Identity<wbr>Provider<wbr>Http<wbr>Handler<span class="tsd-signature-symbol">(</span>idpPath<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, providerFactory<span class="tsd-signature-symbol">: </span><a href="../interfaces/identity_configuration_providerfactory.providerfactory.html" class="tsd-signature-type" data-tsd-kind="Interface">ProviderFactory</a>, interactionRoutes<span class="tsd-signature-symbol">: </span><a href="identity_identityproviderhttphandler.interactionroute.html" class="tsd-signature-type" data-tsd-kind="Class">InteractionRoute</a><span class="tsd-signature-symbol">[]</span>, templateHandler<span class="tsd-signature-symbol">: </span><a href="server_util_templatehandler.templatehandler.html" class="tsd-signature-type" data-tsd-kind="Class">TemplateHandler</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Dict</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span>, interactionCompleter<span class="tsd-signature-symbol">: </span><a href="identity_interaction_util_interactioncompleter.interactioncompleter.html" class="tsd-signature-type" data-tsd-kind="Class">InteractionCompleter</a>, errorHandler<span class="tsd-signature-symbol">: </span><a href="ldp_http_errorhandler.errorhandler.html" class="tsd-signature-type" data-tsd-kind="Class">ErrorHandler</a>, responseWriter<span class="tsd-signature-symbol">: </span><a href="ldp_http_responsewriter.responsewriter.html" class="tsd-signature-type" data-tsd-kind="Class">ResponseWriter</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="identity_identityproviderhttphandler.identityproviderhttphandler.html" class="tsd-signature-type" data-tsd-kind="Class">IdentityProviderHttpHandler</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Overrides <a href="server_httphandler.httphandler.html">HttpHandler</a>.<a href="server_httphandler.httphandler.html#constructor">constructor</a></p>
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/45345c1/src/identity/IdentityProviderHttpHandler.ts#L74">src/identity/IdentityProviderHttpHandler.ts:74</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>idpPath: <span class="tsd-signature-type">string</span></h5>
<div class="tsd-comment tsd-typography">
<p>Relative path of the IDP entry point.</p>
</div>
</li>
<li>
<h5>providerFactory: <a href="../interfaces/identity_configuration_providerfactory.providerfactory.html" class="tsd-signature-type" data-tsd-kind="Interface">ProviderFactory</a></h5>
<div class="tsd-comment tsd-typography">
<p>Used to generate the OIDC provider.</p>
</div>
</li>
<li>
<h5>interactionRoutes: <a href="identity_identityproviderhttphandler.interactionroute.html" class="tsd-signature-type" data-tsd-kind="Class">InteractionRoute</a><span class="tsd-signature-symbol">[]</span></h5>
<div class="tsd-comment tsd-typography">
<p>All routes handling the custom IDP behaviour.</p>
</div>
</li>
<li>
<h5>templateHandler: <a href="server_util_templatehandler.templatehandler.html" class="tsd-signature-type" data-tsd-kind="Class">TemplateHandler</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Dict</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span></h5>
<div class="tsd-comment tsd-typography">
<p>Used for rendering responses.</p>
</div>
</li>
<li>
<h5>interactionCompleter: <a href="identity_interaction_util_interactioncompleter.interactioncompleter.html" class="tsd-signature-type" data-tsd-kind="Class">InteractionCompleter</a></h5>
<div class="tsd-comment tsd-typography">
<p>Used for POST requests that need to be handled by the OIDC library.</p>
</div>
</li>
<li>
<h5>errorHandler: <a href="ldp_http_errorhandler.errorhandler.html" class="tsd-signature-type" data-tsd-kind="Class">ErrorHandler</a></h5>
<div class="tsd-comment tsd-typography">
<p>Converts errors to responses.</p>
</div>
</li>
<li>
<h5>responseWriter: <a href="ldp_http_responsewriter.responsewriter.html" class="tsd-signature-type" data-tsd-kind="Class">ResponseWriter</a></h5>
<div class="tsd-comment tsd-typography">
<p>Renders error responses.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="identity_identityproviderhttphandler.identityproviderhttphandler.html" class="tsd-signature-type" data-tsd-kind="Class">IdentityProviderHttpHandler</a></h4>
</li>
</ul>
</section>
</section>
<section class="tsd-panel-group tsd-member-group tsd-is-private-protected">
<h2>Properties</h2>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private">
<a name="errorhandler" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> error<wbr>Handler</h3>
<div class="tsd-signature tsd-kind-icon">error<wbr>Handler<span class="tsd-signature-symbol">:</span> <a href="ldp_http_errorhandler.errorhandler.html" class="tsd-signature-type" data-tsd-kind="Class">ErrorHandler</a></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/45345c1/src/identity/IdentityProviderHttpHandler.ts#L73">src/identity/IdentityProviderHttpHandler.ts:73</a></li>
</ul>
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private">
<a name="idppath" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> idp<wbr>Path</h3>
<div class="tsd-signature tsd-kind-icon">idp<wbr>Path<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/45345c1/src/identity/IdentityProviderHttpHandler.ts#L68">src/identity/IdentityProviderHttpHandler.ts:68</a></li>
</ul>
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private">
<a name="interactioncompleter" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> interaction<wbr>Completer</h3>
<div class="tsd-signature tsd-kind-icon">interaction<wbr>Completer<span class="tsd-signature-symbol">:</span> <a href="identity_interaction_util_interactioncompleter.interactioncompleter.html" class="tsd-signature-type" data-tsd-kind="Class">InteractionCompleter</a></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/45345c1/src/identity/IdentityProviderHttpHandler.ts#L72">src/identity/IdentityProviderHttpHandler.ts:72</a></li>
</ul>
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private">
<a name="interactionroutes" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> interaction<wbr>Routes</h3>
<div class="tsd-signature tsd-kind-icon">interaction<wbr>Routes<span class="tsd-signature-symbol">:</span> <a href="identity_identityproviderhttphandler.interactionroute.html" class="tsd-signature-type" data-tsd-kind="Class">InteractionRoute</a><span class="tsd-signature-symbol">[]</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/45345c1/src/identity/IdentityProviderHttpHandler.ts#L70">src/identity/IdentityProviderHttpHandler.ts:70</a></li>
</ul>
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-protected">
<a name="logger" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagProtected">Protected</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> logger</h3>
<div class="tsd-signature tsd-kind-icon">logger<span class="tsd-signature-symbol">:</span> <a href="logging_logger.logger.html" class="tsd-signature-type" data-tsd-kind="Class">Logger</a><span class="tsd-signature-symbol"> = ...</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/45345c1/src/identity/IdentityProviderHttpHandler.ts#L66">src/identity/IdentityProviderHttpHandler.ts:66</a></li>
</ul>
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private">
<a name="providerfactory" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> provider<wbr>Factory</h3>
<div class="tsd-signature tsd-kind-icon">provider<wbr>Factory<span class="tsd-signature-symbol">:</span> <a href="../interfaces/identity_configuration_providerfactory.providerfactory.html" class="tsd-signature-type" data-tsd-kind="Interface">ProviderFactory</a></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/45345c1/src/identity/IdentityProviderHttpHandler.ts#L69">src/identity/IdentityProviderHttpHandler.ts:69</a></li>
</ul>
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private">
<a name="responsewriter" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> response<wbr>Writer</h3>
<div class="tsd-signature tsd-kind-icon">response<wbr>Writer<span class="tsd-signature-symbol">:</span> <a href="ldp_http_responsewriter.responsewriter.html" class="tsd-signature-type" data-tsd-kind="Class">ResponseWriter</a></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/45345c1/src/identity/IdentityProviderHttpHandler.ts#L74">src/identity/IdentityProviderHttpHandler.ts:74</a></li>
</ul>
</aside>
</section>
<section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private">
<a name="templatehandler" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> template<wbr>Handler</h3>
<div class="tsd-signature tsd-kind-icon">template<wbr>Handler<span class="tsd-signature-symbol">:</span> <a href="server_util_templatehandler.templatehandler.html" class="tsd-signature-type" data-tsd-kind="Class">TemplateHandler</a><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">Dict</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span><span class="tsd-signature-symbol">&gt;</span></div>
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/45345c1/src/identity/IdentityProviderHttpHandler.ts#L71">src/identity/IdentityProviderHttpHandler.ts:71</a></li>
</ul>
</aside>
</section>
</section>
<section class="tsd-panel-group tsd-member-group ">
<h2>Methods</h2>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="canhandle" class="tsd-anchor"></a>
<h3>can<wbr>Handle</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">can<wbr>Handle<span class="tsd-signature-symbol">(</span>input<span class="tsd-signature-symbol">: </span><a href="../interfaces/server_httphandler.httphandlerinput.html" class="tsd-signature-type" data-tsd-kind="Interface">HttpHandlerInput</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Inherited from <a href="server_httphandler.httphandler.html">HttpHandler</a>.<a href="server_httphandler.httphandler.html#canhandle">canHandle</a></p>
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/45345c1/src/util/handlers/AsyncHandler.ts#L13">src/util/handlers/AsyncHandler.ts:13</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Checks if the input data can be handled by this class.
Throws an error if it can&#39;t handle the data.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>input: <a href="../interfaces/server_httphandler.httphandlerinput.html" class="tsd-signature-type" data-tsd-kind="Interface">HttpHandlerInput</a></h5>
<div class="tsd-comment tsd-typography">
<p>Input data that could potentially be handled.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
<p>A promise resolving if the input can be handled, rejecting with an Error if not.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-private">
<a name="findroute" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagPrivate">Private</span> find<wbr>Route</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-private">
<li class="tsd-signature tsd-kind-icon">find<wbr>Route<span class="tsd-signature-symbol">(</span>request<span class="tsd-signature-symbol">: </span><a href="../modules/server_httprequest.html#httprequest" class="tsd-signature-type" data-tsd-kind="Type alias">HttpRequest</a>, oidcInteraction<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Interaction</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><a href="identity_identityproviderhttphandler.interactionroute.html" class="tsd-signature-type" data-tsd-kind="Class">InteractionRoute</a><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/45345c1/src/identity/IdentityProviderHttpHandler.ts#L146">src/identity/IdentityProviderHttpHandler.ts:146</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Finds a route that supports the given request.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>request: <a href="../modules/server_httprequest.html#httprequest" class="tsd-signature-type" data-tsd-kind="Type alias">HttpRequest</a></h5>
</li>
<li>
<h5><span class="tsd-flag ts-flagOptional">Optional</span> oidcInteraction: <span class="tsd-signature-type">Interaction</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><a href="identity_identityproviderhttphandler.interactionroute.html" class="tsd-signature-type" data-tsd-kind="Class">InteractionRoute</a><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-private">
<a name="getpromptmatch" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagPrivate">Private</span> get<wbr>Prompt<wbr>Match</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-private">
<li class="tsd-signature tsd-kind-icon">get<wbr>Prompt<wbr>Match<span class="tsd-signature-symbol">(</span>prompt<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="identity_identityproviderhttphandler.interactionroute.html" class="tsd-signature-type" data-tsd-kind="Class">InteractionRoute</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/45345c1/src/identity/IdentityProviderHttpHandler.ts#L226">src/identity/IdentityProviderHttpHandler.ts:226</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Find a route by matching the prompt.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>prompt: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <a href="identity_identityproviderhttphandler.interactionroute.html" class="tsd-signature-type" data-tsd-kind="Class">InteractionRoute</a></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-private">
<a name="getroutematch" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagPrivate">Private</span> get<wbr>Route<wbr>Match</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-private">
<li class="tsd-signature tsd-kind-icon">get<wbr>Route<wbr>Match<span class="tsd-signature-symbol">(</span>url<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><a href="identity_identityproviderhttphandler.interactionroute.html" class="tsd-signature-type" data-tsd-kind="Class">InteractionRoute</a></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/45345c1/src/identity/IdentityProviderHttpHandler.ts#L215">src/identity/IdentityProviderHttpHandler.ts:215</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Find a route by matching the URL.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>url: <span class="tsd-signature-type">string</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">undefined</span><span class="tsd-signature-symbol"> | </span><a href="identity_identityproviderhttphandler.interactionroute.html" class="tsd-signature-type" data-tsd-kind="Class">InteractionRoute</a></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-overwrite">
<a name="handle" class="tsd-anchor"></a>
<h3>handle</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-overwrite">
<li class="tsd-signature tsd-kind-icon">handle<span class="tsd-signature-symbol">(</span>__namedParameters<span class="tsd-signature-symbol">: </span><a href="../interfaces/server_httphandler.httphandlerinput.html" class="tsd-signature-type" data-tsd-kind="Interface">HttpHandlerInput</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Overrides <a href="server_httphandler.httphandler.html">HttpHandler</a>.<a href="server_httphandler.httphandler.html#handle">handle</a></p>
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/45345c1/src/identity/IdentityProviderHttpHandler.ts#L108">src/identity/IdentityProviderHttpHandler.ts:108</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Handles the given input. This should only be done if the <a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#canhandle">canHandle</a> function returned <code>true</code>.
Therefore, consider using the <a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#handlesafe">handleSafe</a> function instead.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>__namedParameters: <a href="../interfaces/server_httphandler.httphandlerinput.html" class="tsd-signature-type" data-tsd-kind="Interface">HttpHandlerInput</a></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
<p>A promise resolving when the handling is finished. Return value depends on the given type.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-private">
<a name="handlerequest" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagPrivate">Private</span> handle<wbr>Request</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-private">
<li class="tsd-signature tsd-kind-icon">handle<wbr>Request<span class="tsd-signature-symbol">(</span>request<span class="tsd-signature-symbol">: </span><a href="../modules/server_httprequest.html#httprequest" class="tsd-signature-type" data-tsd-kind="Type alias">HttpRequest</a>, response<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ServerResponse</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/45345c1/src/identity/IdentityProviderHttpHandler.ts#L122">src/identity/IdentityProviderHttpHandler.ts:122</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Finds the matching route and resolves the request.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>request: <a href="../modules/server_httprequest.html#httprequest" class="tsd-signature-type" data-tsd-kind="Type alias">HttpRequest</a></h5>
</li>
<li>
<h5>response: <span class="tsd-signature-type">ServerResponse</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a name="handlesafe" class="tsd-anchor"></a>
<h3>handle<wbr>Safe</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<li class="tsd-signature tsd-kind-icon">handle<wbr>Safe<span class="tsd-signature-symbol">(</span>input<span class="tsd-signature-symbol">: </span><a href="../interfaces/server_httphandler.httphandlerinput.html" class="tsd-signature-type" data-tsd-kind="Interface">HttpHandlerInput</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<p>Inherited from <a href="server_httphandler.httphandler.html">HttpHandler</a>.<a href="server_httphandler.httphandler.html#handlesafe">handleSafe</a></p>
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/45345c1/src/util/handlers/AsyncHandler.ts#L35">src/util/handlers/AsyncHandler.ts:35</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Helper function that first runs the canHandle function followed by the handle function.
Throws the error of the <a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#canhandle">canHandle</a> function if the data can&#39;t be handled,
or returns the result of the <a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#handle">handle</a> function otherwise.</p>
</div>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>input: <a href="../interfaces/server_httphandler.httphandlerinput.html" class="tsd-signature-type" data-tsd-kind="Interface">HttpHandlerInput</a></h5>
<div class="tsd-comment tsd-typography">
<p>Input data that will be handled if it can be handled.</p>
</div>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
<p>A promise resolving if the input can be handled, rejecting with an Error if not.
Return value depends on the given type.</p>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-private">
<a name="handletemplateresponse" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagPrivate">Private</span> handle<wbr>Template<wbr>Response</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-private">
<li class="tsd-signature tsd-kind-icon">handle<wbr>Template<wbr>Response<span class="tsd-signature-symbol">(</span>response<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ServerResponse</span>, templateFile<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span>, data<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Dict</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span>, oidcInteraction<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Interaction</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/45345c1/src/identity/IdentityProviderHttpHandler.ts#L205">src/identity/IdentityProviderHttpHandler.ts:205</a></li>
</ul>
</aside>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>response: <span class="tsd-signature-type">ServerResponse</span></h5>
</li>
<li>
<h5>templateFile: <span class="tsd-signature-type">string</span></h5>
</li>
<li>
<h5><span class="tsd-flag ts-flagOptional">Optional</span> data: <span class="tsd-signature-type">Dict</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">any</span><span class="tsd-signature-symbol">&gt;</span></h5>
</li>
<li>
<h5><span class="tsd-flag ts-flagOptional">Optional</span> oidcInteraction: <span class="tsd-signature-type">Interaction</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
<section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-private">
<a name="resolveroute" class="tsd-anchor"></a>
<h3><span class="tsd-flag ts-flagPrivate">Private</span> resolve<wbr>Route</h3>
<ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-private">
<li class="tsd-signature tsd-kind-icon">resolve<wbr>Route<span class="tsd-signature-symbol">(</span>request<span class="tsd-signature-symbol">: </span><a href="../modules/server_httprequest.html#httprequest" class="tsd-signature-type" data-tsd-kind="Type alias">HttpRequest</a>, response<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ServerResponse</span>, route<span class="tsd-signature-symbol">: </span><a href="identity_identityproviderhttphandler.interactionroute.html" class="tsd-signature-type" data-tsd-kind="Class">InteractionRoute</a>, oidcInteraction<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">Interaction</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></li>
</ul>
<ul class="tsd-descriptions">
<li class="tsd-description">
<aside class="tsd-sources">
<ul>
<li>Defined in <a href="https://github.com/solid/community-server/blob/45345c1/src/identity/IdentityProviderHttpHandler.ts#L167">src/identity/IdentityProviderHttpHandler.ts:167</a></li>
</ul>
</aside>
<div class="tsd-comment tsd-typography">
<div class="lead">
<p>Handles the behaviour of an InteractionRoute.
Will error if the route does not support the given request.</p>
</div>
<p>GET requests go to the templateHandler, POST requests to the specific InteractionHandler of the route.</p>
</div>
<h4 class="tsd-parameters-title">Parameters</h4>
<ul class="tsd-parameters">
<li>
<h5>request: <a href="../modules/server_httprequest.html#httprequest" class="tsd-signature-type" data-tsd-kind="Type alias">HttpRequest</a></h5>
</li>
<li>
<h5>response: <span class="tsd-signature-type">ServerResponse</span></h5>
</li>
<li>
<h5>route: <a href="identity_identityproviderhttphandler.interactionroute.html" class="tsd-signature-type" data-tsd-kind="Class">InteractionRoute</a></h5>
</li>
<li>
<h5><span class="tsd-flag ts-flagOptional">Optional</span> oidcInteraction: <span class="tsd-signature-type">Interaction</span></h5>
</li>
</ul>
<h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">void</span><span class="tsd-signature-symbol">&gt;</span></h4>
</li>
</ul>
</section>
</section>
</div>
<div class="col-4 col-menu menu-sticky-wrap menu-highlight">
<nav class="tsd-navigation primary">
<ul>
<li class=" ">
<a href="../modules.html">Modules</a>
</li>
<li class="current tsd-kind-module">
<a href="../modules/identity_identityproviderhttphandler.html">identity/<wbr>Identity<wbr>Provider<wbr>Http<wbr>Handler</a>
</li>
</ul>
</nav>
<nav class="tsd-navigation secondary menu-sticky">
<ul class="before-current">
</ul>
<ul class="current">
<li class="current tsd-kind-class tsd-parent-kind-module">
<a href="identity_identityproviderhttphandler.identityproviderhttphandler.html" class="tsd-kind-icon">Identity<wbr>Provider<wbr>Http<wbr>Handler</a>
<ul>
<li class=" tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite">
<a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#constructor" class="tsd-kind-icon">constructor</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-private">
<a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#errorhandler" class="tsd-kind-icon">error<wbr>Handler</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-private">
<a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#idppath" class="tsd-kind-icon">idp<wbr>Path</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-private">
<a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#interactioncompleter" class="tsd-kind-icon">interaction<wbr>Completer</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-private">
<a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#interactionroutes" class="tsd-kind-icon">interaction<wbr>Routes</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-protected">
<a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#logger" class="tsd-kind-icon">logger</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-private">
<a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#providerfactory" class="tsd-kind-icon">provider<wbr>Factory</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-private">
<a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#responsewriter" class="tsd-kind-icon">response<wbr>Writer</a>
</li>
<li class=" tsd-kind-property tsd-parent-kind-class tsd-is-private">
<a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#templatehandler" class="tsd-kind-icon">template<wbr>Handler</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#canhandle" class="tsd-kind-icon">can<wbr>Handle</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-private">
<a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#findroute" class="tsd-kind-icon">find<wbr>Route</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-private">
<a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#getpromptmatch" class="tsd-kind-icon">get<wbr>Prompt<wbr>Match</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-private">
<a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#getroutematch" class="tsd-kind-icon">get<wbr>Route<wbr>Match</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-overwrite">
<a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#handle" class="tsd-kind-icon">handle</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-private">
<a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#handlerequest" class="tsd-kind-icon">handle<wbr>Request</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-inherited">
<a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#handlesafe" class="tsd-kind-icon">handle<wbr>Safe</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-private">
<a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#handletemplateresponse" class="tsd-kind-icon">handle<wbr>Template<wbr>Response</a>
</li>
<li class=" tsd-kind-method tsd-parent-kind-class tsd-is-private">
<a href="identity_identityproviderhttphandler.identityproviderhttphandler.html#resolveroute" class="tsd-kind-icon">resolve<wbr>Route</a>
</li>
</ul>
</li>
</ul>
<ul class="after-current">
<li class=" tsd-kind-class tsd-parent-kind-module">
<a href="identity_identityproviderhttphandler.interactionroute.html" class="tsd-kind-icon">Interaction<wbr>Route</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<footer>
<div class="container">
<h2>Legend</h2>
<div class="tsd-legend-group">
<ul class="tsd-legend">
<li class="tsd-kind-variable"><span class="tsd-kind-icon">Variable</span></li>
<li class="tsd-kind-function"><span class="tsd-kind-icon">Function</span></li>
<li class="tsd-kind-function tsd-has-type-parameter"><span class="tsd-kind-icon">Function with type parameter</span></li>
<li class="tsd-kind-type-alias"><span class="tsd-kind-icon">Type alias</span></li>
<li class="tsd-kind-type-alias tsd-has-type-parameter"><span class="tsd-kind-icon">Type alias with type parameter</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-class"><span class="tsd-kind-icon">Class</span></li>
<li class="tsd-kind-class tsd-has-type-parameter"><span class="tsd-kind-icon">Class with type parameter</span></li>
<li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li>
<li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-interface"><span class="tsd-kind-icon">Interface</span></li>
<li class="tsd-kind-interface tsd-has-type-parameter"><span class="tsd-kind-icon">Interface with type parameter</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private property</span></li>
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><span class="tsd-kind-icon">Private method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited method</span></li>
</ul>
<ul class="tsd-legend">
<li class="tsd-kind-property tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected property</span></li>
</ul>
</div>
</div>
</footer>
<div class="overlay"></div>
<script src="../assets/js/main.js"></script>
</body>
</html>