CommunitySolidServer/7.x/docs/classes/DataAccessorBasedStore.html

133 lines
87 KiB
HTML

<!DOCTYPE html><html class="default" lang="en"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>DataAccessorBasedStore | Community Solid Server - v7.1.1</title><meta name="description" content="Documentation for Community Solid Server"/><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 defer src="../assets/main.js"></script><script async src="../assets/icons.js" id="tsd-icons-script"></script><script async src="../assets/search.js" id="tsd-search-script"></script><script async src="../assets/navigation.js" id="tsd-nav-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><div class="table-cell" id="tsd-search" data-base=".."><div class="field"><label for="tsd-search-field" class="tsd-widget tsd-toolbar-icon search no-caption"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-search"></use></svg></label><input type="text" id="tsd-search-field" aria-label="Search"/></div><div class="field"><div id="tsd-toolbar-links"></div></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 - v7.1.1</a></div><div class="table-cell" id="tsd-widgets"><a href="#" class="tsd-widget tsd-toolbar-icon menu no-caption" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-menu"></use></svg></a></div></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><ul class="tsd-breadcrumb"><li><a href="../modules.html">Community Solid Server</a></li><li><a href="DataAccessorBasedStore.html">DataAccessorBasedStore</a></li></ul><h1>Class DataAccessorBasedStore</h1></div><section class="tsd-panel tsd-comment"><div class="tsd-comment tsd-typography"><p>ResourceStore which uses a DataAccessor for backend access.</p>
<p>The DataAccessor interface provides elementary store operations such as read and write.
This DataAccessorBasedStore uses those elementary store operations
to implement the more high-level ResourceStore contact, abstracting all common functionality
such that new stores can be added by implementing the more simple DataAccessor contract.
DataAccessorBasedStore thereby provides behaviours for reuse across different stores, such as:</p>
<ul>
<li>Converting container metadata to data</li>
<li>Converting slug to URI</li>
<li>Checking if addResource target is a container</li>
<li>Checking if no containment triples are written to a container</li>
<li>etc.</li>
</ul>
<p>Currently &quot;metadata&quot; is seen as something that is not directly accessible.
That means that a consumer can't write directly to the metadata of a resource, only indirectly through headers.
(Except for containers where data and metadata overlap).</p>
<p>The one thing this store does not take care of (yet?) are containment triples for containers</p>
<p>Work has been done to minimize the number of required calls to the DataAccessor,
but the main disadvantage is that sometimes multiple calls are required where a specific store might only need one.</p>
</div><div class="tsd-comment tsd-typography"></div></section><section class="tsd-panel"><h4>Implements</h4><ul class="tsd-hierarchy"><li><a href="../interfaces/ResourceStore.html" class="tsd-signature-type tsd-kind-interface">ResourceStore</a></li></ul></section><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L74">src/storage/DataAccessorBasedStore.ts:74</a></li></ul></aside><section class="tsd-panel-group tsd-index-group"><section class="tsd-panel tsd-index-panel"><details class="tsd-index-content tsd-accordion" open><summary class="tsd-accordion-summary tsd-index-summary"><h5 class="tsd-index-heading uppercase" role="button" aria-expanded="false" tabIndex="0"><svg width="16" height="16" viewBox="0 0 16 16" fill="none"><use href="../assets/icons.svg#icon-chevronSmall"></use></svg> Index</h5></summary><div class="tsd-accordion-details"><section class="tsd-index-section"><h3 class="tsd-index-heading">Constructors</h3><div class="tsd-index-list"><a href="DataAccessorBasedStore.html#constructor" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a>
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Properties</h3><div class="tsd-index-list"><a href="DataAccessorBasedStore.html#logger" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>logger</span></a>
</div></section><section class="tsd-index-section"><h3 class="tsd-index-heading">Methods</h3><div class="tsd-index-list"><a href="DataAccessorBasedStore.html#addResource" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Resource</span></a>
<a href="DataAccessorBasedStore.html#cleanSlug" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>clean<wbr/>Slug</span></a>
<a href="DataAccessorBasedStore.html#createRecursiveContainers" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>create<wbr/>Recursive<wbr/>Containers</span></a>
<a href="DataAccessorBasedStore.html#createSafeUri" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>create<wbr/>Safe<wbr/>Uri</span></a>
<a href="DataAccessorBasedStore.html#createURI" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>createURI</span></a>
<a href="DataAccessorBasedStore.html#deleteResource" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>delete<wbr/>Resource</span></a>
<a href="DataAccessorBasedStore.html#getNormalizedMetadata" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Normalized<wbr/>Metadata</span></a>
<a href="DataAccessorBasedStore.html#getRepresentation" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Representation</span></a>
<a href="DataAccessorBasedStore.html#getSafeNormalizedMetadata" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Safe<wbr/>Normalized<wbr/>Metadata</span></a>
<a href="DataAccessorBasedStore.html#handleContainerData" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>handle<wbr/>Container<wbr/>Data</span></a>
<a href="DataAccessorBasedStore.html#hasContainerType" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>has<wbr/>Container<wbr/>Type</span></a>
<a href="DataAccessorBasedStore.html#hasProperChildren" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>has<wbr/>Proper<wbr/>Children</span></a>
<a href="DataAccessorBasedStore.html#hasResource" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>has<wbr/>Resource</span></a>
<a href="DataAccessorBasedStore.html#isContainerType" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>is<wbr/>Container<wbr/>Type</span></a>
<a href="DataAccessorBasedStore.html#isRootStorage" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>is<wbr/>Root<wbr/>Storage</span></a>
<a href="DataAccessorBasedStore.html#modifyResource" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>modify<wbr/>Resource</span></a>
<a href="DataAccessorBasedStore.html#removeResponseMetadata" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>remove<wbr/>Response<wbr/>Metadata</span></a>
<a href="DataAccessorBasedStore.html#safelyDeleteAuxiliaryResources" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>safely<wbr/>Delete<wbr/>Auxiliary<wbr/>Resources</span></a>
<a href="DataAccessorBasedStore.html#setRepresentation" class="tsd-index-link"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>set<wbr/>Representation</span></a>
<a href="DataAccessorBasedStore.html#updateContainerModifiedDate" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>update<wbr/>Container<wbr/>Modified<wbr/>Date</span></a>
<a href="DataAccessorBasedStore.html#validateConditions" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>validate<wbr/>Conditions</span></a>
<a href="DataAccessorBasedStore.html#validateIdentifier" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>validate<wbr/>Identifier</span></a>
<a href="DataAccessorBasedStore.html#validateSlug" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>validate<wbr/>Slug</span></a>
<a href="DataAccessorBasedStore.html#writeData" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>write<wbr/>Data</span></a>
<a href="DataAccessorBasedStore.html#writeMetadata" class="tsd-index-link tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>write<wbr/>Metadata</span></a>
</div></section></div></details></section></section><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Constructors"><h2><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg> Constructors</h2></summary><section><section class="tsd-panel tsd-member"><a id="constructor" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>constructor</span><a href="#constructor" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="constructor.new_DataAccessorBasedStore" class="tsd-anchor"></a><span class="tsd-kind-constructor-signature">new <wbr/>Data<wbr/>Accessor<wbr/>Based<wbr/>Store</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">accessor</span>, <span class="tsd-kind-parameter">identifierStrategy</span>, <span class="tsd-kind-parameter">auxiliaryStrategy</span>, <span class="tsd-kind-parameter">metadataStrategy</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="DataAccessorBasedStore.html" class="tsd-signature-type tsd-kind-class">DataAccessorBasedStore</a><a href="#constructor.new_DataAccessorBasedStore" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">accessor</span>: <a href="../interfaces/DataAccessor.html" class="tsd-signature-type tsd-kind-interface">DataAccessor</a></span></li><li><span><span class="tsd-kind-parameter">identifierStrategy</span>: <a href="../interfaces/IdentifierStrategy.html" class="tsd-signature-type tsd-kind-interface">IdentifierStrategy</a></span></li><li><span><span class="tsd-kind-parameter">auxiliaryStrategy</span>: <a href="../interfaces/AuxiliaryStrategy.html" class="tsd-signature-type tsd-kind-interface">AuxiliaryStrategy</a></span></li><li><span><span class="tsd-kind-parameter">metadataStrategy</span>: <a href="../interfaces/AuxiliaryStrategy.html" class="tsd-signature-type tsd-kind-interface">AuxiliaryStrategy</a></span></li></ul></div><h4 class="tsd-returns-title">Returns <a href="DataAccessorBasedStore.html" class="tsd-signature-type tsd-kind-class">DataAccessorBasedStore</a></h4><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L82">src/storage/DataAccessorBasedStore.ts:82</a></li></ul></aside></li></ul></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Properties"><h2><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg> Properties</h2></summary><section><section class="tsd-panel tsd-member tsd-is-protected"><a id="logger" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag">Protected</code> <code class="tsd-tag">Readonly</code><span>logger</span><a href="#logger" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><div class="tsd-signature"><span class="tsd-kind-property">logger</span><span class="tsd-signature-symbol">:</span> <a href="../interfaces/Logger.html" class="tsd-signature-type tsd-kind-interface">Logger</a><span class="tsd-signature-symbol"> = ...</span></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L75">src/storage/DataAccessorBasedStore.ts:75</a></li></ul></aside></section></section></details><details class="tsd-panel-group tsd-member-group tsd-accordion" open><summary class="tsd-accordion-summary" data-key="section-Methods"><h2><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg> Methods</h2></summary><section><section class="tsd-panel tsd-member"><a id="addResource" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>add<wbr/>Resource</span><a href="#addResource" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="addResource.addResource-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">add<wbr/>Resource</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">container</span>, <span class="tsd-kind-parameter">representation</span>, <span class="tsd-kind-parameter">conditions</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><a href="../types/ChangeMap.html" class="tsd-signature-type tsd-kind-type-alias">ChangeMap</a><span class="tsd-signature-symbol">&gt;</span><a href="#addResource.addResource-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Creates a new resource in the container.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">container</span>: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type tsd-kind-interface">ResourceIdentifier</a></span><div class="tsd-comment tsd-typography"><p>Container in which to create a resource.</p>
</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">representation</span>: <a href="../interfaces/Representation.html" class="tsd-signature-type tsd-kind-interface">Representation</a></span><div class="tsd-comment tsd-typography"><p>Representation of the new resource</p>
</div><div class="tsd-comment tsd-typography"></div></li><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">conditions</span>: <a href="../interfaces/Conditions.html" class="tsd-signature-type tsd-kind-interface">Conditions</a></span><div class="tsd-comment tsd-typography"><p>Optional conditions under which to proceed.</p>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../types/ChangeMap.html" class="tsd-signature-type tsd-kind-type-alias">ChangeMap</a><span class="tsd-signature-symbol">&gt;</span></h4><p>A <a href="../types/ChangeMap.html" class="tsd-kind-type-alias">ChangeMap</a>.</p>
<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><p>Implementation of <a href="../interfaces/ResourceStore.html">ResourceStore</a>.<a href="../interfaces/ResourceStore.html#addResource">addResource</a></p><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L169">src/storage/DataAccessorBasedStore.ts:169</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><a id="cleanSlug" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag">Protected</code><span>clean<wbr/>Slug</span><a href="#cleanSlug" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class="tsd-signature tsd-anchor-link"><a id="cleanSlug.cleanSlug-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">clean<wbr/>Slug</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">slug</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">string</span><a href="#cleanSlug.cleanSlug-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Clean http Slug to be compatible with the server. Makes sure there are no unwanted characters,
e.g., cleanslug('&amp;%26') returns '%26%26'</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">slug</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>the slug to clean</p>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">string</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L598">src/storage/DataAccessorBasedStore.ts:598</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><a id="createRecursiveContainers" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag">Protected</code><span>create<wbr/>Recursive<wbr/>Containers</span><a href="#createRecursiveContainers" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class="tsd-signature tsd-anchor-link"><a id="createRecursiveContainers.createRecursiveContainers-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">create<wbr/>Recursive<wbr/>Containers</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">container</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><a href="../types/ChangeMap.html" class="tsd-signature-type tsd-kind-type-alias">ChangeMap</a><span class="tsd-signature-symbol">&gt;</span><a href="#createRecursiveContainers.createRecursiveContainers-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Create containers starting from the root until the given identifier corresponds to an existing container.
Will throw errors if the identifier of the last existing &quot;container&quot; corresponds to an existing document.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">container</span>: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type tsd-kind-interface">ResourceIdentifier</a></span><div class="tsd-comment tsd-typography"><p>Identifier of the container which will need to exist.</p>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../types/ChangeMap.html" class="tsd-signature-type tsd-kind-type-alias">ChangeMap</a><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L699">src/storage/DataAccessorBasedStore.ts:699</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><a id="createSafeUri" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag">Protected</code><span>create<wbr/>Safe<wbr/>Uri</span><a href="#createSafeUri" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class="tsd-signature tsd-anchor-link"><a id="createSafeUri.createSafeUri-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">create<wbr/>Safe<wbr/>Uri</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">container</span>, <span class="tsd-kind-parameter">metadata</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><a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type tsd-kind-interface">ResourceIdentifier</a><span class="tsd-signature-symbol">&gt;</span><a href="#createSafeUri.createSafeUri-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Generate a valid URI to store a new Resource in the given container.
URI will be based on the slug header if there is one and is guaranteed to not exist yet.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">container</span>: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type tsd-kind-interface">ResourceIdentifier</a></span><div class="tsd-comment tsd-typography"><p>Identifier of the target container.</p>
</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">metadata</span>: <a href="RepresentationMetadata.html" class="tsd-signature-type tsd-kind-class">RepresentationMetadata</a></span><div class="tsd-comment tsd-typography"><p>Metadata of the new resource.</p>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type tsd-kind-interface">ResourceIdentifier</a><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L612">src/storage/DataAccessorBasedStore.ts:612</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><a id="createURI" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag">Protected</code><span>createURI</span><a href="#createURI" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class="tsd-signature tsd-anchor-link"><a id="createURI.createURI-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">createURI</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">container</span>, <span class="tsd-kind-parameter">isContainer</span>, <span class="tsd-kind-parameter">slug</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type tsd-kind-interface">ResourceIdentifier</a><a href="#createURI.createURI-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Generates a new URI for a resource in the given container, potentially using the given slug.</p>
<p>Solid, §5.3: &quot;Servers MUST allow creating new resources with a POST request to URI path ending <code>/</code>.
Servers MUST create a resource with URI path ending <code>/{id}</code> in container <code>/</code>.
Servers MUST create a container with URI path ending <code>/{id}/</code> in container <code>/</code> for requests
including the HTTP Link header with rel=&quot;type&quot; targeting a valid LDP container type.&quot;
<a href="https://solid.github.io/specification/protocol#writing-resources">https://solid.github.io/specification/protocol#writing-resources</a></p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">container</span>: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type tsd-kind-interface">ResourceIdentifier</a></span><div class="tsd-comment tsd-typography"><p>Parent container of the new URI.</p>
</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">isContainer</span>: <span class="tsd-signature-type">boolean</span></span><div class="tsd-comment tsd-typography"><p>Does the new URI represent a container?</p>
</div><div class="tsd-comment tsd-typography"></div></li><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">slug</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>Slug to use for the new URI.</p>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type tsd-kind-interface">ResourceIdentifier</a></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L571">src/storage/DataAccessorBasedStore.ts:571</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="deleteResource" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>delete<wbr/>Resource</span><a href="#deleteResource" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="deleteResource.deleteResource-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">delete<wbr/>Resource</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">identifier</span>, <span class="tsd-kind-parameter">conditions</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><a href="../types/ChangeMap.html" class="tsd-signature-type tsd-kind-type-alias">ChangeMap</a><span class="tsd-signature-symbol">&gt;</span><a href="#deleteResource.deleteResource-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Deletes a resource.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">identifier</span>: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type tsd-kind-interface">ResourceIdentifier</a></span><div class="tsd-comment tsd-typography"><p>Identifier of resource to delete.</p>
</div><div class="tsd-comment tsd-typography"></div></li><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">conditions</span>: <a href="../interfaces/Conditions.html" class="tsd-signature-type tsd-kind-interface">Conditions</a></span><div class="tsd-comment tsd-typography"><p>Optional conditions under which to proceed.</p>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../types/ChangeMap.html" class="tsd-signature-type tsd-kind-type-alias">ChangeMap</a><span class="tsd-signature-symbol">&gt;</span></h4><p>A <a href="../types/ChangeMap.html" class="tsd-kind-type-alias">ChangeMap</a>.</p>
<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><p>Implementation of <a href="../interfaces/ResourceStore.html">ResourceStore</a>.<a href="../interfaces/ResourceStore.html#deleteResource">deleteResource</a></p><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L285">src/storage/DataAccessorBasedStore.ts:285</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><a id="getNormalizedMetadata" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag">Protected</code><span>get<wbr/>Normalized<wbr/>Metadata</span><a href="#getNormalizedMetadata" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class="tsd-signature tsd-anchor-link"><a id="getNormalizedMetadata.getNormalizedMetadata-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">get<wbr/>Normalized<wbr/>Metadata</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">identifier</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><a href="RepresentationMetadata.html" class="tsd-signature-type tsd-kind-class">RepresentationMetadata</a><span class="tsd-signature-symbol">&gt;</span><a href="#getNormalizedMetadata.getNormalizedMetadata-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Returns the metadata matching the identifier, ignoring the presence of a trailing slash or not.</p>
<p>Solid, §3.1: &quot;If two URIs differ only in the trailing slash,
and the server has associated a resource with one of them,
then the other URI MUST NOT correspond to another resource.&quot;
<a href="https://solid.github.io/specification/protocol#uri-slash-semantics">https://solid.github.io/specification/protocol#uri-slash-semantics</a></p>
<p>First the identifier gets requested. If no result is found,
the identifier with differing trailing slash is requested.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">identifier</span>: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type tsd-kind-interface">ResourceIdentifier</a></span><div class="tsd-comment tsd-typography"><p>Identifier that needs to be checked.</p>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="RepresentationMetadata.html" class="tsd-signature-type tsd-kind-class">RepresentationMetadata</a><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L382">src/storage/DataAccessorBasedStore.ts:382</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="getRepresentation" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>get<wbr/>Representation</span><a href="#getRepresentation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="getRepresentation.getRepresentation-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">get<wbr/>Representation</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">identifier</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><a href="../interfaces/Representation.html" class="tsd-signature-type tsd-kind-interface">Representation</a><span class="tsd-signature-symbol">&gt;</span><a href="#getRepresentation.getRepresentation-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Retrieves a representation of a resource.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">identifier</span>: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type tsd-kind-interface">ResourceIdentifier</a></span><div class="tsd-comment tsd-typography"><p>Identifier of the resource to read.</p>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/Representation.html" class="tsd-signature-type tsd-kind-interface">Representation</a><span class="tsd-signature-symbol">&gt;</span></h4><p>A representation corresponding to the identifier.</p>
<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><p>Implementation of <a href="../interfaces/ResourceStore.html">ResourceStore</a>.<a href="../interfaces/ResourceStore.html#getRepresentation">getRepresentation</a></p><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L110">src/storage/DataAccessorBasedStore.ts:110</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><a id="getSafeNormalizedMetadata" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag">Protected</code><span>get<wbr/>Safe<wbr/>Normalized<wbr/>Metadata</span><a href="#getSafeNormalizedMetadata" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class="tsd-signature tsd-anchor-link"><a id="getSafeNormalizedMetadata.getSafeNormalizedMetadata-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">get<wbr/>Safe<wbr/>Normalized<wbr/>Metadata</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">identifier</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="RepresentationMetadata.html" class="tsd-signature-type tsd-kind-class">RepresentationMetadata</a><span class="tsd-signature-symbol">&gt;</span><a href="#getSafeNormalizedMetadata.getSafeNormalizedMetadata-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Returns the result of <code>getNormalizedMetadata</code> or undefined if a 404 error is thrown.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">identifier</span>: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type tsd-kind-interface">ResourceIdentifier</a></span></li></ul></div><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="RepresentationMetadata.html" class="tsd-signature-type tsd-kind-class">RepresentationMetadata</a><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L402">src/storage/DataAccessorBasedStore.ts:402</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><a id="handleContainerData" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag">Protected</code><span>handle<wbr/>Container<wbr/>Data</span><a href="#handleContainerData" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class="tsd-signature tsd-anchor-link"><a id="handleContainerData.handleContainerData-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">handle<wbr/>Container<wbr/>Data</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">representation</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><a href="#handleContainerData.handleContainerData-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Warns when the representation has data and removes the content-type from the metadata.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">representation</span>: <a href="../interfaces/Representation.html" class="tsd-signature-type tsd-kind-interface">Representation</a></span><div class="tsd-comment tsd-typography"><p>Container representation.</p>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><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 class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L527">src/storage/DataAccessorBasedStore.ts:527</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><a id="hasContainerType" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag">Protected</code><span>has<wbr/>Container<wbr/>Type</span><a href="#hasContainerType" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class="tsd-signature tsd-anchor-link"><a id="hasContainerType.hasContainerType-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">has<wbr/>Container<wbr/>Type</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">rdfTypes</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><a href="#hasContainerType.hasContainerType-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Checks in a list of types if any of them match a Container type.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">rdfTypes</span>: <span class="tsd-signature-type">Term</span><span class="tsd-signature-symbol">[]</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L651">src/storage/DataAccessorBasedStore.ts:651</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><a id="hasProperChildren" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag">Protected</code><span>has<wbr/>Proper<wbr/>Children</span><a href="#hasProperChildren" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class="tsd-signature tsd-anchor-link"><a id="hasProperChildren.hasProperChildren-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">has<wbr/>Proper<wbr/>Children</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">container</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">boolean</span><span class="tsd-signature-symbol">&gt;</span><a href="#hasProperChildren.hasProperChildren-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Checks if the given container has any non-auxiliary resources.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">container</span>: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type tsd-kind-interface">ResourceIdentifier</a></span></li></ul></div><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">boolean</span><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L665">src/storage/DataAccessorBasedStore.ts:665</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="hasResource" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>has<wbr/>Resource</span><a href="#hasResource" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="hasResource.hasResource-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">has<wbr/>Resource</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">identifier</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">boolean</span><span class="tsd-signature-symbol">&gt;</span><a href="#hasResource.hasResource-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Checks whether a resource exists in this ResourceSet.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">identifier</span>: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type tsd-kind-interface">ResourceIdentifier</a></span><div class="tsd-comment tsd-typography"><p>Identifier of resource to check.</p>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><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">boolean</span><span class="tsd-signature-symbol">&gt;</span></h4><p>A promise resolving if the resource already exists.</p>
<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><p>Implementation of <a href="../interfaces/ResourceStore.html">ResourceStore</a>.<a href="../interfaces/ResourceStore.html#hasResource">hasResource</a></p><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L94">src/storage/DataAccessorBasedStore.ts:94</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><a id="isContainerType" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag">Protected</code><span>is<wbr/>Container<wbr/>Type</span><a href="#isContainerType" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class="tsd-signature tsd-anchor-link"><a id="isContainerType.isContainerType-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">is<wbr/>Container<wbr/>Type</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">metadata</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><a href="#isContainerType.isContainerType-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Checks whether the given metadata represents a (potential) container,
based on the metadata.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">metadata</span>: <a href="RepresentationMetadata.html" class="tsd-signature-type tsd-kind-class">RepresentationMetadata</a></span><div class="tsd-comment tsd-typography"><p>Metadata of the (new) resource.</p>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L644">src/storage/DataAccessorBasedStore.ts:644</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><a id="isRootStorage" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag">Protected</code><span>is<wbr/>Root<wbr/>Storage</span><a href="#isRootStorage" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class="tsd-signature tsd-anchor-link"><a id="isRootStorage.isRootStorage-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">is<wbr/>Root<wbr/>Storage</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">metadata</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">boolean</span><a href="#isRootStorage.isRootStorage-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Verifies if this is the metadata of a root storage container.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">metadata</span>: <a href="RepresentationMetadata.html" class="tsd-signature-type tsd-kind-class">RepresentationMetadata</a></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">boolean</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L658">src/storage/DataAccessorBasedStore.ts:658</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="modifyResource" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>modify<wbr/>Resource</span><a href="#modifyResource" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="modifyResource.modifyResource-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">modify<wbr/>Resource</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">identifier</span>, <span class="tsd-kind-parameter">patch</span>, <span class="tsd-kind-parameter">conditions</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">never</span><span class="tsd-signature-symbol">&gt;</span><a href="#modifyResource.modifyResource-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Sets or updates the representation of a resource,
creating a new resource and intermediary containers as needed.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">identifier</span>: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type tsd-kind-interface">ResourceIdentifier</a></span><div class="tsd-comment tsd-typography"><p>Identifier of resource to update.</p>
</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">patch</span>: <a href="../interfaces/Patch.html" class="tsd-signature-type tsd-kind-interface">Patch</a></span><div class="tsd-comment tsd-typography"><p>Description of which parts to update.</p>
</div><div class="tsd-comment tsd-typography"></div></li><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">conditions</span>: <a href="../interfaces/Conditions.html" class="tsd-signature-type tsd-kind-interface">Conditions</a></span><div class="tsd-comment tsd-typography"><p>Optional conditions under which to proceed.</p>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><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">never</span><span class="tsd-signature-symbol">&gt;</span></h4><p>A <a href="../types/ChangeMap.html" class="tsd-kind-type-alias">ChangeMap</a>.</p>
<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><p>Implementation of <a href="../interfaces/ResourceStore.html">ResourceStore</a>.<a href="../interfaces/ResourceStore.html#modifyResource">modifyResource</a></p><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L268">src/storage/DataAccessorBasedStore.ts:268</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><a id="removeResponseMetadata" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag">Protected</code><span>remove<wbr/>Response<wbr/>Metadata</span><a href="#removeResponseMetadata" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class="tsd-signature tsd-anchor-link"><a id="removeResponseMetadata.removeResponseMetadata-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">remove<wbr/>Response<wbr/>Metadata</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">metadata</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#removeResponseMetadata.removeResponseMetadata-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Removes all generated data from metadata to prevent it from being stored permanently.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">metadata</span>: <a href="RepresentationMetadata.html" class="tsd-signature-type tsd-kind-class">RepresentationMetadata</a></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L542">src/storage/DataAccessorBasedStore.ts:542</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><a id="safelyDeleteAuxiliaryResources" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag">Protected</code><span>safely<wbr/>Delete<wbr/>Auxiliary<wbr/>Resources</span><a href="#safelyDeleteAuxiliaryResources" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class="tsd-signature tsd-anchor-link"><a id="safelyDeleteAuxiliaryResources.safelyDeleteAuxiliaryResources-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">safely<wbr/>Delete<wbr/>Auxiliary<wbr/>Resources</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">identifiers</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><a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type tsd-kind-interface">ResourceIdentifier</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span><a href="#safelyDeleteAuxiliaryResources.safelyDeleteAuxiliaryResources-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Deletes the given array of auxiliary identifiers.
Does not throw an error if something goes wrong.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">identifiers</span>: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type tsd-kind-interface">ResourceIdentifier</a><span class="tsd-signature-symbol">[]</span></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type tsd-kind-interface">ResourceIdentifier</a><span class="tsd-signature-symbol">[]</span><span class="tsd-signature-symbol">&gt;</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L678">src/storage/DataAccessorBasedStore.ts:678</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member"><a id="setRepresentation" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><span>set<wbr/>Representation</span><a href="#setRepresentation" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures"><li class="tsd-signature tsd-anchor-link"><a id="setRepresentation.setRepresentation-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">set<wbr/>Representation</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">identifier</span>, <span class="tsd-kind-parameter">representation</span>, <span class="tsd-kind-parameter">conditions</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><a href="../types/ChangeMap.html" class="tsd-signature-type tsd-kind-type-alias">ChangeMap</a><span class="tsd-signature-symbol">&gt;</span><a href="#setRepresentation.setRepresentation-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Sets or replaces the representation of a resource,
creating a new resource and intermediary containers as needed.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">identifier</span>: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type tsd-kind-interface">ResourceIdentifier</a></span><div class="tsd-comment tsd-typography"><p>Identifier of resource to update.</p>
</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">representation</span>: <a href="../interfaces/Representation.html" class="tsd-signature-type tsd-kind-interface">Representation</a></span><div class="tsd-comment tsd-typography"><p>New representation of the resource.</p>
</div><div class="tsd-comment tsd-typography"></div></li><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">conditions</span>: <a href="../interfaces/Conditions.html" class="tsd-signature-type tsd-kind-interface">Conditions</a></span><div class="tsd-comment tsd-typography"><p>Optional conditions under which to proceed.</p>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../types/ChangeMap.html" class="tsd-signature-type tsd-kind-type-alias">ChangeMap</a><span class="tsd-signature-symbol">&gt;</span></h4><p>A <a href="../types/ChangeMap.html" class="tsd-kind-type-alias">ChangeMap</a>.</p>
<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><p>Implementation of <a href="../interfaces/ResourceStore.html">ResourceStore</a>.<a href="../interfaces/ResourceStore.html#setRepresentation">setRepresentation</a></p><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L209">src/storage/DataAccessorBasedStore.ts:209</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><a id="updateContainerModifiedDate" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag">Protected</code><span>update<wbr/>Container<wbr/>Modified<wbr/>Date</span><a href="#updateContainerModifiedDate" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class="tsd-signature tsd-anchor-link"><a id="updateContainerModifiedDate.updateContainerModifiedDate-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">update<wbr/>Container<wbr/>Modified<wbr/>Date</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">container</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><a href="#updateContainerModifiedDate.updateContainerModifiedDate-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Updates the last modified date of the given container</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">container</span>: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type tsd-kind-interface">ResourceIdentifier</a></span></li></ul></div><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 class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L551">src/storage/DataAccessorBasedStore.ts:551</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><a id="validateConditions" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag">Protected</code><span>validate<wbr/>Conditions</span><a href="#validateConditions" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class="tsd-signature tsd-anchor-link"><a id="validateConditions.validateConditions-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">validate<wbr/>Conditions</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">conditions</span><span class="tsd-signature-symbol">?</span>, <span class="tsd-kind-parameter">metadata</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#validateConditions.validateConditions-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Verify if the given metadata matches the conditions.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">conditions</span>: <a href="../interfaces/Conditions.html" class="tsd-signature-type tsd-kind-interface">Conditions</a></span></li><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">metadata</span>: <a href="RepresentationMetadata.html" class="tsd-signature-type tsd-kind-class">RepresentationMetadata</a></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L361">src/storage/DataAccessorBasedStore.ts:361</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><a id="validateIdentifier" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag">Protected</code><span>validate<wbr/>Identifier</span><a href="#validateIdentifier" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class="tsd-signature tsd-anchor-link"><a id="validateIdentifier.validateIdentifier-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">validate<wbr/>Identifier</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">identifier</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#validateIdentifier.validateIdentifier-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Verify if the given identifier matches the stored base.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">identifier</span>: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type tsd-kind-interface">ResourceIdentifier</a></span></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L352">src/storage/DataAccessorBasedStore.ts:352</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><a id="validateSlug" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag">Protected</code><span>validate<wbr/>Slug</span><a href="#validateSlug" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class="tsd-signature tsd-anchor-link"><a id="validateSlug.validateSlug-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">validate<wbr/>Slug</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">isContainer</span>, <span class="tsd-kind-parameter">slug</span><span class="tsd-signature-symbol">?</span><span class="tsd-signature-symbol">)</span><span class="tsd-signature-symbol">: </span><span class="tsd-signature-type">void</span><a href="#validateSlug.validateSlug-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Validates if the slug and headers are valid.
Errors if slug exists, ends on slash, but ContainerType Link header is NOT present</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">isContainer</span>: <span class="tsd-signature-type">boolean</span></span><div class="tsd-comment tsd-typography"><p>Is the slug supposed to represent a container?</p>
</div><div class="tsd-comment tsd-typography"></div></li><li><span><code class="tsd-tag">Optional</code><span class="tsd-kind-parameter">slug</span>: <span class="tsd-signature-type">string</span></span><div class="tsd-comment tsd-typography"><p>Is the requested slug (if any).</p>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">void</span></h4><div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L586">src/storage/DataAccessorBasedStore.ts:586</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><a id="writeData" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag">Protected</code><span>write<wbr/>Data</span><a href="#writeData" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class="tsd-signature tsd-anchor-link"><a id="writeData.writeData-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">write<wbr/>Data</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">identifier</span>, <span class="tsd-kind-parameter">representation</span>, <span class="tsd-kind-parameter">isContainer</span>, <span class="tsd-kind-parameter">createContainers</span>, <span class="tsd-kind-parameter">exists</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><a href="../types/ChangeMap.html" class="tsd-signature-type tsd-kind-type-alias">ChangeMap</a><span class="tsd-signature-symbol">&gt;</span><a href="#writeData.writeData-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Write the given resource to the DataAccessor. Metadata will be updated with necessary triples.
For containers, <code>handleContainerData</code> will be used to verify the data.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">identifier</span>: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type tsd-kind-interface">ResourceIdentifier</a></span><div class="tsd-comment tsd-typography"><p>Identifier of the resource.</p>
</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">representation</span>: <a href="../interfaces/Representation.html" class="tsd-signature-type tsd-kind-interface">Representation</a></span><div class="tsd-comment tsd-typography"><p>Corresponding Representation.</p>
</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">isContainer</span>: <span class="tsd-signature-type">boolean</span></span><div class="tsd-comment tsd-typography"><p>Is the incoming resource a container?</p>
</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">createContainers</span>: <span class="tsd-signature-type">boolean</span></span><div class="tsd-comment tsd-typography"><p>Should parent containers (potentially) be created?</p>
</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">exists</span>: <span class="tsd-signature-type">boolean</span></span><div class="tsd-comment tsd-typography"><p>If the resource already exists.</p>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../types/ChangeMap.html" class="tsd-signature-type tsd-kind-type-alias">ChangeMap</a><span class="tsd-signature-symbol">&gt;</span></h4><p>Identifiers of resources that were possibly modified.</p>
<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L465">src/storage/DataAccessorBasedStore.ts:465</a></li></ul></aside></li></ul></section><section class="tsd-panel tsd-member tsd-is-protected"><a id="writeMetadata" class="tsd-anchor"></a><h3 class="tsd-anchor-link"><code class="tsd-tag">Protected</code><span>write<wbr/>Metadata</span><a href="#writeMetadata" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></h3><ul class="tsd-signatures tsd-is-protected"><li class="tsd-signature tsd-anchor-link"><a id="writeMetadata.writeMetadata-1" class="tsd-anchor"></a><span class="tsd-kind-call-signature">write<wbr/>Metadata</span><span class="tsd-signature-symbol">(</span><span class="tsd-kind-parameter">identifier</span>, <span class="tsd-kind-parameter">representation</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><a href="../types/ChangeMap.html" class="tsd-signature-type tsd-kind-type-alias">ChangeMap</a><span class="tsd-signature-symbol">&gt;</span><a href="#writeMetadata.writeMetadata-1" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-anchor"></use></svg></a></li><li class="tsd-description"><div class="tsd-comment tsd-typography"><p>Write the given metadata resource to the DataAccessor.</p>
</div><div class="tsd-parameters"><h4 class="tsd-parameters-title">Parameters</h4><ul class="tsd-parameter-list"><li><span><span class="tsd-kind-parameter">identifier</span>: <a href="../interfaces/ResourceIdentifier.html" class="tsd-signature-type tsd-kind-interface">ResourceIdentifier</a></span><div class="tsd-comment tsd-typography"><p>Identifier of the metadata.</p>
</div><div class="tsd-comment tsd-typography"></div></li><li><span><span class="tsd-kind-parameter">representation</span>: <a href="../interfaces/Representation.html" class="tsd-signature-type tsd-kind-interface">Representation</a></span><div class="tsd-comment tsd-typography"><p>Corresponding Representation.</p>
</div><div class="tsd-comment tsd-typography"></div></li></ul></div><h4 class="tsd-returns-title">Returns <span class="tsd-signature-type">Promise</span><span class="tsd-signature-symbol">&lt;</span><a href="../types/ChangeMap.html" class="tsd-signature-type tsd-kind-type-alias">ChangeMap</a><span class="tsd-signature-symbol">&gt;</span></h4><p>Identifiers of resources that were possibly modified.</p>
<div class="tsd-comment tsd-typography"></div><aside class="tsd-sources"><ul><li>Defined in <a href="https://github.com/CommunitySolidServer/CommunitySolidServer/blob/4599bf413e0ca08725d22b5e01fe43e97ef7d714/src/storage/DataAccessorBasedStore.ts#L421">src/storage/DataAccessorBasedStore.ts:421</a></li></ul></aside></li></ul></section></section></details></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-protected" name="protected"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Protected</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-external" name="external"/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>External</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><h3><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>On This Page</h3></summary><div class="tsd-accordion-details"><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="tsd-otp-Constructors"><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Constructors</summary><div><a href="#constructor" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-512"></use></svg><span>constructor</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="tsd-otp-Properties"><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Properties</summary><div><a href="#logger" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1024"></use></svg><span>logger</span></a></div></details><details open class="tsd-accordion tsd-page-navigation-section"><summary class="tsd-accordion-summary" data-key="tsd-otp-Methods"><svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="../assets/icons.svg#icon-chevronDown"></use></svg>Methods</summary><div><a href="#addResource" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>add<wbr/>Resource</span></a><a href="#cleanSlug" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>clean<wbr/>Slug</span></a><a href="#createRecursiveContainers" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>create<wbr/>Recursive<wbr/>Containers</span></a><a href="#createSafeUri" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>create<wbr/>Safe<wbr/>Uri</span></a><a href="#createURI" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>createURI</span></a><a href="#deleteResource" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>delete<wbr/>Resource</span></a><a href="#getNormalizedMetadata" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Normalized<wbr/>Metadata</span></a><a href="#getRepresentation" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Representation</span></a><a href="#getSafeNormalizedMetadata" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>get<wbr/>Safe<wbr/>Normalized<wbr/>Metadata</span></a><a href="#handleContainerData" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>handle<wbr/>Container<wbr/>Data</span></a><a href="#hasContainerType" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>has<wbr/>Container<wbr/>Type</span></a><a href="#hasProperChildren" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>has<wbr/>Proper<wbr/>Children</span></a><a href="#hasResource" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>has<wbr/>Resource</span></a><a href="#isContainerType" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>is<wbr/>Container<wbr/>Type</span></a><a href="#isRootStorage" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>is<wbr/>Root<wbr/>Storage</span></a><a href="#modifyResource" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>modify<wbr/>Resource</span></a><a href="#removeResponseMetadata" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>remove<wbr/>Response<wbr/>Metadata</span></a><a href="#safelyDeleteAuxiliaryResources" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>safely<wbr/>Delete<wbr/>Auxiliary<wbr/>Resources</span></a><a href="#setRepresentation" class=""><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>set<wbr/>Representation</span></a><a href="#updateContainerModifiedDate" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>update<wbr/>Container<wbr/>Modified<wbr/>Date</span></a><a href="#validateConditions" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>validate<wbr/>Conditions</span></a><a href="#validateIdentifier" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>validate<wbr/>Identifier</span></a><a href="#validateSlug" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>validate<wbr/>Slug</span></a><a href="#writeData" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>write<wbr/>Data</span></a><a href="#writeMetadata" class="tsd-is-protected"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-2048"></use></svg><span>write<wbr/>Metadata</span></a></div></details></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="../modules.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24"><use href="../assets/icons.svg#icon-1"></use></svg><span>Community Solid Server - v7.1.1</span></a><ul class="tsd-small-nested-navigation" id="tsd-nav-container" data-base=".."><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>