CommunitySolidServer/4.0/docs/classes/AllowAcceptHeaderWriter.html
2022-07-04 15:45:11 +02:00

44 lines
40 KiB
HTML

<!DOCTYPE html><html class="default"><head><meta charSet="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>AllowAcceptHeaderWriter | Community Solid Server - v4.0.1</title><meta name="description" content="Documentation for Community Solid Server - v4.0.1"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="../assets/style.css"/><link rel="stylesheet" href="../assets/highlight.css"/><link rel="stylesheet" href="../assets/custom.css"/><script async src="../assets/search.js" id="search-script"></script></head><body><script>document.body.classList.add(localStorage.getItem("tsd-theme") || "os")</script><header><div class="tsd-page-toolbar"><div class="container"><div class="table-wrap"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget search no-caption">Search</label><input type="text" id="tsd-search-field"/></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 - v4.0.1</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 - v4.0.1</a></li><li><a href="AllowAcceptHeaderWriter.html">AllowAcceptHeaderWriter</a></li></ul><h1>Class AllowAcceptHeaderWriter</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>Generates Allow, Accept-Patch, Accept-Post, and Accept-Put headers.
The resulting values depend on the choses input methods and types.
The input metadata also gets used to remove methods from that list
if they are not valid in the given situation.</p>
</div></div></section><section class="tsd-panel tsd-hierarchy"><h3>Hierarchy</h3><ul class="tsd-hierarchy"><li><a href="MetadataWriter.html" class="tsd-signature-type" data-tsd-kind="Class">MetadataWriter</a><ul class="tsd-hierarchy"><li><span class="target">AllowAcceptHeaderWriter</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="AllowAcceptHeaderWriter.html#constructor" class="tsd-kind-icon">constructor</a></li></ul></section><section class="tsd-index-section tsd-is-private 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="AllowAcceptHeaderWriter.html#acceptTypes" class="tsd-kind-icon">accept<wbr/>Types</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="AllowAcceptHeaderWriter.html#supportedMethods" class="tsd-kind-icon">supported<wbr/>Methods</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="AllowAcceptHeaderWriter.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="AllowAcceptHeaderWriter.html#filterAllowedMethods" class="tsd-kind-icon">filter<wbr/>Allowed<wbr/>Methods</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="AllowAcceptHeaderWriter.html#generateAccept" class="tsd-kind-icon">generate<wbr/>Accept</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="AllowAcceptHeaderWriter.html#generateAllow" class="tsd-kind-icon">generate<wbr/>Allow</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-overwrite"><a href="AllowAcceptHeaderWriter.html#handle" class="tsd-kind-icon">handle</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="AllowAcceptHeaderWriter.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="AllowAcceptHeaderWriter.html#isDeleteAllowed" class="tsd-kind-icon">is<wbr/>Delete<wbr/>Allowed</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="AllowAcceptHeaderWriter.html#isPostAllowed" class="tsd-kind-icon">is<wbr/>Post<wbr/>Allowed</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 id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link">constructor<a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite"><li class="tsd-signature tsd-kind-icon">new <wbr/>Allow<wbr/>Accept<wbr/>Header<wbr/>Writer<span class="tsd-signature-symbol">(</span>supportedMethods<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span>, acceptTypes<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>patch<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>post<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>put<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-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="AllowAcceptHeaderWriter.html" class="tsd-signature-type" data-tsd-kind="Class">AllowAcceptHeaderWriter</a></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><p>Overrides <a href="MetadataWriter.html">MetadataWriter</a>.<a href="MetadataWriter.html#constructor">constructor</a></p><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/027c803b/src/http/output/metadata/AllowAcceptHeaderWriter.ts#L24">src/http/output/metadata/AllowAcceptHeaderWriter.ts:24</a></li></ul></aside><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>supportedMethods: <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5></li><li><h5>acceptTypes: <span class="tsd-signature-symbol">{ </span>patch<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>post<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>put<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></h5><ul class="tsd-parameters"><li class="tsd-parameter"><h5><span class="tsd-flag ts-flagOptional">Optional</span> patch<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-flag ts-flagOptional">Optional</span> post<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5></li><li class="tsd-parameter"><h5><span class="tsd-flag ts-flagOptional">Optional</span> put<span class="tsd-signature-symbol">?: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5></li></ul></li></ul><h4 class="tsd-returns-title">Returns <a href="AllowAcceptHeaderWriter.html" class="tsd-signature-type" data-tsd-kind="Class">AllowAcceptHeaderWriter</a></h4></li></ul></section></section><section class="tsd-panel-group tsd-member-group tsd-is-private tsd-is-private-protected"><h2>Properties</h2><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private"><a id="acceptTypes" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> accept<wbr/>Types<a href="#acceptTypes" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><div class="tsd-signature tsd-kind-icon">accept<wbr/>Types<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-symbol">{ </span>patch<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>post<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>put<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></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/027c803b/src/http/output/metadata/AllowAcceptHeaderWriter.ts#L22">src/http/output/metadata/AllowAcceptHeaderWriter.ts:22</a></li></ul></aside><div class="tsd-type-declaration"><h4>Type declaration</h4><ul class="tsd-parameters"><li class="tsd-parameter"><h5>patch<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5></li><li class="tsd-parameter"><h5>post<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5></li><li class="tsd-parameter"><h5>put<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></h5></li></ul></div></section><section class="tsd-panel tsd-member tsd-kind-property tsd-parent-kind-class tsd-is-private"><a id="supportedMethods" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagPrivate">Private</span> <span class="tsd-flag ts-flagReadonly">Readonly</span> supported<wbr/>Methods<a href="#supportedMethods" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><div class="tsd-signature tsd-kind-icon">supported<wbr/>Methods<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">[]</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/027c803b/src/http/output/metadata/AllowAcceptHeaderWriter.ts#L21">src/http/output/metadata/AllowAcceptHeaderWriter.ts:21</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 id="canHandle" class="tsd-anchor"></a><h3 class="tsd-anchor-link">can<wbr/>Handle<a href="#canHandle" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></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><span class="tsd-signature-symbol">{ </span>metadata<span class="tsd-signature-symbol">: </span><a href="RepresentationMetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a><span class="tsd-signature-symbol">; </span>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-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="MetadataWriter.html">MetadataWriter</a>.<a href="MetadataWriter.html#canHandle">canHandle</a></p><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/027c803b/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 can be handled by this class.
If it cannot handle the input, rejects with an error explaining why.</p>
</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>input: <span class="tsd-signature-symbol">{ </span>metadata<span class="tsd-signature-symbol">: </span><a href="RepresentationMetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a><span class="tsd-signature-symbol">; </span>response<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ServerResponse</span><span class="tsd-signature-symbol"> }</span></h5><div class="tsd-comment tsd-typography"><div class="lead">
<p>Input that could potentially be handled.</p>
</div></div><ul class="tsd-parameters"><li class="tsd-parameter"><h5>metadata<span class="tsd-signature-symbol">: </span><a href="RepresentationMetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a></h5></li><li class="tsd-parameter"><h5>response<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ServerResponse</span></h5></li></ul></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><div><p>A promise resolving if the input can be handled, rejecting with an Error if not.</p>
</div></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-private"><a id="filterAllowedMethods" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagPrivate">Private</span> filter<wbr/>Allowed<wbr/>Methods<a href="#filterAllowedMethods" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-private"><li class="tsd-signature tsd-kind-icon">filter<wbr/>Allowed<wbr/>Methods<span class="tsd-signature-symbol">(</span>metadata<span class="tsd-signature-symbol">: </span><a href="RepresentationMetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Set</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</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/CommunitySolidServer/CommunitySolidServer/blob/027c803b/src/http/output/metadata/AllowAcceptHeaderWriter.ts#L46">src/http/output/metadata/AllowAcceptHeaderWriter.ts:46</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Starts from the stored set of methods and removes all those that are not allowed based on the metadata.</p>
</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>metadata: <a href="RepresentationMetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Set</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</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 id="generateAccept" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagPrivate">Private</span> generate<wbr/>Accept<a href="#generateAccept" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-private"><li class="tsd-signature tsd-kind-icon">generate<wbr/>Accept<span class="tsd-signature-symbol">(</span>methods<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Set</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span>, generateAllow<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span>, response<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ServerResponse</span>, metadata<span class="tsd-signature-symbol">: </span><a href="RepresentationMetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/027c803b/src/http/output/metadata/AllowAcceptHeaderWriter.ts#L123">src/http/output/metadata/AllowAcceptHeaderWriter.ts:123</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Generates the Accept-[Method] headers if required.
Will be added if the Allow header was added, or in case of a 415 error.
Specific Accept-[Method] headers will only be added if the method is in the <code>methods</code> set.</p>
</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>methods: <span class="tsd-signature-type">Set</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h5></li><li><h5>generateAllow: <span class="tsd-signature-type">boolean</span></h5></li><li><h5>response: <span class="tsd-signature-type">ServerResponse</span></h5></li><li><h5>metadata: <a href="RepresentationMetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-private"><a id="generateAllow" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagPrivate">Private</span> generate<wbr/>Allow<a href="#generateAllow" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-private"><li class="tsd-signature tsd-kind-icon">generate<wbr/>Allow<span class="tsd-signature-symbol">(</span>methods<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">Set</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span>, response<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ServerResponse</span>, metadata<span class="tsd-signature-symbol">: </span><a href="RepresentationMetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/027c803b/src/http/output/metadata/AllowAcceptHeaderWriter.ts#L106">src/http/output/metadata/AllowAcceptHeaderWriter.ts:106</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Generates the Allow header if required.
It only needs to get added for successful GET/HEAD requests, 404s, or 405s.
The spec only requires it for GET/HEAD requests and 405s.
In the case of other error messages we can&#39;t deduce what the request method was,
so we do not add the header as we don&#39;t have enough information.</p>
</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>methods: <span class="tsd-signature-type">Set</span><span class="tsd-signature-symbol">&lt;</span><span class="tsd-signature-type">string</span><span class="tsd-signature-symbol">&gt;</span></h5></li><li><h5>response: <span class="tsd-signature-type">ServerResponse</span></h5></li><li><h5>metadata: <a href="RepresentationMetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-overwrite"><a id="handle" class="tsd-anchor"></a><h3 class="tsd-anchor-link">handle<a href="#handle" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></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>input<span class="tsd-signature-symbol">: </span><span class="tsd-signature-symbol">{ </span>metadata<span class="tsd-signature-symbol">: </span><a href="RepresentationMetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a><span class="tsd-signature-symbol">; </span>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-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="MetadataWriter.html">MetadataWriter</a>.<a href="MetadataWriter.html#handle">handle</a></p><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/027c803b/src/http/output/metadata/AllowAcceptHeaderWriter.ts#L30">src/http/output/metadata/AllowAcceptHeaderWriter.ts:30</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Handles the given input. This may only be called if <a href="AllowAcceptHeaderWriter.html#canHandle">canHandle</a> did not reject.
When unconditionally calling both in sequence, consider <a href="AllowAcceptHeaderWriter.html#handleSafe">handleSafe</a> instead.</p>
</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>input: <span class="tsd-signature-symbol">{ </span>metadata<span class="tsd-signature-symbol">: </span><a href="RepresentationMetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a><span class="tsd-signature-symbol">; </span>response<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ServerResponse</span><span class="tsd-signature-symbol"> }</span></h5><ul class="tsd-parameters"><li class="tsd-parameter"><h5>metadata<span class="tsd-signature-symbol">: </span><a href="RepresentationMetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a></h5></li><li class="tsd-parameter"><h5>response<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ServerResponse</span></h5></li></ul></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><div><p>A promise resolving when handling is finished.</p>
</div></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a id="handleSafe" class="tsd-anchor"></a><h3 class="tsd-anchor-link">handle<wbr/>Safe<a href="#handleSafe" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></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><span class="tsd-signature-symbol">{ </span>metadata<span class="tsd-signature-symbol">: </span><a href="RepresentationMetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a><span class="tsd-signature-symbol">; </span>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-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="MetadataWriter.html">MetadataWriter</a>.<a href="MetadataWriter.html#handleSafe">handleSafe</a></p><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/027c803b/src/util/handlers/AsyncHandler.ts#L34">src/util/handlers/AsyncHandler.ts:34</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>Helper function that first runs <a href="AllowAcceptHeaderWriter.html#canHandle">canHandle</a> followed by <a href="AllowAcceptHeaderWriter.html#handle">handle</a>.
Throws the error of <a href="AllowAcceptHeaderWriter.html#canHandle">canHandle</a> if the data cannot be handled,
or returns the result of <a href="AllowAcceptHeaderWriter.html#handle">handle</a> otherwise.</p>
</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>input: <span class="tsd-signature-symbol">{ </span>metadata<span class="tsd-signature-symbol">: </span><a href="RepresentationMetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a><span class="tsd-signature-symbol">; </span>response<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ServerResponse</span><span class="tsd-signature-symbol"> }</span></h5><div class="tsd-comment tsd-typography"><div class="lead">
<p>Input data that will be handled if it can be handled.</p>
</div></div><ul class="tsd-parameters"><li class="tsd-parameter"><h5>metadata<span class="tsd-signature-symbol">: </span><a href="RepresentationMetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a></h5></li><li class="tsd-parameter"><h5>response<span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">ServerResponse</span></h5></li></ul></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><div><p>A promise resolving if the input can be handled, rejecting with an Error if not.</p>
</div></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-private"><a id="isDeleteAllowed" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagPrivate">Private</span> is<wbr/>Delete<wbr/>Allowed<a href="#isDeleteAllowed" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-private"><li class="tsd-signature tsd-kind-icon">is<wbr/>Delete<wbr/>Allowed<span class="tsd-signature-symbol">(</span>metadata<span class="tsd-signature-symbol">: </span><a href="RepresentationMetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/027c803b/src/http/output/metadata/AllowAcceptHeaderWriter.ts#L89">src/http/output/metadata/AllowAcceptHeaderWriter.ts:89</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>DELETE is allowed if the target exists,
is not a container,
or is an empty container that isn&#39;t a storage.</p>
</div><div><p>Note that the identifier value check only works if the metadata is not about an error.</p>
</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>metadata: <a href="RepresentationMetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4></li></ul></section><section class="tsd-panel tsd-member tsd-kind-method tsd-parent-kind-class tsd-is-private"><a id="isPostAllowed" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span class="tsd-flag ts-flagPrivate">Private</span> is<wbr/>Post<wbr/>Allowed<a href="#isPostAllowed" aria-label="Permalink" class="tsd-anchor-icon"><svg xmlns="http://www.w3.org/2000/svg" class="icon icon-tabler icon-tabler-link" viewBox="0 0 24 24" stroke-width="2" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path stroke="none" d="M0 0h24v24H0z" fill="none"></path><path d="M10 14a3.5 3.5 0 0 0 5 0l4 -4a3.5 3.5 0 0 0 -5 -5l-.5 .5"></path><path d="M14 10a3.5 3.5 0 0 0 -5 0l-4 4a3.5 3.5 0 0 0 5 5l.5 -.5"></path></svg></a></h3><ul class="tsd-signatures tsd-kind-method tsd-parent-kind-class tsd-is-private"><li class="tsd-signature tsd-kind-icon">is<wbr/>Post<wbr/>Allowed<span class="tsd-signature-symbol">(</span>metadata<span class="tsd-signature-symbol">: </span><a href="RepresentationMetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span></li></ul><ul class="tsd-descriptions"><li class="tsd-description"><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/027c803b/src/http/output/metadata/AllowAcceptHeaderWriter.ts#L78">src/http/output/metadata/AllowAcceptHeaderWriter.ts:78</a></li></ul></aside><div class="tsd-comment tsd-typography"><div class="lead">
<p>POST is only allowed on containers.
The metadata URI is only valid in case there is resource metadata,
otherwise it is just a blank node.</p>
</div></div><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameters"><li><h5>metadata: <a href="RepresentationMetadata.html" class="tsd-signature-type" data-tsd-kind="Class">RepresentationMetadata</a></h5></li></ul><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</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">Exports</a></li></ul></nav><nav class="tsd-navigation secondary menu-sticky"><ul><li class="current tsd-kind-class"><a href="AllowAcceptHeaderWriter.html" class="tsd-kind-icon">Allow<wbr/>Accept<wbr/>Header<wbr/>Writer</a><ul><li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-overwrite"><a href="AllowAcceptHeaderWriter.html#constructor" class="tsd-kind-icon">constructor</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="AllowAcceptHeaderWriter.html#acceptTypes" class="tsd-kind-icon">accept<wbr/>Types</a></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-private"><a href="AllowAcceptHeaderWriter.html#supportedMethods" class="tsd-kind-icon">supported<wbr/>Methods</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="AllowAcceptHeaderWriter.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="AllowAcceptHeaderWriter.html#filterAllowedMethods" class="tsd-kind-icon">filter<wbr/>Allowed<wbr/>Methods</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="AllowAcceptHeaderWriter.html#generateAccept" class="tsd-kind-icon">generate<wbr/>Accept</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="AllowAcceptHeaderWriter.html#generateAllow" class="tsd-kind-icon">generate<wbr/>Allow</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-overwrite"><a href="AllowAcceptHeaderWriter.html#handle" class="tsd-kind-icon">handle</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-inherited"><a href="AllowAcceptHeaderWriter.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="AllowAcceptHeaderWriter.html#isDeleteAllowed" class="tsd-kind-icon">is<wbr/>Delete<wbr/>Allowed</a></li><li class="tsd-kind-method tsd-parent-kind-class tsd-is-private"><a href="AllowAcceptHeaderWriter.html#isPostAllowed" class="tsd-kind-icon">is<wbr/>Post<wbr/>Allowed</a></li></ul></li></ul></nav></div></div></div><footer class=""><div class="container"><h2>Legend</h2><div class="tsd-legend-group"><ul class="tsd-legend"><li class="tsd-kind-constructor tsd-parent-kind-class"><span class="tsd-kind-icon">Constructor</span></li><li class="tsd-kind-property tsd-parent-kind-class"><span class="tsd-kind-icon">Property</span></li><li class="tsd-kind-method tsd-parent-kind-class"><span class="tsd-kind-icon">Method</span></li><li class="tsd-kind-accessor tsd-parent-kind-class"><span class="tsd-kind-icon">Accessor</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-constructor tsd-parent-kind-interface"><span class="tsd-kind-icon">Constructor</span></li><li class="tsd-kind-property tsd-parent-kind-interface"><span class="tsd-kind-icon">Property</span></li><li class="tsd-kind-method tsd-parent-kind-interface"><span class="tsd-kind-icon">Method</span></li></ul><ul class="tsd-legend"><li class="tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited constructor</span></li><li class="tsd-kind-property tsd-parent-kind-class tsd-is-inherited"><span class="tsd-kind-icon">Inherited property</span></li><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><li class="tsd-kind-method tsd-parent-kind-class tsd-is-protected"><span class="tsd-kind-icon">Protected method</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-static"><span class="tsd-kind-icon">Static method</span></li></ul></div><h2>Settings</h2><p>Theme <select id="theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></p></div></footer><div class="overlay"></div><script src="../assets/main.js"></script></body></html>