diff --git a/5.x/404.html b/5.x/404.html index 1d9c502e0..08c5e9eff 100644 --- a/5.x/404.html +++ b/5.x/404.html @@ -9,7 +9,7 @@ - + @@ -17,13 +17,14 @@ - + + @@ -42,6 +43,7 @@ + @@ -153,7 +155,7 @@ @@ -177,7 +179,7 @@
- +
CommunitySolidServer @@ -309,7 +311,7 @@
- +
CommunitySolidServer @@ -856,14 +858,16 @@
-
-
- + +
+
+

404 - Not found

-
- -
+
+
+ +
- + @@ -904,7 +908,7 @@ - + @@ -913,7 +917,7 @@ - + @@ -922,7 +926,7 @@ - + @@ -936,10 +940,10 @@
- + - + diff --git a/5.x/architecture/core/index.html b/5.x/architecture/core/index.html index 3da84454a..c53011e21 100644 --- a/5.x/architecture/core/index.html +++ b/5.x/architecture/core/index.html @@ -11,7 +11,7 @@ - + @@ -19,13 +19,14 @@ - + + @@ -44,6 +45,7 @@ + @@ -160,7 +162,7 @@ @@ -184,7 +186,7 @@
- +
CommunitySolidServer @@ -318,7 +320,7 @@
- +
CommunitySolidServer @@ -939,10 +941,11 @@
-
- +
+ +
- + @@ -1066,7 +1071,7 @@ Similarly, we have a pipeSafely to pipe streams in such a way that - + @@ -1075,7 +1080,7 @@ Similarly, we have a pipeSafely to pipe streams in such a way that - + @@ -1084,7 +1089,7 @@ Similarly, we have a pipeSafely to pipe streams in such a way that - + @@ -1098,10 +1103,10 @@ Similarly, we have a pipeSafely to pipe streams in such a way that
- + - + diff --git a/5.x/architecture/dependency-injection/index.html b/5.x/architecture/dependency-injection/index.html index 415873f3f..19442b04d 100644 --- a/5.x/architecture/dependency-injection/index.html +++ b/5.x/architecture/dependency-injection/index.html @@ -11,7 +11,7 @@ - + @@ -19,13 +19,14 @@ - + + @@ -44,6 +45,7 @@ + @@ -160,7 +162,7 @@ @@ -184,7 +186,7 @@
- +
CommunitySolidServer @@ -318,7 +320,7 @@
- +
CommunitySolidServer @@ -939,10 +941,11 @@
-
- +
+ +
- + @@ -1076,7 +1081,7 @@ These variables are set when starting up the server, based on the command line p - + @@ -1085,7 +1090,7 @@ These variables are set when starting up the server, based on the command line p - + @@ -1094,7 +1099,7 @@ These variables are set when starting up the server, based on the command line p - + @@ -1108,10 +1113,10 @@ These variables are set when starting up the server, based on the command line p
- + - + diff --git a/5.x/architecture/features/cli/index.html b/5.x/architecture/features/cli/index.html index ca4386a83..45c26f127 100644 --- a/5.x/architecture/features/cli/index.html +++ b/5.x/architecture/features/cli/index.html @@ -11,7 +11,7 @@ - + @@ -19,13 +19,14 @@ - + + @@ -44,6 +45,7 @@ + @@ -160,7 +162,7 @@ @@ -184,7 +186,7 @@
- +
CommunitySolidServer @@ -318,7 +320,7 @@
- +
CommunitySolidServer @@ -955,10 +957,11 @@
-
- +
+ +
- + @@ -1086,7 +1091,7 @@ which will be used if no port is provided.

- + @@ -1095,7 +1100,7 @@ which will be used if no port is provided.

- + @@ -1104,7 +1109,7 @@ which will be used if no port is provided.

- + @@ -1118,10 +1123,10 @@ which will be used if no port is provided.

- + - + diff --git a/5.x/architecture/features/http-handler/index.html b/5.x/architecture/features/http-handler/index.html index d777895af..a005073c2 100644 --- a/5.x/architecture/features/http-handler/index.html +++ b/5.x/architecture/features/http-handler/index.html @@ -11,7 +11,7 @@ - + @@ -19,13 +19,14 @@ - + + @@ -44,6 +45,7 @@ + @@ -160,7 +162,7 @@ @@ -184,7 +186,7 @@
- +
CommunitySolidServer @@ -318,7 +320,7 @@
- +
CommunitySolidServer @@ -997,10 +999,11 @@
-
-
- + +
+
@@ -1192,10 +1197,10 @@ A detailed description of what happens then can be found
- + - + diff --git a/5.x/architecture/features/initialization/index.html b/5.x/architecture/features/initialization/index.html index bdad20586..64695372d 100644 --- a/5.x/architecture/features/initialization/index.html +++ b/5.x/architecture/features/initialization/index.html @@ -11,7 +11,7 @@ - + @@ -19,13 +19,14 @@ - + + @@ -44,6 +45,7 @@ + @@ -160,7 +162,7 @@ @@ -184,7 +186,7 @@
- +
CommunitySolidServer @@ -318,7 +320,7 @@
- +
CommunitySolidServer @@ -995,10 +997,11 @@
-
- +
+ +
- + @@ -1184,7 +1189,7 @@ might also differ in case an HTTPS configuration is imported.

- + @@ -1193,7 +1198,7 @@ might also differ in case an HTTPS configuration is imported.

- + @@ -1202,7 +1207,7 @@ might also differ in case an HTTPS configuration is imported.

- + @@ -1216,10 +1221,10 @@ might also differ in case an HTTPS configuration is imported.

- + - + diff --git a/5.x/architecture/features/protocol/authorization/index.html b/5.x/architecture/features/protocol/authorization/index.html index 0f6fc76ce..ad33faf6c 100644 --- a/5.x/architecture/features/protocol/authorization/index.html +++ b/5.x/architecture/features/protocol/authorization/index.html @@ -11,7 +11,7 @@ - + @@ -19,13 +19,14 @@ - + + @@ -44,6 +45,7 @@ + @@ -160,7 +162,7 @@ @@ -184,7 +186,7 @@
- +
CommunitySolidServer @@ -318,7 +320,7 @@
- +
CommunitySolidServer @@ -971,10 +973,11 @@
-
- +
+ +
- + @@ -1191,7 +1196,7 @@ depending on if the agent was logged in or not.

- + @@ -1200,7 +1205,7 @@ depending on if the agent was logged in or not.

- + @@ -1209,7 +1214,7 @@ depending on if the agent was logged in or not.

- + @@ -1223,10 +1228,10 @@ depending on if the agent was logged in or not.

- + - + diff --git a/5.x/architecture/features/protocol/overview/index.html b/5.x/architecture/features/protocol/overview/index.html index 717894726..c0ad3845b 100644 --- a/5.x/architecture/features/protocol/overview/index.html +++ b/5.x/architecture/features/protocol/overview/index.html @@ -11,7 +11,7 @@ - + @@ -19,13 +19,14 @@ - + + @@ -44,6 +45,7 @@ + @@ -160,7 +162,7 @@ @@ -184,7 +186,7 @@
- +
CommunitySolidServer @@ -318,7 +320,7 @@
- +
CommunitySolidServer @@ -883,10 +885,11 @@
-
- +
+ +
- + @@ -999,7 +1004,7 @@ e.g. a POST request to create a new resource.

- + @@ -1008,7 +1013,7 @@ e.g. a POST request to create a new resource.

- + @@ -1017,7 +1022,7 @@ e.g. a POST request to create a new resource.

- + @@ -1031,10 +1036,10 @@ e.g. a POST request to create a new resource.

- + - + diff --git a/5.x/architecture/features/protocol/parsing/index.html b/5.x/architecture/features/protocol/parsing/index.html index 1cbbc8c7d..78d95d5f2 100644 --- a/5.x/architecture/features/protocol/parsing/index.html +++ b/5.x/architecture/features/protocol/parsing/index.html @@ -11,7 +11,7 @@ - + @@ -19,13 +19,14 @@ - + + @@ -44,6 +45,7 @@ + @@ -160,7 +162,7 @@ @@ -184,7 +186,7 @@
- +
CommunitySolidServer @@ -318,7 +320,7 @@
- +
CommunitySolidServer @@ -1025,10 +1027,11 @@
-
- +
+ +
- + @@ -1197,7 +1202,7 @@ it has multiple writers which each convert certain metadata into a specific head - + @@ -1206,7 +1211,7 @@ it has multiple writers which each convert certain metadata into a specific head - + @@ -1215,7 +1220,7 @@ it has multiple writers which each convert certain metadata into a specific head - + @@ -1229,10 +1234,10 @@ it has multiple writers which each convert certain metadata into a specific head
- + - + diff --git a/5.x/architecture/features/protocol/resource-store/index.html b/5.x/architecture/features/protocol/resource-store/index.html index 203be2045..9ec3b7e64 100644 --- a/5.x/architecture/features/protocol/resource-store/index.html +++ b/5.x/architecture/features/protocol/resource-store/index.html @@ -11,7 +11,7 @@ - + @@ -19,13 +19,14 @@ - + + @@ -44,6 +45,7 @@ + @@ -160,7 +162,7 @@ @@ -184,7 +186,7 @@
- +
CommunitySolidServer @@ -318,7 +320,7 @@
- +
CommunitySolidServer @@ -999,10 +1001,11 @@
-
- +
+ +
- + @@ -1165,7 +1170,7 @@ after which it can be plugged into the rest of the server.

- + @@ -1174,7 +1179,7 @@ after which it can be plugged into the rest of the server.

- + @@ -1183,7 +1188,7 @@ after which it can be plugged into the rest of the server.

- + @@ -1197,10 +1202,10 @@ after which it can be plugged into the rest of the server.

- + - + diff --git a/5.x/architecture/overview/index.html b/5.x/architecture/overview/index.html index f7fae56bb..29815b297 100644 --- a/5.x/architecture/overview/index.html +++ b/5.x/architecture/overview/index.html @@ -11,7 +11,7 @@ - + @@ -19,13 +19,14 @@ - + + @@ -44,6 +45,7 @@ + @@ -160,7 +162,7 @@ @@ -184,7 +186,7 @@
- +
CommunitySolidServer @@ -318,7 +320,7 @@
- +
CommunitySolidServer @@ -939,10 +941,11 @@
-
- +
+ +
- + @@ -1088,7 +1093,7 @@ one of which has no identifier but is an instance of AuthorizingHttpHandle - + @@ -1097,7 +1102,7 @@ one of which has no identifier but is an instance of AuthorizingHttpHandle - + @@ -1106,7 +1111,7 @@ one of which has no identifier but is an instance of AuthorizingHttpHandle - + @@ -1120,10 +1125,10 @@ one of which has no identifier but is an instance of AuthorizingHttpHandle
- + - + diff --git a/5.x/assets/javascripts/bundle.8492ddcf.min.js b/5.x/assets/javascripts/bundle.8492ddcf.min.js new file mode 100644 index 000000000..e606437c5 --- /dev/null +++ b/5.x/assets/javascripts/bundle.8492ddcf.min.js @@ -0,0 +1,29 @@ +"use strict";(()=>{var aa=Object.create;var wr=Object.defineProperty;var sa=Object.getOwnPropertyDescriptor;var ca=Object.getOwnPropertyNames,kt=Object.getOwnPropertySymbols,fa=Object.getPrototypeOf,Er=Object.prototype.hasOwnProperty,fn=Object.prototype.propertyIsEnumerable;var cn=(e,t,r)=>t in e?wr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,H=(e,t)=>{for(var r in t||(t={}))Er.call(t,r)&&cn(e,r,t[r]);if(kt)for(var r of kt(t))fn.call(t,r)&&cn(e,r,t[r]);return e};var un=(e,t)=>{var r={};for(var n in e)Er.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&kt)for(var n of kt(e))t.indexOf(n)<0&&fn.call(e,n)&&(r[n]=e[n]);return r};var yt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var ua=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ca(t))!Er.call(e,o)&&o!==r&&wr(e,o,{get:()=>t[o],enumerable:!(n=sa(t,o))||n.enumerable});return e};var Ye=(e,t,r)=>(r=e!=null?aa(fa(e)):{},ua(t||!e||!e.__esModule?wr(r,"default",{value:e,enumerable:!0}):r,e));var ln=yt((Sr,pn)=>{(function(e,t){typeof Sr=="object"&&typeof pn!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(Sr,function(){"use strict";function e(r){var n=!0,o=!1,i=null,s={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function a(_){return!!(_&&_!==document&&_.nodeName!=="HTML"&&_.nodeName!=="BODY"&&"classList"in _&&"contains"in _.classList)}function c(_){var We=_.type,Fe=_.tagName;return!!(Fe==="INPUT"&&s[We]&&!_.readOnly||Fe==="TEXTAREA"&&!_.readOnly||_.isContentEditable)}function f(_){_.classList.contains("focus-visible")||(_.classList.add("focus-visible"),_.setAttribute("data-focus-visible-added",""))}function u(_){!_.hasAttribute("data-focus-visible-added")||(_.classList.remove("focus-visible"),_.removeAttribute("data-focus-visible-added"))}function p(_){_.metaKey||_.altKey||_.ctrlKey||(a(r.activeElement)&&f(r.activeElement),n=!0)}function l(_){n=!1}function d(_){!a(_.target)||(n||c(_.target))&&f(_.target)}function h(_){!a(_.target)||(_.target.classList.contains("focus-visible")||_.target.hasAttribute("data-focus-visible-added"))&&(o=!0,window.clearTimeout(i),i=window.setTimeout(function(){o=!1},100),u(_.target))}function b(_){document.visibilityState==="hidden"&&(o&&(n=!0),U())}function U(){document.addEventListener("mousemove",W),document.addEventListener("mousedown",W),document.addEventListener("mouseup",W),document.addEventListener("pointermove",W),document.addEventListener("pointerdown",W),document.addEventListener("pointerup",W),document.addEventListener("touchmove",W),document.addEventListener("touchstart",W),document.addEventListener("touchend",W)}function G(){document.removeEventListener("mousemove",W),document.removeEventListener("mousedown",W),document.removeEventListener("mouseup",W),document.removeEventListener("pointermove",W),document.removeEventListener("pointerdown",W),document.removeEventListener("pointerup",W),document.removeEventListener("touchmove",W),document.removeEventListener("touchstart",W),document.removeEventListener("touchend",W)}function W(_){_.target.nodeName&&_.target.nodeName.toLowerCase()==="html"||(n=!1,G())}document.addEventListener("keydown",p,!0),document.addEventListener("mousedown",l,!0),document.addEventListener("pointerdown",l,!0),document.addEventListener("touchstart",l,!0),document.addEventListener("visibilitychange",b,!0),U(),r.addEventListener("focus",d,!0),r.addEventListener("blur",h,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)})});var mn=yt(Or=>{(function(e){var t=function(){try{return!!Symbol.iterator}catch(f){return!1}},r=t(),n=function(f){var u={next:function(){var p=f.shift();return{done:p===void 0,value:p}}};return r&&(u[Symbol.iterator]=function(){return u}),u},o=function(f){return encodeURIComponent(f).replace(/%20/g,"+")},i=function(f){return decodeURIComponent(String(f).replace(/\+/g," "))},s=function(){var f=function(p){Object.defineProperty(this,"_entries",{writable:!0,value:{}});var l=typeof p;if(l!=="undefined")if(l==="string")p!==""&&this._fromString(p);else if(p instanceof f){var d=this;p.forEach(function(G,W){d.append(W,G)})}else if(p!==null&&l==="object")if(Object.prototype.toString.call(p)==="[object Array]")for(var h=0;hd[0]?1:0}),f._entries&&(f._entries={});for(var p=0;p1?i(d[1]):"")}})})(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:Or);(function(e){var t=function(){try{var o=new e.URL("b","http://a");return o.pathname="c d",o.href==="http://a/c%20d"&&o.searchParams}catch(i){return!1}},r=function(){var o=e.URL,i=function(c,f){typeof c!="string"&&(c=String(c)),f&&typeof f!="string"&&(f=String(f));var u=document,p;if(f&&(e.location===void 0||f!==e.location.href)){f=f.toLowerCase(),u=document.implementation.createHTMLDocument(""),p=u.createElement("base"),p.href=f,u.head.appendChild(p);try{if(p.href.indexOf(f)!==0)throw new Error(p.href)}catch(_){throw new Error("URL unable to set base "+f+" due to "+_)}}var l=u.createElement("a");l.href=c,p&&(u.body.appendChild(l),l.href=l.href);var d=u.createElement("input");if(d.type="url",d.value=c,l.protocol===":"||!/:/.test(l.href)||!d.checkValidity()&&!f)throw new TypeError("Invalid URL");Object.defineProperty(this,"_anchorElement",{value:l});var h=new e.URLSearchParams(this.search),b=!0,U=!0,G=this;["append","delete","set"].forEach(function(_){var We=h[_];h[_]=function(){We.apply(h,arguments),b&&(U=!1,G.search=h.toString(),U=!0)}}),Object.defineProperty(this,"searchParams",{value:h,enumerable:!0});var W=void 0;Object.defineProperty(this,"_updateSearchParams",{enumerable:!1,configurable:!1,writable:!1,value:function(){this.search!==W&&(W=this.search,U&&(b=!1,this.searchParams._fromString(this.search),b=!0))}})},s=i.prototype,a=function(c){Object.defineProperty(s,c,{get:function(){return this._anchorElement[c]},set:function(f){this._anchorElement[c]=f},enumerable:!0})};["hash","host","hostname","port","protocol"].forEach(function(c){a(c)}),Object.defineProperty(s,"search",{get:function(){return this._anchorElement.search},set:function(c){this._anchorElement.search=c,this._updateSearchParams()},enumerable:!0}),Object.defineProperties(s,{toString:{get:function(){var c=this;return function(){return c.href}}},href:{get:function(){return this._anchorElement.href.replace(/\?$/,"")},set:function(c){this._anchorElement.href=c,this._updateSearchParams()},enumerable:!0},pathname:{get:function(){return this._anchorElement.pathname.replace(/(^\/?)/,"/")},set:function(c){this._anchorElement.pathname=c},enumerable:!0},origin:{get:function(){var c={"http:":80,"https:":443,"ftp:":21}[this._anchorElement.protocol],f=this._anchorElement.port!=c&&this._anchorElement.port!=="";return this._anchorElement.protocol+"//"+this._anchorElement.hostname+(f?":"+this._anchorElement.port:"")},enumerable:!0},password:{get:function(){return""},set:function(c){},enumerable:!0},username:{get:function(){return""},set:function(c){},enumerable:!0}}),i.createObjectURL=function(c){return o.createObjectURL.apply(o,arguments)},i.revokeObjectURL=function(c){return o.revokeObjectURL.apply(o,arguments)},e.URL=i};if(t()||r(),e.location!==void 0&&!("origin"in e.location)){var n=function(){return e.location.protocol+"//"+e.location.hostname+(e.location.port?":"+e.location.port:"")};try{Object.defineProperty(e.location,"origin",{get:n,enumerable:!0})}catch(o){setInterval(function(){e.location.origin=n()},100)}}})(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:Or)});var Pn=yt((Ks,$t)=>{/*! ***************************************************************************** +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +***************************************************************************** */var dn,hn,bn,vn,gn,yn,xn,wn,En,Ht,_r,Sn,On,_n,rt,Tn,Mn,Ln,An,Cn,Rn,kn,Hn,Pt;(function(e){var t=typeof global=="object"?global:typeof self=="object"?self:typeof this=="object"?this:{};typeof define=="function"&&define.amd?define("tslib",["exports"],function(n){e(r(t,r(n)))}):typeof $t=="object"&&typeof $t.exports=="object"?e(r(t,r($t.exports))):e(r(t));function r(n,o){return n!==t&&(typeof Object.create=="function"?Object.defineProperty(n,"__esModule",{value:!0}):n.__esModule=!0),function(i,s){return n[i]=o?o(i,s):s}}})(function(e){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,o){n.__proto__=o}||function(n,o){for(var i in o)Object.prototype.hasOwnProperty.call(o,i)&&(n[i]=o[i])};dn=function(n,o){if(typeof o!="function"&&o!==null)throw new TypeError("Class extends value "+String(o)+" is not a constructor or null");t(n,o);function i(){this.constructor=n}n.prototype=o===null?Object.create(o):(i.prototype=o.prototype,new i)},hn=Object.assign||function(n){for(var o,i=1,s=arguments.length;i=0;u--)(f=n[u])&&(c=(a<3?f(c):a>3?f(o,i,c):f(o,i))||c);return a>3&&c&&Object.defineProperty(o,i,c),c},gn=function(n,o){return function(i,s){o(i,s,n)}},yn=function(n,o){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,o)},xn=function(n,o,i,s){function a(c){return c instanceof i?c:new i(function(f){f(c)})}return new(i||(i=Promise))(function(c,f){function u(d){try{l(s.next(d))}catch(h){f(h)}}function p(d){try{l(s.throw(d))}catch(h){f(h)}}function l(d){d.done?c(d.value):a(d.value).then(u,p)}l((s=s.apply(n,o||[])).next())})},wn=function(n,o){var i={label:0,sent:function(){if(c[0]&1)throw c[1];return c[1]},trys:[],ops:[]},s,a,c,f;return f={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(f[Symbol.iterator]=function(){return this}),f;function u(l){return function(d){return p([l,d])}}function p(l){if(s)throw new TypeError("Generator is already executing.");for(;i;)try{if(s=1,a&&(c=l[0]&2?a.return:l[0]?a.throw||((c=a.return)&&c.call(a),0):a.next)&&!(c=c.call(a,l[1])).done)return c;switch(a=0,c&&(l=[l[0]&2,c.value]),l[0]){case 0:case 1:c=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,a=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(c=i.trys,!(c=c.length>0&&c[c.length-1])&&(l[0]===6||l[0]===2)){i=0;continue}if(l[0]===3&&(!c||l[1]>c[0]&&l[1]=n.length&&(n=void 0),{value:n&&n[s++],done:!n}}};throw new TypeError(o?"Object is not iterable.":"Symbol.iterator is not defined.")},_r=function(n,o){var i=typeof Symbol=="function"&&n[Symbol.iterator];if(!i)return n;var s=i.call(n),a,c=[],f;try{for(;(o===void 0||o-- >0)&&!(a=s.next()).done;)c.push(a.value)}catch(u){f={error:u}}finally{try{a&&!a.done&&(i=s.return)&&i.call(s)}finally{if(f)throw f.error}}return c},Sn=function(){for(var n=[],o=0;o1||u(b,U)})})}function u(b,U){try{p(s[b](U))}catch(G){h(c[0][3],G)}}function p(b){b.value instanceof rt?Promise.resolve(b.value.v).then(l,d):h(c[0][2],b)}function l(b){u("next",b)}function d(b){u("throw",b)}function h(b,U){b(U),c.shift(),c.length&&u(c[0][0],c[0][1])}},Mn=function(n){var o,i;return o={},s("next"),s("throw",function(a){throw a}),s("return"),o[Symbol.iterator]=function(){return this},o;function s(a,c){o[a]=n[a]?function(f){return(i=!i)?{value:rt(n[a](f)),done:a==="return"}:c?c(f):f}:c}},Ln=function(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n[Symbol.asyncIterator],i;return o?o.call(n):(n=typeof Ht=="function"?Ht(n):n[Symbol.iterator](),i={},s("next"),s("throw"),s("return"),i[Symbol.asyncIterator]=function(){return this},i);function s(c){i[c]=n[c]&&function(f){return new Promise(function(u,p){f=n[c](f),a(u,p,f.done,f.value)})}}function a(c,f,u,p){Promise.resolve(p).then(function(l){c({value:l,done:u})},f)}},An=function(n,o){return Object.defineProperty?Object.defineProperty(n,"raw",{value:o}):n.raw=o,n};var r=Object.create?function(n,o){Object.defineProperty(n,"default",{enumerable:!0,value:o})}:function(n,o){n.default=o};Cn=function(n){if(n&&n.__esModule)return n;var o={};if(n!=null)for(var i in n)i!=="default"&&Object.prototype.hasOwnProperty.call(n,i)&&Pt(o,n,i);return r(o,n),o},Rn=function(n){return n&&n.__esModule?n:{default:n}},kn=function(n,o,i,s){if(i==="a"&&!s)throw new TypeError("Private accessor was defined without a getter");if(typeof o=="function"?n!==o||!s:!o.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return i==="m"?s:i==="a"?s.call(n):s?s.value:o.get(n)},Hn=function(n,o,i,s,a){if(s==="m")throw new TypeError("Private method is not writable");if(s==="a"&&!a)throw new TypeError("Private accessor was defined without a setter");if(typeof o=="function"?n!==o||!a:!o.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return s==="a"?a.call(n,i):a?a.value=i:o.set(n,i),i},e("__extends",dn),e("__assign",hn),e("__rest",bn),e("__decorate",vn),e("__param",gn),e("__metadata",yn),e("__awaiter",xn),e("__generator",wn),e("__exportStar",En),e("__createBinding",Pt),e("__values",Ht),e("__read",_r),e("__spread",Sn),e("__spreadArrays",On),e("__spreadArray",_n),e("__await",rt),e("__asyncGenerator",Tn),e("__asyncDelegator",Mn),e("__asyncValues",Ln),e("__makeTemplateObject",An),e("__importStar",Cn),e("__importDefault",Rn),e("__classPrivateFieldGet",kn),e("__classPrivateFieldSet",Hn)})});var Br=yt((At,Yr)=>{/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */(function(t,r){typeof At=="object"&&typeof Yr=="object"?Yr.exports=r():typeof define=="function"&&define.amd?define([],r):typeof At=="object"?At.ClipboardJS=r():t.ClipboardJS=r()})(At,function(){return function(){var e={686:function(n,o,i){"use strict";i.d(o,{default:function(){return ia}});var s=i(279),a=i.n(s),c=i(370),f=i.n(c),u=i(817),p=i.n(u);function l(j){try{return document.execCommand(j)}catch(T){return!1}}var d=function(T){var O=p()(T);return l("cut"),O},h=d;function b(j){var T=document.documentElement.getAttribute("dir")==="rtl",O=document.createElement("textarea");O.style.fontSize="12pt",O.style.border="0",O.style.padding="0",O.style.margin="0",O.style.position="absolute",O.style[T?"right":"left"]="-9999px";var k=window.pageYOffset||document.documentElement.scrollTop;return O.style.top="".concat(k,"px"),O.setAttribute("readonly",""),O.value=j,O}var U=function(T,O){var k=b(T);O.container.appendChild(k);var $=p()(k);return l("copy"),k.remove(),$},G=function(T){var O=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},k="";return typeof T=="string"?k=U(T,O):T instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(T==null?void 0:T.type)?k=U(T.value,O):(k=p()(T),l("copy")),k},W=G;function _(j){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?_=function(O){return typeof O}:_=function(O){return O&&typeof Symbol=="function"&&O.constructor===Symbol&&O!==Symbol.prototype?"symbol":typeof O},_(j)}var We=function(){var T=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},O=T.action,k=O===void 0?"copy":O,$=T.container,q=T.target,Te=T.text;if(k!=="copy"&&k!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(q!==void 0)if(q&&_(q)==="object"&&q.nodeType===1){if(k==="copy"&&q.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(k==="cut"&&(q.hasAttribute("readonly")||q.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(Te)return W(Te,{container:$});if(q)return k==="cut"?h(q):W(q,{container:$})},Fe=We;function Pe(j){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Pe=function(O){return typeof O}:Pe=function(O){return O&&typeof Symbol=="function"&&O.constructor===Symbol&&O!==Symbol.prototype?"symbol":typeof O},Pe(j)}function Ji(j,T){if(!(j instanceof T))throw new TypeError("Cannot call a class as a function")}function sn(j,T){for(var O=0;O0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof $.action=="function"?$.action:this.defaultAction,this.target=typeof $.target=="function"?$.target:this.defaultTarget,this.text=typeof $.text=="function"?$.text:this.defaultText,this.container=Pe($.container)==="object"?$.container:document.body}},{key:"listenClick",value:function($){var q=this;this.listener=f()($,"click",function(Te){return q.onClick(Te)})}},{key:"onClick",value:function($){var q=$.delegateTarget||$.currentTarget,Te=this.action(q)||"copy",Rt=Fe({action:Te,container:this.container,target:this.target(q),text:this.text(q)});this.emit(Rt?"success":"error",{action:Te,text:Rt,trigger:q,clearSelection:function(){q&&q.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function($){return xr("action",$)}},{key:"defaultTarget",value:function($){var q=xr("target",$);if(q)return document.querySelector(q)}},{key:"defaultText",value:function($){return xr("text",$)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function($){var q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return W($,q)}},{key:"cut",value:function($){return h($)}},{key:"isSupported",value:function(){var $=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],q=typeof $=="string"?[$]:$,Te=!!document.queryCommandSupported;return q.forEach(function(Rt){Te=Te&&!!document.queryCommandSupported(Rt)}),Te}}]),O}(a()),ia=oa},828:function(n){var o=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function s(a,c){for(;a&&a.nodeType!==o;){if(typeof a.matches=="function"&&a.matches(c))return a;a=a.parentNode}}n.exports=s},438:function(n,o,i){var s=i(828);function a(u,p,l,d,h){var b=f.apply(this,arguments);return u.addEventListener(l,b,h),{destroy:function(){u.removeEventListener(l,b,h)}}}function c(u,p,l,d,h){return typeof u.addEventListener=="function"?a.apply(null,arguments):typeof l=="function"?a.bind(null,document).apply(null,arguments):(typeof u=="string"&&(u=document.querySelectorAll(u)),Array.prototype.map.call(u,function(b){return a(b,p,l,d,h)}))}function f(u,p,l,d){return function(h){h.delegateTarget=s(h.target,p),h.delegateTarget&&d.call(u,h)}}n.exports=c},879:function(n,o){o.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},o.nodeList=function(i){var s=Object.prototype.toString.call(i);return i!==void 0&&(s==="[object NodeList]"||s==="[object HTMLCollection]")&&"length"in i&&(i.length===0||o.node(i[0]))},o.string=function(i){return typeof i=="string"||i instanceof String},o.fn=function(i){var s=Object.prototype.toString.call(i);return s==="[object Function]"}},370:function(n,o,i){var s=i(879),a=i(438);function c(l,d,h){if(!l&&!d&&!h)throw new Error("Missing required arguments");if(!s.string(d))throw new TypeError("Second argument must be a String");if(!s.fn(h))throw new TypeError("Third argument must be a Function");if(s.node(l))return f(l,d,h);if(s.nodeList(l))return u(l,d,h);if(s.string(l))return p(l,d,h);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function f(l,d,h){return l.addEventListener(d,h),{destroy:function(){l.removeEventListener(d,h)}}}function u(l,d,h){return Array.prototype.forEach.call(l,function(b){b.addEventListener(d,h)}),{destroy:function(){Array.prototype.forEach.call(l,function(b){b.removeEventListener(d,h)})}}}function p(l,d,h){return a(document.body,l,d,h)}n.exports=c},817:function(n){function o(i){var s;if(i.nodeName==="SELECT")i.focus(),s=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var a=i.hasAttribute("readonly");a||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),a||i.removeAttribute("readonly"),s=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var c=window.getSelection(),f=document.createRange();f.selectNodeContents(i),c.removeAllRanges(),c.addRange(f),s=c.toString()}return s}n.exports=o},279:function(n){function o(){}o.prototype={on:function(i,s,a){var c=this.e||(this.e={});return(c[i]||(c[i]=[])).push({fn:s,ctx:a}),this},once:function(i,s,a){var c=this;function f(){c.off(i,f),s.apply(a,arguments)}return f._=s,this.on(i,f,a)},emit:function(i){var s=[].slice.call(arguments,1),a=((this.e||(this.e={}))[i]||[]).slice(),c=0,f=a.length;for(c;c{"use strict";/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var Ms=/["'&<>]/;Si.exports=Ls;function Ls(e){var t=""+e,r=Ms.exec(t);if(!r)return t;var n,o="",i=0,s=0;for(i=r.index;i0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var n=this,o=this,i=o.hasError,s=o.isStopped,a=o.observers;return i||s?Tr:(this.currentObservers=null,a.push(r),new $e(function(){n.currentObservers=null,Ue(a,r)}))},t.prototype._checkFinalizedStatuses=function(r){var n=this,o=n.hasError,i=n.thrownError,s=n.isStopped;o?r.error(i):s&&r.complete()},t.prototype.asObservable=function(){var r=new F;return r.source=this,r},t.create=function(r,n){return new Qn(r,n)},t}(F);var Qn=function(e){ne(t,e);function t(r,n){var o=e.call(this)||this;return o.destination=r,o.source=n,o}return t.prototype.next=function(r){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.next)===null||o===void 0||o.call(n,r)},t.prototype.error=function(r){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.error)===null||o===void 0||o.call(n,r)},t.prototype.complete=function(){var r,n;(n=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||n===void 0||n.call(r)},t.prototype._subscribe=function(r){var n,o;return(o=(n=this.source)===null||n===void 0?void 0:n.subscribe(r))!==null&&o!==void 0?o:Tr},t}(E);var wt={now:function(){return(wt.delegate||Date).now()},delegate:void 0};var Et=function(e){ne(t,e);function t(r,n,o){r===void 0&&(r=1/0),n===void 0&&(n=1/0),o===void 0&&(o=wt);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=n,i._timestampProvider=o,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=n===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,n),i}return t.prototype.next=function(r){var n=this,o=n.isStopped,i=n._buffer,s=n._infiniteTimeWindow,a=n._timestampProvider,c=n._windowTime;o||(i.push(r),!s&&i.push(a.now()+c)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var n=this._innerSubscribe(r),o=this,i=o._infiniteTimeWindow,s=o._buffer,a=s.slice(),c=0;c0?e.prototype.requestAsyncId.call(this,r,n,o):(r.actions.push(this),r._scheduled||(r._scheduled=at.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,n,o){var i;if(o===void 0&&(o=0),o!=null?o>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,n,o);var s=r.actions;n!=null&&((i=s[s.length-1])===null||i===void 0?void 0:i.id)!==n&&(at.cancelAnimationFrame(n),r._scheduled=void 0)},t}(zt);var Gn=function(e){ne(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var n=this._scheduled;this._scheduled=void 0;var o=this.actions,i;r=r||o.shift();do if(i=r.execute(r.state,r.delay))break;while((r=o[0])&&r.id===n&&o.shift());if(this._active=!1,i){for(;(r=o[0])&&r.id===n&&o.shift();)r.unsubscribe();throw i}},t}(Nt);var xe=new Gn(Bn);var R=new F(function(e){return e.complete()});function qt(e){return e&&L(e.schedule)}function Hr(e){return e[e.length-1]}function Ve(e){return L(Hr(e))?e.pop():void 0}function Ee(e){return qt(Hr(e))?e.pop():void 0}function Kt(e,t){return typeof Hr(e)=="number"?e.pop():t}var st=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function Qt(e){return L(e==null?void 0:e.then)}function Yt(e){return L(e[it])}function Bt(e){return Symbol.asyncIterator&&L(e==null?void 0:e[Symbol.asyncIterator])}function Gt(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function ya(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var Jt=ya();function Xt(e){return L(e==null?void 0:e[Jt])}function Zt(e){return jn(this,arguments,function(){var r,n,o,i;return It(this,function(s){switch(s.label){case 0:r=e.getReader(),s.label=1;case 1:s.trys.push([1,,9,10]),s.label=2;case 2:return[4,jt(r.read())];case 3:return n=s.sent(),o=n.value,i=n.done,i?[4,jt(void 0)]:[3,5];case 4:return[2,s.sent()];case 5:return[4,jt(o)];case 6:return[4,s.sent()];case 7:return s.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function er(e){return L(e==null?void 0:e.getReader)}function z(e){if(e instanceof F)return e;if(e!=null){if(Yt(e))return xa(e);if(st(e))return wa(e);if(Qt(e))return Ea(e);if(Bt(e))return Jn(e);if(Xt(e))return Sa(e);if(er(e))return Oa(e)}throw Gt(e)}function xa(e){return new F(function(t){var r=e[it]();if(L(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function wa(e){return new F(function(t){for(var r=0;r=2,!0))}function ie(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new E}:t,n=e.resetOnError,o=n===void 0?!0:n,i=e.resetOnComplete,s=i===void 0?!0:i,a=e.resetOnRefCountZero,c=a===void 0?!0:a;return function(f){var u,p,l,d=0,h=!1,b=!1,U=function(){p==null||p.unsubscribe(),p=void 0},G=function(){U(),u=l=void 0,h=b=!1},W=function(){var _=u;G(),_==null||_.unsubscribe()};return g(function(_,We){d++,!b&&!h&&U();var Fe=l=l!=null?l:r();We.add(function(){d--,d===0&&!b&&!h&&(p=Dr(W,c))}),Fe.subscribe(We),!u&&d>0&&(u=new Ge({next:function(Pe){return Fe.next(Pe)},error:function(Pe){b=!0,U(),p=Dr(G,o,Pe),Fe.error(Pe)},complete:function(){h=!0,U(),p=Dr(G,s),Fe.complete()}}),z(_).subscribe(u))})(f)}}function Dr(e,t){for(var r=[],n=2;ne.next(document)),e}function Q(e,t=document){return Array.from(t.querySelectorAll(e))}function K(e,t=document){let r=pe(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function pe(e,t=document){return t.querySelector(e)||void 0}function Ie(){return document.activeElement instanceof HTMLElement&&document.activeElement||void 0}function nr(e){return A(v(document.body,"focusin"),v(document.body,"focusout")).pipe(Re(1),m(()=>{let t=Ie();return typeof t!="undefined"?e.contains(t):!1}),N(e===Ie()),B())}function qe(e){return{x:e.offsetLeft,y:e.offsetTop}}function yo(e){return A(v(window,"load"),v(window,"resize")).pipe(Ae(0,xe),m(()=>qe(e)),N(qe(e)))}function or(e){return{x:e.scrollLeft,y:e.scrollTop}}function pt(e){return A(v(e,"scroll"),v(window,"resize")).pipe(Ae(0,xe),m(()=>or(e)),N(or(e)))}var wo=function(){if(typeof Map!="undefined")return Map;function e(t,r){var n=-1;return t.some(function(o,i){return o[0]===r?(n=i,!0):!1}),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(r){var n=e(this.__entries__,r),o=this.__entries__[n];return o&&o[1]},t.prototype.set=function(r,n){var o=e(this.__entries__,r);~o?this.__entries__[o][1]=n:this.__entries__.push([r,n])},t.prototype.delete=function(r){var n=this.__entries__,o=e(n,r);~o&&n.splice(o,1)},t.prototype.has=function(r){return!!~e(this.__entries__,r)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(r,n){n===void 0&&(n=null);for(var o=0,i=this.__entries__;o0},e.prototype.connect_=function(){!qr||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),Ka?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){!qr||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(t){var r=t.propertyName,n=r===void 0?"":r,o=qa.some(function(i){return!!~n.indexOf(i)});o&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),Eo=function(e,t){for(var r=0,n=Object.keys(t);r0},e}(),Oo=typeof WeakMap!="undefined"?new WeakMap:new wo,_o=function(){function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var r=Qa.getInstance(),n=new ns(t,r,this);Oo.set(this,n)}return e}();["observe","unobserve","disconnect"].forEach(function(e){_o.prototype[e]=function(){var t;return(t=Oo.get(this))[e].apply(t,arguments)}});var os=function(){return typeof ir.ResizeObserver!="undefined"?ir.ResizeObserver:_o}(),To=os;var Mo=new E,is=P(()=>I(new To(e=>{for(let t of e)Mo.next(t)}))).pipe(S(e=>A(Se,I(e)).pipe(C(()=>e.disconnect()))),X(1));function he(e){return{width:e.offsetWidth,height:e.offsetHeight}}function ve(e){return is.pipe(w(t=>t.observe(e)),S(t=>Mo.pipe(x(({target:r})=>r===e),C(()=>t.unobserve(e)),m(()=>he(e)))),N(he(e)))}function mt(e){return{width:e.scrollWidth,height:e.scrollHeight}}function cr(e){let t=e.parentElement;for(;t&&(e.scrollWidth<=t.scrollWidth&&e.scrollHeight<=t.scrollHeight);)t=(e=t).parentElement;return t?e:void 0}var Lo=new E,as=P(()=>I(new IntersectionObserver(e=>{for(let t of e)Lo.next(t)},{threshold:0}))).pipe(S(e=>A(Se,I(e)).pipe(C(()=>e.disconnect()))),X(1));function fr(e){return as.pipe(w(t=>t.observe(e)),S(t=>Lo.pipe(x(({target:r})=>r===e),C(()=>t.unobserve(e)),m(({isIntersecting:r})=>r))))}function Ao(e,t=16){return pt(e).pipe(m(({y:r})=>{let n=he(e),o=mt(e);return r>=o.height-n.height-t}),B())}var ur={drawer:K("[data-md-toggle=drawer]"),search:K("[data-md-toggle=search]")};function Co(e){return ur[e].checked}function Ke(e,t){ur[e].checked!==t&&ur[e].click()}function dt(e){let t=ur[e];return v(t,"change").pipe(m(()=>t.checked),N(t.checked))}function ss(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function Ro(){return v(window,"keydown").pipe(x(e=>!(e.metaKey||e.ctrlKey)),m(e=>({mode:Co("search")?"search":"global",type:e.key,claim(){e.preventDefault(),e.stopPropagation()}})),x(({mode:e,type:t})=>{if(e==="global"){let r=Ie();if(typeof r!="undefined")return!ss(r,t)}return!0}),ie())}function Oe(){return new URL(location.href)}function pr(e){location.href=e.href}function ko(){return new E}function Ho(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)Ho(e,r)}function M(e,t,...r){let n=document.createElement(e);if(t)for(let o of Object.keys(t))typeof t[o]!="undefined"&&(typeof t[o]!="boolean"?n.setAttribute(o,t[o]):n.setAttribute(o,""));for(let o of r)Ho(n,o);return n}function Po(e,t){let r=t;if(e.length>r){for(;e[r]!==" "&&--r>0;);return`${e.substring(0,r)}...`}return e}function lr(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function $o(){return location.hash.substring(1)}function Io(e){let t=M("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function cs(){return v(window,"hashchange").pipe(m($o),N($o()),x(e=>e.length>0),X(1))}function jo(){return cs().pipe(m(e=>pe(`[id="${e}"]`)),x(e=>typeof e!="undefined"))}function Kr(e){let t=matchMedia(e);return rr(r=>t.addListener(()=>r(t.matches))).pipe(N(t.matches))}function Fo(){let e=matchMedia("print");return A(v(window,"beforeprint").pipe(m(()=>!0)),v(window,"afterprint").pipe(m(()=>!1))).pipe(N(e.matches))}function Qr(e,t){return e.pipe(S(r=>r?t():R))}function mr(e,t={credentials:"same-origin"}){return ue(fetch(`${e}`,t)).pipe(ce(()=>R),S(r=>r.status!==200?Ot(()=>new Error(r.statusText)):I(r)))}function je(e,t){return mr(e,t).pipe(S(r=>r.json()),X(1))}function Uo(e,t){let r=new DOMParser;return mr(e,t).pipe(S(n=>n.text()),m(n=>r.parseFromString(n,"text/xml")),X(1))}function Do(e){let t=M("script",{src:e});return P(()=>(document.head.appendChild(t),A(v(t,"load"),v(t,"error").pipe(S(()=>Ot(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(m(()=>{}),C(()=>document.head.removeChild(t)),oe(1))))}function Wo(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function Vo(){return A(v(window,"scroll",{passive:!0}),v(window,"resize",{passive:!0})).pipe(m(Wo),N(Wo()))}function zo(){return{width:innerWidth,height:innerHeight}}function No(){return v(window,"resize",{passive:!0}).pipe(m(zo),N(zo()))}function qo(){return Y([Vo(),No()]).pipe(m(([e,t])=>({offset:e,size:t})),X(1))}function dr(e,{viewport$:t,header$:r}){let n=t.pipe(J("size")),o=Y([n,r]).pipe(m(()=>qe(e)));return Y([r,t,o]).pipe(m(([{height:i},{offset:s,size:a},{x:c,y:f}])=>({offset:{x:s.x-c,y:s.y-f+i},size:a})))}function Ko(e,{tx$:t}){let r=v(e,"message").pipe(m(({data:n})=>n));return t.pipe(Lt(()=>r,{leading:!0,trailing:!0}),w(n=>e.postMessage(n)),S(()=>r),ie())}var fs=K("#__config"),ht=JSON.parse(fs.textContent);ht.base=`${new URL(ht.base,Oe())}`;function le(){return ht}function Z(e){return ht.features.includes(e)}function re(e,t){return typeof t!="undefined"?ht.translations[e].replace("#",t.toString()):ht.translations[e]}function _e(e,t=document){return K(`[data-md-component=${e}]`,t)}function te(e,t=document){return Q(`[data-md-component=${e}]`,t)}function us(e){let t=K(".md-typeset > :first-child",e);return v(t,"click",{once:!0}).pipe(m(()=>K(".md-typeset",e)),m(r=>({hash:__md_hash(r.innerHTML)})))}function Qo(e){return!Z("announce.dismiss")||!e.childElementCount?R:P(()=>{let t=new E;return t.pipe(N({hash:__md_get("__announce")})).subscribe(({hash:r})=>{var n;r&&r===((n=__md_get("__announce"))!=null?n:r)&&(e.hidden=!0,__md_set("__announce",r))}),us(e).pipe(w(r=>t.next(r)),C(()=>t.complete()),m(r=>H({ref:e},r)))})}function ps(e,{target$:t}){return t.pipe(m(r=>({hidden:r!==e})))}function Yo(e,t){let r=new E;return r.subscribe(({hidden:n})=>{e.hidden=n}),ps(e,t).pipe(w(n=>r.next(n)),C(()=>r.complete()),m(n=>H({ref:e},n)))}var ii=Ye(Br());function Gr(e){return M("div",{class:"md-tooltip",id:e},M("div",{class:"md-tooltip__inner md-typeset"}))}function Bo(e,t){if(t=t?`${t}_annotation_${e}`:void 0,t){let r=t?`#${t}`:void 0;return M("aside",{class:"md-annotation",tabIndex:0},Gr(t),M("a",{href:r,class:"md-annotation__index",tabIndex:-1},M("span",{"data-md-annotation-id":e})))}else return M("aside",{class:"md-annotation",tabIndex:0},Gr(t),M("span",{class:"md-annotation__index",tabIndex:-1},M("span",{"data-md-annotation-id":e})))}function Go(e){return M("button",{class:"md-clipboard md-icon",title:re("clipboard.copy"),"data-clipboard-target":`#${e} > code`})}function Jr(e,t){let r=t&2,n=t&1,o=Object.keys(e.terms).filter(a=>!e.terms[a]).reduce((a,c)=>[...a,M("del",null,c)," "],[]).slice(0,-1),i=new URL(e.location);Z("search.highlight")&&i.searchParams.set("h",Object.entries(e.terms).filter(([,a])=>a).reduce((a,[c])=>`${a} ${c}`.trim(),""));let{tags:s}=le();return M("a",{href:`${i}`,class:"md-search-result__link",tabIndex:-1},M("article",{class:["md-search-result__article",...r?["md-search-result__article--document"]:[]].join(" "),"data-md-score":e.score.toFixed(2)},r>0&&M("div",{class:"md-search-result__icon md-icon"}),M("h1",{class:"md-search-result__title"},e.title),n>0&&e.text.length>0&&M("p",{class:"md-search-result__teaser"},Po(e.text,320)),e.tags&&M("div",{class:"md-typeset"},e.tags.map(a=>{let c=a.replace(/<[^>]+>/g,""),f=s?c in s?`md-tag-icon md-tag-icon--${s[c]}`:"md-tag-icon":"";return M("span",{class:`md-tag ${f}`},a)})),n>0&&o.length>0&&M("p",{class:"md-search-result__terms"},re("search.result.term.missing"),": ",...o)))}function Jo(e){let t=e[0].score,r=[...e],n=r.findIndex(f=>!f.location.includes("#")),[o]=r.splice(n,1),i=r.findIndex(f=>f.scoreJr(f,1)),...a.length?[M("details",{class:"md-search-result__more"},M("summary",{tabIndex:-1},a.length>0&&a.length===1?re("search.result.more.one"):re("search.result.more.other",a.length)),...a.map(f=>Jr(f,1)))]:[]];return M("li",{class:"md-search-result__item"},c)}function Xo(e){return M("ul",{class:"md-source__facts"},Object.entries(e).map(([t,r])=>M("li",{class:`md-source__fact md-source__fact--${t}`},typeof r=="number"?lr(r):r)))}function Xr(e){let t=`tabbed-control tabbed-control--${e}`;return M("div",{class:t,hidden:!0},M("button",{class:"tabbed-button",tabIndex:-1}))}function Zo(e){return M("div",{class:"md-typeset__scrollwrap"},M("div",{class:"md-typeset__table"},e))}function ls(e){let t=le(),r=new URL(`../${e.version}/`,t.base);return M("li",{class:"md-version__item"},M("a",{href:`${r}`,class:"md-version__link"},e.title))}function ei(e,t){return M("div",{class:"md-version"},M("button",{class:"md-version__current","aria-label":re("select.version.title")},t.title),M("ul",{class:"md-version__list"},e.map(ls)))}function ms(e,t){let r=P(()=>Y([yo(e),pt(t)])).pipe(m(([{x:n,y:o},i])=>{let{width:s,height:a}=he(e);return{x:n-i.x+s/2,y:o-i.y+a/2}}));return nr(e).pipe(S(n=>r.pipe(m(o=>({active:n,offset:o})),oe(+!n||1/0))))}function ti(e,t,{target$:r}){let[n,o]=Array.from(e.children);return P(()=>{let i=new E,s=i.pipe(de(1));return i.subscribe({next({offset:a}){e.style.setProperty("--md-tooltip-x",`${a.x}px`),e.style.setProperty("--md-tooltip-y",`${a.y}px`)},complete(){e.style.removeProperty("--md-tooltip-x"),e.style.removeProperty("--md-tooltip-y")}}),fr(e).pipe(ee(s)).subscribe(a=>{e.toggleAttribute("data-md-visible",a)}),A(i.pipe(x(({active:a})=>a)),i.pipe(Re(250),x(({active:a})=>!a))).subscribe({next({active:a}){a?e.prepend(n):n.remove()},complete(){e.prepend(n)}}),i.pipe(Ae(16,xe)).subscribe(({active:a})=>{n.classList.toggle("md-tooltip--active",a)}),i.pipe(zr(125,xe),x(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:a})=>a)).subscribe({next(a){a?e.style.setProperty("--md-tooltip-0",`${-a}px`):e.style.removeProperty("--md-tooltip-0")},complete(){e.style.removeProperty("--md-tooltip-0")}}),v(o,"click").pipe(ee(s),x(a=>!(a.metaKey||a.ctrlKey))).subscribe(a=>a.preventDefault()),v(o,"mousedown").pipe(ee(s),ae(i)).subscribe(([a,{active:c}])=>{var f;if(a.button!==0||a.metaKey||a.ctrlKey)a.preventDefault();else if(c){a.preventDefault();let u=e.parentElement.closest(".md-annotation");u instanceof HTMLElement?u.focus():(f=Ie())==null||f.blur()}}),r.pipe(ee(s),x(a=>a===n),ke(125)).subscribe(()=>e.focus()),ms(e,t).pipe(w(a=>i.next(a)),C(()=>i.complete()),m(a=>H({ref:e},a)))})}function ds(e){let t=[];for(let r of Q(".c, .c1, .cm",e)){let n=[],o=document.createNodeIterator(r,NodeFilter.SHOW_TEXT);for(let i=o.nextNode();i;i=o.nextNode())n.push(i);for(let i of n){let s;for(;s=/(\(\d+\))(!)?/.exec(i.textContent);){let[,a,c]=s;if(typeof c=="undefined"){let f=i.splitText(s.index);i=f.splitText(a.length),t.push(f)}else{i.textContent=a,t.push(i);break}}}}return t}function ri(e,t){t.append(...Array.from(e.childNodes))}function ni(e,t,{target$:r,print$:n}){let o=t.closest("[id]"),i=o==null?void 0:o.id,s=new Map;for(let a of ds(t)){let[,c]=a.textContent.match(/\((\d+)\)/);pe(`li:nth-child(${c})`,e)&&(s.set(c,Bo(c,i)),a.replaceWith(s.get(c)))}return s.size===0?R:P(()=>{let a=new E,c=[];for(let[f,u]of s)c.push([K(".md-typeset",u),K(`li:nth-child(${f})`,e)]);return n.pipe(ee(a.pipe(de(1)))).subscribe(f=>{e.hidden=!f;for(let[u,p]of c)f?ri(u,p):ri(p,u)}),A(...[...s].map(([,f])=>ti(f,t,{target$:r}))).pipe(C(()=>a.complete()),ie())})}var hs=0;function ai(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return ai(t)}}function oi(e){return ve(e).pipe(m(({width:t})=>({scrollable:mt(e).width>t})),J("scrollable"))}function si(e,t){let{matches:r}=matchMedia("(hover)"),n=P(()=>{let o=new E;if(o.subscribe(({scrollable:s})=>{s&&r?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}),ii.default.isSupported()){let s=e.closest("pre");s.id=`__code_${++hs}`,s.insertBefore(Go(s.id),e)}let i=e.closest(".highlight");if(i instanceof HTMLElement){let s=ai(i);if(typeof s!="undefined"&&(i.classList.contains("annotate")||Z("content.code.annotate"))){let a=ni(s,e,t);return oi(e).pipe(w(c=>o.next(c)),C(()=>o.complete()),m(c=>H({ref:e},c)),et(ve(i).pipe(m(({width:c,height:f})=>c&&f),B(),S(c=>c?a:R))))}}return oi(e).pipe(w(s=>o.next(s)),C(()=>o.complete()),m(s=>H({ref:e},s)))});return Z("content.lazy")?fr(e).pipe(x(o=>o),oe(1),S(()=>n)):n}var ci=".node circle,.node ellipse,.node path,.node polygon,.node rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}marker{fill:var(--md-mermaid-edge-color)!important}.edgeLabel .label rect{fill:transparent}.label{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.label foreignObject{line-height:normal;overflow:visible}.label div .edgeLabel{color:var(--md-mermaid-label-fg-color)}.edgeLabel,.edgeLabel rect,.label div .edgeLabel{background-color:var(--md-mermaid-label-bg-color)}.edgeLabel,.edgeLabel rect{fill:var(--md-mermaid-label-bg-color);color:var(--md-mermaid-edge-color)}.edgePath .path,.flowchart-link{stroke:var(--md-mermaid-edge-color)}.edgePath .arrowheadPath{fill:var(--md-mermaid-edge-color);stroke:none}.cluster rect{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}.cluster span{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}defs #flowchart-circleEnd,defs #flowchart-circleStart,defs #flowchart-crossEnd,defs #flowchart-crossStart,defs #flowchart-pointEnd,defs #flowchart-pointStart{stroke:none}g.classGroup line,g.classGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.classGroup text{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.classLabel .box{fill:var(--md-mermaid-label-bg-color);background-color:var(--md-mermaid-label-bg-color);opacity:1}.classLabel .label{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node .divider{stroke:var(--md-mermaid-node-fg-color)}.relation{stroke:var(--md-mermaid-edge-color)}.cardinality{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.cardinality text{fill:inherit!important}defs #classDiagram-compositionEnd,defs #classDiagram-compositionStart,defs #classDiagram-dependencyEnd,defs #classDiagram-dependencyStart,defs #classDiagram-extensionEnd,defs #classDiagram-extensionStart{fill:var(--md-mermaid-edge-color)!important;stroke:var(--md-mermaid-edge-color)!important}defs #classDiagram-aggregationEnd,defs #classDiagram-aggregationStart{fill:var(--md-mermaid-label-bg-color)!important;stroke:var(--md-mermaid-edge-color)!important}g.stateGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.stateGroup .state-title{fill:var(--md-mermaid-label-fg-color)!important;font-family:var(--md-mermaid-font-family)}g.stateGroup .composit{fill:var(--md-mermaid-label-bg-color)}.nodeLabel{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node circle.state-end,.node circle.state-start,.start-state{fill:var(--md-mermaid-edge-color);stroke:none}.end-state-inner,.end-state-outer{fill:var(--md-mermaid-edge-color)}.end-state-inner,.node circle.state-end{stroke:var(--md-mermaid-label-bg-color)}.transition{stroke:var(--md-mermaid-edge-color)}[id^=state-fork] rect,[id^=state-join] rect{fill:var(--md-mermaid-edge-color)!important;stroke:none!important}.statediagram-cluster.statediagram-cluster .inner{fill:var(--md-default-bg-color)}.statediagram-cluster rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.statediagram-state rect.divider{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}defs #statediagram-barbEnd{stroke:var(--md-mermaid-edge-color)}.entityBox{fill:var(--md-mermaid-label-bg-color);stroke:var(--md-mermaid-node-fg-color)}.entityLabel{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.relationshipLabelBox{fill:var(--md-mermaid-label-bg-color);fill-opacity:1;background-color:var(--md-mermaid-label-bg-color);opacity:1}.relationshipLabel{fill:var(--md-mermaid-label-fg-color)}.relationshipLine{stroke:var(--md-mermaid-edge-color)}defs #ONE_OR_MORE_END *,defs #ONE_OR_MORE_START *,defs #ONLY_ONE_END *,defs #ONLY_ONE_START *,defs #ZERO_OR_MORE_END *,defs #ZERO_OR_MORE_START *,defs #ZERO_OR_ONE_END *,defs #ZERO_OR_ONE_START *{stroke:var(--md-mermaid-edge-color)!important}.actor,defs #ZERO_OR_MORE_END circle,defs #ZERO_OR_MORE_START circle{fill:var(--md-mermaid-label-bg-color)}.actor{stroke:var(--md-mermaid-node-fg-color)}text.actor>tspan{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}line{stroke:var(--md-default-fg-color--lighter)}.messageLine0,.messageLine1{stroke:var(--md-mermaid-edge-color)}.loopText>tspan,.messageText,.noteText>tspan{font-family:var(--md-mermaid-font-family)!important}#arrowhead path,.loopText>tspan,.messageText,.noteText>tspan{fill:var(--md-mermaid-edge-color);stroke:none}.loopLine{stroke:var(--md-mermaid-node-fg-color)}.labelBox,.loopLine{fill:var(--md-mermaid-node-bg-color)}.labelBox{stroke:none}.labelText,.labelText>span{fill:var(--md-mermaid-node-fg-color);font-family:var(--md-mermaid-font-family)}";var Zr,vs=0;function gs(){return typeof mermaid=="undefined"||mermaid instanceof Element?Do("https://unpkg.com/mermaid@9.1.7/dist/mermaid.min.js"):I(void 0)}function fi(e){return e.classList.remove("mermaid"),Zr||(Zr=gs().pipe(w(()=>mermaid.initialize({startOnLoad:!1,themeCSS:ci,sequence:{actorFontSize:"16px",messageFontSize:"16px",noteFontSize:"16px"}})),m(()=>{}),X(1))),Zr.subscribe(()=>{e.classList.add("mermaid");let t=`__mermaid_${vs++}`,r=M("div",{class:"mermaid"});mermaid.mermaidAPI.render(t,e.textContent,n=>{let o=r.attachShadow({mode:"closed"});o.innerHTML=n,e.replaceWith(r)})}),Zr.pipe(m(()=>({ref:e})))}function ys(e,{target$:t,print$:r}){let n=!0;return A(t.pipe(m(o=>o.closest("details:not([open])")),x(o=>e===o),m(()=>({action:"open",reveal:!0}))),r.pipe(x(o=>o||!n),w(()=>n=e.open),m(o=>({action:o?"open":"close"}))))}function ui(e,t){return P(()=>{let r=new E;return r.subscribe(({action:n,reveal:o})=>{e.toggleAttribute("open",n==="open"),o&&e.scrollIntoView()}),ys(e,t).pipe(w(n=>r.next(n)),C(()=>r.complete()),m(n=>H({ref:e},n)))})}var pi=M("table");function li(e){return e.replaceWith(pi),pi.replaceWith(Zo(e)),I({ref:e})}function xs(e){let t=Q(":scope > input",e),r=t.find(n=>n.checked)||t[0];return A(...t.map(n=>v(n,"change").pipe(m(()=>K(`label[for="${n.id}"]`))))).pipe(N(K(`label[for="${r.id}"]`)),m(n=>({active:n})))}function mi(e,{viewport$:t}){let r=Xr("prev");e.append(r);let n=Xr("next");e.append(n);let o=K(".tabbed-labels",e);return P(()=>{let i=new E,s=i.pipe(de(1));return Y([i,ve(e)]).pipe(Ae(1,xe),ee(s)).subscribe({next([{active:a},c]){let f=qe(a),{width:u}=he(a);e.style.setProperty("--md-indicator-x",`${f.x}px`),e.style.setProperty("--md-indicator-width",`${u}px`);let p=or(o);(f.xp.x+c.width)&&o.scrollTo({left:Math.max(0,f.x-16),behavior:"smooth"})},complete(){e.style.removeProperty("--md-indicator-x"),e.style.removeProperty("--md-indicator-width")}}),Y([pt(o),ve(o)]).pipe(ee(s)).subscribe(([a,c])=>{let f=mt(o);r.hidden=a.x<16,n.hidden=a.x>f.width-c.width-16}),A(v(r,"click").pipe(m(()=>-1)),v(n,"click").pipe(m(()=>1))).pipe(ee(s)).subscribe(a=>{let{width:c}=he(o);o.scrollBy({left:c*a,behavior:"smooth"})}),Z("content.tabs.link")&&i.pipe(He(1),ae(t)).subscribe(([{active:a},{offset:c}])=>{let f=a.innerText.trim();if(a.hasAttribute("data-md-switching"))a.removeAttribute("data-md-switching");else{let u=e.offsetTop-c.y;for(let l of Q("[data-tabs]"))for(let d of Q(":scope > input",l)){let h=K(`label[for="${d.id}"]`);if(h!==a&&h.innerText.trim()===f){h.setAttribute("data-md-switching",""),d.click();break}}window.scrollTo({top:e.offsetTop-u});let p=__md_get("__tabs")||[];__md_set("__tabs",[...new Set([f,...p])])}}),xs(e).pipe(w(a=>i.next(a)),C(()=>i.complete()),m(a=>H({ref:e},a)))}).pipe(Je(fe))}function di(e,{viewport$:t,target$:r,print$:n}){return A(...Q("pre:not(.mermaid) > code",e).map(o=>si(o,{target$:r,print$:n})),...Q("pre.mermaid",e).map(o=>fi(o)),...Q("table:not([class])",e).map(o=>li(o)),...Q("details",e).map(o=>ui(o,{target$:r,print$:n})),...Q("[data-tabs]",e).map(o=>mi(o,{viewport$:t})))}function ws(e,{alert$:t}){return t.pipe(S(r=>A(I(!0),I(!1).pipe(ke(2e3))).pipe(m(n=>({message:r,active:n})))))}function hi(e,t){let r=K(".md-typeset",e);return P(()=>{let n=new E;return n.subscribe(({message:o,active:i})=>{e.classList.toggle("md-dialog--active",i),r.textContent=o}),ws(e,t).pipe(w(o=>n.next(o)),C(()=>n.complete()),m(o=>H({ref:e},o)))})}function Es({viewport$:e}){if(!Z("header.autohide"))return I(!1);let t=e.pipe(m(({offset:{y:o}})=>o),Ce(2,1),m(([o,i])=>[oMath.abs(i-o.y)>100),m(([,[o]])=>o),B()),n=dt("search");return Y([e,n]).pipe(m(([{offset:o},i])=>o.y>400&&!i),B(),S(o=>o?r:I(!1)),N(!1))}function bi(e,t){return P(()=>Y([ve(e),Es(t)])).pipe(m(([{height:r},n])=>({height:r,hidden:n})),B((r,n)=>r.height===n.height&&r.hidden===n.hidden),X(1))}function vi(e,{header$:t,main$:r}){return P(()=>{let n=new E,o=n.pipe(de(1));return n.pipe(J("active"),Ze(t)).subscribe(([{active:i},{hidden:s}])=>{e.classList.toggle("md-header--shadow",i&&!s),e.hidden=s}),r.subscribe(n),t.pipe(ee(o),m(i=>H({ref:e},i)))})}function Ss(e,{viewport$:t,header$:r}){return dr(e,{viewport$:t,header$:r}).pipe(m(({offset:{y:n}})=>{let{height:o}=he(e);return{active:n>=o}}),J("active"))}function gi(e,t){return P(()=>{let r=new E;r.subscribe(({active:o})=>{e.classList.toggle("md-header__title--active",o)});let n=pe("article h1");return typeof n=="undefined"?R:Ss(n,t).pipe(w(o=>r.next(o)),C(()=>r.complete()),m(o=>H({ref:e},o)))})}function yi(e,{viewport$:t,header$:r}){let n=r.pipe(m(({height:i})=>i),B()),o=n.pipe(S(()=>ve(e).pipe(m(({height:i})=>({top:e.offsetTop,bottom:e.offsetTop+i})),J("bottom"))));return Y([n,o,t]).pipe(m(([i,{top:s,bottom:a},{offset:{y:c},size:{height:f}}])=>(f=Math.max(0,f-Math.max(0,s-c,i)-Math.max(0,f+c-a)),{offset:s-i,height:f,active:s-i<=c})),B((i,s)=>i.offset===s.offset&&i.height===s.height&&i.active===s.active))}function Os(e){let t=__md_get("__palette")||{index:e.findIndex(r=>matchMedia(r.getAttribute("data-md-color-media")).matches)};return I(...e).pipe(se(r=>v(r,"change").pipe(m(()=>r))),N(e[Math.max(0,t.index)]),m(r=>({index:e.indexOf(r),color:{scheme:r.getAttribute("data-md-color-scheme"),primary:r.getAttribute("data-md-color-primary"),accent:r.getAttribute("data-md-color-accent")}})),X(1))}function xi(e){return P(()=>{let t=new E;t.subscribe(n=>{document.body.setAttribute("data-md-color-switching","");for(let[o,i]of Object.entries(n.color))document.body.setAttribute(`data-md-color-${o}`,i);for(let o=0;o{document.body.removeAttribute("data-md-color-switching")});let r=Q("input",e);return Os(r).pipe(w(n=>t.next(n)),C(()=>t.complete()),m(n=>H({ref:e},n)))})}var en=Ye(Br());function _s(e){e.setAttribute("data-md-copying","");let t=e.innerText;return e.removeAttribute("data-md-copying"),t}function wi({alert$:e}){en.default.isSupported()&&new F(t=>{new en.default("[data-clipboard-target], [data-clipboard-text]",{text:r=>r.getAttribute("data-clipboard-text")||_s(K(r.getAttribute("data-clipboard-target")))}).on("success",r=>t.next(r))}).pipe(w(t=>{t.trigger.focus()}),m(()=>re("clipboard.copied"))).subscribe(e)}function Ts(e){if(e.length<2)return[""];let[t,r]=[...e].sort((o,i)=>o.length-i.length).map(o=>o.replace(/[^/]+$/,"")),n=0;if(t===r)n=t.length;else for(;t.charCodeAt(n)===r.charCodeAt(n);)n++;return e.map(o=>o.replace(t.slice(0,n),""))}function hr(e){let t=__md_get("__sitemap",sessionStorage,e);if(t)return I(t);{let r=le();return Uo(new URL("sitemap.xml",e||r.base)).pipe(m(n=>Ts(Q("loc",n).map(o=>o.textContent))),ce(()=>R),De([]),w(n=>__md_set("__sitemap",n,sessionStorage,e)))}}function Ei({document$:e,location$:t,viewport$:r}){let n=le();if(location.protocol==="file:")return;"scrollRestoration"in history&&(history.scrollRestoration="manual",v(window,"beforeunload").subscribe(()=>{history.scrollRestoration="auto"}));let o=pe("link[rel=icon]");typeof o!="undefined"&&(o.href=o.href);let i=hr().pipe(m(f=>f.map(u=>`${new URL(u,n.base)}`)),S(f=>v(document.body,"click").pipe(x(u=>!u.metaKey&&!u.ctrlKey),S(u=>{if(u.target instanceof Element){let p=u.target.closest("a");if(p&&!p.target){let l=new URL(p.href);if(l.search="",l.hash="",l.pathname!==location.pathname&&f.includes(l.toString()))return u.preventDefault(),I({url:new URL(p.href)})}}return Se}))),ie()),s=v(window,"popstate").pipe(x(f=>f.state!==null),m(f=>({url:new URL(location.href),offset:f.state})),ie());A(i,s).pipe(B((f,u)=>f.url.href===u.url.href),m(({url:f})=>f)).subscribe(t);let a=t.pipe(J("pathname"),S(f=>mr(f.href).pipe(ce(()=>(pr(f),Se)))),ie());i.pipe(ut(a)).subscribe(({url:f})=>{history.pushState({},"",`${f}`)});let c=new DOMParser;a.pipe(S(f=>f.text()),m(f=>c.parseFromString(f,"text/html"))).subscribe(e),e.pipe(He(1)).subscribe(f=>{for(let u of["title","link[rel=canonical]","meta[name=author]","meta[name=description]","[data-md-component=announce]","[data-md-component=container]","[data-md-component=header-topic]","[data-md-component=outdated]","[data-md-component=logo]","[data-md-component=skip]",...Z("navigation.tabs.sticky")?["[data-md-component=tabs]"]:[]]){let p=pe(u),l=pe(u,f);typeof p!="undefined"&&typeof l!="undefined"&&p.replaceWith(l)}}),e.pipe(He(1),m(()=>_e("container")),S(f=>Q("script",f)),Ir(f=>{let u=M("script");if(f.src){for(let p of f.getAttributeNames())u.setAttribute(p,f.getAttribute(p));return f.replaceWith(u),new F(p=>{u.onload=()=>p.complete()})}else return u.textContent=f.textContent,f.replaceWith(u),R})).subscribe(),A(i,s).pipe(ut(e)).subscribe(({url:f,offset:u})=>{f.hash&&!u?Io(f.hash):window.scrollTo(0,(u==null?void 0:u.y)||0)}),r.pipe(Mt(i),Re(250),J("offset")).subscribe(({offset:f})=>{history.replaceState(f,"")}),A(i,s).pipe(Ce(2,1),x(([f,u])=>f.url.pathname===u.url.pathname),m(([,f])=>f)).subscribe(({offset:f})=>{window.scrollTo(0,(f==null?void 0:f.y)||0)})}var As=Ye(tn());var Oi=Ye(tn());function rn(e,t){let r=new RegExp(e.separator,"img"),n=(o,i,s)=>`${i}${s}`;return o=>{o=o.replace(/[\s*+\-:~^]+/g," ").trim();let i=new RegExp(`(^|${e.separator})(${o.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(r,"|")})`,"img");return s=>(t?(0,Oi.default)(s):s).replace(i,n).replace(/<\/mark>(\s+)]*>/img,"$1")}}function _i(e){return e.split(/"([^"]+)"/g).map((t,r)=>r&1?t.replace(/^\b|^(?![^\x00-\x7F]|$)|\s+/g," +"):t).join("").replace(/"|(?:^|\s+)[*+\-:^~]+(?=\s+|$)/g,"").trim()}function bt(e){return e.type===1}function Ti(e){return e.type===2}function vt(e){return e.type===3}function Rs({config:e,docs:t}){e.lang.length===1&&e.lang[0]==="en"&&(e.lang=[re("search.config.lang")]),e.separator==="[\\s\\-]+"&&(e.separator=re("search.config.separator"));let n={pipeline:re("search.config.pipeline").split(/\s*,\s*/).filter(Boolean),suggestions:Z("search.suggest")};return{config:e,docs:t,options:n}}function Mi(e,t){let r=le(),n=new Worker(e),o=new E,i=Ko(n,{tx$:o}).pipe(m(s=>{if(vt(s))for(let a of s.data.items)for(let c of a)c.location=`${new URL(c.location,r.base)}`;return s}),ie());return ue(t).pipe(m(s=>({type:0,data:Rs(s)}))).subscribe(o.next.bind(o)),{tx$:o,rx$:i}}function Li({document$:e}){let t=le(),r=je(new URL("../versions.json",t.base)).pipe(ce(()=>R)),n=r.pipe(m(o=>{let[,i]=t.base.match(/([^/]+)\/?$/);return o.find(({version:s,aliases:a})=>s===i||a.includes(i))||o[0]}));r.pipe(m(o=>new Map(o.map(i=>[`${new URL(`../${i.version}/`,t.base)}`,i]))),S(o=>v(document.body,"click").pipe(x(i=>!i.metaKey&&!i.ctrlKey),ae(n),S(([i,s])=>{if(i.target instanceof Element){let a=i.target.closest("a");if(a&&!a.target&&o.has(a.href)){let c=a.href;return!i.target.closest(".md-version")&&o.get(c)===s?R:(i.preventDefault(),I(c))}}return R}),S(i=>{let{version:s}=o.get(i);return hr(new URL(i)).pipe(m(a=>{let f=Oe().href.replace(t.base,"");return a.includes(f.split("#")[0])?new URL(`../${s}/${f}`,t.base):new URL(i)}))})))).subscribe(o=>pr(o)),Y([r,n]).subscribe(([o,i])=>{K(".md-header__topic").appendChild(ei(o,i))}),e.pipe(S(()=>n)).subscribe(o=>{var s;let i=__md_get("__outdated",sessionStorage);if(i===null){let a=((s=t.version)==null?void 0:s.default)||"latest";i=!o.aliases.includes(a),__md_set("__outdated",i,sessionStorage)}if(i)for(let a of te("outdated"))a.hidden=!1})}function ks(e,{rx$:t}){let r=(__search==null?void 0:__search.transform)||_i,{searchParams:n}=Oe();n.has("q")&&Ke("search",!0);let o=t.pipe(x(bt),oe(1),m(()=>n.get("q")||""));dt("search").pipe(x(a=>!a),oe(1)).subscribe(()=>{let a=new URL(location.href);a.searchParams.delete("q"),history.replaceState({},"",`${a}`)}),o.subscribe(a=>{a&&(e.value=a,e.focus())});let i=nr(e),s=A(v(e,"keyup"),v(e,"focus").pipe(ke(1)),o).pipe(m(()=>r(e.value)),N(""),B());return Y([s,i]).pipe(m(([a,c])=>({value:a,focus:c})),X(1))}function Ai(e,{tx$:t,rx$:r}){let n=new E,o=n.pipe(de(1));return n.pipe(J("value"),m(({value:i})=>({type:2,data:i}))).subscribe(t.next.bind(t)),n.pipe(J("focus")).subscribe(({focus:i})=>{i?(Ke("search",i),e.placeholder=""):e.placeholder=re("search.placeholder")}),v(e.form,"reset").pipe(ee(o)).subscribe(()=>e.focus()),ks(e,{tx$:t,rx$:r}).pipe(w(i=>n.next(i)),C(()=>n.complete()),m(i=>H({ref:e},i)),ie())}function Ci(e,{rx$:t},{query$:r}){let n=new E,o=Ao(e.parentElement).pipe(x(Boolean)),i=K(":scope > :first-child",e),s=K(":scope > :last-child",e),a=t.pipe(x(bt),oe(1));return n.pipe(ae(r),Mt(a)).subscribe(([{items:f},{value:u}])=>{if(u)switch(f.length){case 0:i.textContent=re("search.result.none");break;case 1:i.textContent=re("search.result.one");break;default:i.textContent=re("search.result.other",lr(f.length))}else i.textContent=re("search.result.placeholder")}),n.pipe(w(()=>s.innerHTML=""),S(({items:f})=>A(I(...f.slice(0,10)),I(...f.slice(10)).pipe(Ce(4),Nr(o),S(([u])=>u))))).subscribe(f=>s.appendChild(Jo(f))),t.pipe(x(vt),m(({data:f})=>f)).pipe(w(f=>n.next(f)),C(()=>n.complete()),m(f=>H({ref:e},f)))}function Hs(e,{query$:t}){return t.pipe(m(({value:r})=>{let n=Oe();return n.hash="",n.searchParams.delete("h"),n.searchParams.set("q",r),{url:n}}))}function Ri(e,t){let r=new E;return r.subscribe(({url:n})=>{e.setAttribute("data-clipboard-text",e.href),e.href=`${n}`}),v(e,"click").subscribe(n=>n.preventDefault()),Hs(e,t).pipe(w(n=>r.next(n)),C(()=>r.complete()),m(n=>H({ref:e},n)))}function ki(e,{rx$:t},{keyboard$:r}){let n=new E,o=_e("search-query"),i=A(v(o,"keydown"),v(o,"focus")).pipe(Le(fe),m(()=>o.value),B());return n.pipe(Ze(i),m(([{suggestions:a},c])=>{let f=c.split(/([\s-]+)/);if((a==null?void 0:a.length)&&f[f.length-1]){let u=a[a.length-1];u.startsWith(f[f.length-1])&&(f[f.length-1]=u)}else f.length=0;return f})).subscribe(a=>e.innerHTML=a.join("").replace(/\s/g," ")),r.pipe(x(({mode:a})=>a==="search")).subscribe(a=>{switch(a.type){case"ArrowRight":e.innerText.length&&o.selectionStart===o.value.length&&(o.value=e.innerText);break}}),t.pipe(x(vt),m(({data:a})=>a)).pipe(w(a=>n.next(a)),C(()=>n.complete()),m(()=>({ref:e})))}function Hi(e,{index$:t,keyboard$:r}){let n=le();try{let o=(__search==null?void 0:__search.worker)||n.search,i=Mi(o,t),s=_e("search-query",e),a=_e("search-result",e),{tx$:c,rx$:f}=i;c.pipe(x(Ti),ut(f.pipe(x(bt))),oe(1)).subscribe(c.next.bind(c)),r.pipe(x(({mode:l})=>l==="search")).subscribe(l=>{let d=Ie();switch(l.type){case"Enter":if(d===s){let h=new Map;for(let b of Q(":first-child [href]",a)){let U=b.firstElementChild;h.set(b,parseFloat(U.getAttribute("data-md-score")))}if(h.size){let[[b]]=[...h].sort(([,U],[,G])=>G-U);b.click()}l.claim()}break;case"Escape":case"Tab":Ke("search",!1),s.blur();break;case"ArrowUp":case"ArrowDown":if(typeof d=="undefined")s.focus();else{let h=[s,...Q(":not(details) > [href], summary, details[open] [href]",a)],b=Math.max(0,(Math.max(0,h.indexOf(d))+h.length+(l.type==="ArrowUp"?-1:1))%h.length);h[b].focus()}l.claim();break;default:s!==Ie()&&s.focus()}}),r.pipe(x(({mode:l})=>l==="global")).subscribe(l=>{switch(l.type){case"f":case"s":case"/":s.focus(),s.select(),l.claim();break}});let u=Ai(s,i),p=Ci(a,i,{query$:u});return A(u,p).pipe(et(...te("search-share",e).map(l=>Ri(l,{query$:u})),...te("search-suggest",e).map(l=>ki(l,i,{keyboard$:r}))))}catch(o){return e.hidden=!0,Se}}function Pi(e,{index$:t,location$:r}){return Y([t,r.pipe(N(Oe()),x(n=>!!n.searchParams.get("h")))]).pipe(m(([n,o])=>rn(n.config,!0)(o.searchParams.get("h"))),m(n=>{var s;let o=new Map,i=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(let a=i.nextNode();a;a=i.nextNode())if((s=a.parentElement)!=null&&s.offsetHeight){let c=a.textContent,f=n(c);f.length>c.length&&o.set(a,f)}for(let[a,c]of o){let{childNodes:f}=M("span",null,c);a.replaceWith(...Array.from(f))}return{ref:e,nodes:o}}))}function Ps(e,{viewport$:t,main$:r}){let n=e.parentElement,o=n.offsetTop-n.parentElement.offsetTop;return Y([r,t]).pipe(m(([{offset:i,height:s},{offset:{y:a}}])=>(s=s+Math.min(o,Math.max(0,a-i))-o,{height:s,locked:a>=i+o})),B((i,s)=>i.height===s.height&&i.locked===s.locked))}function nn(e,n){var o=n,{header$:t}=o,r=un(o,["header$"]);let i=K(".md-sidebar__scrollwrap",e),{y:s}=qe(i);return P(()=>{let a=new E;return a.pipe(Ae(0,xe),ae(t)).subscribe({next([{height:c},{height:f}]){i.style.height=`${c-2*s}px`,e.style.top=`${f}px`},complete(){i.style.height="",e.style.top=""}}),a.pipe(Le(xe),oe(1)).subscribe(()=>{for(let c of Q(".md-nav__link--active[href]",e)){let f=cr(c);if(typeof f!="undefined"){let u=c.offsetTop-f.offsetTop,{height:p}=he(f);f.scrollTo({top:u-p/2})}}}),Ps(e,r).pipe(w(c=>a.next(c)),C(()=>a.complete()),m(c=>H({ref:e},c)))})}function $i(e,t){if(typeof t!="undefined"){let r=`https://api.github.com/repos/${e}/${t}`;return _t(je(`${r}/releases/latest`).pipe(ce(()=>R),m(n=>({version:n.tag_name})),De({})),je(r).pipe(ce(()=>R),m(n=>({stars:n.stargazers_count,forks:n.forks_count})),De({}))).pipe(m(([n,o])=>H(H({},n),o)))}else{let r=`https://api.github.com/users/${e}`;return je(r).pipe(m(n=>({repositories:n.public_repos})),De({}))}}function Ii(e,t){let r=`https://${e}/api/v4/projects/${encodeURIComponent(t)}`;return je(r).pipe(ce(()=>R),m(({star_count:n,forks_count:o})=>({stars:n,forks:o})),De({}))}function ji(e){let t=e.match(/^.+github\.com\/([^/]+)\/?([^/]+)?/i);if(t){let[,r,n]=t;return $i(r,n)}if(t=e.match(/^.+?([^/]*gitlab[^/]+)\/(.+?)\/?$/i),t){let[,r,n]=t;return Ii(r,n)}return R}var $s;function Is(e){return $s||($s=P(()=>{let t=__md_get("__source",sessionStorage);if(t)return I(t);if(te("consent").length){let n=__md_get("__consent");if(!(n&&n.github))return R}return ji(e.href).pipe(w(n=>__md_set("__source",n,sessionStorage)))}).pipe(ce(()=>R),x(t=>Object.keys(t).length>0),m(t=>({facts:t})),X(1)))}function Fi(e){let t=K(":scope > :last-child",e);return P(()=>{let r=new E;return r.subscribe(({facts:n})=>{t.appendChild(Xo(n)),t.classList.add("md-source__repository--active")}),Is(e).pipe(w(n=>r.next(n)),C(()=>r.complete()),m(n=>H({ref:e},n)))})}function js(e,{viewport$:t,header$:r}){return ve(document.body).pipe(S(()=>dr(e,{header$:r,viewport$:t})),m(({offset:{y:n}})=>({hidden:n>=10})),J("hidden"))}function Ui(e,t){return P(()=>{let r=new E;return r.subscribe({next({hidden:n}){e.hidden=n},complete(){e.hidden=!1}}),(Z("navigation.tabs.sticky")?I({hidden:!1}):js(e,t)).pipe(w(n=>r.next(n)),C(()=>r.complete()),m(n=>H({ref:e},n)))})}function Fs(e,{viewport$:t,header$:r}){let n=new Map,o=Q("[href^=\\#]",e);for(let a of o){let c=decodeURIComponent(a.hash.substring(1)),f=pe(`[id="${c}"]`);typeof f!="undefined"&&n.set(a,f)}let i=r.pipe(J("height"),m(({height:a})=>{let c=_e("main"),f=K(":scope > :first-child",c);return a+.8*(f.offsetTop-c.offsetTop)}),ie());return ve(document.body).pipe(J("height"),S(a=>P(()=>{let c=[];return I([...n].reduce((f,[u,p])=>{for(;c.length&&n.get(c[c.length-1]).tagName>=p.tagName;)c.pop();let l=p.offsetTop;for(;!l&&p.parentElement;)p=p.parentElement,l=p.offsetTop;return f.set([...c=[...c,u]].reverse(),l)},new Map))}).pipe(m(c=>new Map([...c].sort(([,f],[,u])=>f-u))),Ze(i),S(([c,f])=>t.pipe(Ur(([u,p],{offset:{y:l},size:d})=>{let h=l+d.height>=Math.floor(a.height);for(;p.length;){let[,b]=p[0];if(b-f=l&&!h)p=[u.pop(),...p];else break}return[u,p]},[[],[...c]]),B((u,p)=>u[0]===p[0]&&u[1]===p[1])))))).pipe(m(([a,c])=>({prev:a.map(([f])=>f),next:c.map(([f])=>f)})),N({prev:[],next:[]}),Ce(2,1),m(([a,c])=>a.prev.length{let o=new E,i=o.pipe(de(1));if(o.subscribe(({prev:s,next:a})=>{for(let[c]of a)c.classList.remove("md-nav__link--passed"),c.classList.remove("md-nav__link--active");for(let[c,[f]]of s.entries())f.classList.add("md-nav__link--passed"),f.classList.toggle("md-nav__link--active",c===s.length-1)}),Z("toc.follow")){let s=A(t.pipe(Re(1),m(()=>{})),t.pipe(Re(250),m(()=>"smooth")));o.pipe(x(({prev:a})=>a.length>0),ae(s)).subscribe(([{prev:a},c])=>{let[f]=a[a.length-1];if(f.offsetHeight){let u=cr(f);if(typeof u!="undefined"){let p=f.offsetTop-u.offsetTop,{height:l}=he(u);u.scrollTo({top:p-l/2,behavior:c})}}})}return Z("navigation.tracking")&&t.pipe(ee(i),J("offset"),Re(250),He(1),ee(n.pipe(He(1))),Tt({delay:250}),ae(o)).subscribe(([,{prev:s}])=>{let a=Oe(),c=s[s.length-1];if(c&&c.length){let[f]=c,{hash:u}=new URL(f.href);a.hash!==u&&(a.hash=u,history.replaceState({},"",`${a}`))}else a.hash="",history.replaceState({},"",`${a}`)}),Fs(e,{viewport$:t,header$:r}).pipe(w(s=>o.next(s)),C(()=>o.complete()),m(s=>H({ref:e},s)))})}function Us(e,{viewport$:t,main$:r,target$:n}){let o=t.pipe(m(({offset:{y:s}})=>s),Ce(2,1),m(([s,a])=>s>a&&a>0),B()),i=r.pipe(m(({active:s})=>s));return Y([i,o]).pipe(m(([s,a])=>!(s&&a)),B(),ee(n.pipe(He(1))),Fr(!0),Tt({delay:250}),m(s=>({hidden:s})))}function Wi(e,{viewport$:t,header$:r,main$:n,target$:o}){let i=new E,s=i.pipe(de(1));return i.subscribe({next({hidden:a}){e.hidden=a,a?(e.setAttribute("tabindex","-1"),e.blur()):e.removeAttribute("tabindex")},complete(){e.style.top="",e.hidden=!0,e.removeAttribute("tabindex")}}),r.pipe(ee(s),J("height")).subscribe(({height:a})=>{e.style.top=`${a+16}px`}),Us(e,{viewport$:t,main$:n,target$:o}).pipe(w(a=>i.next(a)),C(()=>i.complete()),m(a=>H({ref:e},a)))}function Vi({document$:e,tablet$:t}){e.pipe(S(()=>Q(".md-toggle--indeterminate, [data-md-state=indeterminate]")),w(r=>{r.indeterminate=!0,r.checked=!1}),se(r=>v(r,"change").pipe(Wr(()=>r.classList.contains("md-toggle--indeterminate")),m(()=>r))),ae(t)).subscribe(([r,n])=>{r.classList.remove("md-toggle--indeterminate"),n&&(r.checked=!1)})}function Ds(){return/(iPad|iPhone|iPod)/.test(navigator.userAgent)}function zi({document$:e}){e.pipe(S(()=>Q("[data-md-scrollfix]")),w(t=>t.removeAttribute("data-md-scrollfix")),x(Ds),se(t=>v(t,"touchstart").pipe(m(()=>t)))).subscribe(t=>{let r=t.scrollTop;r===0?t.scrollTop=1:r+t.offsetHeight===t.scrollHeight&&(t.scrollTop=r-1)})}function Ni({viewport$:e,tablet$:t}){Y([dt("search"),t]).pipe(m(([r,n])=>r&&!n),S(r=>I(r).pipe(ke(r?400:100))),ae(e)).subscribe(([r,{offset:{y:n}}])=>{if(r)document.body.setAttribute("data-md-scrolllock",""),document.body.style.top=`-${n}px`;else{let o=-1*parseInt(document.body.style.top,10);document.body.removeAttribute("data-md-scrolllock"),document.body.style.top="",o&&window.scrollTo(0,o)}})}Object.entries||(Object.entries=function(e){let t=[];for(let r of Object.keys(e))t.push([r,e[r]]);return t});Object.values||(Object.values=function(e){let t=[];for(let r of Object.keys(e))t.push(e[r]);return t});typeof Element!="undefined"&&(Element.prototype.scrollTo||(Element.prototype.scrollTo=function(e,t){typeof e=="object"?(this.scrollLeft=e.left,this.scrollTop=e.top):(this.scrollLeft=e,this.scrollTop=t)}),Element.prototype.replaceWith||(Element.prototype.replaceWith=function(...e){let t=this.parentNode;if(t){e.length===0&&t.removeChild(this);for(let r=e.length-1;r>=0;r--){let n=e[r];typeof n=="string"?n=document.createTextNode(n):n.parentNode&&n.parentNode.removeChild(n),r?t.insertBefore(this.previousSibling,n):t.replaceChild(n,this)}}}));document.documentElement.classList.remove("no-js");document.documentElement.classList.add("js");var tt=go(),vr=ko(),gt=jo(),on=Ro(),we=qo(),gr=Kr("(min-width: 960px)"),Ki=Kr("(min-width: 1220px)"),Qi=Fo(),Yi=le(),Bi=document.forms.namedItem("search")?(__search==null?void 0:__search.index)||je(new URL("search/search_index.json",Yi.base)):Se,an=new E;wi({alert$:an});Z("navigation.instant")&&Ei({document$:tt,location$:vr,viewport$:we});var qi;((qi=Yi.version)==null?void 0:qi.provider)==="mike"&&Li({document$:tt});A(vr,gt).pipe(ke(125)).subscribe(()=>{Ke("drawer",!1),Ke("search",!1)});on.pipe(x(({mode:e})=>e==="global")).subscribe(e=>{switch(e.type){case"p":case",":let t=pe("[href][rel=prev]");typeof t!="undefined"&&t.click();break;case"n":case".":let r=pe("[href][rel=next]");typeof r!="undefined"&&r.click();break}});Vi({document$:tt,tablet$:gr});zi({document$:tt});Ni({viewport$:we,tablet$:gr});var Qe=bi(_e("header"),{viewport$:we}),br=tt.pipe(m(()=>_e("main")),S(e=>yi(e,{viewport$:we,header$:Qe})),X(1)),Ws=A(...te("consent").map(e=>Yo(e,{target$:gt})),...te("dialog").map(e=>hi(e,{alert$:an})),...te("header").map(e=>vi(e,{viewport$:we,header$:Qe,main$:br})),...te("palette").map(e=>xi(e)),...te("search").map(e=>Hi(e,{index$:Bi,keyboard$:on})),...te("source").map(e=>Fi(e))),Vs=P(()=>A(...te("announce").map(e=>Qo(e)),...te("content").map(e=>di(e,{viewport$:we,target$:gt,print$:Qi})),...te("content").map(e=>Z("search.highlight")?Pi(e,{index$:Bi,location$:vr}):R),...te("header-title").map(e=>gi(e,{viewport$:we,header$:Qe})),...te("sidebar").map(e=>e.getAttribute("data-md-type")==="navigation"?Qr(Ki,()=>nn(e,{viewport$:we,header$:Qe,main$:br})):Qr(gr,()=>nn(e,{viewport$:we,header$:Qe,main$:br}))),...te("tabs").map(e=>Ui(e,{viewport$:we,header$:Qe})),...te("toc").map(e=>Di(e,{viewport$:we,header$:Qe,target$:gt})),...te("top").map(e=>Wi(e,{viewport$:we,header$:Qe,main$:br,target$:gt})))),Gi=tt.pipe(S(()=>Vs),et(Ws),X(1));Gi.subscribe();window.document$=tt;window.location$=vr;window.target$=gt;window.keyboard$=on;window.viewport$=we;window.tablet$=gr;window.screen$=Ki;window.print$=Qi;window.alert$=an;window.component$=Gi;})(); +//# sourceMappingURL=bundle.8492ddcf.min.js.map + diff --git a/5.x/assets/javascripts/bundle.8492ddcf.min.js.map b/5.x/assets/javascripts/bundle.8492ddcf.min.js.map new file mode 100644 index 000000000..94913558b --- /dev/null +++ b/5.x/assets/javascripts/bundle.8492ddcf.min.js.map @@ -0,0 +1,8 @@ +{ + "version": 3, + "sources": ["node_modules/focus-visible/dist/focus-visible.js", "node_modules/url-polyfill/url-polyfill.js", "node_modules/rxjs/node_modules/tslib/tslib.js", "node_modules/clipboard/dist/clipboard.js", "node_modules/escape-html/index.js", "node_modules/array-flat-polyfill/index.mjs", "src/assets/javascripts/bundle.ts", "node_modules/unfetch/polyfill/index.js", "node_modules/rxjs/node_modules/tslib/modules/index.js", "node_modules/rxjs/src/internal/util/isFunction.ts", "node_modules/rxjs/src/internal/util/createErrorClass.ts", "node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "node_modules/rxjs/src/internal/util/arrRemove.ts", "node_modules/rxjs/src/internal/Subscription.ts", "node_modules/rxjs/src/internal/config.ts", "node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts", "node_modules/rxjs/src/internal/util/reportUnhandledError.ts", "node_modules/rxjs/src/internal/util/noop.ts", "node_modules/rxjs/src/internal/NotificationFactories.ts", "node_modules/rxjs/src/internal/util/errorContext.ts", "node_modules/rxjs/src/internal/Subscriber.ts", "node_modules/rxjs/src/internal/symbol/observable.ts", "node_modules/rxjs/src/internal/util/identity.ts", "node_modules/rxjs/src/internal/util/pipe.ts", "node_modules/rxjs/src/internal/Observable.ts", "node_modules/rxjs/src/internal/util/lift.ts", "node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts", "node_modules/rxjs/src/internal/scheduler/animationFrameProvider.ts", "node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts", "node_modules/rxjs/src/internal/Subject.ts", "node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts", "node_modules/rxjs/src/internal/ReplaySubject.ts", "node_modules/rxjs/src/internal/scheduler/Action.ts", "node_modules/rxjs/src/internal/scheduler/intervalProvider.ts", "node_modules/rxjs/src/internal/scheduler/AsyncAction.ts", "node_modules/rxjs/src/internal/Scheduler.ts", "node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts", "node_modules/rxjs/src/internal/scheduler/async.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts", "node_modules/rxjs/src/internal/scheduler/animationFrame.ts", "node_modules/rxjs/src/internal/observable/empty.ts", "node_modules/rxjs/src/internal/util/isScheduler.ts", "node_modules/rxjs/src/internal/util/args.ts", "node_modules/rxjs/src/internal/util/isArrayLike.ts", "node_modules/rxjs/src/internal/util/isPromise.ts", "node_modules/rxjs/src/internal/util/isInteropObservable.ts", "node_modules/rxjs/src/internal/util/isAsyncIterable.ts", "node_modules/rxjs/src/internal/util/throwUnobservableError.ts", "node_modules/rxjs/src/internal/symbol/iterator.ts", "node_modules/rxjs/src/internal/util/isIterable.ts", "node_modules/rxjs/src/internal/util/isReadableStreamLike.ts", "node_modules/rxjs/src/internal/observable/innerFrom.ts", "node_modules/rxjs/src/internal/util/executeSchedule.ts", "node_modules/rxjs/src/internal/operators/observeOn.ts", "node_modules/rxjs/src/internal/operators/subscribeOn.ts", "node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts", "node_modules/rxjs/src/internal/scheduled/schedulePromise.ts", "node_modules/rxjs/src/internal/scheduled/scheduleArray.ts", "node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts", "node_modules/rxjs/src/internal/scheduled/scheduled.ts", "node_modules/rxjs/src/internal/observable/from.ts", "node_modules/rxjs/src/internal/observable/of.ts", "node_modules/rxjs/src/internal/observable/throwError.ts", "node_modules/rxjs/src/internal/util/isDate.ts", "node_modules/rxjs/src/internal/operators/map.ts", "node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts", "node_modules/rxjs/src/internal/util/argsArgArrayOrObject.ts", "node_modules/rxjs/src/internal/util/createObject.ts", "node_modules/rxjs/src/internal/observable/combineLatest.ts", "node_modules/rxjs/src/internal/operators/mergeInternals.ts", "node_modules/rxjs/src/internal/operators/mergeMap.ts", "node_modules/rxjs/src/internal/operators/mergeAll.ts", "node_modules/rxjs/src/internal/operators/concatAll.ts", "node_modules/rxjs/src/internal/observable/concat.ts", "node_modules/rxjs/src/internal/observable/defer.ts", "node_modules/rxjs/src/internal/observable/fromEvent.ts", "node_modules/rxjs/src/internal/observable/fromEventPattern.ts", "node_modules/rxjs/src/internal/observable/timer.ts", "node_modules/rxjs/src/internal/observable/merge.ts", "node_modules/rxjs/src/internal/observable/never.ts", "node_modules/rxjs/src/internal/util/argsOrArgArray.ts", "node_modules/rxjs/src/internal/operators/filter.ts", "node_modules/rxjs/src/internal/observable/zip.ts", "node_modules/rxjs/src/internal/operators/audit.ts", "node_modules/rxjs/src/internal/operators/auditTime.ts", "node_modules/rxjs/src/internal/operators/bufferCount.ts", "node_modules/rxjs/src/internal/operators/catchError.ts", "node_modules/rxjs/src/internal/operators/scanInternals.ts", "node_modules/rxjs/src/internal/operators/combineLatest.ts", "node_modules/rxjs/src/internal/operators/combineLatestWith.ts", "node_modules/rxjs/src/internal/operators/concatMap.ts", "node_modules/rxjs/src/internal/operators/debounceTime.ts", "node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts", "node_modules/rxjs/src/internal/operators/take.ts", "node_modules/rxjs/src/internal/operators/ignoreElements.ts", "node_modules/rxjs/src/internal/operators/mapTo.ts", "node_modules/rxjs/src/internal/operators/delayWhen.ts", "node_modules/rxjs/src/internal/operators/delay.ts", "node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts", "node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts", "node_modules/rxjs/src/internal/operators/endWith.ts", "node_modules/rxjs/src/internal/operators/finalize.ts", "node_modules/rxjs/src/internal/operators/takeLast.ts", "node_modules/rxjs/src/internal/operators/merge.ts", "node_modules/rxjs/src/internal/operators/mergeWith.ts", "node_modules/rxjs/src/internal/operators/repeat.ts", "node_modules/rxjs/src/internal/operators/sample.ts", "node_modules/rxjs/src/internal/operators/scan.ts", "node_modules/rxjs/src/internal/operators/share.ts", "node_modules/rxjs/src/internal/operators/shareReplay.ts", "node_modules/rxjs/src/internal/operators/skip.ts", "node_modules/rxjs/src/internal/operators/skipUntil.ts", "node_modules/rxjs/src/internal/operators/startWith.ts", "node_modules/rxjs/src/internal/operators/switchMap.ts", "node_modules/rxjs/src/internal/operators/takeUntil.ts", "node_modules/rxjs/src/internal/operators/takeWhile.ts", "node_modules/rxjs/src/internal/operators/tap.ts", "node_modules/rxjs/src/internal/operators/throttle.ts", "node_modules/rxjs/src/internal/operators/throttleTime.ts", "node_modules/rxjs/src/internal/operators/withLatestFrom.ts", "node_modules/rxjs/src/internal/operators/zip.ts", "node_modules/rxjs/src/internal/operators/zipWith.ts", "src/assets/javascripts/browser/document/index.ts", "src/assets/javascripts/browser/element/_/index.ts", "src/assets/javascripts/browser/element/focus/index.ts", "src/assets/javascripts/browser/element/offset/_/index.ts", "src/assets/javascripts/browser/element/offset/content/index.ts", "node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js", "src/assets/javascripts/browser/element/size/_/index.ts", "src/assets/javascripts/browser/element/size/content/index.ts", "src/assets/javascripts/browser/element/visibility/index.ts", "src/assets/javascripts/browser/toggle/index.ts", "src/assets/javascripts/browser/keyboard/index.ts", "src/assets/javascripts/browser/location/_/index.ts", "src/assets/javascripts/utilities/h/index.ts", "src/assets/javascripts/utilities/string/index.ts", "src/assets/javascripts/browser/location/hash/index.ts", "src/assets/javascripts/browser/media/index.ts", "src/assets/javascripts/browser/request/index.ts", "src/assets/javascripts/browser/script/index.ts", "src/assets/javascripts/browser/viewport/offset/index.ts", "src/assets/javascripts/browser/viewport/size/index.ts", "src/assets/javascripts/browser/viewport/_/index.ts", "src/assets/javascripts/browser/viewport/at/index.ts", "src/assets/javascripts/browser/worker/index.ts", "src/assets/javascripts/_/index.ts", "src/assets/javascripts/components/_/index.ts", "src/assets/javascripts/components/announce/index.ts", "src/assets/javascripts/components/consent/index.ts", "src/assets/javascripts/components/content/code/_/index.ts", "src/assets/javascripts/templates/tooltip/index.tsx", "src/assets/javascripts/templates/annotation/index.tsx", "src/assets/javascripts/templates/clipboard/index.tsx", "src/assets/javascripts/templates/search/index.tsx", "src/assets/javascripts/templates/source/index.tsx", "src/assets/javascripts/templates/tabbed/index.tsx", "src/assets/javascripts/templates/table/index.tsx", "src/assets/javascripts/templates/version/index.tsx", "src/assets/javascripts/components/content/annotation/_/index.ts", "src/assets/javascripts/components/content/annotation/list/index.ts", "src/assets/javascripts/components/content/code/mermaid/index.ts", "src/assets/javascripts/components/content/details/index.ts", "src/assets/javascripts/components/content/table/index.ts", "src/assets/javascripts/components/content/tabs/index.ts", "src/assets/javascripts/components/content/_/index.ts", "src/assets/javascripts/components/dialog/index.ts", "src/assets/javascripts/components/header/_/index.ts", "src/assets/javascripts/components/header/title/index.ts", "src/assets/javascripts/components/main/index.ts", "src/assets/javascripts/components/palette/index.ts", "src/assets/javascripts/integrations/clipboard/index.ts", "src/assets/javascripts/integrations/sitemap/index.ts", "src/assets/javascripts/integrations/instant/index.ts", "src/assets/javascripts/integrations/search/document/index.ts", "src/assets/javascripts/integrations/search/highlighter/index.ts", "src/assets/javascripts/integrations/search/query/transform/index.ts", "src/assets/javascripts/integrations/search/worker/message/index.ts", "src/assets/javascripts/integrations/search/worker/_/index.ts", "src/assets/javascripts/integrations/version/index.ts", "src/assets/javascripts/components/search/query/index.ts", "src/assets/javascripts/components/search/result/index.ts", "src/assets/javascripts/components/search/share/index.ts", "src/assets/javascripts/components/search/suggest/index.ts", "src/assets/javascripts/components/search/_/index.ts", "src/assets/javascripts/components/search/highlight/index.ts", "src/assets/javascripts/components/sidebar/index.ts", "src/assets/javascripts/components/source/facts/github/index.ts", "src/assets/javascripts/components/source/facts/gitlab/index.ts", "src/assets/javascripts/components/source/facts/_/index.ts", "src/assets/javascripts/components/source/_/index.ts", "src/assets/javascripts/components/tabs/index.ts", "src/assets/javascripts/components/toc/index.ts", "src/assets/javascripts/components/top/index.ts", "src/assets/javascripts/patches/indeterminate/index.ts", "src/assets/javascripts/patches/scrollfix/index.ts", "src/assets/javascripts/patches/scrolllock/index.ts", "src/assets/javascripts/polyfills/index.ts"], + "sourceRoot": "../../../..", + "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n /**\n * Applies the :focus-visible polyfill at the given scope.\n * A scope in this case is either the top-level Document or a Shadow Root.\n *\n * @param {(Document|ShadowRoot)} scope\n * @see https://github.com/WICG/focus-visible\n */\n function applyFocusVisiblePolyfill(scope) {\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n\n var inputTypesAllowlist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n * @param {Element} el\n */\n function isValidFocusTarget(el) {\n if (\n el &&\n el !== document &&\n el.nodeName !== 'HTML' &&\n el.nodeName !== 'BODY' &&\n 'classList' in el &&\n 'contains' in el.classList\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} el\n * @return {boolean}\n */\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n\n if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !el.readOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Add the `focus-visible` class to the given element if it was not added by\n * the author.\n * @param {Element} el\n */\n function addFocusVisibleClass(el) {\n if (el.classList.contains('focus-visible')) {\n return;\n }\n el.classList.add('focus-visible');\n el.setAttribute('data-focus-visible-added', '');\n }\n\n /**\n * Remove the `focus-visible` class from the given element if it was not\n * originally added by the author.\n * @param {Element} el\n */\n function removeFocusVisibleClass(el) {\n if (!el.hasAttribute('data-focus-visible-added')) {\n return;\n }\n el.classList.remove('focus-visible');\n el.removeAttribute('data-focus-visible-added');\n }\n\n /**\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n * @param {KeyboardEvent} e\n */\n function onKeyDown(e) {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n\n if (isValidFocusTarget(scope.activeElement)) {\n addFocusVisibleClass(scope.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * @param {Event} e\n */\n function onPointerDown(e) {\n hadKeyboardEvent = false;\n }\n\n /**\n * On `focus`, add the `focus-visible` class to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n * @param {Event} e\n */\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleClass(e.target);\n }\n }\n\n /**\n * On `blur`, remove the `focus-visible` class from the target.\n * @param {Event} e\n */\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (\n e.target.classList.contains('focus-visible') ||\n e.target.hasAttribute('data-focus-visible-added')\n ) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function() {\n hadFocusVisibleRecently = false;\n }, 100);\n removeFocusVisibleClass(e.target);\n }\n }\n\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had .focus-visible.\n * @param {Event} e\n */\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n addInitialPointerMoveListeners();\n }\n }\n\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n * @param {Event} e\n */\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. \u00AF\\_(\u30C4)_/\u00AF\n if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n // For some kinds of state, we are interested in changes at the global scope\n // only. For example, global pointer input, global key presses and global\n // visibility change should affect the state at every scope:\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n\n addInitialPointerMoveListeners();\n\n // For focus and blur, we specifically care about state changes in the local\n // scope. This is because focus / blur events that originate from within a\n // shadow root are not re-dispatched from the host element if it was already\n // the active element in its own scope:\n scope.addEventListener('focus', onFocus, true);\n scope.addEventListener('blur', onBlur, true);\n\n // We detect that a node is a ShadowRoot by ensuring that it is a\n // DocumentFragment and also has a host property. This check covers native\n // implementation and polyfill implementation transparently. If we only cared\n // about the native implementation, we could just check if the scope was\n // an instance of a ShadowRoot.\n if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) {\n // Since a ShadowRoot is a special kind of DocumentFragment, it does not\n // have a root element to add a class to. So, we add this attribute to the\n // host element instead:\n scope.host.setAttribute('data-js-focus-visible', '');\n } else if (scope.nodeType === Node.DOCUMENT_NODE) {\n document.documentElement.classList.add('js-focus-visible');\n document.documentElement.setAttribute('data-js-focus-visible', '');\n }\n }\n\n // It is important to wrap all references to global window and document in\n // these checks to support server-side rendering use cases\n // @see https://github.com/WICG/focus-visible/issues/199\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n // Make the polyfill helper globally available. This can be used as a signal\n // to interested libraries that wish to coordinate with the polyfill for e.g.,\n // applying the polyfill to a shadow root:\n window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill;\n\n // Notify interested libraries of the polyfill's presence, in case the\n // polyfill was loaded lazily:\n var event;\n\n try {\n event = new CustomEvent('focus-visible-polyfill-ready');\n } catch (error) {\n // IE11 does not support using CustomEvent as a constructor directly:\n event = document.createEvent('CustomEvent');\n event.initCustomEvent('focus-visible-polyfill-ready', false, false, {});\n }\n\n window.dispatchEvent(event);\n }\n\n if (typeof document !== 'undefined') {\n // Apply the polyfill to the global document, so that no JavaScript\n // coordination is required to use the polyfill in the top-level document:\n applyFocusVisiblePolyfill(document);\n }\n\n})));\n", "(function(global) {\r\n /**\r\n * Polyfill URLSearchParams\r\n *\r\n * Inspired from : https://github.com/WebReflection/url-search-params/blob/master/src/url-search-params.js\r\n */\r\n\r\n var checkIfIteratorIsSupported = function() {\r\n try {\r\n return !!Symbol.iterator;\r\n } catch (error) {\r\n return false;\r\n }\r\n };\r\n\r\n\r\n var iteratorSupported = checkIfIteratorIsSupported();\r\n\r\n var createIterator = function(items) {\r\n var iterator = {\r\n next: function() {\r\n var value = items.shift();\r\n return { done: value === void 0, value: value };\r\n }\r\n };\r\n\r\n if (iteratorSupported) {\r\n iterator[Symbol.iterator] = function() {\r\n return iterator;\r\n };\r\n }\r\n\r\n return iterator;\r\n };\r\n\r\n /**\r\n * Search param name and values should be encoded according to https://url.spec.whatwg.org/#urlencoded-serializing\r\n * encodeURIComponent() produces the same result except encoding spaces as `%20` instead of `+`.\r\n */\r\n var serializeParam = function(value) {\r\n return encodeURIComponent(value).replace(/%20/g, '+');\r\n };\r\n\r\n var deserializeParam = function(value) {\r\n return decodeURIComponent(String(value).replace(/\\+/g, ' '));\r\n };\r\n\r\n var polyfillURLSearchParams = function() {\r\n\r\n var URLSearchParams = function(searchString) {\r\n Object.defineProperty(this, '_entries', { writable: true, value: {} });\r\n var typeofSearchString = typeof searchString;\r\n\r\n if (typeofSearchString === 'undefined') {\r\n // do nothing\r\n } else if (typeofSearchString === 'string') {\r\n if (searchString !== '') {\r\n this._fromString(searchString);\r\n }\r\n } else if (searchString instanceof URLSearchParams) {\r\n var _this = this;\r\n searchString.forEach(function(value, name) {\r\n _this.append(name, value);\r\n });\r\n } else if ((searchString !== null) && (typeofSearchString === 'object')) {\r\n if (Object.prototype.toString.call(searchString) === '[object Array]') {\r\n for (var i = 0; i < searchString.length; i++) {\r\n var entry = searchString[i];\r\n if ((Object.prototype.toString.call(entry) === '[object Array]') || (entry.length !== 2)) {\r\n this.append(entry[0], entry[1]);\r\n } else {\r\n throw new TypeError('Expected [string, any] as entry at index ' + i + ' of URLSearchParams\\'s input');\r\n }\r\n }\r\n } else {\r\n for (var key in searchString) {\r\n if (searchString.hasOwnProperty(key)) {\r\n this.append(key, searchString[key]);\r\n }\r\n }\r\n }\r\n } else {\r\n throw new TypeError('Unsupported input\\'s type for URLSearchParams');\r\n }\r\n };\r\n\r\n var proto = URLSearchParams.prototype;\r\n\r\n proto.append = function(name, value) {\r\n if (name in this._entries) {\r\n this._entries[name].push(String(value));\r\n } else {\r\n this._entries[name] = [String(value)];\r\n }\r\n };\r\n\r\n proto.delete = function(name) {\r\n delete this._entries[name];\r\n };\r\n\r\n proto.get = function(name) {\r\n return (name in this._entries) ? this._entries[name][0] : null;\r\n };\r\n\r\n proto.getAll = function(name) {\r\n return (name in this._entries) ? this._entries[name].slice(0) : [];\r\n };\r\n\r\n proto.has = function(name) {\r\n return (name in this._entries);\r\n };\r\n\r\n proto.set = function(name, value) {\r\n this._entries[name] = [String(value)];\r\n };\r\n\r\n proto.forEach = function(callback, thisArg) {\r\n var entries;\r\n for (var name in this._entries) {\r\n if (this._entries.hasOwnProperty(name)) {\r\n entries = this._entries[name];\r\n for (var i = 0; i < entries.length; i++) {\r\n callback.call(thisArg, entries[i], name, this);\r\n }\r\n }\r\n }\r\n };\r\n\r\n proto.keys = function() {\r\n var items = [];\r\n this.forEach(function(value, name) {\r\n items.push(name);\r\n });\r\n return createIterator(items);\r\n };\r\n\r\n proto.values = function() {\r\n var items = [];\r\n this.forEach(function(value) {\r\n items.push(value);\r\n });\r\n return createIterator(items);\r\n };\r\n\r\n proto.entries = function() {\r\n var items = [];\r\n this.forEach(function(value, name) {\r\n items.push([name, value]);\r\n });\r\n return createIterator(items);\r\n };\r\n\r\n if (iteratorSupported) {\r\n proto[Symbol.iterator] = proto.entries;\r\n }\r\n\r\n proto.toString = function() {\r\n var searchArray = [];\r\n this.forEach(function(value, name) {\r\n searchArray.push(serializeParam(name) + '=' + serializeParam(value));\r\n });\r\n return searchArray.join('&');\r\n };\r\n\r\n\r\n global.URLSearchParams = URLSearchParams;\r\n };\r\n\r\n var checkIfURLSearchParamsSupported = function() {\r\n try {\r\n var URLSearchParams = global.URLSearchParams;\r\n\r\n return (\r\n (new URLSearchParams('?a=1').toString() === 'a=1') &&\r\n (typeof URLSearchParams.prototype.set === 'function') &&\r\n (typeof URLSearchParams.prototype.entries === 'function')\r\n );\r\n } catch (e) {\r\n return false;\r\n }\r\n };\r\n\r\n if (!checkIfURLSearchParamsSupported()) {\r\n polyfillURLSearchParams();\r\n }\r\n\r\n var proto = global.URLSearchParams.prototype;\r\n\r\n if (typeof proto.sort !== 'function') {\r\n proto.sort = function() {\r\n var _this = this;\r\n var items = [];\r\n this.forEach(function(value, name) {\r\n items.push([name, value]);\r\n if (!_this._entries) {\r\n _this.delete(name);\r\n }\r\n });\r\n items.sort(function(a, b) {\r\n if (a[0] < b[0]) {\r\n return -1;\r\n } else if (a[0] > b[0]) {\r\n return +1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n if (_this._entries) { // force reset because IE keeps keys index\r\n _this._entries = {};\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n this.append(items[i][0], items[i][1]);\r\n }\r\n };\r\n }\r\n\r\n if (typeof proto._fromString !== 'function') {\r\n Object.defineProperty(proto, '_fromString', {\r\n enumerable: false,\r\n configurable: false,\r\n writable: false,\r\n value: function(searchString) {\r\n if (this._entries) {\r\n this._entries = {};\r\n } else {\r\n var keys = [];\r\n this.forEach(function(value, name) {\r\n keys.push(name);\r\n });\r\n for (var i = 0; i < keys.length; i++) {\r\n this.delete(keys[i]);\r\n }\r\n }\r\n\r\n searchString = searchString.replace(/^\\?/, '');\r\n var attributes = searchString.split('&');\r\n var attribute;\r\n for (var i = 0; i < attributes.length; i++) {\r\n attribute = attributes[i].split('=');\r\n this.append(\r\n deserializeParam(attribute[0]),\r\n (attribute.length > 1) ? deserializeParam(attribute[1]) : ''\r\n );\r\n }\r\n }\r\n });\r\n }\r\n\r\n // HTMLAnchorElement\r\n\r\n})(\r\n (typeof global !== 'undefined') ? global\r\n : ((typeof window !== 'undefined') ? window\r\n : ((typeof self !== 'undefined') ? self : this))\r\n);\r\n\r\n(function(global) {\r\n /**\r\n * Polyfill URL\r\n *\r\n * Inspired from : https://github.com/arv/DOM-URL-Polyfill/blob/master/src/url.js\r\n */\r\n\r\n var checkIfURLIsSupported = function() {\r\n try {\r\n var u = new global.URL('b', 'http://a');\r\n u.pathname = 'c d';\r\n return (u.href === 'http://a/c%20d') && u.searchParams;\r\n } catch (e) {\r\n return false;\r\n }\r\n };\r\n\r\n\r\n var polyfillURL = function() {\r\n var _URL = global.URL;\r\n\r\n var URL = function(url, base) {\r\n if (typeof url !== 'string') url = String(url);\r\n if (base && typeof base !== 'string') base = String(base);\r\n\r\n // Only create another document if the base is different from current location.\r\n var doc = document, baseElement;\r\n if (base && (global.location === void 0 || base !== global.location.href)) {\r\n base = base.toLowerCase();\r\n doc = document.implementation.createHTMLDocument('');\r\n baseElement = doc.createElement('base');\r\n baseElement.href = base;\r\n doc.head.appendChild(baseElement);\r\n try {\r\n if (baseElement.href.indexOf(base) !== 0) throw new Error(baseElement.href);\r\n } catch (err) {\r\n throw new Error('URL unable to set base ' + base + ' due to ' + err);\r\n }\r\n }\r\n\r\n var anchorElement = doc.createElement('a');\r\n anchorElement.href = url;\r\n if (baseElement) {\r\n doc.body.appendChild(anchorElement);\r\n anchorElement.href = anchorElement.href; // force href to refresh\r\n }\r\n\r\n var inputElement = doc.createElement('input');\r\n inputElement.type = 'url';\r\n inputElement.value = url;\r\n\r\n if (anchorElement.protocol === ':' || !/:/.test(anchorElement.href) || (!inputElement.checkValidity() && !base)) {\r\n throw new TypeError('Invalid URL');\r\n }\r\n\r\n Object.defineProperty(this, '_anchorElement', {\r\n value: anchorElement\r\n });\r\n\r\n\r\n // create a linked searchParams which reflect its changes on URL\r\n var searchParams = new global.URLSearchParams(this.search);\r\n var enableSearchUpdate = true;\r\n var enableSearchParamsUpdate = true;\r\n var _this = this;\r\n ['append', 'delete', 'set'].forEach(function(methodName) {\r\n var method = searchParams[methodName];\r\n searchParams[methodName] = function() {\r\n method.apply(searchParams, arguments);\r\n if (enableSearchUpdate) {\r\n enableSearchParamsUpdate = false;\r\n _this.search = searchParams.toString();\r\n enableSearchParamsUpdate = true;\r\n }\r\n };\r\n });\r\n\r\n Object.defineProperty(this, 'searchParams', {\r\n value: searchParams,\r\n enumerable: true\r\n });\r\n\r\n var search = void 0;\r\n Object.defineProperty(this, '_updateSearchParams', {\r\n enumerable: false,\r\n configurable: false,\r\n writable: false,\r\n value: function() {\r\n if (this.search !== search) {\r\n search = this.search;\r\n if (enableSearchParamsUpdate) {\r\n enableSearchUpdate = false;\r\n this.searchParams._fromString(this.search);\r\n enableSearchUpdate = true;\r\n }\r\n }\r\n }\r\n });\r\n };\r\n\r\n var proto = URL.prototype;\r\n\r\n var linkURLWithAnchorAttribute = function(attributeName) {\r\n Object.defineProperty(proto, attributeName, {\r\n get: function() {\r\n return this._anchorElement[attributeName];\r\n },\r\n set: function(value) {\r\n this._anchorElement[attributeName] = value;\r\n },\r\n enumerable: true\r\n });\r\n };\r\n\r\n ['hash', 'host', 'hostname', 'port', 'protocol']\r\n .forEach(function(attributeName) {\r\n linkURLWithAnchorAttribute(attributeName);\r\n });\r\n\r\n Object.defineProperty(proto, 'search', {\r\n get: function() {\r\n return this._anchorElement['search'];\r\n },\r\n set: function(value) {\r\n this._anchorElement['search'] = value;\r\n this._updateSearchParams();\r\n },\r\n enumerable: true\r\n });\r\n\r\n Object.defineProperties(proto, {\r\n\r\n 'toString': {\r\n get: function() {\r\n var _this = this;\r\n return function() {\r\n return _this.href;\r\n };\r\n }\r\n },\r\n\r\n 'href': {\r\n get: function() {\r\n return this._anchorElement.href.replace(/\\?$/, '');\r\n },\r\n set: function(value) {\r\n this._anchorElement.href = value;\r\n this._updateSearchParams();\r\n },\r\n enumerable: true\r\n },\r\n\r\n 'pathname': {\r\n get: function() {\r\n return this._anchorElement.pathname.replace(/(^\\/?)/, '/');\r\n },\r\n set: function(value) {\r\n this._anchorElement.pathname = value;\r\n },\r\n enumerable: true\r\n },\r\n\r\n 'origin': {\r\n get: function() {\r\n // get expected port from protocol\r\n var expectedPort = { 'http:': 80, 'https:': 443, 'ftp:': 21 }[this._anchorElement.protocol];\r\n // add port to origin if, expected port is different than actual port\r\n // and it is not empty f.e http://foo:8080\r\n // 8080 != 80 && 8080 != ''\r\n var addPortToOrigin = this._anchorElement.port != expectedPort &&\r\n this._anchorElement.port !== '';\r\n\r\n return this._anchorElement.protocol +\r\n '//' +\r\n this._anchorElement.hostname +\r\n (addPortToOrigin ? (':' + this._anchorElement.port) : '');\r\n },\r\n enumerable: true\r\n },\r\n\r\n 'password': { // TODO\r\n get: function() {\r\n return '';\r\n },\r\n set: function(value) {\r\n },\r\n enumerable: true\r\n },\r\n\r\n 'username': { // TODO\r\n get: function() {\r\n return '';\r\n },\r\n set: function(value) {\r\n },\r\n enumerable: true\r\n },\r\n });\r\n\r\n URL.createObjectURL = function(blob) {\r\n return _URL.createObjectURL.apply(_URL, arguments);\r\n };\r\n\r\n URL.revokeObjectURL = function(url) {\r\n return _URL.revokeObjectURL.apply(_URL, arguments);\r\n };\r\n\r\n global.URL = URL;\r\n\r\n };\r\n\r\n if (!checkIfURLIsSupported()) {\r\n polyfillURL();\r\n }\r\n\r\n if ((global.location !== void 0) && !('origin' in global.location)) {\r\n var getOrigin = function() {\r\n return global.location.protocol + '//' + global.location.hostname + (global.location.port ? (':' + global.location.port) : '');\r\n };\r\n\r\n try {\r\n Object.defineProperty(global.location, 'origin', {\r\n get: getOrigin,\r\n enumerable: true\r\n });\r\n } catch (e) {\r\n setInterval(function() {\r\n global.location.origin = getOrigin();\r\n }, 100);\r\n }\r\n }\r\n\r\n})(\r\n (typeof global !== 'undefined') ? global\r\n : ((typeof window !== 'undefined') ? window\r\n : ((typeof self !== 'undefined') ? self : this))\r\n);\r\n", "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global global, define, System, Reflect, Promise */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __spreadArray;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __createBinding;\r\n(function (factory) {\r\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n }\r\n else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n factory(createExporter(root, createExporter(module.exports)));\r\n }\r\n else {\r\n factory(createExporter(root));\r\n }\r\n function createExporter(exports, previous) {\r\n if (exports !== root) {\r\n if (typeof Object.create === \"function\") {\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n }\r\n else {\r\n exports.__esModule = true;\r\n }\r\n }\r\n return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n }\r\n})\r\n(function (exporter) {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n\r\n __extends = function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n\r\n __assign = Object.assign || function (t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n\r\n __rest = function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n };\r\n\r\n __decorate = function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n };\r\n\r\n __param = function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n };\r\n\r\n __metadata = function (metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n };\r\n\r\n __awaiter = function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n };\r\n\r\n __generator = function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n };\r\n\r\n __exportStar = function(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n };\r\n\r\n __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n }) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n });\r\n\r\n __values = function (o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n };\r\n\r\n __read = function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spread = function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spreadArrays = function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n __spreadArray = function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n };\r\n\r\n __await = function (v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n };\r\n\r\n __asyncGenerator = function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n };\r\n\r\n __asyncDelegator = function (o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n };\r\n\r\n __asyncValues = function (o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n };\r\n\r\n __makeTemplateObject = function (cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n var __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n }) : function(o, v) {\r\n o[\"default\"] = v;\r\n };\r\n\r\n __importStar = function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n };\r\n\r\n __importDefault = function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n };\r\n\r\n __classPrivateFieldGet = function (receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n };\r\n\r\n __classPrivateFieldSet = function (receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n };\r\n\r\n exporter(\"__extends\", __extends);\r\n exporter(\"__assign\", __assign);\r\n exporter(\"__rest\", __rest);\r\n exporter(\"__decorate\", __decorate);\r\n exporter(\"__param\", __param);\r\n exporter(\"__metadata\", __metadata);\r\n exporter(\"__awaiter\", __awaiter);\r\n exporter(\"__generator\", __generator);\r\n exporter(\"__exportStar\", __exportStar);\r\n exporter(\"__createBinding\", __createBinding);\r\n exporter(\"__values\", __values);\r\n exporter(\"__read\", __read);\r\n exporter(\"__spread\", __spread);\r\n exporter(\"__spreadArrays\", __spreadArrays);\r\n exporter(\"__spreadArray\", __spreadArray);\r\n exporter(\"__await\", __await);\r\n exporter(\"__asyncGenerator\", __asyncGenerator);\r\n exporter(\"__asyncDelegator\", __asyncDelegator);\r\n exporter(\"__asyncValues\", __asyncValues);\r\n exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n exporter(\"__importStar\", __importStar);\r\n exporter(\"__importDefault\", __importDefault);\r\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n});\r\n", "/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT \u00A9 Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});", "/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n", "Array.prototype.flat||Object.defineProperty(Array.prototype,\"flat\",{configurable:!0,value:function r(){var t=isNaN(arguments[0])?1:Number(arguments[0]);return t?Array.prototype.reduce.call(this,function(a,e){return Array.isArray(e)?a.push.apply(a,r.call(e,t-1)):a.push(e),a},[]):Array.prototype.slice.call(this)},writable:!0}),Array.prototype.flatMap||Object.defineProperty(Array.prototype,\"flatMap\",{configurable:!0,value:function(r){return Array.prototype.map.apply(this,arguments).flat()},writable:!0})\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport \"array-flat-polyfill\"\nimport \"focus-visible\"\nimport \"unfetch/polyfill\"\nimport \"url-polyfill\"\n\nimport {\n EMPTY,\n NEVER,\n Subject,\n defer,\n delay,\n filter,\n map,\n merge,\n mergeWith,\n shareReplay,\n switchMap\n} from \"rxjs\"\n\nimport { configuration, feature } from \"./_\"\nimport {\n at,\n getOptionalElement,\n requestJSON,\n setToggle,\n watchDocument,\n watchKeyboard,\n watchLocation,\n watchLocationTarget,\n watchMedia,\n watchPrint,\n watchViewport\n} from \"./browser\"\nimport {\n getComponentElement,\n getComponentElements,\n mountAnnounce,\n mountBackToTop,\n mountConsent,\n mountContent,\n mountDialog,\n mountHeader,\n mountHeaderTitle,\n mountPalette,\n mountSearch,\n mountSearchHiglight,\n mountSidebar,\n mountSource,\n mountTableOfContents,\n mountTabs,\n watchHeader,\n watchMain\n} from \"./components\"\nimport {\n SearchIndex,\n setupClipboardJS,\n setupInstantLoading,\n setupVersionSelector\n} from \"./integrations\"\nimport {\n patchIndeterminate,\n patchScrollfix,\n patchScrolllock\n} from \"./patches\"\nimport \"./polyfills\"\n\n/* ----------------------------------------------------------------------------\n * Application\n * ------------------------------------------------------------------------- */\n\n/* Yay, JavaScript is available */\ndocument.documentElement.classList.remove(\"no-js\")\ndocument.documentElement.classList.add(\"js\")\n\n/* Set up navigation observables and subjects */\nconst document$ = watchDocument()\nconst location$ = watchLocation()\nconst target$ = watchLocationTarget()\nconst keyboard$ = watchKeyboard()\n\n/* Set up media observables */\nconst viewport$ = watchViewport()\nconst tablet$ = watchMedia(\"(min-width: 960px)\")\nconst screen$ = watchMedia(\"(min-width: 1220px)\")\nconst print$ = watchPrint()\n\n/* Retrieve search index, if search is enabled */\nconst config = configuration()\nconst index$ = document.forms.namedItem(\"search\")\n ? __search?.index || requestJSON(\n new URL(\"search/search_index.json\", config.base)\n )\n : NEVER\n\n/* Set up Clipboard.js integration */\nconst alert$ = new Subject()\nsetupClipboardJS({ alert$ })\n\n/* Set up instant loading, if enabled */\nif (feature(\"navigation.instant\"))\n setupInstantLoading({ document$, location$, viewport$ })\n\n/* Set up version selector */\nif (config.version?.provider === \"mike\")\n setupVersionSelector({ document$ })\n\n/* Always close drawer and search on navigation */\nmerge(location$, target$)\n .pipe(\n delay(125)\n )\n .subscribe(() => {\n setToggle(\"drawer\", false)\n setToggle(\"search\", false)\n })\n\n/* Set up global keyboard handlers */\nkeyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\")\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Go to previous page */\n case \"p\":\n case \",\":\n const prev = getOptionalElement(\"[href][rel=prev]\")\n if (typeof prev !== \"undefined\")\n prev.click()\n break\n\n /* Go to next page */\n case \"n\":\n case \".\":\n const next = getOptionalElement(\"[href][rel=next]\")\n if (typeof next !== \"undefined\")\n next.click()\n break\n }\n })\n\n/* Set up patches */\npatchIndeterminate({ document$, tablet$ })\npatchScrollfix({ document$ })\npatchScrolllock({ viewport$, tablet$ })\n\n/* Set up header and main area observable */\nconst header$ = watchHeader(getComponentElement(\"header\"), { viewport$ })\nconst main$ = document$\n .pipe(\n map(() => getComponentElement(\"main\")),\n switchMap(el => watchMain(el, { viewport$, header$ })),\n shareReplay(1)\n )\n\n/* Set up control component observables */\nconst control$ = merge(\n\n /* Consent */\n ...getComponentElements(\"consent\")\n .map(el => mountConsent(el, { target$ })),\n\n /* Dialog */\n ...getComponentElements(\"dialog\")\n .map(el => mountDialog(el, { alert$ })),\n\n /* Header */\n ...getComponentElements(\"header\")\n .map(el => mountHeader(el, { viewport$, header$, main$ })),\n\n /* Color palette */\n ...getComponentElements(\"palette\")\n .map(el => mountPalette(el)),\n\n /* Search */\n ...getComponentElements(\"search\")\n .map(el => mountSearch(el, { index$, keyboard$ })),\n\n /* Repository information */\n ...getComponentElements(\"source\")\n .map(el => mountSource(el))\n)\n\n/* Set up content component observables */\nconst content$ = defer(() => merge(\n\n /* Announcement bar */\n ...getComponentElements(\"announce\")\n .map(el => mountAnnounce(el)),\n\n /* Content */\n ...getComponentElements(\"content\")\n .map(el => mountContent(el, { viewport$, target$, print$ })),\n\n /* Search highlighting */\n ...getComponentElements(\"content\")\n .map(el => feature(\"search.highlight\")\n ? mountSearchHiglight(el, { index$, location$ })\n : EMPTY\n ),\n\n /* Header title */\n ...getComponentElements(\"header-title\")\n .map(el => mountHeaderTitle(el, { viewport$, header$ })),\n\n /* Sidebar */\n ...getComponentElements(\"sidebar\")\n .map(el => el.getAttribute(\"data-md-type\") === \"navigation\"\n ? at(screen$, () => mountSidebar(el, { viewport$, header$, main$ }))\n : at(tablet$, () => mountSidebar(el, { viewport$, header$, main$ }))\n ),\n\n /* Navigation tabs */\n ...getComponentElements(\"tabs\")\n .map(el => mountTabs(el, { viewport$, header$ })),\n\n /* Table of contents */\n ...getComponentElements(\"toc\")\n .map(el => mountTableOfContents(el, { viewport$, header$, target$ })),\n\n /* Back-to-top button */\n ...getComponentElements(\"top\")\n .map(el => mountBackToTop(el, { viewport$, header$, main$, target$ }))\n))\n\n/* Set up component observables */\nconst component$ = document$\n .pipe(\n switchMap(() => content$),\n mergeWith(control$),\n shareReplay(1)\n )\n\n/* Subscribe to all components */\ncomponent$.subscribe()\n\n/* ----------------------------------------------------------------------------\n * Exports\n * ------------------------------------------------------------------------- */\n\nwindow.document$ = document$ /* Document observable */\nwindow.location$ = location$ /* Location subject */\nwindow.target$ = target$ /* Location target observable */\nwindow.keyboard$ = keyboard$ /* Keyboard observable */\nwindow.viewport$ = viewport$ /* Viewport observable */\nwindow.tablet$ = tablet$ /* Media tablet observable */\nwindow.screen$ = screen$ /* Media screen observable */\nwindow.print$ = print$ /* Media print observable */\nwindow.alert$ = alert$ /* Alert subject */\nwindow.component$ = component$ /* Component observable */\n", "self.fetch||(self.fetch=function(e,n){return n=n||{},new Promise(function(t,s){var r=new XMLHttpRequest,o=[],u=[],i={},a=function(){return{ok:2==(r.status/100|0),statusText:r.statusText,status:r.status,url:r.responseURL,text:function(){return Promise.resolve(r.responseText)},json:function(){return Promise.resolve(r.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([r.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return u},get:function(e){return i[e.toLowerCase()]},has:function(e){return e.toLowerCase()in i}}}};for(var c in r.open(n.method||\"get\",e,!0),r.onload=function(){r.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm,function(e,n,t){o.push(n=n.toLowerCase()),u.push([n,t]),i[n]=i[n]?i[n]+\",\"+t:t}),t(a())},r.onerror=s,r.withCredentials=\"include\"==n.credentials,n.headers)r.setRequestHeader(c,n.headers[c]);r.send(n.body||null)})});\n", "import tslib from '../tslib.js';\r\nconst {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __exportStar,\r\n __createBinding,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n} = tslib;\r\nexport {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __exportStar,\r\n __createBinding,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n};\r\n", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n ReplaySubject,\n Subject,\n fromEvent\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch document\n *\n * Documents are implemented as subjects, so all downstream observables are\n * automatically updated when a new document is emitted.\n *\n * @returns Document subject\n */\nexport function watchDocument(): Subject {\n const document$ = new ReplaySubject(1)\n fromEvent(document, \"DOMContentLoaded\", { once: true })\n .subscribe(() => document$.next(document))\n\n /* Return document */\n return document$\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve all elements matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @returns Elements\n */\nexport function getElements(\n selector: T, node?: ParentNode\n): HTMLElementTagNameMap[T][]\n\nexport function getElements(\n selector: string, node?: ParentNode\n): T[]\n\nexport function getElements(\n selector: string, node: ParentNode = document\n): T[] {\n return Array.from(node.querySelectorAll(selector))\n}\n\n/**\n * Retrieve an element matching a query selector or throw a reference error\n *\n * Note that this function assumes that the element is present. If unsure if an\n * element is existent, use the `getOptionalElement` function instead.\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @returns Element\n */\nexport function getElement(\n selector: T, node?: ParentNode\n): HTMLElementTagNameMap[T]\n\nexport function getElement(\n selector: string, node?: ParentNode\n): T\n\nexport function getElement(\n selector: string, node: ParentNode = document\n): T {\n const el = getOptionalElement(selector, node)\n if (typeof el === \"undefined\")\n throw new ReferenceError(\n `Missing element: expected \"${selector}\" to be present`\n )\n\n /* Return element */\n return el\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Retrieve an optional element matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @returns Element or nothing\n */\nexport function getOptionalElement(\n selector: T, node?: ParentNode\n): HTMLElementTagNameMap[T] | undefined\n\nexport function getOptionalElement(\n selector: string, node?: ParentNode\n): T | undefined\n\nexport function getOptionalElement(\n selector: string, node: ParentNode = document\n): T | undefined {\n return node.querySelector(selector) || undefined\n}\n\n/**\n * Retrieve the currently active element\n *\n * @returns Element or nothing\n */\nexport function getActiveElement(): HTMLElement | undefined {\n return document.activeElement instanceof HTMLElement\n ? document.activeElement || undefined\n : undefined\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n debounceTime,\n distinctUntilChanged,\n fromEvent,\n map,\n merge,\n startWith\n} from \"rxjs\"\n\nimport { getActiveElement } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch element focus\n *\n * Previously, this function used `focus` and `blur` events to determine whether\n * an element is focused, but this doesn't work if there are focusable elements\n * within the elements itself. A better solutions are `focusin` and `focusout`\n * events, which bubble up the tree and allow for more fine-grained control.\n *\n * `debounceTime` is necessary, because when a focus change happens inside an\n * element, the observable would first emit `false` and then `true` again.\n *\n * @param el - Element\n *\n * @returns Element focus observable\n */\nexport function watchElementFocus(\n el: HTMLElement\n): Observable {\n return merge(\n fromEvent(document.body, \"focusin\"),\n fromEvent(document.body, \"focusout\")\n )\n .pipe(\n debounceTime(1),\n map(() => {\n const active = getActiveElement()\n return typeof active !== \"undefined\"\n ? el.contains(active)\n : false\n }),\n startWith(el === getActiveElement()),\n distinctUntilChanged()\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n animationFrameScheduler,\n auditTime,\n fromEvent,\n map,\n merge,\n startWith\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Element offset\n */\nexport interface ElementOffset {\n x: number /* Horizontal offset */\n y: number /* Vertical offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element offset\n *\n * @param el - Element\n *\n * @returns Element offset\n */\nexport function getElementOffset(\n el: HTMLElement\n): ElementOffset {\n return {\n x: el.offsetLeft,\n y: el.offsetTop\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element offset\n *\n * @param el - Element\n *\n * @returns Element offset observable\n */\nexport function watchElementOffset(\n el: HTMLElement\n): Observable {\n return merge(\n fromEvent(window, \"load\"),\n fromEvent(window, \"resize\")\n )\n .pipe(\n auditTime(0, animationFrameScheduler),\n map(() => getElementOffset(el)),\n startWith(getElementOffset(el))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n animationFrameScheduler,\n auditTime,\n fromEvent,\n map,\n merge,\n startWith\n} from \"rxjs\"\n\nimport { ElementOffset } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element content offset (= scroll offset)\n *\n * @param el - Element\n *\n * @returns Element content offset\n */\nexport function getElementContentOffset(\n el: HTMLElement\n): ElementOffset {\n return {\n x: el.scrollLeft,\n y: el.scrollTop\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element content offset\n *\n * @param el - Element\n *\n * @returns Element content offset observable\n */\nexport function watchElementContentOffset(\n el: HTMLElement\n): Observable {\n return merge(\n fromEvent(el, \"scroll\"),\n fromEvent(window, \"resize\")\n )\n .pipe(\n auditTime(0, animationFrameScheduler),\n map(() => getElementContentOffset(el)),\n startWith(getElementContentOffset(el))\n )\n}\n", "/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport ResizeObserver from \"resize-observer-polyfill\"\nimport {\n NEVER,\n Observable,\n Subject,\n defer,\n filter,\n finalize,\n map,\n merge,\n of,\n shareReplay,\n startWith,\n switchMap,\n tap\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Element offset\n */\nexport interface ElementSize {\n width: number /* Element width */\n height: number /* Element height */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Resize observer entry subject\n */\nconst entry$ = new Subject()\n\n/**\n * Resize observer observable\n *\n * This observable will create a `ResizeObserver` on the first subscription\n * and will automatically terminate it when there are no more subscribers.\n * It's quite important to centralize observation in a single `ResizeObserver`,\n * as the performance difference can be quite dramatic, as the link shows.\n *\n * @see https://bit.ly/3iIYfEm - Google Groups on performance\n */\nconst observer$ = defer(() => of(\n new ResizeObserver(entries => {\n for (const entry of entries)\n entry$.next(entry)\n })\n))\n .pipe(\n switchMap(observer => merge(NEVER, of(observer))\n .pipe(\n finalize(() => observer.disconnect())\n )\n ),\n shareReplay(1)\n )\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element size\n *\n * @param el - Element\n *\n * @returns Element size\n */\nexport function getElementSize(\n el: HTMLElement\n): ElementSize {\n return {\n width: el.offsetWidth,\n height: el.offsetHeight\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element size\n *\n * This function returns an observable that subscribes to a single internal\n * instance of `ResizeObserver` upon subscription, and emit resize events until\n * termination. Note that this function should not be called with the same\n * element twice, as the first unsubscription will terminate observation.\n *\n * Sadly, we can't use the `DOMRect` objects returned by the observer, because\n * we need the emitted values to be consistent with `getElementSize`, which will\n * return the used values (rounded) and not actual values (unrounded). Thus, we\n * use the `offset*` properties. See the linked GitHub issue.\n *\n * @see https://bit.ly/3m0k3he - GitHub issue\n *\n * @param el - Element\n *\n * @returns Element size observable\n */\nexport function watchElementSize(\n el: HTMLElement\n): Observable {\n return observer$\n .pipe(\n tap(observer => observer.observe(el)),\n switchMap(observer => entry$\n .pipe(\n filter(({ target }) => target === el),\n finalize(() => observer.unobserve(el)),\n map(() => getElementSize(el))\n )\n ),\n startWith(getElementSize(el))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { ElementSize } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element content size (= scroll width and height)\n *\n * @param el - Element\n *\n * @returns Element content size\n */\nexport function getElementContentSize(\n el: HTMLElement\n): ElementSize {\n return {\n width: el.scrollWidth,\n height: el.scrollHeight\n }\n}\n\n/**\n * Retrieve the overflowing container of an element, if any\n *\n * @param el - Element\n *\n * @returns Overflowing container or nothing\n */\nexport function getElementContainer(\n el: HTMLElement\n): HTMLElement | undefined {\n let parent = el.parentElement\n while (parent)\n if (\n el.scrollWidth <= parent.scrollWidth &&\n el.scrollHeight <= parent.scrollHeight\n )\n parent = (el = parent).parentElement\n else\n break\n\n /* Return overflowing container */\n return parent ? el : undefined\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n NEVER,\n Observable,\n Subject,\n defer,\n distinctUntilChanged,\n filter,\n finalize,\n map,\n merge,\n of,\n shareReplay,\n switchMap,\n tap\n} from \"rxjs\"\n\nimport {\n getElementContentSize,\n getElementSize,\n watchElementContentOffset\n} from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Intersection observer entry subject\n */\nconst entry$ = new Subject()\n\n/**\n * Intersection observer observable\n *\n * This observable will create an `IntersectionObserver` on first subscription\n * and will automatically terminate it when there are no more subscribers.\n *\n * @see https://bit.ly/3iIYfEm - Google Groups on performance\n */\nconst observer$ = defer(() => of(\n new IntersectionObserver(entries => {\n for (const entry of entries)\n entry$.next(entry)\n }, {\n threshold: 0\n })\n))\n .pipe(\n switchMap(observer => merge(NEVER, of(observer))\n .pipe(\n finalize(() => observer.disconnect())\n )\n ),\n shareReplay(1)\n )\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch element visibility\n *\n * @param el - Element\n *\n * @returns Element visibility observable\n */\nexport function watchElementVisibility(\n el: HTMLElement\n): Observable {\n return observer$\n .pipe(\n tap(observer => observer.observe(el)),\n switchMap(observer => entry$\n .pipe(\n filter(({ target }) => target === el),\n finalize(() => observer.unobserve(el)),\n map(({ isIntersecting }) => isIntersecting)\n )\n )\n )\n}\n\n/**\n * Watch element boundary\n *\n * This function returns an observable which emits whether the bottom content\n * boundary (= scroll offset) of an element is within a certain threshold.\n *\n * @param el - Element\n * @param threshold - Threshold\n *\n * @returns Element boundary observable\n */\nexport function watchElementBoundary(\n el: HTMLElement, threshold = 16\n): Observable {\n return watchElementContentOffset(el)\n .pipe(\n map(({ y }) => {\n const visible = getElementSize(el)\n const content = getElementContentSize(el)\n return y >= (\n content.height - visible.height - threshold\n )\n }),\n distinctUntilChanged()\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n fromEvent,\n map,\n startWith\n} from \"rxjs\"\n\nimport { getElement } from \"../element\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Toggle\n */\nexport type Toggle =\n | \"drawer\" /* Toggle for drawer */\n | \"search\" /* Toggle for search */\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Toggle map\n */\nconst toggles: Record = {\n drawer: getElement(\"[data-md-toggle=drawer]\"),\n search: getElement(\"[data-md-toggle=search]\")\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve the value of a toggle\n *\n * @param name - Toggle\n *\n * @returns Toggle value\n */\nexport function getToggle(name: Toggle): boolean {\n return toggles[name].checked\n}\n\n/**\n * Set toggle\n *\n * Simulating a click event seems to be the most cross-browser compatible way\n * of changing the value while also emitting a `change` event. Before, Material\n * used `CustomEvent` to programmatically change the value of a toggle, but this\n * is a much simpler and cleaner solution which doesn't require a polyfill.\n *\n * @param name - Toggle\n * @param value - Toggle value\n */\nexport function setToggle(name: Toggle, value: boolean): void {\n if (toggles[name].checked !== value)\n toggles[name].click()\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch toggle\n *\n * @param name - Toggle\n *\n * @returns Toggle value observable\n */\nexport function watchToggle(name: Toggle): Observable {\n const el = toggles[name]\n return fromEvent(el, \"change\")\n .pipe(\n map(() => el.checked),\n startWith(el.checked)\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n filter,\n fromEvent,\n map,\n share\n} from \"rxjs\"\n\nimport { getActiveElement } from \"../element\"\nimport { getToggle } from \"../toggle\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Keyboard mode\n */\nexport type KeyboardMode =\n | \"global\" /* Global */\n | \"search\" /* Search is open */\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Keyboard\n */\nexport interface Keyboard {\n mode: KeyboardMode /* Keyboard mode */\n type: string /* Key type */\n claim(): void /* Key claim */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Check whether an element may receive keyboard input\n *\n * @param el - Element\n * @param type - Key type\n *\n * @returns Test result\n */\nfunction isSusceptibleToKeyboard(\n el: HTMLElement, type: string\n): boolean {\n switch (el.constructor) {\n\n /* Input elements */\n case HTMLInputElement:\n /* @ts-expect-error - omit unnecessary type cast */\n if (el.type === \"radio\")\n return /^Arrow/.test(type)\n else\n return true\n\n /* Select element and textarea */\n case HTMLSelectElement:\n case HTMLTextAreaElement:\n return true\n\n /* Everything else */\n default:\n return el.isContentEditable\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch keyboard\n *\n * @returns Keyboard observable\n */\nexport function watchKeyboard(): Observable {\n return fromEvent(window, \"keydown\")\n .pipe(\n filter(ev => !(ev.metaKey || ev.ctrlKey)),\n map(ev => ({\n mode: getToggle(\"search\") ? \"search\" : \"global\",\n type: ev.key,\n claim() {\n ev.preventDefault()\n ev.stopPropagation()\n }\n } as Keyboard)),\n filter(({ mode, type }) => {\n if (mode === \"global\") {\n const active = getActiveElement()\n if (typeof active !== \"undefined\")\n return !isSusceptibleToKeyboard(active, type)\n }\n return true\n }),\n share()\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Subject } from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve location\n *\n * This function returns a `URL` object (and not `Location`) to normalize the\n * typings across the application. Furthermore, locations need to be tracked\n * without setting them and `Location` is a singleton which represents the\n * current location.\n *\n * @returns URL\n */\nexport function getLocation(): URL {\n return new URL(location.href)\n}\n\n/**\n * Set location\n *\n * @param url - URL to change to\n */\nexport function setLocation(url: URL): void {\n location.href = url.href\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch location\n *\n * @returns Location subject\n */\nexport function watchLocation(): Subject {\n return new Subject()\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { JSX as JSXInternal } from \"preact\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * HTML attributes\n */\ntype Attributes =\n & JSXInternal.HTMLAttributes\n & JSXInternal.SVGAttributes\n & Record\n\n/**\n * Child element\n */\ntype Child =\n | HTMLElement\n | Text\n | string\n | number\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Append a child node to an element\n *\n * @param el - Element\n * @param child - Child node(s)\n */\nfunction appendChild(el: HTMLElement, child: Child | Child[]): void {\n\n /* Handle primitive types (including raw HTML) */\n if (typeof child === \"string\" || typeof child === \"number\") {\n el.innerHTML += child.toString()\n\n /* Handle nodes */\n } else if (child instanceof Node) {\n el.appendChild(child)\n\n /* Handle nested children */\n } else if (Array.isArray(child)) {\n for (const node of child)\n appendChild(el, node)\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * JSX factory\n *\n * @template T - Element type\n *\n * @param tag - HTML tag\n * @param attributes - HTML attributes\n * @param children - Child elements\n *\n * @returns Element\n */\nexport function h(\n tag: T, attributes?: Attributes | null, ...children: Child[]\n): HTMLElementTagNameMap[T]\n\nexport function h(\n tag: string, attributes?: Attributes | null, ...children: Child[]\n): T\n\nexport function h(\n tag: string, attributes?: Attributes | null, ...children: Child[]\n): T {\n const el = document.createElement(tag)\n\n /* Set attributes, if any */\n if (attributes)\n for (const attr of Object.keys(attributes)) {\n if (typeof attributes[attr] === \"undefined\")\n continue\n\n /* Set default attribute or boolean */\n if (typeof attributes[attr] !== \"boolean\")\n el.setAttribute(attr, attributes[attr])\n else\n el.setAttribute(attr, \"\")\n }\n\n /* Append child nodes */\n for (const child of children)\n appendChild(el, child)\n\n /* Return element */\n return el as T\n}\n\n/* ----------------------------------------------------------------------------\n * Namespace\n * ------------------------------------------------------------------------- */\n\nexport declare namespace h {\n namespace JSX {\n type Element = HTMLElement\n type IntrinsicElements = JSXInternal.IntrinsicElements\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Truncate a string after the given number of characters\n *\n * This is not a very reasonable approach, since the summaries kind of suck.\n * It would be better to create something more intelligent, highlighting the\n * search occurrences and making a better summary out of it, but this note was\n * written three years ago, so who knows if we'll ever fix it.\n *\n * @param value - Value to be truncated\n * @param n - Number of characters\n *\n * @returns Truncated value\n */\nexport function truncate(value: string, n: number): string {\n let i = n\n if (value.length > i) {\n while (value[i] !== \" \" && --i > 0) { /* keep eating */ }\n return `${value.substring(0, i)}...`\n }\n return value\n}\n\n/**\n * Round a number for display with repository facts\n *\n * This is a reverse-engineered version of GitHub's weird rounding algorithm\n * for stars, forks and all other numbers. While all numbers below `1,000` are\n * returned as-is, bigger numbers are converted to fixed numbers:\n *\n * - `1,049` => `1k`\n * - `1,050` => `1.1k`\n * - `1,949` => `1.9k`\n * - `1,950` => `2k`\n *\n * @param value - Original value\n *\n * @returns Rounded value\n */\nexport function round(value: number): string {\n if (value > 999) {\n const digits = +((value - 950) % 1000 > 99)\n return `${((value + 0.000001) / 1000).toFixed(digits)}k`\n } else {\n return value.toString()\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n filter,\n fromEvent,\n map,\n shareReplay,\n startWith\n} from \"rxjs\"\n\nimport { getOptionalElement } from \"~/browser\"\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve location hash\n *\n * @returns Location hash\n */\nexport function getLocationHash(): string {\n return location.hash.substring(1)\n}\n\n/**\n * Set location hash\n *\n * Setting a new fragment identifier via `location.hash` will have no effect\n * if the value doesn't change. When a new fragment identifier is set, we want\n * the browser to target the respective element at all times, which is why we\n * use this dirty little trick.\n *\n * @param hash - Location hash\n */\nexport function setLocationHash(hash: string): void {\n const el = h(\"a\", { href: hash })\n el.addEventListener(\"click\", ev => ev.stopPropagation())\n el.click()\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch location hash\n *\n * @returns Location hash observable\n */\nexport function watchLocationHash(): Observable {\n return fromEvent(window, \"hashchange\")\n .pipe(\n map(getLocationHash),\n startWith(getLocationHash()),\n filter(hash => hash.length > 0),\n shareReplay(1)\n )\n}\n\n/**\n * Watch location target\n *\n * @returns Location target observable\n */\nexport function watchLocationTarget(): Observable {\n return watchLocationHash()\n .pipe(\n map(id => getOptionalElement(`[id=\"${id}\"]`)!),\n filter(el => typeof el !== \"undefined\")\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n fromEvent,\n fromEventPattern,\n map,\n merge,\n startWith,\n switchMap\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch media query\n *\n * Note that although `MediaQueryList.addListener` is deprecated we have to\n * use it, because it's the only way to ensure proper downward compatibility.\n *\n * @see https://bit.ly/3dUBH2m - GitHub issue\n *\n * @param query - Media query\n *\n * @returns Media observable\n */\nexport function watchMedia(query: string): Observable {\n const media = matchMedia(query)\n return fromEventPattern(next => (\n media.addListener(() => next(media.matches))\n ))\n .pipe(\n startWith(media.matches)\n )\n}\n\n/**\n * Watch print mode\n *\n * @returns Print observable\n */\nexport function watchPrint(): Observable {\n const media = matchMedia(\"print\")\n return merge(\n fromEvent(window, \"beforeprint\").pipe(map(() => true)),\n fromEvent(window, \"afterprint\").pipe(map(() => false))\n )\n .pipe(\n startWith(media.matches)\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Toggle an observable with a media observable\n *\n * @template T - Data type\n *\n * @param query$ - Media observable\n * @param factory - Observable factory\n *\n * @returns Toggled observable\n */\nexport function at(\n query$: Observable, factory: () => Observable\n): Observable {\n return query$\n .pipe(\n switchMap(active => active ? factory() : EMPTY)\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n catchError,\n from,\n map,\n of,\n shareReplay,\n switchMap,\n throwError\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch the given URL\n *\n * If the request fails (e.g. when dispatched from `file://` locations), the\n * observable will complete without emitting a value.\n *\n * @param url - Request URL\n * @param options - Options\n *\n * @returns Response observable\n */\nexport function request(\n url: URL | string, options: RequestInit = { credentials: \"same-origin\" }\n): Observable {\n return from(fetch(`${url}`, options))\n .pipe(\n catchError(() => EMPTY),\n switchMap(res => res.status !== 200\n ? throwError(() => new Error(res.statusText))\n : of(res)\n )\n )\n}\n\n/**\n * Fetch JSON from the given URL\n *\n * @template T - Data type\n *\n * @param url - Request URL\n * @param options - Options\n *\n * @returns Data observable\n */\nexport function requestJSON(\n url: URL | string, options?: RequestInit\n): Observable {\n return request(url, options)\n .pipe(\n switchMap(res => res.json()),\n shareReplay(1)\n )\n}\n\n/**\n * Fetch XML from the given URL\n *\n * @param url - Request URL\n * @param options - Options\n *\n * @returns Data observable\n */\nexport function requestXML(\n url: URL | string, options?: RequestInit\n): Observable {\n const dom = new DOMParser()\n return request(url, options)\n .pipe(\n switchMap(res => res.text()),\n map(res => dom.parseFromString(res, \"text/xml\")),\n shareReplay(1)\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n defer,\n finalize,\n fromEvent,\n map,\n merge,\n switchMap,\n take,\n throwError\n} from \"rxjs\"\n\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create and load a `script` element\n *\n * This function returns an observable that will emit when the script was\n * successfully loaded, or throw an error if it didn't.\n *\n * @param src - Script URL\n *\n * @returns Script observable\n */\nexport function watchScript(src: string): Observable {\n const script = h(\"script\", { src })\n return defer(() => {\n document.head.appendChild(script)\n return merge(\n fromEvent(script, \"load\"),\n fromEvent(script, \"error\")\n .pipe(\n switchMap(() => (\n throwError(() => new ReferenceError(`Invalid script: ${src}`))\n ))\n )\n )\n .pipe(\n map(() => undefined),\n finalize(() => document.head.removeChild(script)),\n take(1)\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n fromEvent,\n map,\n merge,\n startWith\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Viewport offset\n */\nexport interface ViewportOffset {\n x: number /* Horizontal offset */\n y: number /* Vertical offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve viewport offset\n *\n * On iOS Safari, viewport offset can be negative due to overflow scrolling.\n * As this may induce strange behaviors downstream, we'll just limit it to 0.\n *\n * @returns Viewport offset\n */\nexport function getViewportOffset(): ViewportOffset {\n return {\n x: Math.max(0, scrollX),\n y: Math.max(0, scrollY)\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport offset\n *\n * @returns Viewport offset observable\n */\nexport function watchViewportOffset(): Observable {\n return merge(\n fromEvent(window, \"scroll\", { passive: true }),\n fromEvent(window, \"resize\", { passive: true })\n )\n .pipe(\n map(getViewportOffset),\n startWith(getViewportOffset())\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n fromEvent,\n map,\n startWith\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Viewport size\n */\nexport interface ViewportSize {\n width: number /* Viewport width */\n height: number /* Viewport height */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve viewport size\n *\n * @returns Viewport size\n */\nexport function getViewportSize(): ViewportSize {\n return {\n width: innerWidth,\n height: innerHeight\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport size\n *\n * @returns Viewport size observable\n */\nexport function watchViewportSize(): Observable {\n return fromEvent(window, \"resize\", { passive: true })\n .pipe(\n map(getViewportSize),\n startWith(getViewportSize())\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n combineLatest,\n map,\n shareReplay\n} from \"rxjs\"\n\nimport {\n ViewportOffset,\n watchViewportOffset\n} from \"../offset\"\nimport {\n ViewportSize,\n watchViewportSize\n} from \"../size\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Viewport\n */\nexport interface Viewport {\n offset: ViewportOffset /* Viewport offset */\n size: ViewportSize /* Viewport size */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport\n *\n * @returns Viewport observable\n */\nexport function watchViewport(): Observable {\n return combineLatest([\n watchViewportOffset(),\n watchViewportSize()\n ])\n .pipe(\n map(([offset, size]) => ({ offset, size })),\n shareReplay(1)\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n combineLatest,\n distinctUntilKeyChanged,\n map\n} from \"rxjs\"\n\nimport { Header } from \"~/components\"\n\nimport { getElementOffset } from \"../../element\"\nimport { Viewport } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
/* Header observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport relative to element\n *\n * @param el - Element\n * @param options - Options\n *\n * @returns Viewport observable\n */\nexport function watchViewportAt(\n el: HTMLElement, { viewport$, header$ }: WatchOptions\n): Observable {\n const size$ = viewport$\n .pipe(\n distinctUntilKeyChanged(\"size\")\n )\n\n /* Compute element offset */\n const offset$ = combineLatest([size$, header$])\n .pipe(\n map(() => getElementOffset(el))\n )\n\n /* Compute relative viewport, return hot observable */\n return combineLatest([header$, viewport$, offset$])\n .pipe(\n map(([{ height }, { offset, size }, { x, y }]) => ({\n offset: {\n x: offset.x - x,\n y: offset.y - y + height\n },\n size\n }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n fromEvent,\n map,\n share,\n switchMap,\n tap,\n throttle\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Worker message\n */\nexport interface WorkerMessage {\n type: unknown /* Message type */\n data?: unknown /* Message data */\n}\n\n/**\n * Worker handler\n *\n * @template T - Message type\n */\nexport interface WorkerHandler<\n T extends WorkerMessage\n> {\n tx$: Subject /* Message transmission subject */\n rx$: Observable /* Message receive observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n *\n * @template T - Worker message type\n */\ninterface WatchOptions {\n tx$: Observable /* Message transmission observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch a web worker\n *\n * This function returns an observable that sends all values emitted by the\n * message observable to the web worker. Web worker communication is expected\n * to be bidirectional (request-response) and synchronous. Messages that are\n * emitted during a pending request are throttled, the last one is emitted.\n *\n * @param worker - Web worker\n * @param options - Options\n *\n * @returns Worker message observable\n */\nexport function watchWorker(\n worker: Worker, { tx$ }: WatchOptions\n): Observable {\n\n /* Intercept messages from worker-like objects */\n const rx$ = fromEvent(worker, \"message\")\n .pipe(\n map(({ data }) => data as T)\n )\n\n /* Send and receive messages, return hot observable */\n return tx$\n .pipe(\n throttle(() => rx$, { leading: true, trailing: true }),\n tap(message => worker.postMessage(message)),\n switchMap(() => rx$),\n share()\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { getElement, getLocation } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Feature flag\n */\nexport type Flag =\n | \"announce.dismiss\" /* Dismissable announcement bar */\n | \"content.code.annotate\" /* Code annotations */\n | \"content.lazy\" /* Lazy content elements */\n | \"content.tabs.link\" /* Link content tabs */\n | \"header.autohide\" /* Hide header */\n | \"navigation.expand\" /* Automatic expansion */\n | \"navigation.indexes\" /* Section pages */\n | \"navigation.instant\" /* Instant loading */\n | \"navigation.sections\" /* Section navigation */\n | \"navigation.tabs\" /* Tabs navigation */\n | \"navigation.tabs.sticky\" /* Tabs navigation (sticky) */\n | \"navigation.top\" /* Back-to-top button */\n | \"navigation.tracking\" /* Anchor tracking */\n | \"search.highlight\" /* Search highlighting */\n | \"search.share\" /* Search sharing */\n | \"search.suggest\" /* Search suggestions */\n | \"toc.follow\" /* Following table of contents */\n | \"toc.integrate\" /* Integrated table of contents */\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Translation\n */\nexport type Translation =\n | \"clipboard.copy\" /* Copy to clipboard */\n | \"clipboard.copied\" /* Copied to clipboard */\n | \"search.config.lang\" /* Search language */\n | \"search.config.pipeline\" /* Search pipeline */\n | \"search.config.separator\" /* Search separator */\n | \"search.placeholder\" /* Search */\n | \"search.result.placeholder\" /* Type to start searching */\n | \"search.result.none\" /* No matching documents */\n | \"search.result.one\" /* 1 matching document */\n | \"search.result.other\" /* # matching documents */\n | \"search.result.more.one\" /* 1 more on this page */\n | \"search.result.more.other\" /* # more on this page */\n | \"search.result.term.missing\" /* Missing */\n | \"select.version.title\" /* Version selector */\n\n/**\n * Translations\n */\nexport type Translations = Record\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Versioning\n */\nexport interface Versioning {\n provider: \"mike\" /* Version provider */\n default?: string /* Default version */\n}\n\n/**\n * Configuration\n */\nexport interface Config {\n base: string /* Base URL */\n features: Flag[] /* Feature flags */\n translations: Translations /* Translations */\n search: string /* Search worker URL */\n tags?: Record /* Tags mapping */\n version?: Versioning /* Versioning */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve global configuration and make base URL absolute\n */\nconst script = getElement(\"#__config\")\nconst config: Config = JSON.parse(script.textContent!)\nconfig.base = `${new URL(config.base, getLocation())}`\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve global configuration\n *\n * @returns Global configuration\n */\nexport function configuration(): Config {\n return config\n}\n\n/**\n * Check whether a feature flag is enabled\n *\n * @param flag - Feature flag\n *\n * @returns Test result\n */\nexport function feature(flag: Flag): boolean {\n return config.features.includes(flag)\n}\n\n/**\n * Retrieve the translation for the given key\n *\n * @param key - Key to be translated\n * @param value - Positional value, if any\n *\n * @returns Translation\n */\nexport function translation(\n key: Translation, value?: string | number\n): string {\n return typeof value !== \"undefined\"\n ? config.translations[key].replace(\"#\", value.toString())\n : config.translations[key]\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { getElement, getElements } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Component type\n */\nexport type ComponentType =\n | \"announce\" /* Announcement bar */\n | \"container\" /* Container */\n | \"consent\" /* Consent */\n | \"content\" /* Content */\n | \"dialog\" /* Dialog */\n | \"header\" /* Header */\n | \"header-title\" /* Header title */\n | \"header-topic\" /* Header topic */\n | \"main\" /* Main area */\n | \"outdated\" /* Version warning */\n | \"palette\" /* Color palette */\n | \"search\" /* Search */\n | \"search-query\" /* Search input */\n | \"search-result\" /* Search results */\n | \"search-share\" /* Search sharing */\n | \"search-suggest\" /* Search suggestions */\n | \"sidebar\" /* Sidebar */\n | \"skip\" /* Skip link */\n | \"source\" /* Repository information */\n | \"tabs\" /* Navigation tabs */\n | \"toc\" /* Table of contents */\n | \"top\" /* Back-to-top button */\n\n/**\n * Component\n *\n * @template T - Component type\n * @template U - Reference type\n */\nexport type Component<\n T extends {} = {},\n U extends HTMLElement = HTMLElement\n> =\n T & {\n ref: U /* Component reference */\n }\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Component type map\n */\ninterface ComponentTypeMap {\n \"announce\": HTMLElement /* Announcement bar */\n \"container\": HTMLElement /* Container */\n \"consent\": HTMLElement /* Consent */\n \"content\": HTMLElement /* Content */\n \"dialog\": HTMLElement /* Dialog */\n \"header\": HTMLElement /* Header */\n \"header-title\": HTMLElement /* Header title */\n \"header-topic\": HTMLElement /* Header topic */\n \"main\": HTMLElement /* Main area */\n \"outdated\": HTMLElement /* Version warning */\n \"palette\": HTMLElement /* Color palette */\n \"search\": HTMLElement /* Search */\n \"search-query\": HTMLInputElement /* Search input */\n \"search-result\": HTMLElement /* Search results */\n \"search-share\": HTMLAnchorElement /* Search sharing */\n \"search-suggest\": HTMLElement /* Search suggestions */\n \"sidebar\": HTMLElement /* Sidebar */\n \"skip\": HTMLAnchorElement /* Skip link */\n \"source\": HTMLAnchorElement /* Repository information */\n \"tabs\": HTMLElement /* Navigation tabs */\n \"toc\": HTMLElement /* Table of contents */\n \"top\": HTMLAnchorElement /* Back-to-top button */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve the element for a given component or throw a reference error\n *\n * @template T - Component type\n *\n * @param type - Component type\n * @param node - Node of reference\n *\n * @returns Element\n */\nexport function getComponentElement(\n type: T, node: ParentNode = document\n): ComponentTypeMap[T] {\n return getElement(`[data-md-component=${type}]`, node)\n}\n\n/**\n * Retrieve all elements for a given component\n *\n * @template T - Component type\n *\n * @param type - Component type\n * @param node - Node of reference\n *\n * @returns Elements\n */\nexport function getComponentElements(\n type: T, node: ParentNode = document\n): ComponentTypeMap[T][] {\n return getElements(`[data-md-component=${type}]`, node)\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n Subject,\n defer,\n finalize,\n fromEvent,\n map,\n startWith,\n tap\n} from \"rxjs\"\n\nimport { feature } from \"~/_\"\nimport { getElement } from \"~/browser\"\n\nimport { Component } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Announcement bar\n */\nexport interface Announce {\n hash: number /* Content hash */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch announcement bar\n *\n * @param el - Announcement bar element\n *\n * @returns Announcement bar observable\n */\nexport function watchAnnounce(\n el: HTMLElement\n): Observable {\n const button = getElement(\".md-typeset > :first-child\", el)\n return fromEvent(button, \"click\", { once: true })\n .pipe(\n map(() => getElement(\".md-typeset\", el)),\n map(content => ({ hash: __md_hash(content.innerHTML) }))\n )\n}\n\n/**\n * Mount announcement bar\n *\n * @param el - Announcement bar element\n *\n * @returns Announcement bar component observable\n */\nexport function mountAnnounce(\n el: HTMLElement\n): Observable> {\n if (!feature(\"announce.dismiss\") || !el.childElementCount)\n return EMPTY\n\n /* Mount component on subscription */\n return defer(() => {\n const push$ = new Subject()\n push$\n .pipe(\n startWith({ hash: __md_get(\"__announce\") })\n )\n .subscribe(({ hash }) => {\n if (hash && hash === (__md_get(\"__announce\") ?? hash)) {\n el.hidden = true\n\n /* Persist preference in local storage */\n __md_set(\"__announce\", hash)\n }\n })\n\n /* Create and return component */\n return watchAnnounce(el)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n finalize,\n map,\n tap\n} from \"rxjs\"\n\nimport { Component } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Consent\n */\nexport interface Consent {\n hidden: boolean /* Consent is hidden */\n}\n\n/**\n * Consent defaults\n */\nexport interface ConsentDefaults {\n analytics?: boolean /* Consent for Analytics */\n github?: boolean /* Consent for GitHub */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n target$: Observable /* Target observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n target$: Observable /* Target observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch consent\n *\n * @param el - Consent element\n * @param options - Options\n *\n * @returns Consent observable\n */\nexport function watchConsent(\n el: HTMLElement, { target$ }: WatchOptions\n): Observable {\n return target$\n .pipe(\n map(target => ({ hidden: target !== el }))\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Mount consent\n *\n * @param el - Consent element\n * @param options - Options\n *\n * @returns Consent component observable\n */\nexport function mountConsent(\n el: HTMLElement, options: MountOptions\n): Observable> {\n const internal$ = new Subject()\n internal$.subscribe(({ hidden }) => {\n el.hidden = hidden\n })\n\n /* Create and return component */\n return watchConsent(el, options)\n .pipe(\n tap(state => internal$.next(state)),\n finalize(() => internal$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport ClipboardJS from \"clipboard\"\nimport {\n EMPTY,\n Observable,\n Subject,\n defer,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n filter,\n finalize,\n map,\n mergeWith,\n switchMap,\n take,\n tap\n} from \"rxjs\"\n\nimport { feature } from \"~/_\"\nimport {\n getElementContentSize,\n watchElementSize,\n watchElementVisibility\n} from \"~/browser\"\nimport { renderClipboardButton } from \"~/templates\"\n\nimport { Component } from \"../../../_\"\nimport {\n Annotation,\n mountAnnotationList\n} from \"../../annotation\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Code block\n */\nexport interface CodeBlock {\n scrollable: boolean /* Code block overflows */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n target$: Observable /* Location target observable */\n print$: Observable /* Media print observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Global sequence number for code blocks\n */\nlet sequence = 0\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Find candidate list element directly following a code block\n *\n * @param el - Code block element\n *\n * @returns List element or nothing\n */\nfunction findCandidateList(el: HTMLElement): HTMLElement | undefined {\n if (el.nextElementSibling) {\n const sibling = el.nextElementSibling as HTMLElement\n if (sibling.tagName === \"OL\")\n return sibling\n\n /* Skip empty paragraphs - see https://bit.ly/3r4ZJ2O */\n else if (sibling.tagName === \"P\" && !sibling.children.length)\n return findCandidateList(sibling)\n }\n\n /* Everything else */\n return undefined\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch code block\n *\n * This function monitors size changes of the viewport, as well as switches of\n * content tabs with embedded code blocks, as both may trigger overflow.\n *\n * @param el - Code block element\n *\n * @returns Code block observable\n */\nexport function watchCodeBlock(\n el: HTMLElement\n): Observable {\n return watchElementSize(el)\n .pipe(\n map(({ width }) => {\n const content = getElementContentSize(el)\n return {\n scrollable: content.width > width\n }\n }),\n distinctUntilKeyChanged(\"scrollable\")\n )\n}\n\n/**\n * Mount code block\n *\n * This function ensures that an overflowing code block is focusable through\n * keyboard, so it can be scrolled without a mouse to improve on accessibility.\n * Furthermore, if code annotations are enabled, they are mounted if and only\n * if the code block is currently visible, e.g., not in a hidden content tab.\n *\n * Note that code blocks may be mounted eagerly or lazily. If they're mounted\n * lazily (on first visibility), code annotation anchor links will not work,\n * as they are evaluated on initial page load, and code annotations in general\n * might feel a little bumpier.\n *\n * @param el - Code block element\n * @param options - Options\n *\n * @returns Code block and annotation component observable\n */\nexport function mountCodeBlock(\n el: HTMLElement, options: MountOptions\n): Observable> {\n const { matches: hover } = matchMedia(\"(hover)\")\n\n /* Defer mounting of code block - see https://bit.ly/3vHVoVD */\n const factory$ = defer(() => {\n const push$ = new Subject()\n push$.subscribe(({ scrollable }) => {\n if (scrollable && hover)\n el.setAttribute(\"tabindex\", \"0\")\n else\n el.removeAttribute(\"tabindex\")\n })\n\n /* Render button for Clipboard.js integration */\n if (ClipboardJS.isSupported()) {\n const parent = el.closest(\"pre\")!\n parent.id = `__code_${++sequence}`\n parent.insertBefore(\n renderClipboardButton(parent.id),\n el\n )\n }\n\n /* Handle code annotations */\n const container = el.closest(\".highlight\")\n if (container instanceof HTMLElement) {\n const list = findCandidateList(container)\n\n /* Mount code annotations, if enabled */\n if (typeof list !== \"undefined\" && (\n container.classList.contains(\"annotate\") ||\n feature(\"content.code.annotate\")\n )) {\n const annotations$ = mountAnnotationList(list, el, options)\n\n /* Create and return component */\n return watchCodeBlock(el)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state })),\n mergeWith(\n watchElementSize(container)\n .pipe(\n map(({ width, height }) => width && height),\n distinctUntilChanged(),\n switchMap(active => active ? annotations$ : EMPTY)\n )\n )\n )\n }\n }\n\n /* Create and return component */\n return watchCodeBlock(el)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n\n /* Mount code block lazily */\n if (feature(\"content.lazy\"))\n return watchElementVisibility(el)\n .pipe(\n filter(visible => visible),\n take(1),\n switchMap(() => factory$)\n )\n\n /* Mount code block */\n return factory$\n}\n", "/*\n * Copyright (c) 2016-2021 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a tooltip\n *\n * @param id - Tooltip identifier\n *\n * @returns Element\n */\nexport function renderTooltip(id?: string): HTMLElement {\n return (\n
\n
\n
\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"~/utilities\"\n\nimport { renderTooltip } from \"../tooltip\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render an annotation\n *\n * @param id - Annotation identifier\n * @param prefix - Tooltip identifier prefix\n *\n * @returns Element\n */\nexport function renderAnnotation(\n id: string | number, prefix?: string\n): HTMLElement {\n prefix = prefix ? `${prefix}_annotation_${id}` : undefined\n\n /* Render tooltip with anchor, if given */\n if (prefix) {\n const anchor = prefix ? `#${prefix}` : undefined\n return (\n \n )\n } else {\n return (\n \n )\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { translation } from \"~/_\"\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a 'copy-to-clipboard' button\n *\n * @param id - Unique identifier\n *\n * @returns Element\n */\nexport function renderClipboardButton(id: string): HTMLElement {\n return (\n code`}\n >\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { ComponentChild } from \"preact\"\n\nimport { configuration, feature, translation } from \"~/_\"\nimport {\n SearchDocument,\n SearchMetadata,\n SearchResultItem\n} from \"~/integrations/search\"\nimport { h, truncate } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Render flag\n */\nconst enum Flag {\n TEASER = 1, /* Render teaser */\n PARENT = 2 /* Render as parent */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper function\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a search document\n *\n * @param document - Search document\n * @param flag - Render flags\n *\n * @returns Element\n */\nfunction renderSearchDocument(\n document: SearchDocument & SearchMetadata, flag: Flag\n): HTMLElement {\n const parent = flag & Flag.PARENT\n const teaser = flag & Flag.TEASER\n\n /* Render missing query terms */\n const missing = Object.keys(document.terms)\n .filter(key => !document.terms[key])\n .reduce((list, key) => [\n ...list, {key}, \" \"\n ], [])\n .slice(0, -1)\n\n /* Assemble query string for highlighting */\n const url = new URL(document.location)\n if (feature(\"search.highlight\"))\n url.searchParams.set(\"h\", Object.entries(document.terms)\n .filter(([, match]) => match)\n .reduce((highlight, [value]) => `${highlight} ${value}`.trim(), \"\")\n )\n\n /* Render article or section, depending on flags */\n const { tags } = configuration()\n return (\n \n \n {parent > 0 &&
}\n

{document.title}

\n {teaser > 0 && document.text.length > 0 &&\n

\n {truncate(document.text, 320)}\n

\n }\n {document.tags && (\n
\n {document.tags.map(tag => {\n const id = tag.replace(/<[^>]+>/g, \"\")\n const type = tags\n ? id in tags\n ? `md-tag-icon md-tag-icon--${tags[id]}`\n : \"md-tag-icon\"\n : \"\"\n return (\n {tag}\n )\n })}\n
\n )}\n {teaser > 0 && missing.length > 0 &&\n

\n {translation(\"search.result.term.missing\")}: {...missing}\n

\n }\n \n
\n )\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a search result\n *\n * @param result - Search result\n *\n * @returns Element\n */\nexport function renderSearchResultItem(\n result: SearchResultItem\n): HTMLElement {\n const threshold = result[0].score\n const docs = [...result]\n\n /* Find and extract parent article */\n const parent = docs.findIndex(doc => !doc.location.includes(\"#\"))\n const [article] = docs.splice(parent, 1)\n\n /* Determine last index above threshold */\n let index = docs.findIndex(doc => doc.score < threshold)\n if (index === -1)\n index = docs.length\n\n /* Partition sections */\n const best = docs.slice(0, index)\n const more = docs.slice(index)\n\n /* Render children */\n const children = [\n renderSearchDocument(article, Flag.PARENT | +(!parent && index === 0)),\n ...best.map(section => renderSearchDocument(section, Flag.TEASER)),\n ...more.length ? [\n
\n \n {more.length > 0 && more.length === 1\n ? translation(\"search.result.more.one\")\n : translation(\"search.result.more.other\", more.length)\n }\n \n {...more.map(section => renderSearchDocument(section, Flag.TEASER))}\n
\n ] : []\n ]\n\n /* Render search result */\n return (\n
  • \n {children}\n
  • \n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SourceFacts } from \"~/components\"\nimport { h, round } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render repository facts\n *\n * @param facts - Repository facts\n *\n * @returns Element\n */\nexport function renderSourceFacts(facts: SourceFacts): HTMLElement {\n return (\n
      \n {Object.entries(facts).map(([key, value]) => (\n
    • \n {typeof value === \"number\" ? round(value) : value}\n
    • \n ))}\n
    \n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Tabbed control type\n */\ntype TabbedControlType =\n | \"prev\"\n | \"next\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render control for content tabs\n *\n * @param type - Control type\n *\n * @returns Element\n */\nexport function renderTabbedControl(\n type: TabbedControlType\n): HTMLElement {\n const classes = `tabbed-control tabbed-control--${type}`\n return (\n \n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a table inside a wrapper to improve scrolling on mobile\n *\n * @param table - Table element\n *\n * @returns Element\n */\nexport function renderTable(table: HTMLElement): HTMLElement {\n return (\n
    \n
    \n {table}\n
    \n
    \n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { configuration, translation } from \"~/_\"\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Version\n */\nexport interface Version {\n version: string /* Version identifier */\n title: string /* Version title */\n aliases: string[] /* Version aliases */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a version\n *\n * @param version - Version\n *\n * @returns Element\n */\nfunction renderVersion(version: Version): HTMLElement {\n const config = configuration()\n\n /* Ensure trailing slash - see https://bit.ly/3rL5u3f */\n const url = new URL(`../${version.version}/`, config.base)\n return (\n
  • \n \n {version.title}\n \n
  • \n )\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a version selector\n *\n * @param versions - Versions\n * @param active - Active version\n *\n * @returns Element\n */\nexport function renderVersionSelector(\n versions: Version[], active: Version\n): HTMLElement {\n return (\n
    \n \n {active.title}\n \n
      \n {versions.map(renderVersion)}\n
    \n
    \n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n animationFrameScheduler,\n auditTime,\n combineLatest,\n debounceTime,\n defer,\n delay,\n filter,\n finalize,\n fromEvent,\n map,\n merge,\n switchMap,\n take,\n takeLast,\n takeUntil,\n tap,\n throttleTime,\n withLatestFrom\n} from \"rxjs\"\n\nimport {\n ElementOffset,\n getActiveElement,\n getElementSize,\n watchElementContentOffset,\n watchElementFocus,\n watchElementOffset,\n watchElementVisibility\n} from \"~/browser\"\n\nimport { Component } from \"../../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Annotation\n */\nexport interface Annotation {\n active: boolean /* Annotation is active */\n offset: ElementOffset /* Annotation offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n target$: Observable /* Location target observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch annotation\n *\n * @param el - Annotation element\n * @param container - Containing element\n *\n * @returns Annotation observable\n */\nexport function watchAnnotation(\n el: HTMLElement, container: HTMLElement\n): Observable {\n const offset$ = defer(() => combineLatest([\n watchElementOffset(el),\n watchElementContentOffset(container)\n ]))\n .pipe(\n map(([{ x, y }, scroll]): ElementOffset => {\n const { width, height } = getElementSize(el)\n return ({\n x: x - scroll.x + width / 2,\n y: y - scroll.y + height / 2\n })\n })\n )\n\n /* Actively watch annotation on focus */\n return watchElementFocus(el)\n .pipe(\n switchMap(active => offset$\n .pipe(\n map(offset => ({ active, offset })),\n take(+!active || Infinity)\n )\n )\n )\n}\n\n/**\n * Mount annotation\n *\n * @param el - Annotation element\n * @param container - Containing element\n * @param options - Options\n *\n * @returns Annotation component observable\n */\nexport function mountAnnotation(\n el: HTMLElement, container: HTMLElement, { target$ }: MountOptions\n): Observable> {\n const [tooltip, index] = Array.from(el.children)\n\n /* Mount component on subscription */\n return defer(() => {\n const push$ = new Subject()\n const done$ = push$.pipe(takeLast(1))\n push$.subscribe({\n\n /* Handle emission */\n next({ offset }) {\n el.style.setProperty(\"--md-tooltip-x\", `${offset.x}px`)\n el.style.setProperty(\"--md-tooltip-y\", `${offset.y}px`)\n },\n\n /* Handle complete */\n complete() {\n el.style.removeProperty(\"--md-tooltip-x\")\n el.style.removeProperty(\"--md-tooltip-y\")\n }\n })\n\n /* Start animation only when annotation is visible */\n watchElementVisibility(el)\n .pipe(\n takeUntil(done$)\n )\n .subscribe(visible => {\n el.toggleAttribute(\"data-md-visible\", visible)\n })\n\n /* Toggle tooltip presence to mitigate empty lines when copying */\n merge(\n push$.pipe(filter(({ active }) => active)),\n push$.pipe(debounceTime(250), filter(({ active }) => !active))\n )\n .subscribe({\n\n /* Handle emission */\n next({ active }) {\n if (active)\n el.prepend(tooltip)\n else\n tooltip.remove()\n },\n\n /* Handle complete */\n complete() {\n el.prepend(tooltip)\n }\n })\n\n /* Toggle tooltip visibility */\n push$\n .pipe(\n auditTime(16, animationFrameScheduler)\n )\n .subscribe(({ active }) => {\n tooltip.classList.toggle(\"md-tooltip--active\", active)\n })\n\n /* Track relative origin of tooltip */\n push$\n .pipe(\n throttleTime(125, animationFrameScheduler),\n filter(() => !!el.offsetParent),\n map(() => el.offsetParent!.getBoundingClientRect()),\n map(({ x }) => x)\n )\n .subscribe({\n\n /* Handle emission */\n next(origin) {\n if (origin)\n el.style.setProperty(\"--md-tooltip-0\", `${-origin}px`)\n else\n el.style.removeProperty(\"--md-tooltip-0\")\n },\n\n /* Handle complete */\n complete() {\n el.style.removeProperty(\"--md-tooltip-0\")\n }\n })\n\n /* Allow to copy link without scrolling to anchor */\n fromEvent(index, \"click\")\n .pipe(\n takeUntil(done$),\n filter(ev => !(ev.metaKey || ev.ctrlKey))\n )\n .subscribe(ev => ev.preventDefault())\n\n /* Allow to open link in new tab or blur on close */\n fromEvent(index, \"mousedown\")\n .pipe(\n takeUntil(done$),\n withLatestFrom(push$)\n )\n .subscribe(([ev, { active }]) => {\n\n /* Open in new tab */\n if (ev.button !== 0 || ev.metaKey || ev.ctrlKey) {\n ev.preventDefault()\n\n /* Close annotation */\n } else if (active) {\n ev.preventDefault()\n\n /* Focus parent annotation, if any */\n const parent = el.parentElement!.closest(\".md-annotation\")\n if (parent instanceof HTMLElement)\n parent.focus()\n else\n getActiveElement()?.blur()\n }\n })\n\n /* Open and focus annotation on location target */\n target$\n .pipe(\n takeUntil(done$),\n filter(target => target === tooltip),\n delay(125)\n )\n .subscribe(() => el.focus())\n\n /* Create and return component */\n return watchAnnotation(el, container)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n Subject,\n defer,\n finalize,\n merge,\n share,\n takeLast,\n takeUntil\n} from \"rxjs\"\n\nimport {\n getElement,\n getElements,\n getOptionalElement\n} from \"~/browser\"\nimport { renderAnnotation } from \"~/templates\"\n\nimport { Component } from \"../../../_\"\nimport {\n Annotation,\n mountAnnotation\n} from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n target$: Observable /* Location target observable */\n print$: Observable /* Media print observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Find all annotation markers in the given code block\n *\n * @param container - Containing element\n *\n * @returns Annotation markers\n */\nfunction findAnnotationMarkers(container: HTMLElement): Text[] {\n const markers: Text[] = []\n for (const el of getElements(\".c, .c1, .cm\", container)) {\n const nodes: Text[] = []\n\n /* Find all text nodes in current element */\n const it = document.createNodeIterator(el, NodeFilter.SHOW_TEXT)\n for (let node = it.nextNode(); node; node = it.nextNode())\n nodes.push(node as Text)\n\n /* Find all markers in each text node */\n for (let text of nodes) {\n let match: RegExpExecArray | null\n\n /* Split text at marker and add to list */\n while ((match = /(\\(\\d+\\))(!)?/.exec(text.textContent!))) {\n const [, id, force] = match\n if (typeof force === \"undefined\") {\n const marker = text.splitText(match.index)\n text = marker.splitText(id.length)\n markers.push(marker)\n\n /* Replace entire text with marker */\n } else {\n text.textContent = id\n markers.push(text)\n break\n }\n }\n }\n }\n return markers\n}\n\n/**\n * Swap the child nodes of two elements\n *\n * @param source - Source element\n * @param target - Target element\n */\nfunction swap(source: HTMLElement, target: HTMLElement): void {\n target.append(...Array.from(source.childNodes))\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount annotation list\n *\n * This function analyzes the containing code block and checks for markers\n * referring to elements in the given annotation list. If no markers are found,\n * the list is left untouched. Otherwise, list elements are rendered as\n * annotations inside the code block.\n *\n * @param el - Annotation list element\n * @param container - Containing element\n * @param options - Options\n *\n * @returns Annotation component observable\n */\nexport function mountAnnotationList(\n el: HTMLElement, container: HTMLElement, { target$, print$ }: MountOptions\n): Observable> {\n\n /* Compute prefix for tooltip anchors */\n const parent = container.closest(\"[id]\")\n const prefix = parent?.id\n\n /* Find and replace all markers with empty annotations */\n const annotations = new Map()\n for (const marker of findAnnotationMarkers(container)) {\n const [, id] = marker.textContent!.match(/\\((\\d+)\\)/)!\n if (getOptionalElement(`li:nth-child(${id})`, el)) {\n annotations.set(id, renderAnnotation(id, prefix))\n marker.replaceWith(annotations.get(id)!)\n }\n }\n\n /* Keep list if there are no annotations to render */\n if (annotations.size === 0)\n return EMPTY\n\n /* Mount component on subscription */\n return defer(() => {\n const done$ = new Subject()\n\n /* Retrieve container pairs for swapping */\n const pairs: [HTMLElement, HTMLElement][] = []\n for (const [id, annotation] of annotations)\n pairs.push([\n getElement(\".md-typeset\", annotation),\n getElement(`li:nth-child(${id})`, el)\n ])\n\n /* Handle print mode - see https://bit.ly/3rgPdpt */\n print$\n .pipe(\n takeUntil(done$.pipe(takeLast(1)))\n )\n .subscribe(active => {\n el.hidden = !active\n\n /* Show annotations in code block or list (print) */\n for (const [inner, child] of pairs)\n if (!active)\n swap(child, inner)\n else\n swap(inner, child)\n })\n\n /* Create and return component */\n return merge(...[...annotations]\n .map(([, annotation]) => (\n mountAnnotation(annotation, container, { target$ })\n ))\n )\n .pipe(\n finalize(() => done$.complete()),\n share()\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n map,\n of,\n shareReplay,\n tap\n} from \"rxjs\"\n\nimport { watchScript } from \"~/browser\"\nimport { h } from \"~/utilities\"\n\nimport { Component } from \"../../../_\"\n\nimport themeCSS from \"./index.css\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mermaid diagram\n */\nexport interface Mermaid {}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Mermaid instance observable\n */\nlet mermaid$: Observable\n\n/**\n * Global sequence number for diagrams\n */\nlet sequence = 0\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch Mermaid script\n *\n * @returns Mermaid scripts observable\n */\nfunction fetchScripts(): Observable {\n return typeof mermaid === \"undefined\" || mermaid instanceof Element\n ? watchScript(\"https://unpkg.com/mermaid@9.1.7/dist/mermaid.min.js\")\n : of(undefined)\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount Mermaid diagram\n *\n * @param el - Code block element\n *\n * @returns Mermaid diagram component observable\n */\nexport function mountMermaid(\n el: HTMLElement\n): Observable> {\n el.classList.remove(\"mermaid\") // Hack: mitigate https://bit.ly/3CiN6Du\n mermaid$ ||= fetchScripts()\n .pipe(\n tap(() => mermaid.initialize({\n startOnLoad: false,\n themeCSS,\n sequence: {\n actorFontSize: \"16px\", // Hack: mitigate https://bit.ly/3y0NEi3\n messageFontSize: \"16px\",\n noteFontSize: \"16px\"\n }\n })),\n map(() => undefined),\n shareReplay(1)\n )\n\n /* Render diagram */\n mermaid$.subscribe(() => {\n el.classList.add(\"mermaid\") // Hack: mitigate https://bit.ly/3CiN6Du\n const id = `__mermaid_${sequence++}`\n const host = h(\"div\", { class: \"mermaid\" })\n mermaid.mermaidAPI.render(id, el.textContent, (svg: string) => {\n\n /* Create a shadow root and inject diagram */\n const shadow = host.attachShadow({ mode: \"closed\" })\n shadow.innerHTML = svg\n\n /* Replace code block with diagram */\n el.replaceWith(host)\n })\n })\n\n /* Create and return component */\n return mermaid$\n .pipe(\n map(() => ({ ref: el }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n defer,\n filter,\n finalize,\n map,\n merge,\n tap\n} from \"rxjs\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Details\n */\nexport interface Details {\n action: \"open\" | \"close\" /* Details state */\n reveal?: boolean /* Details is revealed */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n target$: Observable /* Location target observable */\n print$: Observable /* Media print observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n target$: Observable /* Location target observable */\n print$: Observable /* Media print observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch details\n *\n * @param el - Details element\n * @param options - Options\n *\n * @returns Details observable\n */\nexport function watchDetails(\n el: HTMLDetailsElement, { target$, print$ }: WatchOptions\n): Observable
    {\n let open = true\n return merge(\n\n /* Open and focus details on location target */\n target$\n .pipe(\n map(target => target.closest(\"details:not([open])\")!),\n filter(details => el === details),\n map(() => ({\n action: \"open\", reveal: true\n }) as Details)\n ),\n\n /* Open details on print and close afterwards */\n print$\n .pipe(\n filter(active => active || !open),\n tap(() => open = el.open),\n map(active => ({\n action: active ? \"open\" : \"close\"\n }) as Details)\n )\n )\n}\n\n/**\n * Mount details\n *\n * This function ensures that `details` tags are opened on anchor jumps and\n * prior to printing, so the whole content of the page is visible.\n *\n * @param el - Details element\n * @param options - Options\n *\n * @returns Details component observable\n */\nexport function mountDetails(\n el: HTMLDetailsElement, options: MountOptions\n): Observable> {\n return defer(() => {\n const push$ = new Subject
    ()\n push$.subscribe(({ action, reveal }) => {\n el.toggleAttribute(\"open\", action === \"open\")\n if (reveal)\n el.scrollIntoView()\n })\n\n /* Create and return component */\n return watchDetails(el, options)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, of } from \"rxjs\"\n\nimport { renderTable } from \"~/templates\"\nimport { h } from \"~/utilities\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Data table\n */\nexport interface DataTable {}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Sentinel for replacement\n */\nconst sentinel = h(\"table\")\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount data table\n *\n * This function wraps a data table in another scrollable container, so it can\n * be smoothly scrolled on smaller screen sizes and won't break the layout.\n *\n * @param el - Data table element\n *\n * @returns Data table component observable\n */\nexport function mountDataTable(\n el: HTMLElement\n): Observable> {\n el.replaceWith(sentinel)\n sentinel.replaceWith(renderTable(el))\n\n /* Create and return component */\n return of({ ref: el })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n animationFrameScheduler,\n asyncScheduler,\n auditTime,\n combineLatest,\n defer,\n finalize,\n fromEvent,\n map,\n merge,\n skip,\n startWith,\n subscribeOn,\n takeLast,\n takeUntil,\n tap,\n withLatestFrom\n} from \"rxjs\"\n\nimport { feature } from \"~/_\"\nimport {\n Viewport,\n getElement,\n getElementContentOffset,\n getElementContentSize,\n getElementOffset,\n getElementSize,\n getElements,\n watchElementContentOffset,\n watchElementSize\n} from \"~/browser\"\nimport { renderTabbedControl } from \"~/templates\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Content tabs\n */\nexport interface ContentTabs {\n active: HTMLLabelElement /* Active tab label */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch content tabs\n *\n * @param el - Content tabs element\n *\n * @returns Content tabs observable\n */\nexport function watchContentTabs(\n el: HTMLElement\n): Observable {\n const inputs = getElements(\":scope > input\", el)\n const initial = inputs.find(input => input.checked) || inputs[0]\n return merge(...inputs.map(input => fromEvent(input, \"change\")\n .pipe(\n map(() => getElement(`label[for=\"${input.id}\"]`))\n )\n ))\n .pipe(\n startWith(getElement(`label[for=\"${initial.id}\"]`)),\n map(active => ({ active }))\n )\n}\n\n/**\n * Mount content tabs\n *\n * This function scrolls the active tab into view. While this functionality is\n * provided by browsers as part of `scrollInfoView`, browsers will always also\n * scroll the vertical axis, which we do not want. Thus, we decided to provide\n * this functionality ourselves.\n *\n * @param el - Content tabs element\n * @param options - Options\n *\n * @returns Content tabs component observable\n */\nexport function mountContentTabs(\n el: HTMLElement, { viewport$ }: MountOptions\n): Observable> {\n\n /* Render content tab previous button for pagination */\n const prev = renderTabbedControl(\"prev\")\n el.append(prev)\n\n /* Render content tab next button for pagination */\n const next = renderTabbedControl(\"next\")\n el.append(next)\n\n /* Mount component on subscription */\n const container = getElement(\".tabbed-labels\", el)\n return defer(() => {\n const push$ = new Subject()\n const done$ = push$.pipe(takeLast(1))\n combineLatest([push$, watchElementSize(el)])\n .pipe(\n auditTime(1, animationFrameScheduler),\n takeUntil(done$)\n )\n .subscribe({\n\n /* Handle emission */\n next([{ active }, size]) {\n const offset = getElementOffset(active)\n const { width } = getElementSize(active)\n\n /* Set tab indicator offset and width */\n el.style.setProperty(\"--md-indicator-x\", `${offset.x}px`)\n el.style.setProperty(\"--md-indicator-width\", `${width}px`)\n\n /* Scroll container to active content tab */\n const content = getElementContentOffset(container)\n if (\n offset.x < content.x ||\n offset.x + width > content.x + size.width\n )\n container.scrollTo({\n left: Math.max(0, offset.x - 16),\n behavior: \"smooth\"\n })\n },\n\n /* Handle complete */\n complete() {\n el.style.removeProperty(\"--md-indicator-x\")\n el.style.removeProperty(\"--md-indicator-width\")\n }\n })\n\n /* Hide content tab buttons on borders */\n combineLatest([\n watchElementContentOffset(container),\n watchElementSize(container)\n ])\n .pipe(\n takeUntil(done$)\n )\n .subscribe(([offset, size]) => {\n const content = getElementContentSize(container)\n prev.hidden = offset.x < 16\n next.hidden = offset.x > content.width - size.width - 16\n })\n\n /* Paginate content tab container on click */\n merge(\n fromEvent(prev, \"click\").pipe(map(() => -1)),\n fromEvent(next, \"click\").pipe(map(() => +1))\n )\n .pipe(\n takeUntil(done$)\n )\n .subscribe(direction => {\n const { width } = getElementSize(container)\n container.scrollBy({\n left: width * direction,\n behavior: \"smooth\"\n })\n })\n\n /* Set up linking of content tabs, if enabled */\n if (feature(\"content.tabs.link\"))\n push$.pipe(\n skip(1),\n withLatestFrom(viewport$)\n )\n .subscribe(([{ active }, { offset }]) => {\n const tab = active.innerText.trim()\n if (active.hasAttribute(\"data-md-switching\")) {\n active.removeAttribute(\"data-md-switching\")\n\n /* Determine viewport offset of active tab */\n } else {\n const y = el.offsetTop - offset.y\n\n /* Passively activate other tabs */\n for (const set of getElements(\"[data-tabs]\"))\n for (const input of getElements(\n \":scope > input\", set\n )) {\n const label = getElement(`label[for=\"${input.id}\"]`)\n if (\n label !== active &&\n label.innerText.trim() === tab\n ) {\n label.setAttribute(\"data-md-switching\", \"\")\n input.click()\n break\n }\n }\n\n /* Bring active tab into view */\n window.scrollTo({\n top: el.offsetTop - y\n })\n\n /* Persist active tabs in local storage */\n const tabs = __md_get(\"__tabs\") || []\n __md_set(\"__tabs\", [...new Set([tab, ...tabs])])\n }\n })\n\n /* Create and return component */\n return watchContentTabs(el)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n .pipe(\n subscribeOn(asyncScheduler)\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, merge } from \"rxjs\"\n\nimport { Viewport, getElements } from \"~/browser\"\n\nimport { Component } from \"../../_\"\nimport { Annotation } from \"../annotation\"\nimport {\n CodeBlock,\n Mermaid,\n mountCodeBlock,\n mountMermaid\n} from \"../code\"\nimport {\n Details,\n mountDetails\n} from \"../details\"\nimport {\n DataTable,\n mountDataTable\n} from \"../table\"\nimport {\n ContentTabs,\n mountContentTabs\n} from \"../tabs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Content\n */\nexport type Content =\n | Annotation\n | ContentTabs\n | CodeBlock\n | Mermaid\n | DataTable\n | Details\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n target$: Observable /* Location target observable */\n print$: Observable /* Media print observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount content\n *\n * This function mounts all components that are found in the content of the\n * actual article, including code blocks, data tables and details.\n *\n * @param el - Content element\n * @param options - Options\n *\n * @returns Content component observable\n */\nexport function mountContent(\n el: HTMLElement, { viewport$, target$, print$ }: MountOptions\n): Observable> {\n return merge(\n\n /* Code blocks */\n ...getElements(\"pre:not(.mermaid) > code\", el)\n .map(child => mountCodeBlock(child, { target$, print$ })),\n\n /* Mermaid diagrams */\n ...getElements(\"pre.mermaid\", el)\n .map(child => mountMermaid(child)),\n\n /* Data tables */\n ...getElements(\"table:not([class])\", el)\n .map(child => mountDataTable(child)),\n\n /* Details */\n ...getElements(\"details\", el)\n .map(child => mountDetails(child, { target$, print$ })),\n\n /* Content tabs */\n ...getElements(\"[data-tabs]\", el)\n .map(child => mountContentTabs(child, { viewport$ }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n defer,\n delay,\n finalize,\n map,\n merge,\n of,\n switchMap,\n tap\n} from \"rxjs\"\n\nimport { getElement } from \"~/browser\"\n\nimport { Component } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Dialog\n */\nexport interface Dialog {\n message: string /* Dialog message */\n active: boolean /* Dialog is active */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n alert$: Subject /* Alert subject */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n alert$: Subject /* Alert subject */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch dialog\n *\n * @param _el - Dialog element\n * @param options - Options\n *\n * @returns Dialog observable\n */\nexport function watchDialog(\n _el: HTMLElement, { alert$ }: WatchOptions\n): Observable {\n return alert$\n .pipe(\n switchMap(message => merge(\n of(true),\n of(false).pipe(delay(2000))\n )\n .pipe(\n map(active => ({ message, active }))\n )\n )\n )\n}\n\n/**\n * Mount dialog\n *\n * This function reveals the dialog in the right corner when a new alert is\n * emitted through the subject that is passed as part of the options.\n *\n * @param el - Dialog element\n * @param options - Options\n *\n * @returns Dialog component observable\n */\nexport function mountDialog(\n el: HTMLElement, options: MountOptions\n): Observable> {\n const inner = getElement(\".md-typeset\", el)\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe(({ message, active }) => {\n el.classList.toggle(\"md-dialog--active\", active)\n inner.textContent = message\n })\n\n /* Create and return component */\n return watchDialog(el, options)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n bufferCount,\n combineLatest,\n combineLatestWith,\n defer,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n filter,\n map,\n of,\n shareReplay,\n startWith,\n switchMap,\n takeLast,\n takeUntil\n} from \"rxjs\"\n\nimport { feature } from \"~/_\"\nimport {\n Viewport,\n watchElementSize,\n watchToggle\n} from \"~/browser\"\n\nimport { Component } from \"../../_\"\nimport { Main } from \"../../main\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Header\n */\nexport interface Header {\n height: number /* Header visible height */\n hidden: boolean /* Header is hidden */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n main$: Observable
    /* Main area observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Compute whether the header is hidden\n *\n * If the user scrolls past a certain threshold, the header can be hidden when\n * scrolling down, and shown when scrolling up.\n *\n * @param options - Options\n *\n * @returns Toggle observable\n */\nfunction isHidden({ viewport$ }: WatchOptions): Observable {\n if (!feature(\"header.autohide\"))\n return of(false)\n\n /* Compute direction and turning point */\n const direction$ = viewport$\n .pipe(\n map(({ offset: { y } }) => y),\n bufferCount(2, 1),\n map(([a, b]) => [a < b, b] as const),\n distinctUntilKeyChanged(0)\n )\n\n /* Compute whether header should be hidden */\n const hidden$ = combineLatest([viewport$, direction$])\n .pipe(\n filter(([{ offset }, [, y]]) => Math.abs(y - offset.y) > 100),\n map(([, [direction]]) => direction),\n distinctUntilChanged()\n )\n\n /* Compute threshold for hiding */\n const search$ = watchToggle(\"search\")\n return combineLatest([viewport$, search$])\n .pipe(\n map(([{ offset }, search]) => offset.y > 400 && !search),\n distinctUntilChanged(),\n switchMap(active => active ? hidden$ : of(false)),\n startWith(false)\n )\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch header\n *\n * @param el - Header element\n * @param options - Options\n *\n * @returns Header observable\n */\nexport function watchHeader(\n el: HTMLElement, options: WatchOptions\n): Observable
    {\n return defer(() => combineLatest([\n watchElementSize(el),\n isHidden(options)\n ]))\n .pipe(\n map(([{ height }, hidden]) => ({\n height,\n hidden\n })),\n distinctUntilChanged((a, b) => (\n a.height === b.height &&\n a.hidden === b.hidden\n )),\n shareReplay(1)\n )\n}\n\n/**\n * Mount header\n *\n * This function manages the different states of the header, i.e. whether it's\n * hidden or rendered with a shadow. This depends heavily on the main area.\n *\n * @param el - Header element\n * @param options - Options\n *\n * @returns Header component observable\n */\nexport function mountHeader(\n el: HTMLElement, { header$, main$ }: MountOptions\n): Observable> {\n return defer(() => {\n const push$ = new Subject
    ()\n const done$ = push$.pipe(takeLast(1))\n push$\n .pipe(\n distinctUntilKeyChanged(\"active\"),\n combineLatestWith(header$)\n )\n .subscribe(([{ active }, { hidden }]) => {\n el.classList.toggle(\"md-header--shadow\", active && !hidden)\n el.hidden = hidden\n })\n\n /* Link to main area */\n main$.subscribe(push$)\n\n /* Create and return component */\n return header$\n .pipe(\n takeUntil(done$),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n Subject,\n defer,\n distinctUntilKeyChanged,\n finalize,\n map,\n tap\n} from \"rxjs\"\n\nimport {\n Viewport,\n getElementSize,\n getOptionalElement,\n watchViewportAt\n} from \"~/browser\"\n\nimport { Component } from \"../../_\"\nimport { Header } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Header\n */\nexport interface HeaderTitle {\n active: boolean /* Header title is active */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch header title\n *\n * @param el - Heading element\n * @param options - Options\n *\n * @returns Header title observable\n */\nexport function watchHeaderTitle(\n el: HTMLElement, { viewport$, header$ }: WatchOptions\n): Observable {\n return watchViewportAt(el, { viewport$, header$ })\n .pipe(\n map(({ offset: { y } }) => {\n const { height } = getElementSize(el)\n return {\n active: y >= height\n }\n }),\n distinctUntilKeyChanged(\"active\")\n )\n}\n\n/**\n * Mount header title\n *\n * This function swaps the header title from the site title to the title of the\n * current page when the user scrolls past the first headline.\n *\n * @param el - Header title element\n * @param options - Options\n *\n * @returns Header title component observable\n */\nexport function mountHeaderTitle(\n el: HTMLElement, options: MountOptions\n): Observable> {\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe(({ active }) => {\n el.classList.toggle(\"md-header__title--active\", active)\n })\n\n /* Obtain headline, if any */\n const heading = getOptionalElement(\"article h1\")\n if (typeof heading === \"undefined\")\n return EMPTY\n\n /* Create and return component */\n return watchHeaderTitle(heading, options)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n combineLatest,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n map,\n switchMap\n} from \"rxjs\"\n\nimport {\n Viewport,\n watchElementSize\n} from \"~/browser\"\n\nimport { Header } from \"../header\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Main area\n */\nexport interface Main {\n offset: number /* Main area top offset */\n height: number /* Main area visible height */\n active: boolean /* Main area is active */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch main area\n *\n * This function returns an observable that computes the visual parameters of\n * the main area which depends on the viewport vertical offset and height, as\n * well as the height of the header element, if the header is fixed.\n *\n * @param el - Main area element\n * @param options - Options\n *\n * @returns Main area observable\n */\nexport function watchMain(\n el: HTMLElement, { viewport$, header$ }: WatchOptions\n): Observable
    {\n\n /* Compute necessary adjustment for header */\n const adjust$ = header$\n .pipe(\n map(({ height }) => height),\n distinctUntilChanged()\n )\n\n /* Compute the main area's top and bottom borders */\n const border$ = adjust$\n .pipe(\n switchMap(() => watchElementSize(el)\n .pipe(\n map(({ height }) => ({\n top: el.offsetTop,\n bottom: el.offsetTop + height\n })),\n distinctUntilKeyChanged(\"bottom\")\n )\n )\n )\n\n /* Compute the main area's offset, visible height and if we scrolled past */\n return combineLatest([adjust$, border$, viewport$])\n .pipe(\n map(([header, { top, bottom }, { offset: { y }, size: { height } }]) => {\n height = Math.max(0, height\n - Math.max(0, top - y, header)\n - Math.max(0, height + y - bottom)\n )\n return {\n offset: top - header,\n height,\n active: top - header <= y\n }\n }),\n distinctUntilChanged((a, b) => (\n a.offset === b.offset &&\n a.height === b.height &&\n a.active === b.active\n ))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n asyncScheduler,\n defer,\n finalize,\n fromEvent,\n map,\n mergeMap,\n observeOn,\n of,\n shareReplay,\n startWith,\n tap\n} from \"rxjs\"\n\nimport { getElements } from \"~/browser\"\n\nimport { Component } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Palette colors\n */\nexport interface PaletteColor {\n scheme?: string /* Color scheme */\n primary?: string /* Primary color */\n accent?: string /* Accent color */\n}\n\n/**\n * Palette\n */\nexport interface Palette {\n index: number /* Palette index */\n color: PaletteColor /* Palette colors */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch color palette\n *\n * @param inputs - Color palette element\n *\n * @returns Color palette observable\n */\nexport function watchPalette(\n inputs: HTMLInputElement[]\n): Observable {\n const current = __md_get(\"__palette\") || {\n index: inputs.findIndex(input => matchMedia(\n input.getAttribute(\"data-md-color-media\")!\n ).matches)\n }\n\n /* Emit changes in color palette */\n return of(...inputs)\n .pipe(\n mergeMap(input => fromEvent(input, \"change\")\n .pipe(\n map(() => input)\n )\n ),\n startWith(inputs[Math.max(0, current.index)]),\n map(input => ({\n index: inputs.indexOf(input),\n color: {\n scheme: input.getAttribute(\"data-md-color-scheme\"),\n primary: input.getAttribute(\"data-md-color-primary\"),\n accent: input.getAttribute(\"data-md-color-accent\")\n }\n } as Palette)),\n shareReplay(1)\n )\n}\n\n/**\n * Mount color palette\n *\n * @param el - Color palette element\n *\n * @returns Color palette component observable\n */\nexport function mountPalette(\n el: HTMLElement\n): Observable> {\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe(palette => {\n document.body.setAttribute(\"data-md-color-switching\", \"\")\n\n /* Set color palette */\n for (const [key, value] of Object.entries(palette.color))\n document.body.setAttribute(`data-md-color-${key}`, value)\n\n /* Toggle visibility */\n for (let index = 0; index < inputs.length; index++) {\n const label = inputs[index].nextElementSibling\n if (label instanceof HTMLElement)\n label.hidden = palette.index !== index\n }\n\n /* Persist preference in local storage */\n __md_set(\"__palette\", palette)\n })\n\n /* Revert transition durations after color switch */\n push$.pipe(observeOn(asyncScheduler))\n .subscribe(() => {\n document.body.removeAttribute(\"data-md-color-switching\")\n })\n\n /* Create and return component */\n const inputs = getElements(\"input\", el)\n return watchPalette(inputs)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport ClipboardJS from \"clipboard\"\nimport {\n Observable,\n Subject,\n map,\n tap\n} from \"rxjs\"\n\nimport { translation } from \"~/_\"\nimport { getElement } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Setup options\n */\ninterface SetupOptions {\n alert$: Subject /* Alert subject */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Extract text to copy\n *\n * @param el - HTML element\n *\n * @returns Extracted text\n */\nfunction extract(el: HTMLElement): string {\n el.setAttribute(\"data-md-copying\", \"\")\n const text = el.innerText\n el.removeAttribute(\"data-md-copying\")\n return text\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up Clipboard.js integration\n *\n * @param options - Options\n */\nexport function setupClipboardJS(\n { alert$ }: SetupOptions\n): void {\n if (ClipboardJS.isSupported()) {\n new Observable(subscriber => {\n new ClipboardJS(\"[data-clipboard-target], [data-clipboard-text]\", {\n text: el => (\n el.getAttribute(\"data-clipboard-text\")! ||\n extract(getElement(\n el.getAttribute(\"data-clipboard-target\")!\n ))\n )\n })\n .on(\"success\", ev => subscriber.next(ev))\n })\n .pipe(\n tap(ev => {\n const trigger = ev.trigger as HTMLElement\n trigger.focus()\n }),\n map(() => translation(\"clipboard.copied\"))\n )\n .subscribe(alert$)\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n catchError,\n defaultIfEmpty,\n map,\n of,\n tap\n} from \"rxjs\"\n\nimport { configuration } from \"~/_\"\nimport { getElements, requestXML } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Sitemap, i.e. a list of URLs\n */\nexport type Sitemap = string[]\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Preprocess a list of URLs\n *\n * This function replaces the `site_url` in the sitemap with the actual base\n * URL, to allow instant loading to work in occasions like Netlify previews.\n *\n * @param urls - URLs\n *\n * @returns URL path parts\n */\nfunction preprocess(urls: Sitemap): Sitemap {\n if (urls.length < 2)\n return [\"\"]\n\n /* Take the first two URLs and remove everything after the last slash */\n const [root, next] = [...urls]\n .sort((a, b) => a.length - b.length)\n .map(url => url.replace(/[^/]+$/, \"\"))\n\n /* Compute common prefix */\n let index = 0\n if (root === next)\n index = root.length\n else\n while (root.charCodeAt(index) === next.charCodeAt(index))\n index++\n\n /* Remove common prefix and return in original order */\n return urls.map(url => url.replace(root.slice(0, index), \"\"))\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch the sitemap for the given base URL\n *\n * @param base - Base URL\n *\n * @returns Sitemap observable\n */\nexport function fetchSitemap(base?: URL): Observable {\n const cached = __md_get(\"__sitemap\", sessionStorage, base)\n if (cached) {\n return of(cached)\n } else {\n const config = configuration()\n return requestXML(new URL(\"sitemap.xml\", base || config.base))\n .pipe(\n map(sitemap => preprocess(getElements(\"loc\", sitemap)\n .map(node => node.textContent!)\n )),\n catchError(() => EMPTY), // @todo refactor instant loading\n defaultIfEmpty([]),\n tap(sitemap => __md_set(\"__sitemap\", sitemap, sessionStorage, base))\n )\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n NEVER,\n Observable,\n Subject,\n bufferCount,\n catchError,\n concatMap,\n debounceTime,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n filter,\n fromEvent,\n map,\n merge,\n of,\n sample,\n share,\n skip,\n skipUntil,\n switchMap\n} from \"rxjs\"\n\nimport { configuration, feature } from \"~/_\"\nimport {\n Viewport,\n ViewportOffset,\n getElements,\n getOptionalElement,\n request,\n setLocation,\n setLocationHash\n} from \"~/browser\"\nimport { getComponentElement } from \"~/components\"\nimport { h } from \"~/utilities\"\n\nimport { fetchSitemap } from \"../sitemap\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * History state\n */\nexport interface HistoryState {\n url: URL /* State URL */\n offset?: ViewportOffset /* State viewport offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Setup options\n */\ninterface SetupOptions {\n document$: Subject /* Document subject */\n location$: Subject /* Location subject */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up instant loading\n *\n * When fetching, theoretically, we could use `responseType: \"document\"`, but\n * since all MkDocs links are relative, we need to make sure that the current\n * location matches the document we just loaded. Otherwise any relative links\n * in the document could use the old location.\n *\n * This is the reason why we need to synchronize history events and the process\n * of fetching the document for navigation changes (except `popstate` events):\n *\n * 1. Fetch document via `XMLHTTPRequest`\n * 2. Set new location via `history.pushState`\n * 3. Parse and emit fetched document\n *\n * For `popstate` events, we must not use `history.pushState`, or the forward\n * history will be irreversibly overwritten. In case the request fails, the\n * location change is dispatched regularly.\n *\n * @param options - Options\n */\nexport function setupInstantLoading(\n { document$, location$, viewport$ }: SetupOptions\n): void {\n const config = configuration()\n if (location.protocol === \"file:\")\n return\n\n /* Disable automatic scroll restoration */\n if (\"scrollRestoration\" in history) {\n history.scrollRestoration = \"manual\"\n\n /* Hack: ensure that reloads restore viewport offset */\n fromEvent(window, \"beforeunload\")\n .subscribe(() => {\n history.scrollRestoration = \"auto\"\n })\n }\n\n /* Hack: ensure absolute favicon link to omit 404s when switching */\n const favicon = getOptionalElement(\"link[rel=icon]\")\n if (typeof favicon !== \"undefined\")\n favicon.href = favicon.href\n\n /* Intercept internal navigation */\n const push$ = fetchSitemap()\n .pipe(\n map(paths => paths.map(path => `${new URL(path, config.base)}`)),\n switchMap(urls => fromEvent(document.body, \"click\")\n .pipe(\n filter(ev => !ev.metaKey && !ev.ctrlKey),\n switchMap(ev => {\n if (ev.target instanceof Element) {\n const el = ev.target.closest(\"a\")\n if (el && !el.target) {\n const url = new URL(el.href)\n\n /* Canonicalize URL */\n url.search = \"\"\n url.hash = \"\"\n\n /* Check if URL should be intercepted */\n if (\n url.pathname !== location.pathname &&\n urls.includes(url.toString())\n ) {\n ev.preventDefault()\n return of({\n url: new URL(el.href)\n })\n }\n }\n }\n return NEVER\n })\n )\n ),\n share()\n )\n\n /* Intercept history back and forward */\n const pop$ = fromEvent(window, \"popstate\")\n .pipe(\n filter(ev => ev.state !== null),\n map(ev => ({\n url: new URL(location.href),\n offset: ev.state\n })),\n share()\n )\n\n /* Emit location change */\n merge(push$, pop$)\n .pipe(\n distinctUntilChanged((a, b) => a.url.href === b.url.href),\n map(({ url }) => url)\n )\n .subscribe(location$)\n\n /* Fetch document via `XMLHTTPRequest` */\n const response$ = location$\n .pipe(\n distinctUntilKeyChanged(\"pathname\"),\n switchMap(url => request(url.href)\n .pipe(\n catchError(() => {\n setLocation(url)\n return NEVER\n })\n )\n ),\n share()\n )\n\n /* Set new location via `history.pushState` */\n push$\n .pipe(\n sample(response$)\n )\n .subscribe(({ url }) => {\n history.pushState({}, \"\", `${url}`)\n })\n\n /* Parse and emit fetched document */\n const dom = new DOMParser()\n response$\n .pipe(\n switchMap(res => res.text()),\n map(res => dom.parseFromString(res, \"text/html\"))\n )\n .subscribe(document$)\n\n /* Replace meta tags and components */\n document$\n .pipe(\n skip(1)\n )\n .subscribe(replacement => {\n for (const selector of [\n\n /* Meta tags */\n \"title\",\n \"link[rel=canonical]\",\n \"meta[name=author]\",\n \"meta[name=description]\",\n\n /* Components */\n \"[data-md-component=announce]\",\n \"[data-md-component=container]\",\n \"[data-md-component=header-topic]\",\n \"[data-md-component=outdated]\",\n \"[data-md-component=logo]\",\n \"[data-md-component=skip]\",\n ...feature(\"navigation.tabs.sticky\")\n ? [\"[data-md-component=tabs]\"]\n : []\n ]) {\n const source = getOptionalElement(selector)\n const target = getOptionalElement(selector, replacement)\n if (\n typeof source !== \"undefined\" &&\n typeof target !== \"undefined\"\n ) {\n source.replaceWith(target)\n }\n }\n })\n\n /* Re-evaluate scripts */\n document$\n .pipe(\n skip(1),\n map(() => getComponentElement(\"container\")),\n switchMap(el => getElements(\"script\", el)),\n concatMap(el => {\n const script = h(\"script\")\n if (el.src) {\n for (const name of el.getAttributeNames())\n script.setAttribute(name, el.getAttribute(name)!)\n el.replaceWith(script)\n\n /* Complete when script is loaded */\n return new Observable(observer => {\n script.onload = () => observer.complete()\n })\n\n /* Complete immediately */\n } else {\n script.textContent = el.textContent\n el.replaceWith(script)\n return EMPTY\n }\n })\n )\n .subscribe()\n\n /* Emit history state change */\n merge(push$, pop$)\n .pipe(\n sample(document$)\n )\n .subscribe(({ url, offset }) => {\n if (url.hash && !offset) {\n setLocationHash(url.hash)\n } else {\n window.scrollTo(0, offset?.y || 0)\n }\n })\n\n /* Debounce update of viewport offset */\n viewport$\n .pipe(\n skipUntil(push$),\n debounceTime(250),\n distinctUntilKeyChanged(\"offset\")\n )\n .subscribe(({ offset }) => {\n history.replaceState(offset, \"\")\n })\n\n /* Set viewport offset from history */\n merge(push$, pop$)\n .pipe(\n bufferCount(2, 1),\n filter(([a, b]) => a.url.pathname === b.url.pathname),\n map(([, state]) => state)\n )\n .subscribe(({ offset }) => {\n window.scrollTo(0, offset?.y || 0)\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport escapeHTML from \"escape-html\"\n\nimport { SearchIndexDocument } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search document\n */\nexport interface SearchDocument extends SearchIndexDocument {\n parent?: SearchIndexDocument /* Parent article */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search document mapping\n */\nexport type SearchDocumentMap = Map\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search document mapping\n *\n * @param docs - Search index documents\n *\n * @returns Search document map\n */\nexport function setupSearchDocumentMap(\n docs: SearchIndexDocument[]\n): SearchDocumentMap {\n const documents = new Map()\n const parents = new Set()\n for (const doc of docs) {\n const [path, hash] = doc.location.split(\"#\")\n\n /* Extract location, title and tags */\n const location = doc.location\n const title = doc.title\n const tags = doc.tags\n\n /* Escape and cleanup text */\n const text = escapeHTML(doc.text)\n .replace(/\\s+(?=[,.:;!?])/g, \"\")\n .replace(/\\s+/g, \" \")\n\n /* Handle section */\n if (hash) {\n const parent = documents.get(path)!\n\n /* Ignore first section, override article */\n if (!parents.has(parent)) {\n parent.title = doc.title\n parent.text = text\n\n /* Remember that we processed the article */\n parents.add(parent)\n\n /* Add subsequent section */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n parent\n })\n }\n\n /* Add article */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n ...tags && { tags }\n })\n }\n }\n return documents\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport escapeHTML from \"escape-html\"\n\nimport { SearchIndexConfig } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search highlight function\n *\n * @param value - Value\n *\n * @returns Highlighted value\n */\nexport type SearchHighlightFn = (value: string) => string\n\n/**\n * Search highlight factory function\n *\n * @param query - Query value\n *\n * @returns Search highlight function\n */\nexport type SearchHighlightFactoryFn = (query: string) => SearchHighlightFn\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search highlighter\n *\n * @param config - Search index configuration\n * @param escape - Whether to escape HTML\n *\n * @returns Search highlight factory function\n */\nexport function setupSearchHighlighter(\n config: SearchIndexConfig, escape: boolean\n): SearchHighlightFactoryFn {\n const separator = new RegExp(config.separator, \"img\")\n const highlight = (_: unknown, data: string, term: string) => {\n return `${data}${term}`\n }\n\n /* Return factory function */\n return (query: string) => {\n query = query\n .replace(/[\\s*+\\-:~^]+/g, \" \")\n .trim()\n\n /* Create search term match expression */\n const match = new RegExp(`(^|${config.separator})(${\n query\n .replace(/[|\\\\{}()[\\]^$+*?.-]/g, \"\\\\$&\")\n .replace(separator, \"|\")\n })`, \"img\")\n\n /* Highlight string value */\n return value => (\n escape\n ? escapeHTML(value)\n : value\n )\n .replace(match, highlight)\n .replace(/<\\/mark>(\\s+)]*>/img, \"$1\")\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search transformation function\n *\n * @param value - Query value\n *\n * @returns Transformed query value\n */\nexport type SearchTransformFn = (value: string) => string\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Default transformation function\n *\n * 1. Search for terms in quotation marks and prepend a `+` modifier to denote\n * that the resulting document must contain all terms, converting the query\n * to an `AND` query (as opposed to the default `OR` behavior). While users\n * may expect terms enclosed in quotation marks to map to span queries, i.e.\n * for which order is important, Lunr.js doesn't support them, so the best\n * we can do is to convert the terms to an `AND` query.\n *\n * 2. Replace control characters which are not located at the beginning of the\n * query or preceded by white space, or are not followed by a non-whitespace\n * character or are at the end of the query string. Furthermore, filter\n * unmatched quotation marks.\n *\n * 3. Trim excess whitespace from left and right.\n *\n * @param query - Query value\n *\n * @returns Transformed query value\n */\nexport function defaultTransform(query: string): string {\n return query\n .split(/\"([^\"]+)\"/g) /* => 1 */\n .map((terms, index) => index & 1\n ? terms.replace(/^\\b|^(?![^\\x00-\\x7F]|$)|\\s+/g, \" +\")\n : terms\n )\n .join(\"\")\n .replace(/\"|(?:^|\\s+)[*+\\-:^~]+(?=\\s+|$)/g, \"\") /* => 2 */\n .trim() /* => 3 */\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SearchIndex, SearchResult } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search message type\n */\nexport const enum SearchMessageType {\n SETUP, /* Search index setup */\n READY, /* Search index ready */\n QUERY, /* Search query */\n RESULT /* Search results */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Message containing the data necessary to setup the search index\n */\nexport interface SearchSetupMessage {\n type: SearchMessageType.SETUP /* Message type */\n data: SearchIndex /* Message data */\n}\n\n/**\n * Message indicating the search index is ready\n */\nexport interface SearchReadyMessage {\n type: SearchMessageType.READY /* Message type */\n}\n\n/**\n * Message containing a search query\n */\nexport interface SearchQueryMessage {\n type: SearchMessageType.QUERY /* Message type */\n data: string /* Message data */\n}\n\n/**\n * Message containing results for a search query\n */\nexport interface SearchResultMessage {\n type: SearchMessageType.RESULT /* Message type */\n data: SearchResult /* Message data */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Message exchanged with the search worker\n */\nexport type SearchMessage =\n | SearchSetupMessage\n | SearchReadyMessage\n | SearchQueryMessage\n | SearchResultMessage\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Type guard for search setup messages\n *\n * @param message - Search worker message\n *\n * @returns Test result\n */\nexport function isSearchSetupMessage(\n message: SearchMessage\n): message is SearchSetupMessage {\n return message.type === SearchMessageType.SETUP\n}\n\n/**\n * Type guard for search ready messages\n *\n * @param message - Search worker message\n *\n * @returns Test result\n */\nexport function isSearchReadyMessage(\n message: SearchMessage\n): message is SearchReadyMessage {\n return message.type === SearchMessageType.READY\n}\n\n/**\n * Type guard for search query messages\n *\n * @param message - Search worker message\n *\n * @returns Test result\n */\nexport function isSearchQueryMessage(\n message: SearchMessage\n): message is SearchQueryMessage {\n return message.type === SearchMessageType.QUERY\n}\n\n/**\n * Type guard for search result messages\n *\n * @param message - Search worker message\n *\n * @returns Test result\n */\nexport function isSearchResultMessage(\n message: SearchMessage\n): message is SearchResultMessage {\n return message.type === SearchMessageType.RESULT\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n ObservableInput,\n Subject,\n from,\n map,\n share\n} from \"rxjs\"\n\nimport { configuration, feature, translation } from \"~/_\"\nimport { WorkerHandler, watchWorker } from \"~/browser\"\n\nimport { SearchIndex } from \"../../_\"\nimport {\n SearchOptions,\n SearchPipeline\n} from \"../../options\"\nimport {\n SearchMessage,\n SearchMessageType,\n SearchSetupMessage,\n isSearchResultMessage\n} from \"../message\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search worker\n */\nexport type SearchWorker = WorkerHandler\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up search index\n *\n * @param data - Search index\n *\n * @returns Search index\n */\nfunction setupSearchIndex({ config, docs }: SearchIndex): SearchIndex {\n\n /* Override default language with value from translation */\n if (config.lang.length === 1 && config.lang[0] === \"en\")\n config.lang = [\n translation(\"search.config.lang\")\n ]\n\n /* Override default separator with value from translation */\n if (config.separator === \"[\\\\s\\\\-]+\")\n config.separator = translation(\"search.config.separator\")\n\n /* Set pipeline from translation */\n const pipeline = translation(\"search.config.pipeline\")\n .split(/\\s*,\\s*/)\n .filter(Boolean) as SearchPipeline\n\n /* Determine search options */\n const options: SearchOptions = {\n pipeline,\n suggestions: feature(\"search.suggest\")\n }\n\n /* Return search index after defaulting */\n return { config, docs, options }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up search worker\n *\n * This function creates a web worker to set up and query the search index,\n * which is done using Lunr.js. The index must be passed as an observable to\n * enable hacks like _localsearch_ via search index embedding as JSON.\n *\n * @param url - Worker URL\n * @param index - Search index observable input\n *\n * @returns Search worker\n */\nexport function setupSearchWorker(\n url: string, index: ObservableInput\n): SearchWorker {\n const config = configuration()\n const worker = new Worker(url)\n\n /* Create communication channels and resolve relative links */\n const tx$ = new Subject()\n const rx$ = watchWorker(worker, { tx$ })\n .pipe(\n map(message => {\n if (isSearchResultMessage(message)) {\n for (const result of message.data.items)\n for (const document of result)\n document.location = `${new URL(document.location, config.base)}`\n }\n return message\n }),\n share()\n )\n\n /* Set up search index */\n from(index)\n .pipe(\n map(data => ({\n type: SearchMessageType.SETUP,\n data: setupSearchIndex(data)\n } as SearchSetupMessage))\n )\n .subscribe(tx$.next.bind(tx$))\n\n /* Return search worker */\n return { tx$, rx$ }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Subject,\n catchError,\n combineLatest,\n filter,\n fromEvent,\n map,\n of,\n switchMap,\n withLatestFrom\n} from \"rxjs\"\n\nimport { configuration } from \"~/_\"\nimport {\n getElement,\n getLocation,\n requestJSON,\n setLocation\n} from \"~/browser\"\nimport { getComponentElements } from \"~/components\"\nimport {\n Version,\n renderVersionSelector\n} from \"~/templates\"\n\nimport { fetchSitemap } from \"../sitemap\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Setup options\n */\ninterface SetupOptions {\n document$: Subject /* Document subject */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up version selector\n *\n * @param options - Options\n */\nexport function setupVersionSelector(\n { document$ }: SetupOptions\n): void {\n const config = configuration()\n const versions$ = requestJSON(\n new URL(\"../versions.json\", config.base)\n )\n .pipe(\n catchError(() => EMPTY) // @todo refactor instant loading\n )\n\n /* Determine current version */\n const current$ = versions$\n .pipe(\n map(versions => {\n const [, current] = config.base.match(/([^/]+)\\/?$/)!\n return versions.find(({ version, aliases }) => (\n version === current || aliases.includes(current)\n )) || versions[0]\n })\n )\n\n /* Intercept inter-version navigation */\n versions$\n .pipe(\n map(versions => new Map(versions.map(version => [\n `${new URL(`../${version.version}/`, config.base)}`,\n version\n ]))),\n switchMap(urls => fromEvent(document.body, \"click\")\n .pipe(\n filter(ev => !ev.metaKey && !ev.ctrlKey),\n withLatestFrom(current$),\n switchMap(([ev, current]) => {\n if (ev.target instanceof Element) {\n const el = ev.target.closest(\"a\")\n if (el && !el.target && urls.has(el.href)) {\n const url = el.href\n // This is a temporary hack to detect if a version inside the\n // version selector or on another part of the site was clicked.\n // If we're inside the version selector, we definitely want to\n // find the same page, as we might have different deployments\n // due to aliases. However, if we're outside the version\n // selector, we must abort here, because we might otherwise\n // interfere with instant loading. We need to refactor this\n // at some point together with instant loading.\n //\n // See https://github.com/squidfunk/mkdocs-material/issues/4012\n if (!ev.target.closest(\".md-version\")) {\n const version = urls.get(url)!\n if (version === current)\n return EMPTY\n }\n ev.preventDefault()\n return of(url)\n }\n }\n return EMPTY\n }),\n switchMap(url => {\n const { version } = urls.get(url)!\n return fetchSitemap(new URL(url))\n .pipe(\n map(sitemap => {\n const location = getLocation()\n const path = location.href.replace(config.base, \"\")\n return sitemap.includes(path.split(\"#\")[0])\n ? new URL(`../${version}/${path}`, config.base)\n : new URL(url)\n })\n )\n })\n )\n )\n )\n .subscribe(url => setLocation(url))\n\n /* Render version selector and warning */\n combineLatest([versions$, current$])\n .subscribe(([versions, current]) => {\n const topic = getElement(\".md-header__topic\")\n topic.appendChild(renderVersionSelector(versions, current))\n })\n\n /* Integrate outdated version banner with instant loading */\n document$.pipe(switchMap(() => current$))\n .subscribe(current => {\n\n /* Check if version state was already determined */\n let outdated = __md_get(\"__outdated\", sessionStorage)\n if (outdated === null) {\n const latest = config.version?.default || \"latest\"\n outdated = !current.aliases.includes(latest)\n\n /* Persist version state in session storage */\n __md_set(\"__outdated\", outdated, sessionStorage)\n }\n\n /* Unhide outdated version banner */\n if (outdated)\n for (const warning of getComponentElements(\"outdated\"))\n warning.hidden = false\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n combineLatest,\n delay,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n filter,\n finalize,\n fromEvent,\n map,\n merge,\n share,\n shareReplay,\n startWith,\n take,\n takeLast,\n takeUntil,\n tap\n} from \"rxjs\"\n\nimport { translation } from \"~/_\"\nimport {\n getLocation,\n setToggle,\n watchElementFocus,\n watchToggle\n} from \"~/browser\"\nimport {\n SearchMessageType,\n SearchQueryMessage,\n SearchWorker,\n defaultTransform,\n isSearchReadyMessage\n} from \"~/integrations\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search query\n */\nexport interface SearchQuery {\n value: string /* Query value */\n focus: boolean /* Query focus */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch search query\n *\n * Note that the focus event which triggers re-reading the current query value\n * is delayed by `1ms` so the input's empty state is allowed to propagate.\n *\n * @param el - Search query element\n * @param worker - Search worker\n *\n * @returns Search query observable\n */\nexport function watchSearchQuery(\n el: HTMLInputElement, { rx$ }: SearchWorker\n): Observable {\n const fn = __search?.transform || defaultTransform\n\n /* Immediately show search dialog */\n const { searchParams } = getLocation()\n if (searchParams.has(\"q\"))\n setToggle(\"search\", true)\n\n /* Intercept query parameter (deep link) */\n const param$ = rx$\n .pipe(\n filter(isSearchReadyMessage),\n take(1),\n map(() => searchParams.get(\"q\") || \"\")\n )\n\n /* Remove query parameter when search is closed */\n watchToggle(\"search\")\n .pipe(\n filter(active => !active),\n take(1)\n )\n .subscribe(() => {\n const url = new URL(location.href)\n url.searchParams.delete(\"q\")\n history.replaceState({}, \"\", `${url}`)\n })\n\n /* Set query from parameter */\n param$.subscribe(value => { // TODO: not ideal - find a better way\n if (value) {\n el.value = value\n el.focus()\n }\n })\n\n /* Intercept focus and input events */\n const focus$ = watchElementFocus(el)\n const value$ = merge(\n fromEvent(el, \"keyup\"),\n fromEvent(el, \"focus\").pipe(delay(1)),\n param$\n )\n .pipe(\n map(() => fn(el.value)),\n startWith(\"\"),\n distinctUntilChanged(),\n )\n\n /* Combine into single observable */\n return combineLatest([value$, focus$])\n .pipe(\n map(([value, focus]) => ({ value, focus })),\n shareReplay(1)\n )\n}\n\n/**\n * Mount search query\n *\n * @param el - Search query element\n * @param worker - Search worker\n *\n * @returns Search query component observable\n */\nexport function mountSearchQuery(\n el: HTMLInputElement, { tx$, rx$ }: SearchWorker\n): Observable> {\n const push$ = new Subject()\n const done$ = push$.pipe(takeLast(1))\n\n /* Handle value changes */\n push$\n .pipe(\n distinctUntilKeyChanged(\"value\"),\n map(({ value }): SearchQueryMessage => ({\n type: SearchMessageType.QUERY,\n data: value\n }))\n )\n .subscribe(tx$.next.bind(tx$))\n\n /* Handle focus changes */\n push$\n .pipe(\n distinctUntilKeyChanged(\"focus\")\n )\n .subscribe(({ focus }) => {\n if (focus) {\n setToggle(\"search\", focus)\n el.placeholder = \"\"\n } else {\n el.placeholder = translation(\"search.placeholder\")\n }\n })\n\n /* Handle reset */\n fromEvent(el.form!, \"reset\")\n .pipe(\n takeUntil(done$)\n )\n .subscribe(() => el.focus())\n\n /* Create and return component */\n return watchSearchQuery(el, { tx$, rx$ })\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state })),\n share()\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n bufferCount,\n filter,\n finalize,\n map,\n merge,\n of,\n skipUntil,\n switchMap,\n take,\n tap,\n withLatestFrom,\n zipWith\n} from \"rxjs\"\n\nimport { translation } from \"~/_\"\nimport {\n getElement,\n watchElementBoundary\n} from \"~/browser\"\nimport {\n SearchResult,\n SearchWorker,\n isSearchReadyMessage,\n isSearchResultMessage\n} from \"~/integrations\"\nimport { renderSearchResultItem } from \"~/templates\"\nimport { round } from \"~/utilities\"\n\nimport { Component } from \"../../_\"\nimport { SearchQuery } from \"../query\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n query$: Observable /* Search query observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search result list\n *\n * This function performs a lazy rendering of the search results, depending on\n * the vertical offset of the search result container.\n *\n * @param el - Search result list element\n * @param worker - Search worker\n * @param options - Options\n *\n * @returns Search result list component observable\n */\nexport function mountSearchResult(\n el: HTMLElement, { rx$ }: SearchWorker, { query$ }: MountOptions\n): Observable> {\n const push$ = new Subject()\n const boundary$ = watchElementBoundary(el.parentElement!)\n .pipe(\n filter(Boolean)\n )\n\n /* Retrieve nested components */\n const meta = getElement(\":scope > :first-child\", el)\n const list = getElement(\":scope > :last-child\", el)\n\n /* Wait until search is ready */\n const ready$ = rx$\n .pipe(\n filter(isSearchReadyMessage),\n take(1)\n )\n\n /* Update search result metadata */\n push$\n .pipe(\n withLatestFrom(query$),\n skipUntil(ready$)\n )\n .subscribe(([{ items }, { value }]) => {\n if (value) {\n switch (items.length) {\n\n /* No results */\n case 0:\n meta.textContent = translation(\"search.result.none\")\n break\n\n /* One result */\n case 1:\n meta.textContent = translation(\"search.result.one\")\n break\n\n /* Multiple result */\n default:\n meta.textContent = translation(\n \"search.result.other\",\n round(items.length)\n )\n }\n } else {\n meta.textContent = translation(\"search.result.placeholder\")\n }\n })\n\n /* Update search result list */\n push$\n .pipe(\n tap(() => list.innerHTML = \"\"),\n switchMap(({ items }) => merge(\n of(...items.slice(0, 10)),\n of(...items.slice(10))\n .pipe(\n bufferCount(4),\n zipWith(boundary$),\n switchMap(([chunk]) => chunk)\n )\n ))\n )\n .subscribe(result => list.appendChild(\n renderSearchResultItem(result)\n ))\n\n /* Filter search result message */\n const result$ = rx$\n .pipe(\n filter(isSearchResultMessage),\n map(({ data }) => data)\n )\n\n /* Create and return component */\n return result$\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n finalize,\n fromEvent,\n map,\n tap\n} from \"rxjs\"\n\nimport { getLocation } from \"~/browser\"\n\nimport { Component } from \"../../_\"\nimport { SearchQuery } from \"../query\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search sharing\n */\nexport interface SearchShare {\n url: URL /* Deep link for sharing */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n query$: Observable /* Search query observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n query$: Observable /* Search query observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search sharing\n *\n * @param _el - Search sharing element\n * @param options - Options\n *\n * @returns Search sharing observable\n */\nexport function watchSearchShare(\n _el: HTMLElement, { query$ }: WatchOptions\n): Observable {\n return query$\n .pipe(\n map(({ value }) => {\n const url = getLocation()\n url.hash = \"\"\n url.searchParams.delete(\"h\")\n url.searchParams.set(\"q\", value)\n return { url }\n })\n )\n}\n\n/**\n * Mount search sharing\n *\n * @param el - Search sharing element\n * @param options - Options\n *\n * @returns Search sharing component observable\n */\nexport function mountSearchShare(\n el: HTMLAnchorElement, options: MountOptions\n): Observable> {\n const push$ = new Subject()\n push$.subscribe(({ url }) => {\n el.setAttribute(\"data-clipboard-text\", el.href)\n el.href = `${url}`\n })\n\n /* Prevent following of link */\n fromEvent(el, \"click\")\n .subscribe(ev => ev.preventDefault())\n\n /* Create and return component */\n return watchSearchShare(el, options)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n asyncScheduler,\n combineLatestWith,\n distinctUntilChanged,\n filter,\n finalize,\n fromEvent,\n map,\n merge,\n observeOn,\n tap\n} from \"rxjs\"\n\nimport { Keyboard } from \"~/browser\"\nimport {\n SearchResult,\n SearchWorker,\n isSearchResultMessage\n} from \"~/integrations\"\n\nimport { Component, getComponentElement } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search suggestions\n */\nexport interface SearchSuggest {}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n keyboard$: Observable /* Keyboard observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search suggestions\n *\n * This function will perform a lazy rendering of the search results, depending\n * on the vertical offset of the search result container.\n *\n * @param el - Search result list element\n * @param worker - Search worker\n * @param options - Options\n *\n * @returns Search result list component observable\n */\nexport function mountSearchSuggest(\n el: HTMLElement, { rx$ }: SearchWorker, { keyboard$ }: MountOptions\n): Observable> {\n const push$ = new Subject()\n\n /* Retrieve query component and track all changes */\n const query = getComponentElement(\"search-query\")\n const query$ = merge(\n fromEvent(query, \"keydown\"),\n fromEvent(query, \"focus\")\n )\n .pipe(\n observeOn(asyncScheduler),\n map(() => query.value),\n distinctUntilChanged(),\n )\n\n /* Update search suggestions */\n push$\n .pipe(\n combineLatestWith(query$),\n map(([{ suggestions }, value]) => {\n const words = value.split(/([\\s-]+)/)\n if (suggestions?.length && words[words.length - 1]) {\n const last = suggestions[suggestions.length - 1]\n if (last.startsWith(words[words.length - 1]))\n words[words.length - 1] = last\n } else {\n words.length = 0\n }\n return words\n })\n )\n .subscribe(words => el.innerHTML = words\n .join(\"\")\n .replace(/\\s/g, \" \")\n )\n\n /* Set up search keyboard handlers */\n keyboard$\n .pipe(\n filter(({ mode }) => mode === \"search\")\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Right arrow: accept current suggestion */\n case \"ArrowRight\":\n if (\n el.innerText.length &&\n query.selectionStart === query.value.length\n )\n query.value = el.innerText\n break\n }\n })\n\n /* Filter search result message */\n const result$ = rx$\n .pipe(\n filter(isSearchResultMessage),\n map(({ data }) => data)\n )\n\n /* Create and return component */\n return result$\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(() => ({ ref: el }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n NEVER,\n Observable,\n ObservableInput,\n filter,\n merge,\n mergeWith,\n sample,\n take\n} from \"rxjs\"\n\nimport { configuration } from \"~/_\"\nimport {\n Keyboard,\n getActiveElement,\n getElements,\n setToggle\n} from \"~/browser\"\nimport {\n SearchIndex,\n SearchResult,\n isSearchQueryMessage,\n isSearchReadyMessage,\n setupSearchWorker\n} from \"~/integrations\"\n\nimport {\n Component,\n getComponentElement,\n getComponentElements\n} from \"../../_\"\nimport {\n SearchQuery,\n mountSearchQuery\n} from \"../query\"\nimport { mountSearchResult } from \"../result\"\nimport {\n SearchShare,\n mountSearchShare\n} from \"../share\"\nimport {\n SearchSuggest,\n mountSearchSuggest\n} from \"../suggest\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search\n */\nexport type Search =\n | SearchQuery\n | SearchResult\n | SearchShare\n | SearchSuggest\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n index$: ObservableInput /* Search index observable */\n keyboard$: Observable /* Keyboard observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search\n *\n * This function sets up the search functionality, including the underlying\n * web worker and all keyboard bindings.\n *\n * @param el - Search element\n * @param options - Options\n *\n * @returns Search component observable\n */\nexport function mountSearch(\n el: HTMLElement, { index$, keyboard$ }: MountOptions\n): Observable> {\n const config = configuration()\n try {\n const url = __search?.worker || config.search\n const worker = setupSearchWorker(url, index$)\n\n /* Retrieve query and result components */\n const query = getComponentElement(\"search-query\", el)\n const result = getComponentElement(\"search-result\", el)\n\n /* Re-emit query when search is ready */\n const { tx$, rx$ } = worker\n tx$\n .pipe(\n filter(isSearchQueryMessage),\n sample(rx$.pipe(filter(isSearchReadyMessage))),\n take(1)\n )\n .subscribe(tx$.next.bind(tx$))\n\n /* Set up search keyboard handlers */\n keyboard$\n .pipe(\n filter(({ mode }) => mode === \"search\")\n )\n .subscribe(key => {\n const active = getActiveElement()\n switch (key.type) {\n\n /* Enter: go to first (best) result */\n case \"Enter\":\n if (active === query) {\n const anchors = new Map()\n for (const anchor of getElements(\n \":first-child [href]\", result\n )) {\n const article = anchor.firstElementChild!\n anchors.set(anchor, parseFloat(\n article.getAttribute(\"data-md-score\")!\n ))\n }\n\n /* Go to result with highest score, if any */\n if (anchors.size) {\n const [[best]] = [...anchors].sort(([, a], [, b]) => b - a)\n best.click()\n }\n\n /* Otherwise omit form submission */\n key.claim()\n }\n break\n\n /* Escape or Tab: close search */\n case \"Escape\":\n case \"Tab\":\n setToggle(\"search\", false)\n query.blur()\n break\n\n /* Vertical arrows: select previous or next search result */\n case \"ArrowUp\":\n case \"ArrowDown\":\n if (typeof active === \"undefined\") {\n query.focus()\n } else {\n const els = [query, ...getElements(\n \":not(details) > [href], summary, details[open] [href]\",\n result\n )]\n const i = Math.max(0, (\n Math.max(0, els.indexOf(active)) + els.length + (\n key.type === \"ArrowUp\" ? -1 : +1\n )\n ) % els.length)\n els[i].focus()\n }\n\n /* Prevent scrolling of page */\n key.claim()\n break\n\n /* All other keys: hand to search query */\n default:\n if (query !== getActiveElement())\n query.focus()\n }\n })\n\n /* Set up global keyboard handlers */\n keyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\"),\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Open search and select query */\n case \"f\":\n case \"s\":\n case \"/\":\n query.focus()\n query.select()\n\n /* Prevent scrolling of page */\n key.claim()\n break\n }\n })\n\n /* Create and return component */\n const query$ = mountSearchQuery(query, worker)\n const result$ = mountSearchResult(result, worker, { query$ })\n return merge(query$, result$)\n .pipe(\n mergeWith(\n\n /* Search sharing */\n ...getComponentElements(\"search-share\", el)\n .map(child => mountSearchShare(child, { query$ })),\n\n /* Search suggestions */\n ...getComponentElements(\"search-suggest\", el)\n .map(child => mountSearchSuggest(child, worker, { keyboard$ }))\n )\n )\n\n /* Gracefully handle broken search */\n } catch (err) {\n el.hidden = true\n return NEVER\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n ObservableInput,\n combineLatest,\n filter,\n map,\n startWith\n} from \"rxjs\"\n\nimport { getLocation } from \"~/browser\"\nimport {\n SearchIndex,\n setupSearchHighlighter\n} from \"~/integrations\"\nimport { h } from \"~/utilities\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search highlighting\n */\nexport interface SearchHighlight {\n nodes: Map /* Map of replacements */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n index$: ObservableInput /* Search index observable */\n location$: Observable /* Location observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search highlighting\n *\n * @param el - Content element\n * @param options - Options\n *\n * @returns Search highlighting component observable\n */\nexport function mountSearchHiglight(\n el: HTMLElement, { index$, location$ }: MountOptions\n): Observable> {\n return combineLatest([\n index$,\n location$\n .pipe(\n startWith(getLocation()),\n filter(url => !!url.searchParams.get(\"h\"))\n )\n ])\n .pipe(\n map(([index, url]) => setupSearchHighlighter(index.config, true)(\n url.searchParams.get(\"h\")!\n )),\n map(fn => {\n const nodes = new Map()\n\n /* Traverse text nodes and collect matches */\n const it = document.createNodeIterator(el, NodeFilter.SHOW_TEXT)\n for (let node = it.nextNode(); node; node = it.nextNode()) {\n if (node.parentElement?.offsetHeight) {\n const original = node.textContent!\n const replaced = fn(original)\n if (replaced.length > original.length)\n nodes.set(node as ChildNode, replaced)\n }\n }\n\n /* Replace original nodes with matches */\n for (const [node, text] of nodes) {\n const { childNodes } = h(\"span\", null, text)\n node.replaceWith(...Array.from(childNodes))\n }\n\n /* Return component */\n return { ref: el, nodes }\n })\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n animationFrameScheduler,\n auditTime,\n combineLatest,\n defer,\n distinctUntilChanged,\n finalize,\n map,\n observeOn,\n take,\n tap,\n withLatestFrom\n} from \"rxjs\"\n\nimport {\n Viewport,\n getElement,\n getElementContainer,\n getElementOffset,\n getElementSize,\n getElements\n} from \"~/browser\"\n\nimport { Component } from \"../_\"\nimport { Header } from \"../header\"\nimport { Main } from \"../main\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Sidebar\n */\nexport interface Sidebar {\n height: number /* Sidebar height */\n locked: boolean /* Sidebar is locked */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n main$: Observable
    /* Main area observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n main$: Observable
    /* Main area observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch sidebar\n *\n * This function returns an observable that computes the visual parameters of\n * the sidebar which depends on the vertical viewport offset, as well as the\n * height of the main area. When the page is scrolled beyond the header, the\n * sidebar is locked and fills the remaining space.\n *\n * @param el - Sidebar element\n * @param options - Options\n *\n * @returns Sidebar observable\n */\nexport function watchSidebar(\n el: HTMLElement, { viewport$, main$ }: WatchOptions\n): Observable {\n const parent = el.parentElement!\n const adjust =\n parent.offsetTop -\n parent.parentElement!.offsetTop\n\n /* Compute the sidebar's available height and if it should be locked */\n return combineLatest([main$, viewport$])\n .pipe(\n map(([{ offset, height }, { offset: { y } }]) => {\n height = height\n + Math.min(adjust, Math.max(0, y - offset))\n - adjust\n return {\n height,\n locked: y >= offset + adjust\n }\n }),\n distinctUntilChanged((a, b) => (\n a.height === b.height &&\n a.locked === b.locked\n ))\n )\n}\n\n/**\n * Mount sidebar\n *\n * This function doesn't set the height of the actual sidebar, but of its first\n * child \u2013 the `.md-sidebar__scrollwrap` element in order to mitigiate jittery\n * sidebars when the footer is scrolled into view. At some point we switched\n * from `absolute` / `fixed` positioning to `sticky` positioning, significantly\n * reducing jitter in some browsers (respectively Firefox and Safari) when\n * scrolling from the top. However, top-aligned sticky positioning means that\n * the sidebar snaps to the bottom when the end of the container is reached.\n * This is what leads to the mentioned jitter, as the sidebar's height may be\n * updated too slowly.\n *\n * This behaviour can be mitigiated by setting the height of the sidebar to `0`\n * while preserving the padding, and the height on its first element.\n *\n * @param el - Sidebar element\n * @param options - Options\n *\n * @returns Sidebar component observable\n */\nexport function mountSidebar(\n el: HTMLElement, { header$, ...options }: MountOptions\n): Observable> {\n const inner = getElement(\".md-sidebar__scrollwrap\", el)\n const { y } = getElementOffset(inner)\n return defer(() => {\n const push$ = new Subject()\n push$\n .pipe(\n auditTime(0, animationFrameScheduler),\n withLatestFrom(header$)\n )\n .subscribe({\n\n /* Handle emission */\n next([{ height }, { height: offset }]) {\n inner.style.height = `${height - 2 * y}px`\n el.style.top = `${offset}px`\n },\n\n /* Handle complete */\n complete() {\n inner.style.height = \"\"\n el.style.top = \"\"\n }\n })\n\n /* Bring active item into view on initial load */\n push$\n .pipe(\n observeOn(animationFrameScheduler),\n take(1)\n )\n .subscribe(() => {\n for (const item of getElements(\".md-nav__link--active[href]\", el)) {\n const container = getElementContainer(item)\n if (typeof container !== \"undefined\") {\n const offset = item.offsetTop - container.offsetTop\n const { height } = getElementSize(container)\n container.scrollTo({\n top: offset - height / 2\n })\n }\n }\n })\n\n /* Create and return component */\n return watchSidebar(el, options)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Repo, User } from \"github-types\"\nimport {\n EMPTY,\n Observable,\n catchError,\n defaultIfEmpty,\n map,\n zip\n} from \"rxjs\"\n\nimport { requestJSON } from \"~/browser\"\n\nimport { SourceFacts } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * GitHub release (partial)\n */\ninterface Release {\n tag_name: string /* Tag name */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch GitHub repository facts\n *\n * @param user - GitHub user or organization\n * @param repo - GitHub repository\n *\n * @returns Repository facts observable\n */\nexport function fetchSourceFactsFromGitHub(\n user: string, repo?: string\n): Observable {\n if (typeof repo !== \"undefined\") {\n const url = `https://api.github.com/repos/${user}/${repo}`\n return zip(\n\n /* Fetch version */\n requestJSON(`${url}/releases/latest`)\n .pipe(\n catchError(() => EMPTY), // @todo refactor instant loading\n map(release => ({\n version: release.tag_name\n })),\n defaultIfEmpty({})\n ),\n\n /* Fetch stars and forks */\n requestJSON(url)\n .pipe(\n catchError(() => EMPTY), // @todo refactor instant loading\n map(info => ({\n stars: info.stargazers_count,\n forks: info.forks_count\n })),\n defaultIfEmpty({})\n )\n )\n .pipe(\n map(([release, info]) => ({ ...release, ...info }))\n )\n\n /* User or organization */\n } else {\n const url = `https://api.github.com/users/${user}`\n return requestJSON(url)\n .pipe(\n map(info => ({\n repositories: info.public_repos\n })),\n defaultIfEmpty({})\n )\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { ProjectSchema } from \"gitlab\"\nimport {\n EMPTY,\n Observable,\n catchError,\n defaultIfEmpty,\n map\n} from \"rxjs\"\n\nimport { requestJSON } from \"~/browser\"\n\nimport { SourceFacts } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch GitLab repository facts\n *\n * @param base - GitLab base\n * @param project - GitLab project\n *\n * @returns Repository facts observable\n */\nexport function fetchSourceFactsFromGitLab(\n base: string, project: string\n): Observable {\n const url = `https://${base}/api/v4/projects/${encodeURIComponent(project)}`\n return requestJSON(url)\n .pipe(\n catchError(() => EMPTY), // @todo refactor instant loading\n map(({ star_count, forks_count }) => ({\n stars: star_count,\n forks: forks_count\n })),\n defaultIfEmpty({})\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { EMPTY, Observable } from \"rxjs\"\n\nimport { fetchSourceFactsFromGitHub } from \"../github\"\nimport { fetchSourceFactsFromGitLab } from \"../gitlab\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Repository facts for repositories\n */\nexport interface RepositoryFacts {\n stars?: number /* Number of stars */\n forks?: number /* Number of forks */\n version?: string /* Latest version */\n}\n\n/**\n * Repository facts for organizations\n */\nexport interface OrganizationFacts {\n repositories?: number /* Number of repositories */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Repository facts\n */\nexport type SourceFacts =\n | RepositoryFacts\n | OrganizationFacts\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch repository facts\n *\n * @param url - Repository URL\n *\n * @returns Repository facts observable\n */\nexport function fetchSourceFacts(\n url: string\n): Observable {\n\n /* Try to match GitHub repository */\n let match = url.match(/^.+github\\.com\\/([^/]+)\\/?([^/]+)?/i)\n if (match) {\n const [, user, repo] = match\n return fetchSourceFactsFromGitHub(user, repo)\n }\n\n /* Try to match GitLab repository */\n match = url.match(/^.+?([^/]*gitlab[^/]+)\\/(.+?)\\/?$/i)\n if (match) {\n const [, base, slug] = match\n return fetchSourceFactsFromGitLab(base, slug)\n }\n\n /* Fallback */\n return EMPTY\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n Subject,\n catchError,\n defer,\n filter,\n finalize,\n map,\n of,\n shareReplay,\n tap\n} from \"rxjs\"\n\nimport { getElement } from \"~/browser\"\nimport { ConsentDefaults } from \"~/components/consent\"\nimport { renderSourceFacts } from \"~/templates\"\n\nimport {\n Component,\n getComponentElements\n} from \"../../_\"\nimport {\n SourceFacts,\n fetchSourceFacts\n} from \"../facts\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Repository information\n */\nexport interface Source {\n facts: SourceFacts /* Repository facts */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Repository information observable\n */\nlet fetch$: Observable\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch repository information\n *\n * This function tries to read the repository facts from session storage, and\n * if unsuccessful, fetches them from the underlying provider.\n *\n * @param el - Repository information element\n *\n * @returns Repository information observable\n */\nexport function watchSource(\n el: HTMLAnchorElement\n): Observable {\n return fetch$ ||= defer(() => {\n const cached = __md_get(\"__source\", sessionStorage)\n if (cached) {\n return of(cached)\n } else {\n\n /* Check if consent is configured and was given */\n const els = getComponentElements(\"consent\")\n if (els.length) {\n const consent = __md_get(\"__consent\")\n if (!(consent && consent.github))\n return EMPTY\n }\n\n /* Fetch repository facts */\n return fetchSourceFacts(el.href)\n .pipe(\n tap(facts => __md_set(\"__source\", facts, sessionStorage))\n )\n }\n })\n .pipe(\n catchError(() => EMPTY),\n filter(facts => Object.keys(facts).length > 0),\n map(facts => ({ facts })),\n shareReplay(1)\n )\n}\n\n/**\n * Mount repository information\n *\n * @param el - Repository information element\n *\n * @returns Repository information component observable\n */\nexport function mountSource(\n el: HTMLAnchorElement\n): Observable> {\n const inner = getElement(\":scope > :last-child\", el)\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe(({ facts }) => {\n inner.appendChild(renderSourceFacts(facts))\n inner.classList.add(\"md-source__repository--active\")\n })\n\n /* Create and return component */\n return watchSource(el)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n defer,\n distinctUntilKeyChanged,\n finalize,\n map,\n of,\n switchMap,\n tap\n} from \"rxjs\"\n\nimport { feature } from \"~/_\"\nimport {\n Viewport,\n watchElementSize,\n watchViewportAt\n} from \"~/browser\"\n\nimport { Component } from \"../_\"\nimport { Header } from \"../header\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Navigation tabs\n */\nexport interface Tabs {\n hidden: boolean /* Navigation tabs are hidden */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch navigation tabs\n *\n * @param el - Navigation tabs element\n * @param options - Options\n *\n * @returns Navigation tabs observable\n */\nexport function watchTabs(\n el: HTMLElement, { viewport$, header$ }: WatchOptions\n): Observable {\n return watchElementSize(document.body)\n .pipe(\n switchMap(() => watchViewportAt(el, { header$, viewport$ })),\n map(({ offset: { y } }) => {\n return {\n hidden: y >= 10\n }\n }),\n distinctUntilKeyChanged(\"hidden\")\n )\n}\n\n/**\n * Mount navigation tabs\n *\n * This function hides the navigation tabs when scrolling past the threshold\n * and makes them reappear in a nice CSS animation when scrolling back up.\n *\n * @param el - Navigation tabs element\n * @param options - Options\n *\n * @returns Navigation tabs component observable\n */\nexport function mountTabs(\n el: HTMLElement, options: MountOptions\n): Observable> {\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe({\n\n /* Handle emission */\n next({ hidden }) {\n el.hidden = hidden\n },\n\n /* Handle complete */\n complete() {\n el.hidden = false\n }\n })\n\n /* Create and return component */\n return (\n feature(\"navigation.tabs.sticky\")\n ? of({ hidden: false })\n : watchTabs(el, options)\n )\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n bufferCount,\n combineLatestWith,\n debounceTime,\n defer,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n filter,\n finalize,\n map,\n merge,\n of,\n repeat,\n scan,\n share,\n skip,\n startWith,\n switchMap,\n takeLast,\n takeUntil,\n tap,\n withLatestFrom\n} from \"rxjs\"\n\nimport { feature } from \"~/_\"\nimport {\n Viewport,\n getElement,\n getElementContainer,\n getElementSize,\n getElements,\n getLocation,\n getOptionalElement,\n watchElementSize\n} from \"~/browser\"\n\nimport {\n Component,\n getComponentElement\n} from \"../_\"\nimport { Header } from \"../header\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Table of contents\n */\nexport interface TableOfContents {\n prev: HTMLAnchorElement[][] /* Anchors (previous) */\n next: HTMLAnchorElement[][] /* Anchors (next) */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n target$: Observable /* Location target observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch table of contents\n *\n * This is effectively a scroll spy implementation which will account for the\n * fixed header and automatically re-calculate anchor offsets when the viewport\n * is resized. The returned observable will only emit if the table of contents\n * needs to be repainted.\n *\n * This implementation tracks an anchor element's entire path starting from its\n * level up to the top-most anchor element, e.g. `[h3, h2, h1]`. Although the\n * Material theme currently doesn't make use of this information, it enables\n * the styling of the entire hierarchy through customization.\n *\n * Note that the current anchor is the last item of the `prev` anchor list.\n *\n * @param el - Table of contents element\n * @param options - Options\n *\n * @returns Table of contents observable\n */\nexport function watchTableOfContents(\n el: HTMLElement, { viewport$, header$ }: WatchOptions\n): Observable {\n const table = new Map()\n\n /* Compute anchor-to-target mapping */\n const anchors = getElements(\"[href^=\\\\#]\", el)\n for (const anchor of anchors) {\n const id = decodeURIComponent(anchor.hash.substring(1))\n const target = getOptionalElement(`[id=\"${id}\"]`)\n if (typeof target !== \"undefined\")\n table.set(anchor, target)\n }\n\n /* Compute necessary adjustment for header */\n const adjust$ = header$\n .pipe(\n distinctUntilKeyChanged(\"height\"),\n map(({ height }) => {\n const main = getComponentElement(\"main\")\n const grid = getElement(\":scope > :first-child\", main)\n return height + 0.8 * (\n grid.offsetTop -\n main.offsetTop\n )\n }),\n share()\n )\n\n /* Compute partition of previous and next anchors */\n const partition$ = watchElementSize(document.body)\n .pipe(\n distinctUntilKeyChanged(\"height\"),\n\n /* Build index to map anchor paths to vertical offsets */\n switchMap(body => defer(() => {\n let path: HTMLAnchorElement[] = []\n return of([...table].reduce((index, [anchor, target]) => {\n while (path.length) {\n const last = table.get(path[path.length - 1])!\n if (last.tagName >= target.tagName) {\n path.pop()\n } else {\n break\n }\n }\n\n /* If the current anchor is hidden, continue with its parent */\n let offset = target.offsetTop\n while (!offset && target.parentElement) {\n target = target.parentElement\n offset = target.offsetTop\n }\n\n /* Map reversed anchor path to vertical offset */\n return index.set(\n [...path = [...path, anchor]].reverse(),\n offset\n )\n }, new Map()))\n })\n .pipe(\n\n /* Sort index by vertical offset (see https://bit.ly/30z6QSO) */\n map(index => new Map([...index].sort(([, a], [, b]) => a - b))),\n combineLatestWith(adjust$),\n\n /* Re-compute partition when viewport offset changes */\n switchMap(([index, adjust]) => viewport$\n .pipe(\n scan(([prev, next], { offset: { y }, size }) => {\n const last = y + size.height >= Math.floor(body.height)\n\n /* Look forward */\n while (next.length) {\n const [, offset] = next[0]\n if (offset - adjust < y || last) {\n prev = [...prev, next.shift()!]\n } else {\n break\n }\n }\n\n /* Look backward */\n while (prev.length) {\n const [, offset] = prev[prev.length - 1]\n if (offset - adjust >= y && !last) {\n next = [prev.pop()!, ...next]\n } else {\n break\n }\n }\n\n /* Return partition */\n return [prev, next]\n }, [[], [...index]]),\n distinctUntilChanged((a, b) => (\n a[0] === b[0] &&\n a[1] === b[1]\n ))\n )\n )\n )\n )\n )\n\n /* Compute and return anchor list migrations */\n return partition$\n .pipe(\n map(([prev, next]) => ({\n prev: prev.map(([path]) => path),\n next: next.map(([path]) => path)\n })),\n\n /* Extract anchor list migrations */\n startWith({ prev: [], next: [] }),\n bufferCount(2, 1),\n map(([a, b]) => {\n\n /* Moving down */\n if (a.prev.length < b.prev.length) {\n return {\n prev: b.prev.slice(Math.max(0, a.prev.length - 1), b.prev.length),\n next: []\n }\n\n /* Moving up */\n } else {\n return {\n prev: b.prev.slice(-1),\n next: b.next.slice(0, b.next.length - a.next.length)\n }\n }\n })\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Mount table of contents\n *\n * @param el - Table of contents element\n * @param options - Options\n *\n * @returns Table of contents component observable\n */\nexport function mountTableOfContents(\n el: HTMLElement, { viewport$, header$, target$ }: MountOptions\n): Observable> {\n return defer(() => {\n const push$ = new Subject()\n const done$ = push$.pipe(takeLast(1))\n push$.subscribe(({ prev, next }) => {\n\n /* Look forward */\n for (const [anchor] of next) {\n anchor.classList.remove(\"md-nav__link--passed\")\n anchor.classList.remove(\"md-nav__link--active\")\n }\n\n /* Look backward */\n for (const [index, [anchor]] of prev.entries()) {\n anchor.classList.add(\"md-nav__link--passed\")\n anchor.classList.toggle(\n \"md-nav__link--active\",\n index === prev.length - 1\n )\n }\n })\n\n /* Set up following, if enabled */\n if (feature(\"toc.follow\")) {\n\n /* Toggle smooth scrolling only for anchor clicks */\n const smooth$ = merge(\n viewport$.pipe(debounceTime(1), map(() => undefined)),\n viewport$.pipe(debounceTime(250), map(() => \"smooth\" as const))\n )\n\n /* Bring active anchor into view */\n push$\n .pipe(\n filter(({ prev }) => prev.length > 0),\n withLatestFrom(smooth$)\n )\n .subscribe(([{ prev }, behavior]) => {\n const [anchor] = prev[prev.length - 1]\n if (anchor.offsetHeight) {\n\n /* Retrieve overflowing container and scroll */\n const container = getElementContainer(anchor)\n if (typeof container !== \"undefined\") {\n const offset = anchor.offsetTop - container.offsetTop\n const { height } = getElementSize(container)\n container.scrollTo({\n top: offset - height / 2,\n behavior\n })\n }\n }\n })\n }\n\n /* Set up anchor tracking, if enabled */\n if (feature(\"navigation.tracking\"))\n viewport$\n .pipe(\n takeUntil(done$),\n distinctUntilKeyChanged(\"offset\"),\n debounceTime(250),\n skip(1),\n takeUntil(target$.pipe(skip(1))),\n repeat({ delay: 250 }),\n withLatestFrom(push$)\n )\n .subscribe(([, { prev }]) => {\n const url = getLocation()\n\n /* Set hash fragment to active anchor */\n const anchor = prev[prev.length - 1]\n if (anchor && anchor.length) {\n const [active] = anchor\n const { hash } = new URL(active.href)\n if (url.hash !== hash) {\n url.hash = hash\n history.replaceState({}, \"\", `${url}`)\n }\n\n /* Reset anchor when at the top */\n } else {\n url.hash = \"\"\n history.replaceState({}, \"\", `${url}`)\n }\n })\n\n /* Create and return component */\n return watchTableOfContents(el, { viewport$, header$ })\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n bufferCount,\n combineLatest,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n endWith,\n finalize,\n map,\n repeat,\n skip,\n takeLast,\n takeUntil,\n tap\n} from \"rxjs\"\n\nimport { Viewport } from \"~/browser\"\n\nimport { Component } from \"../_\"\nimport { Header } from \"../header\"\nimport { Main } from \"../main\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Back-to-top button\n */\nexport interface BackToTop {\n hidden: boolean /* Back-to-top button is hidden */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n main$: Observable
    /* Main area observable */\n target$: Observable /* Location target observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n main$: Observable
    /* Main area observable */\n target$: Observable /* Location target observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch back-to-top\n *\n * @param _el - Back-to-top element\n * @param options - Options\n *\n * @returns Back-to-top observable\n */\nexport function watchBackToTop(\n _el: HTMLElement, { viewport$, main$, target$ }: WatchOptions\n): Observable {\n\n /* Compute direction */\n const direction$ = viewport$\n .pipe(\n map(({ offset: { y } }) => y),\n bufferCount(2, 1),\n map(([a, b]) => a > b && b > 0),\n distinctUntilChanged()\n )\n\n /* Compute whether main area is active */\n const active$ = main$\n .pipe(\n map(({ active }) => active)\n )\n\n /* Compute threshold for hiding */\n return combineLatest([active$, direction$])\n .pipe(\n map(([active, direction]) => !(active && direction)),\n distinctUntilChanged(),\n takeUntil(target$.pipe(skip(1))),\n endWith(true),\n repeat({ delay: 250 }),\n map(hidden => ({ hidden }))\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Mount back-to-top\n *\n * @param el - Back-to-top element\n * @param options - Options\n *\n * @returns Back-to-top component observable\n */\nexport function mountBackToTop(\n el: HTMLElement, { viewport$, header$, main$, target$ }: MountOptions\n): Observable> {\n const push$ = new Subject()\n const done$ = push$.pipe(takeLast(1))\n push$.subscribe({\n\n /* Handle emission */\n next({ hidden }) {\n el.hidden = hidden\n if (hidden) {\n el.setAttribute(\"tabindex\", \"-1\")\n el.blur()\n } else {\n el.removeAttribute(\"tabindex\")\n }\n },\n\n /* Handle complete */\n complete() {\n el.style.top = \"\"\n el.hidden = true\n el.removeAttribute(\"tabindex\")\n }\n })\n\n /* Watch header height */\n header$\n .pipe(\n takeUntil(done$),\n distinctUntilKeyChanged(\"height\")\n )\n .subscribe(({ height }) => {\n el.style.top = `${height + 16}px`\n })\n\n /* Create and return component */\n return watchBackToTop(el, { viewport$, main$, target$ })\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n fromEvent,\n map,\n mergeMap,\n switchMap,\n takeWhile,\n tap,\n withLatestFrom\n} from \"rxjs\"\n\nimport { getElements } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch options\n */\ninterface PatchOptions {\n document$: Observable /* Document observable */\n tablet$: Observable /* Media tablet observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch indeterminate checkboxes\n *\n * This function replaces the indeterminate \"pseudo state\" with the actual\n * indeterminate state, which is used to keep navigation always expanded.\n *\n * @param options - Options\n */\nexport function patchIndeterminate(\n { document$, tablet$ }: PatchOptions\n): void {\n document$\n .pipe(\n switchMap(() => getElements(\n // @todo `data-md-state` is deprecated and removed in v9\n \".md-toggle--indeterminate, [data-md-state=indeterminate]\"\n )),\n tap(el => {\n el.indeterminate = true\n el.checked = false\n }),\n mergeMap(el => fromEvent(el, \"change\")\n .pipe(\n takeWhile(() => el.classList.contains(\"md-toggle--indeterminate\")),\n map(() => el)\n )\n ),\n withLatestFrom(tablet$)\n )\n .subscribe(([el, tablet]) => {\n el.classList.remove(\"md-toggle--indeterminate\")\n if (tablet)\n el.checked = false\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n filter,\n fromEvent,\n map,\n mergeMap,\n switchMap,\n tap\n} from \"rxjs\"\n\nimport { getElements } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch options\n */\ninterface PatchOptions {\n document$: Observable /* Document observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Check whether the given device is an Apple device\n *\n * @returns Test result\n */\nfunction isAppleDevice(): boolean {\n return /(iPad|iPhone|iPod)/.test(navigator.userAgent)\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch all elements with `data-md-scrollfix` attributes\n *\n * This is a year-old patch which ensures that overflow scrolling works at the\n * top and bottom of containers on iOS by ensuring a `1px` scroll offset upon\n * the start of a touch event.\n *\n * @see https://bit.ly/2SCtAOO - Original source\n *\n * @param options - Options\n */\nexport function patchScrollfix(\n { document$ }: PatchOptions\n): void {\n document$\n .pipe(\n switchMap(() => getElements(\"[data-md-scrollfix]\")),\n tap(el => el.removeAttribute(\"data-md-scrollfix\")),\n filter(isAppleDevice),\n mergeMap(el => fromEvent(el, \"touchstart\")\n .pipe(\n map(() => el)\n )\n )\n )\n .subscribe(el => {\n const top = el.scrollTop\n\n /* We're at the top of the container */\n if (top === 0) {\n el.scrollTop = 1\n\n /* We're at the bottom of the container */\n } else if (top + el.offsetHeight === el.scrollHeight) {\n el.scrollTop = top - 1\n }\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n combineLatest,\n delay,\n map,\n of,\n switchMap,\n withLatestFrom\n} from \"rxjs\"\n\nimport {\n Viewport,\n watchToggle\n} from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch options\n */\ninterface PatchOptions {\n viewport$: Observable /* Viewport observable */\n tablet$: Observable /* Media tablet observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch the document body to lock when search is open\n *\n * For mobile and tablet viewports, the search is rendered full screen, which\n * leads to scroll leaking when at the top or bottom of the search result. This\n * function locks the body when the search is in full screen mode, and restores\n * the scroll position when leaving.\n *\n * @param options - Options\n */\nexport function patchScrolllock(\n { viewport$, tablet$ }: PatchOptions\n): void {\n combineLatest([watchToggle(\"search\"), tablet$])\n .pipe(\n map(([active, tablet]) => active && !tablet),\n switchMap(active => of(active)\n .pipe(\n delay(active ? 400 : 100)\n )\n ),\n withLatestFrom(viewport$)\n )\n .subscribe(([active, { offset: { y }}]) => {\n if (active) {\n document.body.setAttribute(\"data-md-scrolllock\", \"\")\n document.body.style.top = `-${y}px`\n } else {\n const value = -1 * parseInt(document.body.style.top, 10)\n document.body.removeAttribute(\"data-md-scrolllock\")\n document.body.style.top = \"\"\n if (value)\n window.scrollTo(0, value)\n }\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Polyfills\n * ------------------------------------------------------------------------- */\n\n/* Polyfill `Object.entries` */\nif (!Object.entries)\n Object.entries = function (obj: object) {\n const data: [string, string][] = []\n for (const key of Object.keys(obj))\n // @ts-expect-error - ignore property access warning\n data.push([key, obj[key]])\n\n /* Return entries */\n return data\n }\n\n/* Polyfill `Object.values` */\nif (!Object.values)\n Object.values = function (obj: object) {\n const data: string[] = []\n for (const key of Object.keys(obj))\n // @ts-expect-error - ignore property access warning\n data.push(obj[key])\n\n /* Return values */\n return data\n }\n\n/* ------------------------------------------------------------------------- */\n\n/* Polyfills for `Element` */\nif (typeof Element !== \"undefined\") {\n\n /* Polyfill `Element.scrollTo` */\n if (!Element.prototype.scrollTo)\n Element.prototype.scrollTo = function (\n x?: ScrollToOptions | number, y?: number\n ): void {\n if (typeof x === \"object\") {\n this.scrollLeft = x.left!\n this.scrollTop = x.top!\n } else {\n this.scrollLeft = x!\n this.scrollTop = y!\n }\n }\n\n /* Polyfill `Element.replaceWith` */\n if (!Element.prototype.replaceWith)\n Element.prototype.replaceWith = function (\n ...nodes: Array\n ): void {\n const parent = this.parentNode\n if (parent) {\n if (nodes.length === 0)\n parent.removeChild(this)\n\n /* Replace children and create text nodes */\n for (let i = nodes.length - 1; i >= 0; i--) {\n let node = nodes[i]\n if (typeof node === \"string\")\n node = document.createTextNode(node)\n else if (node.parentNode)\n node.parentNode.removeChild(node)\n\n /* Replace child or insert before previous sibling */\n if (!i)\n parent.replaceChild(node, this)\n else\n parent.insertBefore(this.previousSibling!, node)\n }\n }\n }\n}\n"], + "mappings": "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", + "names": ["require_focus_visible", "__commonJSMin", "exports", "module", "global", "factory", "applyFocusVisiblePolyfill", "scope", "hadKeyboardEvent", "hadFocusVisibleRecently", "hadFocusVisibleRecentlyTimeout", "inputTypesAllowlist", "isValidFocusTarget", "el", "focusTriggersKeyboardModality", "type", "tagName", "addFocusVisibleClass", "removeFocusVisibleClass", "onKeyDown", "e", "onPointerDown", "onFocus", "onBlur", "onVisibilityChange", "addInitialPointerMoveListeners", "onInitialPointerMove", "removeInitialPointerMoveListeners", "event", "error", "require_url_polyfill", "__commonJSMin", "exports", "global", "checkIfIteratorIsSupported", "error", "iteratorSupported", "createIterator", "items", "iterator", "value", "serializeParam", "deserializeParam", "polyfillURLSearchParams", "URLSearchParams", "searchString", "typeofSearchString", "_this", "name", "i", "entry", "key", "proto", "callback", "thisArg", "entries", "searchArray", "checkIfURLSearchParamsSupported", "e", "a", "b", "keys", "attributes", "attribute", "checkIfURLIsSupported", "u", "polyfillURL", "_URL", "URL", "url", "base", "doc", "baseElement", "err", "anchorElement", "inputElement", "searchParams", "enableSearchUpdate", "enableSearchParamsUpdate", "methodName", "method", "search", "linkURLWithAnchorAttribute", "attributeName", "expectedPort", "addPortToOrigin", "blob", "getOrigin", "require_tslib", "__commonJSMin", "exports", "module", "__extends", "__assign", "__rest", "__decorate", "__param", "__metadata", "__awaiter", "__generator", "__exportStar", "__values", "__read", "__spread", "__spreadArrays", "__spreadArray", "__await", "__asyncGenerator", "__asyncDelegator", "__asyncValues", "__makeTemplateObject", "__importStar", "__importDefault", "__classPrivateFieldGet", "__classPrivateFieldSet", "__createBinding", "factory", "root", "createExporter", "previous", "id", "v", "exporter", "extendStatics", "d", "b", "p", "__", "t", "s", "n", "e", "i", "decorators", "target", "key", "desc", "c", "r", "paramIndex", "decorator", "metadataKey", "metadataValue", "thisArg", "_arguments", "P", "generator", "adopt", "value", "resolve", "reject", "fulfilled", "step", "rejected", "result", "body", "_", "f", "y", "g", "verb", "op", "m", "o", "k", "k2", "ar", "error", "il", "a", "j", "jl", "to", "from", "pack", "l", "q", "resume", "settle", "fulfill", "cooked", "raw", "__setModuleDefault", "mod", "receiver", "state", "kind", "require_clipboard", "__commonJSMin", "exports", "module", "root", "factory", "__webpack_modules__", "__unused_webpack_module", "__webpack_exports__", "__webpack_require__", "clipboard", "tiny_emitter", "tiny_emitter_default", "listen", "listen_default", "src_select", "select_default", "command", "type", "err", "ClipboardActionCut", "target", "selectedText", "actions_cut", "createFakeElement", "value", "isRTL", "fakeElement", "yPosition", "fakeCopyAction", "options", "ClipboardActionCopy", "actions_copy", "_typeof", "obj", "ClipboardActionDefault", "_options$action", "action", "container", "text", "actions_default", "clipboard_typeof", "_classCallCheck", "instance", "Constructor", "_defineProperties", "props", "i", "descriptor", "_createClass", "protoProps", "staticProps", "_inherits", "subClass", "superClass", "_setPrototypeOf", "o", "p", "_createSuper", "Derived", "hasNativeReflectConstruct", "_isNativeReflectConstruct", "Super", "_getPrototypeOf", "result", "NewTarget", "_possibleConstructorReturn", "self", "call", "_assertThisInitialized", "e", "getAttributeValue", "suffix", "element", "attribute", "Clipboard", "_Emitter", "_super", "trigger", "_this", "_this2", "selector", "actions", "support", "DOCUMENT_NODE_TYPE", "proto", "closest", "__unused_webpack_exports", "_delegate", "callback", "useCapture", "listenerFn", "listener", "delegate", "elements", "is", "listenNode", "listenNodeList", "listenSelector", "node", "nodeList", "select", "isReadOnly", "selection", "range", "E", "name", "ctx", "data", "evtArr", "len", "evts", "liveEvents", "__webpack_module_cache__", "moduleId", "getter", "definition", "key", "prop", "require_escape_html", "__commonJSMin", "exports", "module", "matchHtmlRegExp", "escapeHtml", "string", "str", "match", "escape", "html", "index", "lastIndex", "r", "a", "e", "import_focus_visible", "n", "t", "s", "r", "o", "u", "i", "a", "e", "c", "import_url_polyfill", "import_tslib", "__extends", "__assign", "__rest", "__decorate", "__param", "__metadata", "__awaiter", "__generator", "__exportStar", "__createBinding", "__values", "__read", "__spread", "__spreadArrays", "__spreadArray", "__await", "__asyncGenerator", "__asyncDelegator", "__asyncValues", "__makeTemplateObject", "__importStar", "__importDefault", "__classPrivateFieldGet", "__classPrivateFieldSet", "tslib", "isFunction", "value", "createErrorClass", "createImpl", "_super", "instance", "ctorFunc", "UnsubscriptionError", "createErrorClass", "_super", "errors", "err", "i", "arrRemove", "arr", "item", "index", "Subscription", "initialTeardown", "errors", "_parentage", "_parentage_1", "__values", "_parentage_1_1", "parent_1", "initialFinalizer", "isFunction", "e", "UnsubscriptionError", "_finalizers", "_finalizers_1", "_finalizers_1_1", "finalizer", "execFinalizer", "err", "__spreadArray", "__read", "teardown", "_a", "parent", "arrRemove", "empty", "EMPTY_SUBSCRIPTION", "Subscription", "isSubscription", "value", "isFunction", "execFinalizer", "finalizer", "config", "timeoutProvider", "handler", "timeout", "args", "_i", "delegate", "__spreadArray", "__read", "handle", "reportUnhandledError", "err", "timeoutProvider", "onUnhandledError", "config", "noop", "COMPLETE_NOTIFICATION", "createNotification", "errorNotification", "error", "nextNotification", "value", "kind", "context", "errorContext", "cb", "config", "isRoot", "_a", "errorThrown", "error", "captureError", "err", "Subscriber", "_super", "__extends", "destination", "_this", "isSubscription", "EMPTY_OBSERVER", "next", "error", "complete", "SafeSubscriber", "value", "handleStoppedNotification", "nextNotification", "err", "errorNotification", "COMPLETE_NOTIFICATION", "Subscription", "_bind", "bind", "fn", "thisArg", "ConsumerObserver", "partialObserver", "value", "error", "handleUnhandledError", "err", "SafeSubscriber", "_super", "__extends", "observerOrNext", "complete", "_this", "isFunction", "context_1", "config", "Subscriber", "handleUnhandledError", "error", "config", "captureError", "reportUnhandledError", "defaultErrorHandler", "err", "handleStoppedNotification", "notification", "subscriber", "onStoppedNotification", "timeoutProvider", "EMPTY_OBSERVER", "noop", "observable", "identity", "x", "pipe", "fns", "_i", "pipeFromArray", "identity", "input", "prev", "fn", "Observable", "subscribe", "operator", "observable", "observerOrNext", "error", "complete", "_this", "subscriber", "isSubscriber", "SafeSubscriber", "errorContext", "_a", "source", "sink", "err", "next", "promiseCtor", "getPromiseCtor", "resolve", "reject", "value", "operations", "_i", "pipeFromArray", "x", "getPromiseCtor", "promiseCtor", "_a", "config", "isObserver", "value", "isFunction", "isSubscriber", "Subscriber", "isSubscription", "hasLift", "source", "isFunction", "operate", "init", "liftedSource", "err", "createOperatorSubscriber", "destination", "onNext", "onComplete", "onError", "onFinalize", "OperatorSubscriber", "_super", "__extends", "shouldUnsubscribe", "_this", "value", "err", "closed_1", "_a", "Subscriber", "animationFrameProvider", "callback", "request", "cancel", "delegate", "handle", "timestamp", "Subscription", "args", "_i", "__spreadArray", "__read", "ObjectUnsubscribedError", "createErrorClass", "_super", "Subject", "_super", "__extends", "_this", "operator", "subject", "AnonymousSubject", "ObjectUnsubscribedError", "value", "errorContext", "_b", "__values", "_c", "observer", "err", "observers", "_a", "subscriber", "hasError", "isStopped", "EMPTY_SUBSCRIPTION", "Subscription", "arrRemove", "thrownError", "observable", "Observable", "destination", "source", "AnonymousSubject", "_super", "__extends", "destination", "source", "_this", "value", "_b", "_a", "err", "subscriber", "EMPTY_SUBSCRIPTION", "Subject", "dateTimestampProvider", "ReplaySubject", "_super", "__extends", "_bufferSize", "_windowTime", "_timestampProvider", "dateTimestampProvider", "_this", "value", "_a", "isStopped", "_buffer", "_infiniteTimeWindow", "subscriber", "subscription", "copy", "i", "adjustedBufferSize", "now", "last", "Subject", "Action", "_super", "__extends", "scheduler", "work", "state", "delay", "Subscription", "intervalProvider", "handler", "timeout", "args", "_i", "delegate", "__spreadArray", "__read", "handle", "AsyncAction", "_super", "__extends", "scheduler", "work", "_this", "state", "delay", "id", "_a", "_id", "intervalProvider", "_scheduler", "error", "_delay", "errored", "errorValue", "e", "actions", "arrRemove", "Action", "Scheduler", "schedulerActionCtor", "now", "work", "delay", "state", "dateTimestampProvider", "AsyncScheduler", "_super", "__extends", "SchedulerAction", "now", "Scheduler", "_this", "action", "actions", "error", "asyncScheduler", "AsyncScheduler", "AsyncAction", "async", "AnimationFrameAction", "_super", "__extends", "scheduler", "work", "_this", "id", "delay", "animationFrameProvider", "actions", "_a", "AsyncAction", "AnimationFrameScheduler", "_super", "__extends", "action", "flushId", "actions", "error", "AsyncScheduler", "animationFrameScheduler", "AnimationFrameScheduler", "AnimationFrameAction", "EMPTY", "Observable", "subscriber", "isScheduler", "value", "isFunction", "last", "arr", "popResultSelector", "args", "isFunction", "popScheduler", "isScheduler", "popNumber", "defaultValue", "isArrayLike", "x", "isPromise", "value", "isFunction", "isInteropObservable", "input", "isFunction", "observable", "isAsyncIterable", "obj", "isFunction", "createInvalidObservableTypeError", "input", "getSymbolIterator", "iterator", "isIterable", "input", "isFunction", "iterator", "readableStreamLikeToAsyncGenerator", "readableStream", "reader", "__await", "_a", "_b", "value", "done", "isReadableStreamLike", "obj", "isFunction", "innerFrom", "input", "Observable", "isInteropObservable", "fromInteropObservable", "isArrayLike", "fromArrayLike", "isPromise", "fromPromise", "isAsyncIterable", "fromAsyncIterable", "isIterable", "fromIterable", "isReadableStreamLike", "fromReadableStreamLike", "createInvalidObservableTypeError", "obj", "subscriber", "obs", "observable", "isFunction", "array", "i", "promise", "value", "err", "reportUnhandledError", "iterable", "iterable_1", "__values", "iterable_1_1", "asyncIterable", "process", "readableStream", "readableStreamLikeToAsyncGenerator", "asyncIterable_1", "__asyncValues", "asyncIterable_1_1", "executeSchedule", "parentSubscription", "scheduler", "work", "delay", "repeat", "scheduleSubscription", "observeOn", "scheduler", "delay", "operate", "source", "subscriber", "createOperatorSubscriber", "value", "executeSchedule", "err", "subscribeOn", "scheduler", "delay", "operate", "source", "subscriber", "scheduleObservable", "input", "scheduler", "innerFrom", "subscribeOn", "observeOn", "schedulePromise", "input", "scheduler", "innerFrom", "subscribeOn", "observeOn", "scheduleArray", "input", "scheduler", "Observable", "subscriber", "i", "scheduleIterable", "input", "scheduler", "Observable", "subscriber", "iterator", "executeSchedule", "value", "done", "_a", "err", "isFunction", "scheduleAsyncIterable", "input", "scheduler", "Observable", "subscriber", "executeSchedule", "iterator", "result", "scheduleReadableStreamLike", "input", "scheduler", "scheduleAsyncIterable", "readableStreamLikeToAsyncGenerator", "scheduled", "input", "scheduler", "isInteropObservable", "scheduleObservable", "isArrayLike", "scheduleArray", "isPromise", "schedulePromise", "isAsyncIterable", "scheduleAsyncIterable", "isIterable", "scheduleIterable", "isReadableStreamLike", "scheduleReadableStreamLike", "createInvalidObservableTypeError", "from", "input", "scheduler", "scheduled", "innerFrom", "of", "args", "_i", "scheduler", "popScheduler", "from", "throwError", "errorOrErrorFactory", "scheduler", "errorFactory", "isFunction", "init", "subscriber", "Observable", "isValidDate", "value", "map", "project", "thisArg", "operate", "source", "subscriber", "index", "createOperatorSubscriber", "value", "isArray", "callOrApply", "fn", "args", "__spreadArray", "__read", "mapOneOrManyArgs", "map", "isArray", "getPrototypeOf", "objectProto", "getKeys", "argsArgArrayOrObject", "args", "first_1", "isPOJO", "keys", "key", "obj", "createObject", "keys", "values", "result", "key", "i", "combineLatest", "args", "_i", "scheduler", "popScheduler", "resultSelector", "popResultSelector", "_a", "argsArgArrayOrObject", "observables", "keys", "from", "result", "Observable", "combineLatestInit", "values", "createObject", "identity", "mapOneOrManyArgs", "valueTransform", "subscriber", "maybeSchedule", "length", "active", "remainingFirstValues", "i", "source", "hasFirstValue", "createOperatorSubscriber", "value", "execute", "subscription", "executeSchedule", "mergeInternals", "source", "subscriber", "project", "concurrent", "onBeforeNext", "expand", "innerSubScheduler", "additionalFinalizer", "buffer", "active", "index", "isComplete", "checkComplete", "outerNext", "value", "doInnerSub", "innerComplete", "innerFrom", "createOperatorSubscriber", "innerValue", "bufferedValue", "executeSchedule", "err", "mergeMap", "project", "resultSelector", "concurrent", "isFunction", "a", "i", "map", "b", "ii", "innerFrom", "operate", "source", "subscriber", "mergeInternals", "mergeAll", "concurrent", "mergeMap", "identity", "concatAll", "mergeAll", "concat", "args", "_i", "concatAll", "from", "popScheduler", "defer", "observableFactory", "Observable", "subscriber", "innerFrom", "nodeEventEmitterMethods", "eventTargetMethods", "jqueryMethods", "fromEvent", "target", "eventName", "options", "resultSelector", "isFunction", "mapOneOrManyArgs", "_a", "__read", "isEventTarget", "methodName", "handler", "isNodeStyleEventEmitter", "toCommonHandlerRegistry", "isJQueryStyleEventEmitter", "add", "remove", "isArrayLike", "mergeMap", "subTarget", "innerFrom", "Observable", "subscriber", "args", "_i", "fromEventPattern", "addHandler", "removeHandler", "resultSelector", "mapOneOrManyArgs", "Observable", "subscriber", "handler", "e", "_i", "retValue", "isFunction", "timer", "dueTime", "intervalOrScheduler", "scheduler", "async", "intervalDuration", "isScheduler", "Observable", "subscriber", "due", "isValidDate", "n", "merge", "args", "_i", "scheduler", "popScheduler", "concurrent", "popNumber", "sources", "innerFrom", "mergeAll", "from", "EMPTY", "NEVER", "Observable", "noop", "isArray", "argsOrArgArray", "args", "filter", "predicate", "thisArg", "operate", "source", "subscriber", "index", "createOperatorSubscriber", "value", "zip", "args", "_i", "resultSelector", "popResultSelector", "sources", "argsOrArgArray", "Observable", "subscriber", "buffers", "completed", "sourceIndex", "innerFrom", "createOperatorSubscriber", "value", "buffer", "result", "__spreadArray", "__read", "i", "EMPTY", "audit", "durationSelector", "operate", "source", "subscriber", "hasValue", "lastValue", "durationSubscriber", "isComplete", "endDuration", "value", "cleanupDuration", "createOperatorSubscriber", "innerFrom", "auditTime", "duration", "scheduler", "asyncScheduler", "audit", "timer", "bufferCount", "bufferSize", "startBufferEvery", "operate", "source", "subscriber", "buffers", "count", "createOperatorSubscriber", "value", "toEmit", "buffers_1", "__values", "buffers_1_1", "buffer", "toEmit_1", "toEmit_1_1", "arrRemove", "buffers_2", "buffers_2_1", "catchError", "selector", "operate", "source", "subscriber", "innerSub", "syncUnsub", "handledResult", "createOperatorSubscriber", "err", "innerFrom", "scanInternals", "accumulator", "seed", "hasSeed", "emitOnNext", "emitBeforeComplete", "source", "subscriber", "hasState", "state", "index", "createOperatorSubscriber", "value", "i", "combineLatest", "args", "_i", "resultSelector", "popResultSelector", "pipe", "__spreadArray", "__read", "mapOneOrManyArgs", "operate", "source", "subscriber", "combineLatestInit", "argsOrArgArray", "combineLatestWith", "otherSources", "_i", "combineLatest", "__spreadArray", "__read", "concatMap", "project", "resultSelector", "isFunction", "mergeMap", "debounceTime", "dueTime", "scheduler", "asyncScheduler", "operate", "source", "subscriber", "activeTask", "lastValue", "lastTime", "emit", "value", "emitWhenIdle", "targetTime", "now", "createOperatorSubscriber", "defaultIfEmpty", "defaultValue", "operate", "source", "subscriber", "hasValue", "createOperatorSubscriber", "value", "take", "count", "EMPTY", "operate", "source", "subscriber", "seen", "createOperatorSubscriber", "value", "ignoreElements", "operate", "source", "subscriber", "createOperatorSubscriber", "noop", "mapTo", "value", "map", "delayWhen", "delayDurationSelector", "subscriptionDelay", "source", "concat", "take", "ignoreElements", "mergeMap", "value", "index", "mapTo", "delay", "due", "scheduler", "asyncScheduler", "duration", "timer", "delayWhen", "distinctUntilChanged", "comparator", "keySelector", "identity", "defaultCompare", "operate", "source", "subscriber", "previousKey", "first", "createOperatorSubscriber", "value", "currentKey", "a", "b", "distinctUntilKeyChanged", "key", "compare", "distinctUntilChanged", "x", "y", "endWith", "values", "_i", "source", "concat", "of", "__spreadArray", "__read", "finalize", "callback", "operate", "source", "subscriber", "takeLast", "count", "EMPTY", "operate", "source", "subscriber", "buffer", "createOperatorSubscriber", "value", "buffer_1", "__values", "buffer_1_1", "merge", "args", "_i", "scheduler", "popScheduler", "concurrent", "popNumber", "argsOrArgArray", "operate", "source", "subscriber", "mergeAll", "from", "__spreadArray", "__read", "mergeWith", "otherSources", "_i", "merge", "__spreadArray", "__read", "repeat", "countOrConfig", "count", "delay", "_a", "EMPTY", "operate", "source", "subscriber", "soFar", "sourceSub", "resubscribe", "notifier", "timer", "innerFrom", "notifierSubscriber_1", "createOperatorSubscriber", "subscribeToSource", "syncUnsub", "sample", "notifier", "operate", "source", "subscriber", "hasValue", "lastValue", "createOperatorSubscriber", "value", "noop", "scan", "accumulator", "seed", "operate", "scanInternals", "share", "options", "_a", "connector", "Subject", "_b", "resetOnError", "_c", "resetOnComplete", "_d", "resetOnRefCountZero", "wrapperSource", "connection", "resetConnection", "subject", "refCount", "hasCompleted", "hasErrored", "cancelReset", "reset", "resetAndUnsubscribe", "conn", "operate", "source", "subscriber", "dest", "handleReset", "SafeSubscriber", "value", "err", "innerFrom", "on", "args", "_i", "onSubscriber", "__spreadArray", "__read", "shareReplay", "configOrBufferSize", "windowTime", "scheduler", "bufferSize", "refCount", "_a", "_b", "_c", "share", "ReplaySubject", "skip", "count", "filter", "_", "index", "skipUntil", "notifier", "operate", "source", "subscriber", "taking", "skipSubscriber", "createOperatorSubscriber", "noop", "innerFrom", "value", "startWith", "values", "_i", "scheduler", "popScheduler", "operate", "source", "subscriber", "concat", "switchMap", "project", "resultSelector", "operate", "source", "subscriber", "innerSubscriber", "index", "isComplete", "checkComplete", "createOperatorSubscriber", "value", "innerIndex", "outerIndex", "innerFrom", "innerValue", "takeUntil", "notifier", "operate", "source", "subscriber", "innerFrom", "createOperatorSubscriber", "noop", "takeWhile", "predicate", "inclusive", "operate", "source", "subscriber", "index", "createOperatorSubscriber", "value", "result", "tap", "observerOrNext", "error", "complete", "tapObserver", "isFunction", "operate", "source", "subscriber", "_a", "isUnsub", "createOperatorSubscriber", "value", "err", "_b", "identity", "defaultThrottleConfig", "throttle", "durationSelector", "config", "operate", "source", "subscriber", "leading", "trailing", "hasValue", "sendValue", "throttled", "isComplete", "endThrottling", "send", "cleanupThrottling", "startThrottle", "value", "innerFrom", "createOperatorSubscriber", "throttleTime", "duration", "scheduler", "config", "asyncScheduler", "defaultThrottleConfig", "duration$", "timer", "throttle", "withLatestFrom", "inputs", "_i", "project", "popResultSelector", "operate", "source", "subscriber", "len", "otherValues", "hasValue", "ready", "i", "innerFrom", "createOperatorSubscriber", "value", "identity", "noop", "values", "__spreadArray", "__read", "zip", "sources", "_i", "operate", "source", "subscriber", "__spreadArray", "__read", "zipWith", "otherInputs", "_i", "zip", "__spreadArray", "__read", "watchDocument", "document$", "ReplaySubject", "fromEvent", "getElements", "selector", "node", "getElement", "el", "getOptionalElement", "getActiveElement", "watchElementFocus", "el", "merge", "fromEvent", "debounceTime", "map", "active", "getActiveElement", "startWith", "distinctUntilChanged", "getElementOffset", "el", "watchElementOffset", "merge", "fromEvent", "auditTime", "animationFrameScheduler", "map", "startWith", "getElementContentOffset", "el", "watchElementContentOffset", "merge", "fromEvent", "auditTime", "animationFrameScheduler", "map", "startWith", "MapShim", "getIndex", "arr", "key", "result", "entry", "index", "class_1", "value", "entries", "callback", "ctx", "_i", "_a", "isBrowser", "global$1", "requestAnimationFrame$1", "trailingTimeout", "throttle", "delay", "leadingCall", "trailingCall", "lastCallTime", "resolvePending", "proxy", "timeoutCallback", "timeStamp", "REFRESH_DELAY", "transitionKeys", "mutationObserverSupported", "ResizeObserverController", "observer", "observers", "changesDetected", "activeObservers", "_b", "propertyName", "isReflowProperty", "defineConfigurable", "target", "props", "getWindowOf", "ownerGlobal", "emptyRect", "createRectInit", "toFloat", "getBordersSize", "styles", "positions", "size", "position", "getPaddings", "paddings", "positions_1", "getSVGContentRect", "bbox", "getHTMLElementContentRect", "clientWidth", "clientHeight", "horizPad", "vertPad", "width", "height", "isDocumentElement", "vertScrollbar", "horizScrollbar", "isSVGGraphicsElement", "getContentRect", "createReadOnlyRect", "x", "y", "Constr", "rect", "ResizeObservation", "ResizeObserverEntry", "rectInit", "contentRect", "ResizeObserverSPI", "controller", "callbackCtx", "observations", "_this", "observation", "ResizeObserver", "method", "ResizeObserver_es_default", "entry$", "Subject", "observer$", "defer", "of", "ResizeObserver_es_default", "entries", "entry", "switchMap", "observer", "merge", "NEVER", "finalize", "shareReplay", "getElementSize", "el", "watchElementSize", "tap", "filter", "target", "map", "startWith", "getElementContentSize", "el", "getElementContainer", "parent", "entry$", "Subject", "observer$", "defer", "of", "entries", "entry", "switchMap", "observer", "merge", "NEVER", "finalize", "shareReplay", "watchElementVisibility", "el", "tap", "filter", "target", "map", "isIntersecting", "watchElementBoundary", "threshold", "watchElementContentOffset", "y", "visible", "getElementSize", "content", "getElementContentSize", "distinctUntilChanged", "toggles", "getElement", "getToggle", "name", "setToggle", "value", "watchToggle", "el", "fromEvent", "map", "startWith", "isSusceptibleToKeyboard", "el", "type", "watchKeyboard", "fromEvent", "filter", "ev", "map", "getToggle", "mode", "active", "getActiveElement", "share", "getLocation", "setLocation", "url", "watchLocation", "Subject", "appendChild", "el", "child", "node", "h", "tag", "attributes", "children", "attr", "truncate", "value", "n", "i", "round", "digits", "getLocationHash", "setLocationHash", "hash", "el", "h", "ev", "watchLocationHash", "fromEvent", "map", "startWith", "filter", "shareReplay", "watchLocationTarget", "id", "getOptionalElement", "watchMedia", "query", "media", "fromEventPattern", "next", "startWith", "watchPrint", "merge", "fromEvent", "map", "at", "query$", "factory", "switchMap", "active", "EMPTY", "request", "url", "options", "from", "catchError", "EMPTY", "switchMap", "res", "throwError", "of", "requestJSON", "shareReplay", "requestXML", "dom", "map", "watchScript", "src", "script", "h", "defer", "merge", "fromEvent", "switchMap", "throwError", "map", "finalize", "take", "getViewportOffset", "watchViewportOffset", "merge", "fromEvent", "map", "startWith", "getViewportSize", "watchViewportSize", "fromEvent", "map", "startWith", "watchViewport", "combineLatest", "watchViewportOffset", "watchViewportSize", "map", "offset", "size", "shareReplay", "watchViewportAt", "el", "viewport$", "header$", "size$", "distinctUntilKeyChanged", "offset$", "combineLatest", "map", "getElementOffset", "height", "offset", "size", "x", "y", "watchWorker", "worker", "tx$", "rx$", "fromEvent", "map", "data", "throttle", "tap", "message", "switchMap", "share", "script", "getElement", "config", "getLocation", "configuration", "feature", "flag", "translation", "key", "value", "getComponentElement", "type", "node", "getElement", "getComponentElements", "getElements", "watchAnnounce", "el", "button", "getElement", "fromEvent", "map", "content", "mountAnnounce", "feature", "EMPTY", "defer", "push$", "Subject", "startWith", "hash", "_a", "tap", "state", "finalize", "__spreadValues", "watchConsent", "el", "target$", "map", "target", "mountConsent", "options", "internal$", "Subject", "hidden", "tap", "state", "finalize", "__spreadValues", "import_clipboard", "renderTooltip", "id", "h", "renderAnnotation", "id", "prefix", "anchor", "h", "renderTooltip", "renderClipboardButton", "id", "h", "translation", "renderSearchDocument", "document", "flag", "parent", "teaser", "missing", "key", "list", "h", "url", "feature", "match", "highlight", "value", "tags", "configuration", "truncate", "tag", "id", "type", "translation", "renderSearchResultItem", "result", "threshold", "docs", "doc", "article", "index", "best", "more", "children", "section", "renderSourceFacts", "facts", "h", "key", "value", "round", "renderTabbedControl", "type", "classes", "h", "renderTable", "table", "h", "renderVersion", "version", "config", "configuration", "url", "h", "renderVersionSelector", "versions", "active", "translation", "watchAnnotation", "el", "container", "offset$", "defer", "combineLatest", "watchElementOffset", "watchElementContentOffset", "map", "x", "y", "scroll", "width", "height", "getElementSize", "watchElementFocus", "switchMap", "active", "offset", "take", "mountAnnotation", "target$", "tooltip", "index", "push$", "Subject", "done$", "takeLast", "watchElementVisibility", "takeUntil", "visible", "merge", "filter", "debounceTime", "auditTime", "animationFrameScheduler", "throttleTime", "origin", "fromEvent", "ev", "withLatestFrom", "_a", "parent", "getActiveElement", "target", "delay", "tap", "state", "finalize", "__spreadValues", "findAnnotationMarkers", "container", "markers", "el", "getElements", "nodes", "it", "node", "text", "match", "id", "force", "marker", "swap", "source", "target", "mountAnnotationList", "target$", "print$", "parent", "prefix", "annotations", "getOptionalElement", "renderAnnotation", "EMPTY", "defer", "done$", "Subject", "pairs", "annotation", "getElement", "takeUntil", "takeLast", "active", "inner", "child", "merge", "mountAnnotation", "finalize", "share", "sequence", "findCandidateList", "el", "sibling", "watchCodeBlock", "watchElementSize", "map", "width", "getElementContentSize", "distinctUntilKeyChanged", "mountCodeBlock", "options", "hover", "factory$", "defer", "push$", "Subject", "scrollable", "ClipboardJS", "parent", "renderClipboardButton", "container", "list", "feature", "annotations$", "mountAnnotationList", "tap", "state", "finalize", "__spreadValues", "mergeWith", "height", "distinctUntilChanged", "switchMap", "active", "EMPTY", "watchElementVisibility", "filter", "visible", "take", "mermaid$", "sequence", "fetchScripts", "watchScript", "of", "mountMermaid", "el", "tap", "mermaid_default", "map", "shareReplay", "id", "host", "h", "svg", "shadow", "watchDetails", "el", "target$", "print$", "open", "merge", "map", "target", "filter", "details", "active", "tap", "mountDetails", "options", "defer", "push$", "Subject", "action", "reveal", "state", "finalize", "__spreadValues", "sentinel", "h", "mountDataTable", "el", "renderTable", "of", "watchContentTabs", "el", "inputs", "getElements", "initial", "input", "merge", "fromEvent", "map", "getElement", "startWith", "active", "mountContentTabs", "viewport$", "prev", "renderTabbedControl", "next", "container", "defer", "push$", "Subject", "done$", "takeLast", "combineLatest", "watchElementSize", "auditTime", "animationFrameScheduler", "takeUntil", "size", "offset", "getElementOffset", "width", "getElementSize", "content", "getElementContentOffset", "watchElementContentOffset", "getElementContentSize", "direction", "feature", "skip", "withLatestFrom", "tab", "y", "set", "label", "tabs", "tap", "state", "finalize", "__spreadValues", "subscribeOn", "asyncScheduler", "mountContent", "el", "viewport$", "target$", "print$", "merge", "getElements", "child", "mountCodeBlock", "mountMermaid", "mountDataTable", "mountDetails", "mountContentTabs", "watchDialog", "_el", "alert$", "switchMap", "message", "merge", "of", "delay", "map", "active", "mountDialog", "el", "options", "inner", "getElement", "defer", "push$", "Subject", "tap", "state", "finalize", "__spreadValues", "isHidden", "viewport$", "feature", "of", "direction$", "map", "y", "bufferCount", "a", "b", "distinctUntilKeyChanged", "hidden$", "combineLatest", "filter", "offset", "direction", "distinctUntilChanged", "search$", "watchToggle", "search", "switchMap", "active", "startWith", "watchHeader", "el", "options", "defer", "watchElementSize", "height", "hidden", "shareReplay", "mountHeader", "header$", "main$", "push$", "Subject", "done$", "takeLast", "combineLatestWith", "takeUntil", "state", "__spreadValues", "watchHeaderTitle", "el", "viewport$", "header$", "watchViewportAt", "map", "y", "height", "getElementSize", "distinctUntilKeyChanged", "mountHeaderTitle", "options", "defer", "push$", "Subject", "active", "heading", "getOptionalElement", "EMPTY", "tap", "state", "finalize", "__spreadValues", "watchMain", "el", "viewport$", "header$", "adjust$", "map", "height", "distinctUntilChanged", "border$", "switchMap", "watchElementSize", "distinctUntilKeyChanged", "combineLatest", "header", "top", "bottom", "y", "a", "b", "watchPalette", "inputs", "current", "input", "of", "mergeMap", "fromEvent", "map", "startWith", "shareReplay", "mountPalette", "el", "defer", "push$", "Subject", "palette", "key", "value", "index", "label", "observeOn", "asyncScheduler", "getElements", "tap", "state", "finalize", "__spreadValues", "import_clipboard", "extract", "el", "text", "setupClipboardJS", "alert$", "ClipboardJS", "Observable", "subscriber", "getElement", "ev", "tap", "map", "translation", "preprocess", "urls", "root", "next", "a", "b", "url", "index", "fetchSitemap", "base", "cached", "of", "config", "configuration", "requestXML", "map", "sitemap", "getElements", "node", "catchError", "EMPTY", "defaultIfEmpty", "tap", "setupInstantLoading", "document$", "location$", "viewport$", "config", "configuration", "fromEvent", "favicon", "getOptionalElement", "push$", "fetchSitemap", "map", "paths", "path", "switchMap", "urls", "filter", "ev", "el", "url", "of", "NEVER", "share", "pop$", "merge", "distinctUntilChanged", "a", "b", "response$", "distinctUntilKeyChanged", "request", "catchError", "setLocation", "sample", "dom", "res", "skip", "replacement", "selector", "feature", "source", "target", "getComponentElement", "getElements", "concatMap", "script", "h", "name", "Observable", "observer", "EMPTY", "offset", "setLocationHash", "skipUntil", "debounceTime", "bufferCount", "state", "import_escape_html", "import_escape_html", "setupSearchHighlighter", "config", "escape", "separator", "highlight", "_", "data", "term", "query", "match", "value", "escapeHTML", "defaultTransform", "query", "terms", "index", "isSearchReadyMessage", "message", "isSearchQueryMessage", "isSearchResultMessage", "setupSearchIndex", "config", "docs", "translation", "options", "feature", "setupSearchWorker", "url", "index", "configuration", "worker", "tx$", "Subject", "rx$", "watchWorker", "map", "message", "isSearchResultMessage", "result", "document", "share", "from", "data", "setupVersionSelector", "document$", "config", "configuration", "versions$", "requestJSON", "catchError", "EMPTY", "current$", "map", "versions", "current", "version", "aliases", "switchMap", "urls", "fromEvent", "filter", "ev", "withLatestFrom", "el", "url", "of", "fetchSitemap", "sitemap", "path", "getLocation", "setLocation", "combineLatest", "getElement", "renderVersionSelector", "_a", "outdated", "latest", "warning", "getComponentElements", "watchSearchQuery", "el", "rx$", "fn", "defaultTransform", "searchParams", "getLocation", "setToggle", "param$", "filter", "isSearchReadyMessage", "take", "map", "watchToggle", "active", "url", "value", "focus$", "watchElementFocus", "value$", "merge", "fromEvent", "delay", "startWith", "distinctUntilChanged", "combineLatest", "focus", "shareReplay", "mountSearchQuery", "tx$", "push$", "Subject", "done$", "takeLast", "distinctUntilKeyChanged", "translation", "takeUntil", "tap", "state", "finalize", "__spreadValues", "share", "mountSearchResult", "el", "rx$", "query$", "push$", "Subject", "boundary$", "watchElementBoundary", "filter", "meta", "getElement", "list", "ready$", "isSearchReadyMessage", "take", "withLatestFrom", "skipUntil", "items", "value", "translation", "round", "tap", "switchMap", "merge", "of", "bufferCount", "zipWith", "chunk", "result", "renderSearchResultItem", "isSearchResultMessage", "map", "data", "state", "finalize", "__spreadValues", "watchSearchShare", "_el", "query$", "map", "value", "url", "getLocation", "mountSearchShare", "el", "options", "push$", "Subject", "fromEvent", "ev", "tap", "state", "finalize", "__spreadValues", "mountSearchSuggest", "el", "rx$", "keyboard$", "push$", "Subject", "query", "getComponentElement", "query$", "merge", "fromEvent", "observeOn", "asyncScheduler", "map", "distinctUntilChanged", "combineLatestWith", "suggestions", "value", "words", "last", "filter", "mode", "key", "isSearchResultMessage", "data", "tap", "state", "finalize", "mountSearch", "el", "index$", "keyboard$", "config", "configuration", "url", "worker", "setupSearchWorker", "query", "getComponentElement", "result", "tx$", "rx$", "filter", "isSearchQueryMessage", "sample", "isSearchReadyMessage", "take", "mode", "key", "active", "getActiveElement", "anchors", "anchor", "getElements", "article", "best", "a", "b", "setToggle", "els", "i", "query$", "mountSearchQuery", "result$", "mountSearchResult", "merge", "mergeWith", "getComponentElements", "child", "mountSearchShare", "mountSearchSuggest", "err", "NEVER", "mountSearchHiglight", "el", "index$", "location$", "combineLatest", "startWith", "getLocation", "filter", "url", "map", "index", "setupSearchHighlighter", "fn", "_a", "nodes", "it", "node", "original", "replaced", "text", "childNodes", "h", "watchSidebar", "el", "viewport$", "main$", "parent", "adjust", "combineLatest", "map", "offset", "height", "y", "distinctUntilChanged", "a", "b", "mountSidebar", "_a", "_b", "header$", "options", "__objRest", "inner", "getElement", "getElementOffset", "defer", "push$", "Subject", "auditTime", "animationFrameScheduler", "withLatestFrom", "observeOn", "take", "item", "getElements", "container", "getElementContainer", "getElementSize", "tap", "state", "finalize", "__spreadValues", "fetchSourceFactsFromGitHub", "user", "repo", "url", "zip", "requestJSON", "catchError", "EMPTY", "map", "release", "defaultIfEmpty", "info", "__spreadValues", "fetchSourceFactsFromGitLab", "base", "project", "url", "requestJSON", "catchError", "EMPTY", "map", "star_count", "forks_count", "defaultIfEmpty", "fetchSourceFacts", "url", "match", "user", "repo", "fetchSourceFactsFromGitHub", "base", "slug", "fetchSourceFactsFromGitLab", "EMPTY", "fetch$", "watchSource", "el", "defer", "cached", "of", "getComponentElements", "consent", "EMPTY", "fetchSourceFacts", "tap", "facts", "catchError", "filter", "map", "shareReplay", "mountSource", "inner", "getElement", "push$", "Subject", "renderSourceFacts", "state", "finalize", "__spreadValues", "watchTabs", "el", "viewport$", "header$", "watchElementSize", "switchMap", "watchViewportAt", "map", "y", "distinctUntilKeyChanged", "mountTabs", "options", "defer", "push$", "Subject", "hidden", "feature", "of", "tap", "state", "finalize", "__spreadValues", "watchTableOfContents", "el", "viewport$", "header$", "table", "anchors", "getElements", "anchor", "id", "target", "getOptionalElement", "adjust$", "distinctUntilKeyChanged", "map", "height", "main", "getComponentElement", "grid", "getElement", "share", "watchElementSize", "switchMap", "body", "defer", "path", "of", "index", "offset", "a", "b", "combineLatestWith", "adjust", "scan", "prev", "next", "y", "size", "last", "distinctUntilChanged", "startWith", "bufferCount", "mountTableOfContents", "target$", "push$", "Subject", "done$", "takeLast", "feature", "smooth$", "merge", "debounceTime", "filter", "withLatestFrom", "behavior", "container", "getElementContainer", "getElementSize", "takeUntil", "skip", "repeat", "url", "getLocation", "active", "hash", "tap", "state", "finalize", "__spreadValues", "watchBackToTop", "_el", "viewport$", "main$", "target$", "direction$", "map", "y", "bufferCount", "a", "b", "distinctUntilChanged", "active$", "active", "combineLatest", "direction", "takeUntil", "skip", "endWith", "repeat", "hidden", "mountBackToTop", "el", "header$", "push$", "Subject", "done$", "takeLast", "distinctUntilKeyChanged", "height", "tap", "state", "finalize", "__spreadValues", "patchIndeterminate", "document$", "tablet$", "switchMap", "getElements", "tap", "el", "mergeMap", "fromEvent", "takeWhile", "map", "withLatestFrom", "tablet", "isAppleDevice", "patchScrollfix", "document$", "switchMap", "getElements", "tap", "el", "filter", "mergeMap", "fromEvent", "map", "top", "patchScrolllock", "viewport$", "tablet$", "combineLatest", "watchToggle", "map", "active", "tablet", "switchMap", "of", "delay", "withLatestFrom", "y", "value", "obj", "data", "key", "x", "y", "nodes", "parent", "i", "node", "document$", "watchDocument", "location$", "watchLocation", "target$", "watchLocationTarget", "keyboard$", "watchKeyboard", "viewport$", "watchViewport", "tablet$", "watchMedia", "screen$", "print$", "watchPrint", "config", "configuration", "index$", "requestJSON", "NEVER", "alert$", "Subject", "setupClipboardJS", "feature", "setupInstantLoading", "_a", "setupVersionSelector", "merge", "delay", "setToggle", "filter", "mode", "key", "prev", "getOptionalElement", "next", "patchIndeterminate", "patchScrollfix", "patchScrolllock", "header$", "watchHeader", "getComponentElement", "main$", "map", "switchMap", "el", "watchMain", "shareReplay", "control$", "getComponentElements", "mountConsent", "mountDialog", "mountHeader", "mountPalette", "mountSearch", "mountSource", "content$", "defer", "mountAnnounce", "mountContent", "mountSearchHiglight", "EMPTY", "mountHeaderTitle", "at", "mountSidebar", "mountTabs", "mountTableOfContents", "mountBackToTop", "component$", "mergeWith"] +} diff --git a/5.x/assets/javascripts/bundle.9c69f0bc.min.js b/5.x/assets/javascripts/bundle.9c69f0bc.min.js deleted file mode 100644 index 91fc7b5d0..000000000 --- a/5.x/assets/javascripts/bundle.9c69f0bc.min.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict";(()=>{var oa=Object.create;var xr=Object.defineProperty;var ia=Object.getOwnPropertyDescriptor;var aa=Object.getOwnPropertyNames,kt=Object.getOwnPropertySymbols,sa=Object.getPrototypeOf,Sr=Object.prototype.hasOwnProperty,sn=Object.prototype.propertyIsEnumerable;var an=(e,t,r)=>t in e?xr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,H=(e,t)=>{for(var r in t||(t={}))Sr.call(t,r)&&an(e,r,t[r]);if(kt)for(var r of kt(t))sn.call(t,r)&&an(e,r,t[r]);return e};var cn=(e,t)=>{var r={};for(var n in e)Sr.call(e,n)&&t.indexOf(n)<0&&(r[n]=e[n]);if(e!=null&&kt)for(var n of kt(e))t.indexOf(n)<0&&sn.call(e,n)&&(r[n]=e[n]);return r};var yt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var ca=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of aa(t))!Sr.call(e,o)&&o!==r&&xr(e,o,{get:()=>t[o],enumerable:!(n=ia(t,o))||n.enumerable});return e};var Ye=(e,t,r)=>(r=e!=null?oa(sa(e)):{},ca(t||!e||!e.__esModule?xr(r,"default",{value:e,enumerable:!0}):r,e));var fn=yt((wr,un)=>{(function(e,t){typeof wr=="object"&&typeof un!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(wr,function(){"use strict";function e(r){var n=!0,o=!1,i=null,a={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function s(O){return!!(O&&O!==document&&O.nodeName!=="HTML"&&O.nodeName!=="BODY"&&"classList"in O&&"contains"in O.classList)}function c(O){var Ue=O.type,He=O.tagName;return!!(He==="INPUT"&&a[Ue]&&!O.readOnly||He==="TEXTAREA"&&!O.readOnly||O.isContentEditable)}function u(O){O.classList.contains("focus-visible")||(O.classList.add("focus-visible"),O.setAttribute("data-focus-visible-added",""))}function f(O){!O.hasAttribute("data-focus-visible-added")||(O.classList.remove("focus-visible"),O.removeAttribute("data-focus-visible-added"))}function p(O){O.metaKey||O.altKey||O.ctrlKey||(s(r.activeElement)&&u(r.activeElement),n=!0)}function l(O){n=!1}function d(O){!s(O.target)||(n||c(O.target))&&u(O.target)}function h(O){!s(O.target)||(O.target.classList.contains("focus-visible")||O.target.hasAttribute("data-focus-visible-added"))&&(o=!0,window.clearTimeout(i),i=window.setTimeout(function(){o=!1},100),f(O.target))}function b(O){document.visibilityState==="hidden"&&(o&&(n=!0),U())}function U(){document.addEventListener("mousemove",W),document.addEventListener("mousedown",W),document.addEventListener("mouseup",W),document.addEventListener("pointermove",W),document.addEventListener("pointerdown",W),document.addEventListener("pointerup",W),document.addEventListener("touchmove",W),document.addEventListener("touchstart",W),document.addEventListener("touchend",W)}function G(){document.removeEventListener("mousemove",W),document.removeEventListener("mousedown",W),document.removeEventListener("mouseup",W),document.removeEventListener("pointermove",W),document.removeEventListener("pointerdown",W),document.removeEventListener("pointerup",W),document.removeEventListener("touchmove",W),document.removeEventListener("touchstart",W),document.removeEventListener("touchend",W)}function W(O){O.target.nodeName&&O.target.nodeName.toLowerCase()==="html"||(n=!1,G())}document.addEventListener("keydown",p,!0),document.addEventListener("mousedown",l,!0),document.addEventListener("pointerdown",l,!0),document.addEventListener("touchstart",l,!0),document.addEventListener("visibilitychange",b,!0),U(),r.addEventListener("focus",d,!0),r.addEventListener("blur",h,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)})});var pn=yt(Er=>{(function(e){var t=function(){try{return!!Symbol.iterator}catch(u){return!1}},r=t(),n=function(u){var f={next:function(){var p=u.shift();return{done:p===void 0,value:p}}};return r&&(f[Symbol.iterator]=function(){return f}),f},o=function(u){return encodeURIComponent(u).replace(/%20/g,"+")},i=function(u){return decodeURIComponent(String(u).replace(/\+/g," "))},a=function(){var u=function(p){Object.defineProperty(this,"_entries",{writable:!0,value:{}});var l=typeof p;if(l!=="undefined")if(l==="string")p!==""&&this._fromString(p);else if(p instanceof u){var d=this;p.forEach(function(G,W){d.append(W,G)})}else if(p!==null&&l==="object")if(Object.prototype.toString.call(p)==="[object Array]")for(var h=0;hd[0]?1:0}),u._entries&&(u._entries={});for(var p=0;p1?i(d[1]):"")}})})(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:Er);(function(e){var t=function(){try{var o=new e.URL("b","http://a");return o.pathname="c d",o.href==="http://a/c%20d"&&o.searchParams}catch(i){return!1}},r=function(){var o=e.URL,i=function(c,u){typeof c!="string"&&(c=String(c)),u&&typeof u!="string"&&(u=String(u));var f=document,p;if(u&&(e.location===void 0||u!==e.location.href)){u=u.toLowerCase(),f=document.implementation.createHTMLDocument(""),p=f.createElement("base"),p.href=u,f.head.appendChild(p);try{if(p.href.indexOf(u)!==0)throw new Error(p.href)}catch(O){throw new Error("URL unable to set base "+u+" due to "+O)}}var l=f.createElement("a");l.href=c,p&&(f.body.appendChild(l),l.href=l.href);var d=f.createElement("input");if(d.type="url",d.value=c,l.protocol===":"||!/:/.test(l.href)||!d.checkValidity()&&!u)throw new TypeError("Invalid URL");Object.defineProperty(this,"_anchorElement",{value:l});var h=new e.URLSearchParams(this.search),b=!0,U=!0,G=this;["append","delete","set"].forEach(function(O){var Ue=h[O];h[O]=function(){Ue.apply(h,arguments),b&&(U=!1,G.search=h.toString(),U=!0)}}),Object.defineProperty(this,"searchParams",{value:h,enumerable:!0});var W=void 0;Object.defineProperty(this,"_updateSearchParams",{enumerable:!1,configurable:!1,writable:!1,value:function(){this.search!==W&&(W=this.search,U&&(b=!1,this.searchParams._fromString(this.search),b=!0))}})},a=i.prototype,s=function(c){Object.defineProperty(a,c,{get:function(){return this._anchorElement[c]},set:function(u){this._anchorElement[c]=u},enumerable:!0})};["hash","host","hostname","port","protocol"].forEach(function(c){s(c)}),Object.defineProperty(a,"search",{get:function(){return this._anchorElement.search},set:function(c){this._anchorElement.search=c,this._updateSearchParams()},enumerable:!0}),Object.defineProperties(a,{toString:{get:function(){var c=this;return function(){return c.href}}},href:{get:function(){return this._anchorElement.href.replace(/\?$/,"")},set:function(c){this._anchorElement.href=c,this._updateSearchParams()},enumerable:!0},pathname:{get:function(){return this._anchorElement.pathname.replace(/(^\/?)/,"/")},set:function(c){this._anchorElement.pathname=c},enumerable:!0},origin:{get:function(){var c={"http:":80,"https:":443,"ftp:":21}[this._anchorElement.protocol],u=this._anchorElement.port!=c&&this._anchorElement.port!=="";return this._anchorElement.protocol+"//"+this._anchorElement.hostname+(u?":"+this._anchorElement.port:"")},enumerable:!0},password:{get:function(){return""},set:function(c){},enumerable:!0},username:{get:function(){return""},set:function(c){},enumerable:!0}}),i.createObjectURL=function(c){return o.createObjectURL.apply(o,arguments)},i.revokeObjectURL=function(c){return o.revokeObjectURL.apply(o,arguments)},e.URL=i};if(t()||r(),e.location!==void 0&&!("origin"in e.location)){var n=function(){return e.location.protocol+"//"+e.location.hostname+(e.location.port?":"+e.location.port:"")};try{Object.defineProperty(e.location,"origin",{get:n,enumerable:!0})}catch(o){setInterval(function(){e.location.origin=n()},100)}}})(typeof global!="undefined"?global:typeof window!="undefined"?window:typeof self!="undefined"?self:Er)});var kn=yt((zs,It)=>{/*! ***************************************************************************** -Copyright (c) Microsoft Corporation. - -Permission to use, copy, modify, and/or distribute this software for any -purpose with or without fee is hereby granted. - -THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH -REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, -INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM -LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. -***************************************************************************** */var ln,mn,dn,hn,bn,vn,gn,yn,xn,Ht,Or,Sn,wn,En,rt,On,_n,Tn,Mn,Ln,An,Cn,Rn,Pt;(function(e){var t=typeof global=="object"?global:typeof self=="object"?self:typeof this=="object"?this:{};typeof define=="function"&&define.amd?define("tslib",["exports"],function(n){e(r(t,r(n)))}):typeof It=="object"&&typeof It.exports=="object"?e(r(t,r(It.exports))):e(r(t));function r(n,o){return n!==t&&(typeof Object.create=="function"?Object.defineProperty(n,"__esModule",{value:!0}):n.__esModule=!0),function(i,a){return n[i]=o?o(i,a):a}}})(function(e){var t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,o){n.__proto__=o}||function(n,o){for(var i in o)Object.prototype.hasOwnProperty.call(o,i)&&(n[i]=o[i])};ln=function(n,o){if(typeof o!="function"&&o!==null)throw new TypeError("Class extends value "+String(o)+" is not a constructor or null");t(n,o);function i(){this.constructor=n}n.prototype=o===null?Object.create(o):(i.prototype=o.prototype,new i)},mn=Object.assign||function(n){for(var o,i=1,a=arguments.length;i=0;f--)(u=n[f])&&(c=(s<3?u(c):s>3?u(o,i,c):u(o,i))||c);return s>3&&c&&Object.defineProperty(o,i,c),c},bn=function(n,o){return function(i,a){o(i,a,n)}},vn=function(n,o){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(n,o)},gn=function(n,o,i,a){function s(c){return c instanceof i?c:new i(function(u){u(c)})}return new(i||(i=Promise))(function(c,u){function f(d){try{l(a.next(d))}catch(h){u(h)}}function p(d){try{l(a.throw(d))}catch(h){u(h)}}function l(d){d.done?c(d.value):s(d.value).then(f,p)}l((a=a.apply(n,o||[])).next())})},yn=function(n,o){var i={label:0,sent:function(){if(c[0]&1)throw c[1];return c[1]},trys:[],ops:[]},a,s,c,u;return u={next:f(0),throw:f(1),return:f(2)},typeof Symbol=="function"&&(u[Symbol.iterator]=function(){return this}),u;function f(l){return function(d){return p([l,d])}}function p(l){if(a)throw new TypeError("Generator is already executing.");for(;i;)try{if(a=1,s&&(c=l[0]&2?s.return:l[0]?s.throw||((c=s.return)&&c.call(s),0):s.next)&&!(c=c.call(s,l[1])).done)return c;switch(s=0,c&&(l=[l[0]&2,c.value]),l[0]){case 0:case 1:c=l;break;case 4:return i.label++,{value:l[1],done:!1};case 5:i.label++,s=l[1],l=[0];continue;case 7:l=i.ops.pop(),i.trys.pop();continue;default:if(c=i.trys,!(c=c.length>0&&c[c.length-1])&&(l[0]===6||l[0]===2)){i=0;continue}if(l[0]===3&&(!c||l[1]>c[0]&&l[1]=n.length&&(n=void 0),{value:n&&n[a++],done:!n}}};throw new TypeError(o?"Object is not iterable.":"Symbol.iterator is not defined.")},Or=function(n,o){var i=typeof Symbol=="function"&&n[Symbol.iterator];if(!i)return n;var a=i.call(n),s,c=[],u;try{for(;(o===void 0||o-- >0)&&!(s=a.next()).done;)c.push(s.value)}catch(f){u={error:f}}finally{try{s&&!s.done&&(i=a.return)&&i.call(a)}finally{if(u)throw u.error}}return c},Sn=function(){for(var n=[],o=0;o1||f(b,U)})})}function f(b,U){try{p(a[b](U))}catch(G){h(c[0][3],G)}}function p(b){b.value instanceof rt?Promise.resolve(b.value.v).then(l,d):h(c[0][2],b)}function l(b){f("next",b)}function d(b){f("throw",b)}function h(b,U){b(U),c.shift(),c.length&&f(c[0][0],c[0][1])}},_n=function(n){var o,i;return o={},a("next"),a("throw",function(s){throw s}),a("return"),o[Symbol.iterator]=function(){return this},o;function a(s,c){o[s]=n[s]?function(u){return(i=!i)?{value:rt(n[s](u)),done:s==="return"}:c?c(u):u}:c}},Tn=function(n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n[Symbol.asyncIterator],i;return o?o.call(n):(n=typeof Ht=="function"?Ht(n):n[Symbol.iterator](),i={},a("next"),a("throw"),a("return"),i[Symbol.asyncIterator]=function(){return this},i);function a(c){i[c]=n[c]&&function(u){return new Promise(function(f,p){u=n[c](u),s(f,p,u.done,u.value)})}}function s(c,u,f,p){Promise.resolve(p).then(function(l){c({value:l,done:f})},u)}},Mn=function(n,o){return Object.defineProperty?Object.defineProperty(n,"raw",{value:o}):n.raw=o,n};var r=Object.create?function(n,o){Object.defineProperty(n,"default",{enumerable:!0,value:o})}:function(n,o){n.default=o};Ln=function(n){if(n&&n.__esModule)return n;var o={};if(n!=null)for(var i in n)i!=="default"&&Object.prototype.hasOwnProperty.call(n,i)&&Pt(o,n,i);return r(o,n),o},An=function(n){return n&&n.__esModule?n:{default:n}},Cn=function(n,o,i,a){if(i==="a"&&!a)throw new TypeError("Private accessor was defined without a getter");if(typeof o=="function"?n!==o||!a:!o.has(n))throw new TypeError("Cannot read private member from an object whose class did not declare it");return i==="m"?a:i==="a"?a.call(n):a?a.value:o.get(n)},Rn=function(n,o,i,a,s){if(a==="m")throw new TypeError("Private method is not writable");if(a==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof o=="function"?n!==o||!s:!o.has(n))throw new TypeError("Cannot write private member to an object whose class did not declare it");return a==="a"?s.call(n,i):s?s.value=i:o.set(n,i),i},e("__extends",ln),e("__assign",mn),e("__rest",dn),e("__decorate",hn),e("__param",bn),e("__metadata",vn),e("__awaiter",gn),e("__generator",yn),e("__exportStar",xn),e("__createBinding",Pt),e("__values",Ht),e("__read",Or),e("__spread",Sn),e("__spreadArrays",wn),e("__spreadArray",En),e("__await",rt),e("__asyncGenerator",On),e("__asyncDelegator",_n),e("__asyncValues",Tn),e("__makeTemplateObject",Mn),e("__importStar",Ln),e("__importDefault",An),e("__classPrivateFieldGet",Cn),e("__classPrivateFieldSet",Rn)})});var Kr=yt((At,Yr)=>{/*! - * clipboard.js v2.0.11 - * https://clipboardjs.com/ - * - * Licensed MIT © Zeno Rocha - */(function(t,r){typeof At=="object"&&typeof Yr=="object"?Yr.exports=r():typeof define=="function"&&define.amd?define([],r):typeof At=="object"?At.ClipboardJS=r():t.ClipboardJS=r()})(At,function(){return function(){var e={686:function(n,o,i){"use strict";i.d(o,{default:function(){return na}});var a=i(279),s=i.n(a),c=i(370),u=i.n(c),f=i(817),p=i.n(f);function l(j){try{return document.execCommand(j)}catch(_){return!1}}var d=function(_){var E=p()(_);return l("cut"),E},h=d;function b(j){var _=document.documentElement.getAttribute("dir")==="rtl",E=document.createElement("textarea");E.style.fontSize="12pt",E.style.border="0",E.style.padding="0",E.style.margin="0",E.style.position="absolute",E.style[_?"right":"left"]="-9999px";var k=window.pageYOffset||document.documentElement.scrollTop;return E.style.top="".concat(k,"px"),E.setAttribute("readonly",""),E.value=j,E}var U=function(_,E){var k=b(_);E.container.appendChild(k);var I=p()(k);return l("copy"),k.remove(),I},G=function(_){var E=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},k="";return typeof _=="string"?k=U(_,E):_ instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(_==null?void 0:_.type)?k=U(_.value,E):(k=p()(_),l("copy")),k},W=G;function O(j){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?O=function(E){return typeof E}:O=function(E){return E&&typeof Symbol=="function"&&E.constructor===Symbol&&E!==Symbol.prototype?"symbol":typeof E},O(j)}var Ue=function(){var _=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},E=_.action,k=E===void 0?"copy":E,I=_.container,Q=_.target,Oe=_.text;if(k!=="copy"&&k!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(Q!==void 0)if(Q&&O(Q)==="object"&&Q.nodeType===1){if(k==="copy"&&Q.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(k==="cut"&&(Q.hasAttribute("readonly")||Q.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if(Oe)return W(Oe,{container:I});if(Q)return k==="cut"?h(Q):W(Q,{container:I})},He=Ue;function Ce(j){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Ce=function(E){return typeof E}:Ce=function(E){return E&&typeof Symbol=="function"&&E.constructor===Symbol&&E!==Symbol.prototype?"symbol":typeof E},Ce(j)}function Bi(j,_){if(!(j instanceof _))throw new TypeError("Cannot call a class as a function")}function on(j,_){for(var E=0;E<_.length;E++){var k=_[E];k.enumerable=k.enumerable||!1,k.configurable=!0,"value"in k&&(k.writable=!0),Object.defineProperty(j,k.key,k)}}function Gi(j,_,E){return _&&on(j.prototype,_),E&&on(j,E),j}function Ji(j,_){if(typeof _!="function"&&_!==null)throw new TypeError("Super expression must either be null or a function");j.prototype=Object.create(_&&_.prototype,{constructor:{value:j,writable:!0,configurable:!0}}),_&&gr(j,_)}function gr(j,_){return gr=Object.setPrototypeOf||function(k,I){return k.__proto__=I,k},gr(j,_)}function Xi(j){var _=ta();return function(){var k=Ct(j),I;if(_){var Q=Ct(this).constructor;I=Reflect.construct(k,arguments,Q)}else I=k.apply(this,arguments);return Zi(this,I)}}function Zi(j,_){return _&&(Ce(_)==="object"||typeof _=="function")?_:ea(j)}function ea(j){if(j===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return j}function ta(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(j){return!1}}function Ct(j){return Ct=Object.setPrototypeOf?Object.getPrototypeOf:function(E){return E.__proto__||Object.getPrototypeOf(E)},Ct(j)}function yr(j,_){var E="data-clipboard-".concat(j);if(!!_.hasAttribute(E))return _.getAttribute(E)}var ra=function(j){Ji(E,j);var _=Xi(E);function E(k,I){var Q;return Bi(this,E),Q=_.call(this),Q.resolveOptions(I),Q.listenClick(k),Q}return Gi(E,[{key:"resolveOptions",value:function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof I.action=="function"?I.action:this.defaultAction,this.target=typeof I.target=="function"?I.target:this.defaultTarget,this.text=typeof I.text=="function"?I.text:this.defaultText,this.container=Ce(I.container)==="object"?I.container:document.body}},{key:"listenClick",value:function(I){var Q=this;this.listener=u()(I,"click",function(Oe){return Q.onClick(Oe)})}},{key:"onClick",value:function(I){var Q=I.delegateTarget||I.currentTarget,Oe=this.action(Q)||"copy",Rt=He({action:Oe,container:this.container,target:this.target(Q),text:this.text(Q)});this.emit(Rt?"success":"error",{action:Oe,text:Rt,trigger:Q,clearSelection:function(){Q&&Q.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(I){return yr("action",I)}},{key:"defaultTarget",value:function(I){var Q=yr("target",I);if(Q)return document.querySelector(Q)}},{key:"defaultText",value:function(I){return yr("text",I)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(I){var Q=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return W(I,Q)}},{key:"cut",value:function(I){return h(I)}},{key:"isSupported",value:function(){var I=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],Q=typeof I=="string"?[I]:I,Oe=!!document.queryCommandSupported;return Q.forEach(function(Rt){Oe=Oe&&!!document.queryCommandSupported(Rt)}),Oe}}]),E}(s()),na=ra},828:function(n){var o=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function a(s,c){for(;s&&s.nodeType!==o;){if(typeof s.matches=="function"&&s.matches(c))return s;s=s.parentNode}}n.exports=a},438:function(n,o,i){var a=i(828);function s(f,p,l,d,h){var b=u.apply(this,arguments);return f.addEventListener(l,b,h),{destroy:function(){f.removeEventListener(l,b,h)}}}function c(f,p,l,d,h){return typeof f.addEventListener=="function"?s.apply(null,arguments):typeof l=="function"?s.bind(null,document).apply(null,arguments):(typeof f=="string"&&(f=document.querySelectorAll(f)),Array.prototype.map.call(f,function(b){return s(b,p,l,d,h)}))}function u(f,p,l,d){return function(h){h.delegateTarget=a(h.target,p),h.delegateTarget&&d.call(f,h)}}n.exports=c},879:function(n,o){o.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},o.nodeList=function(i){var a=Object.prototype.toString.call(i);return i!==void 0&&(a==="[object NodeList]"||a==="[object HTMLCollection]")&&"length"in i&&(i.length===0||o.node(i[0]))},o.string=function(i){return typeof i=="string"||i instanceof String},o.fn=function(i){var a=Object.prototype.toString.call(i);return a==="[object Function]"}},370:function(n,o,i){var a=i(879),s=i(438);function c(l,d,h){if(!l&&!d&&!h)throw new Error("Missing required arguments");if(!a.string(d))throw new TypeError("Second argument must be a String");if(!a.fn(h))throw new TypeError("Third argument must be a Function");if(a.node(l))return u(l,d,h);if(a.nodeList(l))return f(l,d,h);if(a.string(l))return p(l,d,h);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function u(l,d,h){return l.addEventListener(d,h),{destroy:function(){l.removeEventListener(d,h)}}}function f(l,d,h){return Array.prototype.forEach.call(l,function(b){b.addEventListener(d,h)}),{destroy:function(){Array.prototype.forEach.call(l,function(b){b.removeEventListener(d,h)})}}}function p(l,d,h){return s(document.body,l,d,h)}n.exports=c},817:function(n){function o(i){var a;if(i.nodeName==="SELECT")i.focus(),a=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var s=i.hasAttribute("readonly");s||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),s||i.removeAttribute("readonly"),a=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var c=window.getSelection(),u=document.createRange();u.selectNodeContents(i),c.removeAllRanges(),c.addRange(u),a=c.toString()}return a}n.exports=o},279:function(n){function o(){}o.prototype={on:function(i,a,s){var c=this.e||(this.e={});return(c[i]||(c[i]=[])).push({fn:a,ctx:s}),this},once:function(i,a,s){var c=this;function u(){c.off(i,u),a.apply(s,arguments)}return u._=a,this.on(i,u,s)},emit:function(i){var a=[].slice.call(arguments,1),s=((this.e||(this.e={}))[i]||[]).slice(),c=0,u=s.length;for(c;c{"use strict";/*! - * escape-html - * Copyright(c) 2012-2013 TJ Holowaychuk - * Copyright(c) 2015 Andreas Lubbe - * Copyright(c) 2015 Tiancheng "Timothy" Gu - * MIT Licensed - */var _s=/["'&<>]/;Si.exports=Ts;function Ts(e){var t=""+e,r=_s.exec(t);if(!r)return t;var n,o="",i=0,a=0;for(i=r.index;i0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var n=this,o=this,i=o.hasError,a=o.isStopped,s=o.observers;return i||a?_r:(this.currentObservers=null,s.push(r),new Re(function(){n.currentObservers=null,Pe(s,r)}))},t.prototype._checkFinalizedStatuses=function(r){var n=this,o=n.hasError,i=n.thrownError,a=n.isStopped;o?r.error(i):a&&r.complete()},t.prototype.asObservable=function(){var r=new F;return r.source=this,r},t.create=function(r,n){return new qn(r,n)},t}(F);var qn=function(e){re(t,e);function t(r,n){var o=e.call(this)||this;return o.destination=r,o.source=n,o}return t.prototype.next=function(r){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.next)===null||o===void 0||o.call(n,r)},t.prototype.error=function(r){var n,o;(o=(n=this.destination)===null||n===void 0?void 0:n.error)===null||o===void 0||o.call(n,r)},t.prototype.complete=function(){var r,n;(n=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||n===void 0||n.call(r)},t.prototype._subscribe=function(r){var n,o;return(o=(n=this.source)===null||n===void 0?void 0:n.subscribe(r))!==null&&o!==void 0?o:_r},t}(w);var St={now:function(){return(St.delegate||Date).now()},delegate:void 0};var wt=function(e){re(t,e);function t(r,n,o){r===void 0&&(r=1/0),n===void 0&&(n=1/0),o===void 0&&(o=St);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=n,i._timestampProvider=o,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=n===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,n),i}return t.prototype.next=function(r){var n=this,o=n.isStopped,i=n._buffer,a=n._infiniteTimeWindow,s=n._timestampProvider,c=n._windowTime;o||(i.push(r),!a&&i.push(s.now()+c)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var n=this._innerSubscribe(r),o=this,i=o._infiniteTimeWindow,a=o._buffer,s=a.slice(),c=0;c0?e.prototype.requestAsyncId.call(this,r,n,o):(r.actions.push(this),r._scheduled||(r._scheduled=at.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,n,o){if(o===void 0&&(o=0),o!=null&&o>0||o==null&&this.delay>0)return e.prototype.recycleAsyncId.call(this,r,n,o);r.actions.some(function(i){return i.id===n})||(at.cancelAnimationFrame(n),r._scheduled=void 0)},t}(Nt);var Kn=function(e){re(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var n=this._scheduled;this._scheduled=void 0;var o=this.actions,i;r=r||o.shift();do if(i=r.execute(r.state,r.delay))break;while((r=o[0])&&r.id===n&&o.shift());if(this._active=!1,i){for(;(r=o[0])&&r.id===n&&o.shift();)r.unsubscribe();throw i}},t}(zt);var Te=new Kn(Yn);var C=new F(function(e){return e.complete()});function qt(e){return e&&T(e.schedule)}function kr(e){return e[e.length-1]}function De(e){return T(kr(e))?e.pop():void 0}function ye(e){return qt(kr(e))?e.pop():void 0}function Qt(e,t){return typeof kr(e)=="number"?e.pop():t}var st=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function Yt(e){return T(e==null?void 0:e.then)}function Kt(e){return T(e[it])}function Bt(e){return Symbol.asyncIterator&&T(e==null?void 0:e[Symbol.asyncIterator])}function Gt(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function va(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var Jt=va();function Xt(e){return T(e==null?void 0:e[Jt])}function Zt(e){return In(this,arguments,function(){var r,n,o,i;return $t(this,function(a){switch(a.label){case 0:r=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,jt(r.read())];case 3:return n=a.sent(),o=n.value,i=n.done,i?[4,jt(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,jt(o)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function er(e){return T(e==null?void 0:e.getReader)}function N(e){if(e instanceof F)return e;if(e!=null){if(Kt(e))return ga(e);if(st(e))return ya(e);if(Yt(e))return xa(e);if(Bt(e))return Bn(e);if(Xt(e))return Sa(e);if(er(e))return wa(e)}throw Gt(e)}function ga(e){return new F(function(t){var r=e[it]();if(T(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function ya(e){return new F(function(t){for(var r=0;r=2,!0))}function oe(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new w}:t,n=e.resetOnError,o=n===void 0?!0:n,i=e.resetOnComplete,a=i===void 0?!0:i,s=e.resetOnRefCountZero,c=s===void 0?!0:s;return function(u){var f,p,l,d=0,h=!1,b=!1,U=function(){p==null||p.unsubscribe(),p=void 0},G=function(){U(),f=l=void 0,h=b=!1},W=function(){var O=f;G(),O==null||O.unsubscribe()};return g(function(O,Ue){d++,!b&&!h&&U();var He=l=l!=null?l:r();Ue.add(function(){d--,d===0&&!b&&!h&&(p=Ur(W,c))}),He.subscribe(Ue),!f&&d>0&&(f=new Be({next:function(Ce){return He.next(Ce)},error:function(Ce){b=!0,U(),p=Ur(G,o,Ce),He.error(Ce)},complete:function(){h=!0,U(),p=Ur(G,a),He.complete()}}),N(O).subscribe(f))})(u)}}function Ur(e,t){for(var r=[],n=2;ne.next(document)),e}function B(e,t=document){return Array.from(t.querySelectorAll(e))}function z(e,t=document){let r=pe(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function pe(e,t=document){return t.querySelector(e)||void 0}function Ne(){return document.activeElement instanceof HTMLElement&&document.activeElement||void 0}function nr(e){return R(v(document.body,"focusin"),v(document.body,"focusout")).pipe(Ze(1),m(()=>{let t=Ne();return typeof t!="undefined"?e.contains(t):!1}),q(e===Ne()),K())}function ze(e){return{x:e.offsetLeft,y:e.offsetTop}}function vo(e){return R(v(window,"load"),v(window,"resize")).pipe($e(0,Te),m(()=>ze(e)),q(ze(e)))}function or(e){return{x:e.scrollLeft,y:e.scrollTop}}function pt(e){return R(v(e,"scroll"),v(window,"resize")).pipe($e(0,Te),m(()=>or(e)),q(or(e)))}var yo=function(){if(typeof Map!="undefined")return Map;function e(t,r){var n=-1;return t.some(function(o,i){return o[0]===r?(n=i,!0):!1}),n}return function(){function t(){this.__entries__=[]}return Object.defineProperty(t.prototype,"size",{get:function(){return this.__entries__.length},enumerable:!0,configurable:!0}),t.prototype.get=function(r){var n=e(this.__entries__,r),o=this.__entries__[n];return o&&o[1]},t.prototype.set=function(r,n){var o=e(this.__entries__,r);~o?this.__entries__[o][1]=n:this.__entries__.push([r,n])},t.prototype.delete=function(r){var n=this.__entries__,o=e(n,r);~o&&n.splice(o,1)},t.prototype.has=function(r){return!!~e(this.__entries__,r)},t.prototype.clear=function(){this.__entries__.splice(0)},t.prototype.forEach=function(r,n){n===void 0&&(n=null);for(var o=0,i=this.__entries__;o0},e.prototype.connect_=function(){!zr||this.connected_||(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),za?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){!zr||!this.connected_||(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(t){var r=t.propertyName,n=r===void 0?"":r,o=Na.some(function(i){return!!~n.indexOf(i)});o&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),xo=function(e,t){for(var r=0,n=Object.keys(t);r0},e}(),wo=typeof WeakMap!="undefined"?new WeakMap:new yo,Eo=function(){function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var r=qa.getInstance(),n=new ts(t,r,this);wo.set(this,n)}return e}();["observe","unobserve","disconnect"].forEach(function(e){Eo.prototype[e]=function(){var t;return(t=wo.get(this))[e].apply(t,arguments)}});var rs=function(){return typeof ir.ResizeObserver!="undefined"?ir.ResizeObserver:Eo}(),Oo=rs;var _o=new w,ns=P(()=>$(new Oo(e=>{for(let t of e)_o.next(t)}))).pipe(S(e=>R(xe,$(e)).pipe(L(()=>e.disconnect()))),X(1));function Ae(e){return{width:e.offsetWidth,height:e.offsetHeight}}function de(e){return ns.pipe(x(t=>t.observe(e)),S(t=>_o.pipe(M(({target:r})=>r===e),L(()=>t.unobserve(e)),m(()=>Ae(e)))),q(Ae(e)))}function mt(e){return{width:e.scrollWidth,height:e.scrollHeight}}var To=new w,os=P(()=>$(new IntersectionObserver(e=>{for(let t of e)To.next(t)},{threshold:0}))).pipe(S(e=>R(xe,$(e)).pipe(L(()=>e.disconnect()))),X(1));function cr(e){return os.pipe(x(t=>t.observe(e)),S(t=>To.pipe(M(({target:r})=>r===e),L(()=>t.unobserve(e)),m(({isIntersecting:r})=>r))))}function Mo(e,t=16){return pt(e).pipe(m(({y:r})=>{let n=Ae(e),o=mt(e);return r>=o.height-n.height-t}),K())}var ur={drawer:z("[data-md-toggle=drawer]"),search:z("[data-md-toggle=search]")};function Lo(e){return ur[e].checked}function qe(e,t){ur[e].checked!==t&&ur[e].click()}function dt(e){let t=ur[e];return v(t,"change").pipe(m(()=>t.checked),q(t.checked))}function is(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function Ao(){return v(window,"keydown").pipe(M(e=>!(e.metaKey||e.ctrlKey)),m(e=>({mode:Lo("search")?"search":"global",type:e.key,claim(){e.preventDefault(),e.stopPropagation()}})),M(({mode:e,type:t})=>{if(e==="global"){let r=Ne();if(typeof r!="undefined")return!is(r,t)}return!0}),oe())}function Se(){return new URL(location.href)}function fr(e){location.href=e.href}function Co(){return new w}function Ro(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)Ro(e,r)}function A(e,t,...r){let n=document.createElement(e);if(t)for(let o of Object.keys(t))typeof t[o]!="undefined"&&(typeof t[o]!="boolean"?n.setAttribute(o,t[o]):n.setAttribute(o,""));for(let o of r)Ro(n,o);return n}function ko(e,t){let r=t;if(e.length>r){for(;e[r]!==" "&&--r>0;);return`${e.substring(0,r)}...`}return e}function pr(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function Ho(){return location.hash.substring(1)}function Po(e){let t=A("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function as(){return v(window,"hashchange").pipe(m(Ho),q(Ho()),M(e=>e.length>0),X(1))}function Io(){return as().pipe(m(e=>pe(`[id="${e}"]`)),M(e=>typeof e!="undefined"))}function qr(e){let t=matchMedia(e);return rr(r=>t.addListener(()=>r(t.matches))).pipe(q(t.matches))}function $o(){let e=matchMedia("print");return R(v(window,"beforeprint").pipe(m(()=>!0)),v(window,"afterprint").pipe(m(()=>!1))).pipe(q(e.matches))}function Qr(e,t){return e.pipe(S(r=>r?t():C))}function lr(e,t={credentials:"same-origin"}){return fe(fetch(`${e}`,t)).pipe(ae(()=>C),S(r=>r.status!==200?Ot(()=>new Error(r.statusText)):$(r)))}function ke(e,t){return lr(e,t).pipe(S(r=>r.json()),X(1))}function jo(e,t){let r=new DOMParser;return lr(e,t).pipe(S(n=>n.text()),m(n=>r.parseFromString(n,"text/xml")),X(1))}function Fo(e){let t=A("script",{src:e});return P(()=>(document.head.appendChild(t),R(v(t,"load"),v(t,"error").pipe(S(()=>Ot(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(m(()=>{}),L(()=>document.head.removeChild(t)),se(1))))}function Uo(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function Do(){return R(v(window,"scroll",{passive:!0}),v(window,"resize",{passive:!0})).pipe(m(Uo),q(Uo()))}function Wo(){return{width:innerWidth,height:innerHeight}}function Vo(){return v(window,"resize",{passive:!0}).pipe(m(Wo),q(Wo()))}function No(){return Y([Do(),Vo()]).pipe(m(([e,t])=>({offset:e,size:t})),X(1))}function mr(e,{viewport$:t,header$:r}){let n=t.pipe(J("size")),o=Y([n,r]).pipe(m(()=>ze(e)));return Y([r,t,o]).pipe(m(([{height:i},{offset:a,size:s},{x:c,y:u}])=>({offset:{x:a.x-c,y:a.y-u+i},size:s})))}function zo(e,{tx$:t}){let r=v(e,"message").pipe(m(({data:n})=>n));return t.pipe(Lt(()=>r,{leading:!0,trailing:!0}),x(n=>e.postMessage(n)),S(()=>r),oe())}var ss=z("#__config"),ht=JSON.parse(ss.textContent);ht.base=`${new URL(ht.base,Se())}`;function he(){return ht}function ee(e){return ht.features.includes(e)}function te(e,t){return typeof t!="undefined"?ht.translations[e].replace("#",t.toString()):ht.translations[e]}function we(e,t=document){return z(`[data-md-component=${e}]`,t)}function ne(e,t=document){return B(`[data-md-component=${e}]`,t)}function cs(e){let t=z(".md-typeset > :first-child",e);return v(t,"click",{once:!0}).pipe(m(()=>z(".md-typeset",e)),m(r=>({hash:__md_hash(r.innerHTML)})))}function qo(e){return!ee("announce.dismiss")||!e.childElementCount?C:P(()=>{let t=new w;return t.pipe(q({hash:__md_get("__announce")})).subscribe(({hash:r})=>{var n;r&&r===((n=__md_get("__announce"))!=null?n:r)&&(e.hidden=!0,__md_set("__announce",r))}),cs(e).pipe(x(r=>t.next(r)),L(()=>t.complete()),m(r=>H({ref:e},r)))})}function us(e,{target$:t}){return t.pipe(m(r=>({hidden:r!==e})))}function Qo(e,t){let r=new w;return r.subscribe(({hidden:n})=>{e.hidden=n}),us(e,t).pipe(x(n=>r.next(n)),L(()=>r.complete()),m(n=>H({ref:e},n)))}var ni=Ye(Kr());function Yo(e){return A("aside",{class:"md-annotation",tabIndex:0},A("div",{class:"md-annotation__inner md-tooltip"},A("div",{class:"md-tooltip__inner md-typeset"})),A("span",{class:"md-annotation__index"},A("span",{"data-md-annotation-id":e})))}function Ko(e){return A("button",{class:"md-clipboard md-icon",title:te("clipboard.copy"),"data-clipboard-target":`#${e} > code`})}function Br(e,t){let r=t&2,n=t&1,o=Object.keys(e.terms).filter(a=>!e.terms[a]).reduce((a,s)=>[...a,A("del",null,s)," "],[]).slice(0,-1),i=new URL(e.location);return ee("search.highlight")&&i.searchParams.set("h",Object.entries(e.terms).filter(([,a])=>a).reduce((a,[s])=>`${a} ${s}`.trim(),"")),A("a",{href:`${i}`,class:"md-search-result__link",tabIndex:-1},A("article",{class:["md-search-result__article",...r?["md-search-result__article--document"]:[]].join(" "),"data-md-score":e.score.toFixed(2)},r>0&&A("div",{class:"md-search-result__icon md-icon"}),A("h1",{class:"md-search-result__title"},e.title),n>0&&e.text.length>0&&A("p",{class:"md-search-result__teaser"},ko(e.text,320)),e.tags&&e.tags.map(a=>A("span",{class:"md-tag"},a)),n>0&&o.length>0&&A("p",{class:"md-search-result__terms"},te("search.result.term.missing"),": ",...o)))}function Bo(e){let t=e[0].score,r=[...e],n=r.findIndex(u=>!u.location.includes("#")),[o]=r.splice(n,1),i=r.findIndex(u=>u.scoreBr(u,1)),...s.length?[A("details",{class:"md-search-result__more"},A("summary",{tabIndex:-1},s.length>0&&s.length===1?te("search.result.more.one"):te("search.result.more.other",s.length)),...s.map(u=>Br(u,1)))]:[]];return A("li",{class:"md-search-result__item"},c)}function Go(e){return A("ul",{class:"md-source__facts"},Object.entries(e).map(([t,r])=>A("li",{class:`md-source__fact md-source__fact--${t}`},typeof r=="number"?pr(r):r)))}function Gr(e){let t=`tabbed-control tabbed-control--${e}`;return A("div",{class:t,hidden:!0},A("button",{class:"tabbed-button",tabIndex:-1}))}function Jo(e){return A("div",{class:"md-typeset__scrollwrap"},A("div",{class:"md-typeset__table"},e))}function fs(e){let t=he(),r=new URL(`../${e.version}/`,t.base);return A("li",{class:"md-version__item"},A("a",{href:`${r}`,class:"md-version__link"},e.title))}function Xo(e,t){return A("div",{class:"md-version"},A("button",{class:"md-version__current","aria-label":te("select.version.title")},t.title),A("ul",{class:"md-version__list"},e.map(fs)))}function ps(e,t){let r=P(()=>Y([vo(e),pt(t)])).pipe(m(([{x:n,y:o},i])=>{let{width:a}=Ae(e);return{x:n-i.x+a/2,y:o-i.y}}));return nr(e).pipe(S(n=>r.pipe(m(o=>({active:n,offset:o})),se(+!n||1/0))))}function Zo(e,t){return P(()=>{let r=new w;r.subscribe({next({offset:a}){e.style.setProperty("--md-tooltip-x",`${a.x}px`),e.style.setProperty("--md-tooltip-y",`${a.y}px`)},complete(){e.style.removeProperty("--md-tooltip-x"),e.style.removeProperty("--md-tooltip-y")}});let n=r.pipe(ce(1));cr(e).pipe(Z(n)).subscribe(a=>{e.toggleAttribute("data-md-visible",a)}),r.pipe(Vr(500,Te),m(()=>t.getBoundingClientRect()),m(({x:a})=>a)).subscribe({next(a){a?e.style.setProperty("--md-tooltip-0",`${-a}px`):e.style.removeProperty("--md-tooltip-0")},complete(){e.style.removeProperty("--md-tooltip-0")}});let o=z(":scope > :last-child",e),i=v(o,"mousedown",{once:!0});return r.pipe(S(({active:a})=>a?i:C),x(a=>a.preventDefault())).subscribe(()=>e.blur()),ps(e,t).pipe(x(a=>r.next(a)),L(()=>r.complete()),m(a=>H({ref:e},a)))})}function ls(e){let t=[];for(let r of B(".c, .c1, .cm",e)){let n,o=r.firstChild;if(o instanceof Text)for(;n=/\((\d+)\)/.exec(o.textContent);){let i=o.splitText(n.index);o=i.splitText(n[0].length),t.push(i)}}return t}function ei(e,t){t.append(...Array.from(e.childNodes))}function ti(e,t,{print$:r}){let n=new Map;for(let o of ls(t)){let[,i]=o.textContent.match(/\((\d+)\)/);pe(`li:nth-child(${i})`,e)&&(n.set(+i,Yo(+i)),o.replaceWith(n.get(+i)))}return n.size===0?C:P(()=>{let o=new w;return r.pipe(Z(o.pipe(ce(1)))).subscribe(i=>{e.hidden=!i;for(let[a,s]of n){let c=z(".md-typeset",s),u=z(`li:nth-child(${a})`,e);i?ei(c,u):ei(u,c)}}),R(...[...n].map(([,i])=>Zo(i,t))).pipe(L(()=>o.complete()),oe())})}var ms=0;function oi(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return oi(t)}}function ri(e){return de(e).pipe(m(({width:t})=>({scrollable:mt(e).width>t})),J("scrollable"))}function ii(e,t){let{matches:r}=matchMedia("(hover)"),n=P(()=>{let o=new w;if(o.subscribe(({scrollable:a})=>{a&&r?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")}),ni.default.isSupported()){let a=e.closest("pre");a.id=`__code_${++ms}`,a.insertBefore(Ko(a.id),e)}let i=e.closest(".highlight");if(i instanceof HTMLElement){let a=oi(i);if(typeof a!="undefined"&&(i.classList.contains("annotate")||ee("content.code.annotate"))){let s=ti(a,e,t);return ri(e).pipe(x(c=>o.next(c)),L(()=>o.complete()),m(c=>H({ref:e},c)),et(de(i).pipe(Z(o.pipe(ce(1))),m(({width:c,height:u})=>c&&u),K(),S(c=>c?s:C))))}}return ri(e).pipe(x(a=>o.next(a)),L(()=>o.complete()),m(a=>H({ref:e},a)))});return cr(e).pipe(M(o=>o),se(1),S(()=>n))}var ai=".node circle,.node ellipse,.node path,.node polygon,.node rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}marker{fill:var(--md-mermaid-edge-color)!important}.edgeLabel .label rect{fill:transparent}.label{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.label foreignObject{line-height:normal;overflow:visible}.label div .edgeLabel{color:var(--md-mermaid-label-fg-color)}.edgeLabel,.edgeLabel rect,.label div .edgeLabel{background-color:var(--md-mermaid-label-bg-color)}.edgeLabel,.edgeLabel rect{fill:var(--md-mermaid-label-bg-color);color:var(--md-mermaid-edge-color)}.edgePath .path,.flowchart-link{stroke:var(--md-mermaid-edge-color)}.edgePath .arrowheadPath{fill:var(--md-mermaid-edge-color);stroke:none}.cluster rect{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}.cluster span{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}defs #flowchart-circleEnd,defs #flowchart-circleStart,defs #flowchart-crossEnd,defs #flowchart-crossStart,defs #flowchart-pointEnd,defs #flowchart-pointStart{stroke:none}g.classGroup line,g.classGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.classGroup text{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.classLabel .box{fill:var(--md-mermaid-label-bg-color);background-color:var(--md-mermaid-label-bg-color);opacity:1}.classLabel .label{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node .divider{stroke:var(--md-mermaid-node-fg-color)}.relation{stroke:var(--md-mermaid-edge-color)}.cardinality{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.cardinality text{fill:inherit!important}defs #classDiagram-compositionEnd,defs #classDiagram-compositionStart,defs #classDiagram-dependencyEnd,defs #classDiagram-dependencyStart,defs #classDiagram-extensionEnd,defs #classDiagram-extensionStart{fill:var(--md-mermaid-edge-color)!important;stroke:var(--md-mermaid-edge-color)!important}defs #classDiagram-aggregationEnd,defs #classDiagram-aggregationStart{fill:var(--md-mermaid-label-bg-color)!important;stroke:var(--md-mermaid-edge-color)!important}g.stateGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.stateGroup .state-title{fill:var(--md-mermaid-label-fg-color)!important;font-family:var(--md-mermaid-font-family)}g.stateGroup .composit{fill:var(--md-mermaid-label-bg-color)}.nodeLabel{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node circle.state-end,.node circle.state-start,.start-state{fill:var(--md-mermaid-edge-color);stroke:none}.end-state-inner,.end-state-outer{fill:var(--md-mermaid-edge-color)}.end-state-inner,.node circle.state-end{stroke:var(--md-mermaid-label-bg-color)}.transition{stroke:var(--md-mermaid-edge-color)}[id^=state-fork] rect,[id^=state-join] rect{fill:var(--md-mermaid-edge-color)!important;stroke:none!important}.statediagram-cluster.statediagram-cluster .inner{fill:var(--md-default-bg-color)}.statediagram-cluster rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.statediagram-state rect.divider{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}defs #statediagram-barbEnd{stroke:var(--md-mermaid-edge-color)}.entityBox{fill:var(--md-mermaid-label-bg-color);stroke:var(--md-mermaid-node-fg-color)}.entityLabel{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.relationshipLabelBox{fill:var(--md-mermaid-label-bg-color);fill-opacity:1;background-color:var(--md-mermaid-label-bg-color);opacity:1}.relationshipLabel{fill:var(--md-mermaid-label-fg-color)}.relationshipLine{stroke:var(--md-mermaid-edge-color)}defs #ONE_OR_MORE_END *,defs #ONE_OR_MORE_START *,defs #ONLY_ONE_END *,defs #ONLY_ONE_START *,defs #ZERO_OR_MORE_END *,defs #ZERO_OR_MORE_START *,defs #ZERO_OR_ONE_END *,defs #ZERO_OR_ONE_START *{stroke:var(--md-mermaid-edge-color)!important}.actor,defs #ZERO_OR_MORE_END circle,defs #ZERO_OR_MORE_START circle{fill:var(--md-mermaid-label-bg-color)}.actor{stroke:var(--md-mermaid-node-fg-color)}text.actor>tspan{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}line{stroke:var(--md-default-fg-color--lighter)}.messageLine0,.messageLine1{stroke:var(--md-mermaid-edge-color)}.loopText>tspan,.messageText{font-family:var(--md-mermaid-font-family)!important}#arrowhead path,.loopText>tspan,.messageText{fill:var(--md-mermaid-edge-color);stroke:none}.loopLine{stroke:var(--md-mermaid-node-fg-color)}.labelBox,.loopLine{fill:var(--md-mermaid-node-bg-color)}.labelBox{stroke:none}.labelText,.labelText>span{fill:var(--md-mermaid-node-fg-color);font-family:var(--md-mermaid-font-family)}";var Jr,hs=0;function bs(){return typeof mermaid=="undefined"||mermaid instanceof Element?Fo("https://unpkg.com/mermaid@9.0.1/dist/mermaid.min.js"):$(void 0)}function si(e){return e.classList.remove("mermaid"),Jr||(Jr=bs().pipe(x(()=>mermaid.initialize({startOnLoad:!1,themeCSS:ai})),m(()=>{}),X(1))),Jr.subscribe(()=>{e.classList.add("mermaid");let t=`__mermaid_${hs++}`,r=A("div",{class:"mermaid"});mermaid.mermaidAPI.render(t,e.textContent,n=>{let o=r.attachShadow({mode:"closed"});o.innerHTML=n,e.replaceWith(r)})}),Jr.pipe(m(()=>({ref:e})))}function vs(e,{target$:t,print$:r}){let n=!0;return R(t.pipe(m(o=>o.closest("details:not([open])")),M(o=>e===o),m(()=>({action:"open",reveal:!0}))),r.pipe(M(o=>o||!n),x(()=>n=e.open),m(o=>({action:o?"open":"close"}))))}function ci(e,t){return P(()=>{let r=new w;return r.subscribe(({action:n,reveal:o})=>{n==="open"?e.setAttribute("open",""):e.removeAttribute("open"),o&&e.scrollIntoView()}),vs(e,t).pipe(x(n=>r.next(n)),L(()=>r.complete()),m(n=>H({ref:e},n)))})}var ui=A("table");function fi(e){return e.replaceWith(ui),ui.replaceWith(Jo(e)),$({ref:e})}function gs(e){let t=B(":scope > input",e),r=t.find(n=>n.checked)||t[0];return R(...t.map(n=>v(n,"change").pipe(m(()=>z(`label[for="${n.id}"]`))))).pipe(q(z(`label[for="${r.id}"]`)),m(n=>({active:n})))}function pi(e){let t=Gr("prev");e.append(t);let r=Gr("next");e.append(r);let n=z(".tabbed-labels",e);return P(()=>{let o=new w,i=o.pipe(ce(1));return Y([o,de(e)]).pipe($e(1,Te),Z(i)).subscribe({next([{active:a},s]){let c=ze(a),{width:u}=Ae(a);e.style.setProperty("--md-indicator-x",`${c.x}px`),e.style.setProperty("--md-indicator-width",`${u}px`);let f=or(n);(c.xf.x+s.width)&&n.scrollTo({left:Math.max(0,c.x-16),behavior:"smooth"})},complete(){e.style.removeProperty("--md-indicator-x"),e.style.removeProperty("--md-indicator-width")}}),Y([pt(n),de(n)]).pipe(Z(i)).subscribe(([a,s])=>{let c=mt(n);t.hidden=a.x<16,r.hidden=a.x>c.width-s.width-16}),R(v(t,"click").pipe(m(()=>-1)),v(r,"click").pipe(m(()=>1))).pipe(Z(i)).subscribe(a=>{let{width:s}=Ae(n);n.scrollBy({left:s*a,behavior:"smooth"})}),ee("content.tabs.link")&&o.pipe(Le(1)).subscribe(({active:a})=>{let s=a.innerText.trim();for(let u of B("[data-tabs]"))for(let f of B(":scope > input",u))if(z(`label[for="${f.id}"]`).innerText.trim()===s){f.click();break}let c=__md_get("__tabs")||[];__md_set("__tabs",[...new Set([s,...c])])}),gs(e).pipe(x(a=>o.next(a)),L(()=>o.complete()),m(a=>H({ref:e},a)))}).pipe(Ge(ue))}function li(e,{target$:t,print$:r}){return R(...B("pre:not(.mermaid) > code",e).map(n=>ii(n,{print$:r})),...B("pre.mermaid",e).map(n=>si(n)),...B("table:not([class])",e).map(n=>fi(n)),...B("details",e).map(n=>ci(n,{target$:t,print$:r})),...B("[data-tabs]",e).map(n=>pi(n)))}function ys(e,{alert$:t}){return t.pipe(S(r=>R($(!0),$(!1).pipe(Fe(2e3))).pipe(m(n=>({message:r,active:n})))))}function mi(e,t){let r=z(".md-typeset",e);return P(()=>{let n=new w;return n.subscribe(({message:o,active:i})=>{e.classList.toggle("md-dialog--active",i),r.textContent=o}),ys(e,t).pipe(x(o=>n.next(o)),L(()=>n.complete()),m(o=>H({ref:e},o)))})}function xs({viewport$:e}){if(!ee("header.autohide"))return $(!1);let t=e.pipe(m(({offset:{y:o}})=>o),Me(2,1),m(([o,i])=>[oMath.abs(i-o.y)>100),m(([,[o]])=>o),K()),n=dt("search");return Y([e,n]).pipe(m(([{offset:o},i])=>o.y>400&&!i),K(),S(o=>o?r:$(!1)),q(!1))}function di(e,t){return P(()=>Y([de(e),xs(t)])).pipe(m(([{height:r},n])=>({height:r,hidden:n})),K((r,n)=>r.height===n.height&&r.hidden===n.hidden),X(1))}function hi(e,{header$:t,main$:r}){return P(()=>{let n=new w,o=n.pipe(ce(1));return n.pipe(J("active"),Xe(t)).subscribe(([{active:i},{hidden:a}])=>{e.classList.toggle("md-header--shadow",i&&!a),e.hidden=a}),r.subscribe(n),t.pipe(Z(o),m(i=>H({ref:e},i)))})}function Ss(e,{viewport$:t,header$:r}){return mr(e,{viewport$:t,header$:r}).pipe(m(({offset:{y:n}})=>{let{height:o}=Ae(e);return{active:n>=o}}),J("active"))}function bi(e,t){return P(()=>{let r=new w;r.subscribe(({active:o})=>{e.classList.toggle("md-header__title--active",o)});let n=pe("article h1");return typeof n=="undefined"?C:Ss(n,t).pipe(x(o=>r.next(o)),L(()=>r.complete()),m(o=>H({ref:e},o)))})}function vi(e,{viewport$:t,header$:r}){let n=r.pipe(m(({height:i})=>i),K()),o=n.pipe(S(()=>de(e).pipe(m(({height:i})=>({top:e.offsetTop,bottom:e.offsetTop+i})),J("bottom"))));return Y([n,o,t]).pipe(m(([i,{top:a,bottom:s},{offset:{y:c},size:{height:u}}])=>(u=Math.max(0,u-Math.max(0,a-c,i)-Math.max(0,u+c-s)),{offset:a-i,height:u,active:a-i<=c})),K((i,a)=>i.offset===a.offset&&i.height===a.height&&i.active===a.active))}function ws(e){let t=__md_get("__palette")||{index:e.findIndex(r=>matchMedia(r.getAttribute("data-md-color-media")).matches)};return $(...e).pipe(ie(r=>v(r,"change").pipe(m(()=>r))),q(e[Math.max(0,t.index)]),m(r=>({index:e.indexOf(r),color:{scheme:r.getAttribute("data-md-color-scheme"),primary:r.getAttribute("data-md-color-primary"),accent:r.getAttribute("data-md-color-accent")}})),X(1))}function gi(e){return P(()=>{let t=new w;t.subscribe(n=>{document.body.setAttribute("data-md-color-switching","");for(let[o,i]of Object.entries(n.color))document.body.setAttribute(`data-md-color-${o}`,i);for(let o=0;o{document.body.removeAttribute("data-md-color-switching")});let r=B("input",e);return ws(r).pipe(x(n=>t.next(n)),L(()=>t.complete()),m(n=>H({ref:e},n)))})}var Xr=Ye(Kr());function Es(e){e.setAttribute("data-md-copying","");let t=e.innerText;return e.removeAttribute("data-md-copying"),t}function yi({alert$:e}){Xr.default.isSupported()&&new F(t=>{new Xr.default("[data-clipboard-target], [data-clipboard-text]",{text:r=>r.getAttribute("data-clipboard-text")||Es(z(r.getAttribute("data-clipboard-target")))}).on("success",r=>t.next(r))}).pipe(x(t=>{t.trigger.focus()}),m(()=>te("clipboard.copied"))).subscribe(e)}function Os(e){if(e.length<2)return[""];let[t,r]=[...e].sort((o,i)=>o.length-i.length).map(o=>o.replace(/[^/]+$/,"")),n=0;if(t===r)n=t.length;else for(;t.charCodeAt(n)===r.charCodeAt(n);)n++;return e.map(o=>o.replace(t.slice(0,n),""))}function dr(e){let t=__md_get("__sitemap",sessionStorage,e);if(t)return $(t);{let r=he();return jo(new URL("sitemap.xml",e||r.base)).pipe(m(n=>Os(B("loc",n).map(o=>o.textContent))),ae(()=>C),je([]),x(n=>__md_set("__sitemap",n,sessionStorage,e)))}}function xi({document$:e,location$:t,viewport$:r}){let n=he();if(location.protocol==="file:")return;"scrollRestoration"in history&&(history.scrollRestoration="manual",v(window,"beforeunload").subscribe(()=>{history.scrollRestoration="auto"}));let o=pe("link[rel=icon]");typeof o!="undefined"&&(o.href=o.href);let i=dr().pipe(m(u=>u.map(f=>`${new URL(f,n.base)}`)),S(u=>v(document.body,"click").pipe(M(f=>!f.metaKey&&!f.ctrlKey),S(f=>{if(f.target instanceof Element){let p=f.target.closest("a");if(p&&!p.target){let l=new URL(p.href);if(l.search="",l.hash="",l.pathname!==location.pathname&&u.includes(l.toString()))return f.preventDefault(),$({url:new URL(p.href)})}}return xe}))),oe()),a=v(window,"popstate").pipe(M(u=>u.state!==null),m(u=>({url:new URL(location.href),offset:u.state})),oe());R(i,a).pipe(K((u,f)=>u.url.href===f.url.href),m(({url:u})=>u)).subscribe(t);let s=t.pipe(J("pathname"),S(u=>lr(u.href).pipe(ae(()=>(fr(u),xe)))),oe());i.pipe(ft(s)).subscribe(({url:u})=>{history.pushState({},"",`${u}`)});let c=new DOMParser;s.pipe(S(u=>u.text()),m(u=>c.parseFromString(u,"text/html"))).subscribe(e),e.pipe(Le(1)).subscribe(u=>{for(let f of["title","link[rel=canonical]","meta[name=author]","meta[name=description]","[data-md-component=announce]","[data-md-component=container]","[data-md-component=header-topic]","[data-md-component=outdated]","[data-md-component=logo]","[data-md-component=skip]",...ee("navigation.tabs.sticky")?["[data-md-component=tabs]"]:[]]){let p=pe(f),l=pe(f,u);typeof p!="undefined"&&typeof l!="undefined"&&p.replaceWith(l)}}),e.pipe(Le(1),m(()=>we("container")),S(u=>B("script",u)),Ir(u=>{let f=A("script");if(u.src){for(let p of u.getAttributeNames())f.setAttribute(p,u.getAttribute(p));return u.replaceWith(f),new F(p=>{f.onload=()=>p.complete()})}else return f.textContent=u.textContent,u.replaceWith(f),C})).subscribe(),R(i,a).pipe(ft(e)).subscribe(({url:u,offset:f})=>{u.hash&&!f?Po(u.hash):window.scrollTo(0,(f==null?void 0:f.y)||0)}),r.pipe(Mt(i),Ze(250),J("offset")).subscribe(({offset:u})=>{history.replaceState(u,"")}),R(i,a).pipe(Me(2,1),M(([u,f])=>u.url.pathname===f.url.pathname),m(([,u])=>u)).subscribe(({offset:u})=>{window.scrollTo(0,(u==null?void 0:u.y)||0)})}var Ms=Ye(Zr());var wi=Ye(Zr());function en(e,t){let r=new RegExp(e.separator,"img"),n=(o,i,a)=>`${i}${a}`;return o=>{o=o.replace(/[\s*+\-:~^]+/g," ").trim();let i=new RegExp(`(^|${e.separator})(${o.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(r,"|")})`,"img");return a=>(t?(0,wi.default)(a):a).replace(i,n).replace(/<\/mark>(\s+)]*>/img,"$1")}}function Ei(e){return e.split(/"([^"]+)"/g).map((t,r)=>r&1?t.replace(/^\b|^(?![^\x00-\x7F]|$)|\s+/g," +"):t).join("").replace(/"|(?:^|\s+)[*+\-:^~]+(?=\s+|$)/g,"").trim()}function bt(e){return e.type===1}function Oi(e){return e.type===2}function vt(e){return e.type===3}function As({config:e,docs:t}){e.lang.length===1&&e.lang[0]==="en"&&(e.lang=[te("search.config.lang")]),e.separator==="[\\s\\-]+"&&(e.separator=te("search.config.separator"));let n={pipeline:te("search.config.pipeline").split(/\s*,\s*/).filter(Boolean),suggestions:ee("search.suggest")};return{config:e,docs:t,options:n}}function _i(e,t){let r=he(),n=new Worker(e),o=new w,i=zo(n,{tx$:o}).pipe(m(a=>{if(vt(a))for(let s of a.data.items)for(let c of s)c.location=`${new URL(c.location,r.base)}`;return a}),oe());return fe(t).pipe(m(a=>({type:0,data:As(a)}))).subscribe(o.next.bind(o)),{tx$:o,rx$:i}}function Ti({document$:e}){let t=he(),r=ke(new URL("../versions.json",t.base)).pipe(ae(()=>C)),n=r.pipe(m(o=>{let[,i]=t.base.match(/([^/]+)\/?$/);return o.find(({version:a,aliases:s})=>a===i||s.includes(i))||o[0]}));r.pipe(m(o=>new Map(o.map(i=>[`${new URL(`../${i.version}/`,t.base)}`,i]))),S(o=>v(document.body,"click").pipe(M(i=>!i.metaKey&&!i.ctrlKey),ge(n),S(([i,a])=>{if(i.target instanceof Element){let s=i.target.closest("a");if(s&&!s.target&&o.has(s.href)){let c=s.href;return!i.target.closest(".md-version")&&o.get(c)===a?C:(i.preventDefault(),$(c))}}return C}),S(i=>{let{version:a}=o.get(i);return dr(new URL(i)).pipe(m(s=>{let u=Se().href.replace(t.base,"");return s.includes(u)?new URL(`../${a}/${u}`,t.base):new URL(i)}))})))).subscribe(o=>fr(o)),Y([r,n]).subscribe(([o,i])=>{z(".md-header__topic").appendChild(Xo(o,i))}),e.pipe(S(()=>n)).subscribe(o=>{var a;let i=__md_get("__outdated",sessionStorage);if(i===null){let s=((a=t.version)==null?void 0:a.default)||"latest";i=!o.aliases.includes(s),__md_set("__outdated",i,sessionStorage)}if(i)for(let s of ne("outdated"))s.hidden=!1})}function Cs(e,{rx$:t}){let r=(__search==null?void 0:__search.transform)||Ei,{searchParams:n}=Se();n.has("q")&&qe("search",!0);let o=t.pipe(M(bt),se(1),m(()=>n.get("q")||""));dt("search").pipe(M(s=>!s),se(1)).subscribe(()=>{let s=new URL(location.href);s.searchParams.delete("q"),history.replaceState({},"",`${s}`)}),o.subscribe(s=>{s&&(e.value=s,e.focus())});let i=nr(e),a=R(v(e,"keyup"),v(e,"focus").pipe(Fe(1)),o).pipe(m(()=>r(e.value)),q(""),K());return Y([a,i]).pipe(m(([s,c])=>({value:s,focus:c})),X(1))}function Mi(e,{tx$:t,rx$:r}){let n=new w,o=n.pipe(ce(1));return n.pipe(J("value"),m(({value:i})=>({type:2,data:i}))).subscribe(t.next.bind(t)),n.pipe(J("focus")).subscribe(({focus:i})=>{i?(qe("search",i),e.placeholder=""):e.placeholder=te("search.placeholder")}),v(e.form,"reset").pipe(Z(o)).subscribe(()=>e.focus()),Cs(e,{tx$:t,rx$:r}).pipe(x(i=>n.next(i)),L(()=>n.complete()),m(i=>H({ref:e},i)),oe())}function Li(e,{rx$:t},{query$:r}){let n=new w,o=Mo(e.parentElement).pipe(M(Boolean)),i=z(":scope > :first-child",e),a=z(":scope > :last-child",e),s=t.pipe(M(bt),se(1));return n.pipe(ge(r),Mt(s)).subscribe(([{items:u},{value:f}])=>{if(f)switch(u.length){case 0:i.textContent=te("search.result.none");break;case 1:i.textContent=te("search.result.one");break;default:i.textContent=te("search.result.other",pr(u.length))}else i.textContent=te("search.result.placeholder")}),n.pipe(x(()=>a.innerHTML=""),S(({items:u})=>R($(...u.slice(0,10)),$(...u.slice(10)).pipe(Me(4),Nr(o),S(([f])=>f))))).subscribe(u=>a.appendChild(Bo(u))),t.pipe(M(vt),m(({data:u})=>u)).pipe(x(u=>n.next(u)),L(()=>n.complete()),m(u=>H({ref:e},u)))}function Rs(e,{query$:t}){return t.pipe(m(({value:r})=>{let n=Se();return n.hash="",n.searchParams.delete("h"),n.searchParams.set("q",r),{url:n}}))}function Ai(e,t){let r=new w;return r.subscribe(({url:n})=>{e.setAttribute("data-clipboard-text",e.href),e.href=`${n}`}),v(e,"click").subscribe(n=>n.preventDefault()),Rs(e,t).pipe(x(n=>r.next(n)),L(()=>r.complete()),m(n=>H({ref:e},n)))}function Ci(e,{rx$:t},{keyboard$:r}){let n=new w,o=we("search-query"),i=R(v(o,"keydown"),v(o,"focus")).pipe(Ie(ue),m(()=>o.value),K());return n.pipe(Xe(i),m(([{suggestions:s},c])=>{let u=c.split(/([\s-]+)/);if((s==null?void 0:s.length)&&u[u.length-1]){let f=s[s.length-1];f.startsWith(u[u.length-1])&&(u[u.length-1]=f)}else u.length=0;return u})).subscribe(s=>e.innerHTML=s.join("").replace(/\s/g," ")),r.pipe(M(({mode:s})=>s==="search")).subscribe(s=>{switch(s.type){case"ArrowRight":e.innerText.length&&o.selectionStart===o.value.length&&(o.value=e.innerText);break}}),t.pipe(M(vt),m(({data:s})=>s)).pipe(x(s=>n.next(s)),L(()=>n.complete()),m(()=>({ref:e})))}function Ri(e,{index$:t,keyboard$:r}){let n=he();try{let o=(__search==null?void 0:__search.worker)||n.search,i=_i(o,t),a=we("search-query",e),s=we("search-result",e),{tx$:c,rx$:u}=i;c.pipe(M(Oi),ft(u.pipe(M(bt))),se(1)).subscribe(c.next.bind(c)),r.pipe(M(({mode:l})=>l==="search")).subscribe(l=>{let d=Ne();switch(l.type){case"Enter":if(d===a){let h=new Map;for(let b of B(":first-child [href]",s)){let U=b.firstElementChild;h.set(b,parseFloat(U.getAttribute("data-md-score")))}if(h.size){let[[b]]=[...h].sort(([,U],[,G])=>G-U);b.click()}l.claim()}break;case"Escape":case"Tab":qe("search",!1),a.blur();break;case"ArrowUp":case"ArrowDown":if(typeof d=="undefined")a.focus();else{let h=[a,...B(":not(details) > [href], summary, details[open] [href]",s)],b=Math.max(0,(Math.max(0,h.indexOf(d))+h.length+(l.type==="ArrowUp"?-1:1))%h.length);h[b].focus()}l.claim();break;default:a!==Ne()&&a.focus()}}),r.pipe(M(({mode:l})=>l==="global")).subscribe(l=>{switch(l.type){case"f":case"s":case"/":a.focus(),a.select(),l.claim();break}});let f=Mi(a,i),p=Li(s,i,{query$:f});return R(f,p).pipe(et(...ne("search-share",e).map(l=>Ai(l,{query$:f})),...ne("search-suggest",e).map(l=>Ci(l,i,{keyboard$:r}))))}catch(o){return e.hidden=!0,xe}}function ki(e,{index$:t,location$:r}){return Y([t,r.pipe(q(Se()),M(n=>!!n.searchParams.get("h")))]).pipe(m(([n,o])=>en(n.config,!0)(o.searchParams.get("h"))),m(n=>{var a;let o=new Map,i=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(let s=i.nextNode();s;s=i.nextNode())if((a=s.parentElement)!=null&&a.offsetHeight){let c=s.textContent,u=n(c);u.length>c.length&&o.set(s,u)}for(let[s,c]of o){let{childNodes:u}=A("span",null,c);s.replaceWith(...Array.from(u))}return{ref:e,nodes:o}}))}function ks(e,{viewport$:t,main$:r}){let n=e.parentElement,o=n.offsetTop-n.parentElement.offsetTop;return Y([r,t]).pipe(m(([{offset:i,height:a},{offset:{y:s}}])=>(a=a+Math.min(o,Math.max(0,s-i))-o,{height:a,locked:s>=i+o})),K((i,a)=>i.height===a.height&&i.locked===a.locked))}function tn(e,n){var o=n,{header$:t}=o,r=cn(o,["header$"]);let i=z(".md-sidebar__scrollwrap",e),{y:a}=ze(i);return P(()=>{let s=new w;return s.pipe($e(0,Te),ge(t)).subscribe({next([{height:c},{height:u}]){i.style.height=`${c-2*a}px`,e.style.top=`${u}px`},complete(){i.style.height="",e.style.top=""}}),ks(e,r).pipe(x(c=>s.next(c)),L(()=>s.complete()),m(c=>H({ref:e},c)))})}function Hi(e,t){if(typeof t!="undefined"){let r=`https://api.github.com/repos/${e}/${t}`;return _t(ke(`${r}/releases/latest`).pipe(ae(()=>C),m(n=>({version:n.tag_name})),je({})),ke(r).pipe(ae(()=>C),m(n=>({stars:n.stargazers_count,forks:n.forks_count})),je({}))).pipe(m(([n,o])=>H(H({},n),o)))}else{let r=`https://api.github.com/users/${e}`;return ke(r).pipe(m(n=>({repositories:n.public_repos})),je({}))}}function Pi(e,t){let r=`https://${e}/api/v4/projects/${encodeURIComponent(t)}`;return ke(r).pipe(ae(()=>C),m(({star_count:n,forks_count:o})=>({stars:n,forks:o})),je({}))}function Ii(e){let[t]=e.match(/(git(?:hub|lab))/i)||[];switch(t.toLowerCase()){case"github":let[,r,n]=e.match(/^.+github\.com\/([^/]+)\/?([^/]+)?/i);return Hi(r,n);case"gitlab":let[,o,i]=e.match(/^.+?([^/]*gitlab[^/]+)\/(.+?)\/?$/i);return Pi(o,i);default:return C}}var Hs;function Ps(e){return Hs||(Hs=P(()=>{let t=__md_get("__source",sessionStorage);return t?$(t):Ii(e.href).pipe(x(r=>__md_set("__source",r,sessionStorage)))}).pipe(ae(()=>C),M(t=>Object.keys(t).length>0),m(t=>({facts:t})),X(1)))}function $i(e){let t=z(":scope > :last-child",e);return P(()=>{let r=new w;return r.subscribe(({facts:n})=>{t.appendChild(Go(n)),t.classList.add("md-source__repository--active")}),Ps(e).pipe(x(n=>r.next(n)),L(()=>r.complete()),m(n=>H({ref:e},n)))})}function Is(e,{viewport$:t,header$:r}){return de(document.body).pipe(S(()=>mr(e,{header$:r,viewport$:t})),m(({offset:{y:n}})=>({hidden:n>=10})),J("hidden"))}function ji(e,t){return P(()=>{let r=new w;return r.subscribe({next({hidden:n}){e.hidden=n},complete(){e.hidden=!1}}),(ee("navigation.tabs.sticky")?$({hidden:!1}):Is(e,t)).pipe(x(n=>r.next(n)),L(()=>r.complete()),m(n=>H({ref:e},n)))})}function $s(e,{viewport$:t,header$:r}){let n=new Map,o=B("[href^=\\#]",e);for(let s of o){let c=decodeURIComponent(s.hash.substring(1)),u=pe(`[id="${c}"]`);typeof u!="undefined"&&n.set(s,u)}let i=r.pipe(J("height"),m(({height:s})=>{let c=we("main"),u=z(":scope > :first-child",c);return s+.8*(u.offsetTop-c.offsetTop)}),oe());return de(document.body).pipe(J("height"),S(s=>P(()=>{let c=[];return $([...n].reduce((u,[f,p])=>{for(;c.length&&n.get(c[c.length-1]).tagName>=p.tagName;)c.pop();let l=p.offsetTop;for(;!l&&p.parentElement;)p=p.parentElement,l=p.offsetTop;return u.set([...c=[...c,f]].reverse(),l)},new Map))}).pipe(m(c=>new Map([...c].sort(([,u],[,f])=>u-f))),Xe(i),S(([c,u])=>t.pipe(Fr(([f,p],{offset:{y:l},size:d})=>{let h=l+d.height>=Math.floor(s.height);for(;p.length;){let[,b]=p[0];if(b-u=l&&!h)p=[f.pop(),...p];else break}return[f,p]},[[],[...c]]),K((f,p)=>f[0]===p[0]&&f[1]===p[1])))))).pipe(m(([s,c])=>({prev:s.map(([u])=>u),next:c.map(([u])=>u)})),q({prev:[],next:[]}),Me(2,1),m(([s,c])=>s.prev.length{let o=new w,i=o.pipe(ce(1));return o.subscribe(({prev:a,next:s})=>{for(let[c]of s)c.classList.remove("md-nav__link--passed"),c.classList.remove("md-nav__link--active");for(let[c,[u]]of a.entries())u.classList.add("md-nav__link--passed"),u.classList.toggle("md-nav__link--active",c===a.length-1)}),ee("navigation.tracking")&&t.pipe(Z(i),J("offset"),Ze(250),Le(1),Z(n.pipe(Le(1))),Tt({delay:250}),ge(o)).subscribe(([,{prev:a}])=>{let s=Se(),c=a[a.length-1];if(c&&c.length){let[u]=c,{hash:f}=new URL(u.href);s.hash!==f&&(s.hash=f,history.replaceState({},"",`${s}`))}else s.hash="",history.replaceState({},"",`${s}`)}),$s(e,{viewport$:t,header$:r}).pipe(x(a=>o.next(a)),L(()=>o.complete()),m(a=>H({ref:e},a)))})}function js(e,{viewport$:t,main$:r,target$:n}){let o=t.pipe(m(({offset:{y:a}})=>a),Me(2,1),m(([a,s])=>a>s&&s>0),K()),i=r.pipe(m(({active:a})=>a));return Y([i,o]).pipe(m(([a,s])=>!(a&&s)),K(),Z(n.pipe(Le(1))),jr(!0),Tt({delay:250}),m(a=>({hidden:a})))}function Ui(e,{viewport$:t,header$:r,main$:n,target$:o}){let i=new w,a=i.pipe(ce(1));return i.subscribe({next({hidden:s}){e.hidden=s,s?(e.setAttribute("tabindex","-1"),e.blur()):e.removeAttribute("tabindex")},complete(){e.style.top="",e.hidden=!0,e.removeAttribute("tabindex")}}),r.pipe(Z(a),J("height")).subscribe(({height:s})=>{e.style.top=`${s+16}px`}),js(e,{viewport$:t,main$:n,target$:o}).pipe(x(s=>i.next(s)),L(()=>i.complete()),m(s=>H({ref:e},s)))}function Di({document$:e,tablet$:t}){e.pipe(S(()=>B(".md-toggle--indeterminate, [data-md-state=indeterminate]")),x(r=>{r.indeterminate=!0,r.checked=!1}),ie(r=>v(r,"change").pipe(Dr(()=>r.classList.contains("md-toggle--indeterminate")),m(()=>r))),ge(t)).subscribe(([r,n])=>{r.classList.remove("md-toggle--indeterminate"),n&&(r.checked=!1)})}function Fs(){return/(iPad|iPhone|iPod)/.test(navigator.userAgent)}function Wi({document$:e}){e.pipe(S(()=>B("[data-md-scrollfix]")),x(t=>t.removeAttribute("data-md-scrollfix")),M(Fs),ie(t=>v(t,"touchstart").pipe(m(()=>t)))).subscribe(t=>{let r=t.scrollTop;r===0?t.scrollTop=1:r+t.offsetHeight===t.scrollHeight&&(t.scrollTop=r-1)})}function Vi({viewport$:e,tablet$:t}){Y([dt("search"),t]).pipe(m(([r,n])=>r&&!n),S(r=>$(r).pipe(Fe(r?400:100))),ge(e)).subscribe(([r,{offset:{y:n}}])=>{if(r)document.body.setAttribute("data-md-scrolllock",""),document.body.style.top=`-${n}px`;else{let o=-1*parseInt(document.body.style.top,10);document.body.removeAttribute("data-md-scrolllock"),document.body.style.top="",o&&window.scrollTo(0,o)}})}Object.entries||(Object.entries=function(e){let t=[];for(let r of Object.keys(e))t.push([r,e[r]]);return t});Object.values||(Object.values=function(e){let t=[];for(let r of Object.keys(e))t.push(e[r]);return t});typeof Element!="undefined"&&(Element.prototype.scrollTo||(Element.prototype.scrollTo=function(e,t){typeof e=="object"?(this.scrollLeft=e.left,this.scrollTop=e.top):(this.scrollLeft=e,this.scrollTop=t)}),Element.prototype.replaceWith||(Element.prototype.replaceWith=function(...e){let t=this.parentNode;if(t){e.length===0&&t.removeChild(this);for(let r=e.length-1;r>=0;r--){let n=e[r];typeof n!="object"?n=document.createTextNode(n):n.parentNode&&n.parentNode.removeChild(n),r?t.insertBefore(this.previousSibling,n):t.replaceChild(n,this)}}}));document.documentElement.classList.remove("no-js");document.documentElement.classList.add("js");var tt=bo(),br=Co(),gt=Io(),rn=Ao(),Ee=No(),vr=qr("(min-width: 960px)"),zi=qr("(min-width: 1220px)"),qi=$o(),Qi=he(),Yi=document.forms.namedItem("search")?(__search==null?void 0:__search.index)||ke(new URL("search/search_index.json",Qi.base)):xe,nn=new w;yi({alert$:nn});ee("navigation.instant")&&xi({document$:tt,location$:br,viewport$:Ee});var Ni;((Ni=Qi.version)==null?void 0:Ni.provider)==="mike"&&Ti({document$:tt});R(br,gt).pipe(Fe(125)).subscribe(()=>{qe("drawer",!1),qe("search",!1)});rn.pipe(M(({mode:e})=>e==="global")).subscribe(e=>{switch(e.type){case"p":case",":let t=pe("[href][rel=prev]");typeof t!="undefined"&&t.click();break;case"n":case".":let r=pe("[href][rel=next]");typeof r!="undefined"&&r.click();break}});Di({document$:tt,tablet$:vr});Wi({document$:tt});Vi({viewport$:Ee,tablet$:vr});var Qe=di(we("header"),{viewport$:Ee}),hr=tt.pipe(m(()=>we("main")),S(e=>vi(e,{viewport$:Ee,header$:Qe})),X(1)),Us=R(...ne("consent").map(e=>Qo(e,{target$:gt})),...ne("dialog").map(e=>mi(e,{alert$:nn})),...ne("header").map(e=>hi(e,{viewport$:Ee,header$:Qe,main$:hr})),...ne("palette").map(e=>gi(e)),...ne("search").map(e=>Ri(e,{index$:Yi,keyboard$:rn})),...ne("source").map(e=>$i(e))),Ds=P(()=>R(...ne("announce").map(e=>qo(e)),...ne("content").map(e=>li(e,{target$:gt,print$:qi})),...ne("content").map(e=>ee("search.highlight")?ki(e,{index$:Yi,location$:br}):C),...ne("header-title").map(e=>bi(e,{viewport$:Ee,header$:Qe})),...ne("sidebar").map(e=>e.getAttribute("data-md-type")==="navigation"?Qr(zi,()=>tn(e,{viewport$:Ee,header$:Qe,main$:hr})):Qr(vr,()=>tn(e,{viewport$:Ee,header$:Qe,main$:hr}))),...ne("tabs").map(e=>ji(e,{viewport$:Ee,header$:Qe})),...ne("toc").map(e=>Fi(e,{viewport$:Ee,header$:Qe,target$:gt})),...ne("top").map(e=>Ui(e,{viewport$:Ee,header$:Qe,main$:hr,target$:gt})))),Ki=tt.pipe(S(()=>Ds),et(Us),X(1));Ki.subscribe();window.document$=tt;window.location$=br;window.target$=gt;window.keyboard$=rn;window.viewport$=Ee;window.tablet$=vr;window.screen$=zi;window.print$=qi;window.alert$=nn;window.component$=Ki;})(); -//# sourceMappingURL=bundle.9c69f0bc.min.js.map - diff --git a/5.x/assets/javascripts/bundle.9c69f0bc.min.js.map b/5.x/assets/javascripts/bundle.9c69f0bc.min.js.map deleted file mode 100644 index 27a084260..000000000 --- a/5.x/assets/javascripts/bundle.9c69f0bc.min.js.map +++ /dev/null @@ -1,8 +0,0 @@ -{ - "version": 3, - "sources": ["node_modules/focus-visible/dist/focus-visible.js", "node_modules/url-polyfill/url-polyfill.js", "node_modules/rxjs/node_modules/tslib/tslib.js", "node_modules/clipboard/dist/clipboard.js", "node_modules/escape-html/index.js", "node_modules/array-flat-polyfill/index.mjs", "src/assets/javascripts/bundle.ts", "node_modules/unfetch/polyfill/index.js", "node_modules/rxjs/node_modules/tslib/modules/index.js", "node_modules/rxjs/src/internal/util/isFunction.ts", "node_modules/rxjs/src/internal/util/createErrorClass.ts", "node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "node_modules/rxjs/src/internal/util/arrRemove.ts", "node_modules/rxjs/src/internal/Subscription.ts", "node_modules/rxjs/src/internal/config.ts", "node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts", "node_modules/rxjs/src/internal/util/reportUnhandledError.ts", "node_modules/rxjs/src/internal/util/noop.ts", "node_modules/rxjs/src/internal/NotificationFactories.ts", "node_modules/rxjs/src/internal/util/errorContext.ts", "node_modules/rxjs/src/internal/Subscriber.ts", "node_modules/rxjs/src/internal/symbol/observable.ts", "node_modules/rxjs/src/internal/util/identity.ts", "node_modules/rxjs/src/internal/util/pipe.ts", "node_modules/rxjs/src/internal/Observable.ts", "node_modules/rxjs/src/internal/util/lift.ts", "node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts", "node_modules/rxjs/src/internal/scheduler/animationFrameProvider.ts", "node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts", "node_modules/rxjs/src/internal/Subject.ts", "node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts", "node_modules/rxjs/src/internal/ReplaySubject.ts", "node_modules/rxjs/src/internal/scheduler/Action.ts", "node_modules/rxjs/src/internal/scheduler/intervalProvider.ts", "node_modules/rxjs/src/internal/scheduler/AsyncAction.ts", "node_modules/rxjs/src/internal/Scheduler.ts", "node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts", "node_modules/rxjs/src/internal/scheduler/async.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts", "node_modules/rxjs/src/internal/scheduler/animationFrame.ts", "node_modules/rxjs/src/internal/observable/empty.ts", "node_modules/rxjs/src/internal/util/isScheduler.ts", "node_modules/rxjs/src/internal/util/args.ts", "node_modules/rxjs/src/internal/util/isArrayLike.ts", "node_modules/rxjs/src/internal/util/isPromise.ts", "node_modules/rxjs/src/internal/util/isInteropObservable.ts", "node_modules/rxjs/src/internal/util/isAsyncIterable.ts", "node_modules/rxjs/src/internal/util/throwUnobservableError.ts", "node_modules/rxjs/src/internal/symbol/iterator.ts", "node_modules/rxjs/src/internal/util/isIterable.ts", "node_modules/rxjs/src/internal/util/isReadableStreamLike.ts", "node_modules/rxjs/src/internal/observable/innerFrom.ts", "node_modules/rxjs/src/internal/util/executeSchedule.ts", "node_modules/rxjs/src/internal/operators/observeOn.ts", "node_modules/rxjs/src/internal/operators/subscribeOn.ts", "node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts", "node_modules/rxjs/src/internal/scheduled/schedulePromise.ts", "node_modules/rxjs/src/internal/scheduled/scheduleArray.ts", "node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts", "node_modules/rxjs/src/internal/scheduled/scheduled.ts", "node_modules/rxjs/src/internal/observable/from.ts", "node_modules/rxjs/src/internal/observable/of.ts", "node_modules/rxjs/src/internal/observable/throwError.ts", "node_modules/rxjs/src/internal/util/isDate.ts", "node_modules/rxjs/src/internal/operators/map.ts", "node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts", "node_modules/rxjs/src/internal/util/argsArgArrayOrObject.ts", "node_modules/rxjs/src/internal/util/createObject.ts", "node_modules/rxjs/src/internal/observable/combineLatest.ts", "node_modules/rxjs/src/internal/operators/mergeInternals.ts", "node_modules/rxjs/src/internal/operators/mergeMap.ts", "node_modules/rxjs/src/internal/operators/mergeAll.ts", "node_modules/rxjs/src/internal/operators/concatAll.ts", "node_modules/rxjs/src/internal/observable/concat.ts", "node_modules/rxjs/src/internal/observable/defer.ts", "node_modules/rxjs/src/internal/observable/fromEvent.ts", "node_modules/rxjs/src/internal/observable/fromEventPattern.ts", "node_modules/rxjs/src/internal/observable/timer.ts", "node_modules/rxjs/src/internal/observable/merge.ts", "node_modules/rxjs/src/internal/observable/never.ts", "node_modules/rxjs/src/internal/util/argsOrArgArray.ts", "node_modules/rxjs/src/internal/operators/filter.ts", "node_modules/rxjs/src/internal/observable/zip.ts", "node_modules/rxjs/src/internal/operators/audit.ts", "node_modules/rxjs/src/internal/operators/auditTime.ts", "node_modules/rxjs/src/internal/operators/bufferCount.ts", "node_modules/rxjs/src/internal/operators/catchError.ts", "node_modules/rxjs/src/internal/operators/scanInternals.ts", "node_modules/rxjs/src/internal/operators/combineLatest.ts", "node_modules/rxjs/src/internal/operators/combineLatestWith.ts", "node_modules/rxjs/src/internal/operators/concatMap.ts", "node_modules/rxjs/src/internal/operators/debounceTime.ts", "node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts", "node_modules/rxjs/src/internal/operators/take.ts", "node_modules/rxjs/src/internal/operators/ignoreElements.ts", "node_modules/rxjs/src/internal/operators/mapTo.ts", "node_modules/rxjs/src/internal/operators/delayWhen.ts", "node_modules/rxjs/src/internal/operators/delay.ts", "node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts", "node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts", "node_modules/rxjs/src/internal/operators/endWith.ts", "node_modules/rxjs/src/internal/operators/finalize.ts", "node_modules/rxjs/src/internal/operators/takeLast.ts", "node_modules/rxjs/src/internal/operators/merge.ts", "node_modules/rxjs/src/internal/operators/mergeWith.ts", "node_modules/rxjs/src/internal/operators/repeat.ts", "node_modules/rxjs/src/internal/operators/sample.ts", "node_modules/rxjs/src/internal/operators/scan.ts", "node_modules/rxjs/src/internal/operators/share.ts", "node_modules/rxjs/src/internal/operators/shareReplay.ts", "node_modules/rxjs/src/internal/operators/skip.ts", "node_modules/rxjs/src/internal/operators/skipUntil.ts", "node_modules/rxjs/src/internal/operators/startWith.ts", "node_modules/rxjs/src/internal/operators/switchMap.ts", "node_modules/rxjs/src/internal/operators/takeUntil.ts", "node_modules/rxjs/src/internal/operators/takeWhile.ts", "node_modules/rxjs/src/internal/operators/tap.ts", "node_modules/rxjs/src/internal/operators/throttle.ts", "node_modules/rxjs/src/internal/operators/throttleTime.ts", "node_modules/rxjs/src/internal/operators/withLatestFrom.ts", "node_modules/rxjs/src/internal/operators/zip.ts", "node_modules/rxjs/src/internal/operators/zipWith.ts", "src/assets/javascripts/browser/document/index.ts", "src/assets/javascripts/browser/element/_/index.ts", "src/assets/javascripts/browser/element/focus/index.ts", "src/assets/javascripts/browser/element/offset/_/index.ts", "src/assets/javascripts/browser/element/offset/content/index.ts", "node_modules/resize-observer-polyfill/dist/ResizeObserver.es.js", "src/assets/javascripts/browser/element/size/_/index.ts", "src/assets/javascripts/browser/element/size/content/index.ts", "src/assets/javascripts/browser/element/visibility/index.ts", "src/assets/javascripts/browser/toggle/index.ts", "src/assets/javascripts/browser/keyboard/index.ts", "src/assets/javascripts/browser/location/_/index.ts", "src/assets/javascripts/utilities/h/index.ts", "src/assets/javascripts/utilities/string/index.ts", "src/assets/javascripts/browser/location/hash/index.ts", "src/assets/javascripts/browser/media/index.ts", "src/assets/javascripts/browser/request/index.ts", "src/assets/javascripts/browser/script/index.ts", "src/assets/javascripts/browser/viewport/offset/index.ts", "src/assets/javascripts/browser/viewport/size/index.ts", "src/assets/javascripts/browser/viewport/_/index.ts", "src/assets/javascripts/browser/viewport/at/index.ts", "src/assets/javascripts/browser/worker/index.ts", "src/assets/javascripts/_/index.ts", "src/assets/javascripts/components/_/index.ts", "src/assets/javascripts/components/announce/index.ts", "src/assets/javascripts/components/consent/index.ts", "src/assets/javascripts/components/content/code/_/index.ts", "src/assets/javascripts/templates/annotation/index.tsx", "src/assets/javascripts/templates/clipboard/index.tsx", "src/assets/javascripts/templates/search/index.tsx", "src/assets/javascripts/templates/source/index.tsx", "src/assets/javascripts/templates/tabbed/index.tsx", "src/assets/javascripts/templates/table/index.tsx", "src/assets/javascripts/templates/version/index.tsx", "src/assets/javascripts/components/content/annotation/_/index.ts", "src/assets/javascripts/components/content/annotation/list/index.ts", "src/assets/javascripts/components/content/code/mermaid/index.ts", "src/assets/javascripts/components/content/details/index.ts", "src/assets/javascripts/components/content/table/index.ts", "src/assets/javascripts/components/content/tabs/index.ts", "src/assets/javascripts/components/content/_/index.ts", "src/assets/javascripts/components/dialog/index.ts", "src/assets/javascripts/components/header/_/index.ts", "src/assets/javascripts/components/header/title/index.ts", "src/assets/javascripts/components/main/index.ts", "src/assets/javascripts/components/palette/index.ts", "src/assets/javascripts/integrations/clipboard/index.ts", "src/assets/javascripts/integrations/sitemap/index.ts", "src/assets/javascripts/integrations/instant/index.ts", "src/assets/javascripts/integrations/search/document/index.ts", "src/assets/javascripts/integrations/search/highlighter/index.ts", "src/assets/javascripts/integrations/search/query/transform/index.ts", "src/assets/javascripts/integrations/search/worker/message/index.ts", "src/assets/javascripts/integrations/search/worker/_/index.ts", "src/assets/javascripts/integrations/version/index.ts", "src/assets/javascripts/components/search/query/index.ts", "src/assets/javascripts/components/search/result/index.ts", "src/assets/javascripts/components/search/share/index.ts", "src/assets/javascripts/components/search/suggest/index.ts", "src/assets/javascripts/components/search/_/index.ts", "src/assets/javascripts/components/search/highlight/index.ts", "src/assets/javascripts/components/sidebar/index.ts", "src/assets/javascripts/components/source/facts/github/index.ts", "src/assets/javascripts/components/source/facts/gitlab/index.ts", "src/assets/javascripts/components/source/facts/_/index.ts", "src/assets/javascripts/components/source/_/index.ts", "src/assets/javascripts/components/tabs/index.ts", "src/assets/javascripts/components/toc/index.ts", "src/assets/javascripts/components/top/index.ts", "src/assets/javascripts/patches/indeterminate/index.ts", "src/assets/javascripts/patches/scrollfix/index.ts", "src/assets/javascripts/patches/scrolllock/index.ts", "src/assets/javascripts/polyfills/index.ts"], - "sourceRoot": "../../../..", - "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n /**\n * Applies the :focus-visible polyfill at the given scope.\n * A scope in this case is either the top-level Document or a Shadow Root.\n *\n * @param {(Document|ShadowRoot)} scope\n * @see https://github.com/WICG/focus-visible\n */\n function applyFocusVisiblePolyfill(scope) {\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n\n var inputTypesAllowlist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n * @param {Element} el\n */\n function isValidFocusTarget(el) {\n if (\n el &&\n el !== document &&\n el.nodeName !== 'HTML' &&\n el.nodeName !== 'BODY' &&\n 'classList' in el &&\n 'contains' in el.classList\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} el\n * @return {boolean}\n */\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n\n if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !el.readOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Add the `focus-visible` class to the given element if it was not added by\n * the author.\n * @param {Element} el\n */\n function addFocusVisibleClass(el) {\n if (el.classList.contains('focus-visible')) {\n return;\n }\n el.classList.add('focus-visible');\n el.setAttribute('data-focus-visible-added', '');\n }\n\n /**\n * Remove the `focus-visible` class from the given element if it was not\n * originally added by the author.\n * @param {Element} el\n */\n function removeFocusVisibleClass(el) {\n if (!el.hasAttribute('data-focus-visible-added')) {\n return;\n }\n el.classList.remove('focus-visible');\n el.removeAttribute('data-focus-visible-added');\n }\n\n /**\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n * @param {KeyboardEvent} e\n */\n function onKeyDown(e) {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n\n if (isValidFocusTarget(scope.activeElement)) {\n addFocusVisibleClass(scope.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * @param {Event} e\n */\n function onPointerDown(e) {\n hadKeyboardEvent = false;\n }\n\n /**\n * On `focus`, add the `focus-visible` class to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n * @param {Event} e\n */\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleClass(e.target);\n }\n }\n\n /**\n * On `blur`, remove the `focus-visible` class from the target.\n * @param {Event} e\n */\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (\n e.target.classList.contains('focus-visible') ||\n e.target.hasAttribute('data-focus-visible-added')\n ) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function() {\n hadFocusVisibleRecently = false;\n }, 100);\n removeFocusVisibleClass(e.target);\n }\n }\n\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had .focus-visible.\n * @param {Event} e\n */\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n addInitialPointerMoveListeners();\n }\n }\n\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n * @param {Event} e\n */\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. \u00AF\\_(\u30C4)_/\u00AF\n if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n // For some kinds of state, we are interested in changes at the global scope\n // only. For example, global pointer input, global key presses and global\n // visibility change should affect the state at every scope:\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n\n addInitialPointerMoveListeners();\n\n // For focus and blur, we specifically care about state changes in the local\n // scope. This is because focus / blur events that originate from within a\n // shadow root are not re-dispatched from the host element if it was already\n // the active element in its own scope:\n scope.addEventListener('focus', onFocus, true);\n scope.addEventListener('blur', onBlur, true);\n\n // We detect that a node is a ShadowRoot by ensuring that it is a\n // DocumentFragment and also has a host property. This check covers native\n // implementation and polyfill implementation transparently. If we only cared\n // about the native implementation, we could just check if the scope was\n // an instance of a ShadowRoot.\n if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) {\n // Since a ShadowRoot is a special kind of DocumentFragment, it does not\n // have a root element to add a class to. So, we add this attribute to the\n // host element instead:\n scope.host.setAttribute('data-js-focus-visible', '');\n } else if (scope.nodeType === Node.DOCUMENT_NODE) {\n document.documentElement.classList.add('js-focus-visible');\n document.documentElement.setAttribute('data-js-focus-visible', '');\n }\n }\n\n // It is important to wrap all references to global window and document in\n // these checks to support server-side rendering use cases\n // @see https://github.com/WICG/focus-visible/issues/199\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n // Make the polyfill helper globally available. This can be used as a signal\n // to interested libraries that wish to coordinate with the polyfill for e.g.,\n // applying the polyfill to a shadow root:\n window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill;\n\n // Notify interested libraries of the polyfill's presence, in case the\n // polyfill was loaded lazily:\n var event;\n\n try {\n event = new CustomEvent('focus-visible-polyfill-ready');\n } catch (error) {\n // IE11 does not support using CustomEvent as a constructor directly:\n event = document.createEvent('CustomEvent');\n event.initCustomEvent('focus-visible-polyfill-ready', false, false, {});\n }\n\n window.dispatchEvent(event);\n }\n\n if (typeof document !== 'undefined') {\n // Apply the polyfill to the global document, so that no JavaScript\n // coordination is required to use the polyfill in the top-level document:\n applyFocusVisiblePolyfill(document);\n }\n\n})));\n", "(function(global) {\r\n /**\r\n * Polyfill URLSearchParams\r\n *\r\n * Inspired from : https://github.com/WebReflection/url-search-params/blob/master/src/url-search-params.js\r\n */\r\n\r\n var checkIfIteratorIsSupported = function() {\r\n try {\r\n return !!Symbol.iterator;\r\n } catch (error) {\r\n return false;\r\n }\r\n };\r\n\r\n\r\n var iteratorSupported = checkIfIteratorIsSupported();\r\n\r\n var createIterator = function(items) {\r\n var iterator = {\r\n next: function() {\r\n var value = items.shift();\r\n return { done: value === void 0, value: value };\r\n }\r\n };\r\n\r\n if (iteratorSupported) {\r\n iterator[Symbol.iterator] = function() {\r\n return iterator;\r\n };\r\n }\r\n\r\n return iterator;\r\n };\r\n\r\n /**\r\n * Search param name and values should be encoded according to https://url.spec.whatwg.org/#urlencoded-serializing\r\n * encodeURIComponent() produces the same result except encoding spaces as `%20` instead of `+`.\r\n */\r\n var serializeParam = function(value) {\r\n return encodeURIComponent(value).replace(/%20/g, '+');\r\n };\r\n\r\n var deserializeParam = function(value) {\r\n return decodeURIComponent(String(value).replace(/\\+/g, ' '));\r\n };\r\n\r\n var polyfillURLSearchParams = function() {\r\n\r\n var URLSearchParams = function(searchString) {\r\n Object.defineProperty(this, '_entries', { writable: true, value: {} });\r\n var typeofSearchString = typeof searchString;\r\n\r\n if (typeofSearchString === 'undefined') {\r\n // do nothing\r\n } else if (typeofSearchString === 'string') {\r\n if (searchString !== '') {\r\n this._fromString(searchString);\r\n }\r\n } else if (searchString instanceof URLSearchParams) {\r\n var _this = this;\r\n searchString.forEach(function(value, name) {\r\n _this.append(name, value);\r\n });\r\n } else if ((searchString !== null) && (typeofSearchString === 'object')) {\r\n if (Object.prototype.toString.call(searchString) === '[object Array]') {\r\n for (var i = 0; i < searchString.length; i++) {\r\n var entry = searchString[i];\r\n if ((Object.prototype.toString.call(entry) === '[object Array]') || (entry.length !== 2)) {\r\n this.append(entry[0], entry[1]);\r\n } else {\r\n throw new TypeError('Expected [string, any] as entry at index ' + i + ' of URLSearchParams\\'s input');\r\n }\r\n }\r\n } else {\r\n for (var key in searchString) {\r\n if (searchString.hasOwnProperty(key)) {\r\n this.append(key, searchString[key]);\r\n }\r\n }\r\n }\r\n } else {\r\n throw new TypeError('Unsupported input\\'s type for URLSearchParams');\r\n }\r\n };\r\n\r\n var proto = URLSearchParams.prototype;\r\n\r\n proto.append = function(name, value) {\r\n if (name in this._entries) {\r\n this._entries[name].push(String(value));\r\n } else {\r\n this._entries[name] = [String(value)];\r\n }\r\n };\r\n\r\n proto.delete = function(name) {\r\n delete this._entries[name];\r\n };\r\n\r\n proto.get = function(name) {\r\n return (name in this._entries) ? this._entries[name][0] : null;\r\n };\r\n\r\n proto.getAll = function(name) {\r\n return (name in this._entries) ? this._entries[name].slice(0) : [];\r\n };\r\n\r\n proto.has = function(name) {\r\n return (name in this._entries);\r\n };\r\n\r\n proto.set = function(name, value) {\r\n this._entries[name] = [String(value)];\r\n };\r\n\r\n proto.forEach = function(callback, thisArg) {\r\n var entries;\r\n for (var name in this._entries) {\r\n if (this._entries.hasOwnProperty(name)) {\r\n entries = this._entries[name];\r\n for (var i = 0; i < entries.length; i++) {\r\n callback.call(thisArg, entries[i], name, this);\r\n }\r\n }\r\n }\r\n };\r\n\r\n proto.keys = function() {\r\n var items = [];\r\n this.forEach(function(value, name) {\r\n items.push(name);\r\n });\r\n return createIterator(items);\r\n };\r\n\r\n proto.values = function() {\r\n var items = [];\r\n this.forEach(function(value) {\r\n items.push(value);\r\n });\r\n return createIterator(items);\r\n };\r\n\r\n proto.entries = function() {\r\n var items = [];\r\n this.forEach(function(value, name) {\r\n items.push([name, value]);\r\n });\r\n return createIterator(items);\r\n };\r\n\r\n if (iteratorSupported) {\r\n proto[Symbol.iterator] = proto.entries;\r\n }\r\n\r\n proto.toString = function() {\r\n var searchArray = [];\r\n this.forEach(function(value, name) {\r\n searchArray.push(serializeParam(name) + '=' + serializeParam(value));\r\n });\r\n return searchArray.join('&');\r\n };\r\n\r\n\r\n global.URLSearchParams = URLSearchParams;\r\n };\r\n\r\n var checkIfURLSearchParamsSupported = function() {\r\n try {\r\n var URLSearchParams = global.URLSearchParams;\r\n\r\n return (\r\n (new URLSearchParams('?a=1').toString() === 'a=1') &&\r\n (typeof URLSearchParams.prototype.set === 'function') &&\r\n (typeof URLSearchParams.prototype.entries === 'function')\r\n );\r\n } catch (e) {\r\n return false;\r\n }\r\n };\r\n\r\n if (!checkIfURLSearchParamsSupported()) {\r\n polyfillURLSearchParams();\r\n }\r\n\r\n var proto = global.URLSearchParams.prototype;\r\n\r\n if (typeof proto.sort !== 'function') {\r\n proto.sort = function() {\r\n var _this = this;\r\n var items = [];\r\n this.forEach(function(value, name) {\r\n items.push([name, value]);\r\n if (!_this._entries) {\r\n _this.delete(name);\r\n }\r\n });\r\n items.sort(function(a, b) {\r\n if (a[0] < b[0]) {\r\n return -1;\r\n } else if (a[0] > b[0]) {\r\n return +1;\r\n } else {\r\n return 0;\r\n }\r\n });\r\n if (_this._entries) { // force reset because IE keeps keys index\r\n _this._entries = {};\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n this.append(items[i][0], items[i][1]);\r\n }\r\n };\r\n }\r\n\r\n if (typeof proto._fromString !== 'function') {\r\n Object.defineProperty(proto, '_fromString', {\r\n enumerable: false,\r\n configurable: false,\r\n writable: false,\r\n value: function(searchString) {\r\n if (this._entries) {\r\n this._entries = {};\r\n } else {\r\n var keys = [];\r\n this.forEach(function(value, name) {\r\n keys.push(name);\r\n });\r\n for (var i = 0; i < keys.length; i++) {\r\n this.delete(keys[i]);\r\n }\r\n }\r\n\r\n searchString = searchString.replace(/^\\?/, '');\r\n var attributes = searchString.split('&');\r\n var attribute;\r\n for (var i = 0; i < attributes.length; i++) {\r\n attribute = attributes[i].split('=');\r\n this.append(\r\n deserializeParam(attribute[0]),\r\n (attribute.length > 1) ? deserializeParam(attribute[1]) : ''\r\n );\r\n }\r\n }\r\n });\r\n }\r\n\r\n // HTMLAnchorElement\r\n\r\n})(\r\n (typeof global !== 'undefined') ? global\r\n : ((typeof window !== 'undefined') ? window\r\n : ((typeof self !== 'undefined') ? self : this))\r\n);\r\n\r\n(function(global) {\r\n /**\r\n * Polyfill URL\r\n *\r\n * Inspired from : https://github.com/arv/DOM-URL-Polyfill/blob/master/src/url.js\r\n */\r\n\r\n var checkIfURLIsSupported = function() {\r\n try {\r\n var u = new global.URL('b', 'http://a');\r\n u.pathname = 'c d';\r\n return (u.href === 'http://a/c%20d') && u.searchParams;\r\n } catch (e) {\r\n return false;\r\n }\r\n };\r\n\r\n\r\n var polyfillURL = function() {\r\n var _URL = global.URL;\r\n\r\n var URL = function(url, base) {\r\n if (typeof url !== 'string') url = String(url);\r\n if (base && typeof base !== 'string') base = String(base);\r\n\r\n // Only create another document if the base is different from current location.\r\n var doc = document, baseElement;\r\n if (base && (global.location === void 0 || base !== global.location.href)) {\r\n base = base.toLowerCase();\r\n doc = document.implementation.createHTMLDocument('');\r\n baseElement = doc.createElement('base');\r\n baseElement.href = base;\r\n doc.head.appendChild(baseElement);\r\n try {\r\n if (baseElement.href.indexOf(base) !== 0) throw new Error(baseElement.href);\r\n } catch (err) {\r\n throw new Error('URL unable to set base ' + base + ' due to ' + err);\r\n }\r\n }\r\n\r\n var anchorElement = doc.createElement('a');\r\n anchorElement.href = url;\r\n if (baseElement) {\r\n doc.body.appendChild(anchorElement);\r\n anchorElement.href = anchorElement.href; // force href to refresh\r\n }\r\n\r\n var inputElement = doc.createElement('input');\r\n inputElement.type = 'url';\r\n inputElement.value = url;\r\n\r\n if (anchorElement.protocol === ':' || !/:/.test(anchorElement.href) || (!inputElement.checkValidity() && !base)) {\r\n throw new TypeError('Invalid URL');\r\n }\r\n\r\n Object.defineProperty(this, '_anchorElement', {\r\n value: anchorElement\r\n });\r\n\r\n\r\n // create a linked searchParams which reflect its changes on URL\r\n var searchParams = new global.URLSearchParams(this.search);\r\n var enableSearchUpdate = true;\r\n var enableSearchParamsUpdate = true;\r\n var _this = this;\r\n ['append', 'delete', 'set'].forEach(function(methodName) {\r\n var method = searchParams[methodName];\r\n searchParams[methodName] = function() {\r\n method.apply(searchParams, arguments);\r\n if (enableSearchUpdate) {\r\n enableSearchParamsUpdate = false;\r\n _this.search = searchParams.toString();\r\n enableSearchParamsUpdate = true;\r\n }\r\n };\r\n });\r\n\r\n Object.defineProperty(this, 'searchParams', {\r\n value: searchParams,\r\n enumerable: true\r\n });\r\n\r\n var search = void 0;\r\n Object.defineProperty(this, '_updateSearchParams', {\r\n enumerable: false,\r\n configurable: false,\r\n writable: false,\r\n value: function() {\r\n if (this.search !== search) {\r\n search = this.search;\r\n if (enableSearchParamsUpdate) {\r\n enableSearchUpdate = false;\r\n this.searchParams._fromString(this.search);\r\n enableSearchUpdate = true;\r\n }\r\n }\r\n }\r\n });\r\n };\r\n\r\n var proto = URL.prototype;\r\n\r\n var linkURLWithAnchorAttribute = function(attributeName) {\r\n Object.defineProperty(proto, attributeName, {\r\n get: function() {\r\n return this._anchorElement[attributeName];\r\n },\r\n set: function(value) {\r\n this._anchorElement[attributeName] = value;\r\n },\r\n enumerable: true\r\n });\r\n };\r\n\r\n ['hash', 'host', 'hostname', 'port', 'protocol']\r\n .forEach(function(attributeName) {\r\n linkURLWithAnchorAttribute(attributeName);\r\n });\r\n\r\n Object.defineProperty(proto, 'search', {\r\n get: function() {\r\n return this._anchorElement['search'];\r\n },\r\n set: function(value) {\r\n this._anchorElement['search'] = value;\r\n this._updateSearchParams();\r\n },\r\n enumerable: true\r\n });\r\n\r\n Object.defineProperties(proto, {\r\n\r\n 'toString': {\r\n get: function() {\r\n var _this = this;\r\n return function() {\r\n return _this.href;\r\n };\r\n }\r\n },\r\n\r\n 'href': {\r\n get: function() {\r\n return this._anchorElement.href.replace(/\\?$/, '');\r\n },\r\n set: function(value) {\r\n this._anchorElement.href = value;\r\n this._updateSearchParams();\r\n },\r\n enumerable: true\r\n },\r\n\r\n 'pathname': {\r\n get: function() {\r\n return this._anchorElement.pathname.replace(/(^\\/?)/, '/');\r\n },\r\n set: function(value) {\r\n this._anchorElement.pathname = value;\r\n },\r\n enumerable: true\r\n },\r\n\r\n 'origin': {\r\n get: function() {\r\n // get expected port from protocol\r\n var expectedPort = { 'http:': 80, 'https:': 443, 'ftp:': 21 }[this._anchorElement.protocol];\r\n // add port to origin if, expected port is different than actual port\r\n // and it is not empty f.e http://foo:8080\r\n // 8080 != 80 && 8080 != ''\r\n var addPortToOrigin = this._anchorElement.port != expectedPort &&\r\n this._anchorElement.port !== '';\r\n\r\n return this._anchorElement.protocol +\r\n '//' +\r\n this._anchorElement.hostname +\r\n (addPortToOrigin ? (':' + this._anchorElement.port) : '');\r\n },\r\n enumerable: true\r\n },\r\n\r\n 'password': { // TODO\r\n get: function() {\r\n return '';\r\n },\r\n set: function(value) {\r\n },\r\n enumerable: true\r\n },\r\n\r\n 'username': { // TODO\r\n get: function() {\r\n return '';\r\n },\r\n set: function(value) {\r\n },\r\n enumerable: true\r\n },\r\n });\r\n\r\n URL.createObjectURL = function(blob) {\r\n return _URL.createObjectURL.apply(_URL, arguments);\r\n };\r\n\r\n URL.revokeObjectURL = function(url) {\r\n return _URL.revokeObjectURL.apply(_URL, arguments);\r\n };\r\n\r\n global.URL = URL;\r\n\r\n };\r\n\r\n if (!checkIfURLIsSupported()) {\r\n polyfillURL();\r\n }\r\n\r\n if ((global.location !== void 0) && !('origin' in global.location)) {\r\n var getOrigin = function() {\r\n return global.location.protocol + '//' + global.location.hostname + (global.location.port ? (':' + global.location.port) : '');\r\n };\r\n\r\n try {\r\n Object.defineProperty(global.location, 'origin', {\r\n get: getOrigin,\r\n enumerable: true\r\n });\r\n } catch (e) {\r\n setInterval(function() {\r\n global.location.origin = getOrigin();\r\n }, 100);\r\n }\r\n }\r\n\r\n})(\r\n (typeof global !== 'undefined') ? global\r\n : ((typeof window !== 'undefined') ? window\r\n : ((typeof self !== 'undefined') ? self : this))\r\n);\r\n", "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global global, define, System, Reflect, Promise */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __spreadArray;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __createBinding;\r\n(function (factory) {\r\n var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n if (typeof define === \"function\" && define.amd) {\r\n define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n }\r\n else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n factory(createExporter(root, createExporter(module.exports)));\r\n }\r\n else {\r\n factory(createExporter(root));\r\n }\r\n function createExporter(exports, previous) {\r\n if (exports !== root) {\r\n if (typeof Object.create === \"function\") {\r\n Object.defineProperty(exports, \"__esModule\", { value: true });\r\n }\r\n else {\r\n exports.__esModule = true;\r\n }\r\n }\r\n return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n }\r\n})\r\n(function (exporter) {\r\n var extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n\r\n __extends = function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n\r\n __assign = Object.assign || function (t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n\r\n __rest = function (s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n };\r\n\r\n __decorate = function (decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n };\r\n\r\n __param = function (paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n };\r\n\r\n __metadata = function (metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n };\r\n\r\n __awaiter = function (thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n };\r\n\r\n __generator = function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n };\r\n\r\n __exportStar = function(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n };\r\n\r\n __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n }) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n });\r\n\r\n __values = function (o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n };\r\n\r\n __read = function (o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spread = function () {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n };\r\n\r\n /** @deprecated */\r\n __spreadArrays = function () {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n };\r\n\r\n __spreadArray = function (to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n };\r\n\r\n __await = function (v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n };\r\n\r\n __asyncGenerator = function (thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n };\r\n\r\n __asyncDelegator = function (o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n };\r\n\r\n __asyncValues = function (o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n };\r\n\r\n __makeTemplateObject = function (cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n };\r\n\r\n var __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n }) : function(o, v) {\r\n o[\"default\"] = v;\r\n };\r\n\r\n __importStar = function (mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n };\r\n\r\n __importDefault = function (mod) {\r\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n };\r\n\r\n __classPrivateFieldGet = function (receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n };\r\n\r\n __classPrivateFieldSet = function (receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n };\r\n\r\n exporter(\"__extends\", __extends);\r\n exporter(\"__assign\", __assign);\r\n exporter(\"__rest\", __rest);\r\n exporter(\"__decorate\", __decorate);\r\n exporter(\"__param\", __param);\r\n exporter(\"__metadata\", __metadata);\r\n exporter(\"__awaiter\", __awaiter);\r\n exporter(\"__generator\", __generator);\r\n exporter(\"__exportStar\", __exportStar);\r\n exporter(\"__createBinding\", __createBinding);\r\n exporter(\"__values\", __values);\r\n exporter(\"__read\", __read);\r\n exporter(\"__spread\", __spread);\r\n exporter(\"__spreadArrays\", __spreadArrays);\r\n exporter(\"__spreadArray\", __spreadArray);\r\n exporter(\"__await\", __await);\r\n exporter(\"__asyncGenerator\", __asyncGenerator);\r\n exporter(\"__asyncDelegator\", __asyncDelegator);\r\n exporter(\"__asyncValues\", __asyncValues);\r\n exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n exporter(\"__importStar\", __importStar);\r\n exporter(\"__importDefault\", __importDefault);\r\n exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n});\r\n", "/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT \u00A9 Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});", "/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n", "Array.prototype.flat||Object.defineProperty(Array.prototype,\"flat\",{configurable:!0,value:function r(){var t=isNaN(arguments[0])?1:Number(arguments[0]);return t?Array.prototype.reduce.call(this,function(a,e){return Array.isArray(e)?a.push.apply(a,r.call(e,t-1)):a.push(e),a},[]):Array.prototype.slice.call(this)},writable:!0}),Array.prototype.flatMap||Object.defineProperty(Array.prototype,\"flatMap\",{configurable:!0,value:function(r){return Array.prototype.map.apply(this,arguments).flat()},writable:!0})\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport \"array-flat-polyfill\"\nimport \"focus-visible\"\nimport \"unfetch/polyfill\"\nimport \"url-polyfill\"\n\nimport {\n EMPTY,\n NEVER,\n Subject,\n defer,\n delay,\n filter,\n map,\n merge,\n mergeWith,\n shareReplay,\n switchMap\n} from \"rxjs\"\n\nimport { configuration, feature } from \"./_\"\nimport {\n at,\n getOptionalElement,\n requestJSON,\n setToggle,\n watchDocument,\n watchKeyboard,\n watchLocation,\n watchLocationTarget,\n watchMedia,\n watchPrint,\n watchViewport\n} from \"./browser\"\nimport {\n getComponentElement,\n getComponentElements,\n mountAnnounce,\n mountBackToTop,\n mountConsent,\n mountContent,\n mountDialog,\n mountHeader,\n mountHeaderTitle,\n mountPalette,\n mountSearch,\n mountSearchHiglight,\n mountSidebar,\n mountSource,\n mountTableOfContents,\n mountTabs,\n watchHeader,\n watchMain\n} from \"./components\"\nimport {\n SearchIndex,\n setupClipboardJS,\n setupInstantLoading,\n setupVersionSelector\n} from \"./integrations\"\nimport {\n patchIndeterminate,\n patchScrollfix,\n patchScrolllock\n} from \"./patches\"\nimport \"./polyfills\"\n\n/* ----------------------------------------------------------------------------\n * Application\n * ------------------------------------------------------------------------- */\n\n/* Yay, JavaScript is available */\ndocument.documentElement.classList.remove(\"no-js\")\ndocument.documentElement.classList.add(\"js\")\n\n/* Set up navigation observables and subjects */\nconst document$ = watchDocument()\nconst location$ = watchLocation()\nconst target$ = watchLocationTarget()\nconst keyboard$ = watchKeyboard()\n\n/* Set up media observables */\nconst viewport$ = watchViewport()\nconst tablet$ = watchMedia(\"(min-width: 960px)\")\nconst screen$ = watchMedia(\"(min-width: 1220px)\")\nconst print$ = watchPrint()\n\n/* Retrieve search index, if search is enabled */\nconst config = configuration()\nconst index$ = document.forms.namedItem(\"search\")\n ? __search?.index || requestJSON(\n new URL(\"search/search_index.json\", config.base)\n )\n : NEVER\n\n/* Set up Clipboard.js integration */\nconst alert$ = new Subject()\nsetupClipboardJS({ alert$ })\n\n/* Set up instant loading, if enabled */\nif (feature(\"navigation.instant\"))\n setupInstantLoading({ document$, location$, viewport$ })\n\n/* Set up version selector */\nif (config.version?.provider === \"mike\")\n setupVersionSelector({ document$ })\n\n/* Always close drawer and search on navigation */\nmerge(location$, target$)\n .pipe(\n delay(125)\n )\n .subscribe(() => {\n setToggle(\"drawer\", false)\n setToggle(\"search\", false)\n })\n\n/* Set up global keyboard handlers */\nkeyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\")\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Go to previous page */\n case \"p\":\n case \",\":\n const prev = getOptionalElement(\"[href][rel=prev]\")\n if (typeof prev !== \"undefined\")\n prev.click()\n break\n\n /* Go to next page */\n case \"n\":\n case \".\":\n const next = getOptionalElement(\"[href][rel=next]\")\n if (typeof next !== \"undefined\")\n next.click()\n break\n }\n })\n\n/* Set up patches */\npatchIndeterminate({ document$, tablet$ })\npatchScrollfix({ document$ })\npatchScrolllock({ viewport$, tablet$ })\n\n/* Set up header and main area observable */\nconst header$ = watchHeader(getComponentElement(\"header\"), { viewport$ })\nconst main$ = document$\n .pipe(\n map(() => getComponentElement(\"main\")),\n switchMap(el => watchMain(el, { viewport$, header$ })),\n shareReplay(1)\n )\n\n/* Set up control component observables */\nconst control$ = merge(\n\n /* Consent */\n ...getComponentElements(\"consent\")\n .map(el => mountConsent(el, { target$ })),\n\n /* Dialog */\n ...getComponentElements(\"dialog\")\n .map(el => mountDialog(el, { alert$ })),\n\n /* Header */\n ...getComponentElements(\"header\")\n .map(el => mountHeader(el, { viewport$, header$, main$ })),\n\n /* Color palette */\n ...getComponentElements(\"palette\")\n .map(el => mountPalette(el)),\n\n /* Search */\n ...getComponentElements(\"search\")\n .map(el => mountSearch(el, { index$, keyboard$ })),\n\n /* Repository information */\n ...getComponentElements(\"source\")\n .map(el => mountSource(el))\n)\n\n/* Set up content component observables */\nconst content$ = defer(() => merge(\n\n /* Announcement bar */\n ...getComponentElements(\"announce\")\n .map(el => mountAnnounce(el)),\n\n /* Content */\n ...getComponentElements(\"content\")\n .map(el => mountContent(el, { target$, print$ })),\n\n /* Search highlighting */\n ...getComponentElements(\"content\")\n .map(el => feature(\"search.highlight\")\n ? mountSearchHiglight(el, { index$, location$ })\n : EMPTY\n ),\n\n /* Header title */\n ...getComponentElements(\"header-title\")\n .map(el => mountHeaderTitle(el, { viewport$, header$ })),\n\n /* Sidebar */\n ...getComponentElements(\"sidebar\")\n .map(el => el.getAttribute(\"data-md-type\") === \"navigation\"\n ? at(screen$, () => mountSidebar(el, { viewport$, header$, main$ }))\n : at(tablet$, () => mountSidebar(el, { viewport$, header$, main$ }))\n ),\n\n /* Navigation tabs */\n ...getComponentElements(\"tabs\")\n .map(el => mountTabs(el, { viewport$, header$ })),\n\n /* Table of contents */\n ...getComponentElements(\"toc\")\n .map(el => mountTableOfContents(el, { viewport$, header$, target$ })),\n\n /* Back-to-top button */\n ...getComponentElements(\"top\")\n .map(el => mountBackToTop(el, { viewport$, header$, main$, target$ }))\n))\n\n/* Set up component observables */\nconst component$ = document$\n .pipe(\n switchMap(() => content$),\n mergeWith(control$),\n shareReplay(1)\n )\n\n/* Subscribe to all components */\ncomponent$.subscribe()\n\n/* ----------------------------------------------------------------------------\n * Exports\n * ------------------------------------------------------------------------- */\n\nwindow.document$ = document$ /* Document observable */\nwindow.location$ = location$ /* Location subject */\nwindow.target$ = target$ /* Location target observable */\nwindow.keyboard$ = keyboard$ /* Keyboard observable */\nwindow.viewport$ = viewport$ /* Viewport observable */\nwindow.tablet$ = tablet$ /* Media tablet observable */\nwindow.screen$ = screen$ /* Media screen observable */\nwindow.print$ = print$ /* Media print observable */\nwindow.alert$ = alert$ /* Alert subject */\nwindow.component$ = component$ /* Component observable */\n", "self.fetch||(self.fetch=function(e,n){return n=n||{},new Promise(function(t,s){var r=new XMLHttpRequest,o=[],u=[],i={},a=function(){return{ok:2==(r.status/100|0),statusText:r.statusText,status:r.status,url:r.responseURL,text:function(){return Promise.resolve(r.responseText)},json:function(){return Promise.resolve(r.responseText).then(JSON.parse)},blob:function(){return Promise.resolve(new Blob([r.response]))},clone:a,headers:{keys:function(){return o},entries:function(){return u},get:function(e){return i[e.toLowerCase()]},has:function(e){return e.toLowerCase()in i}}}};for(var c in r.open(n.method||\"get\",e,!0),r.onload=function(){r.getAllResponseHeaders().replace(/^(.*?):[^\\S\\n]*([\\s\\S]*?)$/gm,function(e,n,t){o.push(n=n.toLowerCase()),u.push([n,t]),i[n]=i[n]?i[n]+\",\"+t:t}),t(a())},r.onerror=s,r.withCredentials=\"include\"==n.credentials,n.headers)r.setRequestHeader(c,n.headers[c]);r.send(n.body||null)})});\n", "import tslib from '../tslib.js';\r\nconst {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __exportStar,\r\n __createBinding,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n} = tslib;\r\nexport {\r\n __extends,\r\n __assign,\r\n __rest,\r\n __decorate,\r\n __param,\r\n __metadata,\r\n __awaiter,\r\n __generator,\r\n __exportStar,\r\n __createBinding,\r\n __values,\r\n __read,\r\n __spread,\r\n __spreadArrays,\r\n __spreadArray,\r\n __await,\r\n __asyncGenerator,\r\n __asyncDelegator,\r\n __asyncValues,\r\n __makeTemplateObject,\r\n __importStar,\r\n __importDefault,\r\n __classPrivateFieldGet,\r\n __classPrivateFieldSet,\r\n};\r\n", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n ReplaySubject,\n Subject,\n fromEvent\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch document\n *\n * Documents are implemented as subjects, so all downstream observables are\n * automatically updated when a new document is emitted.\n *\n * @returns Document subject\n */\nexport function watchDocument(): Subject {\n const document$ = new ReplaySubject(1)\n fromEvent(document, \"DOMContentLoaded\", { once: true })\n .subscribe(() => document$.next(document))\n\n /* Return document */\n return document$\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve all elements matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @returns Elements\n */\nexport function getElements(\n selector: T, node?: ParentNode\n): HTMLElementTagNameMap[T][]\n\nexport function getElements(\n selector: string, node?: ParentNode\n): T[]\n\nexport function getElements(\n selector: string, node: ParentNode = document\n): T[] {\n return Array.from(node.querySelectorAll(selector))\n}\n\n/**\n * Retrieve an element matching a query selector or throw a reference error\n *\n * Note that this function assumes that the element is present. If unsure if an\n * element is existent, use the `getOptionalElement` function instead.\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @returns Element\n */\nexport function getElement(\n selector: T, node?: ParentNode\n): HTMLElementTagNameMap[T]\n\nexport function getElement(\n selector: string, node?: ParentNode\n): T\n\nexport function getElement(\n selector: string, node: ParentNode = document\n): T {\n const el = getOptionalElement(selector, node)\n if (typeof el === \"undefined\")\n throw new ReferenceError(\n `Missing element: expected \"${selector}\" to be present`\n )\n\n /* Return element */\n return el\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Retrieve an optional element matching the query selector\n *\n * @template T - Element type\n *\n * @param selector - Query selector\n * @param node - Node of reference\n *\n * @returns Element or nothing\n */\nexport function getOptionalElement(\n selector: T, node?: ParentNode\n): HTMLElementTagNameMap[T] | undefined\n\nexport function getOptionalElement(\n selector: string, node?: ParentNode\n): T | undefined\n\nexport function getOptionalElement(\n selector: string, node: ParentNode = document\n): T | undefined {\n return node.querySelector(selector) || undefined\n}\n\n/**\n * Retrieve the currently active element\n *\n * @returns Element or nothing\n */\nexport function getActiveElement(): HTMLElement | undefined {\n return document.activeElement instanceof HTMLElement\n ? document.activeElement || undefined\n : undefined\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n debounceTime,\n distinctUntilChanged,\n fromEvent,\n map,\n merge,\n startWith\n} from \"rxjs\"\n\nimport { getActiveElement } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch element focus\n *\n * Previously, this function used `focus` and `blur` events to determine whether\n * an element is focused, but this doesn't work if there are focusable elements\n * within the elements itself. A better solutions are `focusin` and `focusout`\n * events, which bubble up the tree and allow for more fine-grained control.\n *\n * `debounceTime` is necessary, because when a focus change happens inside an\n * element, the observable would first emit `false` and then `true` again.\n *\n * @param el - Element\n *\n * @returns Element focus observable\n */\nexport function watchElementFocus(\n el: HTMLElement\n): Observable {\n return merge(\n fromEvent(document.body, \"focusin\"),\n fromEvent(document.body, \"focusout\")\n )\n .pipe(\n debounceTime(1),\n map(() => {\n const active = getActiveElement()\n return typeof active !== \"undefined\"\n ? el.contains(active)\n : false\n }),\n startWith(el === getActiveElement()),\n distinctUntilChanged()\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n animationFrameScheduler,\n auditTime,\n fromEvent,\n map,\n merge,\n startWith\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Element offset\n */\nexport interface ElementOffset {\n x: number /* Horizontal offset */\n y: number /* Vertical offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element offset\n *\n * @param el - Element\n *\n * @returns Element offset\n */\nexport function getElementOffset(\n el: HTMLElement\n): ElementOffset {\n return {\n x: el.offsetLeft,\n y: el.offsetTop\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element offset\n *\n * @param el - Element\n *\n * @returns Element offset observable\n */\nexport function watchElementOffset(\n el: HTMLElement\n): Observable {\n return merge(\n fromEvent(window, \"load\"),\n fromEvent(window, \"resize\")\n )\n .pipe(\n auditTime(0, animationFrameScheduler),\n map(() => getElementOffset(el)),\n startWith(getElementOffset(el))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n animationFrameScheduler,\n auditTime,\n fromEvent,\n map,\n merge,\n startWith\n} from \"rxjs\"\n\nimport { ElementOffset } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element content offset (= scroll offset)\n *\n * @param el - Element\n *\n * @returns Element content offset\n */\nexport function getElementContentOffset(\n el: HTMLElement\n): ElementOffset {\n return {\n x: el.scrollLeft,\n y: el.scrollTop\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element content offset\n *\n * @param el - Element\n *\n * @returns Element content offset observable\n */\nexport function watchElementContentOffset(\n el: HTMLElement\n): Observable {\n return merge(\n fromEvent(el, \"scroll\"),\n fromEvent(window, \"resize\")\n )\n .pipe(\n auditTime(0, animationFrameScheduler),\n map(() => getElementContentOffset(el)),\n startWith(getElementContentOffset(el))\n )\n}\n", "/**\r\n * A collection of shims that provide minimal functionality of the ES6 collections.\r\n *\r\n * These implementations are not meant to be used outside of the ResizeObserver\r\n * modules as they cover only a limited range of use cases.\r\n */\r\n/* eslint-disable require-jsdoc, valid-jsdoc */\r\nvar MapShim = (function () {\r\n if (typeof Map !== 'undefined') {\r\n return Map;\r\n }\r\n /**\r\n * Returns index in provided array that matches the specified key.\r\n *\r\n * @param {Array} arr\r\n * @param {*} key\r\n * @returns {number}\r\n */\r\n function getIndex(arr, key) {\r\n var result = -1;\r\n arr.some(function (entry, index) {\r\n if (entry[0] === key) {\r\n result = index;\r\n return true;\r\n }\r\n return false;\r\n });\r\n return result;\r\n }\r\n return /** @class */ (function () {\r\n function class_1() {\r\n this.__entries__ = [];\r\n }\r\n Object.defineProperty(class_1.prototype, \"size\", {\r\n /**\r\n * @returns {boolean}\r\n */\r\n get: function () {\r\n return this.__entries__.length;\r\n },\r\n enumerable: true,\r\n configurable: true\r\n });\r\n /**\r\n * @param {*} key\r\n * @returns {*}\r\n */\r\n class_1.prototype.get = function (key) {\r\n var index = getIndex(this.__entries__, key);\r\n var entry = this.__entries__[index];\r\n return entry && entry[1];\r\n };\r\n /**\r\n * @param {*} key\r\n * @param {*} value\r\n * @returns {void}\r\n */\r\n class_1.prototype.set = function (key, value) {\r\n var index = getIndex(this.__entries__, key);\r\n if (~index) {\r\n this.__entries__[index][1] = value;\r\n }\r\n else {\r\n this.__entries__.push([key, value]);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.delete = function (key) {\r\n var entries = this.__entries__;\r\n var index = getIndex(entries, key);\r\n if (~index) {\r\n entries.splice(index, 1);\r\n }\r\n };\r\n /**\r\n * @param {*} key\r\n * @returns {void}\r\n */\r\n class_1.prototype.has = function (key) {\r\n return !!~getIndex(this.__entries__, key);\r\n };\r\n /**\r\n * @returns {void}\r\n */\r\n class_1.prototype.clear = function () {\r\n this.__entries__.splice(0);\r\n };\r\n /**\r\n * @param {Function} callback\r\n * @param {*} [ctx=null]\r\n * @returns {void}\r\n */\r\n class_1.prototype.forEach = function (callback, ctx) {\r\n if (ctx === void 0) { ctx = null; }\r\n for (var _i = 0, _a = this.__entries__; _i < _a.length; _i++) {\r\n var entry = _a[_i];\r\n callback.call(ctx, entry[1], entry[0]);\r\n }\r\n };\r\n return class_1;\r\n }());\r\n})();\n\n/**\r\n * Detects whether window and document objects are available in current environment.\r\n */\r\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && window.document === document;\n\n// Returns global object of a current environment.\r\nvar global$1 = (function () {\r\n if (typeof global !== 'undefined' && global.Math === Math) {\r\n return global;\r\n }\r\n if (typeof self !== 'undefined' && self.Math === Math) {\r\n return self;\r\n }\r\n if (typeof window !== 'undefined' && window.Math === Math) {\r\n return window;\r\n }\r\n // eslint-disable-next-line no-new-func\r\n return Function('return this')();\r\n})();\n\n/**\r\n * A shim for the requestAnimationFrame which falls back to the setTimeout if\r\n * first one is not supported.\r\n *\r\n * @returns {number} Requests' identifier.\r\n */\r\nvar requestAnimationFrame$1 = (function () {\r\n if (typeof requestAnimationFrame === 'function') {\r\n // It's required to use a bounded function because IE sometimes throws\r\n // an \"Invalid calling object\" error if rAF is invoked without the global\r\n // object on the left hand side.\r\n return requestAnimationFrame.bind(global$1);\r\n }\r\n return function (callback) { return setTimeout(function () { return callback(Date.now()); }, 1000 / 60); };\r\n})();\n\n// Defines minimum timeout before adding a trailing call.\r\nvar trailingTimeout = 2;\r\n/**\r\n * Creates a wrapper function which ensures that provided callback will be\r\n * invoked only once during the specified delay period.\r\n *\r\n * @param {Function} callback - Function to be invoked after the delay period.\r\n * @param {number} delay - Delay after which to invoke callback.\r\n * @returns {Function}\r\n */\r\nfunction throttle (callback, delay) {\r\n var leadingCall = false, trailingCall = false, lastCallTime = 0;\r\n /**\r\n * Invokes the original callback function and schedules new invocation if\r\n * the \"proxy\" was called during current request.\r\n *\r\n * @returns {void}\r\n */\r\n function resolvePending() {\r\n if (leadingCall) {\r\n leadingCall = false;\r\n callback();\r\n }\r\n if (trailingCall) {\r\n proxy();\r\n }\r\n }\r\n /**\r\n * Callback invoked after the specified delay. It will further postpone\r\n * invocation of the original function delegating it to the\r\n * requestAnimationFrame.\r\n *\r\n * @returns {void}\r\n */\r\n function timeoutCallback() {\r\n requestAnimationFrame$1(resolvePending);\r\n }\r\n /**\r\n * Schedules invocation of the original function.\r\n *\r\n * @returns {void}\r\n */\r\n function proxy() {\r\n var timeStamp = Date.now();\r\n if (leadingCall) {\r\n // Reject immediately following calls.\r\n if (timeStamp - lastCallTime < trailingTimeout) {\r\n return;\r\n }\r\n // Schedule new call to be in invoked when the pending one is resolved.\r\n // This is important for \"transitions\" which never actually start\r\n // immediately so there is a chance that we might miss one if change\r\n // happens amids the pending invocation.\r\n trailingCall = true;\r\n }\r\n else {\r\n leadingCall = true;\r\n trailingCall = false;\r\n setTimeout(timeoutCallback, delay);\r\n }\r\n lastCallTime = timeStamp;\r\n }\r\n return proxy;\r\n}\n\n// Minimum delay before invoking the update of observers.\r\nvar REFRESH_DELAY = 20;\r\n// A list of substrings of CSS properties used to find transition events that\r\n// might affect dimensions of observed elements.\r\nvar transitionKeys = ['top', 'right', 'bottom', 'left', 'width', 'height', 'size', 'weight'];\r\n// Check if MutationObserver is available.\r\nvar mutationObserverSupported = typeof MutationObserver !== 'undefined';\r\n/**\r\n * Singleton controller class which handles updates of ResizeObserver instances.\r\n */\r\nvar ResizeObserverController = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserverController.\r\n *\r\n * @private\r\n */\r\n function ResizeObserverController() {\r\n /**\r\n * Indicates whether DOM listeners have been added.\r\n *\r\n * @private {boolean}\r\n */\r\n this.connected_ = false;\r\n /**\r\n * Tells that controller has subscribed for Mutation Events.\r\n *\r\n * @private {boolean}\r\n */\r\n this.mutationEventsAdded_ = false;\r\n /**\r\n * Keeps reference to the instance of MutationObserver.\r\n *\r\n * @private {MutationObserver}\r\n */\r\n this.mutationsObserver_ = null;\r\n /**\r\n * A list of connected observers.\r\n *\r\n * @private {Array}\r\n */\r\n this.observers_ = [];\r\n this.onTransitionEnd_ = this.onTransitionEnd_.bind(this);\r\n this.refresh = throttle(this.refresh.bind(this), REFRESH_DELAY);\r\n }\r\n /**\r\n * Adds observer to observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be added.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.addObserver = function (observer) {\r\n if (!~this.observers_.indexOf(observer)) {\r\n this.observers_.push(observer);\r\n }\r\n // Add listeners if they haven't been added yet.\r\n if (!this.connected_) {\r\n this.connect_();\r\n }\r\n };\r\n /**\r\n * Removes observer from observers list.\r\n *\r\n * @param {ResizeObserverSPI} observer - Observer to be removed.\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.removeObserver = function (observer) {\r\n var observers = this.observers_;\r\n var index = observers.indexOf(observer);\r\n // Remove observer if it's present in registry.\r\n if (~index) {\r\n observers.splice(index, 1);\r\n }\r\n // Remove listeners if controller has no connected observers.\r\n if (!observers.length && this.connected_) {\r\n this.disconnect_();\r\n }\r\n };\r\n /**\r\n * Invokes the update of observers. It will continue running updates insofar\r\n * it detects changes.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.refresh = function () {\r\n var changesDetected = this.updateObservers_();\r\n // Continue running updates if changes have been detected as there might\r\n // be future ones caused by CSS transitions.\r\n if (changesDetected) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Updates every observer from observers list and notifies them of queued\r\n * entries.\r\n *\r\n * @private\r\n * @returns {boolean} Returns \"true\" if any observer has detected changes in\r\n * dimensions of it's elements.\r\n */\r\n ResizeObserverController.prototype.updateObservers_ = function () {\r\n // Collect observers that have active observations.\r\n var activeObservers = this.observers_.filter(function (observer) {\r\n return observer.gatherActive(), observer.hasActive();\r\n });\r\n // Deliver notifications in a separate cycle in order to avoid any\r\n // collisions between observers, e.g. when multiple instances of\r\n // ResizeObserver are tracking the same element and the callback of one\r\n // of them changes content dimensions of the observed target. Sometimes\r\n // this may result in notifications being blocked for the rest of observers.\r\n activeObservers.forEach(function (observer) { return observer.broadcastActive(); });\r\n return activeObservers.length > 0;\r\n };\r\n /**\r\n * Initializes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.connect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already added.\r\n if (!isBrowser || this.connected_) {\r\n return;\r\n }\r\n // Subscription to the \"Transitionend\" event is used as a workaround for\r\n // delayed transitions. This way it's possible to capture at least the\r\n // final state of an element.\r\n document.addEventListener('transitionend', this.onTransitionEnd_);\r\n window.addEventListener('resize', this.refresh);\r\n if (mutationObserverSupported) {\r\n this.mutationsObserver_ = new MutationObserver(this.refresh);\r\n this.mutationsObserver_.observe(document, {\r\n attributes: true,\r\n childList: true,\r\n characterData: true,\r\n subtree: true\r\n });\r\n }\r\n else {\r\n document.addEventListener('DOMSubtreeModified', this.refresh);\r\n this.mutationEventsAdded_ = true;\r\n }\r\n this.connected_ = true;\r\n };\r\n /**\r\n * Removes DOM listeners.\r\n *\r\n * @private\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.disconnect_ = function () {\r\n // Do nothing if running in a non-browser environment or if listeners\r\n // have been already removed.\r\n if (!isBrowser || !this.connected_) {\r\n return;\r\n }\r\n document.removeEventListener('transitionend', this.onTransitionEnd_);\r\n window.removeEventListener('resize', this.refresh);\r\n if (this.mutationsObserver_) {\r\n this.mutationsObserver_.disconnect();\r\n }\r\n if (this.mutationEventsAdded_) {\r\n document.removeEventListener('DOMSubtreeModified', this.refresh);\r\n }\r\n this.mutationsObserver_ = null;\r\n this.mutationEventsAdded_ = false;\r\n this.connected_ = false;\r\n };\r\n /**\r\n * \"Transitionend\" event handler.\r\n *\r\n * @private\r\n * @param {TransitionEvent} event\r\n * @returns {void}\r\n */\r\n ResizeObserverController.prototype.onTransitionEnd_ = function (_a) {\r\n var _b = _a.propertyName, propertyName = _b === void 0 ? '' : _b;\r\n // Detect whether transition may affect dimensions of an element.\r\n var isReflowProperty = transitionKeys.some(function (key) {\r\n return !!~propertyName.indexOf(key);\r\n });\r\n if (isReflowProperty) {\r\n this.refresh();\r\n }\r\n };\r\n /**\r\n * Returns instance of the ResizeObserverController.\r\n *\r\n * @returns {ResizeObserverController}\r\n */\r\n ResizeObserverController.getInstance = function () {\r\n if (!this.instance_) {\r\n this.instance_ = new ResizeObserverController();\r\n }\r\n return this.instance_;\r\n };\r\n /**\r\n * Holds reference to the controller's instance.\r\n *\r\n * @private {ResizeObserverController}\r\n */\r\n ResizeObserverController.instance_ = null;\r\n return ResizeObserverController;\r\n}());\n\n/**\r\n * Defines non-writable/enumerable properties of the provided target object.\r\n *\r\n * @param {Object} target - Object for which to define properties.\r\n * @param {Object} props - Properties to be defined.\r\n * @returns {Object} Target object.\r\n */\r\nvar defineConfigurable = (function (target, props) {\r\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\r\n var key = _a[_i];\r\n Object.defineProperty(target, key, {\r\n value: props[key],\r\n enumerable: false,\r\n writable: false,\r\n configurable: true\r\n });\r\n }\r\n return target;\r\n});\n\n/**\r\n * Returns the global object associated with provided element.\r\n *\r\n * @param {Object} target\r\n * @returns {Object}\r\n */\r\nvar getWindowOf = (function (target) {\r\n // Assume that the element is an instance of Node, which means that it\r\n // has the \"ownerDocument\" property from which we can retrieve a\r\n // corresponding global object.\r\n var ownerGlobal = target && target.ownerDocument && target.ownerDocument.defaultView;\r\n // Return the local global object if it's not possible extract one from\r\n // provided element.\r\n return ownerGlobal || global$1;\r\n});\n\n// Placeholder of an empty content rectangle.\r\nvar emptyRect = createRectInit(0, 0, 0, 0);\r\n/**\r\n * Converts provided string to a number.\r\n *\r\n * @param {number|string} value\r\n * @returns {number}\r\n */\r\nfunction toFloat(value) {\r\n return parseFloat(value) || 0;\r\n}\r\n/**\r\n * Extracts borders size from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @param {...string} positions - Borders positions (top, right, ...)\r\n * @returns {number}\r\n */\r\nfunction getBordersSize(styles) {\r\n var positions = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n positions[_i - 1] = arguments[_i];\r\n }\r\n return positions.reduce(function (size, position) {\r\n var value = styles['border-' + position + '-width'];\r\n return size + toFloat(value);\r\n }, 0);\r\n}\r\n/**\r\n * Extracts paddings sizes from provided styles.\r\n *\r\n * @param {CSSStyleDeclaration} styles\r\n * @returns {Object} Paddings box.\r\n */\r\nfunction getPaddings(styles) {\r\n var positions = ['top', 'right', 'bottom', 'left'];\r\n var paddings = {};\r\n for (var _i = 0, positions_1 = positions; _i < positions_1.length; _i++) {\r\n var position = positions_1[_i];\r\n var value = styles['padding-' + position];\r\n paddings[position] = toFloat(value);\r\n }\r\n return paddings;\r\n}\r\n/**\r\n * Calculates content rectangle of provided SVG element.\r\n *\r\n * @param {SVGGraphicsElement} target - Element content rectangle of which needs\r\n * to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getSVGContentRect(target) {\r\n var bbox = target.getBBox();\r\n return createRectInit(0, 0, bbox.width, bbox.height);\r\n}\r\n/**\r\n * Calculates content rectangle of provided HTMLElement.\r\n *\r\n * @param {HTMLElement} target - Element for which to calculate the content rectangle.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getHTMLElementContentRect(target) {\r\n // Client width & height properties can't be\r\n // used exclusively as they provide rounded values.\r\n var clientWidth = target.clientWidth, clientHeight = target.clientHeight;\r\n // By this condition we can catch all non-replaced inline, hidden and\r\n // detached elements. Though elements with width & height properties less\r\n // than 0.5 will be discarded as well.\r\n //\r\n // Without it we would need to implement separate methods for each of\r\n // those cases and it's not possible to perform a precise and performance\r\n // effective test for hidden elements. E.g. even jQuery's ':visible' filter\r\n // gives wrong results for elements with width & height less than 0.5.\r\n if (!clientWidth && !clientHeight) {\r\n return emptyRect;\r\n }\r\n var styles = getWindowOf(target).getComputedStyle(target);\r\n var paddings = getPaddings(styles);\r\n var horizPad = paddings.left + paddings.right;\r\n var vertPad = paddings.top + paddings.bottom;\r\n // Computed styles of width & height are being used because they are the\r\n // only dimensions available to JS that contain non-rounded values. It could\r\n // be possible to utilize the getBoundingClientRect if only it's data wasn't\r\n // affected by CSS transformations let alone paddings, borders and scroll bars.\r\n var width = toFloat(styles.width), height = toFloat(styles.height);\r\n // Width & height include paddings and borders when the 'border-box' box\r\n // model is applied (except for IE).\r\n if (styles.boxSizing === 'border-box') {\r\n // Following conditions are required to handle Internet Explorer which\r\n // doesn't include paddings and borders to computed CSS dimensions.\r\n //\r\n // We can say that if CSS dimensions + paddings are equal to the \"client\"\r\n // properties then it's either IE, and thus we don't need to subtract\r\n // anything, or an element merely doesn't have paddings/borders styles.\r\n if (Math.round(width + horizPad) !== clientWidth) {\r\n width -= getBordersSize(styles, 'left', 'right') + horizPad;\r\n }\r\n if (Math.round(height + vertPad) !== clientHeight) {\r\n height -= getBordersSize(styles, 'top', 'bottom') + vertPad;\r\n }\r\n }\r\n // Following steps can't be applied to the document's root element as its\r\n // client[Width/Height] properties represent viewport area of the window.\r\n // Besides, it's as well not necessary as the itself neither has\r\n // rendered scroll bars nor it can be clipped.\r\n if (!isDocumentElement(target)) {\r\n // In some browsers (only in Firefox, actually) CSS width & height\r\n // include scroll bars size which can be removed at this step as scroll\r\n // bars are the only difference between rounded dimensions + paddings\r\n // and \"client\" properties, though that is not always true in Chrome.\r\n var vertScrollbar = Math.round(width + horizPad) - clientWidth;\r\n var horizScrollbar = Math.round(height + vertPad) - clientHeight;\r\n // Chrome has a rather weird rounding of \"client\" properties.\r\n // E.g. for an element with content width of 314.2px it sometimes gives\r\n // the client width of 315px and for the width of 314.7px it may give\r\n // 314px. And it doesn't happen all the time. So just ignore this delta\r\n // as a non-relevant.\r\n if (Math.abs(vertScrollbar) !== 1) {\r\n width -= vertScrollbar;\r\n }\r\n if (Math.abs(horizScrollbar) !== 1) {\r\n height -= horizScrollbar;\r\n }\r\n }\r\n return createRectInit(paddings.left, paddings.top, width, height);\r\n}\r\n/**\r\n * Checks whether provided element is an instance of the SVGGraphicsElement.\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nvar isSVGGraphicsElement = (function () {\r\n // Some browsers, namely IE and Edge, don't have the SVGGraphicsElement\r\n // interface.\r\n if (typeof SVGGraphicsElement !== 'undefined') {\r\n return function (target) { return target instanceof getWindowOf(target).SVGGraphicsElement; };\r\n }\r\n // If it's so, then check that element is at least an instance of the\r\n // SVGElement and that it has the \"getBBox\" method.\r\n // eslint-disable-next-line no-extra-parens\r\n return function (target) { return (target instanceof getWindowOf(target).SVGElement &&\r\n typeof target.getBBox === 'function'); };\r\n})();\r\n/**\r\n * Checks whether provided element is a document element ().\r\n *\r\n * @param {Element} target - Element to be checked.\r\n * @returns {boolean}\r\n */\r\nfunction isDocumentElement(target) {\r\n return target === getWindowOf(target).document.documentElement;\r\n}\r\n/**\r\n * Calculates an appropriate content rectangle for provided html or svg element.\r\n *\r\n * @param {Element} target - Element content rectangle of which needs to be calculated.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction getContentRect(target) {\r\n if (!isBrowser) {\r\n return emptyRect;\r\n }\r\n if (isSVGGraphicsElement(target)) {\r\n return getSVGContentRect(target);\r\n }\r\n return getHTMLElementContentRect(target);\r\n}\r\n/**\r\n * Creates rectangle with an interface of the DOMRectReadOnly.\r\n * Spec: https://drafts.fxtf.org/geometry/#domrectreadonly\r\n *\r\n * @param {DOMRectInit} rectInit - Object with rectangle's x/y coordinates and dimensions.\r\n * @returns {DOMRectReadOnly}\r\n */\r\nfunction createReadOnlyRect(_a) {\r\n var x = _a.x, y = _a.y, width = _a.width, height = _a.height;\r\n // If DOMRectReadOnly is available use it as a prototype for the rectangle.\r\n var Constr = typeof DOMRectReadOnly !== 'undefined' ? DOMRectReadOnly : Object;\r\n var rect = Object.create(Constr.prototype);\r\n // Rectangle's properties are not writable and non-enumerable.\r\n defineConfigurable(rect, {\r\n x: x, y: y, width: width, height: height,\r\n top: y,\r\n right: x + width,\r\n bottom: height + y,\r\n left: x\r\n });\r\n return rect;\r\n}\r\n/**\r\n * Creates DOMRectInit object based on the provided dimensions and the x/y coordinates.\r\n * Spec: https://drafts.fxtf.org/geometry/#dictdef-domrectinit\r\n *\r\n * @param {number} x - X coordinate.\r\n * @param {number} y - Y coordinate.\r\n * @param {number} width - Rectangle's width.\r\n * @param {number} height - Rectangle's height.\r\n * @returns {DOMRectInit}\r\n */\r\nfunction createRectInit(x, y, width, height) {\r\n return { x: x, y: y, width: width, height: height };\r\n}\n\n/**\r\n * Class that is responsible for computations of the content rectangle of\r\n * provided DOM element and for keeping track of it's changes.\r\n */\r\nvar ResizeObservation = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObservation.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n */\r\n function ResizeObservation(target) {\r\n /**\r\n * Broadcasted width of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastWidth = 0;\r\n /**\r\n * Broadcasted height of content rectangle.\r\n *\r\n * @type {number}\r\n */\r\n this.broadcastHeight = 0;\r\n /**\r\n * Reference to the last observed content rectangle.\r\n *\r\n * @private {DOMRectInit}\r\n */\r\n this.contentRect_ = createRectInit(0, 0, 0, 0);\r\n this.target = target;\r\n }\r\n /**\r\n * Updates content rectangle and tells whether it's width or height properties\r\n * have changed since the last broadcast.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObservation.prototype.isActive = function () {\r\n var rect = getContentRect(this.target);\r\n this.contentRect_ = rect;\r\n return (rect.width !== this.broadcastWidth ||\r\n rect.height !== this.broadcastHeight);\r\n };\r\n /**\r\n * Updates 'broadcastWidth' and 'broadcastHeight' properties with a data\r\n * from the corresponding properties of the last observed content rectangle.\r\n *\r\n * @returns {DOMRectInit} Last observed content rectangle.\r\n */\r\n ResizeObservation.prototype.broadcastRect = function () {\r\n var rect = this.contentRect_;\r\n this.broadcastWidth = rect.width;\r\n this.broadcastHeight = rect.height;\r\n return rect;\r\n };\r\n return ResizeObservation;\r\n}());\n\nvar ResizeObserverEntry = /** @class */ (function () {\r\n /**\r\n * Creates an instance of ResizeObserverEntry.\r\n *\r\n * @param {Element} target - Element that is being observed.\r\n * @param {DOMRectInit} rectInit - Data of the element's content rectangle.\r\n */\r\n function ResizeObserverEntry(target, rectInit) {\r\n var contentRect = createReadOnlyRect(rectInit);\r\n // According to the specification following properties are not writable\r\n // and are also not enumerable in the native implementation.\r\n //\r\n // Property accessors are not being used as they'd require to define a\r\n // private WeakMap storage which may cause memory leaks in browsers that\r\n // don't support this type of collections.\r\n defineConfigurable(this, { target: target, contentRect: contentRect });\r\n }\r\n return ResizeObserverEntry;\r\n}());\n\nvar ResizeObserverSPI = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback function that is invoked\r\n * when one of the observed elements changes it's content dimensions.\r\n * @param {ResizeObserverController} controller - Controller instance which\r\n * is responsible for the updates of observer.\r\n * @param {ResizeObserver} callbackCtx - Reference to the public\r\n * ResizeObserver instance which will be passed to callback function.\r\n */\r\n function ResizeObserverSPI(callback, controller, callbackCtx) {\r\n /**\r\n * Collection of resize observations that have detected changes in dimensions\r\n * of elements.\r\n *\r\n * @private {Array}\r\n */\r\n this.activeObservations_ = [];\r\n /**\r\n * Registry of the ResizeObservation instances.\r\n *\r\n * @private {Map}\r\n */\r\n this.observations_ = new MapShim();\r\n if (typeof callback !== 'function') {\r\n throw new TypeError('The callback provided as parameter 1 is not a function.');\r\n }\r\n this.callback_ = callback;\r\n this.controller_ = controller;\r\n this.callbackCtx_ = callbackCtx;\r\n }\r\n /**\r\n * Starts observing provided element.\r\n *\r\n * @param {Element} target - Element to be observed.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.observe = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is already being observed.\r\n if (observations.has(target)) {\r\n return;\r\n }\r\n observations.set(target, new ResizeObservation(target));\r\n this.controller_.addObserver(this);\r\n // Force the update of observations.\r\n this.controller_.refresh();\r\n };\r\n /**\r\n * Stops observing provided element.\r\n *\r\n * @param {Element} target - Element to stop observing.\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.unobserve = function (target) {\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n // Do nothing if current environment doesn't have the Element interface.\r\n if (typeof Element === 'undefined' || !(Element instanceof Object)) {\r\n return;\r\n }\r\n if (!(target instanceof getWindowOf(target).Element)) {\r\n throw new TypeError('parameter 1 is not of type \"Element\".');\r\n }\r\n var observations = this.observations_;\r\n // Do nothing if element is not being observed.\r\n if (!observations.has(target)) {\r\n return;\r\n }\r\n observations.delete(target);\r\n if (!observations.size) {\r\n this.controller_.removeObserver(this);\r\n }\r\n };\r\n /**\r\n * Stops observing all elements.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.disconnect = function () {\r\n this.clearActive();\r\n this.observations_.clear();\r\n this.controller_.removeObserver(this);\r\n };\r\n /**\r\n * Collects observation instances the associated element of which has changed\r\n * it's content rectangle.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.gatherActive = function () {\r\n var _this = this;\r\n this.clearActive();\r\n this.observations_.forEach(function (observation) {\r\n if (observation.isActive()) {\r\n _this.activeObservations_.push(observation);\r\n }\r\n });\r\n };\r\n /**\r\n * Invokes initial callback function with a list of ResizeObserverEntry\r\n * instances collected from active resize observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.broadcastActive = function () {\r\n // Do nothing if observer doesn't have active observations.\r\n if (!this.hasActive()) {\r\n return;\r\n }\r\n var ctx = this.callbackCtx_;\r\n // Create ResizeObserverEntry instance for every active observation.\r\n var entries = this.activeObservations_.map(function (observation) {\r\n return new ResizeObserverEntry(observation.target, observation.broadcastRect());\r\n });\r\n this.callback_.call(ctx, entries, ctx);\r\n this.clearActive();\r\n };\r\n /**\r\n * Clears the collection of active observations.\r\n *\r\n * @returns {void}\r\n */\r\n ResizeObserverSPI.prototype.clearActive = function () {\r\n this.activeObservations_.splice(0);\r\n };\r\n /**\r\n * Tells whether observer has active observations.\r\n *\r\n * @returns {boolean}\r\n */\r\n ResizeObserverSPI.prototype.hasActive = function () {\r\n return this.activeObservations_.length > 0;\r\n };\r\n return ResizeObserverSPI;\r\n}());\n\n// Registry of internal observers. If WeakMap is not available use current shim\r\n// for the Map collection as it has all required methods and because WeakMap\r\n// can't be fully polyfilled anyway.\r\nvar observers = typeof WeakMap !== 'undefined' ? new WeakMap() : new MapShim();\r\n/**\r\n * ResizeObserver API. Encapsulates the ResizeObserver SPI implementation\r\n * exposing only those methods and properties that are defined in the spec.\r\n */\r\nvar ResizeObserver = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of ResizeObserver.\r\n *\r\n * @param {ResizeObserverCallback} callback - Callback that is invoked when\r\n * dimensions of the observed elements change.\r\n */\r\n function ResizeObserver(callback) {\r\n if (!(this instanceof ResizeObserver)) {\r\n throw new TypeError('Cannot call a class as a function.');\r\n }\r\n if (!arguments.length) {\r\n throw new TypeError('1 argument required, but only 0 present.');\r\n }\r\n var controller = ResizeObserverController.getInstance();\r\n var observer = new ResizeObserverSPI(callback, controller, this);\r\n observers.set(this, observer);\r\n }\r\n return ResizeObserver;\r\n}());\r\n// Expose public methods of ResizeObserver.\r\n[\r\n 'observe',\r\n 'unobserve',\r\n 'disconnect'\r\n].forEach(function (method) {\r\n ResizeObserver.prototype[method] = function () {\r\n var _a;\r\n return (_a = observers.get(this))[method].apply(_a, arguments);\r\n };\r\n});\n\nvar index = (function () {\r\n // Export existing implementation if available.\r\n if (typeof global$1.ResizeObserver !== 'undefined') {\r\n return global$1.ResizeObserver;\r\n }\r\n return ResizeObserver;\r\n})();\n\nexport default index;\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport ResizeObserver from \"resize-observer-polyfill\"\nimport {\n NEVER,\n Observable,\n Subject,\n defer,\n filter,\n finalize,\n map,\n merge,\n of,\n shareReplay,\n startWith,\n switchMap,\n tap\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Element offset\n */\nexport interface ElementSize {\n width: number /* Element width */\n height: number /* Element height */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Resize observer entry subject\n */\nconst entry$ = new Subject()\n\n/**\n * Resize observer observable\n *\n * This observable will create a `ResizeObserver` on the first subscription\n * and will automatically terminate it when there are no more subscribers.\n * It's quite important to centralize observation in a single `ResizeObserver`,\n * as the performance difference can be quite dramatic, as the link shows.\n *\n * @see https://bit.ly/3iIYfEm - Google Groups on performance\n */\nconst observer$ = defer(() => of(\n new ResizeObserver(entries => {\n for (const entry of entries)\n entry$.next(entry)\n })\n))\n .pipe(\n switchMap(observer => merge(NEVER, of(observer))\n .pipe(\n finalize(() => observer.disconnect())\n )\n ),\n shareReplay(1)\n )\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element size\n *\n * @param el - Element\n *\n * @returns Element size\n */\nexport function getElementSize(\n el: HTMLElement\n): ElementSize {\n return {\n width: el.offsetWidth,\n height: el.offsetHeight\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch element size\n *\n * This function returns an observable that subscribes to a single internal\n * instance of `ResizeObserver` upon subscription, and emit resize events until\n * termination. Note that this function should not be called with the same\n * element twice, as the first unsubscription will terminate observation.\n *\n * Sadly, we can't use the `DOMRect` objects returned by the observer, because\n * we need the emitted values to be consistent with `getElementSize`, which will\n * return the used values (rounded) and not actual values (unrounded). Thus, we\n * use the `offset*` properties. See the linked GitHub issue.\n *\n * @see https://bit.ly/3m0k3he - GitHub issue\n *\n * @param el - Element\n *\n * @returns Element size observable\n */\nexport function watchElementSize(\n el: HTMLElement\n): Observable {\n return observer$\n .pipe(\n tap(observer => observer.observe(el)),\n switchMap(observer => entry$\n .pipe(\n filter(({ target }) => target === el),\n finalize(() => observer.unobserve(el)),\n map(() => getElementSize(el))\n )\n ),\n startWith(getElementSize(el))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { ElementSize } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve element content size (= scroll width and height)\n *\n * @param el - Element\n *\n * @returns Element content size\n */\nexport function getElementContentSize(\n el: HTMLElement\n): ElementSize {\n return {\n width: el.scrollWidth,\n height: el.scrollHeight\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n NEVER,\n Observable,\n Subject,\n defer,\n distinctUntilChanged,\n filter,\n finalize,\n map,\n merge,\n of,\n shareReplay,\n switchMap,\n tap\n} from \"rxjs\"\n\nimport {\n getElementContentSize,\n getElementSize,\n watchElementContentOffset\n} from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Intersection observer entry subject\n */\nconst entry$ = new Subject()\n\n/**\n * Intersection observer observable\n *\n * This observable will create an `IntersectionObserver` on first subscription\n * and will automatically terminate it when there are no more subscribers.\n *\n * @see https://bit.ly/3iIYfEm - Google Groups on performance\n */\nconst observer$ = defer(() => of(\n new IntersectionObserver(entries => {\n for (const entry of entries)\n entry$.next(entry)\n }, {\n threshold: 0\n })\n))\n .pipe(\n switchMap(observer => merge(NEVER, of(observer))\n .pipe(\n finalize(() => observer.disconnect())\n )\n ),\n shareReplay(1)\n )\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch element visibility\n *\n * @param el - Element\n *\n * @returns Element visibility observable\n */\nexport function watchElementVisibility(\n el: HTMLElement\n): Observable {\n return observer$\n .pipe(\n tap(observer => observer.observe(el)),\n switchMap(observer => entry$\n .pipe(\n filter(({ target }) => target === el),\n finalize(() => observer.unobserve(el)),\n map(({ isIntersecting }) => isIntersecting)\n )\n )\n )\n}\n\n/**\n * Watch element boundary\n *\n * This function returns an observable which emits whether the bottom content\n * boundary (= scroll offset) of an element is within a certain threshold.\n *\n * @param el - Element\n * @param threshold - Threshold\n *\n * @returns Element boundary observable\n */\nexport function watchElementBoundary(\n el: HTMLElement, threshold = 16\n): Observable {\n return watchElementContentOffset(el)\n .pipe(\n map(({ y }) => {\n const visible = getElementSize(el)\n const content = getElementContentSize(el)\n return y >= (\n content.height - visible.height - threshold\n )\n }),\n distinctUntilChanged()\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n fromEvent,\n map,\n startWith\n} from \"rxjs\"\n\nimport { getElement } from \"../element\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Toggle\n */\nexport type Toggle =\n | \"drawer\" /* Toggle for drawer */\n | \"search\" /* Toggle for search */\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Toggle map\n */\nconst toggles: Record = {\n drawer: getElement(\"[data-md-toggle=drawer]\"),\n search: getElement(\"[data-md-toggle=search]\")\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve the value of a toggle\n *\n * @param name - Toggle\n *\n * @returns Toggle value\n */\nexport function getToggle(name: Toggle): boolean {\n return toggles[name].checked\n}\n\n/**\n * Set toggle\n *\n * Simulating a click event seems to be the most cross-browser compatible way\n * of changing the value while also emitting a `change` event. Before, Material\n * used `CustomEvent` to programmatically change the value of a toggle, but this\n * is a much simpler and cleaner solution which doesn't require a polyfill.\n *\n * @param name - Toggle\n * @param value - Toggle value\n */\nexport function setToggle(name: Toggle, value: boolean): void {\n if (toggles[name].checked !== value)\n toggles[name].click()\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch toggle\n *\n * @param name - Toggle\n *\n * @returns Toggle value observable\n */\nexport function watchToggle(name: Toggle): Observable {\n const el = toggles[name]\n return fromEvent(el, \"change\")\n .pipe(\n map(() => el.checked),\n startWith(el.checked)\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n filter,\n fromEvent,\n map,\n share\n} from \"rxjs\"\n\nimport { getActiveElement } from \"../element\"\nimport { getToggle } from \"../toggle\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Keyboard mode\n */\nexport type KeyboardMode =\n | \"global\" /* Global */\n | \"search\" /* Search is open */\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Keyboard\n */\nexport interface Keyboard {\n mode: KeyboardMode /* Keyboard mode */\n type: string /* Key type */\n claim(): void /* Key claim */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Check whether an element may receive keyboard input\n *\n * @param el - Element\n * @param type - Key type\n *\n * @returns Test result\n */\nfunction isSusceptibleToKeyboard(\n el: HTMLElement, type: string\n): boolean {\n switch (el.constructor) {\n\n /* Input elements */\n case HTMLInputElement:\n /* @ts-expect-error - omit unnecessary type cast */\n if (el.type === \"radio\")\n return /^Arrow/.test(type)\n else\n return true\n\n /* Select element and textarea */\n case HTMLSelectElement:\n case HTMLTextAreaElement:\n return true\n\n /* Everything else */\n default:\n return el.isContentEditable\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch keyboard\n *\n * @returns Keyboard observable\n */\nexport function watchKeyboard(): Observable {\n return fromEvent(window, \"keydown\")\n .pipe(\n filter(ev => !(ev.metaKey || ev.ctrlKey)),\n map(ev => ({\n mode: getToggle(\"search\") ? \"search\" : \"global\",\n type: ev.key,\n claim() {\n ev.preventDefault()\n ev.stopPropagation()\n }\n } as Keyboard)),\n filter(({ mode, type }) => {\n if (mode === \"global\") {\n const active = getActiveElement()\n if (typeof active !== \"undefined\")\n return !isSusceptibleToKeyboard(active, type)\n }\n return true\n }),\n share()\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Subject } from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve location\n *\n * This function returns a `URL` object (and not `Location`) to normalize the\n * typings across the application. Furthermore, locations need to be tracked\n * without setting them and `Location` is a singleton which represents the\n * current location.\n *\n * @returns URL\n */\nexport function getLocation(): URL {\n return new URL(location.href)\n}\n\n/**\n * Set location\n *\n * @param url - URL to change to\n */\nexport function setLocation(url: URL): void {\n location.href = url.href\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch location\n *\n * @returns Location subject\n */\nexport function watchLocation(): Subject {\n return new Subject()\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { JSX as JSXInternal } from \"preact\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * HTML attributes\n */\ntype Attributes =\n & JSXInternal.HTMLAttributes\n & JSXInternal.SVGAttributes\n & Record\n\n/**\n * Child element\n */\ntype Child =\n | HTMLElement\n | Text\n | string\n | number\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Append a child node to an element\n *\n * @param el - Element\n * @param child - Child node(s)\n */\nfunction appendChild(el: HTMLElement, child: Child | Child[]): void {\n\n /* Handle primitive types (including raw HTML) */\n if (typeof child === \"string\" || typeof child === \"number\") {\n el.innerHTML += child.toString()\n\n /* Handle nodes */\n } else if (child instanceof Node) {\n el.appendChild(child)\n\n /* Handle nested children */\n } else if (Array.isArray(child)) {\n for (const node of child)\n appendChild(el, node)\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * JSX factory\n *\n * @template T - Element type\n *\n * @param tag - HTML tag\n * @param attributes - HTML attributes\n * @param children - Child elements\n *\n * @returns Element\n */\nexport function h(\n tag: T, attributes?: Attributes | null, ...children: Child[]\n): HTMLElementTagNameMap[T]\n\nexport function h(\n tag: string, attributes?: Attributes | null, ...children: Child[]\n): T\n\nexport function h(\n tag: string, attributes?: Attributes | null, ...children: Child[]\n): T {\n const el = document.createElement(tag)\n\n /* Set attributes, if any */\n if (attributes)\n for (const attr of Object.keys(attributes)) {\n if (typeof attributes[attr] === \"undefined\")\n continue\n\n /* Set default attribute or boolean */\n if (typeof attributes[attr] !== \"boolean\")\n el.setAttribute(attr, attributes[attr])\n else\n el.setAttribute(attr, \"\")\n }\n\n /* Append child nodes */\n for (const child of children)\n appendChild(el, child)\n\n /* Return element */\n return el as T\n}\n\n/* ----------------------------------------------------------------------------\n * Namespace\n * ------------------------------------------------------------------------- */\n\nexport declare namespace h {\n namespace JSX {\n type Element = HTMLElement\n type IntrinsicElements = JSXInternal.IntrinsicElements\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Truncate a string after the given number of characters\n *\n * This is not a very reasonable approach, since the summaries kind of suck.\n * It would be better to create something more intelligent, highlighting the\n * search occurrences and making a better summary out of it, but this note was\n * written three years ago, so who knows if we'll ever fix it.\n *\n * @param value - Value to be truncated\n * @param n - Number of characters\n *\n * @returns Truncated value\n */\nexport function truncate(value: string, n: number): string {\n let i = n\n if (value.length > i) {\n while (value[i] !== \" \" && --i > 0) { /* keep eating */ }\n return `${value.substring(0, i)}...`\n }\n return value\n}\n\n/**\n * Round a number for display with repository facts\n *\n * This is a reverse-engineered version of GitHub's weird rounding algorithm\n * for stars, forks and all other numbers. While all numbers below `1,000` are\n * returned as-is, bigger numbers are converted to fixed numbers:\n *\n * - `1,049` => `1k`\n * - `1,050` => `1.1k`\n * - `1,949` => `1.9k`\n * - `1,950` => `2k`\n *\n * @param value - Original value\n *\n * @returns Rounded value\n */\nexport function round(value: number): string {\n if (value > 999) {\n const digits = +((value - 950) % 1000 > 99)\n return `${((value + 0.000001) / 1000).toFixed(digits)}k`\n } else {\n return value.toString()\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n filter,\n fromEvent,\n map,\n shareReplay,\n startWith\n} from \"rxjs\"\n\nimport { getOptionalElement } from \"~/browser\"\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve location hash\n *\n * @returns Location hash\n */\nexport function getLocationHash(): string {\n return location.hash.substring(1)\n}\n\n/**\n * Set location hash\n *\n * Setting a new fragment identifier via `location.hash` will have no effect\n * if the value doesn't change. When a new fragment identifier is set, we want\n * the browser to target the respective element at all times, which is why we\n * use this dirty little trick.\n *\n * @param hash - Location hash\n */\nexport function setLocationHash(hash: string): void {\n const el = h(\"a\", { href: hash })\n el.addEventListener(\"click\", ev => ev.stopPropagation())\n el.click()\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch location hash\n *\n * @returns Location hash observable\n */\nexport function watchLocationHash(): Observable {\n return fromEvent(window, \"hashchange\")\n .pipe(\n map(getLocationHash),\n startWith(getLocationHash()),\n filter(hash => hash.length > 0),\n shareReplay(1)\n )\n}\n\n/**\n * Watch location target\n *\n * @returns Location target observable\n */\nexport function watchLocationTarget(): Observable {\n return watchLocationHash()\n .pipe(\n map(id => getOptionalElement(`[id=\"${id}\"]`)!),\n filter(el => typeof el !== \"undefined\")\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n fromEvent,\n fromEventPattern,\n map,\n merge,\n startWith,\n switchMap\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch media query\n *\n * Note that although `MediaQueryList.addListener` is deprecated we have to\n * use it, because it's the only way to ensure proper downward compatibility.\n *\n * @see https://bit.ly/3dUBH2m - GitHub issue\n *\n * @param query - Media query\n *\n * @returns Media observable\n */\nexport function watchMedia(query: string): Observable {\n const media = matchMedia(query)\n return fromEventPattern(next => (\n media.addListener(() => next(media.matches))\n ))\n .pipe(\n startWith(media.matches)\n )\n}\n\n/**\n * Watch print mode\n *\n * @returns Print observable\n */\nexport function watchPrint(): Observable {\n const media = matchMedia(\"print\")\n return merge(\n fromEvent(window, \"beforeprint\").pipe(map(() => true)),\n fromEvent(window, \"afterprint\").pipe(map(() => false))\n )\n .pipe(\n startWith(media.matches)\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Toggle an observable with a media observable\n *\n * @template T - Data type\n *\n * @param query$ - Media observable\n * @param factory - Observable factory\n *\n * @returns Toggled observable\n */\nexport function at(\n query$: Observable, factory: () => Observable\n): Observable {\n return query$\n .pipe(\n switchMap(active => active ? factory() : EMPTY)\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n catchError,\n from,\n map,\n of,\n shareReplay,\n switchMap,\n throwError\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch the given URL\n *\n * If the request fails (e.g. when dispatched from `file://` locations), the\n * observable will complete without emitting a value.\n *\n * @param url - Request URL\n * @param options - Options\n *\n * @returns Response observable\n */\nexport function request(\n url: URL | string, options: RequestInit = { credentials: \"same-origin\" }\n): Observable {\n return from(fetch(`${url}`, options))\n .pipe(\n catchError(() => EMPTY),\n switchMap(res => res.status !== 200\n ? throwError(() => new Error(res.statusText))\n : of(res)\n )\n )\n}\n\n/**\n * Fetch JSON from the given URL\n *\n * @template T - Data type\n *\n * @param url - Request URL\n * @param options - Options\n *\n * @returns Data observable\n */\nexport function requestJSON(\n url: URL | string, options?: RequestInit\n): Observable {\n return request(url, options)\n .pipe(\n switchMap(res => res.json()),\n shareReplay(1)\n )\n}\n\n/**\n * Fetch XML from the given URL\n *\n * @param url - Request URL\n * @param options - Options\n *\n * @returns Data observable\n */\nexport function requestXML(\n url: URL | string, options?: RequestInit\n): Observable {\n const dom = new DOMParser()\n return request(url, options)\n .pipe(\n switchMap(res => res.text()),\n map(res => dom.parseFromString(res, \"text/xml\")),\n shareReplay(1)\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n defer,\n finalize,\n fromEvent,\n map,\n merge,\n switchMap,\n take,\n throwError\n} from \"rxjs\"\n\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create and load a `script` element\n *\n * This function returns an observable that will emit when the script was\n * successfully loaded, or throw an error if it didn't.\n *\n * @param src - Script URL\n *\n * @returns Script observable\n */\nexport function watchScript(src: string): Observable {\n const script = h(\"script\", { src })\n return defer(() => {\n document.head.appendChild(script)\n return merge(\n fromEvent(script, \"load\"),\n fromEvent(script, \"error\")\n .pipe(\n switchMap(() => (\n throwError(() => new ReferenceError(`Invalid script: ${src}`))\n ))\n )\n )\n .pipe(\n map(() => undefined),\n finalize(() => document.head.removeChild(script)),\n take(1)\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n fromEvent,\n map,\n merge,\n startWith\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Viewport offset\n */\nexport interface ViewportOffset {\n x: number /* Horizontal offset */\n y: number /* Vertical offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve viewport offset\n *\n * On iOS Safari, viewport offset can be negative due to overflow scrolling.\n * As this may induce strange behaviors downstream, we'll just limit it to 0.\n *\n * @returns Viewport offset\n */\nexport function getViewportOffset(): ViewportOffset {\n return {\n x: Math.max(0, scrollX),\n y: Math.max(0, scrollY)\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport offset\n *\n * @returns Viewport offset observable\n */\nexport function watchViewportOffset(): Observable {\n return merge(\n fromEvent(window, \"scroll\", { passive: true }),\n fromEvent(window, \"resize\", { passive: true })\n )\n .pipe(\n map(getViewportOffset),\n startWith(getViewportOffset())\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n fromEvent,\n map,\n startWith\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Viewport size\n */\nexport interface ViewportSize {\n width: number /* Viewport width */\n height: number /* Viewport height */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve viewport size\n *\n * @returns Viewport size\n */\nexport function getViewportSize(): ViewportSize {\n return {\n width: innerWidth,\n height: innerHeight\n }\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport size\n *\n * @returns Viewport size observable\n */\nexport function watchViewportSize(): Observable {\n return fromEvent(window, \"resize\", { passive: true })\n .pipe(\n map(getViewportSize),\n startWith(getViewportSize())\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n combineLatest,\n map,\n shareReplay\n} from \"rxjs\"\n\nimport {\n ViewportOffset,\n watchViewportOffset\n} from \"../offset\"\nimport {\n ViewportSize,\n watchViewportSize\n} from \"../size\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Viewport\n */\nexport interface Viewport {\n offset: ViewportOffset /* Viewport offset */\n size: ViewportSize /* Viewport size */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport\n *\n * @returns Viewport observable\n */\nexport function watchViewport(): Observable {\n return combineLatest([\n watchViewportOffset(),\n watchViewportSize()\n ])\n .pipe(\n map(([offset, size]) => ({ offset, size })),\n shareReplay(1)\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n combineLatest,\n distinctUntilKeyChanged,\n map\n} from \"rxjs\"\n\nimport { Header } from \"~/components\"\n\nimport { getElementOffset } from \"../../element\"\nimport { Viewport } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch viewport relative to element\n *\n * @param el - Element\n * @param options - Options\n *\n * @returns Viewport observable\n */\nexport function watchViewportAt(\n el: HTMLElement, { viewport$, header$ }: WatchOptions\n): Observable {\n const size$ = viewport$\n .pipe(\n distinctUntilKeyChanged(\"size\")\n )\n\n /* Compute element offset */\n const offset$ = combineLatest([size$, header$])\n .pipe(\n map(() => getElementOffset(el))\n )\n\n /* Compute relative viewport, return hot observable */\n return combineLatest([header$, viewport$, offset$])\n .pipe(\n map(([{ height }, { offset, size }, { x, y }]) => ({\n offset: {\n x: offset.x - x,\n y: offset.y - y + height\n },\n size\n }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n fromEvent,\n map,\n share,\n switchMap,\n tap,\n throttle\n} from \"rxjs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Worker message\n */\nexport interface WorkerMessage {\n type: unknown /* Message type */\n data?: unknown /* Message data */\n}\n\n/**\n * Worker handler\n *\n * @template T - Message type\n */\nexport interface WorkerHandler<\n T extends WorkerMessage\n> {\n tx$: Subject /* Message transmission subject */\n rx$: Observable /* Message receive observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n *\n * @template T - Worker message type\n */\ninterface WatchOptions {\n tx$: Observable /* Message transmission observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch a web worker\n *\n * This function returns an observable that sends all values emitted by the\n * message observable to the web worker. Web worker communication is expected\n * to be bidirectional (request-response) and synchronous. Messages that are\n * emitted during a pending request are throttled, the last one is emitted.\n *\n * @param worker - Web worker\n * @param options - Options\n *\n * @returns Worker message observable\n */\nexport function watchWorker(\n worker: Worker, { tx$ }: WatchOptions\n): Observable {\n\n /* Intercept messages from worker-like objects */\n const rx$ = fromEvent(worker, \"message\")\n .pipe(\n map(({ data }) => data as T)\n )\n\n /* Send and receive messages, return hot observable */\n return tx$\n .pipe(\n throttle(() => rx$, { leading: true, trailing: true }),\n tap(message => worker.postMessage(message)),\n switchMap(() => rx$),\n share()\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { getElement, getLocation } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Feature flag\n */\nexport type Flag =\n | \"announce.dismiss\" /* Dismissable announcement bar */\n | \"content.code.annotate\" /* Code annotations */\n | \"content.tabs.link\" /* Link content tabs */\n | \"header.autohide\" /* Hide header */\n | \"navigation.expand\" /* Automatic expansion */\n | \"navigation.indexes\" /* Section pages */\n | \"navigation.instant\" /* Instant loading */\n | \"navigation.sections\" /* Section navigation */\n | \"navigation.tabs\" /* Tabs navigation */\n | \"navigation.tabs.sticky\" /* Tabs navigation (sticky) */\n | \"navigation.top\" /* Back-to-top button */\n | \"navigation.tracking\" /* Anchor tracking */\n | \"search.highlight\" /* Search highlighting */\n | \"search.share\" /* Search sharing */\n | \"search.suggest\" /* Search suggestions */\n | \"toc.integrate\" /* Integrated table of contents */\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Translation\n */\nexport type Translation =\n | \"clipboard.copy\" /* Copy to clipboard */\n | \"clipboard.copied\" /* Copied to clipboard */\n | \"search.config.lang\" /* Search language */\n | \"search.config.pipeline\" /* Search pipeline */\n | \"search.config.separator\" /* Search separator */\n | \"search.placeholder\" /* Search */\n | \"search.result.placeholder\" /* Type to start searching */\n | \"search.result.none\" /* No matching documents */\n | \"search.result.one\" /* 1 matching document */\n | \"search.result.other\" /* # matching documents */\n | \"search.result.more.one\" /* 1 more on this page */\n | \"search.result.more.other\" /* # more on this page */\n | \"search.result.term.missing\" /* Missing */\n | \"select.version.title\" /* Version selector */\n\n/**\n * Translations\n */\nexport type Translations = Record\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Versioning\n */\nexport interface Versioning {\n provider: \"mike\" /* Version provider */\n default?: string /* Default version */\n}\n\n/**\n * Configuration\n */\nexport interface Config {\n base: string /* Base URL */\n features: Flag[] /* Feature flags */\n translations: Translations /* Translations */\n search: string /* Search worker URL */\n version?: Versioning /* Versioning */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve global configuration and make base URL absolute\n */\nconst script = getElement(\"#__config\")\nconst config: Config = JSON.parse(script.textContent!)\nconfig.base = `${new URL(config.base, getLocation())}`\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve global configuration\n *\n * @returns Global configuration\n */\nexport function configuration(): Config {\n return config\n}\n\n/**\n * Check whether a feature flag is enabled\n *\n * @param flag - Feature flag\n *\n * @returns Test result\n */\nexport function feature(flag: Flag): boolean {\n return config.features.includes(flag)\n}\n\n/**\n * Retrieve the translation for the given key\n *\n * @param key - Key to be translated\n * @param value - Positional value, if any\n *\n * @returns Translation\n */\nexport function translation(\n key: Translation, value?: string | number\n): string {\n return typeof value !== \"undefined\"\n ? config.translations[key].replace(\"#\", value.toString())\n : config.translations[key]\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { getElement, getElements } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Component type\n */\nexport type ComponentType =\n | \"announce\" /* Announcement bar */\n | \"container\" /* Container */\n | \"consent\" /* Consent */\n | \"content\" /* Content */\n | \"dialog\" /* Dialog */\n | \"header\" /* Header */\n | \"header-title\" /* Header title */\n | \"header-topic\" /* Header topic */\n | \"main\" /* Main area */\n | \"outdated\" /* Version warning */\n | \"palette\" /* Color palette */\n | \"search\" /* Search */\n | \"search-query\" /* Search input */\n | \"search-result\" /* Search results */\n | \"search-share\" /* Search sharing */\n | \"search-suggest\" /* Search suggestions */\n | \"sidebar\" /* Sidebar */\n | \"skip\" /* Skip link */\n | \"source\" /* Repository information */\n | \"tabs\" /* Navigation tabs */\n | \"toc\" /* Table of contents */\n | \"top\" /* Back-to-top button */\n\n/**\n * Component\n *\n * @template T - Component type\n * @template U - Reference type\n */\nexport type Component<\n T extends {} = {},\n U extends HTMLElement = HTMLElement\n> =\n T & {\n ref: U /* Component reference */\n }\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Component type map\n */\ninterface ComponentTypeMap {\n \"announce\": HTMLElement /* Announcement bar */\n \"container\": HTMLElement /* Container */\n \"consent\": HTMLElement /* Consent */\n \"content\": HTMLElement /* Content */\n \"dialog\": HTMLElement /* Dialog */\n \"header\": HTMLElement /* Header */\n \"header-title\": HTMLElement /* Header title */\n \"header-topic\": HTMLElement /* Header topic */\n \"main\": HTMLElement /* Main area */\n \"outdated\": HTMLElement /* Version warning */\n \"palette\": HTMLElement /* Color palette */\n \"search\": HTMLElement /* Search */\n \"search-query\": HTMLInputElement /* Search input */\n \"search-result\": HTMLElement /* Search results */\n \"search-share\": HTMLAnchorElement /* Search sharing */\n \"search-suggest\": HTMLElement /* Search suggestions */\n \"sidebar\": HTMLElement /* Sidebar */\n \"skip\": HTMLAnchorElement /* Skip link */\n \"source\": HTMLAnchorElement /* Repository information */\n \"tabs\": HTMLElement /* Navigation tabs */\n \"toc\": HTMLElement /* Table of contents */\n \"top\": HTMLAnchorElement /* Back-to-top button */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Retrieve the element for a given component or throw a reference error\n *\n * @template T - Component type\n *\n * @param type - Component type\n * @param node - Node of reference\n *\n * @returns Element\n */\nexport function getComponentElement(\n type: T, node: ParentNode = document\n): ComponentTypeMap[T] {\n return getElement(`[data-md-component=${type}]`, node)\n}\n\n/**\n * Retrieve all elements for a given component\n *\n * @template T - Component type\n *\n * @param type - Component type\n * @param node - Node of reference\n *\n * @returns Elements\n */\nexport function getComponentElements(\n type: T, node: ParentNode = document\n): ComponentTypeMap[T][] {\n return getElements(`[data-md-component=${type}]`, node)\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n Subject,\n defer,\n finalize,\n fromEvent,\n map,\n startWith,\n tap\n} from \"rxjs\"\n\nimport { feature } from \"~/_\"\nimport { getElement } from \"~/browser\"\n\nimport { Component } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Announcement bar\n */\nexport interface Announce {\n hash: number /* Content hash */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch announcement bar\n *\n * @param el - Announcement bar element\n *\n * @returns Announcement bar observable\n */\nexport function watchAnnounce(\n el: HTMLElement\n): Observable {\n const button = getElement(\".md-typeset > :first-child\", el)\n return fromEvent(button, \"click\", { once: true })\n .pipe(\n map(() => getElement(\".md-typeset\", el)),\n map(content => ({ hash: __md_hash(content.innerHTML) }))\n )\n}\n\n/**\n * Mount announcement bar\n *\n * @param el - Announcement bar element\n *\n * @returns Announcement bar component observable\n */\nexport function mountAnnounce(\n el: HTMLElement\n): Observable> {\n if (!feature(\"announce.dismiss\") || !el.childElementCount)\n return EMPTY\n\n /* Mount component on subscription */\n return defer(() => {\n const push$ = new Subject()\n push$\n .pipe(\n startWith({ hash: __md_get(\"__announce\") })\n )\n .subscribe(({ hash }) => {\n if (hash && hash === (__md_get(\"__announce\") ?? hash)) {\n el.hidden = true\n\n /* Persist preference in local storage */\n __md_set(\"__announce\", hash)\n }\n })\n\n /* Create and return component */\n return watchAnnounce(el)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n finalize,\n map,\n tap\n} from \"rxjs\"\n\nimport { Component } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Consent\n */\nexport interface Consent {\n hidden: boolean /* Consent is hidden */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n target$: Observable /* Target observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n target$: Observable /* Target observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch consent\n *\n * @param el - Consent element\n * @param options - Options\n *\n * @returns Consent observable\n */\nexport function watchConsent(\n el: HTMLElement, { target$ }: WatchOptions\n): Observable {\n return target$\n .pipe(\n map(target => ({ hidden: target !== el }))\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Mount consent\n *\n * @param el - Consent element\n * @param options - Options\n *\n * @returns Consent component observable\n */\nexport function mountConsent(\n el: HTMLElement, options: MountOptions\n): Observable> {\n const internal$ = new Subject()\n internal$.subscribe(({ hidden }) => {\n el.hidden = hidden\n })\n\n /* Create and return component */\n return watchConsent(el, options)\n .pipe(\n tap(state => internal$.next(state)),\n finalize(() => internal$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport ClipboardJS from \"clipboard\"\nimport {\n EMPTY,\n Observable,\n Subject,\n defer,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n filter,\n finalize,\n map,\n mergeWith,\n switchMap,\n take,\n takeLast,\n takeUntil,\n tap\n} from \"rxjs\"\n\nimport { feature } from \"~/_\"\nimport {\n getElementContentSize,\n watchElementSize,\n watchElementVisibility\n} from \"~/browser\"\nimport { renderClipboardButton } from \"~/templates\"\n\nimport { Component } from \"../../../_\"\nimport {\n Annotation,\n mountAnnotationList\n} from \"../../annotation\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Code block\n */\nexport interface CodeBlock {\n scrollable: boolean /* Code block overflows */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n print$: Observable /* Media print observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Global sequence number for Clipboard.js integration\n */\nlet sequence = 0\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Find candidate list element directly following a code block\n *\n * @param el - Code block element\n *\n * @returns List element or nothing\n */\nfunction findCandidateList(el: HTMLElement): HTMLElement | undefined {\n if (el.nextElementSibling) {\n const sibling = el.nextElementSibling as HTMLElement\n if (sibling.tagName === \"OL\")\n return sibling\n\n /* Skip empty paragraphs - see https://bit.ly/3r4ZJ2O */\n else if (sibling.tagName === \"P\" && !sibling.children.length)\n return findCandidateList(sibling)\n }\n\n /* Everything else */\n return undefined\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch code block\n *\n * This function monitors size changes of the viewport, as well as switches of\n * content tabs with embedded code blocks, as both may trigger overflow.\n *\n * @param el - Code block element\n *\n * @returns Code block observable\n */\nexport function watchCodeBlock(\n el: HTMLElement\n): Observable {\n return watchElementSize(el)\n .pipe(\n map(({ width }) => {\n const content = getElementContentSize(el)\n return {\n scrollable: content.width > width\n }\n }),\n distinctUntilKeyChanged(\"scrollable\")\n )\n}\n\n/**\n * Mount code block\n *\n * This function ensures that an overflowing code block is focusable through\n * keyboard, so it can be scrolled without a mouse to improve on accessibility.\n * Furthermore, if code annotations are enabled, they are mounted if and only\n * if the code block is currently visible, e.g., not in a hidden content tab.\n *\n * @param el - Code block element\n * @param options - Options\n *\n * @returns Code block and annotation component observable\n */\nexport function mountCodeBlock(\n el: HTMLElement, options: MountOptions\n): Observable> {\n const { matches: hover } = matchMedia(\"(hover)\")\n\n /* Defer mounting of code block - see https://bit.ly/3vHVoVD */\n const factory$ = defer(() => {\n const push$ = new Subject()\n push$.subscribe(({ scrollable }) => {\n if (scrollable && hover)\n el.setAttribute(\"tabindex\", \"0\")\n else\n el.removeAttribute(\"tabindex\")\n })\n\n /* Render button for Clipboard.js integration */\n if (ClipboardJS.isSupported()) {\n const parent = el.closest(\"pre\")!\n parent.id = `__code_${++sequence}`\n parent.insertBefore(\n renderClipboardButton(parent.id),\n el\n )\n }\n\n /* Handle code annotations */\n const container = el.closest(\".highlight\")\n if (container instanceof HTMLElement) {\n const list = findCandidateList(container)\n\n /* Mount code annotations, if enabled */\n if (typeof list !== \"undefined\" && (\n container.classList.contains(\"annotate\") ||\n feature(\"content.code.annotate\")\n )) {\n const annotations$ = mountAnnotationList(list, el, options)\n\n /* Create and return component */\n return watchCodeBlock(el)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state })),\n mergeWith(\n watchElementSize(container)\n .pipe(\n takeUntil(push$.pipe(takeLast(1))),\n map(({ width, height }) => width && height),\n distinctUntilChanged(),\n switchMap(active => active ? annotations$ : EMPTY)\n )\n )\n )\n }\n }\n\n /* Create and return component */\n return watchCodeBlock(el)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n\n /* Mount code block on first sight */\n return watchElementVisibility(el)\n .pipe(\n filter(visible => visible),\n take(1),\n switchMap(() => factory$)\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render an empty annotation\n *\n * @param id - Annotation identifier\n *\n * @returns Element\n */\nexport function renderAnnotation(id: number): HTMLElement {\n return (\n \n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { translation } from \"~/_\"\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a 'copy-to-clipboard' button\n *\n * @param id - Unique identifier\n *\n * @returns Element\n */\nexport function renderClipboardButton(id: string): HTMLElement {\n return (\n code`}\n >\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { ComponentChild } from \"preact\"\n\nimport { feature, translation } from \"~/_\"\nimport {\n SearchDocument,\n SearchMetadata,\n SearchResultItem\n} from \"~/integrations/search\"\nimport { h, truncate } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Render flag\n */\nconst enum Flag {\n TEASER = 1, /* Render teaser */\n PARENT = 2 /* Render as parent */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper function\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a search document\n *\n * @param document - Search document\n * @param flag - Render flags\n *\n * @returns Element\n */\nfunction renderSearchDocument(\n document: SearchDocument & SearchMetadata, flag: Flag\n): HTMLElement {\n const parent = flag & Flag.PARENT\n const teaser = flag & Flag.TEASER\n\n /* Render missing query terms */\n const missing = Object.keys(document.terms)\n .filter(key => !document.terms[key])\n .reduce((list, key) => [\n ...list, {key}, \" \"\n ], [])\n .slice(0, -1)\n\n /* Assemble query string for highlighting */\n const url = new URL(document.location)\n if (feature(\"search.highlight\"))\n url.searchParams.set(\"h\", Object.entries(document.terms)\n .filter(([, match]) => match)\n .reduce((highlight, [value]) => `${highlight} ${value}`.trim(), \"\")\n )\n\n /* Render article or section, depending on flags */\n return (\n \n \n {parent > 0 &&
    }\n

    {document.title}

    \n {teaser > 0 && document.text.length > 0 &&\n

    \n {truncate(document.text, 320)}\n

    \n }\n {document.tags && document.tags.map(tag => (\n {tag}\n ))}\n {teaser > 0 && missing.length > 0 &&\n

    \n {translation(\"search.result.term.missing\")}: {...missing}\n

    \n }\n \n
    \n )\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a search result\n *\n * @param result - Search result\n *\n * @returns Element\n */\nexport function renderSearchResultItem(\n result: SearchResultItem\n): HTMLElement {\n const threshold = result[0].score\n const docs = [...result]\n\n /* Find and extract parent article */\n const parent = docs.findIndex(doc => !doc.location.includes(\"#\"))\n const [article] = docs.splice(parent, 1)\n\n /* Determine last index above threshold */\n let index = docs.findIndex(doc => doc.score < threshold)\n if (index === -1)\n index = docs.length\n\n /* Partition sections */\n const best = docs.slice(0, index)\n const more = docs.slice(index)\n\n /* Render children */\n const children = [\n renderSearchDocument(article, Flag.PARENT | +(!parent && index === 0)),\n ...best.map(section => renderSearchDocument(section, Flag.TEASER)),\n ...more.length ? [\n
    \n \n {more.length > 0 && more.length === 1\n ? translation(\"search.result.more.one\")\n : translation(\"search.result.more.other\", more.length)\n }\n \n {...more.map(section => renderSearchDocument(section, Flag.TEASER))}\n
    \n ] : []\n ]\n\n /* Render search result */\n return (\n
  • \n {children}\n
  • \n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SourceFacts } from \"~/components\"\nimport { h, round } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render repository facts\n *\n * @param facts - Repository facts\n *\n * @returns Element\n */\nexport function renderSourceFacts(facts: SourceFacts): HTMLElement {\n return (\n
      \n {Object.entries(facts).map(([key, value]) => (\n
    • \n {typeof value === \"number\" ? round(value) : value}\n
    • \n ))}\n
    \n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Tabbed control type\n */\ntype TabbedControlType =\n | \"prev\"\n | \"next\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render control for content tabs\n *\n * @param type - Control type\n *\n * @returns Element\n */\nexport function renderTabbedControl(\n type: TabbedControlType\n): HTMLElement {\n const classes = `tabbed-control tabbed-control--${type}`\n return (\n \n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a table inside a wrapper to improve scrolling on mobile\n *\n * @param table - Table element\n *\n * @returns Element\n */\nexport function renderTable(table: HTMLElement): HTMLElement {\n return (\n
    \n
    \n {table}\n
    \n
    \n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { configuration, translation } from \"~/_\"\nimport { h } from \"~/utilities\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Version\n */\nexport interface Version {\n version: string /* Version identifier */\n title: string /* Version title */\n aliases: string[] /* Version aliases */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a version\n *\n * @param version - Version\n *\n * @returns Element\n */\nfunction renderVersion(version: Version): HTMLElement {\n const config = configuration()\n\n /* Ensure trailing slash, see https://bit.ly/3rL5u3f */\n const url = new URL(`../${version.version}/`, config.base)\n return (\n
  • \n \n {version.title}\n \n
  • \n )\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Render a version selector\n *\n * @param versions - Versions\n * @param active - Active version\n *\n * @returns Element\n */\nexport function renderVersionSelector(\n versions: Version[], active: Version\n): HTMLElement {\n return (\n
    \n \n {active.title}\n \n
      \n {versions.map(renderVersion)}\n
    \n
    \n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n Subject,\n animationFrameScheduler,\n combineLatest,\n defer,\n finalize,\n fromEvent,\n map,\n switchMap,\n take,\n takeLast,\n takeUntil,\n tap,\n throttleTime\n} from \"rxjs\"\n\nimport {\n ElementOffset,\n getElement,\n getElementSize,\n watchElementContentOffset,\n watchElementFocus,\n watchElementOffset,\n watchElementVisibility\n} from \"~/browser\"\n\nimport { Component } from \"../../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Annotation\n */\nexport interface Annotation {\n active: boolean /* Annotation is active */\n offset: ElementOffset /* Annotation offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch annotation\n *\n * @param el - Annotation element\n * @param container - Containing element\n *\n * @returns Annotation observable\n */\nexport function watchAnnotation(\n el: HTMLElement, container: HTMLElement\n): Observable {\n const offset$ = defer(() => combineLatest([\n watchElementOffset(el),\n watchElementContentOffset(container)\n ]))\n .pipe(\n map(([{ x, y }, scroll]) => {\n const { width } = getElementSize(el)\n return ({\n x: x - scroll.x + width / 2,\n y: y - scroll.y\n })\n })\n )\n\n /* Actively watch annotation on focus */\n return watchElementFocus(el)\n .pipe(\n switchMap(active => offset$\n .pipe(\n map(offset => ({ active, offset })),\n take(+!active || Infinity)\n )\n )\n )\n}\n\n/**\n * Mount annotation\n *\n * @param el - Annotation element\n * @param container - Containing element\n *\n * @returns Annotation component observable\n */\nexport function mountAnnotation(\n el: HTMLElement, container: HTMLElement\n): Observable> {\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe({\n\n /* Handle emission */\n next({ offset }) {\n el.style.setProperty(\"--md-tooltip-x\", `${offset.x}px`)\n el.style.setProperty(\"--md-tooltip-y\", `${offset.y}px`)\n },\n\n /* Handle complete */\n complete() {\n el.style.removeProperty(\"--md-tooltip-x\")\n el.style.removeProperty(\"--md-tooltip-y\")\n }\n })\n\n /* Start animation only when annotation is visible */\n const done$ = push$.pipe(takeLast(1))\n watchElementVisibility(el)\n .pipe(\n takeUntil(done$)\n )\n .subscribe(visible => {\n el.toggleAttribute(\"data-md-visible\", visible)\n })\n\n /* Track relative origin of tooltip */\n push$\n .pipe(\n throttleTime(500, animationFrameScheduler),\n map(() => container.getBoundingClientRect()),\n map(({ x }) => x)\n )\n .subscribe({\n\n /* Handle emission */\n next(origin) {\n if (origin)\n el.style.setProperty(\"--md-tooltip-0\", `${-origin}px`)\n else\n el.style.removeProperty(\"--md-tooltip-0\")\n },\n\n /* Handle complete */\n complete() {\n el.style.removeProperty(\"--md-tooltip-0\")\n }\n })\n\n /* Close open annotation on click */\n const index = getElement(\":scope > :last-child\", el)\n const blur$ = fromEvent(index, \"mousedown\", { once: true })\n push$\n .pipe(\n switchMap(({ active }) => active ? blur$ : EMPTY),\n tap(ev => ev.preventDefault())\n )\n .subscribe(() => el.blur())\n\n /* Create and return component */\n return watchAnnotation(el, container)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n Subject,\n defer,\n finalize,\n merge,\n share,\n takeLast,\n takeUntil\n} from \"rxjs\"\n\nimport {\n getElement,\n getElements,\n getOptionalElement\n} from \"~/browser\"\nimport { renderAnnotation } from \"~/templates\"\n\nimport { Component } from \"../../../_\"\nimport {\n Annotation,\n mountAnnotation\n} from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n print$: Observable /* Media print observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Find all annotation markers in the given code block\n *\n * @param container - Containing element\n *\n * @returns Annotation markers\n */\nfunction findAnnotationMarkers(container: HTMLElement): Text[] {\n const markers: Text[] = []\n for (const comment of getElements(\".c, .c1, .cm\", container)) {\n let match: RegExpExecArray | null\n\n /* Split text at marker and add to list */\n let text = comment.firstChild as Text\n if (text instanceof Text)\n while ((match = /\\((\\d+)\\)/.exec(text.textContent!))) {\n const marker = text.splitText(match.index)\n text = marker.splitText(match[0].length)\n markers.push(marker)\n }\n }\n return markers\n}\n\n/**\n * Swap the child nodes of two elements\n *\n * @param source - Source element\n * @param target - Target element\n */\nfunction swap(source: HTMLElement, target: HTMLElement): void {\n target.append(...Array.from(source.childNodes))\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount annotation list\n *\n * This function analyzes the containing code block and checks for markers\n * referring to elements in the given annotation list. If no markers are found,\n * the list is left untouched. Otherwise, list elements are rendered as\n * annotations inside the code block.\n *\n * @param el - Annotation list element\n * @param container - Containing element\n * @param options - Options\n *\n * @returns Annotation component observable\n */\nexport function mountAnnotationList(\n el: HTMLElement, container: HTMLElement, { print$ }: MountOptions\n): Observable> {\n\n /* Find and replace all markers with empty annotations */\n const annotations = new Map()\n for (const marker of findAnnotationMarkers(container)) {\n const [, id] = marker.textContent!.match(/\\((\\d+)\\)/)!\n if (getOptionalElement(`li:nth-child(${id})`, el)) {\n annotations.set(+id, renderAnnotation(+id))\n marker.replaceWith(annotations.get(+id)!)\n }\n }\n\n /* Keep list if there are no annotations to render */\n if (annotations.size === 0)\n return EMPTY\n\n /* Create and return component */\n return defer(() => {\n const done$ = new Subject()\n\n /* Handle print mode - see https://bit.ly/3rgPdpt */\n print$\n .pipe(\n takeUntil(done$.pipe(takeLast(1)))\n )\n .subscribe(active => {\n el.hidden = !active\n\n /* Show annotations in code block or list (print) */\n for (const [id, annotation] of annotations) {\n const inner = getElement(\".md-typeset\", annotation)\n const child = getElement(`li:nth-child(${id})`, el)\n if (!active)\n swap(child, inner)\n else\n swap(inner, child)\n }\n })\n\n /* Create and return component */\n return merge(...[...annotations]\n .map(([, annotation]) => (\n mountAnnotation(annotation, container)\n ))\n )\n .pipe(\n finalize(() => done$.complete()),\n share()\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n map,\n of,\n shareReplay,\n tap\n} from \"rxjs\"\n\nimport { watchScript } from \"~/browser\"\nimport { h } from \"~/utilities\"\n\nimport { Component } from \"../../../_\"\n\nimport themeCSS from \"./index.css\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mermaid diagram\n */\nexport interface Mermaid {}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Mermaid instance observable\n */\nlet mermaid$: Observable\n\n/**\n * Global sequence number for diagrams\n */\nlet sequence = 0\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch Mermaid script\n *\n * @returns Mermaid scripts observable\n */\nfunction fetchScripts(): Observable {\n return typeof mermaid === \"undefined\" || mermaid instanceof Element\n ? watchScript(\"https://unpkg.com/mermaid@9.0.1/dist/mermaid.min.js\")\n : of(undefined)\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount Mermaid diagram\n *\n * @param el - Code block element\n *\n * @returns Mermaid diagram component observable\n */\nexport function mountMermaid(\n el: HTMLElement\n): Observable> {\n el.classList.remove(\"mermaid\") // Hack: mitigate https://bit.ly/3CiN6Du\n mermaid$ ||= fetchScripts()\n .pipe(\n tap(() => mermaid.initialize({\n startOnLoad: false,\n themeCSS\n })),\n map(() => undefined),\n shareReplay(1)\n )\n\n /* Render diagram */\n mermaid$.subscribe(() => {\n el.classList.add(\"mermaid\") // Hack: mitigate https://bit.ly/3CiN6Du\n const id = `__mermaid_${sequence++}`\n const host = h(\"div\", { class: \"mermaid\" })\n mermaid.mermaidAPI.render(id, el.textContent, (svg: string) => {\n\n /* Create a shadow root and inject diagram */\n const shadow = host.attachShadow({ mode: \"closed\" })\n shadow.innerHTML = svg\n\n /* Replace code block with diagram */\n el.replaceWith(host)\n })\n })\n\n /* Create and return component */\n return mermaid$\n .pipe(\n map(() => ({ ref: el }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n defer,\n filter,\n finalize,\n map,\n merge,\n tap\n} from \"rxjs\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Details\n */\nexport interface Details {\n action: \"open\" | \"close\" /* Details state */\n reveal?: boolean /* Details is revealed */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n target$: Observable /* Location target observable */\n print$: Observable /* Media print observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n target$: Observable /* Location target observable */\n print$: Observable /* Media print observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch details\n *\n * @param el - Details element\n * @param options - Options\n *\n * @returns Details observable\n */\nexport function watchDetails(\n el: HTMLDetailsElement, { target$, print$ }: WatchOptions\n): Observable
    {\n let open = true\n return merge(\n\n /* Open and focus details on location target */\n target$\n .pipe(\n map(target => target.closest(\"details:not([open])\")!),\n filter(details => el === details),\n map(() => ({\n action: \"open\", reveal: true\n }) as Details)\n ),\n\n /* Open details on print and close afterwards */\n print$\n .pipe(\n filter(active => active || !open),\n tap(() => open = el.open),\n map(active => ({\n action: active ? \"open\" : \"close\"\n }) as Details)\n )\n )\n}\n\n/**\n * Mount details\n *\n * This function ensures that `details` tags are opened on anchor jumps and\n * prior to printing, so the whole content of the page is visible.\n *\n * @param el - Details element\n * @param options - Options\n *\n * @returns Details component observable\n */\nexport function mountDetails(\n el: HTMLDetailsElement, options: MountOptions\n): Observable> {\n return defer(() => {\n const push$ = new Subject
    ()\n push$.subscribe(({ action, reveal }) => {\n if (action === \"open\")\n el.setAttribute(\"open\", \"\")\n else\n el.removeAttribute(\"open\")\n if (reveal)\n el.scrollIntoView()\n })\n\n /* Create and return component */\n return watchDetails(el, options)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, of } from \"rxjs\"\n\nimport { renderTable } from \"~/templates\"\nimport { h } from \"~/utilities\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Data table\n */\nexport interface DataTable {}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Sentinel for replacement\n */\nconst sentinel = h(\"table\")\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount data table\n *\n * This function wraps a data table in another scrollable container, so it can\n * be smoothly scrolled on smaller screen sizes and won't break the layout.\n *\n * @param el - Data table element\n *\n * @returns Data table component observable\n */\nexport function mountDataTable(\n el: HTMLElement\n): Observable> {\n el.replaceWith(sentinel)\n sentinel.replaceWith(renderTable(el))\n\n /* Create and return component */\n return of({ ref: el })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n animationFrameScheduler,\n asyncScheduler,\n auditTime,\n combineLatest,\n defer,\n finalize,\n fromEvent,\n map,\n merge,\n skip,\n startWith,\n subscribeOn,\n takeLast,\n takeUntil,\n tap\n} from \"rxjs\"\n\nimport { feature } from \"~/_\"\nimport {\n getElement,\n getElementContentOffset,\n getElementContentSize,\n getElementOffset,\n getElementSize,\n getElements,\n watchElementContentOffset,\n watchElementSize\n} from \"~/browser\"\nimport { renderTabbedControl } from \"~/templates\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Content tabs\n */\nexport interface ContentTabs {\n active: HTMLLabelElement /* Active tab label */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch content tabs\n *\n * @param el - Content tabs element\n *\n * @returns Content tabs observable\n */\nexport function watchContentTabs(\n el: HTMLElement\n): Observable {\n const inputs = getElements(\":scope > input\", el)\n const initial = inputs.find(input => input.checked) || inputs[0]\n return merge(...inputs.map(input => fromEvent(input, \"change\")\n .pipe(\n map(() => getElement(`label[for=\"${input.id}\"]`))\n )\n ))\n .pipe(\n startWith(getElement(`label[for=\"${initial.id}\"]`)),\n map(active => ({ active }))\n )\n}\n\n/**\n * Mount content tabs\n *\n * This function scrolls the active tab into view. While this functionality is\n * provided by browsers as part of `scrollInfoView`, browsers will always also\n * scroll the vertical axis, which we do not want. Thus, we decided to provide\n * this functionality ourselves.\n *\n * @param el - Content tabs element\n *\n * @returns Content tabs component observable\n */\nexport function mountContentTabs(\n el: HTMLElement\n): Observable> {\n\n /* Render content tab previous button for pagination */\n const prev = renderTabbedControl(\"prev\")\n el.append(prev)\n\n /* Render content tab next button for pagination */\n const next = renderTabbedControl(\"next\")\n el.append(next)\n\n /* Mount component on subscription */\n const container = getElement(\".tabbed-labels\", el)\n return defer(() => {\n const push$ = new Subject()\n const done$ = push$.pipe(takeLast(1))\n combineLatest([push$, watchElementSize(el)])\n .pipe(\n auditTime(1, animationFrameScheduler),\n takeUntil(done$)\n )\n .subscribe({\n\n /* Handle emission */\n next([{ active }, size]) {\n const offset = getElementOffset(active)\n const { width } = getElementSize(active)\n\n /* Set tab indicator offset and width */\n el.style.setProperty(\"--md-indicator-x\", `${offset.x}px`)\n el.style.setProperty(\"--md-indicator-width\", `${width}px`)\n\n /* Scroll container to active content tab */\n const content = getElementContentOffset(container)\n if (\n offset.x < content.x ||\n offset.x + width > content.x + size.width\n )\n container.scrollTo({\n left: Math.max(0, offset.x - 16),\n behavior: \"smooth\"\n })\n },\n\n /* Handle complete */\n complete() {\n el.style.removeProperty(\"--md-indicator-x\")\n el.style.removeProperty(\"--md-indicator-width\")\n }\n })\n\n /* Hide content tab buttons on borders */\n combineLatest([\n watchElementContentOffset(container),\n watchElementSize(container)\n ])\n .pipe(\n takeUntil(done$)\n )\n .subscribe(([offset, size]) => {\n const content = getElementContentSize(container)\n prev.hidden = offset.x < 16\n next.hidden = offset.x > content.width - size.width - 16\n })\n\n /* Paginate content tab container on click */\n merge(\n fromEvent(prev, \"click\").pipe(map(() => -1)),\n fromEvent(next, \"click\").pipe(map(() => +1))\n )\n .pipe(\n takeUntil(done$)\n )\n .subscribe(direction => {\n const { width } = getElementSize(container)\n container.scrollBy({\n left: width * direction,\n behavior: \"smooth\"\n })\n })\n\n /* Set up linking of content tabs, if enabled */\n if (feature(\"content.tabs.link\"))\n push$.pipe(skip(1))\n .subscribe(({ active }) => {\n const tab = active.innerText.trim()\n for (const set of getElements(\"[data-tabs]\"))\n for (const input of getElements(\n \":scope > input\", set\n )) {\n const label = getElement(`label[for=\"${input.id}\"]`)\n if (label.innerText.trim() === tab) {\n input.click()\n break\n }\n }\n\n /* Persist active tabs in local storage */\n const tabs = __md_get(\"__tabs\") || []\n __md_set(\"__tabs\", [...new Set([tab, ...tabs])])\n })\n\n /* Create and return component */\n return watchContentTabs(el)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n .pipe(\n subscribeOn(asyncScheduler)\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Observable, merge } from \"rxjs\"\n\nimport { getElements } from \"~/browser\"\n\nimport { Component } from \"../../_\"\nimport { Annotation } from \"../annotation\"\nimport {\n CodeBlock,\n Mermaid,\n mountCodeBlock,\n mountMermaid\n} from \"../code\"\nimport {\n Details,\n mountDetails\n} from \"../details\"\nimport {\n DataTable,\n mountDataTable\n} from \"../table\"\nimport {\n ContentTabs,\n mountContentTabs\n} from \"../tabs\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Content\n */\nexport type Content =\n | Annotation\n | ContentTabs\n | CodeBlock\n | Mermaid\n | DataTable\n | Details\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n target$: Observable /* Location target observable */\n print$: Observable /* Media print observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount content\n *\n * This function mounts all components that are found in the content of the\n * actual article, including code blocks, data tables and details.\n *\n * @param el - Content element\n * @param options - Options\n *\n * @returns Content component observable\n */\nexport function mountContent(\n el: HTMLElement, { target$, print$ }: MountOptions\n): Observable> {\n return merge(\n\n /* Code blocks */\n ...getElements(\"pre:not(.mermaid) > code\", el)\n .map(child => mountCodeBlock(child, { print$ })),\n\n /* Mermaid diagrams */\n ...getElements(\"pre.mermaid\", el)\n .map(child => mountMermaid(child)),\n\n /* Data tables */\n ...getElements(\"table:not([class])\", el)\n .map(child => mountDataTable(child)),\n\n /* Details */\n ...getElements(\"details\", el)\n .map(child => mountDetails(child, { target$, print$ })),\n\n /* Content tabs */\n ...getElements(\"[data-tabs]\", el)\n .map(child => mountContentTabs(child))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n defer,\n delay,\n finalize,\n map,\n merge,\n of,\n switchMap,\n tap\n} from \"rxjs\"\n\nimport { getElement } from \"~/browser\"\n\nimport { Component } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Dialog\n */\nexport interface Dialog {\n message: string /* Dialog message */\n active: boolean /* Dialog is active */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n alert$: Subject /* Alert subject */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n alert$: Subject /* Alert subject */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch dialog\n *\n * @param _el - Dialog element\n * @param options - Options\n *\n * @returns Dialog observable\n */\nexport function watchDialog(\n _el: HTMLElement, { alert$ }: WatchOptions\n): Observable {\n return alert$\n .pipe(\n switchMap(message => merge(\n of(true),\n of(false).pipe(delay(2000))\n )\n .pipe(\n map(active => ({ message, active }))\n )\n )\n )\n}\n\n/**\n * Mount dialog\n *\n * This function reveals the dialog in the right corner when a new alert is\n * emitted through the subject that is passed as part of the options.\n *\n * @param el - Dialog element\n * @param options - Options\n *\n * @returns Dialog component observable\n */\nexport function mountDialog(\n el: HTMLElement, options: MountOptions\n): Observable> {\n const inner = getElement(\".md-typeset\", el)\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe(({ message, active }) => {\n el.classList.toggle(\"md-dialog--active\", active)\n inner.textContent = message\n })\n\n /* Create and return component */\n return watchDialog(el, options)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n bufferCount,\n combineLatest,\n combineLatestWith,\n defer,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n filter,\n map,\n of,\n shareReplay,\n startWith,\n switchMap,\n takeLast,\n takeUntil\n} from \"rxjs\"\n\nimport { feature } from \"~/_\"\nimport {\n Viewport,\n watchElementSize,\n watchToggle\n} from \"~/browser\"\n\nimport { Component } from \"../../_\"\nimport { Main } from \"../../main\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Header\n */\nexport interface Header {\n height: number /* Header visible height */\n hidden: boolean /* Header is hidden */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n main$: Observable
    /* Main area observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Compute whether the header is hidden\n *\n * If the user scrolls past a certain threshold, the header can be hidden when\n * scrolling down, and shown when scrolling up.\n *\n * @param options - Options\n *\n * @returns Toggle observable\n */\nfunction isHidden({ viewport$ }: WatchOptions): Observable {\n if (!feature(\"header.autohide\"))\n return of(false)\n\n /* Compute direction and turning point */\n const direction$ = viewport$\n .pipe(\n map(({ offset: { y } }) => y),\n bufferCount(2, 1),\n map(([a, b]) => [a < b, b] as const),\n distinctUntilKeyChanged(0)\n )\n\n /* Compute whether header should be hidden */\n const hidden$ = combineLatest([viewport$, direction$])\n .pipe(\n filter(([{ offset }, [, y]]) => Math.abs(y - offset.y) > 100),\n map(([, [direction]]) => direction),\n distinctUntilChanged()\n )\n\n /* Compute threshold for hiding */\n const search$ = watchToggle(\"search\")\n return combineLatest([viewport$, search$])\n .pipe(\n map(([{ offset }, search]) => offset.y > 400 && !search),\n distinctUntilChanged(),\n switchMap(active => active ? hidden$ : of(false)),\n startWith(false)\n )\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch header\n *\n * @param el - Header element\n * @param options - Options\n *\n * @returns Header observable\n */\nexport function watchHeader(\n el: HTMLElement, options: WatchOptions\n): Observable
    {\n return defer(() => combineLatest([\n watchElementSize(el),\n isHidden(options)\n ]))\n .pipe(\n map(([{ height }, hidden]) => ({\n height,\n hidden\n })),\n distinctUntilChanged((a, b) => (\n a.height === b.height &&\n a.hidden === b.hidden\n )),\n shareReplay(1)\n )\n}\n\n/**\n * Mount header\n *\n * This function manages the different states of the header, i.e. whether it's\n * hidden or rendered with a shadow. This depends heavily on the main area.\n *\n * @param el - Header element\n * @param options - Options\n *\n * @returns Header component observable\n */\nexport function mountHeader(\n el: HTMLElement, { header$, main$ }: MountOptions\n): Observable> {\n return defer(() => {\n const push$ = new Subject
    ()\n const done$ = push$.pipe(takeLast(1))\n push$\n .pipe(\n distinctUntilKeyChanged(\"active\"),\n combineLatestWith(header$)\n )\n .subscribe(([{ active }, { hidden }]) => {\n el.classList.toggle(\"md-header--shadow\", active && !hidden)\n el.hidden = hidden\n })\n\n /* Link to main area */\n main$.subscribe(push$)\n\n /* Create and return component */\n return header$\n .pipe(\n takeUntil(done$),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n Subject,\n defer,\n distinctUntilKeyChanged,\n finalize,\n map,\n tap\n} from \"rxjs\"\n\nimport {\n Viewport,\n getElementSize,\n getOptionalElement,\n watchViewportAt\n} from \"~/browser\"\n\nimport { Component } from \"../../_\"\nimport { Header } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Header\n */\nexport interface HeaderTitle {\n active: boolean /* Header title is active */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch header title\n *\n * @param el - Heading element\n * @param options - Options\n *\n * @returns Header title observable\n */\nexport function watchHeaderTitle(\n el: HTMLElement, { viewport$, header$ }: WatchOptions\n): Observable {\n return watchViewportAt(el, { viewport$, header$ })\n .pipe(\n map(({ offset: { y } }) => {\n const { height } = getElementSize(el)\n return {\n active: y >= height\n }\n }),\n distinctUntilKeyChanged(\"active\")\n )\n}\n\n/**\n * Mount header title\n *\n * This function swaps the header title from the site title to the title of the\n * current page when the user scrolls past the first headline.\n *\n * @param el - Header title element\n * @param options - Options\n *\n * @returns Header title component observable\n */\nexport function mountHeaderTitle(\n el: HTMLElement, options: MountOptions\n): Observable> {\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe(({ active }) => {\n el.classList.toggle(\"md-header__title--active\", active)\n })\n\n /* Obtain headline, if any */\n const heading = getOptionalElement(\"article h1\")\n if (typeof heading === \"undefined\")\n return EMPTY\n\n /* Create and return component */\n return watchHeaderTitle(heading, options)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n combineLatest,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n map,\n switchMap\n} from \"rxjs\"\n\nimport {\n Viewport,\n watchElementSize\n} from \"~/browser\"\n\nimport { Header } from \"../header\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Main area\n */\nexport interface Main {\n offset: number /* Main area top offset */\n height: number /* Main area visible height */\n active: boolean /* Main area is active */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch main area\n *\n * This function returns an observable that computes the visual parameters of\n * the main area which depends on the viewport vertical offset and height, as\n * well as the height of the header element, if the header is fixed.\n *\n * @param el - Main area element\n * @param options - Options\n *\n * @returns Main area observable\n */\nexport function watchMain(\n el: HTMLElement, { viewport$, header$ }: WatchOptions\n): Observable
    {\n\n /* Compute necessary adjustment for header */\n const adjust$ = header$\n .pipe(\n map(({ height }) => height),\n distinctUntilChanged()\n )\n\n /* Compute the main area's top and bottom borders */\n const border$ = adjust$\n .pipe(\n switchMap(() => watchElementSize(el)\n .pipe(\n map(({ height }) => ({\n top: el.offsetTop,\n bottom: el.offsetTop + height\n })),\n distinctUntilKeyChanged(\"bottom\")\n )\n )\n )\n\n /* Compute the main area's offset, visible height and if we scrolled past */\n return combineLatest([adjust$, border$, viewport$])\n .pipe(\n map(([header, { top, bottom }, { offset: { y }, size: { height } }]) => {\n height = Math.max(0, height\n - Math.max(0, top - y, header)\n - Math.max(0, height + y - bottom)\n )\n return {\n offset: top - header,\n height,\n active: top - header <= y\n }\n }),\n distinctUntilChanged((a, b) => (\n a.offset === b.offset &&\n a.height === b.height &&\n a.active === b.active\n ))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n asyncScheduler,\n defer,\n finalize,\n fromEvent,\n map,\n mergeMap,\n observeOn,\n of,\n shareReplay,\n startWith,\n tap\n} from \"rxjs\"\n\nimport { getElements } from \"~/browser\"\n\nimport { Component } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Palette colors\n */\nexport interface PaletteColor {\n scheme?: string /* Color scheme */\n primary?: string /* Primary color */\n accent?: string /* Accent color */\n}\n\n/**\n * Palette\n */\nexport interface Palette {\n index: number /* Palette index */\n color: PaletteColor /* Palette colors */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch color palette\n *\n * @param inputs - Color palette element\n *\n * @returns Color palette observable\n */\nexport function watchPalette(\n inputs: HTMLInputElement[]\n): Observable {\n const current = __md_get(\"__palette\") || {\n index: inputs.findIndex(input => matchMedia(\n input.getAttribute(\"data-md-color-media\")!\n ).matches)\n }\n\n /* Emit changes in color palette */\n return of(...inputs)\n .pipe(\n mergeMap(input => fromEvent(input, \"change\")\n .pipe(\n map(() => input)\n )\n ),\n startWith(inputs[Math.max(0, current.index)]),\n map(input => ({\n index: inputs.indexOf(input),\n color: {\n scheme: input.getAttribute(\"data-md-color-scheme\"),\n primary: input.getAttribute(\"data-md-color-primary\"),\n accent: input.getAttribute(\"data-md-color-accent\")\n }\n } as Palette)),\n shareReplay(1)\n )\n}\n\n/**\n * Mount color palette\n *\n * @param el - Color palette element\n *\n * @returns Color palette component observable\n */\nexport function mountPalette(\n el: HTMLElement\n): Observable> {\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe(palette => {\n document.body.setAttribute(\"data-md-color-switching\", \"\")\n\n /* Set color palette */\n for (const [key, value] of Object.entries(palette.color))\n document.body.setAttribute(`data-md-color-${key}`, value)\n\n /* Toggle visibility */\n for (let index = 0; index < inputs.length; index++) {\n const label = inputs[index].nextElementSibling\n if (label instanceof HTMLElement)\n label.hidden = palette.index !== index\n }\n\n /* Persist preference in local storage */\n __md_set(\"__palette\", palette)\n })\n\n /* Revert transition durations after color switch */\n push$.pipe(observeOn(asyncScheduler))\n .subscribe(() => {\n document.body.removeAttribute(\"data-md-color-switching\")\n })\n\n /* Create and return component */\n const inputs = getElements(\"input\", el)\n return watchPalette(inputs)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport ClipboardJS from \"clipboard\"\nimport {\n Observable,\n Subject,\n map,\n tap\n} from \"rxjs\"\n\nimport { translation } from \"~/_\"\nimport { getElement } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Setup options\n */\ninterface SetupOptions {\n alert$: Subject /* Alert subject */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Extract text to copy\n *\n * @param el - HTML element\n *\n * @returns Extracted text\n */\nfunction extract(el: HTMLElement): string {\n el.setAttribute(\"data-md-copying\", \"\")\n const text = el.innerText\n el.removeAttribute(\"data-md-copying\")\n return text\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up Clipboard.js integration\n *\n * @param options - Options\n */\nexport function setupClipboardJS(\n { alert$ }: SetupOptions\n): void {\n if (ClipboardJS.isSupported()) {\n new Observable(subscriber => {\n new ClipboardJS(\"[data-clipboard-target], [data-clipboard-text]\", {\n text: el => (\n el.getAttribute(\"data-clipboard-text\")! ||\n extract(getElement(\n el.getAttribute(\"data-clipboard-target\")!\n ))\n )\n })\n .on(\"success\", ev => subscriber.next(ev))\n })\n .pipe(\n tap(ev => {\n const trigger = ev.trigger as HTMLElement\n trigger.focus()\n }),\n map(() => translation(\"clipboard.copied\"))\n )\n .subscribe(alert$)\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n catchError,\n defaultIfEmpty,\n map,\n of,\n tap\n} from \"rxjs\"\n\nimport { configuration } from \"~/_\"\nimport { getElements, requestXML } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Sitemap, i.e. a list of URLs\n */\nexport type Sitemap = string[]\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Preprocess a list of URLs\n *\n * This function replaces the `site_url` in the sitemap with the actual base\n * URL, to allow instant loading to work in occasions like Netlify previews.\n *\n * @param urls - URLs\n *\n * @returns URL path parts\n */\nfunction preprocess(urls: Sitemap): Sitemap {\n if (urls.length < 2)\n return [\"\"]\n\n /* Take the first two URLs and remove everything after the last slash */\n const [root, next] = [...urls]\n .sort((a, b) => a.length - b.length)\n .map(url => url.replace(/[^/]+$/, \"\"))\n\n /* Compute common prefix */\n let index = 0\n if (root === next)\n index = root.length\n else\n while (root.charCodeAt(index) === next.charCodeAt(index))\n index++\n\n /* Remove common prefix and return in original order */\n return urls.map(url => url.replace(root.slice(0, index), \"\"))\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch the sitemap for the given base URL\n *\n * @param base - Base URL\n *\n * @returns Sitemap observable\n */\nexport function fetchSitemap(base?: URL): Observable {\n const cached = __md_get(\"__sitemap\", sessionStorage, base)\n if (cached) {\n return of(cached)\n } else {\n const config = configuration()\n return requestXML(new URL(\"sitemap.xml\", base || config.base))\n .pipe(\n map(sitemap => preprocess(getElements(\"loc\", sitemap)\n .map(node => node.textContent!)\n )),\n catchError(() => EMPTY), // @todo refactor instant loading\n defaultIfEmpty([]),\n tap(sitemap => __md_set(\"__sitemap\", sitemap, sessionStorage, base))\n )\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n NEVER,\n Observable,\n Subject,\n bufferCount,\n catchError,\n concatMap,\n debounceTime,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n filter,\n fromEvent,\n map,\n merge,\n of,\n sample,\n share,\n skip,\n skipUntil,\n switchMap\n} from \"rxjs\"\n\nimport { configuration, feature } from \"~/_\"\nimport {\n Viewport,\n ViewportOffset,\n getElements,\n getOptionalElement,\n request,\n setLocation,\n setLocationHash\n} from \"~/browser\"\nimport { getComponentElement } from \"~/components\"\nimport { h } from \"~/utilities\"\n\nimport { fetchSitemap } from \"../sitemap\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * History state\n */\nexport interface HistoryState {\n url: URL /* State URL */\n offset?: ViewportOffset /* State viewport offset */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Setup options\n */\ninterface SetupOptions {\n document$: Subject /* Document subject */\n location$: Subject /* Location subject */\n viewport$: Observable /* Viewport observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up instant loading\n *\n * When fetching, theoretically, we could use `responseType: \"document\"`, but\n * since all MkDocs links are relative, we need to make sure that the current\n * location matches the document we just loaded. Otherwise any relative links\n * in the document could use the old location.\n *\n * This is the reason why we need to synchronize history events and the process\n * of fetching the document for navigation changes (except `popstate` events):\n *\n * 1. Fetch document via `XMLHTTPRequest`\n * 2. Set new location via `history.pushState`\n * 3. Parse and emit fetched document\n *\n * For `popstate` events, we must not use `history.pushState`, or the forward\n * history will be irreversibly overwritten. In case the request fails, the\n * location change is dispatched regularly.\n *\n * @param options - Options\n */\nexport function setupInstantLoading(\n { document$, location$, viewport$ }: SetupOptions\n): void {\n const config = configuration()\n if (location.protocol === \"file:\")\n return\n\n /* Disable automatic scroll restoration */\n if (\"scrollRestoration\" in history) {\n history.scrollRestoration = \"manual\"\n\n /* Hack: ensure that reloads restore viewport offset */\n fromEvent(window, \"beforeunload\")\n .subscribe(() => {\n history.scrollRestoration = \"auto\"\n })\n }\n\n /* Hack: ensure absolute favicon link to omit 404s when switching */\n const favicon = getOptionalElement(\"link[rel=icon]\")\n if (typeof favicon !== \"undefined\")\n favicon.href = favicon.href\n\n /* Intercept internal navigation */\n const push$ = fetchSitemap()\n .pipe(\n map(paths => paths.map(path => `${new URL(path, config.base)}`)),\n switchMap(urls => fromEvent(document.body, \"click\")\n .pipe(\n filter(ev => !ev.metaKey && !ev.ctrlKey),\n switchMap(ev => {\n if (ev.target instanceof Element) {\n const el = ev.target.closest(\"a\")\n if (el && !el.target) {\n const url = new URL(el.href)\n\n /* Canonicalize URL */\n url.search = \"\"\n url.hash = \"\"\n\n /* Check if URL should be intercepted */\n if (\n url.pathname !== location.pathname &&\n urls.includes(url.toString())\n ) {\n ev.preventDefault()\n return of({\n url: new URL(el.href)\n })\n }\n }\n }\n return NEVER\n })\n )\n ),\n share()\n )\n\n /* Intercept history back and forward */\n const pop$ = fromEvent(window, \"popstate\")\n .pipe(\n filter(ev => ev.state !== null),\n map(ev => ({\n url: new URL(location.href),\n offset: ev.state\n })),\n share()\n )\n\n /* Emit location change */\n merge(push$, pop$)\n .pipe(\n distinctUntilChanged((a, b) => a.url.href === b.url.href),\n map(({ url }) => url)\n )\n .subscribe(location$)\n\n /* Fetch document via `XMLHTTPRequest` */\n const response$ = location$\n .pipe(\n distinctUntilKeyChanged(\"pathname\"),\n switchMap(url => request(url.href)\n .pipe(\n catchError(() => {\n setLocation(url)\n return NEVER\n })\n )\n ),\n share()\n )\n\n /* Set new location via `history.pushState` */\n push$\n .pipe(\n sample(response$)\n )\n .subscribe(({ url }) => {\n history.pushState({}, \"\", `${url}`)\n })\n\n /* Parse and emit fetched document */\n const dom = new DOMParser()\n response$\n .pipe(\n switchMap(res => res.text()),\n map(res => dom.parseFromString(res, \"text/html\"))\n )\n .subscribe(document$)\n\n /* Replace meta tags and components */\n document$\n .pipe(\n skip(1)\n )\n .subscribe(replacement => {\n for (const selector of [\n\n /* Meta tags */\n \"title\",\n \"link[rel=canonical]\",\n \"meta[name=author]\",\n \"meta[name=description]\",\n\n /* Components */\n \"[data-md-component=announce]\",\n \"[data-md-component=container]\",\n \"[data-md-component=header-topic]\",\n \"[data-md-component=outdated]\",\n \"[data-md-component=logo]\",\n \"[data-md-component=skip]\",\n ...feature(\"navigation.tabs.sticky\")\n ? [\"[data-md-component=tabs]\"]\n : []\n ]) {\n const source = getOptionalElement(selector)\n const target = getOptionalElement(selector, replacement)\n if (\n typeof source !== \"undefined\" &&\n typeof target !== \"undefined\"\n ) {\n source.replaceWith(target)\n }\n }\n })\n\n /* Re-evaluate scripts */\n document$\n .pipe(\n skip(1),\n map(() => getComponentElement(\"container\")),\n switchMap(el => getElements(\"script\", el)),\n concatMap(el => {\n const script = h(\"script\")\n if (el.src) {\n for (const name of el.getAttributeNames())\n script.setAttribute(name, el.getAttribute(name)!)\n el.replaceWith(script)\n\n /* Complete when script is loaded */\n return new Observable(observer => {\n script.onload = () => observer.complete()\n })\n\n /* Complete immediately */\n } else {\n script.textContent = el.textContent\n el.replaceWith(script)\n return EMPTY\n }\n })\n )\n .subscribe()\n\n /* Emit history state change */\n merge(push$, pop$)\n .pipe(\n sample(document$)\n )\n .subscribe(({ url, offset }) => {\n if (url.hash && !offset) {\n setLocationHash(url.hash)\n } else {\n window.scrollTo(0, offset?.y || 0)\n }\n })\n\n /* Debounce update of viewport offset */\n viewport$\n .pipe(\n skipUntil(push$),\n debounceTime(250),\n distinctUntilKeyChanged(\"offset\")\n )\n .subscribe(({ offset }) => {\n history.replaceState(offset, \"\")\n })\n\n /* Set viewport offset from history */\n merge(push$, pop$)\n .pipe(\n bufferCount(2, 1),\n filter(([a, b]) => a.url.pathname === b.url.pathname),\n map(([, state]) => state)\n )\n .subscribe(({ offset }) => {\n window.scrollTo(0, offset?.y || 0)\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport escapeHTML from \"escape-html\"\n\nimport { SearchIndexDocument } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search document\n */\nexport interface SearchDocument extends SearchIndexDocument {\n parent?: SearchIndexDocument /* Parent article */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search document mapping\n */\nexport type SearchDocumentMap = Map\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search document mapping\n *\n * @param docs - Search index documents\n *\n * @returns Search document map\n */\nexport function setupSearchDocumentMap(\n docs: SearchIndexDocument[]\n): SearchDocumentMap {\n const documents = new Map()\n const parents = new Set()\n for (const doc of docs) {\n const [path, hash] = doc.location.split(\"#\")\n\n /* Extract location, title and tags */\n const location = doc.location\n const title = doc.title\n const tags = doc.tags\n\n /* Escape and cleanup text */\n const text = escapeHTML(doc.text)\n .replace(/\\s+(?=[,.:;!?])/g, \"\")\n .replace(/\\s+/g, \" \")\n\n /* Handle section */\n if (hash) {\n const parent = documents.get(path)!\n\n /* Ignore first section, override article */\n if (!parents.has(parent)) {\n parent.title = doc.title\n parent.text = text\n\n /* Remember that we processed the article */\n parents.add(parent)\n\n /* Add subsequent section */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n parent\n })\n }\n\n /* Add article */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n ...tags && { tags }\n })\n }\n }\n return documents\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport escapeHTML from \"escape-html\"\n\nimport { SearchIndexConfig } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search highlight function\n *\n * @param value - Value\n *\n * @returns Highlighted value\n */\nexport type SearchHighlightFn = (value: string) => string\n\n/**\n * Search highlight factory function\n *\n * @param query - Query value\n *\n * @returns Search highlight function\n */\nexport type SearchHighlightFactoryFn = (query: string) => SearchHighlightFn\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search highlighter\n *\n * @param config - Search index configuration\n * @param escape - Whether to escape HTML\n *\n * @returns Search highlight factory function\n */\nexport function setupSearchHighlighter(\n config: SearchIndexConfig, escape: boolean\n): SearchHighlightFactoryFn {\n const separator = new RegExp(config.separator, \"img\")\n const highlight = (_: unknown, data: string, term: string) => {\n return `${data}${term}`\n }\n\n /* Return factory function */\n return (query: string) => {\n query = query\n .replace(/[\\s*+\\-:~^]+/g, \" \")\n .trim()\n\n /* Create search term match expression */\n const match = new RegExp(`(^|${config.separator})(${\n query\n .replace(/[|\\\\{}()[\\]^$+*?.-]/g, \"\\\\$&\")\n .replace(separator, \"|\")\n })`, \"img\")\n\n /* Highlight string value */\n return value => (\n escape\n ? escapeHTML(value)\n : value\n )\n .replace(match, highlight)\n .replace(/<\\/mark>(\\s+)]*>/img, \"$1\")\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search transformation function\n *\n * @param value - Query value\n *\n * @returns Transformed query value\n */\nexport type SearchTransformFn = (value: string) => string\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Default transformation function\n *\n * 1. Search for terms in quotation marks and prepend a `+` modifier to denote\n * that the resulting document must contain all terms, converting the query\n * to an `AND` query (as opposed to the default `OR` behavior). While users\n * may expect terms enclosed in quotation marks to map to span queries, i.e.\n * for which order is important, Lunr.js doesn't support them, so the best\n * we can do is to convert the terms to an `AND` query.\n *\n * 2. Replace control characters which are not located at the beginning of the\n * query or preceded by white space, or are not followed by a non-whitespace\n * character or are at the end of the query string. Furthermore, filter\n * unmatched quotation marks.\n *\n * 3. Trim excess whitespace from left and right.\n *\n * @param query - Query value\n *\n * @returns Transformed query value\n */\nexport function defaultTransform(query: string): string {\n return query\n .split(/\"([^\"]+)\"/g) /* => 1 */\n .map((terms, index) => index & 1\n ? terms.replace(/^\\b|^(?![^\\x00-\\x7F]|$)|\\s+/g, \" +\")\n : terms\n )\n .join(\"\")\n .replace(/\"|(?:^|\\s+)[*+\\-:^~]+(?=\\s+|$)/g, \"\") /* => 2 */\n .trim() /* => 3 */\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { SearchIndex, SearchResult } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search message type\n */\nexport const enum SearchMessageType {\n SETUP, /* Search index setup */\n READY, /* Search index ready */\n QUERY, /* Search query */\n RESULT /* Search results */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Message containing the data necessary to setup the search index\n */\nexport interface SearchSetupMessage {\n type: SearchMessageType.SETUP /* Message type */\n data: SearchIndex /* Message data */\n}\n\n/**\n * Message indicating the search index is ready\n */\nexport interface SearchReadyMessage {\n type: SearchMessageType.READY /* Message type */\n}\n\n/**\n * Message containing a search query\n */\nexport interface SearchQueryMessage {\n type: SearchMessageType.QUERY /* Message type */\n data: string /* Message data */\n}\n\n/**\n * Message containing results for a search query\n */\nexport interface SearchResultMessage {\n type: SearchMessageType.RESULT /* Message type */\n data: SearchResult /* Message data */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Message exchanged with the search worker\n */\nexport type SearchMessage =\n | SearchSetupMessage\n | SearchReadyMessage\n | SearchQueryMessage\n | SearchResultMessage\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Type guard for search setup messages\n *\n * @param message - Search worker message\n *\n * @returns Test result\n */\nexport function isSearchSetupMessage(\n message: SearchMessage\n): message is SearchSetupMessage {\n return message.type === SearchMessageType.SETUP\n}\n\n/**\n * Type guard for search ready messages\n *\n * @param message - Search worker message\n *\n * @returns Test result\n */\nexport function isSearchReadyMessage(\n message: SearchMessage\n): message is SearchReadyMessage {\n return message.type === SearchMessageType.READY\n}\n\n/**\n * Type guard for search query messages\n *\n * @param message - Search worker message\n *\n * @returns Test result\n */\nexport function isSearchQueryMessage(\n message: SearchMessage\n): message is SearchQueryMessage {\n return message.type === SearchMessageType.QUERY\n}\n\n/**\n * Type guard for search result messages\n *\n * @param message - Search worker message\n *\n * @returns Test result\n */\nexport function isSearchResultMessage(\n message: SearchMessage\n): message is SearchResultMessage {\n return message.type === SearchMessageType.RESULT\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n ObservableInput,\n Subject,\n from,\n map,\n share\n} from \"rxjs\"\n\nimport { configuration, feature, translation } from \"~/_\"\nimport { WorkerHandler, watchWorker } from \"~/browser\"\n\nimport { SearchIndex } from \"../../_\"\nimport {\n SearchOptions,\n SearchPipeline\n} from \"../../options\"\nimport {\n SearchMessage,\n SearchMessageType,\n SearchSetupMessage,\n isSearchResultMessage\n} from \"../message\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search worker\n */\nexport type SearchWorker = WorkerHandler\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up search index\n *\n * @param data - Search index\n *\n * @returns Search index\n */\nfunction setupSearchIndex({ config, docs }: SearchIndex): SearchIndex {\n\n /* Override default language with value from translation */\n if (config.lang.length === 1 && config.lang[0] === \"en\")\n config.lang = [\n translation(\"search.config.lang\")\n ]\n\n /* Override default separator with value from translation */\n if (config.separator === \"[\\\\s\\\\-]+\")\n config.separator = translation(\"search.config.separator\")\n\n /* Set pipeline from translation */\n const pipeline = translation(\"search.config.pipeline\")\n .split(/\\s*,\\s*/)\n .filter(Boolean) as SearchPipeline\n\n /* Determine search options */\n const options: SearchOptions = {\n pipeline,\n suggestions: feature(\"search.suggest\")\n }\n\n /* Return search index after defaulting */\n return { config, docs, options }\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up search worker\n *\n * This function creates a web worker to set up and query the search index,\n * which is done using Lunr.js. The index must be passed as an observable to\n * enable hacks like _localsearch_ via search index embedding as JSON.\n *\n * @param url - Worker URL\n * @param index - Search index observable input\n *\n * @returns Search worker\n */\nexport function setupSearchWorker(\n url: string, index: ObservableInput\n): SearchWorker {\n const config = configuration()\n const worker = new Worker(url)\n\n /* Create communication channels and resolve relative links */\n const tx$ = new Subject()\n const rx$ = watchWorker(worker, { tx$ })\n .pipe(\n map(message => {\n if (isSearchResultMessage(message)) {\n for (const result of message.data.items)\n for (const document of result)\n document.location = `${new URL(document.location, config.base)}`\n }\n return message\n }),\n share()\n )\n\n /* Set up search index */\n from(index)\n .pipe(\n map(data => ({\n type: SearchMessageType.SETUP,\n data: setupSearchIndex(data)\n } as SearchSetupMessage))\n )\n .subscribe(tx$.next.bind(tx$))\n\n /* Return search worker */\n return { tx$, rx$ }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Subject,\n catchError,\n combineLatest,\n filter,\n fromEvent,\n map,\n of,\n switchMap,\n withLatestFrom\n} from \"rxjs\"\n\nimport { configuration } from \"~/_\"\nimport {\n getElement,\n getLocation,\n requestJSON,\n setLocation\n} from \"~/browser\"\nimport { getComponentElements } from \"~/components\"\nimport {\n Version,\n renderVersionSelector\n} from \"~/templates\"\n\nimport { fetchSitemap } from \"../sitemap\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Setup options\n */\ninterface SetupOptions {\n document$: Subject /* Document subject */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Set up version selector\n *\n * @param options - Options\n */\nexport function setupVersionSelector(\n { document$ }: SetupOptions\n): void {\n const config = configuration()\n const versions$ = requestJSON(\n new URL(\"../versions.json\", config.base)\n )\n .pipe(\n catchError(() => EMPTY) // @todo refactor instant loading\n )\n\n /* Determine current version */\n const current$ = versions$\n .pipe(\n map(versions => {\n const [, current] = config.base.match(/([^/]+)\\/?$/)!\n return versions.find(({ version, aliases }) => (\n version === current || aliases.includes(current)\n )) || versions[0]\n })\n )\n\n /* Intercept inter-version navigation */\n versions$\n .pipe(\n map(versions => new Map(versions.map(version => [\n `${new URL(`../${version.version}/`, config.base)}`,\n version\n ]))),\n switchMap(urls => fromEvent(document.body, \"click\")\n .pipe(\n filter(ev => !ev.metaKey && !ev.ctrlKey),\n withLatestFrom(current$),\n switchMap(([ev, current]) => {\n if (ev.target instanceof Element) {\n const el = ev.target.closest(\"a\")\n if (el && !el.target && urls.has(el.href)) {\n const url = el.href\n // This is a temporary hack to detect if a version inside the\n // version selector or on another part of the site was clicked.\n // If we're inside the version selector, we definitely want to\n // find the same page, as we might have different deployments\n // due to aliases. However, if we're outside the version\n // selector, we must abort here, because we might otherwise\n // interfere with instant loading. We need to refactor this\n // at some point together with instant loading.\n //\n // See https://github.com/squidfunk/mkdocs-material/issues/4012\n if (!ev.target.closest(\".md-version\")) {\n const version = urls.get(url)!\n if (version === current)\n return EMPTY\n }\n ev.preventDefault()\n return of(url)\n }\n }\n return EMPTY\n }),\n switchMap(url => {\n const { version } = urls.get(url)!\n return fetchSitemap(new URL(url))\n .pipe(\n map(sitemap => {\n const location = getLocation()\n const path = location.href.replace(config.base, \"\")\n return sitemap.includes(path)\n ? new URL(`../${version}/${path}`, config.base)\n : new URL(url)\n })\n )\n })\n )\n )\n )\n .subscribe(url => setLocation(url))\n\n /* Render version selector and warning */\n combineLatest([versions$, current$])\n .subscribe(([versions, current]) => {\n const topic = getElement(\".md-header__topic\")\n topic.appendChild(renderVersionSelector(versions, current))\n })\n\n /* Integrate outdated version banner with instant loading */\n document$.pipe(switchMap(() => current$))\n .subscribe(current => {\n\n /* Check if version state was already determined */\n let outdated = __md_get(\"__outdated\", sessionStorage)\n if (outdated === null) {\n const latest = config.version?.default || \"latest\"\n outdated = !current.aliases.includes(latest)\n\n /* Persist version state in session storage */\n __md_set(\"__outdated\", outdated, sessionStorage)\n }\n\n /* Unhide outdated version banner */\n if (outdated)\n for (const warning of getComponentElements(\"outdated\"))\n warning.hidden = false\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n combineLatest,\n delay,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n filter,\n finalize,\n fromEvent,\n map,\n merge,\n share,\n shareReplay,\n startWith,\n take,\n takeLast,\n takeUntil,\n tap\n} from \"rxjs\"\n\nimport { translation } from \"~/_\"\nimport {\n getLocation,\n setToggle,\n watchElementFocus,\n watchToggle\n} from \"~/browser\"\nimport {\n SearchMessageType,\n SearchQueryMessage,\n SearchWorker,\n defaultTransform,\n isSearchReadyMessage\n} from \"~/integrations\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search query\n */\nexport interface SearchQuery {\n value: string /* Query value */\n focus: boolean /* Query focus */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch search query\n *\n * Note that the focus event which triggers re-reading the current query value\n * is delayed by `1ms` so the input's empty state is allowed to propagate.\n *\n * @param el - Search query element\n * @param worker - Search worker\n *\n * @returns Search query observable\n */\nexport function watchSearchQuery(\n el: HTMLInputElement, { rx$ }: SearchWorker\n): Observable {\n const fn = __search?.transform || defaultTransform\n\n /* Immediately show search dialog */\n const { searchParams } = getLocation()\n if (searchParams.has(\"q\"))\n setToggle(\"search\", true)\n\n /* Intercept query parameter (deep link) */\n const param$ = rx$\n .pipe(\n filter(isSearchReadyMessage),\n take(1),\n map(() => searchParams.get(\"q\") || \"\")\n )\n\n /* Remove query parameter when search is closed */\n watchToggle(\"search\")\n .pipe(\n filter(active => !active),\n take(1)\n )\n .subscribe(() => {\n const url = new URL(location.href)\n url.searchParams.delete(\"q\")\n history.replaceState({}, \"\", `${url}`)\n })\n\n /* Set query from parameter */\n param$.subscribe(value => { // TODO: not ideal - find a better way\n if (value) {\n el.value = value\n el.focus()\n }\n })\n\n /* Intercept focus and input events */\n const focus$ = watchElementFocus(el)\n const value$ = merge(\n fromEvent(el, \"keyup\"),\n fromEvent(el, \"focus\").pipe(delay(1)),\n param$\n )\n .pipe(\n map(() => fn(el.value)),\n startWith(\"\"),\n distinctUntilChanged(),\n )\n\n /* Combine into single observable */\n return combineLatest([value$, focus$])\n .pipe(\n map(([value, focus]) => ({ value, focus })),\n shareReplay(1)\n )\n}\n\n/**\n * Mount search query\n *\n * @param el - Search query element\n * @param worker - Search worker\n *\n * @returns Search query component observable\n */\nexport function mountSearchQuery(\n el: HTMLInputElement, { tx$, rx$ }: SearchWorker\n): Observable> {\n const push$ = new Subject()\n const done$ = push$.pipe(takeLast(1))\n\n /* Handle value changes */\n push$\n .pipe(\n distinctUntilKeyChanged(\"value\"),\n map(({ value }): SearchQueryMessage => ({\n type: SearchMessageType.QUERY,\n data: value\n }))\n )\n .subscribe(tx$.next.bind(tx$))\n\n /* Handle focus changes */\n push$\n .pipe(\n distinctUntilKeyChanged(\"focus\")\n )\n .subscribe(({ focus }) => {\n if (focus) {\n setToggle(\"search\", focus)\n el.placeholder = \"\"\n } else {\n el.placeholder = translation(\"search.placeholder\")\n }\n })\n\n /* Handle reset */\n fromEvent(el.form!, \"reset\")\n .pipe(\n takeUntil(done$)\n )\n .subscribe(() => el.focus())\n\n /* Create and return component */\n return watchSearchQuery(el, { tx$, rx$ })\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state })),\n share()\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n bufferCount,\n filter,\n finalize,\n map,\n merge,\n of,\n skipUntil,\n switchMap,\n take,\n tap,\n withLatestFrom,\n zipWith\n} from \"rxjs\"\n\nimport { translation } from \"~/_\"\nimport {\n getElement,\n watchElementBoundary\n} from \"~/browser\"\nimport {\n SearchResult,\n SearchWorker,\n isSearchReadyMessage,\n isSearchResultMessage\n} from \"~/integrations\"\nimport { renderSearchResultItem } from \"~/templates\"\nimport { round } from \"~/utilities\"\n\nimport { Component } from \"../../_\"\nimport { SearchQuery } from \"../query\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n query$: Observable /* Search query observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search result list\n *\n * This function performs a lazy rendering of the search results, depending on\n * the vertical offset of the search result container.\n *\n * @param el - Search result list element\n * @param worker - Search worker\n * @param options - Options\n *\n * @returns Search result list component observable\n */\nexport function mountSearchResult(\n el: HTMLElement, { rx$ }: SearchWorker, { query$ }: MountOptions\n): Observable> {\n const push$ = new Subject()\n const boundary$ = watchElementBoundary(el.parentElement!)\n .pipe(\n filter(Boolean)\n )\n\n /* Retrieve nested components */\n const meta = getElement(\":scope > :first-child\", el)\n const list = getElement(\":scope > :last-child\", el)\n\n /* Wait until search is ready */\n const ready$ = rx$\n .pipe(\n filter(isSearchReadyMessage),\n take(1)\n )\n\n /* Update search result metadata */\n push$\n .pipe(\n withLatestFrom(query$),\n skipUntil(ready$)\n )\n .subscribe(([{ items }, { value }]) => {\n if (value) {\n switch (items.length) {\n\n /* No results */\n case 0:\n meta.textContent = translation(\"search.result.none\")\n break\n\n /* One result */\n case 1:\n meta.textContent = translation(\"search.result.one\")\n break\n\n /* Multiple result */\n default:\n meta.textContent = translation(\n \"search.result.other\",\n round(items.length)\n )\n }\n } else {\n meta.textContent = translation(\"search.result.placeholder\")\n }\n })\n\n /* Update search result list */\n push$\n .pipe(\n tap(() => list.innerHTML = \"\"),\n switchMap(({ items }) => merge(\n of(...items.slice(0, 10)),\n of(...items.slice(10))\n .pipe(\n bufferCount(4),\n zipWith(boundary$),\n switchMap(([chunk]) => chunk)\n )\n ))\n )\n .subscribe(result => list.appendChild(\n renderSearchResultItem(result)\n ))\n\n /* Filter search result message */\n const result$ = rx$\n .pipe(\n filter(isSearchResultMessage),\n map(({ data }) => data)\n )\n\n /* Create and return component */\n return result$\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n finalize,\n fromEvent,\n map,\n tap\n} from \"rxjs\"\n\nimport { getLocation } from \"~/browser\"\n\nimport { Component } from \"../../_\"\nimport { SearchQuery } from \"../query\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search sharing\n */\nexport interface SearchShare {\n url: URL /* Deep link for sharing */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n query$: Observable /* Search query observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n query$: Observable /* Search query observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search sharing\n *\n * @param _el - Search sharing element\n * @param options - Options\n *\n * @returns Search sharing observable\n */\nexport function watchSearchShare(\n _el: HTMLElement, { query$ }: WatchOptions\n): Observable {\n return query$\n .pipe(\n map(({ value }) => {\n const url = getLocation()\n url.hash = \"\"\n url.searchParams.delete(\"h\")\n url.searchParams.set(\"q\", value)\n return { url }\n })\n )\n}\n\n/**\n * Mount search sharing\n *\n * @param el - Search sharing element\n * @param options - Options\n *\n * @returns Search sharing component observable\n */\nexport function mountSearchShare(\n el: HTMLAnchorElement, options: MountOptions\n): Observable> {\n const push$ = new Subject()\n push$.subscribe(({ url }) => {\n el.setAttribute(\"data-clipboard-text\", el.href)\n el.href = `${url}`\n })\n\n /* Prevent following of link */\n fromEvent(el, \"click\")\n .subscribe(ev => ev.preventDefault())\n\n /* Create and return component */\n return watchSearchShare(el, options)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n asyncScheduler,\n combineLatestWith,\n distinctUntilChanged,\n filter,\n finalize,\n fromEvent,\n map,\n merge,\n observeOn,\n tap\n} from \"rxjs\"\n\nimport { Keyboard } from \"~/browser\"\nimport {\n SearchResult,\n SearchWorker,\n isSearchResultMessage\n} from \"~/integrations\"\n\nimport { Component, getComponentElement } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search suggestions\n */\nexport interface SearchSuggest {}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n keyboard$: Observable /* Keyboard observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search suggestions\n *\n * This function will perform a lazy rendering of the search results, depending\n * on the vertical offset of the search result container.\n *\n * @param el - Search result list element\n * @param worker - Search worker\n * @param options - Options\n *\n * @returns Search result list component observable\n */\nexport function mountSearchSuggest(\n el: HTMLElement, { rx$ }: SearchWorker, { keyboard$ }: MountOptions\n): Observable> {\n const push$ = new Subject()\n\n /* Retrieve query component and track all changes */\n const query = getComponentElement(\"search-query\")\n const query$ = merge(\n fromEvent(query, \"keydown\"),\n fromEvent(query, \"focus\")\n )\n .pipe(\n observeOn(asyncScheduler),\n map(() => query.value),\n distinctUntilChanged(),\n )\n\n /* Update search suggestions */\n push$\n .pipe(\n combineLatestWith(query$),\n map(([{ suggestions }, value]) => {\n const words = value.split(/([\\s-]+)/)\n if (suggestions?.length && words[words.length - 1]) {\n const last = suggestions[suggestions.length - 1]\n if (last.startsWith(words[words.length - 1]))\n words[words.length - 1] = last\n } else {\n words.length = 0\n }\n return words\n })\n )\n .subscribe(words => el.innerHTML = words\n .join(\"\")\n .replace(/\\s/g, \" \")\n )\n\n /* Set up search keyboard handlers */\n keyboard$\n .pipe(\n filter(({ mode }) => mode === \"search\")\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Right arrow: accept current suggestion */\n case \"ArrowRight\":\n if (\n el.innerText.length &&\n query.selectionStart === query.value.length\n )\n query.value = el.innerText\n break\n }\n })\n\n /* Filter search result message */\n const result$ = rx$\n .pipe(\n filter(isSearchResultMessage),\n map(({ data }) => data)\n )\n\n /* Create and return component */\n return result$\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(() => ({ ref: el }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n NEVER,\n Observable,\n ObservableInput,\n filter,\n merge,\n mergeWith,\n sample,\n take\n} from \"rxjs\"\n\nimport { configuration } from \"~/_\"\nimport {\n Keyboard,\n getActiveElement,\n getElements,\n setToggle\n} from \"~/browser\"\nimport {\n SearchIndex,\n SearchResult,\n isSearchQueryMessage,\n isSearchReadyMessage,\n setupSearchWorker\n} from \"~/integrations\"\n\nimport {\n Component,\n getComponentElement,\n getComponentElements\n} from \"../../_\"\nimport {\n SearchQuery,\n mountSearchQuery\n} from \"../query\"\nimport { mountSearchResult } from \"../result\"\nimport {\n SearchShare,\n mountSearchShare\n} from \"../share\"\nimport {\n SearchSuggest,\n mountSearchSuggest\n} from \"../suggest\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search\n */\nexport type Search =\n | SearchQuery\n | SearchResult\n | SearchShare\n | SearchSuggest\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n index$: ObservableInput /* Search index observable */\n keyboard$: Observable /* Keyboard observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search\n *\n * This function sets up the search functionality, including the underlying\n * web worker and all keyboard bindings.\n *\n * @param el - Search element\n * @param options - Options\n *\n * @returns Search component observable\n */\nexport function mountSearch(\n el: HTMLElement, { index$, keyboard$ }: MountOptions\n): Observable> {\n const config = configuration()\n try {\n const url = __search?.worker || config.search\n const worker = setupSearchWorker(url, index$)\n\n /* Retrieve query and result components */\n const query = getComponentElement(\"search-query\", el)\n const result = getComponentElement(\"search-result\", el)\n\n /* Re-emit query when search is ready */\n const { tx$, rx$ } = worker\n tx$\n .pipe(\n filter(isSearchQueryMessage),\n sample(rx$.pipe(filter(isSearchReadyMessage))),\n take(1)\n )\n .subscribe(tx$.next.bind(tx$))\n\n /* Set up search keyboard handlers */\n keyboard$\n .pipe(\n filter(({ mode }) => mode === \"search\")\n )\n .subscribe(key => {\n const active = getActiveElement()\n switch (key.type) {\n\n /* Enter: go to first (best) result */\n case \"Enter\":\n if (active === query) {\n const anchors = new Map()\n for (const anchor of getElements(\n \":first-child [href]\", result\n )) {\n const article = anchor.firstElementChild!\n anchors.set(anchor, parseFloat(\n article.getAttribute(\"data-md-score\")!\n ))\n }\n\n /* Go to result with highest score, if any */\n if (anchors.size) {\n const [[best]] = [...anchors].sort(([, a], [, b]) => b - a)\n best.click()\n }\n\n /* Otherwise omit form submission */\n key.claim()\n }\n break\n\n /* Escape or Tab: close search */\n case \"Escape\":\n case \"Tab\":\n setToggle(\"search\", false)\n query.blur()\n break\n\n /* Vertical arrows: select previous or next search result */\n case \"ArrowUp\":\n case \"ArrowDown\":\n if (typeof active === \"undefined\") {\n query.focus()\n } else {\n const els = [query, ...getElements(\n \":not(details) > [href], summary, details[open] [href]\",\n result\n )]\n const i = Math.max(0, (\n Math.max(0, els.indexOf(active)) + els.length + (\n key.type === \"ArrowUp\" ? -1 : +1\n )\n ) % els.length)\n els[i].focus()\n }\n\n /* Prevent scrolling of page */\n key.claim()\n break\n\n /* All other keys: hand to search query */\n default:\n if (query !== getActiveElement())\n query.focus()\n }\n })\n\n /* Set up global keyboard handlers */\n keyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\"),\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Open search and select query */\n case \"f\":\n case \"s\":\n case \"/\":\n query.focus()\n query.select()\n\n /* Prevent scrolling of page */\n key.claim()\n break\n }\n })\n\n /* Create and return component */\n const query$ = mountSearchQuery(query, worker)\n const result$ = mountSearchResult(result, worker, { query$ })\n return merge(query$, result$)\n .pipe(\n mergeWith(\n\n /* Search sharing */\n ...getComponentElements(\"search-share\", el)\n .map(child => mountSearchShare(child, { query$ })),\n\n /* Search suggestions */\n ...getComponentElements(\"search-suggest\", el)\n .map(child => mountSearchSuggest(child, worker, { keyboard$ }))\n )\n )\n\n /* Gracefully handle broken search */\n } catch (err) {\n el.hidden = true\n return NEVER\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n ObservableInput,\n combineLatest,\n filter,\n map,\n startWith\n} from \"rxjs\"\n\nimport { getLocation } from \"~/browser\"\nimport {\n SearchIndex,\n setupSearchHighlighter\n} from \"~/integrations\"\nimport { h } from \"~/utilities\"\n\nimport { Component } from \"../../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search highlighting\n */\nexport interface SearchHighlight {\n nodes: Map /* Map of replacements */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount options\n */\ninterface MountOptions {\n index$: ObservableInput /* Search index observable */\n location$: Observable /* Location observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Mount search highlighting\n *\n * @param el - Content element\n * @param options - Options\n *\n * @returns Search highlighting component observable\n */\nexport function mountSearchHiglight(\n el: HTMLElement, { index$, location$ }: MountOptions\n): Observable> {\n return combineLatest([\n index$,\n location$\n .pipe(\n startWith(getLocation()),\n filter(url => !!url.searchParams.get(\"h\"))\n )\n ])\n .pipe(\n map(([index, url]) => setupSearchHighlighter(index.config, true)(\n url.searchParams.get(\"h\")!\n )),\n map(fn => {\n const nodes = new Map()\n\n /* Traverse text nodes and collect matches */\n const it = document.createNodeIterator(el, NodeFilter.SHOW_TEXT)\n for (let node = it.nextNode(); node; node = it.nextNode()) {\n if (node.parentElement?.offsetHeight) {\n const original = node.textContent!\n const replaced = fn(original)\n if (replaced.length > original.length)\n nodes.set(node as ChildNode, replaced)\n }\n }\n\n /* Replace original nodes with matches */\n for (const [node, text] of nodes) {\n const { childNodes } = h(\"span\", null, text)\n node.replaceWith(...Array.from(childNodes))\n }\n\n /* Return component */\n return { ref: el, nodes }\n })\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n animationFrameScheduler,\n auditTime,\n combineLatest,\n defer,\n distinctUntilChanged,\n finalize,\n map,\n tap,\n withLatestFrom\n} from \"rxjs\"\n\nimport {\n Viewport,\n getElement,\n getElementOffset\n} from \"~/browser\"\n\nimport { Component } from \"../_\"\nimport { Header } from \"../header\"\nimport { Main } from \"../main\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Sidebar\n */\nexport interface Sidebar {\n height: number /* Sidebar height */\n locked: boolean /* Sidebar is locked */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n main$: Observable
    /* Main area observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n main$: Observable
    /* Main area observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch sidebar\n *\n * This function returns an observable that computes the visual parameters of\n * the sidebar which depends on the vertical viewport offset, as well as the\n * height of the main area. When the page is scrolled beyond the header, the\n * sidebar is locked and fills the remaining space.\n *\n * @param el - Sidebar element\n * @param options - Options\n *\n * @returns Sidebar observable\n */\nexport function watchSidebar(\n el: HTMLElement, { viewport$, main$ }: WatchOptions\n): Observable {\n const parent = el.parentElement!\n const adjust =\n parent.offsetTop -\n parent.parentElement!.offsetTop\n\n /* Compute the sidebar's available height and if it should be locked */\n return combineLatest([main$, viewport$])\n .pipe(\n map(([{ offset, height }, { offset: { y } }]) => {\n height = height\n + Math.min(adjust, Math.max(0, y - offset))\n - adjust\n return {\n height,\n locked: y >= offset + adjust\n }\n }),\n distinctUntilChanged((a, b) => (\n a.height === b.height &&\n a.locked === b.locked\n ))\n )\n}\n\n/**\n * Mount sidebar\n *\n * This function doesn't set the height of the actual sidebar, but of its first\n * child \u2013 the `.md-sidebar__scrollwrap` element in order to mitigiate jittery\n * sidebars when the footer is scrolled into view. At some point we switched\n * from `absolute` / `fixed` positioning to `sticky` positioning, significantly\n * reducing jitter in some browsers (respectively Firefox and Safari) when\n * scrolling from the top. However, top-aligned sticky positioning means that\n * the sidebar snaps to the bottom when the end of the container is reached.\n * This is what leads to the mentioned jitter, as the sidebar's height may be\n * updated too slowly.\n *\n * This behaviour can be mitigiated by setting the height of the sidebar to `0`\n * while preserving the padding, and the height on its first element.\n *\n * @param el - Sidebar element\n * @param options - Options\n *\n * @returns Sidebar component observable\n */\nexport function mountSidebar(\n el: HTMLElement, { header$, ...options }: MountOptions\n): Observable> {\n const inner = getElement(\".md-sidebar__scrollwrap\", el)\n const { y } = getElementOffset(inner)\n return defer(() => {\n const push$ = new Subject()\n push$\n .pipe(\n auditTime(0, animationFrameScheduler),\n withLatestFrom(header$)\n )\n .subscribe({\n\n /* Handle emission */\n next([{ height }, { height: offset }]) {\n inner.style.height = `${height - 2 * y}px`\n el.style.top = `${offset}px`\n },\n\n /* Handle complete */\n complete() {\n inner.style.height = \"\"\n el.style.top = \"\"\n }\n })\n\n /* Create and return component */\n return watchSidebar(el, options)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { Repo, User } from \"github-types\"\nimport {\n EMPTY,\n Observable,\n catchError,\n defaultIfEmpty,\n map,\n zip\n} from \"rxjs\"\n\nimport { requestJSON } from \"~/browser\"\n\nimport { SourceFacts } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * GitHub release (partial)\n */\ninterface Release {\n tag_name: string /* Tag name */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch GitHub repository facts\n *\n * @param user - GitHub user or organization\n * @param repo - GitHub repository\n *\n * @returns Repository facts observable\n */\nexport function fetchSourceFactsFromGitHub(\n user: string, repo?: string\n): Observable {\n if (typeof repo !== \"undefined\") {\n const url = `https://api.github.com/repos/${user}/${repo}`\n return zip(\n\n /* Fetch version */\n requestJSON(`${url}/releases/latest`)\n .pipe(\n catchError(() => EMPTY), // @todo refactor instant loading\n map(release => ({\n version: release.tag_name\n })),\n defaultIfEmpty({})\n ),\n\n /* Fetch stars and forks */\n requestJSON(url)\n .pipe(\n catchError(() => EMPTY), // @todo refactor instant loading\n map(info => ({\n stars: info.stargazers_count,\n forks: info.forks_count\n })),\n defaultIfEmpty({})\n )\n )\n .pipe(\n map(([release, info]) => ({ ...release, ...info }))\n )\n\n /* User or organization */\n } else {\n const url = `https://api.github.com/users/${user}`\n return requestJSON(url)\n .pipe(\n map(info => ({\n repositories: info.public_repos\n })),\n defaultIfEmpty({})\n )\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { ProjectSchema } from \"gitlab\"\nimport {\n EMPTY,\n Observable,\n catchError,\n defaultIfEmpty,\n map\n} from \"rxjs\"\n\nimport { requestJSON } from \"~/browser\"\n\nimport { SourceFacts } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch GitLab repository facts\n *\n * @param base - GitLab base\n * @param project - GitLab project\n *\n * @returns Repository facts observable\n */\nexport function fetchSourceFactsFromGitLab(\n base: string, project: string\n): Observable {\n const url = `https://${base}/api/v4/projects/${encodeURIComponent(project)}`\n return requestJSON(url)\n .pipe(\n catchError(() => EMPTY), // @todo refactor instant loading\n map(({ star_count, forks_count }) => ({\n stars: star_count,\n forks: forks_count\n })),\n defaultIfEmpty({})\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport { EMPTY, Observable } from \"rxjs\"\n\nimport { fetchSourceFactsFromGitHub } from \"../github\"\nimport { fetchSourceFactsFromGitLab } from \"../gitlab\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Repository facts for repositories\n */\nexport interface RepositoryFacts {\n stars?: number /* Number of stars */\n forks?: number /* Number of forks */\n version?: string /* Latest version */\n}\n\n/**\n * Repository facts for organizations\n */\nexport interface OrganizationFacts {\n repositories?: number /* Number of repositories */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Repository facts\n */\nexport type SourceFacts =\n | RepositoryFacts\n | OrganizationFacts\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch repository facts\n *\n * @param url - Repository URL\n *\n * @returns Repository facts observable\n */\nexport function fetchSourceFacts(\n url: string\n): Observable {\n const [type] = url.match(/(git(?:hub|lab))/i) || []\n switch (type.toLowerCase()) {\n\n /* GitHub repository */\n case \"github\":\n const [, user, repo] = url.match(/^.+github\\.com\\/([^/]+)\\/?([^/]+)?/i)!\n return fetchSourceFactsFromGitHub(user, repo)\n\n /* GitLab repository */\n case \"gitlab\":\n const [, base, slug] = url.match(/^.+?([^/]*gitlab[^/]+)\\/(.+?)\\/?$/i)!\n return fetchSourceFactsFromGitLab(base, slug)\n\n /* Everything else */\n default:\n return EMPTY\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n EMPTY,\n Observable,\n Subject,\n catchError,\n defer,\n filter,\n finalize,\n map,\n of,\n shareReplay,\n tap\n} from \"rxjs\"\n\nimport { getElement } from \"~/browser\"\nimport { renderSourceFacts } from \"~/templates\"\n\nimport { Component } from \"../../_\"\nimport {\n SourceFacts,\n fetchSourceFacts\n} from \"../facts\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Repository information\n */\nexport interface Source {\n facts: SourceFacts /* Repository facts */\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Repository information observable\n */\nlet fetch$: Observable\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch repository information\n *\n * This function tries to read the repository facts from session storage, and\n * if unsuccessful, fetches them from the underlying provider.\n *\n * @param el - Repository information element\n *\n * @returns Repository information observable\n */\nexport function watchSource(\n el: HTMLAnchorElement\n): Observable {\n return fetch$ ||= defer(() => {\n const cached = __md_get(\"__source\", sessionStorage)\n if (cached)\n return of(cached)\n else\n return fetchSourceFacts(el.href)\n .pipe(\n tap(facts => __md_set(\"__source\", facts, sessionStorage))\n )\n })\n .pipe(\n catchError(() => EMPTY),\n filter(facts => Object.keys(facts).length > 0),\n map(facts => ({ facts })),\n shareReplay(1)\n )\n}\n\n/**\n * Mount repository information\n *\n * @param el - Repository information element\n *\n * @returns Repository information component observable\n */\nexport function mountSource(\n el: HTMLAnchorElement\n): Observable> {\n const inner = getElement(\":scope > :last-child\", el)\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe(({ facts }) => {\n inner.appendChild(renderSourceFacts(facts))\n inner.classList.add(\"md-source__repository--active\")\n })\n\n /* Create and return component */\n return watchSource(el)\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n defer,\n distinctUntilKeyChanged,\n finalize,\n map,\n of,\n switchMap,\n tap\n} from \"rxjs\"\n\nimport { feature } from \"~/_\"\nimport {\n Viewport,\n watchElementSize,\n watchViewportAt\n} from \"~/browser\"\n\nimport { Component } from \"../_\"\nimport { Header } from \"../header\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Navigation tabs\n */\nexport interface Tabs {\n hidden: boolean /* Navigation tabs are hidden */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch navigation tabs\n *\n * @param el - Navigation tabs element\n * @param options - Options\n *\n * @returns Navigation tabs observable\n */\nexport function watchTabs(\n el: HTMLElement, { viewport$, header$ }: WatchOptions\n): Observable {\n return watchElementSize(document.body)\n .pipe(\n switchMap(() => watchViewportAt(el, { header$, viewport$ })),\n map(({ offset: { y } }) => {\n return {\n hidden: y >= 10\n }\n }),\n distinctUntilKeyChanged(\"hidden\")\n )\n}\n\n/**\n * Mount navigation tabs\n *\n * This function hides the navigation tabs when scrolling past the threshold\n * and makes them reappear in a nice CSS animation when scrolling back up.\n *\n * @param el - Navigation tabs element\n * @param options - Options\n *\n * @returns Navigation tabs component observable\n */\nexport function mountTabs(\n el: HTMLElement, options: MountOptions\n): Observable> {\n return defer(() => {\n const push$ = new Subject()\n push$.subscribe({\n\n /* Handle emission */\n next({ hidden }) {\n el.hidden = hidden\n },\n\n /* Handle complete */\n complete() {\n el.hidden = false\n }\n })\n\n /* Create and return component */\n return (\n feature(\"navigation.tabs.sticky\")\n ? of({ hidden: false })\n : watchTabs(el, options)\n )\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n bufferCount,\n combineLatestWith,\n debounceTime,\n defer,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n finalize,\n map,\n of,\n repeat,\n scan,\n share,\n skip,\n startWith,\n switchMap,\n takeLast,\n takeUntil,\n tap,\n withLatestFrom\n} from \"rxjs\"\n\nimport { feature } from \"~/_\"\nimport {\n Viewport,\n getElement,\n getElements,\n getLocation,\n getOptionalElement,\n watchElementSize\n} from \"~/browser\"\n\nimport {\n Component,\n getComponentElement\n} from \"../_\"\nimport { Header } from \"../header\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Table of contents\n */\nexport interface TableOfContents {\n prev: HTMLAnchorElement[][] /* Anchors (previous) */\n next: HTMLAnchorElement[][] /* Anchors (next) */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n target$: Observable /* Location target observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch table of contents\n *\n * This is effectively a scroll spy implementation which will account for the\n * fixed header and automatically re-calculate anchor offsets when the viewport\n * is resized. The returned observable will only emit if the table of contents\n * needs to be repainted.\n *\n * This implementation tracks an anchor element's entire path starting from its\n * level up to the top-most anchor element, e.g. `[h3, h2, h1]`. Although the\n * Material theme currently doesn't make use of this information, it enables\n * the styling of the entire hierarchy through customization.\n *\n * Note that the current anchor is the last item of the `prev` anchor list.\n *\n * @param el - Table of contents element\n * @param options - Options\n *\n * @returns Table of contents observable\n */\nexport function watchTableOfContents(\n el: HTMLElement, { viewport$, header$ }: WatchOptions\n): Observable {\n const table = new Map()\n\n /* Compute anchor-to-target mapping */\n const anchors = getElements(\"[href^=\\\\#]\", el)\n for (const anchor of anchors) {\n const id = decodeURIComponent(anchor.hash.substring(1))\n const target = getOptionalElement(`[id=\"${id}\"]`)\n if (typeof target !== \"undefined\")\n table.set(anchor, target)\n }\n\n /* Compute necessary adjustment for header */\n const adjust$ = header$\n .pipe(\n distinctUntilKeyChanged(\"height\"),\n map(({ height }) => {\n const main = getComponentElement(\"main\")\n const grid = getElement(\":scope > :first-child\", main)\n return height + 0.8 * (\n grid.offsetTop -\n main.offsetTop\n )\n }),\n share()\n )\n\n /* Compute partition of previous and next anchors */\n const partition$ = watchElementSize(document.body)\n .pipe(\n distinctUntilKeyChanged(\"height\"),\n\n /* Build index to map anchor paths to vertical offsets */\n switchMap(body => defer(() => {\n let path: HTMLAnchorElement[] = []\n return of([...table].reduce((index, [anchor, target]) => {\n while (path.length) {\n const last = table.get(path[path.length - 1])!\n if (last.tagName >= target.tagName) {\n path.pop()\n } else {\n break\n }\n }\n\n /* If the current anchor is hidden, continue with its parent */\n let offset = target.offsetTop\n while (!offset && target.parentElement) {\n target = target.parentElement\n offset = target.offsetTop\n }\n\n /* Map reversed anchor path to vertical offset */\n return index.set(\n [...path = [...path, anchor]].reverse(),\n offset\n )\n }, new Map()))\n })\n .pipe(\n\n /* Sort index by vertical offset (see https://bit.ly/30z6QSO) */\n map(index => new Map([...index].sort(([, a], [, b]) => a - b))),\n combineLatestWith(adjust$),\n\n /* Re-compute partition when viewport offset changes */\n switchMap(([index, adjust]) => viewport$\n .pipe(\n scan(([prev, next], { offset: { y }, size }) => {\n const last = y + size.height >= Math.floor(body.height)\n\n /* Look forward */\n while (next.length) {\n const [, offset] = next[0]\n if (offset - adjust < y || last) {\n prev = [...prev, next.shift()!]\n } else {\n break\n }\n }\n\n /* Look backward */\n while (prev.length) {\n const [, offset] = prev[prev.length - 1]\n if (offset - adjust >= y && !last) {\n next = [prev.pop()!, ...next]\n } else {\n break\n }\n }\n\n /* Return partition */\n return [prev, next]\n }, [[], [...index]]),\n distinctUntilChanged((a, b) => (\n a[0] === b[0] &&\n a[1] === b[1]\n ))\n )\n )\n )\n )\n )\n\n /* Compute and return anchor list migrations */\n return partition$\n .pipe(\n map(([prev, next]) => ({\n prev: prev.map(([path]) => path),\n next: next.map(([path]) => path)\n })),\n\n /* Extract anchor list migrations */\n startWith({ prev: [], next: [] }),\n bufferCount(2, 1),\n map(([a, b]) => {\n\n /* Moving down */\n if (a.prev.length < b.prev.length) {\n return {\n prev: b.prev.slice(Math.max(0, a.prev.length - 1), b.prev.length),\n next: []\n }\n\n /* Moving up */\n } else {\n return {\n prev: b.prev.slice(-1),\n next: b.next.slice(0, b.next.length - a.next.length)\n }\n }\n })\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Mount table of contents\n *\n * @param el - Table of contents element\n * @param options - Options\n *\n * @returns Table of contents component observable\n */\nexport function mountTableOfContents(\n el: HTMLElement, { viewport$, header$, target$ }: MountOptions\n): Observable> {\n return defer(() => {\n const push$ = new Subject()\n const done$ = push$.pipe(takeLast(1))\n push$.subscribe(({ prev, next }) => {\n\n /* Look forward */\n for (const [anchor] of next) {\n anchor.classList.remove(\"md-nav__link--passed\")\n anchor.classList.remove(\"md-nav__link--active\")\n }\n\n /* Look backward */\n for (const [index, [anchor]] of prev.entries()) {\n anchor.classList.add(\"md-nav__link--passed\")\n anchor.classList.toggle(\n \"md-nav__link--active\",\n index === prev.length - 1\n )\n }\n })\n\n /* Set up anchor tracking, if enabled */\n if (feature(\"navigation.tracking\"))\n viewport$\n .pipe(\n takeUntil(done$),\n distinctUntilKeyChanged(\"offset\"),\n debounceTime(250),\n skip(1),\n takeUntil(target$.pipe(skip(1))),\n repeat({ delay: 250 }),\n withLatestFrom(push$)\n )\n .subscribe(([, { prev }]) => {\n const url = getLocation()\n\n /* Set hash fragment to active anchor */\n const anchor = prev[prev.length - 1]\n if (anchor && anchor.length) {\n const [active] = anchor\n const { hash } = new URL(active.href)\n if (url.hash !== hash) {\n url.hash = hash\n history.replaceState({}, \"\", `${url}`)\n }\n\n /* Reset anchor when at the top */\n } else {\n url.hash = \"\"\n history.replaceState({}, \"\", `${url}`)\n }\n })\n\n /* Create and return component */\n return watchTableOfContents(el, { viewport$, header$ })\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n Subject,\n bufferCount,\n combineLatest,\n distinctUntilChanged,\n distinctUntilKeyChanged,\n endWith,\n finalize,\n map,\n repeat,\n skip,\n takeLast,\n takeUntil,\n tap\n} from \"rxjs\"\n\nimport { Viewport } from \"~/browser\"\n\nimport { Component } from \"../_\"\nimport { Header } from \"../header\"\nimport { Main } from \"../main\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Back-to-top button\n */\nexport interface BackToTop {\n hidden: boolean /* Back-to-top button is hidden */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch options\n */\ninterface WatchOptions {\n viewport$: Observable /* Viewport observable */\n main$: Observable
    /* Main area observable */\n target$: Observable /* Location target observable */\n}\n\n/**\n * Mount options\n */\ninterface MountOptions {\n viewport$: Observable /* Viewport observable */\n header$: Observable
    /* Header observable */\n main$: Observable
    /* Main area observable */\n target$: Observable /* Location target observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Watch back-to-top\n *\n * @param _el - Back-to-top element\n * @param options - Options\n *\n * @returns Back-to-top observable\n */\nexport function watchBackToTop(\n _el: HTMLElement, { viewport$, main$, target$ }: WatchOptions\n): Observable {\n\n /* Compute direction */\n const direction$ = viewport$\n .pipe(\n map(({ offset: { y } }) => y),\n bufferCount(2, 1),\n map(([a, b]) => a > b && b > 0),\n distinctUntilChanged()\n )\n\n /* Compute whether main area is active */\n const active$ = main$\n .pipe(\n map(({ active }) => active)\n )\n\n /* Compute threshold for hiding */\n return combineLatest([active$, direction$])\n .pipe(\n map(([active, direction]) => !(active && direction)),\n distinctUntilChanged(),\n takeUntil(target$.pipe(skip(1))),\n endWith(true),\n repeat({ delay: 250 }),\n map(hidden => ({ hidden }))\n )\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Mount back-to-top\n *\n * @param el - Back-to-top element\n * @param options - Options\n *\n * @returns Back-to-top component observable\n */\nexport function mountBackToTop(\n el: HTMLElement, { viewport$, header$, main$, target$ }: MountOptions\n): Observable> {\n const push$ = new Subject()\n const done$ = push$.pipe(takeLast(1))\n push$.subscribe({\n\n /* Handle emission */\n next({ hidden }) {\n el.hidden = hidden\n if (hidden) {\n el.setAttribute(\"tabindex\", \"-1\")\n el.blur()\n } else {\n el.removeAttribute(\"tabindex\")\n }\n },\n\n /* Handle complete */\n complete() {\n el.style.top = \"\"\n el.hidden = true\n el.removeAttribute(\"tabindex\")\n }\n })\n\n /* Watch header height */\n header$\n .pipe(\n takeUntil(done$),\n distinctUntilKeyChanged(\"height\")\n )\n .subscribe(({ height }) => {\n el.style.top = `${height + 16}px`\n })\n\n /* Create and return component */\n return watchBackToTop(el, { viewport$, main$, target$ })\n .pipe(\n tap(state => push$.next(state)),\n finalize(() => push$.complete()),\n map(state => ({ ref: el, ...state }))\n )\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n fromEvent,\n map,\n mergeMap,\n switchMap,\n takeWhile,\n tap,\n withLatestFrom\n} from \"rxjs\"\n\nimport { getElements } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch options\n */\ninterface PatchOptions {\n document$: Observable /* Document observable */\n tablet$: Observable /* Media tablet observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch indeterminate checkboxes\n *\n * This function replaces the indeterminate \"pseudo state\" with the actual\n * indeterminate state, which is used to keep navigation always expanded.\n *\n * @param options - Options\n */\nexport function patchIndeterminate(\n { document$, tablet$ }: PatchOptions\n): void {\n document$\n .pipe(\n switchMap(() => getElements(\n // @todo `data-md-state` is deprecated and removed in v9\n \".md-toggle--indeterminate, [data-md-state=indeterminate]\"\n )),\n tap(el => {\n el.indeterminate = true\n el.checked = false\n }),\n mergeMap(el => fromEvent(el, \"change\")\n .pipe(\n takeWhile(() => el.classList.contains(\"md-toggle--indeterminate\")),\n map(() => el)\n )\n ),\n withLatestFrom(tablet$)\n )\n .subscribe(([el, tablet]) => {\n el.classList.remove(\"md-toggle--indeterminate\")\n if (tablet)\n el.checked = false\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n filter,\n fromEvent,\n map,\n mergeMap,\n switchMap,\n tap\n} from \"rxjs\"\n\nimport { getElements } from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch options\n */\ninterface PatchOptions {\n document$: Observable /* Document observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Check whether the given device is an Apple device\n *\n * @returns Test result\n */\nfunction isAppleDevice(): boolean {\n return /(iPad|iPhone|iPod)/.test(navigator.userAgent)\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch all elements with `data-md-scrollfix` attributes\n *\n * This is a year-old patch which ensures that overflow scrolling works at the\n * top and bottom of containers on iOS by ensuring a `1px` scroll offset upon\n * the start of a touch event.\n *\n * @see https://bit.ly/2SCtAOO - Original source\n *\n * @param options - Options\n */\nexport function patchScrollfix(\n { document$ }: PatchOptions\n): void {\n document$\n .pipe(\n switchMap(() => getElements(\"[data-md-scrollfix]\")),\n tap(el => el.removeAttribute(\"data-md-scrollfix\")),\n filter(isAppleDevice),\n mergeMap(el => fromEvent(el, \"touchstart\")\n .pipe(\n map(() => el)\n )\n )\n )\n .subscribe(el => {\n const top = el.scrollTop\n\n /* We're at the top of the container */\n if (top === 0) {\n el.scrollTop = 1\n\n /* We're at the bottom of the container */\n } else if (top + el.offsetHeight === el.scrollHeight) {\n el.scrollTop = top - 1\n }\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n Observable,\n combineLatest,\n delay,\n map,\n of,\n switchMap,\n withLatestFrom\n} from \"rxjs\"\n\nimport {\n Viewport,\n watchToggle\n} from \"~/browser\"\n\n/* ----------------------------------------------------------------------------\n * Helper types\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch options\n */\ninterface PatchOptions {\n viewport$: Observable /* Viewport observable */\n tablet$: Observable /* Media tablet observable */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Patch the document body to lock when search is open\n *\n * For mobile and tablet viewports, the search is rendered full screen, which\n * leads to scroll leaking when at the top or bottom of the search result. This\n * function locks the body when the search is in full screen mode, and restores\n * the scroll position when leaving.\n *\n * @param options - Options\n */\nexport function patchScrolllock(\n { viewport$, tablet$ }: PatchOptions\n): void {\n combineLatest([watchToggle(\"search\"), tablet$])\n .pipe(\n map(([active, tablet]) => active && !tablet),\n switchMap(active => of(active)\n .pipe(\n delay(active ? 400 : 100)\n )\n ),\n withLatestFrom(viewport$)\n )\n .subscribe(([active, { offset: { y }}]) => {\n if (active) {\n document.body.setAttribute(\"data-md-scrolllock\", \"\")\n document.body.style.top = `-${y}px`\n } else {\n const value = -1 * parseInt(document.body.style.top, 10)\n document.body.removeAttribute(\"data-md-scrolllock\")\n document.body.style.top = \"\"\n if (value)\n window.scrollTo(0, value)\n }\n })\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Polyfills\n * ------------------------------------------------------------------------- */\n\n/* Polyfill `Object.entries` */\nif (!Object.entries)\n Object.entries = function (obj: object) {\n const data: [string, string][] = []\n for (const key of Object.keys(obj))\n // @ts-expect-error - ignore property access warning\n data.push([key, obj[key]])\n\n /* Return entries */\n return data\n }\n\n/* Polyfill `Object.values` */\nif (!Object.values)\n Object.values = function (obj: object) {\n const data: string[] = []\n for (const key of Object.keys(obj))\n // @ts-expect-error - ignore property access warning\n data.push(obj[key])\n\n /* Return values */\n return data\n }\n\n/* ------------------------------------------------------------------------- */\n\n/* Polyfills for `Element` */\nif (typeof Element !== \"undefined\") {\n\n /* Polyfill `Element.scrollTo` */\n if (!Element.prototype.scrollTo)\n Element.prototype.scrollTo = function (\n x?: ScrollToOptions | number, y?: number\n ): void {\n if (typeof x === \"object\") {\n this.scrollLeft = x.left!\n this.scrollTop = x.top!\n } else {\n this.scrollLeft = x!\n this.scrollTop = y!\n }\n }\n\n /* Polyfill `Element.replaceWith` */\n if (!Element.prototype.replaceWith)\n Element.prototype.replaceWith = function (\n ...nodes: Array\n ): void {\n const parent = this.parentNode\n if (parent) {\n if (nodes.length === 0)\n parent.removeChild(this)\n\n /* Replace children and create text nodes */\n for (let i = nodes.length - 1; i >= 0; i--) {\n let node = nodes[i]\n if (typeof node !== \"object\")\n node = document.createTextNode(node)\n else if (node.parentNode)\n node.parentNode.removeChild(node)\n\n /* Replace child or insert before previous sibling */\n if (!i)\n parent.replaceChild(node, this)\n else\n parent.insertBefore(this.previousSibling!, node)\n }\n }\n }\n}\n"], - "mappings": "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", - "names": ["require_focus_visible", "__commonJSMin", "exports", "module", "global", "factory", "applyFocusVisiblePolyfill", "scope", "hadKeyboardEvent", "hadFocusVisibleRecently", "hadFocusVisibleRecentlyTimeout", "inputTypesAllowlist", "isValidFocusTarget", "el", "focusTriggersKeyboardModality", "type", "tagName", "addFocusVisibleClass", "removeFocusVisibleClass", "onKeyDown", "e", "onPointerDown", "onFocus", "onBlur", "onVisibilityChange", "addInitialPointerMoveListeners", "onInitialPointerMove", "removeInitialPointerMoveListeners", "event", "error", "require_url_polyfill", "__commonJSMin", "exports", "global", "checkIfIteratorIsSupported", "error", "iteratorSupported", "createIterator", "items", "iterator", "value", "serializeParam", "deserializeParam", "polyfillURLSearchParams", "URLSearchParams", "searchString", "typeofSearchString", "_this", "name", "i", "entry", "key", "proto", "callback", "thisArg", "entries", "searchArray", "checkIfURLSearchParamsSupported", "e", "a", "b", "keys", "attributes", "attribute", "checkIfURLIsSupported", "u", "polyfillURL", "_URL", "URL", "url", "base", "doc", "baseElement", "err", "anchorElement", "inputElement", "searchParams", "enableSearchUpdate", "enableSearchParamsUpdate", "methodName", "method", "search", "linkURLWithAnchorAttribute", "attributeName", "expectedPort", "addPortToOrigin", "blob", "getOrigin", "require_tslib", "__commonJSMin", "exports", "module", "__extends", "__assign", "__rest", "__decorate", "__param", "__metadata", "__awaiter", "__generator", "__exportStar", "__values", "__read", "__spread", "__spreadArrays", "__spreadArray", "__await", "__asyncGenerator", "__asyncDelegator", "__asyncValues", "__makeTemplateObject", "__importStar", "__importDefault", "__classPrivateFieldGet", "__classPrivateFieldSet", "__createBinding", "factory", "root", "createExporter", "previous", "id", "v", "exporter", "extendStatics", "d", "b", "p", "__", "t", "s", "n", "e", "i", "decorators", "target", "key", "desc", "c", "r", "paramIndex", "decorator", "metadataKey", "metadataValue", "thisArg", "_arguments", "P", "generator", "adopt", "value", "resolve", "reject", "fulfilled", "step", "rejected", "result", "body", "_", "f", "y", "g", "verb", "op", "m", "o", "k", "k2", "ar", "error", "il", "a", "j", "jl", "to", "from", "pack", "l", "q", "resume", "settle", "fulfill", "cooked", "raw", "__setModuleDefault", "mod", "receiver", "state", "kind", "require_clipboard", "__commonJSMin", "exports", "module", "root", "factory", "__webpack_modules__", "__unused_webpack_module", "__webpack_exports__", "__webpack_require__", "clipboard", "tiny_emitter", "tiny_emitter_default", "listen", "listen_default", "src_select", "select_default", "command", "type", "err", "ClipboardActionCut", "target", "selectedText", "actions_cut", "createFakeElement", "value", "isRTL", "fakeElement", "yPosition", "fakeCopyAction", "options", "ClipboardActionCopy", "actions_copy", "_typeof", "obj", "ClipboardActionDefault", "_options$action", "action", "container", "text", "actions_default", "clipboard_typeof", "_classCallCheck", "instance", "Constructor", "_defineProperties", "props", "i", "descriptor", "_createClass", "protoProps", "staticProps", "_inherits", "subClass", "superClass", "_setPrototypeOf", "o", "p", "_createSuper", "Derived", "hasNativeReflectConstruct", "_isNativeReflectConstruct", "Super", "_getPrototypeOf", "result", "NewTarget", "_possibleConstructorReturn", "self", "call", "_assertThisInitialized", "e", "getAttributeValue", "suffix", "element", "attribute", "Clipboard", "_Emitter", "_super", "trigger", "_this", "_this2", "selector", "actions", "support", "DOCUMENT_NODE_TYPE", "proto", "closest", "__unused_webpack_exports", "_delegate", "callback", "useCapture", "listenerFn", "listener", "delegate", "elements", "is", "listenNode", "listenNodeList", "listenSelector", "node", "nodeList", "select", "isReadOnly", "selection", "range", "E", "name", "ctx", "data", "evtArr", "len", "evts", "liveEvents", "__webpack_module_cache__", "moduleId", "getter", "definition", "key", "prop", "require_escape_html", "__commonJSMin", "exports", "module", "matchHtmlRegExp", "escapeHtml", "string", "str", "match", "escape", "html", "index", "lastIndex", "r", "a", "e", "import_focus_visible", "n", "t", "s", "r", "o", "u", "i", "a", "e", "c", "import_url_polyfill", "import_tslib", "__extends", "__assign", "__rest", "__decorate", "__param", "__metadata", "__awaiter", "__generator", "__exportStar", "__createBinding", "__values", "__read", "__spread", "__spreadArrays", "__spreadArray", "__await", "__asyncGenerator", "__asyncDelegator", "__asyncValues", "__makeTemplateObject", "__importStar", "__importDefault", "__classPrivateFieldGet", "__classPrivateFieldSet", "tslib", "isFunction", "value", "createErrorClass", "createImpl", "_super", "instance", "ctorFunc", "UnsubscriptionError", "createErrorClass", "_super", "errors", "err", "i", "arrRemove", "arr", "item", "index", "Subscription", "initialTeardown", "errors", "_parentage", "_parentage_1", "__values", "_parentage_1_1", "parent_1", "initialFinalizer", "isFunction", "e", "UnsubscriptionError", "_finalizers", "_finalizers_1", "_finalizers_1_1", "finalizer", "execFinalizer", "err", "__spreadArray", "__read", "teardown", "_a", "parent", "arrRemove", "empty", "EMPTY_SUBSCRIPTION", "Subscription", "isSubscription", "value", "isFunction", "execFinalizer", "finalizer", "config", "timeoutProvider", "handler", "timeout", "args", "_i", "delegate", "__spreadArray", "__read", "handle", "reportUnhandledError", "err", "timeoutProvider", "onUnhandledError", "config", "noop", "COMPLETE_NOTIFICATION", "createNotification", "errorNotification", "error", "nextNotification", "value", "kind", "context", "errorContext", "cb", "config", "isRoot", "_a", "errorThrown", "error", "captureError", "err", "Subscriber", "_super", "__extends", "destination", "_this", "isSubscription", "EMPTY_OBSERVER", "next", "error", "complete", "SafeSubscriber", "value", "handleStoppedNotification", "nextNotification", "err", "errorNotification", "COMPLETE_NOTIFICATION", "Subscription", "_bind", "bind", "fn", "thisArg", "ConsumerObserver", "partialObserver", "value", "error", "handleUnhandledError", "err", "SafeSubscriber", "_super", "__extends", "observerOrNext", "complete", "_this", "isFunction", "context_1", "config", "Subscriber", "handleUnhandledError", "error", "config", "captureError", "reportUnhandledError", "defaultErrorHandler", "err", "handleStoppedNotification", "notification", "subscriber", "onStoppedNotification", "timeoutProvider", "EMPTY_OBSERVER", "noop", "observable", "identity", "x", "pipe", "fns", "_i", "pipeFromArray", "identity", "input", "prev", "fn", "Observable", "subscribe", "operator", "observable", "observerOrNext", "error", "complete", "_this", "subscriber", "isSubscriber", "SafeSubscriber", "errorContext", "_a", "source", "sink", "err", "next", "promiseCtor", "getPromiseCtor", "resolve", "reject", "value", "operations", "_i", "pipeFromArray", "x", "getPromiseCtor", "promiseCtor", "_a", "config", "isObserver", "value", "isFunction", "isSubscriber", "Subscriber", "isSubscription", "hasLift", "source", "isFunction", "operate", "init", "liftedSource", "err", "createOperatorSubscriber", "destination", "onNext", "onComplete", "onError", "onFinalize", "OperatorSubscriber", "_super", "__extends", "shouldUnsubscribe", "_this", "value", "err", "closed_1", "_a", "Subscriber", "animationFrameProvider", "callback", "request", "cancel", "delegate", "handle", "timestamp", "Subscription", "args", "_i", "__spreadArray", "__read", "ObjectUnsubscribedError", "createErrorClass", "_super", "Subject", "_super", "__extends", "_this", "operator", "subject", "AnonymousSubject", "ObjectUnsubscribedError", "value", "errorContext", "_b", "__values", "_c", "observer", "err", "observers", "_a", "subscriber", "hasError", "isStopped", "EMPTY_SUBSCRIPTION", "Subscription", "arrRemove", "thrownError", "observable", "Observable", "destination", "source", "AnonymousSubject", "_super", "__extends", "destination", "source", "_this", "value", "_b", "_a", "err", "subscriber", "EMPTY_SUBSCRIPTION", "Subject", "dateTimestampProvider", "ReplaySubject", "_super", "__extends", "_bufferSize", "_windowTime", "_timestampProvider", "dateTimestampProvider", "_this", "value", "_a", "isStopped", "_buffer", "_infiniteTimeWindow", "subscriber", "subscription", "copy", "i", "adjustedBufferSize", "now", "last", "Subject", "Action", "_super", "__extends", "scheduler", "work", "state", "delay", "Subscription", "intervalProvider", "handler", "timeout", "args", "_i", "delegate", "__spreadArray", "__read", "handle", "AsyncAction", "_super", "__extends", "scheduler", "work", "_this", "state", "delay", "id", "_id", "intervalProvider", "_scheduler", "error", "_delay", "errored", "errorValue", "e", "_a", "actions", "arrRemove", "Action", "Scheduler", "schedulerActionCtor", "now", "work", "delay", "state", "dateTimestampProvider", "AsyncScheduler", "_super", "__extends", "SchedulerAction", "now", "Scheduler", "_this", "action", "actions", "error", "asyncScheduler", "AsyncScheduler", "AsyncAction", "async", "AnimationFrameAction", "_super", "__extends", "scheduler", "work", "_this", "id", "delay", "animationFrameProvider", "action", "AsyncAction", "AnimationFrameScheduler", "_super", "__extends", "action", "flushId", "actions", "error", "AsyncScheduler", "animationFrameScheduler", "AnimationFrameScheduler", "AnimationFrameAction", "EMPTY", "Observable", "subscriber", "isScheduler", "value", "isFunction", "last", "arr", "popResultSelector", "args", "isFunction", "popScheduler", "isScheduler", "popNumber", "defaultValue", "isArrayLike", "x", "isPromise", "value", "isFunction", "isInteropObservable", "input", "isFunction", "observable", "isAsyncIterable", "obj", "isFunction", "createInvalidObservableTypeError", "input", "getSymbolIterator", "iterator", "isIterable", "input", "isFunction", "iterator", "readableStreamLikeToAsyncGenerator", "readableStream", "reader", "__await", "_a", "_b", "value", "done", "isReadableStreamLike", "obj", "isFunction", "innerFrom", "input", "Observable", "isInteropObservable", "fromInteropObservable", "isArrayLike", "fromArrayLike", "isPromise", "fromPromise", "isAsyncIterable", "fromAsyncIterable", "isIterable", "fromIterable", "isReadableStreamLike", "fromReadableStreamLike", "createInvalidObservableTypeError", "obj", "subscriber", "obs", "observable", "isFunction", "array", "i", "promise", "value", "err", "reportUnhandledError", "iterable", "iterable_1", "__values", "iterable_1_1", "asyncIterable", "process", "readableStream", "readableStreamLikeToAsyncGenerator", "asyncIterable_1", "__asyncValues", "asyncIterable_1_1", "executeSchedule", "parentSubscription", "scheduler", "work", "delay", "repeat", "scheduleSubscription", "observeOn", "scheduler", "delay", "operate", "source", "subscriber", "createOperatorSubscriber", "value", "executeSchedule", "err", "subscribeOn", "scheduler", "delay", "operate", "source", "subscriber", "scheduleObservable", "input", "scheduler", "innerFrom", "subscribeOn", "observeOn", "schedulePromise", "input", "scheduler", "innerFrom", "subscribeOn", "observeOn", "scheduleArray", "input", "scheduler", "Observable", "subscriber", "i", "scheduleIterable", "input", "scheduler", "Observable", "subscriber", "iterator", "executeSchedule", "value", "done", "_a", "err", "isFunction", "scheduleAsyncIterable", "input", "scheduler", "Observable", "subscriber", "executeSchedule", "iterator", "result", "scheduleReadableStreamLike", "input", "scheduler", "scheduleAsyncIterable", "readableStreamLikeToAsyncGenerator", "scheduled", "input", "scheduler", "isInteropObservable", "scheduleObservable", "isArrayLike", "scheduleArray", "isPromise", "schedulePromise", "isAsyncIterable", "scheduleAsyncIterable", "isIterable", "scheduleIterable", "isReadableStreamLike", "scheduleReadableStreamLike", "createInvalidObservableTypeError", "from", "input", "scheduler", "scheduled", "innerFrom", "of", "args", "_i", "scheduler", "popScheduler", "from", "throwError", "errorOrErrorFactory", "scheduler", "errorFactory", "isFunction", "init", "subscriber", "Observable", "isValidDate", "value", "map", "project", "thisArg", "operate", "source", "subscriber", "index", "createOperatorSubscriber", "value", "isArray", "callOrApply", "fn", "args", "__spreadArray", "__read", "mapOneOrManyArgs", "map", "isArray", "getPrototypeOf", "objectProto", "getKeys", "argsArgArrayOrObject", "args", "first_1", "isPOJO", "keys", "key", "obj", "createObject", "keys", "values", "result", "key", "i", "combineLatest", "args", "_i", "scheduler", "popScheduler", "resultSelector", "popResultSelector", "_a", "argsArgArrayOrObject", "observables", "keys", "from", "result", "Observable", "combineLatestInit", "values", "createObject", "identity", "mapOneOrManyArgs", "valueTransform", "subscriber", "maybeSchedule", "length", "active", "remainingFirstValues", "i", "source", "hasFirstValue", "createOperatorSubscriber", "value", "execute", "subscription", "executeSchedule", "mergeInternals", "source", "subscriber", "project", "concurrent", "onBeforeNext", "expand", "innerSubScheduler", "additionalFinalizer", "buffer", "active", "index", "isComplete", "checkComplete", "outerNext", "value", "doInnerSub", "innerComplete", "innerFrom", "createOperatorSubscriber", "innerValue", "bufferedValue", "executeSchedule", "err", "mergeMap", "project", "resultSelector", "concurrent", "isFunction", "a", "i", "map", "b", "ii", "innerFrom", "operate", "source", "subscriber", "mergeInternals", "mergeAll", "concurrent", "mergeMap", "identity", "concatAll", "mergeAll", "concat", "args", "_i", "concatAll", "from", "popScheduler", "defer", "observableFactory", "Observable", "subscriber", "innerFrom", "nodeEventEmitterMethods", "eventTargetMethods", "jqueryMethods", "fromEvent", "target", "eventName", "options", "resultSelector", "isFunction", "mapOneOrManyArgs", "_a", "__read", "isEventTarget", "methodName", "handler", "isNodeStyleEventEmitter", "toCommonHandlerRegistry", "isJQueryStyleEventEmitter", "add", "remove", "isArrayLike", "mergeMap", "subTarget", "innerFrom", "Observable", "subscriber", "args", "_i", "fromEventPattern", "addHandler", "removeHandler", "resultSelector", "mapOneOrManyArgs", "Observable", "subscriber", "handler", "e", "_i", "retValue", "isFunction", "timer", "dueTime", "intervalOrScheduler", "scheduler", "async", "intervalDuration", "isScheduler", "Observable", "subscriber", "due", "isValidDate", "n", "merge", "args", "_i", "scheduler", "popScheduler", "concurrent", "popNumber", "sources", "innerFrom", "mergeAll", "from", "EMPTY", "NEVER", "Observable", "noop", "isArray", "argsOrArgArray", "args", "filter", "predicate", "thisArg", "operate", "source", "subscriber", "index", "createOperatorSubscriber", "value", "zip", "args", "_i", "resultSelector", "popResultSelector", "sources", "argsOrArgArray", "Observable", "subscriber", "buffers", "completed", "sourceIndex", "innerFrom", "createOperatorSubscriber", "value", "buffer", "result", "__spreadArray", "__read", "i", "EMPTY", "audit", "durationSelector", "operate", "source", "subscriber", "hasValue", "lastValue", "durationSubscriber", "isComplete", "endDuration", "value", "cleanupDuration", "createOperatorSubscriber", "innerFrom", "auditTime", "duration", "scheduler", "asyncScheduler", "audit", "timer", "bufferCount", "bufferSize", "startBufferEvery", "operate", "source", "subscriber", "buffers", "count", "createOperatorSubscriber", "value", "toEmit", "buffers_1", "__values", "buffers_1_1", "buffer", "toEmit_1", "toEmit_1_1", "arrRemove", "buffers_2", "buffers_2_1", "catchError", "selector", "operate", "source", "subscriber", "innerSub", "syncUnsub", "handledResult", "createOperatorSubscriber", "err", "innerFrom", "scanInternals", "accumulator", "seed", "hasSeed", "emitOnNext", "emitBeforeComplete", "source", "subscriber", "hasState", "state", "index", "createOperatorSubscriber", "value", "i", "combineLatest", "args", "_i", "resultSelector", "popResultSelector", "pipe", "__spreadArray", "__read", "mapOneOrManyArgs", "operate", "source", "subscriber", "combineLatestInit", "argsOrArgArray", "combineLatestWith", "otherSources", "_i", "combineLatest", "__spreadArray", "__read", "concatMap", "project", "resultSelector", "isFunction", "mergeMap", "debounceTime", "dueTime", "scheduler", "asyncScheduler", "operate", "source", "subscriber", "activeTask", "lastValue", "lastTime", "emit", "value", "emitWhenIdle", "targetTime", "now", "createOperatorSubscriber", "defaultIfEmpty", "defaultValue", "operate", "source", "subscriber", "hasValue", "createOperatorSubscriber", "value", "take", "count", "EMPTY", "operate", "source", "subscriber", "seen", "createOperatorSubscriber", "value", "ignoreElements", "operate", "source", "subscriber", "createOperatorSubscriber", "noop", "mapTo", "value", "map", "delayWhen", "delayDurationSelector", "subscriptionDelay", "source", "concat", "take", "ignoreElements", "mergeMap", "value", "index", "mapTo", "delay", "due", "scheduler", "asyncScheduler", "duration", "timer", "delayWhen", "distinctUntilChanged", "comparator", "keySelector", "identity", "defaultCompare", "operate", "source", "subscriber", "previousKey", "first", "createOperatorSubscriber", "value", "currentKey", "a", "b", "distinctUntilKeyChanged", "key", "compare", "distinctUntilChanged", "x", "y", "endWith", "values", "_i", "source", "concat", "of", "__spreadArray", "__read", "finalize", "callback", "operate", "source", "subscriber", "takeLast", "count", "EMPTY", "operate", "source", "subscriber", "buffer", "createOperatorSubscriber", "value", "buffer_1", "__values", "buffer_1_1", "merge", "args", "_i", "scheduler", "popScheduler", "concurrent", "popNumber", "argsOrArgArray", "operate", "source", "subscriber", "mergeAll", "from", "__spreadArray", "__read", "mergeWith", "otherSources", "_i", "merge", "__spreadArray", "__read", "repeat", "countOrConfig", "count", "delay", "_a", "EMPTY", "operate", "source", "subscriber", "soFar", "sourceSub", "resubscribe", "notifier", "timer", "innerFrom", "notifierSubscriber_1", "createOperatorSubscriber", "subscribeToSource", "syncUnsub", "sample", "notifier", "operate", "source", "subscriber", "hasValue", "lastValue", "createOperatorSubscriber", "value", "noop", "scan", "accumulator", "seed", "operate", "scanInternals", "share", "options", "_a", "connector", "Subject", "_b", "resetOnError", "_c", "resetOnComplete", "_d", "resetOnRefCountZero", "wrapperSource", "connection", "resetConnection", "subject", "refCount", "hasCompleted", "hasErrored", "cancelReset", "reset", "resetAndUnsubscribe", "conn", "operate", "source", "subscriber", "dest", "handleReset", "SafeSubscriber", "value", "err", "innerFrom", "on", "args", "_i", "onSubscriber", "__spreadArray", "__read", "shareReplay", "configOrBufferSize", "windowTime", "scheduler", "bufferSize", "refCount", "_a", "_b", "_c", "share", "ReplaySubject", "skip", "count", "filter", "_", "index", "skipUntil", "notifier", "operate", "source", "subscriber", "taking", "skipSubscriber", "createOperatorSubscriber", "noop", "innerFrom", "value", "startWith", "values", "_i", "scheduler", "popScheduler", "operate", "source", "subscriber", "concat", "switchMap", "project", "resultSelector", "operate", "source", "subscriber", "innerSubscriber", "index", "isComplete", "checkComplete", "createOperatorSubscriber", "value", "innerIndex", "outerIndex", "innerFrom", "innerValue", "takeUntil", "notifier", "operate", "source", "subscriber", "innerFrom", "createOperatorSubscriber", "noop", "takeWhile", "predicate", "inclusive", "operate", "source", "subscriber", "index", "createOperatorSubscriber", "value", "result", "tap", "observerOrNext", "error", "complete", "tapObserver", "isFunction", "operate", "source", "subscriber", "_a", "isUnsub", "createOperatorSubscriber", "value", "err", "_b", "identity", "defaultThrottleConfig", "throttle", "durationSelector", "config", "operate", "source", "subscriber", "leading", "trailing", "hasValue", "sendValue", "throttled", "isComplete", "endThrottling", "send", "cleanupThrottling", "startThrottle", "value", "innerFrom", "createOperatorSubscriber", "throttleTime", "duration", "scheduler", "config", "asyncScheduler", "defaultThrottleConfig", "duration$", "timer", "throttle", "withLatestFrom", "inputs", "_i", "project", "popResultSelector", "operate", "source", "subscriber", "len", "otherValues", "hasValue", "ready", "i", "innerFrom", "createOperatorSubscriber", "value", "identity", "noop", "values", "__spreadArray", "__read", "zip", "sources", "_i", "operate", "source", "subscriber", "__spreadArray", "__read", "zipWith", "otherInputs", "_i", "zip", "__spreadArray", "__read", "watchDocument", "document$", "ReplaySubject", "fromEvent", "getElements", "selector", "node", "getElement", "el", "getOptionalElement", "getActiveElement", "watchElementFocus", "el", "merge", "fromEvent", "debounceTime", "map", "active", "getActiveElement", "startWith", "distinctUntilChanged", "getElementOffset", "el", "watchElementOffset", "merge", "fromEvent", "auditTime", "animationFrameScheduler", "map", "startWith", "getElementContentOffset", "el", "watchElementContentOffset", "merge", "fromEvent", "auditTime", "animationFrameScheduler", "map", "startWith", "MapShim", "getIndex", "arr", "key", "result", "entry", "index", "class_1", "value", "entries", "callback", "ctx", "_i", "_a", "isBrowser", "global$1", "requestAnimationFrame$1", "trailingTimeout", "throttle", "delay", "leadingCall", "trailingCall", "lastCallTime", "resolvePending", "proxy", "timeoutCallback", "timeStamp", "REFRESH_DELAY", "transitionKeys", "mutationObserverSupported", "ResizeObserverController", "observer", "observers", "changesDetected", "activeObservers", "_b", "propertyName", "isReflowProperty", "defineConfigurable", "target", "props", "getWindowOf", "ownerGlobal", "emptyRect", "createRectInit", "toFloat", "getBordersSize", "styles", "positions", "size", "position", "getPaddings", "paddings", "positions_1", "getSVGContentRect", "bbox", "getHTMLElementContentRect", "clientWidth", "clientHeight", "horizPad", "vertPad", "width", "height", "isDocumentElement", "vertScrollbar", "horizScrollbar", "isSVGGraphicsElement", "getContentRect", "createReadOnlyRect", "x", "y", "Constr", "rect", "ResizeObservation", "ResizeObserverEntry", "rectInit", "contentRect", "ResizeObserverSPI", "controller", "callbackCtx", "observations", "_this", "observation", "ResizeObserver", "method", "ResizeObserver_es_default", "entry$", "Subject", "observer$", "defer", "of", "ResizeObserver_es_default", "entries", "entry", "switchMap", "observer", "merge", "NEVER", "finalize", "shareReplay", "getElementSize", "el", "watchElementSize", "tap", "filter", "target", "map", "startWith", "getElementContentSize", "el", "entry$", "Subject", "observer$", "defer", "of", "entries", "entry", "switchMap", "observer", "merge", "NEVER", "finalize", "shareReplay", "watchElementVisibility", "el", "tap", "filter", "target", "map", "isIntersecting", "watchElementBoundary", "threshold", "watchElementContentOffset", "y", "visible", "getElementSize", "content", "getElementContentSize", "distinctUntilChanged", "toggles", "getElement", "getToggle", "name", "setToggle", "value", "watchToggle", "el", "fromEvent", "map", "startWith", "isSusceptibleToKeyboard", "el", "type", "watchKeyboard", "fromEvent", "filter", "ev", "map", "getToggle", "mode", "active", "getActiveElement", "share", "getLocation", "setLocation", "url", "watchLocation", "Subject", "appendChild", "el", "child", "node", "h", "tag", "attributes", "children", "attr", "truncate", "value", "n", "i", "round", "digits", "getLocationHash", "setLocationHash", "hash", "el", "h", "ev", "watchLocationHash", "fromEvent", "map", "startWith", "filter", "shareReplay", "watchLocationTarget", "id", "getOptionalElement", "watchMedia", "query", "media", "fromEventPattern", "next", "startWith", "watchPrint", "merge", "fromEvent", "map", "at", "query$", "factory", "switchMap", "active", "EMPTY", "request", "url", "options", "from", "catchError", "EMPTY", "switchMap", "res", "throwError", "of", "requestJSON", "shareReplay", "requestXML", "dom", "map", "watchScript", "src", "script", "h", "defer", "merge", "fromEvent", "switchMap", "throwError", "map", "finalize", "take", "getViewportOffset", "watchViewportOffset", "merge", "fromEvent", "map", "startWith", "getViewportSize", "watchViewportSize", "fromEvent", "map", "startWith", "watchViewport", "combineLatest", "watchViewportOffset", "watchViewportSize", "map", "offset", "size", "shareReplay", "watchViewportAt", "el", "viewport$", "header$", "size$", "distinctUntilKeyChanged", "offset$", "combineLatest", "map", "getElementOffset", "height", "offset", "size", "x", "y", "watchWorker", "worker", "tx$", "rx$", "fromEvent", "map", "data", "throttle", "tap", "message", "switchMap", "share", "script", "getElement", "config", "getLocation", "configuration", "feature", "flag", "translation", "key", "value", "getComponentElement", "type", "node", "getElement", "getComponentElements", "getElements", "watchAnnounce", "el", "button", "getElement", "fromEvent", "map", "content", "mountAnnounce", "feature", "EMPTY", "defer", "push$", "Subject", "startWith", "hash", "_a", "tap", "state", "finalize", "__spreadValues", "watchConsent", "el", "target$", "map", "target", "mountConsent", "options", "internal$", "Subject", "hidden", "tap", "state", "finalize", "__spreadValues", "import_clipboard", "renderAnnotation", "id", "h", "renderClipboardButton", "id", "h", "translation", "renderSearchDocument", "document", "flag", "parent", "teaser", "missing", "key", "list", "h", "url", "feature", "match", "highlight", "value", "truncate", "tag", "translation", "renderSearchResultItem", "result", "threshold", "docs", "doc", "article", "index", "best", "more", "children", "section", "renderSourceFacts", "facts", "h", "key", "value", "round", "renderTabbedControl", "type", "classes", "h", "renderTable", "table", "h", "renderVersion", "version", "config", "configuration", "url", "h", "renderVersionSelector", "versions", "active", "translation", "watchAnnotation", "el", "container", "offset$", "defer", "combineLatest", "watchElementOffset", "watchElementContentOffset", "map", "x", "y", "scroll", "width", "getElementSize", "watchElementFocus", "switchMap", "active", "offset", "take", "mountAnnotation", "push$", "Subject", "done$", "takeLast", "watchElementVisibility", "takeUntil", "visible", "throttleTime", "animationFrameScheduler", "origin", "index", "getElement", "blur$", "fromEvent", "EMPTY", "tap", "ev", "state", "finalize", "__spreadValues", "findAnnotationMarkers", "container", "markers", "comment", "getElements", "match", "text", "marker", "swap", "source", "target", "mountAnnotationList", "el", "print$", "annotations", "id", "getOptionalElement", "renderAnnotation", "EMPTY", "defer", "done$", "Subject", "takeUntil", "takeLast", "active", "annotation", "inner", "getElement", "child", "merge", "mountAnnotation", "finalize", "share", "sequence", "findCandidateList", "el", "sibling", "watchCodeBlock", "watchElementSize", "map", "width", "getElementContentSize", "distinctUntilKeyChanged", "mountCodeBlock", "options", "hover", "factory$", "defer", "push$", "Subject", "scrollable", "ClipboardJS", "parent", "renderClipboardButton", "container", "list", "feature", "annotations$", "mountAnnotationList", "tap", "state", "finalize", "__spreadValues", "mergeWith", "takeUntil", "takeLast", "height", "distinctUntilChanged", "switchMap", "active", "EMPTY", "watchElementVisibility", "filter", "visible", "take", "mermaid$", "sequence", "fetchScripts", "watchScript", "of", "mountMermaid", "el", "tap", "mermaid_default", "map", "shareReplay", "id", "host", "h", "svg", "shadow", "watchDetails", "el", "target$", "print$", "open", "merge", "map", "target", "filter", "details", "active", "tap", "mountDetails", "options", "defer", "push$", "Subject", "action", "reveal", "state", "finalize", "__spreadValues", "sentinel", "h", "mountDataTable", "el", "renderTable", "of", "watchContentTabs", "el", "inputs", "getElements", "initial", "input", "merge", "fromEvent", "map", "getElement", "startWith", "active", "mountContentTabs", "prev", "renderTabbedControl", "next", "container", "defer", "push$", "Subject", "done$", "takeLast", "combineLatest", "watchElementSize", "auditTime", "animationFrameScheduler", "takeUntil", "size", "offset", "getElementOffset", "width", "getElementSize", "content", "getElementContentOffset", "watchElementContentOffset", "getElementContentSize", "direction", "feature", "skip", "tab", "set", "tabs", "tap", "state", "finalize", "__spreadValues", "subscribeOn", "asyncScheduler", "mountContent", "el", "target$", "print$", "merge", "getElements", "child", "mountCodeBlock", "mountMermaid", "mountDataTable", "mountDetails", "mountContentTabs", "watchDialog", "_el", "alert$", "switchMap", "message", "merge", "of", "delay", "map", "active", "mountDialog", "el", "options", "inner", "getElement", "defer", "push$", "Subject", "tap", "state", "finalize", "__spreadValues", "isHidden", "viewport$", "feature", "of", "direction$", "map", "y", "bufferCount", "a", "b", "distinctUntilKeyChanged", "hidden$", "combineLatest", "filter", "offset", "direction", "distinctUntilChanged", "search$", "watchToggle", "search", "switchMap", "active", "startWith", "watchHeader", "el", "options", "defer", "watchElementSize", "height", "hidden", "shareReplay", "mountHeader", "header$", "main$", "push$", "Subject", "done$", "takeLast", "combineLatestWith", "takeUntil", "state", "__spreadValues", "watchHeaderTitle", "el", "viewport$", "header$", "watchViewportAt", "map", "y", "height", "getElementSize", "distinctUntilKeyChanged", "mountHeaderTitle", "options", "defer", "push$", "Subject", "active", "heading", "getOptionalElement", "EMPTY", "tap", "state", "finalize", "__spreadValues", "watchMain", "el", "viewport$", "header$", "adjust$", "map", "height", "distinctUntilChanged", "border$", "switchMap", "watchElementSize", "distinctUntilKeyChanged", "combineLatest", "header", "top", "bottom", "y", "a", "b", "watchPalette", "inputs", "current", "input", "of", "mergeMap", "fromEvent", "map", "startWith", "shareReplay", "mountPalette", "el", "defer", "push$", "Subject", "palette", "key", "value", "index", "label", "observeOn", "asyncScheduler", "getElements", "tap", "state", "finalize", "__spreadValues", "import_clipboard", "extract", "el", "text", "setupClipboardJS", "alert$", "ClipboardJS", "Observable", "subscriber", "getElement", "ev", "tap", "map", "translation", "preprocess", "urls", "root", "next", "a", "b", "url", "index", "fetchSitemap", "base", "cached", "of", "config", "configuration", "requestXML", "map", "sitemap", "getElements", "node", "catchError", "EMPTY", "defaultIfEmpty", "tap", "setupInstantLoading", "document$", "location$", "viewport$", "config", "configuration", "fromEvent", "favicon", "getOptionalElement", "push$", "fetchSitemap", "map", "paths", "path", "switchMap", "urls", "filter", "ev", "el", "url", "of", "NEVER", "share", "pop$", "merge", "distinctUntilChanged", "a", "b", "response$", "distinctUntilKeyChanged", "request", "catchError", "setLocation", "sample", "dom", "res", "skip", "replacement", "selector", "feature", "source", "target", "getComponentElement", "getElements", "concatMap", "script", "h", "name", "Observable", "observer", "EMPTY", "offset", "setLocationHash", "skipUntil", "debounceTime", "bufferCount", "state", "import_escape_html", "import_escape_html", "setupSearchHighlighter", "config", "escape", "separator", "highlight", "_", "data", "term", "query", "match", "value", "escapeHTML", "defaultTransform", "query", "terms", "index", "isSearchReadyMessage", "message", "isSearchQueryMessage", "isSearchResultMessage", "setupSearchIndex", "config", "docs", "translation", "options", "feature", "setupSearchWorker", "url", "index", "configuration", "worker", "tx$", "Subject", "rx$", "watchWorker", "map", "message", "isSearchResultMessage", "result", "document", "share", "from", "data", "setupVersionSelector", "document$", "config", "configuration", "versions$", "requestJSON", "catchError", "EMPTY", "current$", "map", "versions", "current", "version", "aliases", "switchMap", "urls", "fromEvent", "filter", "ev", "withLatestFrom", "el", "url", "of", "fetchSitemap", "sitemap", "path", "getLocation", "setLocation", "combineLatest", "getElement", "renderVersionSelector", "_a", "outdated", "latest", "warning", "getComponentElements", "watchSearchQuery", "el", "rx$", "fn", "defaultTransform", "searchParams", "getLocation", "setToggle", "param$", "filter", "isSearchReadyMessage", "take", "map", "watchToggle", "active", "url", "value", "focus$", "watchElementFocus", "value$", "merge", "fromEvent", "delay", "startWith", "distinctUntilChanged", "combineLatest", "focus", "shareReplay", "mountSearchQuery", "tx$", "push$", "Subject", "done$", "takeLast", "distinctUntilKeyChanged", "translation", "takeUntil", "tap", "state", "finalize", "__spreadValues", "share", "mountSearchResult", "el", "rx$", "query$", "push$", "Subject", "boundary$", "watchElementBoundary", "filter", "meta", "getElement", "list", "ready$", "isSearchReadyMessage", "take", "withLatestFrom", "skipUntil", "items", "value", "translation", "round", "tap", "switchMap", "merge", "of", "bufferCount", "zipWith", "chunk", "result", "renderSearchResultItem", "isSearchResultMessage", "map", "data", "state", "finalize", "__spreadValues", "watchSearchShare", "_el", "query$", "map", "value", "url", "getLocation", "mountSearchShare", "el", "options", "push$", "Subject", "fromEvent", "ev", "tap", "state", "finalize", "__spreadValues", "mountSearchSuggest", "el", "rx$", "keyboard$", "push$", "Subject", "query", "getComponentElement", "query$", "merge", "fromEvent", "observeOn", "asyncScheduler", "map", "distinctUntilChanged", "combineLatestWith", "suggestions", "value", "words", "last", "filter", "mode", "key", "isSearchResultMessage", "data", "tap", "state", "finalize", "mountSearch", "el", "index$", "keyboard$", "config", "configuration", "url", "worker", "setupSearchWorker", "query", "getComponentElement", "result", "tx$", "rx$", "filter", "isSearchQueryMessage", "sample", "isSearchReadyMessage", "take", "mode", "key", "active", "getActiveElement", "anchors", "anchor", "getElements", "article", "best", "a", "b", "setToggle", "els", "i", "query$", "mountSearchQuery", "result$", "mountSearchResult", "merge", "mergeWith", "getComponentElements", "child", "mountSearchShare", "mountSearchSuggest", "err", "NEVER", "mountSearchHiglight", "el", "index$", "location$", "combineLatest", "startWith", "getLocation", "filter", "url", "map", "index", "setupSearchHighlighter", "fn", "_a", "nodes", "it", "node", "original", "replaced", "text", "childNodes", "h", "watchSidebar", "el", "viewport$", "main$", "parent", "adjust", "combineLatest", "map", "offset", "height", "y", "distinctUntilChanged", "a", "b", "mountSidebar", "_a", "_b", "header$", "options", "__objRest", "inner", "getElement", "getElementOffset", "defer", "push$", "Subject", "auditTime", "animationFrameScheduler", "withLatestFrom", "tap", "state", "finalize", "__spreadValues", "fetchSourceFactsFromGitHub", "user", "repo", "url", "zip", "requestJSON", "catchError", "EMPTY", "map", "release", "defaultIfEmpty", "info", "__spreadValues", "fetchSourceFactsFromGitLab", "base", "project", "url", "requestJSON", "catchError", "EMPTY", "map", "star_count", "forks_count", "defaultIfEmpty", "fetchSourceFacts", "url", "type", "user", "repo", "fetchSourceFactsFromGitHub", "base", "slug", "fetchSourceFactsFromGitLab", "EMPTY", "fetch$", "watchSource", "el", "defer", "cached", "of", "fetchSourceFacts", "tap", "facts", "catchError", "EMPTY", "filter", "map", "shareReplay", "mountSource", "inner", "getElement", "push$", "Subject", "renderSourceFacts", "state", "finalize", "__spreadValues", "watchTabs", "el", "viewport$", "header$", "watchElementSize", "switchMap", "watchViewportAt", "map", "y", "distinctUntilKeyChanged", "mountTabs", "options", "defer", "push$", "Subject", "hidden", "feature", "of", "tap", "state", "finalize", "__spreadValues", "watchTableOfContents", "el", "viewport$", "header$", "table", "anchors", "getElements", "anchor", "id", "target", "getOptionalElement", "adjust$", "distinctUntilKeyChanged", "map", "height", "main", "getComponentElement", "grid", "getElement", "share", "watchElementSize", "switchMap", "body", "defer", "path", "of", "index", "offset", "a", "b", "combineLatestWith", "adjust", "scan", "prev", "next", "y", "size", "last", "distinctUntilChanged", "startWith", "bufferCount", "mountTableOfContents", "target$", "push$", "Subject", "done$", "takeLast", "feature", "takeUntil", "debounceTime", "skip", "repeat", "withLatestFrom", "url", "getLocation", "active", "hash", "tap", "state", "finalize", "__spreadValues", "watchBackToTop", "_el", "viewport$", "main$", "target$", "direction$", "map", "y", "bufferCount", "b", "distinctUntilChanged", "active$", "active", "combineLatest", "direction", "takeUntil", "skip", "endWith", "repeat", "hidden", "mountBackToTop", "el", "header$", "push$", "Subject", "done$", "takeLast", "distinctUntilKeyChanged", "height", "tap", "state", "finalize", "__spreadValues", "patchIndeterminate", "document$", "tablet$", "switchMap", "getElements", "tap", "el", "mergeMap", "fromEvent", "takeWhile", "map", "withLatestFrom", "tablet", "isAppleDevice", "patchScrollfix", "document$", "switchMap", "getElements", "tap", "el", "filter", "mergeMap", "fromEvent", "map", "top", "patchScrolllock", "viewport$", "tablet$", "combineLatest", "watchToggle", "map", "active", "tablet", "switchMap", "of", "delay", "withLatestFrom", "y", "value", "obj", "data", "key", "x", "y", "nodes", "parent", "i", "node", "document$", "watchDocument", "location$", "watchLocation", "target$", "watchLocationTarget", "keyboard$", "watchKeyboard", "viewport$", "watchViewport", "tablet$", "watchMedia", "screen$", "print$", "watchPrint", "config", "configuration", "index$", "requestJSON", "NEVER", "alert$", "Subject", "setupClipboardJS", "feature", "setupInstantLoading", "_a", "setupVersionSelector", "merge", "delay", "setToggle", "filter", "mode", "key", "prev", "getOptionalElement", "next", "patchIndeterminate", "patchScrollfix", "patchScrolllock", "header$", "watchHeader", "getComponentElement", "main$", "map", "switchMap", "el", "watchMain", "shareReplay", "control$", "getComponentElements", "mountConsent", "mountDialog", "mountHeader", "mountPalette", "mountSearch", "mountSource", "content$", "defer", "mountAnnounce", "mountContent", "mountSearchHiglight", "EMPTY", "mountHeaderTitle", "at", "mountSidebar", "mountTabs", "mountTableOfContents", "mountBackToTop", "component$", "mergeWith"] -} diff --git a/5.x/assets/javascripts/lunr/min/lunr.ar.min.js b/5.x/assets/javascripts/lunr/min/lunr.ar.min.js index 248ddc5d1..9b06c26c1 100644 --- a/5.x/assets/javascripts/lunr/min/lunr.ar.min.js +++ b/5.x/assets/javascripts/lunr/min/lunr.ar.min.js @@ -1 +1 @@ -!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.ar=function(){this.pipeline.reset(),this.pipeline.add(e.ar.trimmer,e.ar.stopWordFilter,e.ar.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.ar.stemmer))},e.ar.wordCharacters="ء-ٛٱـ",e.ar.trimmer=e.trimmerSupport.generateTrimmer(e.ar.wordCharacters),e.Pipeline.registerFunction(e.ar.trimmer,"trimmer-ar"),e.ar.stemmer=function(){var e=this;return e.result=!1,e.preRemoved=!1,e.sufRemoved=!1,e.pre={pre1:"ف ك ب و س ل ن ا ي ت",pre2:"ال لل",pre3:"بال وال فال تال كال ولل",pre4:"فبال كبال وبال وكال"},e.suf={suf1:"ه ك ت ن ا ي",suf2:"نك نه ها وك يا اه ون ين تن تم نا وا ان كم كن ني نن ما هم هن تك ته ات يه",suf3:"تين كهم نيه نهم ونه وها يهم ونا ونك وني وهم تكم تنا تها تني تهم كما كها ناه نكم هنا تان يها",suf4:"كموه ناها ونني ونهم تكما تموه تكاه كماه ناكم ناهم نيها وننا"},e.patterns=JSON.parse('{"pt43":[{"pt":[{"c":"ا","l":1}]},{"pt":[{"c":"ا,ت,ن,ي","l":0}],"mPt":[{"c":"ف","l":0,"m":1},{"c":"ع","l":1,"m":2},{"c":"ل","l":2,"m":3}]},{"pt":[{"c":"و","l":2}],"mPt":[{"c":"ف","l":0,"m":0},{"c":"ع","l":1,"m":1},{"c":"ل","l":2,"m":3}]},{"pt":[{"c":"ا","l":2}]},{"pt":[{"c":"ي","l":2}],"mPt":[{"c":"ف","l":0,"m":0},{"c":"ع","l":1,"m":1},{"c":"ا","l":2},{"c":"ل","l":3,"m":3}]},{"pt":[{"c":"م","l":0}]}],"pt53":[{"pt":[{"c":"ت","l":0},{"c":"ا","l":2}]},{"pt":[{"c":"ا,ن,ت,ي","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":0},{"c":"ا","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":3},{"c":"ل","l":3,"m":4},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":0},{"c":"ا","l":3}],"mPt":[{"c":"ف","l":0,"m":1},{"c":"ع","l":1,"m":2},{"c":"ل","l":2,"m":4}]},{"pt":[{"c":"ا","l":3},{"c":"ن","l":4}]},{"pt":[{"c":"ت","l":0},{"c":"ي","l":3}]},{"pt":[{"c":"م","l":0},{"c":"و","l":3}]},{"pt":[{"c":"ا","l":1},{"c":"و","l":3}]},{"pt":[{"c":"و","l":1},{"c":"ا","l":2}]},{"pt":[{"c":"م","l":0},{"c":"ا","l":3}]},{"pt":[{"c":"م","l":0},{"c":"ي","l":3}]},{"pt":[{"c":"ا","l":2},{"c":"ن","l":3}]},{"pt":[{"c":"م","l":0},{"c":"ن","l":1}],"mPt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ف","l":2,"m":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"م","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"م","l":0},{"c":"ا","l":2}]},{"pt":[{"c":"م","l":1},{"c":"ا","l":3}]},{"pt":[{"c":"ي,ت,ا,ن","l":0},{"c":"ت","l":1}],"mPt":[{"c":"ف","l":0,"m":2},{"c":"ع","l":1,"m":3},{"c":"ا","l":2},{"c":"ل","l":3,"m":4}]},{"pt":[{"c":"ت,ي,ا,ن","l":0},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ت","l":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":2},{"c":"ي","l":3}]},{"pt":[{"c":"ا,ي,ت,ن","l":0},{"c":"ن","l":1}],"mPt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ف","l":2,"m":2},{"c":"ع","l":3,"m":3},{"c":"ا","l":4},{"c":"ل","l":5,"m":4}]},{"pt":[{"c":"ا","l":3},{"c":"ء","l":4}]}],"pt63":[{"pt":[{"c":"ا","l":0},{"c":"ت","l":2},{"c":"ا","l":4}]},{"pt":[{"c":"ا,ت,ن,ي","l":0},{"c":"س","l":1},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ف","l":3,"m":3},{"c":"ع","l":4,"m":4},{"c":"ا","l":5},{"c":"ل","l":6,"m":5}]},{"pt":[{"c":"ا,ن,ت,ي","l":0},{"c":"و","l":3}]},{"pt":[{"c":"م","l":0},{"c":"س","l":1},{"c":"ت","l":2}],"mPt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ف","l":3,"m":3},{"c":"ع","l":4,"m":4},{"c":"ا","l":5},{"c":"ل","l":6,"m":5}]},{"pt":[{"c":"ي","l":1},{"c":"ي","l":3},{"c":"ا","l":4},{"c":"ء","l":5}]},{"pt":[{"c":"ا","l":0},{"c":"ن","l":1},{"c":"ا","l":4}]}],"pt54":[{"pt":[{"c":"ت","l":0}]},{"pt":[{"c":"ا,ي,ت,ن","l":0}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":2},{"c":"ل","l":3,"m":3},{"c":"ر","l":4,"m":4},{"c":"ا","l":5},{"c":"ر","l":6,"m":4}]},{"pt":[{"c":"م","l":0}],"mPt":[{"c":"ا","l":0},{"c":"ف","l":1,"m":1},{"c":"ع","l":2,"m":2},{"c":"ل","l":3,"m":3},{"c":"ر","l":4,"m":4},{"c":"ا","l":5},{"c":"ر","l":6,"m":4}]},{"pt":[{"c":"ا","l":2}]},{"pt":[{"c":"ا","l":0},{"c":"ن","l":2}]}],"pt64":[{"pt":[{"c":"ا","l":0},{"c":"ا","l":4}]},{"pt":[{"c":"م","l":0},{"c":"ت","l":1}]}],"pt73":[{"pt":[{"c":"ا","l":0},{"c":"س","l":1},{"c":"ت","l":2},{"c":"ا","l":5}]}],"pt75":[{"pt":[{"c":"ا","l":0},{"c":"ا","l":5}]}]}'),e.execArray=["cleanWord","removeDiacritics","cleanAlef","removeStopWords","normalizeHamzaAndAlef","removeStartWaw","removePre432","removeEndTaa","wordCheck"],e.stem=function(){var r=0;for(e.result=!1,e.preRemoved=!1,e.sufRemoved=!1;r=0)return!0},e.normalizeHamzaAndAlef=function(){return e.word=e.word.replace("ؤ","ء"),e.word=e.word.replace("ئ","ء"),e.word=e.word.replace(/([\u0627])\1+/gi,"ا"),!1},e.removeEndTaa=function(){return!(e.word.length>2)||(e.word=e.word.replace(/[\u0627]$/,""),e.word=e.word.replace("ة",""),!1)},e.removeStartWaw=function(){return e.word.length>3&&"و"==e.word[0]&&"و"==e.word[1]&&(e.word=e.word.slice(1)),!1},e.removePre432=function(){var r=e.word;if(e.word.length>=7){var t=new RegExp("^("+e.pre.pre4.split(" ").join("|")+")");e.word=e.word.replace(t,"")}if(e.word==r&&e.word.length>=6){var c=new RegExp("^("+e.pre.pre3.split(" ").join("|")+")");e.word=e.word.replace(c,"")}if(e.word==r&&e.word.length>=5){var l=new RegExp("^("+e.pre.pre2.split(" ").join("|")+")");e.word=e.word.replace(l,"")}return r!=e.word&&(e.preRemoved=!0),!1},e.patternCheck=function(r){for(var t=0;t3){var t=new RegExp("^("+e.pre.pre1.split(" ").join("|")+")");e.word=e.word.replace(t,"")}return r!=e.word&&(e.preRemoved=!0),!1},e.removeSuf1=function(){var r=e.word;if(0==e.sufRemoved&&e.word.length>3){var t=new RegExp("("+e.suf.suf1.split(" ").join("|")+")$");e.word=e.word.replace(t,"")}return r!=e.word&&(e.sufRemoved=!0),!1},e.removeSuf432=function(){var r=e.word;if(e.word.length>=6){var t=new RegExp("("+e.suf.suf4.split(" ").join("|")+")$");e.word=e.word.replace(t,"")}if(e.word==r&&e.word.length>=5){var c=new RegExp("("+e.suf.suf3.split(" ").join("|")+")$");e.word=e.word.replace(c,"")}if(e.word==r&&e.word.length>=4){var l=new RegExp("("+e.suf.suf2.split(" ").join("|")+")$");e.word=e.word.replace(l,"")}return r!=e.word&&(e.sufRemoved=!0),!1},e.wordCheck=function(){for(var r=(e.word,[e.removeSuf432,e.removeSuf1,e.removePre1]),t=0,c=!1;e.word.length>=7&&!e.result&&t=0)return!0},e.normalizeHamzaAndAlef=function(){return e.word=e.word.replace("ؤ","ء"),e.word=e.word.replace("ئ","ء"),e.word=e.word.replace(/([\u0627])\1+/gi,"ا"),!1},e.removeEndTaa=function(){return!(e.word.length>2)||(e.word=e.word.replace(/[\u0627]$/,""),e.word=e.word.replace("ة",""),!1)},e.removeStartWaw=function(){return e.word.length>3&&"و"==e.word[0]&&"و"==e.word[1]&&(e.word=e.word.slice(1)),!1},e.removePre432=function(){var r=e.word;if(e.word.length>=7){var t=new RegExp("^("+e.pre.pre4.split(" ").join("|")+")");e.word=e.word.replace(t,"")}if(e.word==r&&e.word.length>=6){var c=new RegExp("^("+e.pre.pre3.split(" ").join("|")+")");e.word=e.word.replace(c,"")}if(e.word==r&&e.word.length>=5){var l=new RegExp("^("+e.pre.pre2.split(" ").join("|")+")");e.word=e.word.replace(l,"")}return r!=e.word&&(e.preRemoved=!0),!1},e.patternCheck=function(r){for(var t=0;t3){var t=new RegExp("^("+e.pre.pre1.split(" ").join("|")+")");e.word=e.word.replace(t,"")}return r!=e.word&&(e.preRemoved=!0),!1},e.removeSuf1=function(){var r=e.word;if(0==e.sufRemoved&&e.word.length>3){var t=new RegExp("("+e.suf.suf1.split(" ").join("|")+")$");e.word=e.word.replace(t,"")}return r!=e.word&&(e.sufRemoved=!0),!1},e.removeSuf432=function(){var r=e.word;if(e.word.length>=6){var t=new RegExp("("+e.suf.suf4.split(" ").join("|")+")$");e.word=e.word.replace(t,"")}if(e.word==r&&e.word.length>=5){var c=new RegExp("("+e.suf.suf3.split(" ").join("|")+")$");e.word=e.word.replace(c,"")}if(e.word==r&&e.word.length>=4){var l=new RegExp("("+e.suf.suf2.split(" ").join("|")+")$");e.word=e.word.replace(l,"")}return r!=e.word&&(e.sufRemoved=!0),!1},e.wordCheck=function(){for(var r=(e.word,[e.removeSuf432,e.removeSuf1,e.removePre1]),t=0,c=!1;e.word.length>=7&&!e.result&&t]/;ne.exports=we;function we(t){var e=""+t,r=Le.exec(e);if(!r)return e;var n,i="",s=0,o=0;for(s=r.index;s=0;r--){let n=t[r];typeof n!="object"?n=document.createTextNode(n):n.parentNode&&n.parentNode.removeChild(n),r?e.insertBefore(this.previousSibling,n):e.replaceChild(n,this)}}}));var ie=H(q());function se(t){let e=new Map,r=new Set;for(let n of t){let[i,s]=n.location.split("#"),o=n.location,a=n.title,u=n.tags,c=(0,ie.default)(n.text).replace(/\s+(?=[,.:;!?])/g,"").replace(/\s+/g," ");if(s){let h=e.get(i);r.has(h)?e.set(o,{location:o,title:a,text:c,parent:h}):(h.title=n.title,h.text=c,r.add(h))}else e.set(o,M({location:o,title:a,text:c},u&&{tags:u}))}return e}var oe=H(q());function ae(t,e){let r=new RegExp(t.separator,"img"),n=(i,s,o)=>`${s}${o}`;return i=>{i=i.replace(/[\s*+\-:~^]+/g," ").trim();let s=new RegExp(`(^|${t.separator})(${i.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(r,"|")})`,"img");return o=>(e?(0,oe.default)(o):o).replace(s,n).replace(/<\/mark>(\s+)]*>/img,"$1")}}function ue(t){let e=new lunr.Query(["title","text"]);return new lunr.QueryParser(t,e).parse(),e.clauses}function ce(t,e){var i;let r=new Set(t),n={};for(let s=0;s!n.has(i)))]}var U=class{constructor({config:e,docs:r,options:n}){this.options=n,this.documents=se(r),this.highlight=ae(e,!1),lunr.tokenizer.separator=new RegExp(e.separator),this.index=lunr(function(){e.lang.length===1&&e.lang[0]!=="en"?this.use(lunr[e.lang[0]]):e.lang.length>1&&this.use(lunr.multiLanguage(...e.lang));let i=Ee(["trimmer","stopWordFilter","stemmer"],n.pipeline);for(let s of e.lang.map(o=>o==="en"?lunr:lunr[o]))for(let o of i)this.pipeline.remove(s[o]),this.searchPipeline.remove(s[o]);this.ref("location"),this.field("title",{boost:1e3}),this.field("text"),this.field("tags",{boost:1e6,extractor:s=>{let{tags:o=[]}=s;return o.reduce((a,u)=>[...a,...lunr.tokenizer(u)],[])}});for(let s of r)this.add(s,{boost:s.boost})})}search(e){if(e)try{let r=this.highlight(e),n=ue(e).filter(o=>o.presence!==lunr.Query.presence.PROHIBITED),i=this.index.search(`${e}*`).reduce((o,{ref:a,score:u,matchData:c})=>{let h=this.documents.get(a);if(typeof h!="undefined"){let{location:y,title:g,text:b,tags:m,parent:Q}=h,p=ce(n,Object.keys(c.metadata)),d=+!Q+ +Object.values(p).every(w=>w);o.push(Z(M({location:y,title:r(g),text:r(b)},m&&{tags:m.map(r)}),{score:u*(1+d),terms:p}))}return o},[]).sort((o,a)=>a.score-o.score).reduce((o,a)=>{let u=this.documents.get(a.location);if(typeof u!="undefined"){let c="parent"in u?u.parent.location:u.location;o.set(c,[...o.get(c)||[],a])}return o},new Map),s;if(this.options.suggestions){let o=this.index.query(a=>{for(let u of n)a.term(u.term,{fields:["title"],presence:lunr.Query.presence.REQUIRED,wildcard:lunr.Query.wildcard.TRAILING})});s=o.length?Object.keys(o[0].matchData.metadata):[]}return M({items:[...i.values()]},typeof s!="undefined"&&{suggestions:s})}catch(r){console.warn(`Invalid query: ${e} \u2013 see https://bit.ly/2s3ChXG`)}return{items:[]}}};var Y;function ke(t){return z(this,null,function*(){let e="../lunr";if(typeof parent!="undefined"&&"IFrameWorker"in parent){let n=document.querySelector("script[src]"),[i]=n.src.split("/worker");e=e.replace("..",i)}let r=[];for(let n of t.lang){switch(n){case"ja":r.push(`${e}/tinyseg.js`);break;case"hi":case"th":r.push(`${e}/wordcut.js`);break}n!=="en"&&r.push(`${e}/min/lunr.${n}.min.js`)}t.lang.length>1&&r.push(`${e}/min/lunr.multi.min.js`),r.length&&(yield importScripts(`${e}/min/lunr.stemmer.support.min.js`,...r))})}function Te(t){return z(this,null,function*(){switch(t.type){case 0:return yield ke(t.data.config),Y=new U(t.data),{type:1};case 2:return{type:3,data:Y?Y.search(t.data):{items:[]}};default:throw new TypeError("Invalid message type")}})}self.lunr=le.default;addEventListener("message",t=>z(void 0,null,function*(){postMessage(yield Te(t.data))}));})(); -//# sourceMappingURL=search.ecf98df9.min.js.map + */var Le=/["'&<>]/;ne.exports=we;function we(t){var e=""+t,r=Le.exec(e);if(!r)return e;var n,i="",s=0,o=0;for(s=r.index;s=0;r--){let n=t[r];typeof n=="string"?n=document.createTextNode(n):n.parentNode&&n.parentNode.removeChild(n),r?e.insertBefore(this.previousSibling,n):e.replaceChild(n,this)}}}));var ie=H(q());function se(t){let e=new Map,r=new Set;for(let n of t){let[i,s]=n.location.split("#"),o=n.location,a=n.title,u=n.tags,c=(0,ie.default)(n.text).replace(/\s+(?=[,.:;!?])/g,"").replace(/\s+/g," ");if(s){let h=e.get(i);r.has(h)?e.set(o,{location:o,title:a,text:c,parent:h}):(h.title=n.title,h.text=c,r.add(h))}else e.set(o,M({location:o,title:a,text:c},u&&{tags:u}))}return e}var oe=H(q());function ae(t,e){let r=new RegExp(t.separator,"img"),n=(i,s,o)=>`${s}${o}`;return i=>{i=i.replace(/[\s*+\-:~^]+/g," ").trim();let s=new RegExp(`(^|${t.separator})(${i.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(r,"|")})`,"img");return o=>(e?(0,oe.default)(o):o).replace(s,n).replace(/<\/mark>(\s+)]*>/img,"$1")}}function ue(t){let e=new lunr.Query(["title","text"]);return new lunr.QueryParser(t,e).parse(),e.clauses}function ce(t,e){var i;let r=new Set(t),n={};for(let s=0;s!n.has(i)))]}var U=class{constructor({config:e,docs:r,options:n}){this.options=n,this.documents=se(r),this.highlight=ae(e,!1),lunr.tokenizer.separator=new RegExp(e.separator),this.index=lunr(function(){e.lang.length===1&&e.lang[0]!=="en"?this.use(lunr[e.lang[0]]):e.lang.length>1&&this.use(lunr.multiLanguage(...e.lang));let i=Ee(["trimmer","stopWordFilter","stemmer"],n.pipeline);for(let s of e.lang.map(o=>o==="en"?lunr:lunr[o]))for(let o of i)this.pipeline.remove(s[o]),this.searchPipeline.remove(s[o]);this.ref("location"),this.field("title",{boost:1e3}),this.field("text"),this.field("tags",{boost:1e6,extractor:s=>{let{tags:o=[]}=s;return o.reduce((a,u)=>[...a,...lunr.tokenizer(u)],[])}});for(let s of r)this.add(s,{boost:s.boost})})}search(e){if(e)try{let r=this.highlight(e),n=ue(e).filter(o=>o.presence!==lunr.Query.presence.PROHIBITED),i=this.index.search(`${e}*`).reduce((o,{ref:a,score:u,matchData:c})=>{let h=this.documents.get(a);if(typeof h!="undefined"){let{location:y,title:g,text:b,tags:m,parent:Q}=h,p=ce(n,Object.keys(c.metadata)),d=+!Q+ +Object.values(p).every(w=>w);o.push(Z(M({location:y,title:r(g),text:r(b)},m&&{tags:m.map(r)}),{score:u*(1+d),terms:p}))}return o},[]).sort((o,a)=>a.score-o.score).reduce((o,a)=>{let u=this.documents.get(a.location);if(typeof u!="undefined"){let c="parent"in u?u.parent.location:u.location;o.set(c,[...o.get(c)||[],a])}return o},new Map),s;if(this.options.suggestions){let o=this.index.query(a=>{for(let u of n)a.term(u.term,{fields:["title"],presence:lunr.Query.presence.REQUIRED,wildcard:lunr.Query.wildcard.TRAILING})});s=o.length?Object.keys(o[0].matchData.metadata):[]}return M({items:[...i.values()]},typeof s!="undefined"&&{suggestions:s})}catch(r){console.warn(`Invalid query: ${e} \u2013 see https://bit.ly/2s3ChXG`)}return{items:[]}}};var Y;function ke(t){return z(this,null,function*(){let e="../lunr";if(typeof parent!="undefined"&&"IFrameWorker"in parent){let n=document.querySelector("script[src]"),[i]=n.src.split("/worker");e=e.replace("..",i)}let r=[];for(let n of t.lang){switch(n){case"ja":r.push(`${e}/tinyseg.js`);break;case"hi":case"th":r.push(`${e}/wordcut.js`);break}n!=="en"&&r.push(`${e}/min/lunr.${n}.min.js`)}t.lang.length>1&&r.push(`${e}/min/lunr.multi.min.js`),r.length&&(yield importScripts(`${e}/min/lunr.stemmer.support.min.js`,...r))})}function Te(t){return z(this,null,function*(){switch(t.type){case 0:return yield ke(t.data.config),Y=new U(t.data),{type:1};case 2:return{type:3,data:Y?Y.search(t.data):{items:[]}};default:throw new TypeError("Invalid message type")}})}self.lunr=le.default;addEventListener("message",t=>z(void 0,null,function*(){postMessage(yield Te(t.data))}));})(); +//# sourceMappingURL=search.16e2a7d4.min.js.map diff --git a/5.x/assets/javascripts/workers/search.ecf98df9.min.js.map b/5.x/assets/javascripts/workers/search.16e2a7d4.min.js.map similarity index 94% rename from 5.x/assets/javascripts/workers/search.ecf98df9.min.js.map rename to 5.x/assets/javascripts/workers/search.16e2a7d4.min.js.map index eada3e644..fa01f3742 100644 --- a/5.x/assets/javascripts/workers/search.ecf98df9.min.js.map +++ b/5.x/assets/javascripts/workers/search.16e2a7d4.min.js.map @@ -2,7 +2,7 @@ "version": 3, "sources": ["node_modules/lunr/lunr.js", "node_modules/escape-html/index.js", "src/assets/javascripts/integrations/search/worker/main/index.ts", "src/assets/javascripts/polyfills/index.ts", "src/assets/javascripts/integrations/search/document/index.ts", "src/assets/javascripts/integrations/search/highlighter/index.ts", "src/assets/javascripts/integrations/search/query/_/index.ts", "src/assets/javascripts/integrations/search/_/index.ts"], "sourceRoot": "../../../..", - "sourcesContent": ["/**\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9\n * Copyright (C) 2020 Oliver Nightingale\n * @license MIT\n */\n\n;(function(){\n\n/**\n * A convenience function for configuring and constructing\n * a new lunr Index.\n *\n * A lunr.Builder instance is created and the pipeline setup\n * with a trimmer, stop word filter and stemmer.\n *\n * This builder object is yielded to the configuration function\n * that is passed as a parameter, allowing the list of fields\n * and other builder parameters to be customised.\n *\n * All documents _must_ be added within the passed config function.\n *\n * @example\n * var idx = lunr(function () {\n * this.field('title')\n * this.field('body')\n * this.ref('id')\n *\n * documents.forEach(function (doc) {\n * this.add(doc)\n * }, this)\n * })\n *\n * @see {@link lunr.Builder}\n * @see {@link lunr.Pipeline}\n * @see {@link lunr.trimmer}\n * @see {@link lunr.stopWordFilter}\n * @see {@link lunr.stemmer}\n * @namespace {function} lunr\n */\nvar lunr = function (config) {\n var builder = new lunr.Builder\n\n builder.pipeline.add(\n lunr.trimmer,\n lunr.stopWordFilter,\n lunr.stemmer\n )\n\n builder.searchPipeline.add(\n lunr.stemmer\n )\n\n config.call(builder, builder)\n return builder.build()\n}\n\nlunr.version = \"2.3.9\"\n/*!\n * lunr.utils\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A namespace containing utils for the rest of the lunr library\n * @namespace lunr.utils\n */\nlunr.utils = {}\n\n/**\n * Print a warning message to the console.\n *\n * @param {String} message The message to be printed.\n * @memberOf lunr.utils\n * @function\n */\nlunr.utils.warn = (function (global) {\n /* eslint-disable no-console */\n return function (message) {\n if (global.console && console.warn) {\n console.warn(message)\n }\n }\n /* eslint-enable no-console */\n})(this)\n\n/**\n * Convert an object to a string.\n *\n * In the case of `null` and `undefined` the function returns\n * the empty string, in all other cases the result of calling\n * `toString` on the passed object is returned.\n *\n * @param {Any} obj The object to convert to a string.\n * @return {String} string representation of the passed object.\n * @memberOf lunr.utils\n */\nlunr.utils.asString = function (obj) {\n if (obj === void 0 || obj === null) {\n return \"\"\n } else {\n return obj.toString()\n }\n}\n\n/**\n * Clones an object.\n *\n * Will create a copy of an existing object such that any mutations\n * on the copy cannot affect the original.\n *\n * Only shallow objects are supported, passing a nested object to this\n * function will cause a TypeError.\n *\n * Objects with primitives, and arrays of primitives are supported.\n *\n * @param {Object} obj The object to clone.\n * @return {Object} a clone of the passed object.\n * @throws {TypeError} when a nested object is passed.\n * @memberOf Utils\n */\nlunr.utils.clone = function (obj) {\n if (obj === null || obj === undefined) {\n return obj\n }\n\n var clone = Object.create(null),\n keys = Object.keys(obj)\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i],\n val = obj[key]\n\n if (Array.isArray(val)) {\n clone[key] = val.slice()\n continue\n }\n\n if (typeof val === 'string' ||\n typeof val === 'number' ||\n typeof val === 'boolean') {\n clone[key] = val\n continue\n }\n\n throw new TypeError(\"clone is not deep and does not support nested objects\")\n }\n\n return clone\n}\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\n this.docRef = docRef\n this.fieldName = fieldName\n this._stringValue = stringValue\n}\n\nlunr.FieldRef.joiner = \"/\"\n\nlunr.FieldRef.fromString = function (s) {\n var n = s.indexOf(lunr.FieldRef.joiner)\n\n if (n === -1) {\n throw \"malformed field ref string\"\n }\n\n var fieldRef = s.slice(0, n),\n docRef = s.slice(n + 1)\n\n return new lunr.FieldRef (docRef, fieldRef, s)\n}\n\nlunr.FieldRef.prototype.toString = function () {\n if (this._stringValue == undefined) {\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\n }\n\n return this._stringValue\n}\n/*!\n * lunr.Set\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A lunr set.\n *\n * @constructor\n */\nlunr.Set = function (elements) {\n this.elements = Object.create(null)\n\n if (elements) {\n this.length = elements.length\n\n for (var i = 0; i < this.length; i++) {\n this.elements[elements[i]] = true\n }\n } else {\n this.length = 0\n }\n}\n\n/**\n * A complete set that contains all elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.complete = {\n intersect: function (other) {\n return other\n },\n\n union: function () {\n return this\n },\n\n contains: function () {\n return true\n }\n}\n\n/**\n * An empty set that contains no elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.empty = {\n intersect: function () {\n return this\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return false\n }\n}\n\n/**\n * Returns true if this set contains the specified object.\n *\n * @param {object} object - Object whose presence in this set is to be tested.\n * @returns {boolean} - True if this set contains the specified object.\n */\nlunr.Set.prototype.contains = function (object) {\n return !!this.elements[object]\n}\n\n/**\n * Returns a new set containing only the elements that are present in both\n * this set and the specified set.\n *\n * @param {lunr.Set} other - set to intersect with this set.\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\n */\n\nlunr.Set.prototype.intersect = function (other) {\n var a, b, elements, intersection = []\n\n if (other === lunr.Set.complete) {\n return this\n }\n\n if (other === lunr.Set.empty) {\n return other\n }\n\n if (this.length < other.length) {\n a = this\n b = other\n } else {\n a = other\n b = this\n }\n\n elements = Object.keys(a.elements)\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i]\n if (element in b.elements) {\n intersection.push(element)\n }\n }\n\n return new lunr.Set (intersection)\n}\n\n/**\n * Returns a new set combining the elements of this and the specified set.\n *\n * @param {lunr.Set} other - set to union with this set.\n * @return {lunr.Set} a new set that is the union of this and the specified set.\n */\n\nlunr.Set.prototype.union = function (other) {\n if (other === lunr.Set.complete) {\n return lunr.Set.complete\n }\n\n if (other === lunr.Set.empty) {\n return this\n }\n\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\n}\n/**\n * A function to calculate the inverse document frequency for\n * a posting. This is shared between the builder and the index\n *\n * @private\n * @param {object} posting - The posting for a given term\n * @param {number} documentCount - The total number of documents.\n */\nlunr.idf = function (posting, documentCount) {\n var documentsWithTerm = 0\n\n for (var fieldName in posting) {\n if (fieldName == '_index') continue // Ignore the term index, its not a field\n documentsWithTerm += Object.keys(posting[fieldName]).length\n }\n\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\n\n return Math.log(1 + Math.abs(x))\n}\n\n/**\n * A token wraps a string representation of a token\n * as it is passed through the text processing pipeline.\n *\n * @constructor\n * @param {string} [str=''] - The string token being wrapped.\n * @param {object} [metadata={}] - Metadata associated with this token.\n */\nlunr.Token = function (str, metadata) {\n this.str = str || \"\"\n this.metadata = metadata || {}\n}\n\n/**\n * Returns the token string that is being wrapped by this object.\n *\n * @returns {string}\n */\nlunr.Token.prototype.toString = function () {\n return this.str\n}\n\n/**\n * A token update function is used when updating or optionally\n * when cloning a token.\n *\n * @callback lunr.Token~updateFunction\n * @param {string} str - The string representation of the token.\n * @param {Object} metadata - All metadata associated with this token.\n */\n\n/**\n * Applies the given function to the wrapped string token.\n *\n * @example\n * token.update(function (str, metadata) {\n * return str.toUpperCase()\n * })\n *\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.update = function (fn) {\n this.str = fn(this.str, this.metadata)\n return this\n}\n\n/**\n * Creates a clone of this token. Optionally a function can be\n * applied to the cloned token.\n *\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.clone = function (fn) {\n fn = fn || function (s) { return s }\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\n}\n/*!\n * lunr.tokenizer\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A function for splitting a string into tokens ready to be inserted into\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\n * the value of this property to change how strings are split into tokens.\n *\n * This tokenizer will convert its parameter to a string by calling `toString` and\n * then will split this string on the character in `lunr.tokenizer.separator`.\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\n *\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\n * added as metadata to every token that is created from the object to be tokenized.\n *\n * @static\n * @param {?(string|object|object[])} obj - The object to convert into tokens\n * @param {?object} metadata - Optional metadata to associate with every token\n * @returns {lunr.Token[]}\n * @see {@link lunr.Pipeline}\n */\nlunr.tokenizer = function (obj, metadata) {\n if (obj == null || obj == undefined) {\n return []\n }\n\n if (Array.isArray(obj)) {\n return obj.map(function (t) {\n return new lunr.Token(\n lunr.utils.asString(t).toLowerCase(),\n lunr.utils.clone(metadata)\n )\n })\n }\n\n var str = obj.toString().toLowerCase(),\n len = str.length,\n tokens = []\n\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\n var char = str.charAt(sliceEnd),\n sliceLength = sliceEnd - sliceStart\n\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\n\n if (sliceLength > 0) {\n var tokenMetadata = lunr.utils.clone(metadata) || {}\n tokenMetadata[\"position\"] = [sliceStart, sliceLength]\n tokenMetadata[\"index\"] = tokens.length\n\n tokens.push(\n new lunr.Token (\n str.slice(sliceStart, sliceEnd),\n tokenMetadata\n )\n )\n }\n\n sliceStart = sliceEnd + 1\n }\n\n }\n\n return tokens\n}\n\n/**\n * The separator used to split a string into tokens. Override this property to change the behaviour of\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\n *\n * @static\n * @see lunr.tokenizer\n */\nlunr.tokenizer.separator = /[\\s\\-]+/\n/*!\n * lunr.Pipeline\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\n * tokens in documents entering the search index and queries being ran against\n * the index.\n *\n * An instance of lunr.Index created with the lunr shortcut will contain a\n * pipeline with a stop word filter and an English language stemmer. Extra\n * functions can be added before or after either of these functions or these\n * default functions can be removed.\n *\n * When run the pipeline will call each function in turn, passing a token, the\n * index of that token in the original list of all tokens and finally a list of\n * all the original tokens.\n *\n * The output of functions in the pipeline will be passed to the next function\n * in the pipeline. To exclude a token from entering the index the function\n * should return undefined, the rest of the pipeline will not be called with\n * this token.\n *\n * For serialisation of pipelines to work, all functions used in an instance of\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\n * then be loaded. If trying to load a serialised pipeline that uses functions\n * that are not registered an error will be thrown.\n *\n * If not planning on serialising the pipeline then registering pipeline functions\n * is not necessary.\n *\n * @constructor\n */\nlunr.Pipeline = function () {\n this._stack = []\n}\n\nlunr.Pipeline.registeredFunctions = Object.create(null)\n\n/**\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\n * string as well as all known metadata. A pipeline function can mutate the token string\n * or mutate (or add) metadata for a given token.\n *\n * A pipeline function can indicate that the passed token should be discarded by returning\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\n * functions and will not be added to the index.\n *\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\n *\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\n *\n * @interface lunr.PipelineFunction\n * @param {lunr.Token} token - A token from the document being processed.\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\n * @returns {(?lunr.Token|lunr.Token[])}\n */\n\n/**\n * Register a function with the pipeline.\n *\n * Functions that are used in the pipeline should be registered if the pipeline\n * needs to be serialised, or a serialised pipeline needs to be loaded.\n *\n * Registering a function does not add it to a pipeline, functions must still be\n * added to instances of the pipeline for them to be used when running a pipeline.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @param {String} label - The label to register this function with\n */\nlunr.Pipeline.registerFunction = function (fn, label) {\n if (label in this.registeredFunctions) {\n lunr.utils.warn('Overwriting existing registered function: ' + label)\n }\n\n fn.label = label\n lunr.Pipeline.registeredFunctions[fn.label] = fn\n}\n\n/**\n * Warns if the function is not registered as a Pipeline function.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @private\n */\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\n\n if (!isRegistered) {\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\n', fn)\n }\n}\n\n/**\n * Loads a previously serialised pipeline.\n *\n * All functions to be loaded must already be registered with lunr.Pipeline.\n * If any function from the serialised data has not been registered then an\n * error will be thrown.\n *\n * @param {Object} serialised - The serialised pipeline to load.\n * @returns {lunr.Pipeline}\n */\nlunr.Pipeline.load = function (serialised) {\n var pipeline = new lunr.Pipeline\n\n serialised.forEach(function (fnName) {\n var fn = lunr.Pipeline.registeredFunctions[fnName]\n\n if (fn) {\n pipeline.add(fn)\n } else {\n throw new Error('Cannot load unregistered function: ' + fnName)\n }\n })\n\n return pipeline\n}\n\n/**\n * Adds new functions to the end of the pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\n */\nlunr.Pipeline.prototype.add = function () {\n var fns = Array.prototype.slice.call(arguments)\n\n fns.forEach(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n this._stack.push(fn)\n }, this)\n}\n\n/**\n * Adds a single function after a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n pos = pos + 1\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Adds a single function before a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Removes a function from the pipeline.\n *\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\n */\nlunr.Pipeline.prototype.remove = function (fn) {\n var pos = this._stack.indexOf(fn)\n if (pos == -1) {\n return\n }\n\n this._stack.splice(pos, 1)\n}\n\n/**\n * Runs the current list of functions that make up the pipeline against the\n * passed tokens.\n *\n * @param {Array} tokens The tokens to run through the pipeline.\n * @returns {Array}\n */\nlunr.Pipeline.prototype.run = function (tokens) {\n var stackLength = this._stack.length\n\n for (var i = 0; i < stackLength; i++) {\n var fn = this._stack[i]\n var memo = []\n\n for (var j = 0; j < tokens.length; j++) {\n var result = fn(tokens[j], j, tokens)\n\n if (result === null || result === void 0 || result === '') continue\n\n if (Array.isArray(result)) {\n for (var k = 0; k < result.length; k++) {\n memo.push(result[k])\n }\n } else {\n memo.push(result)\n }\n }\n\n tokens = memo\n }\n\n return tokens\n}\n\n/**\n * Convenience method for passing a string through a pipeline and getting\n * strings out. This method takes care of wrapping the passed string in a\n * token and mapping the resulting tokens back to strings.\n *\n * @param {string} str - The string to pass through the pipeline.\n * @param {?object} metadata - Optional metadata to associate with the token\n * passed to the pipeline.\n * @returns {string[]}\n */\nlunr.Pipeline.prototype.runString = function (str, metadata) {\n var token = new lunr.Token (str, metadata)\n\n return this.run([token]).map(function (t) {\n return t.toString()\n })\n}\n\n/**\n * Resets the pipeline by removing any existing processors.\n *\n */\nlunr.Pipeline.prototype.reset = function () {\n this._stack = []\n}\n\n/**\n * Returns a representation of the pipeline ready for serialisation.\n *\n * Logs a warning if the function has not been registered.\n *\n * @returns {Array}\n */\nlunr.Pipeline.prototype.toJSON = function () {\n return this._stack.map(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n\n return fn.label\n })\n}\n/*!\n * lunr.Vector\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A vector is used to construct the vector space of documents and queries. These\n * vectors support operations to determine the similarity between two documents or\n * a document and a query.\n *\n * Normally no parameters are required for initializing a vector, but in the case of\n * loading a previously dumped vector the raw elements can be provided to the constructor.\n *\n * For performance reasons vectors are implemented with a flat array, where an elements\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\n * allows the underlying array to be as sparse as possible and still offer decent\n * performance when being used for vector calculations.\n *\n * @constructor\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\n */\nlunr.Vector = function (elements) {\n this._magnitude = 0\n this.elements = elements || []\n}\n\n\n/**\n * Calculates the position within the vector to insert a given index.\n *\n * This is used internally by insert and upsert. If there are duplicate indexes then\n * the position is returned as if the value for that index were to be updated, but it\n * is the callers responsibility to check whether there is a duplicate at that index\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @returns {Number}\n */\nlunr.Vector.prototype.positionForIndex = function (index) {\n // For an empty vector the tuple can be inserted at the beginning\n if (this.elements.length == 0) {\n return 0\n }\n\n var start = 0,\n end = this.elements.length / 2,\n sliceLength = end - start,\n pivotPoint = Math.floor(sliceLength / 2),\n pivotIndex = this.elements[pivotPoint * 2]\n\n while (sliceLength > 1) {\n if (pivotIndex < index) {\n start = pivotPoint\n }\n\n if (pivotIndex > index) {\n end = pivotPoint\n }\n\n if (pivotIndex == index) {\n break\n }\n\n sliceLength = end - start\n pivotPoint = start + Math.floor(sliceLength / 2)\n pivotIndex = this.elements[pivotPoint * 2]\n }\n\n if (pivotIndex == index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex > index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex < index) {\n return (pivotPoint + 1) * 2\n }\n}\n\n/**\n * Inserts an element at an index within the vector.\n *\n * Does not allow duplicates, will throw an error if there is already an entry\n * for this index.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n */\nlunr.Vector.prototype.insert = function (insertIdx, val) {\n this.upsert(insertIdx, val, function () {\n throw \"duplicate index\"\n })\n}\n\n/**\n * Inserts or updates an existing index within the vector.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n * @param {function} fn - A function that is called for updates, the existing value and the\n * requested value are passed as arguments\n */\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\n this._magnitude = 0\n var position = this.positionForIndex(insertIdx)\n\n if (this.elements[position] == insertIdx) {\n this.elements[position + 1] = fn(this.elements[position + 1], val)\n } else {\n this.elements.splice(position, 0, insertIdx, val)\n }\n}\n\n/**\n * Calculates the magnitude of this vector.\n *\n * @returns {Number}\n */\nlunr.Vector.prototype.magnitude = function () {\n if (this._magnitude) return this._magnitude\n\n var sumOfSquares = 0,\n elementsLength = this.elements.length\n\n for (var i = 1; i < elementsLength; i += 2) {\n var val = this.elements[i]\n sumOfSquares += val * val\n }\n\n return this._magnitude = Math.sqrt(sumOfSquares)\n}\n\n/**\n * Calculates the dot product of this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\n * @returns {Number}\n */\nlunr.Vector.prototype.dot = function (otherVector) {\n var dotProduct = 0,\n a = this.elements, b = otherVector.elements,\n aLen = a.length, bLen = b.length,\n aVal = 0, bVal = 0,\n i = 0, j = 0\n\n while (i < aLen && j < bLen) {\n aVal = a[i], bVal = b[j]\n if (aVal < bVal) {\n i += 2\n } else if (aVal > bVal) {\n j += 2\n } else if (aVal == bVal) {\n dotProduct += a[i + 1] * b[j + 1]\n i += 2\n j += 2\n }\n }\n\n return dotProduct\n}\n\n/**\n * Calculates the similarity between this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The other vector to calculate the\n * similarity with.\n * @returns {Number}\n */\nlunr.Vector.prototype.similarity = function (otherVector) {\n return this.dot(otherVector) / this.magnitude() || 0\n}\n\n/**\n * Converts the vector to an array of the elements within the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toArray = function () {\n var output = new Array (this.elements.length / 2)\n\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\n output[j] = this.elements[i]\n }\n\n return output\n}\n\n/**\n * A JSON serializable representation of the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toJSON = function () {\n return this.elements\n}\n/* eslint-disable */\n/*!\n * lunr.stemmer\n * Copyright (C) 2020 Oliver Nightingale\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\n */\n\n/**\n * lunr.stemmer is an english language stemmer, this is a JavaScript\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token - The string to stem\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n * @function\n */\nlunr.stemmer = (function(){\n var step2list = {\n \"ational\" : \"ate\",\n \"tional\" : \"tion\",\n \"enci\" : \"ence\",\n \"anci\" : \"ance\",\n \"izer\" : \"ize\",\n \"bli\" : \"ble\",\n \"alli\" : \"al\",\n \"entli\" : \"ent\",\n \"eli\" : \"e\",\n \"ousli\" : \"ous\",\n \"ization\" : \"ize\",\n \"ation\" : \"ate\",\n \"ator\" : \"ate\",\n \"alism\" : \"al\",\n \"iveness\" : \"ive\",\n \"fulness\" : \"ful\",\n \"ousness\" : \"ous\",\n \"aliti\" : \"al\",\n \"iviti\" : \"ive\",\n \"biliti\" : \"ble\",\n \"logi\" : \"log\"\n },\n\n step3list = {\n \"icate\" : \"ic\",\n \"ative\" : \"\",\n \"alize\" : \"al\",\n \"iciti\" : \"ic\",\n \"ical\" : \"ic\",\n \"ful\" : \"\",\n \"ness\" : \"\"\n },\n\n c = \"[^aeiou]\", // consonant\n v = \"[aeiouy]\", // vowel\n C = c + \"[^aeiouy]*\", // consonant sequence\n V = v + \"[aeiou]*\", // vowel sequence\n\n mgr0 = \"^(\" + C + \")?\" + V + C, // [C]VC... is m>0\n meq1 = \"^(\" + C + \")?\" + V + C + \"(\" + V + \")?$\", // [C]VC[V] is m=1\n mgr1 = \"^(\" + C + \")?\" + V + C + V + C, // [C]VCVC... is m>1\n s_v = \"^(\" + C + \")?\" + v; // vowel in stem\n\n var re_mgr0 = new RegExp(mgr0);\n var re_mgr1 = new RegExp(mgr1);\n var re_meq1 = new RegExp(meq1);\n var re_s_v = new RegExp(s_v);\n\n var re_1a = /^(.+?)(ss|i)es$/;\n var re2_1a = /^(.+?)([^s])s$/;\n var re_1b = /^(.+?)eed$/;\n var re2_1b = /^(.+?)(ed|ing)$/;\n var re_1b_2 = /.$/;\n var re2_1b_2 = /(at|bl|iz)$/;\n var re3_1b_2 = new RegExp(\"([^aeiouylsz])\\\\1$\");\n var re4_1b_2 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var re_1c = /^(.+?[^aeiou])y$/;\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\n\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\n\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\n var re2_4 = /^(.+?)(s|t)(ion)$/;\n\n var re_5 = /^(.+?)e$/;\n var re_5_1 = /ll$/;\n var re3_5 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var porterStemmer = function porterStemmer(w) {\n var stem,\n suffix,\n firstch,\n re,\n re2,\n re3,\n re4;\n\n if (w.length < 3) { return w; }\n\n firstch = w.substr(0,1);\n if (firstch == \"y\") {\n w = firstch.toUpperCase() + w.substr(1);\n }\n\n // Step 1a\n re = re_1a\n re2 = re2_1a;\n\n if (re.test(w)) { w = w.replace(re,\"$1$2\"); }\n else if (re2.test(w)) { w = w.replace(re2,\"$1$2\"); }\n\n // Step 1b\n re = re_1b;\n re2 = re2_1b;\n if (re.test(w)) {\n var fp = re.exec(w);\n re = re_mgr0;\n if (re.test(fp[1])) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1];\n re2 = re_s_v;\n if (re2.test(stem)) {\n w = stem;\n re2 = re2_1b_2;\n re3 = re3_1b_2;\n re4 = re4_1b_2;\n if (re2.test(w)) { w = w + \"e\"; }\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\"\"); }\n else if (re4.test(w)) { w = w + \"e\"; }\n }\n }\n\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\n re = re_1c;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n w = stem + \"i\";\n }\n\n // Step 2\n re = re_2;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step2list[suffix];\n }\n }\n\n // Step 3\n re = re_3;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step3list[suffix];\n }\n }\n\n // Step 4\n re = re_4;\n re2 = re2_4;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n if (re.test(stem)) {\n w = stem;\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1] + fp[2];\n re2 = re_mgr1;\n if (re2.test(stem)) {\n w = stem;\n }\n }\n\n // Step 5\n re = re_5;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n re2 = re_meq1;\n re3 = re3_5;\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\n w = stem;\n }\n }\n\n re = re_5_1;\n re2 = re_mgr1;\n if (re.test(w) && re2.test(w)) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n\n // and turn initial Y back to y\n\n if (firstch == \"y\") {\n w = firstch.toLowerCase() + w.substr(1);\n }\n\n return w;\n };\n\n return function (token) {\n return token.update(porterStemmer);\n }\n})();\n\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\n/*!\n * lunr.stopWordFilter\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\n * list of stop words.\n *\n * The built in lunr.stopWordFilter is built using this generator and can be used\n * to generate custom stopWordFilters for applications or non English languages.\n *\n * @function\n * @param {Array} token The token to pass through the filter\n * @returns {lunr.PipelineFunction}\n * @see lunr.Pipeline\n * @see lunr.stopWordFilter\n */\nlunr.generateStopWordFilter = function (stopWords) {\n var words = stopWords.reduce(function (memo, stopWord) {\n memo[stopWord] = stopWord\n return memo\n }, {})\n\n return function (token) {\n if (token && words[token.toString()] !== token.toString()) return token\n }\n}\n\n/**\n * lunr.stopWordFilter is an English language stop word list filter, any words\n * contained in the list will not be passed through the filter.\n *\n * This is intended to be used in the Pipeline. If the token does not pass the\n * filter then undefined will be returned.\n *\n * @function\n * @implements {lunr.PipelineFunction}\n * @params {lunr.Token} token - A token to check for being a stop word.\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n */\nlunr.stopWordFilter = lunr.generateStopWordFilter([\n 'a',\n 'able',\n 'about',\n 'across',\n 'after',\n 'all',\n 'almost',\n 'also',\n 'am',\n 'among',\n 'an',\n 'and',\n 'any',\n 'are',\n 'as',\n 'at',\n 'be',\n 'because',\n 'been',\n 'but',\n 'by',\n 'can',\n 'cannot',\n 'could',\n 'dear',\n 'did',\n 'do',\n 'does',\n 'either',\n 'else',\n 'ever',\n 'every',\n 'for',\n 'from',\n 'get',\n 'got',\n 'had',\n 'has',\n 'have',\n 'he',\n 'her',\n 'hers',\n 'him',\n 'his',\n 'how',\n 'however',\n 'i',\n 'if',\n 'in',\n 'into',\n 'is',\n 'it',\n 'its',\n 'just',\n 'least',\n 'let',\n 'like',\n 'likely',\n 'may',\n 'me',\n 'might',\n 'most',\n 'must',\n 'my',\n 'neither',\n 'no',\n 'nor',\n 'not',\n 'of',\n 'off',\n 'often',\n 'on',\n 'only',\n 'or',\n 'other',\n 'our',\n 'own',\n 'rather',\n 'said',\n 'say',\n 'says',\n 'she',\n 'should',\n 'since',\n 'so',\n 'some',\n 'than',\n 'that',\n 'the',\n 'their',\n 'them',\n 'then',\n 'there',\n 'these',\n 'they',\n 'this',\n 'tis',\n 'to',\n 'too',\n 'twas',\n 'us',\n 'wants',\n 'was',\n 'we',\n 'were',\n 'what',\n 'when',\n 'where',\n 'which',\n 'while',\n 'who',\n 'whom',\n 'why',\n 'will',\n 'with',\n 'would',\n 'yet',\n 'you',\n 'your'\n])\n\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\n/*!\n * lunr.trimmer\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * lunr.trimmer is a pipeline function for trimming non word\n * characters from the beginning and end of tokens before they\n * enter the index.\n *\n * This implementation may not work correctly for non latin\n * characters and should either be removed or adapted for use\n * with languages with non-latin characters.\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token The token to pass through the filter\n * @returns {lunr.Token}\n * @see lunr.Pipeline\n */\nlunr.trimmer = function (token) {\n return token.update(function (s) {\n return s.replace(/^\\W+/, '').replace(/\\W+$/, '')\n })\n}\n\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\n/*!\n * lunr.TokenSet\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A token set is used to store the unique list of all tokens\n * within an index. Token sets are also used to represent an\n * incoming query to the index, this query token set and index\n * token set are then intersected to find which tokens to look\n * up in the inverted index.\n *\n * A token set can hold multiple tokens, as in the case of the\n * index token set, or it can hold a single token as in the\n * case of a simple query token set.\n *\n * Additionally token sets are used to perform wildcard matching.\n * Leading, contained and trailing wildcards are supported, and\n * from this edit distance matching can also be provided.\n *\n * Token sets are implemented as a minimal finite state automata,\n * where both common prefixes and suffixes are shared between tokens.\n * This helps to reduce the space used for storing the token set.\n *\n * @constructor\n */\nlunr.TokenSet = function () {\n this.final = false\n this.edges = {}\n this.id = lunr.TokenSet._nextId\n lunr.TokenSet._nextId += 1\n}\n\n/**\n * Keeps track of the next, auto increment, identifier to assign\n * to a new tokenSet.\n *\n * TokenSets require a unique identifier to be correctly minimised.\n *\n * @private\n */\nlunr.TokenSet._nextId = 1\n\n/**\n * Creates a TokenSet instance from the given sorted array of words.\n *\n * @param {String[]} arr - A sorted array of strings to create the set from.\n * @returns {lunr.TokenSet}\n * @throws Will throw an error if the input array is not sorted.\n */\nlunr.TokenSet.fromArray = function (arr) {\n var builder = new lunr.TokenSet.Builder\n\n for (var i = 0, len = arr.length; i < len; i++) {\n builder.insert(arr[i])\n }\n\n builder.finish()\n return builder.root\n}\n\n/**\n * Creates a token set from a query clause.\n *\n * @private\n * @param {Object} clause - A single clause from lunr.Query.\n * @param {string} clause.term - The query clause term.\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromClause = function (clause) {\n if ('editDistance' in clause) {\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\n } else {\n return lunr.TokenSet.fromString(clause.term)\n }\n}\n\n/**\n * Creates a token set representing a single string with a specified\n * edit distance.\n *\n * Insertions, deletions, substitutions and transpositions are each\n * treated as an edit distance of 1.\n *\n * Increasing the allowed edit distance will have a dramatic impact\n * on the performance of both creating and intersecting these TokenSets.\n * It is advised to keep the edit distance less than 3.\n *\n * @param {string} str - The string to create the token set from.\n * @param {number} editDistance - The allowed edit distance to match.\n * @returns {lunr.Vector}\n */\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\n var root = new lunr.TokenSet\n\n var stack = [{\n node: root,\n editsRemaining: editDistance,\n str: str\n }]\n\n while (stack.length) {\n var frame = stack.pop()\n\n // no edit\n if (frame.str.length > 0) {\n var char = frame.str.charAt(0),\n noEditNode\n\n if (char in frame.node.edges) {\n noEditNode = frame.node.edges[char]\n } else {\n noEditNode = new lunr.TokenSet\n frame.node.edges[char] = noEditNode\n }\n\n if (frame.str.length == 1) {\n noEditNode.final = true\n }\n\n stack.push({\n node: noEditNode,\n editsRemaining: frame.editsRemaining,\n str: frame.str.slice(1)\n })\n }\n\n if (frame.editsRemaining == 0) {\n continue\n }\n\n // insertion\n if (\"*\" in frame.node.edges) {\n var insertionNode = frame.node.edges[\"*\"]\n } else {\n var insertionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = insertionNode\n }\n\n if (frame.str.length == 0) {\n insertionNode.final = true\n }\n\n stack.push({\n node: insertionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str\n })\n\n // deletion\n // can only do a deletion if we have enough edits remaining\n // and if there are characters left to delete in the string\n if (frame.str.length > 1) {\n stack.push({\n node: frame.node,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // deletion\n // just removing the last character from the str\n if (frame.str.length == 1) {\n frame.node.final = true\n }\n\n // substitution\n // can only do a substitution if we have enough edits remaining\n // and if there are characters left to substitute\n if (frame.str.length >= 1) {\n if (\"*\" in frame.node.edges) {\n var substitutionNode = frame.node.edges[\"*\"]\n } else {\n var substitutionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = substitutionNode\n }\n\n if (frame.str.length == 1) {\n substitutionNode.final = true\n }\n\n stack.push({\n node: substitutionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // transposition\n // can only do a transposition if there are edits remaining\n // and there are enough characters to transpose\n if (frame.str.length > 1) {\n var charA = frame.str.charAt(0),\n charB = frame.str.charAt(1),\n transposeNode\n\n if (charB in frame.node.edges) {\n transposeNode = frame.node.edges[charB]\n } else {\n transposeNode = new lunr.TokenSet\n frame.node.edges[charB] = transposeNode\n }\n\n if (frame.str.length == 1) {\n transposeNode.final = true\n }\n\n stack.push({\n node: transposeNode,\n editsRemaining: frame.editsRemaining - 1,\n str: charA + frame.str.slice(2)\n })\n }\n }\n\n return root\n}\n\n/**\n * Creates a TokenSet from a string.\n *\n * The string may contain one or more wildcard characters (*)\n * that will allow wildcard matching when intersecting with\n * another TokenSet.\n *\n * @param {string} str - The string to create a TokenSet from.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromString = function (str) {\n var node = new lunr.TokenSet,\n root = node\n\n /*\n * Iterates through all characters within the passed string\n * appending a node for each character.\n *\n * When a wildcard character is found then a self\n * referencing edge is introduced to continually match\n * any number of any characters.\n */\n for (var i = 0, len = str.length; i < len; i++) {\n var char = str[i],\n final = (i == len - 1)\n\n if (char == \"*\") {\n node.edges[char] = node\n node.final = final\n\n } else {\n var next = new lunr.TokenSet\n next.final = final\n\n node.edges[char] = next\n node = next\n }\n }\n\n return root\n}\n\n/**\n * Converts this TokenSet into an array of strings\n * contained within the TokenSet.\n *\n * This is not intended to be used on a TokenSet that\n * contains wildcards, in these cases the results are\n * undefined and are likely to cause an infinite loop.\n *\n * @returns {string[]}\n */\nlunr.TokenSet.prototype.toArray = function () {\n var words = []\n\n var stack = [{\n prefix: \"\",\n node: this\n }]\n\n while (stack.length) {\n var frame = stack.pop(),\n edges = Object.keys(frame.node.edges),\n len = edges.length\n\n if (frame.node.final) {\n /* In Safari, at this point the prefix is sometimes corrupted, see:\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\n * String.prototype method forces Safari to \"cast\" this string to what\n * it's supposed to be, fixing the bug. */\n frame.prefix.charAt(0)\n words.push(frame.prefix)\n }\n\n for (var i = 0; i < len; i++) {\n var edge = edges[i]\n\n stack.push({\n prefix: frame.prefix.concat(edge),\n node: frame.node.edges[edge]\n })\n }\n }\n\n return words\n}\n\n/**\n * Generates a string representation of a TokenSet.\n *\n * This is intended to allow TokenSets to be used as keys\n * in objects, largely to aid the construction and minimisation\n * of a TokenSet. As such it is not designed to be a human\n * friendly representation of the TokenSet.\n *\n * @returns {string}\n */\nlunr.TokenSet.prototype.toString = function () {\n // NOTE: Using Object.keys here as this.edges is very likely\n // to enter 'hash-mode' with many keys being added\n //\n // avoiding a for-in loop here as it leads to the function\n // being de-optimised (at least in V8). From some simple\n // benchmarks the performance is comparable, but allowing\n // V8 to optimize may mean easy performance wins in the future.\n\n if (this._str) {\n return this._str\n }\n\n var str = this.final ? '1' : '0',\n labels = Object.keys(this.edges).sort(),\n len = labels.length\n\n for (var i = 0; i < len; i++) {\n var label = labels[i],\n node = this.edges[label]\n\n str = str + label + node.id\n }\n\n return str\n}\n\n/**\n * Returns a new TokenSet that is the intersection of\n * this TokenSet and the passed TokenSet.\n *\n * This intersection will take into account any wildcards\n * contained within the TokenSet.\n *\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.prototype.intersect = function (b) {\n var output = new lunr.TokenSet,\n frame = undefined\n\n var stack = [{\n qNode: b,\n output: output,\n node: this\n }]\n\n while (stack.length) {\n frame = stack.pop()\n\n // NOTE: As with the #toString method, we are using\n // Object.keys and a for loop instead of a for-in loop\n // as both of these objects enter 'hash' mode, causing\n // the function to be de-optimised in V8\n var qEdges = Object.keys(frame.qNode.edges),\n qLen = qEdges.length,\n nEdges = Object.keys(frame.node.edges),\n nLen = nEdges.length\n\n for (var q = 0; q < qLen; q++) {\n var qEdge = qEdges[q]\n\n for (var n = 0; n < nLen; n++) {\n var nEdge = nEdges[n]\n\n if (nEdge == qEdge || qEdge == '*') {\n var node = frame.node.edges[nEdge],\n qNode = frame.qNode.edges[qEdge],\n final = node.final && qNode.final,\n next = undefined\n\n if (nEdge in frame.output.edges) {\n // an edge already exists for this character\n // no need to create a new node, just set the finality\n // bit unless this node is already final\n next = frame.output.edges[nEdge]\n next.final = next.final || final\n\n } else {\n // no edge exists yet, must create one\n // set the finality bit and insert it\n // into the output\n next = new lunr.TokenSet\n next.final = final\n frame.output.edges[nEdge] = next\n }\n\n stack.push({\n qNode: qNode,\n output: next,\n node: node\n })\n }\n }\n }\n }\n\n return output\n}\nlunr.TokenSet.Builder = function () {\n this.previousWord = \"\"\n this.root = new lunr.TokenSet\n this.uncheckedNodes = []\n this.minimizedNodes = {}\n}\n\nlunr.TokenSet.Builder.prototype.insert = function (word) {\n var node,\n commonPrefix = 0\n\n if (word < this.previousWord) {\n throw new Error (\"Out of order word insertion\")\n }\n\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\n if (word[i] != this.previousWord[i]) break\n commonPrefix++\n }\n\n this.minimize(commonPrefix)\n\n if (this.uncheckedNodes.length == 0) {\n node = this.root\n } else {\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\n }\n\n for (var i = commonPrefix; i < word.length; i++) {\n var nextNode = new lunr.TokenSet,\n char = word[i]\n\n node.edges[char] = nextNode\n\n this.uncheckedNodes.push({\n parent: node,\n char: char,\n child: nextNode\n })\n\n node = nextNode\n }\n\n node.final = true\n this.previousWord = word\n}\n\nlunr.TokenSet.Builder.prototype.finish = function () {\n this.minimize(0)\n}\n\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\n var node = this.uncheckedNodes[i],\n childKey = node.child.toString()\n\n if (childKey in this.minimizedNodes) {\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\n } else {\n // Cache the key for this node since\n // we know it can't change anymore\n node.child._str = childKey\n\n this.minimizedNodes[childKey] = node.child\n }\n\n this.uncheckedNodes.pop()\n }\n}\n/*!\n * lunr.Index\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * An index contains the built index of all documents and provides a query interface\n * to the index.\n *\n * Usually instances of lunr.Index will not be created using this constructor, instead\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\n * used to load previously built and serialized indexes.\n *\n * @constructor\n * @param {Object} attrs - The attributes of the built search index.\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\n * @param {Object} attrs.fieldVectors - Field vectors\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\n * @param {string[]} attrs.fields - The names of indexed document fields.\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\n */\nlunr.Index = function (attrs) {\n this.invertedIndex = attrs.invertedIndex\n this.fieldVectors = attrs.fieldVectors\n this.tokenSet = attrs.tokenSet\n this.fields = attrs.fields\n this.pipeline = attrs.pipeline\n}\n\n/**\n * A result contains details of a document matching a search query.\n * @typedef {Object} lunr.Index~Result\n * @property {string} ref - The reference of the document this result represents.\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\n */\n\n/**\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\n * query language which itself is parsed into an instance of lunr.Query.\n *\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\n * is best used for human entered text rather than program generated text.\n *\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\n * or 'world', though those that contain both will rank higher in the results.\n *\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\n * wildcards will increase the number of documents that will be found but can also have a negative\n * impact on query performance, especially with wildcards at the beginning of a term.\n *\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\n * hello in the title field will match this query. Using a field not present in the index will lead\n * to an error being thrown.\n *\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\n * Avoid large values for edit distance to improve query performance.\n *\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\n *\n * To escape special characters the backslash character '\\' can be used, this allows searches to include\n * characters that would normally be considered modifiers, e.g. `foo\\~2` will search for a term \"foo~2\" instead\n * of attempting to apply a boost of 2 to the search term \"foo\".\n *\n * @typedef {string} lunr.Index~QueryString\n * @example Simple single term query\n * hello\n * @example Multiple term query\n * hello world\n * @example term scoped to a field\n * title:hello\n * @example term with a boost of 10\n * hello^10\n * @example term with an edit distance of 2\n * hello~2\n * @example terms with presence modifiers\n * -foo +bar baz\n */\n\n/**\n * Performs a search against the index using lunr query syntax.\n *\n * Results will be returned sorted by their score, the most relevant results\n * will be returned first. For details on how the score is calculated, please see\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\n *\n * For more programmatic querying use lunr.Index#query.\n *\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.search = function (queryString) {\n return this.query(function (query) {\n var parser = new lunr.QueryParser(queryString, query)\n parser.parse()\n })\n}\n\n/**\n * A query builder callback provides a query object to be used to express\n * the query to perform on the index.\n *\n * @callback lunr.Index~queryBuilder\n * @param {lunr.Query} query - The query object to build up.\n * @this lunr.Query\n */\n\n/**\n * Performs a query against the index using the yielded lunr.Query object.\n *\n * If performing programmatic queries against the index, this method is preferred\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\n *\n * A query object is yielded to the supplied function which should be used to\n * express the query to be run against the index.\n *\n * Note that although this function takes a callback parameter it is _not_ an\n * asynchronous operation, the callback is just yielded a query object to be\n * customized.\n *\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.query = function (fn) {\n // for each query clause\n // * process terms\n // * expand terms from token set\n // * find matching documents and metadata\n // * get document vectors\n // * score documents\n\n var query = new lunr.Query(this.fields),\n matchingFields = Object.create(null),\n queryVectors = Object.create(null),\n termFieldCache = Object.create(null),\n requiredMatches = Object.create(null),\n prohibitedMatches = Object.create(null)\n\n /*\n * To support field level boosts a query vector is created per\n * field. An empty vector is eagerly created to support negated\n * queries.\n */\n for (var i = 0; i < this.fields.length; i++) {\n queryVectors[this.fields[i]] = new lunr.Vector\n }\n\n fn.call(query, query)\n\n for (var i = 0; i < query.clauses.length; i++) {\n /*\n * Unless the pipeline has been disabled for this term, which is\n * the case for terms with wildcards, we need to pass the clause\n * term through the search pipeline. A pipeline returns an array\n * of processed terms. Pipeline functions may expand the passed\n * term, which means we may end up performing multiple index lookups\n * for a single query term.\n */\n var clause = query.clauses[i],\n terms = null,\n clauseMatches = lunr.Set.empty\n\n if (clause.usePipeline) {\n terms = this.pipeline.runString(clause.term, {\n fields: clause.fields\n })\n } else {\n terms = [clause.term]\n }\n\n for (var m = 0; m < terms.length; m++) {\n var term = terms[m]\n\n /*\n * Each term returned from the pipeline needs to use the same query\n * clause object, e.g. the same boost and or edit distance. The\n * simplest way to do this is to re-use the clause object but mutate\n * its term property.\n */\n clause.term = term\n\n /*\n * From the term in the clause we create a token set which will then\n * be used to intersect the indexes token set to get a list of terms\n * to lookup in the inverted index\n */\n var termTokenSet = lunr.TokenSet.fromClause(clause),\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\n\n /*\n * If a term marked as required does not exist in the tokenSet it is\n * impossible for the search to return any matches. We set all the field\n * scoped required matches set to empty and stop examining any further\n * clauses.\n */\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = lunr.Set.empty\n }\n\n break\n }\n\n for (var j = 0; j < expandedTerms.length; j++) {\n /*\n * For each term get the posting and termIndex, this is required for\n * building the query vector.\n */\n var expandedTerm = expandedTerms[j],\n posting = this.invertedIndex[expandedTerm],\n termIndex = posting._index\n\n for (var k = 0; k < clause.fields.length; k++) {\n /*\n * For each field that this query term is scoped by (by default\n * all fields are in scope) we need to get all the document refs\n * that have this term in that field.\n *\n * The posting is the entry in the invertedIndex for the matching\n * term from above.\n */\n var field = clause.fields[k],\n fieldPosting = posting[field],\n matchingDocumentRefs = Object.keys(fieldPosting),\n termField = expandedTerm + \"/\" + field,\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\n\n /*\n * if the presence of this term is required ensure that the matching\n * documents are added to the set of required matches for this clause.\n *\n */\n if (clause.presence == lunr.Query.presence.REQUIRED) {\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\n\n if (requiredMatches[field] === undefined) {\n requiredMatches[field] = lunr.Set.complete\n }\n }\n\n /*\n * if the presence of this term is prohibited ensure that the matching\n * documents are added to the set of prohibited matches for this field,\n * creating that set if it does not yet exist.\n */\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\n if (prohibitedMatches[field] === undefined) {\n prohibitedMatches[field] = lunr.Set.empty\n }\n\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\n\n /*\n * Prohibited matches should not be part of the query vector used for\n * similarity scoring and no metadata should be extracted so we continue\n * to the next field\n */\n continue\n }\n\n /*\n * The query field vector is populated using the termIndex found for\n * the term and a unit value with the appropriate boost applied.\n * Using upsert because there could already be an entry in the vector\n * for the term we are working with. In that case we just add the scores\n * together.\n */\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\n\n /**\n * If we've already seen this term, field combo then we've already collected\n * the matching documents and metadata, no need to go through all that again\n */\n if (termFieldCache[termField]) {\n continue\n }\n\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\n /*\n * All metadata for this term/field/document triple\n * are then extracted and collected into an instance\n * of lunr.MatchData ready to be returned in the query\n * results\n */\n var matchingDocumentRef = matchingDocumentRefs[l],\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\n metadata = fieldPosting[matchingDocumentRef],\n fieldMatch\n\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\n } else {\n fieldMatch.add(expandedTerm, field, metadata)\n }\n\n }\n\n termFieldCache[termField] = true\n }\n }\n }\n\n /**\n * If the presence was required we need to update the requiredMatches field sets.\n * We do this after all fields for the term have collected their matches because\n * the clause terms presence is required in _any_ of the fields not _all_ of the\n * fields.\n */\n if (clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\n }\n }\n }\n\n /**\n * Need to combine the field scoped required and prohibited\n * matching documents into a global set of required and prohibited\n * matches\n */\n var allRequiredMatches = lunr.Set.complete,\n allProhibitedMatches = lunr.Set.empty\n\n for (var i = 0; i < this.fields.length; i++) {\n var field = this.fields[i]\n\n if (requiredMatches[field]) {\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\n }\n\n if (prohibitedMatches[field]) {\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\n }\n }\n\n var matchingFieldRefs = Object.keys(matchingFields),\n results = [],\n matches = Object.create(null)\n\n /*\n * If the query is negated (contains only prohibited terms)\n * we need to get _all_ fieldRefs currently existing in the\n * index. This is only done when we know that the query is\n * entirely prohibited terms to avoid any cost of getting all\n * fieldRefs unnecessarily.\n *\n * Additionally, blank MatchData must be created to correctly\n * populate the results.\n */\n if (query.isNegated()) {\n matchingFieldRefs = Object.keys(this.fieldVectors)\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n var matchingFieldRef = matchingFieldRefs[i]\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\n matchingFields[matchingFieldRef] = new lunr.MatchData\n }\n }\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n /*\n * Currently we have document fields that match the query, but we\n * need to return documents. The matchData and scores are combined\n * from multiple fields belonging to the same document.\n *\n * Scores are calculated by field, using the query vectors created\n * above, and combined into a final document score using addition.\n */\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\n docRef = fieldRef.docRef\n\n if (!allRequiredMatches.contains(docRef)) {\n continue\n }\n\n if (allProhibitedMatches.contains(docRef)) {\n continue\n }\n\n var fieldVector = this.fieldVectors[fieldRef],\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\n docMatch\n\n if ((docMatch = matches[docRef]) !== undefined) {\n docMatch.score += score\n docMatch.matchData.combine(matchingFields[fieldRef])\n } else {\n var match = {\n ref: docRef,\n score: score,\n matchData: matchingFields[fieldRef]\n }\n matches[docRef] = match\n results.push(match)\n }\n }\n\n /*\n * Sort the results objects by score, highest first.\n */\n return results.sort(function (a, b) {\n return b.score - a.score\n })\n}\n\n/**\n * Prepares the index for JSON serialization.\n *\n * The schema for this JSON blob will be described in a\n * separate JSON schema file.\n *\n * @returns {Object}\n */\nlunr.Index.prototype.toJSON = function () {\n var invertedIndex = Object.keys(this.invertedIndex)\n .sort()\n .map(function (term) {\n return [term, this.invertedIndex[term]]\n }, this)\n\n var fieldVectors = Object.keys(this.fieldVectors)\n .map(function (ref) {\n return [ref, this.fieldVectors[ref].toJSON()]\n }, this)\n\n return {\n version: lunr.version,\n fields: this.fields,\n fieldVectors: fieldVectors,\n invertedIndex: invertedIndex,\n pipeline: this.pipeline.toJSON()\n }\n}\n\n/**\n * Loads a previously serialized lunr.Index\n *\n * @param {Object} serializedIndex - A previously serialized lunr.Index\n * @returns {lunr.Index}\n */\nlunr.Index.load = function (serializedIndex) {\n var attrs = {},\n fieldVectors = {},\n serializedVectors = serializedIndex.fieldVectors,\n invertedIndex = Object.create(null),\n serializedInvertedIndex = serializedIndex.invertedIndex,\n tokenSetBuilder = new lunr.TokenSet.Builder,\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\n\n if (serializedIndex.version != lunr.version) {\n lunr.utils.warn(\"Version mismatch when loading serialised index. Current version of lunr '\" + lunr.version + \"' does not match serialized index '\" + serializedIndex.version + \"'\")\n }\n\n for (var i = 0; i < serializedVectors.length; i++) {\n var tuple = serializedVectors[i],\n ref = tuple[0],\n elements = tuple[1]\n\n fieldVectors[ref] = new lunr.Vector(elements)\n }\n\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\n var tuple = serializedInvertedIndex[i],\n term = tuple[0],\n posting = tuple[1]\n\n tokenSetBuilder.insert(term)\n invertedIndex[term] = posting\n }\n\n tokenSetBuilder.finish()\n\n attrs.fields = serializedIndex.fields\n\n attrs.fieldVectors = fieldVectors\n attrs.invertedIndex = invertedIndex\n attrs.tokenSet = tokenSetBuilder.root\n attrs.pipeline = pipeline\n\n return new lunr.Index(attrs)\n}\n/*!\n * lunr.Builder\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * lunr.Builder performs indexing on a set of documents and\n * returns instances of lunr.Index ready for querying.\n *\n * All configuration of the index is done via the builder, the\n * fields to index, the document reference, the text processing\n * pipeline and document scoring parameters are all set on the\n * builder before indexing.\n *\n * @constructor\n * @property {string} _ref - Internal reference to the document reference field.\n * @property {string[]} _fields - Internal reference to the document fields to index.\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\n */\nlunr.Builder = function () {\n this._ref = \"id\"\n this._fields = Object.create(null)\n this._documents = Object.create(null)\n this.invertedIndex = Object.create(null)\n this.fieldTermFrequencies = {}\n this.fieldLengths = {}\n this.tokenizer = lunr.tokenizer\n this.pipeline = new lunr.Pipeline\n this.searchPipeline = new lunr.Pipeline\n this.documentCount = 0\n this._b = 0.75\n this._k1 = 1.2\n this.termIndex = 0\n this.metadataWhitelist = []\n}\n\n/**\n * Sets the document field used as the document reference. Every document must have this field.\n * The type of this field in the document should be a string, if it is not a string it will be\n * coerced into a string by calling toString.\n *\n * The default ref is 'id'.\n *\n * The ref should _not_ be changed during indexing, it should be set before any documents are\n * added to the index. Changing it during indexing can lead to inconsistent results.\n *\n * @param {string} ref - The name of the reference field in the document.\n */\nlunr.Builder.prototype.ref = function (ref) {\n this._ref = ref\n}\n\n/**\n * A function that is used to extract a field from a document.\n *\n * Lunr expects a field to be at the top level of a document, if however the field\n * is deeply nested within a document an extractor function can be used to extract\n * the right field for indexing.\n *\n * @callback fieldExtractor\n * @param {object} doc - The document being added to the index.\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\n * @example Extracting a nested field\n * function (doc) { return doc.nested.field }\n */\n\n/**\n * Adds a field to the list of document fields that will be indexed. Every document being\n * indexed should have this field. Null values for this field in indexed documents will\n * not cause errors but will limit the chance of that document being retrieved by searches.\n *\n * All fields should be added before adding documents to the index. Adding fields after\n * a document has been indexed will have no effect on already indexed documents.\n *\n * Fields can be boosted at build time. This allows terms within that field to have more\n * importance when ranking search results. Use a field boost to specify that matches within\n * one field are more important than other fields.\n *\n * @param {string} fieldName - The name of a field to index in all documents.\n * @param {object} attributes - Optional attributes associated with this field.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\n */\nlunr.Builder.prototype.field = function (fieldName, attributes) {\n if (/\\//.test(fieldName)) {\n throw new RangeError (\"Field '\" + fieldName + \"' contains illegal character '/'\")\n }\n\n this._fields[fieldName] = attributes || {}\n}\n\n/**\n * A parameter to tune the amount of field length normalisation that is applied when\n * calculating relevance scores. A value of 0 will completely disable any normalisation\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\n * will be clamped to the range 0 - 1.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.b = function (number) {\n if (number < 0) {\n this._b = 0\n } else if (number > 1) {\n this._b = 1\n } else {\n this._b = number\n }\n}\n\n/**\n * A parameter that controls the speed at which a rise in term frequency results in term\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\n * slower saturation levels, a lower value will result in quicker saturation.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.k1 = function (number) {\n this._k1 = number\n}\n\n/**\n * Adds a document to the index.\n *\n * Before adding fields to the index the index should have been fully setup, with the document\n * ref and all fields to index already having been specified.\n *\n * The document must have a field name as specified by the ref (by default this is 'id') and\n * it should have all fields defined for indexing, though null or undefined values will not\n * cause errors.\n *\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\n * this document should rank higher in search results than other documents.\n *\n * @param {object} doc - The document to add to the index.\n * @param {object} attributes - Optional attributes associated with this document.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\n */\nlunr.Builder.prototype.add = function (doc, attributes) {\n var docRef = doc[this._ref],\n fields = Object.keys(this._fields)\n\n this._documents[docRef] = attributes || {}\n this.documentCount += 1\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i],\n extractor = this._fields[fieldName].extractor,\n field = extractor ? extractor(doc) : doc[fieldName],\n tokens = this.tokenizer(field, {\n fields: [fieldName]\n }),\n terms = this.pipeline.run(tokens),\n fieldRef = new lunr.FieldRef (docRef, fieldName),\n fieldTerms = Object.create(null)\n\n this.fieldTermFrequencies[fieldRef] = fieldTerms\n this.fieldLengths[fieldRef] = 0\n\n // store the length of this field for this document\n this.fieldLengths[fieldRef] += terms.length\n\n // calculate term frequencies for this field\n for (var j = 0; j < terms.length; j++) {\n var term = terms[j]\n\n if (fieldTerms[term] == undefined) {\n fieldTerms[term] = 0\n }\n\n fieldTerms[term] += 1\n\n // add to inverted index\n // create an initial posting if one doesn't exist\n if (this.invertedIndex[term] == undefined) {\n var posting = Object.create(null)\n posting[\"_index\"] = this.termIndex\n this.termIndex += 1\n\n for (var k = 0; k < fields.length; k++) {\n posting[fields[k]] = Object.create(null)\n }\n\n this.invertedIndex[term] = posting\n }\n\n // add an entry for this term/fieldName/docRef to the invertedIndex\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\n }\n\n // store all whitelisted metadata about this token in the\n // inverted index\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\n var metadataKey = this.metadataWhitelist[l],\n metadata = term.metadata[metadataKey]\n\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\n }\n\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\n }\n }\n\n }\n}\n\n/**\n * Calculates the average document length for this index\n *\n * @private\n */\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\n\n var fieldRefs = Object.keys(this.fieldLengths),\n numberOfFields = fieldRefs.length,\n accumulator = {},\n documentsWithField = {}\n\n for (var i = 0; i < numberOfFields; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n field = fieldRef.fieldName\n\n documentsWithField[field] || (documentsWithField[field] = 0)\n documentsWithField[field] += 1\n\n accumulator[field] || (accumulator[field] = 0)\n accumulator[field] += this.fieldLengths[fieldRef]\n }\n\n var fields = Object.keys(this._fields)\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i]\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\n }\n\n this.averageFieldLength = accumulator\n}\n\n/**\n * Builds a vector space model of every document using lunr.Vector\n *\n * @private\n */\nlunr.Builder.prototype.createFieldVectors = function () {\n var fieldVectors = {},\n fieldRefs = Object.keys(this.fieldTermFrequencies),\n fieldRefsLength = fieldRefs.length,\n termIdfCache = Object.create(null)\n\n for (var i = 0; i < fieldRefsLength; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n fieldName = fieldRef.fieldName,\n fieldLength = this.fieldLengths[fieldRef],\n fieldVector = new lunr.Vector,\n termFrequencies = this.fieldTermFrequencies[fieldRef],\n terms = Object.keys(termFrequencies),\n termsLength = terms.length\n\n\n var fieldBoost = this._fields[fieldName].boost || 1,\n docBoost = this._documents[fieldRef.docRef].boost || 1\n\n for (var j = 0; j < termsLength; j++) {\n var term = terms[j],\n tf = termFrequencies[term],\n termIndex = this.invertedIndex[term]._index,\n idf, score, scoreWithPrecision\n\n if (termIdfCache[term] === undefined) {\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\n termIdfCache[term] = idf\n } else {\n idf = termIdfCache[term]\n }\n\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\n score *= fieldBoost\n score *= docBoost\n scoreWithPrecision = Math.round(score * 1000) / 1000\n // Converts 1.23456789 to 1.234.\n // Reducing the precision so that the vectors take up less\n // space when serialised. Doing it now so that they behave\n // the same before and after serialisation. Also, this is\n // the fastest approach to reducing a number's precision in\n // JavaScript.\n\n fieldVector.insert(termIndex, scoreWithPrecision)\n }\n\n fieldVectors[fieldRef] = fieldVector\n }\n\n this.fieldVectors = fieldVectors\n}\n\n/**\n * Creates a token set of all tokens in the index using lunr.TokenSet\n *\n * @private\n */\nlunr.Builder.prototype.createTokenSet = function () {\n this.tokenSet = lunr.TokenSet.fromArray(\n Object.keys(this.invertedIndex).sort()\n )\n}\n\n/**\n * Builds the index, creating an instance of lunr.Index.\n *\n * This completes the indexing process and should only be called\n * once all documents have been added to the index.\n *\n * @returns {lunr.Index}\n */\nlunr.Builder.prototype.build = function () {\n this.calculateAverageFieldLengths()\n this.createFieldVectors()\n this.createTokenSet()\n\n return new lunr.Index({\n invertedIndex: this.invertedIndex,\n fieldVectors: this.fieldVectors,\n tokenSet: this.tokenSet,\n fields: Object.keys(this._fields),\n pipeline: this.searchPipeline\n })\n}\n\n/**\n * Applies a plugin to the index builder.\n *\n * A plugin is a function that is called with the index builder as its context.\n * Plugins can be used to customise or extend the behaviour of the index\n * in some way. A plugin is just a function, that encapsulated the custom\n * behaviour that should be applied when building the index.\n *\n * The plugin function will be called with the index builder as its argument, additional\n * arguments can also be passed when calling use. The function will be called\n * with the index builder as its context.\n *\n * @param {Function} plugin The plugin to apply.\n */\nlunr.Builder.prototype.use = function (fn) {\n var args = Array.prototype.slice.call(arguments, 1)\n args.unshift(this)\n fn.apply(this, args)\n}\n/**\n * Contains and collects metadata about a matching document.\n * A single instance of lunr.MatchData is returned as part of every\n * lunr.Index~Result.\n *\n * @constructor\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n * @property {object} metadata - A cloned collection of metadata associated with this document.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData = function (term, field, metadata) {\n var clonedMetadata = Object.create(null),\n metadataKeys = Object.keys(metadata || {})\n\n // Cloning the metadata to prevent the original\n // being mutated during match data combination.\n // Metadata is kept in an array within the inverted\n // index so cloning the data can be done with\n // Array#slice\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n clonedMetadata[key] = metadata[key].slice()\n }\n\n this.metadata = Object.create(null)\n\n if (term !== undefined) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = clonedMetadata\n }\n}\n\n/**\n * An instance of lunr.MatchData will be created for every term that matches a\n * document. However only one instance is required in a lunr.Index~Result. This\n * method combines metadata from another instance of lunr.MatchData with this\n * objects metadata.\n *\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData.prototype.combine = function (otherMatchData) {\n var terms = Object.keys(otherMatchData.metadata)\n\n for (var i = 0; i < terms.length; i++) {\n var term = terms[i],\n fields = Object.keys(otherMatchData.metadata[term])\n\n if (this.metadata[term] == undefined) {\n this.metadata[term] = Object.create(null)\n }\n\n for (var j = 0; j < fields.length; j++) {\n var field = fields[j],\n keys = Object.keys(otherMatchData.metadata[term][field])\n\n if (this.metadata[term][field] == undefined) {\n this.metadata[term][field] = Object.create(null)\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k]\n\n if (this.metadata[term][field][key] == undefined) {\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\n } else {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\n }\n\n }\n }\n }\n}\n\n/**\n * Add metadata for a term/field pair to this instance of match data.\n *\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n */\nlunr.MatchData.prototype.add = function (term, field, metadata) {\n if (!(term in this.metadata)) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = metadata\n return\n }\n\n if (!(field in this.metadata[term])) {\n this.metadata[term][field] = metadata\n return\n }\n\n var metadataKeys = Object.keys(metadata)\n\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n\n if (key in this.metadata[term][field]) {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\n } else {\n this.metadata[term][field][key] = metadata[key]\n }\n }\n}\n/**\n * A lunr.Query provides a programmatic way of defining queries to be performed\n * against a {@link lunr.Index}.\n *\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\n * so the query object is pre-initialized with the right index fields.\n *\n * @constructor\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\n */\nlunr.Query = function (allFields) {\n this.clauses = []\n this.allFields = allFields\n}\n\n/**\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\n *\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\n * concatenation.\n *\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\n *\n * @constant\n * @default\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with trailing wildcard\n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\n * @example query term with leading and trailing wildcard\n * query.term('foo', {\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\n * })\n */\n\nlunr.Query.wildcard = new String (\"*\")\nlunr.Query.wildcard.NONE = 0\nlunr.Query.wildcard.LEADING = 1\nlunr.Query.wildcard.TRAILING = 2\n\n/**\n * Constants for indicating what kind of presence a term must have in matching documents.\n *\n * @constant\n * @enum {number}\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with required presence\n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\n */\nlunr.Query.presence = {\n /**\n * Term's presence in a document is optional, this is the default value.\n */\n OPTIONAL: 1,\n\n /**\n * Term's presence in a document is required, documents that do not contain\n * this term will not be returned.\n */\n REQUIRED: 2,\n\n /**\n * Term's presence in a document is prohibited, documents that do contain\n * this term will not be returned.\n */\n PROHIBITED: 3\n}\n\n/**\n * A single clause in a {@link lunr.Query} contains a term and details on how to\n * match that term against a {@link lunr.Index}.\n *\n * @typedef {Object} lunr.Query~Clause\n * @property {string[]} fields - The fields in an index this clause should be matched against.\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\n */\n\n/**\n * Adds a {@link lunr.Query~Clause} to this query.\n *\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\n * a default boost of 1 is applied to the clause.\n *\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\n * @see lunr.Query~Clause\n * @returns {lunr.Query}\n */\nlunr.Query.prototype.clause = function (clause) {\n if (!('fields' in clause)) {\n clause.fields = this.allFields\n }\n\n if (!('boost' in clause)) {\n clause.boost = 1\n }\n\n if (!('usePipeline' in clause)) {\n clause.usePipeline = true\n }\n\n if (!('wildcard' in clause)) {\n clause.wildcard = lunr.Query.wildcard.NONE\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\n clause.term = \"*\" + clause.term\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\n clause.term = \"\" + clause.term + \"*\"\n }\n\n if (!('presence' in clause)) {\n clause.presence = lunr.Query.presence.OPTIONAL\n }\n\n this.clauses.push(clause)\n\n return this\n}\n\n/**\n * A negated query is one in which every clause has a presence of\n * prohibited. These queries require some special processing to return\n * the expected results.\n *\n * @returns boolean\n */\nlunr.Query.prototype.isNegated = function () {\n for (var i = 0; i < this.clauses.length; i++) {\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\n * to the list of clauses that make up this query.\n *\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\n * to a token or token-like string should be done before calling this method.\n *\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\n * array, each term in the array will share the same options.\n *\n * @param {object|object[]} term - The term(s) to add to the query.\n * @param {object} [options] - Any additional properties to add to the query clause.\n * @returns {lunr.Query}\n * @see lunr.Query#clause\n * @see lunr.Query~Clause\n * @example adding a single term to a query\n * query.term(\"foo\")\n * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard\n * query.term(\"foo\", {\n * fields: [\"title\"],\n * boost: 10,\n * wildcard: lunr.Query.wildcard.TRAILING\n * })\n * @example using lunr.tokenizer to convert a string to tokens before using them as terms\n * query.term(lunr.tokenizer(\"foo bar\"))\n */\nlunr.Query.prototype.term = function (term, options) {\n if (Array.isArray(term)) {\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\n return this\n }\n\n var clause = options || {}\n clause.term = term.toString()\n\n this.clause(clause)\n\n return this\n}\nlunr.QueryParseError = function (message, start, end) {\n this.name = \"QueryParseError\"\n this.message = message\n this.start = start\n this.end = end\n}\n\nlunr.QueryParseError.prototype = new Error\nlunr.QueryLexer = function (str) {\n this.lexemes = []\n this.str = str\n this.length = str.length\n this.pos = 0\n this.start = 0\n this.escapeCharPositions = []\n}\n\nlunr.QueryLexer.prototype.run = function () {\n var state = lunr.QueryLexer.lexText\n\n while (state) {\n state = state(this)\n }\n}\n\nlunr.QueryLexer.prototype.sliceString = function () {\n var subSlices = [],\n sliceStart = this.start,\n sliceEnd = this.pos\n\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\n sliceEnd = this.escapeCharPositions[i]\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\n sliceStart = sliceEnd + 1\n }\n\n subSlices.push(this.str.slice(sliceStart, this.pos))\n this.escapeCharPositions.length = 0\n\n return subSlices.join('')\n}\n\nlunr.QueryLexer.prototype.emit = function (type) {\n this.lexemes.push({\n type: type,\n str: this.sliceString(),\n start: this.start,\n end: this.pos\n })\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.escapeCharacter = function () {\n this.escapeCharPositions.push(this.pos - 1)\n this.pos += 1\n}\n\nlunr.QueryLexer.prototype.next = function () {\n if (this.pos >= this.length) {\n return lunr.QueryLexer.EOS\n }\n\n var char = this.str.charAt(this.pos)\n this.pos += 1\n return char\n}\n\nlunr.QueryLexer.prototype.width = function () {\n return this.pos - this.start\n}\n\nlunr.QueryLexer.prototype.ignore = function () {\n if (this.start == this.pos) {\n this.pos += 1\n }\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.backup = function () {\n this.pos -= 1\n}\n\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\n var char, charCode\n\n do {\n char = this.next()\n charCode = char.charCodeAt(0)\n } while (charCode > 47 && charCode < 58)\n\n if (char != lunr.QueryLexer.EOS) {\n this.backup()\n }\n}\n\nlunr.QueryLexer.prototype.more = function () {\n return this.pos < this.length\n}\n\nlunr.QueryLexer.EOS = 'EOS'\nlunr.QueryLexer.FIELD = 'FIELD'\nlunr.QueryLexer.TERM = 'TERM'\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\nlunr.QueryLexer.BOOST = 'BOOST'\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\n\nlunr.QueryLexer.lexField = function (lexer) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.FIELD)\n lexer.ignore()\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexTerm = function (lexer) {\n if (lexer.width() > 1) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.TERM)\n }\n\n lexer.ignore()\n\n if (lexer.more()) {\n return lunr.QueryLexer.lexText\n }\n}\n\nlunr.QueryLexer.lexEditDistance = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexBoost = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.BOOST)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexEOS = function (lexer) {\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n}\n\n// This matches the separator used when tokenising fields\n// within a document. These should match otherwise it is\n// not possible to search for some tokens within a document.\n//\n// It is possible for the user to change the separator on the\n// tokenizer so it _might_ clash with any other of the special\n// characters already used within the search string, e.g. :.\n//\n// This means that it is possible to change the separator in\n// such a way that makes some words unsearchable using a search\n// string.\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\n\nlunr.QueryLexer.lexText = function (lexer) {\n while (true) {\n var char = lexer.next()\n\n if (char == lunr.QueryLexer.EOS) {\n return lunr.QueryLexer.lexEOS\n }\n\n // Escape character is '\\'\n if (char.charCodeAt(0) == 92) {\n lexer.escapeCharacter()\n continue\n }\n\n if (char == \":\") {\n return lunr.QueryLexer.lexField\n }\n\n if (char == \"~\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexEditDistance\n }\n\n if (char == \"^\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexBoost\n }\n\n // \"+\" indicates term presence is required\n // checking for length to ensure that only\n // leading \"+\" are considered\n if (char == \"+\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n // \"-\" indicates term presence is prohibited\n // checking for length to ensure that only\n // leading \"-\" are considered\n if (char == \"-\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n if (char.match(lunr.QueryLexer.termSeparator)) {\n return lunr.QueryLexer.lexTerm\n }\n }\n}\n\nlunr.QueryParser = function (str, query) {\n this.lexer = new lunr.QueryLexer (str)\n this.query = query\n this.currentClause = {}\n this.lexemeIdx = 0\n}\n\nlunr.QueryParser.prototype.parse = function () {\n this.lexer.run()\n this.lexemes = this.lexer.lexemes\n\n var state = lunr.QueryParser.parseClause\n\n while (state) {\n state = state(this)\n }\n\n return this.query\n}\n\nlunr.QueryParser.prototype.peekLexeme = function () {\n return this.lexemes[this.lexemeIdx]\n}\n\nlunr.QueryParser.prototype.consumeLexeme = function () {\n var lexeme = this.peekLexeme()\n this.lexemeIdx += 1\n return lexeme\n}\n\nlunr.QueryParser.prototype.nextClause = function () {\n var completedClause = this.currentClause\n this.query.clause(completedClause)\n this.currentClause = {}\n}\n\nlunr.QueryParser.parseClause = function (parser) {\n var lexeme = parser.peekLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.type) {\n case lunr.QueryLexer.PRESENCE:\n return lunr.QueryParser.parsePresence\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expected either a field or a term, found \" + lexeme.type\n\n if (lexeme.str.length >= 1) {\n errorMessage += \" with value '\" + lexeme.str + \"'\"\n }\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n}\n\nlunr.QueryParser.parsePresence = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.str) {\n case \"-\":\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\n break\n case \"+\":\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\n break\n default:\n var errorMessage = \"unrecognised presence operator'\" + lexeme.str + \"'\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term or field, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term or field, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseField = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\n var possibleFields = parser.query.allFields.map(function (f) { return \"'\" + f + \"'\" }).join(', '),\n errorMessage = \"unrecognised field '\" + lexeme.str + \"', possible fields: \" + possibleFields\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.fields = [lexeme.str]\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseTerm = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n parser.currentClause.term = lexeme.str.toLowerCase()\n\n if (lexeme.str.indexOf(\"*\") != -1) {\n parser.currentClause.usePipeline = false\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseEditDistance = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var editDistance = parseInt(lexeme.str, 10)\n\n if (isNaN(editDistance)) {\n var errorMessage = \"edit distance must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.editDistance = editDistance\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseBoost = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var boost = parseInt(lexeme.str, 10)\n\n if (isNaN(boost)) {\n var errorMessage = \"boost must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.boost = boost\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\n /**\n * export the module via AMD, CommonJS or as a browser global\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\n */\n ;(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory)\n } else if (typeof exports === 'object') {\n /**\n * Node. Does not work with strict CommonJS, but\n * only CommonJS-like enviroments that support module.exports,\n * like Node.\n */\n module.exports = factory()\n } else {\n // Browser globals (root is window)\n root.lunr = factory()\n }\n }(this, function () {\n /**\n * Just return a value to define the module export.\n * This example returns an object, but the module\n * can return a function as the exported value.\n */\n return lunr\n }))\n})();\n", "/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport lunr from \"lunr\"\n\nimport \"~/polyfills\"\n\nimport { Search, SearchIndexConfig } from \"../../_\"\nimport {\n SearchMessage,\n SearchMessageType\n} from \"../message\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Add support for usage with `iframe-worker` polyfill\n *\n * While `importScripts` is synchronous when executed inside of a web worker,\n * it's not possible to provide a synchronous polyfilled implementation. The\n * cool thing is that awaiting a non-Promise is a noop, so extending the type\n * definition to return a `Promise` shouldn't break anything.\n *\n * @see https://bit.ly/2PjDnXi - GitHub comment\n */\ndeclare global {\n function importScripts(...urls: string[]): Promise | void\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Search index\n */\nlet index: Search\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch (= import) multi-language support through `lunr-languages`\n *\n * This function automatically imports the stemmers necessary to process the\n * languages, which are defined through the search index configuration.\n *\n * If the worker runs inside of an `iframe` (when using `iframe-worker` as\n * a shim), the base URL for the stemmers to be loaded must be determined by\n * searching for the first `script` element with a `src` attribute, which will\n * contain the contents of this script.\n *\n * @param config - Search index configuration\n *\n * @returns Promise resolving with no result\n */\nasync function setupSearchLanguages(\n config: SearchIndexConfig\n): Promise {\n let base = \"../lunr\"\n\n /* Detect `iframe-worker` and fix base URL */\n if (typeof parent !== \"undefined\" && \"IFrameWorker\" in parent) {\n const worker = document.querySelector(\"script[src]\")!\n const [path] = worker.src.split(\"/worker\")\n\n /* Prefix base with path */\n base = base.replace(\"..\", path)\n }\n\n /* Add scripts for languages */\n const scripts = []\n for (const lang of config.lang) {\n switch (lang) {\n\n /* Add segmenter for Japanese */\n case \"ja\":\n scripts.push(`${base}/tinyseg.js`)\n break\n\n /* Add segmenter for Hindi and Thai */\n case \"hi\":\n case \"th\":\n scripts.push(`${base}/wordcut.js`)\n break\n }\n\n /* Add language support */\n if (lang !== \"en\")\n scripts.push(`${base}/min/lunr.${lang}.min.js`)\n }\n\n /* Add multi-language support */\n if (config.lang.length > 1)\n scripts.push(`${base}/min/lunr.multi.min.js`)\n\n /* Load scripts synchronously */\n if (scripts.length)\n await importScripts(\n `${base}/min/lunr.stemmer.support.min.js`,\n ...scripts\n )\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Message handler\n *\n * @param message - Source message\n *\n * @returns Target message\n */\nexport async function handler(\n message: SearchMessage\n): Promise {\n switch (message.type) {\n\n /* Search setup message */\n case SearchMessageType.SETUP:\n await setupSearchLanguages(message.data.config)\n index = new Search(message.data)\n return {\n type: SearchMessageType.READY\n }\n\n /* Search query message */\n case SearchMessageType.QUERY:\n return {\n type: SearchMessageType.RESULT,\n data: index ? index.search(message.data) : { items: [] }\n }\n\n /* All other messages */\n default:\n throw new TypeError(\"Invalid message type\")\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Worker\n * ------------------------------------------------------------------------- */\n\n/* @ts-expect-error - expose Lunr.js in global scope, or stemmers won't work */\nself.lunr = lunr\n\n/* Handle messages */\naddEventListener(\"message\", async ev => {\n postMessage(await handler(ev.data))\n})\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Polyfills\n * ------------------------------------------------------------------------- */\n\n/* Polyfill `Object.entries` */\nif (!Object.entries)\n Object.entries = function (obj: object) {\n const data: [string, string][] = []\n for (const key of Object.keys(obj))\n // @ts-expect-error - ignore property access warning\n data.push([key, obj[key]])\n\n /* Return entries */\n return data\n }\n\n/* Polyfill `Object.values` */\nif (!Object.values)\n Object.values = function (obj: object) {\n const data: string[] = []\n for (const key of Object.keys(obj))\n // @ts-expect-error - ignore property access warning\n data.push(obj[key])\n\n /* Return values */\n return data\n }\n\n/* ------------------------------------------------------------------------- */\n\n/* Polyfills for `Element` */\nif (typeof Element !== \"undefined\") {\n\n /* Polyfill `Element.scrollTo` */\n if (!Element.prototype.scrollTo)\n Element.prototype.scrollTo = function (\n x?: ScrollToOptions | number, y?: number\n ): void {\n if (typeof x === \"object\") {\n this.scrollLeft = x.left!\n this.scrollTop = x.top!\n } else {\n this.scrollLeft = x!\n this.scrollTop = y!\n }\n }\n\n /* Polyfill `Element.replaceWith` */\n if (!Element.prototype.replaceWith)\n Element.prototype.replaceWith = function (\n ...nodes: Array\n ): void {\n const parent = this.parentNode\n if (parent) {\n if (nodes.length === 0)\n parent.removeChild(this)\n\n /* Replace children and create text nodes */\n for (let i = nodes.length - 1; i >= 0; i--) {\n let node = nodes[i]\n if (typeof node !== \"object\")\n node = document.createTextNode(node)\n else if (node.parentNode)\n node.parentNode.removeChild(node)\n\n /* Replace child or insert before previous sibling */\n if (!i)\n parent.replaceChild(node, this)\n else\n parent.insertBefore(this.previousSibling!, node)\n }\n }\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport escapeHTML from \"escape-html\"\n\nimport { SearchIndexDocument } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search document\n */\nexport interface SearchDocument extends SearchIndexDocument {\n parent?: SearchIndexDocument /* Parent article */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search document mapping\n */\nexport type SearchDocumentMap = Map\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search document mapping\n *\n * @param docs - Search index documents\n *\n * @returns Search document map\n */\nexport function setupSearchDocumentMap(\n docs: SearchIndexDocument[]\n): SearchDocumentMap {\n const documents = new Map()\n const parents = new Set()\n for (const doc of docs) {\n const [path, hash] = doc.location.split(\"#\")\n\n /* Extract location, title and tags */\n const location = doc.location\n const title = doc.title\n const tags = doc.tags\n\n /* Escape and cleanup text */\n const text = escapeHTML(doc.text)\n .replace(/\\s+(?=[,.:;!?])/g, \"\")\n .replace(/\\s+/g, \" \")\n\n /* Handle section */\n if (hash) {\n const parent = documents.get(path)!\n\n /* Ignore first section, override article */\n if (!parents.has(parent)) {\n parent.title = doc.title\n parent.text = text\n\n /* Remember that we processed the article */\n parents.add(parent)\n\n /* Add subsequent section */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n parent\n })\n }\n\n /* Add article */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n ...tags && { tags }\n })\n }\n }\n return documents\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport escapeHTML from \"escape-html\"\n\nimport { SearchIndexConfig } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search highlight function\n *\n * @param value - Value\n *\n * @returns Highlighted value\n */\nexport type SearchHighlightFn = (value: string) => string\n\n/**\n * Search highlight factory function\n *\n * @param query - Query value\n *\n * @returns Search highlight function\n */\nexport type SearchHighlightFactoryFn = (query: string) => SearchHighlightFn\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search highlighter\n *\n * @param config - Search index configuration\n * @param escape - Whether to escape HTML\n *\n * @returns Search highlight factory function\n */\nexport function setupSearchHighlighter(\n config: SearchIndexConfig, escape: boolean\n): SearchHighlightFactoryFn {\n const separator = new RegExp(config.separator, \"img\")\n const highlight = (_: unknown, data: string, term: string) => {\n return `${data}${term}`\n }\n\n /* Return factory function */\n return (query: string) => {\n query = query\n .replace(/[\\s*+\\-:~^]+/g, \" \")\n .trim()\n\n /* Create search term match expression */\n const match = new RegExp(`(^|${config.separator})(${\n query\n .replace(/[|\\\\{}()[\\]^$+*?.-]/g, \"\\\\$&\")\n .replace(separator, \"|\")\n })`, \"img\")\n\n /* Highlight string value */\n return value => (\n escape\n ? escapeHTML(value)\n : value\n )\n .replace(match, highlight)\n .replace(/<\\/mark>(\\s+)]*>/img, \"$1\")\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search query clause\n */\nexport interface SearchQueryClause {\n presence: lunr.Query.presence /* Clause presence */\n term: string /* Clause term */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search query terms\n */\nexport type SearchQueryTerms = Record\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Parse a search query for analysis\n *\n * @param value - Query value\n *\n * @returns Search query clauses\n */\nexport function parseSearchQuery(\n value: string\n): SearchQueryClause[] {\n const query = new (lunr as any).Query([\"title\", \"text\"])\n const parser = new (lunr as any).QueryParser(value, query)\n\n /* Parse and return query clauses */\n parser.parse()\n return query.clauses\n}\n\n/**\n * Analyze the search query clauses in regard to the search terms found\n *\n * @param query - Search query clauses\n * @param terms - Search terms\n *\n * @returns Search query terms\n */\nexport function getSearchQueryTerms(\n query: SearchQueryClause[], terms: string[]\n): SearchQueryTerms {\n const clauses = new Set(query)\n\n /* Match query clauses against terms */\n const result: SearchQueryTerms = {}\n for (let t = 0; t < terms.length; t++)\n for (const clause of clauses)\n if (terms[t].startsWith(clause.term)) {\n result[clause.term] = true\n clauses.delete(clause)\n }\n\n /* Annotate unmatched non-stopword query clauses */\n for (const clause of clauses)\n if (lunr.stopWordFilter?.(clause.term as any))\n result[clause.term] = false\n\n /* Return query terms */\n return result\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n SearchDocument,\n SearchDocumentMap,\n setupSearchDocumentMap\n} from \"../document\"\nimport {\n SearchHighlightFactoryFn,\n setupSearchHighlighter\n} from \"../highlighter\"\nimport { SearchOptions } from \"../options\"\nimport {\n SearchQueryTerms,\n getSearchQueryTerms,\n parseSearchQuery\n} from \"../query\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search index configuration\n */\nexport interface SearchIndexConfig {\n lang: string[] /* Search languages */\n separator: string /* Search separator */\n}\n\n/**\n * Search index document\n */\nexport interface SearchIndexDocument {\n location: string /* Document location */\n title: string /* Document title */\n text: string /* Document text */\n tags?: string[] /* Document tags */\n boost?: number /* Document boost */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search index\n *\n * This interfaces describes the format of the `search_index.json` file which\n * is automatically built by the MkDocs search plugin.\n */\nexport interface SearchIndex {\n config: SearchIndexConfig /* Search index configuration */\n docs: SearchIndexDocument[] /* Search index documents */\n options: SearchOptions /* Search options */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search metadata\n */\nexport interface SearchMetadata {\n score: number /* Score (relevance) */\n terms: SearchQueryTerms /* Search query terms */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search result document\n */\nexport type SearchResultDocument = SearchDocument & SearchMetadata\n\n/**\n * Search result item\n */\nexport type SearchResultItem = SearchResultDocument[]\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search result\n */\nexport interface SearchResult {\n items: SearchResultItem[] /* Search result items */\n suggestions?: string[] /* Search suggestions */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Compute the difference of two lists of strings\n *\n * @param a - 1st list of strings\n * @param b - 2nd list of strings\n *\n * @returns Difference\n */\nfunction difference(a: string[], b: string[]): string[] {\n const [x, y] = [new Set(a), new Set(b)]\n return [\n ...new Set([...x].filter(value => !y.has(value)))\n ]\n}\n\n/* ----------------------------------------------------------------------------\n * Class\n * ------------------------------------------------------------------------- */\n\n/**\n * Search index\n */\nexport class Search {\n\n /**\n * Search document mapping\n *\n * A mapping of URLs (including hash fragments) to the actual articles and\n * sections of the documentation. The search document mapping must be created\n * regardless of whether the index was prebuilt or not, as Lunr.js itself\n * only stores the actual index.\n */\n protected documents: SearchDocumentMap\n\n /**\n * Search highlight factory function\n */\n protected highlight: SearchHighlightFactoryFn\n\n /**\n * The underlying Lunr.js search index\n */\n protected index: lunr.Index\n\n /**\n * Search options\n */\n protected options: SearchOptions\n\n /**\n * Create the search integration\n *\n * @param data - Search index\n */\n public constructor({ config, docs, options }: SearchIndex) {\n this.options = options\n\n /* Set up document map and highlighter factory */\n this.documents = setupSearchDocumentMap(docs)\n this.highlight = setupSearchHighlighter(config, false)\n\n /* Set separator for tokenizer */\n lunr.tokenizer.separator = new RegExp(config.separator)\n\n /* Create search index */\n this.index = lunr(function () {\n\n /* Set up multi-language support */\n if (config.lang.length === 1 && config.lang[0] !== \"en\") {\n this.use((lunr as any)[config.lang[0]])\n } else if (config.lang.length > 1) {\n this.use((lunr as any).multiLanguage(...config.lang))\n }\n\n /* Compute functions to be removed from the pipeline */\n const fns = difference([\n \"trimmer\", \"stopWordFilter\", \"stemmer\"\n ], options.pipeline)\n\n /* Remove functions from the pipeline for registered languages */\n for (const lang of config.lang.map(language => (\n language === \"en\" ? lunr : (lunr as any)[language]\n ))) {\n for (const fn of fns) {\n this.pipeline.remove(lang[fn])\n this.searchPipeline.remove(lang[fn])\n }\n }\n\n /* Set up reference */\n this.ref(\"location\")\n\n /* Set up fields */\n this.field(\"title\", { boost: 1e3 })\n this.field(\"text\")\n this.field(\"tags\", { boost: 1e6, extractor: doc => {\n const { tags = [] } = doc as SearchDocument\n return tags.reduce((list, tag) => [\n ...list,\n ...lunr.tokenizer(tag)\n ], [] as lunr.Token[])\n } })\n\n /* Index documents */\n for (const doc of docs)\n this.add(doc, { boost: doc.boost })\n })\n }\n\n /**\n * Search for matching documents\n *\n * The search index which MkDocs provides is divided up into articles, which\n * contain the whole content of the individual pages, and sections, which only\n * contain the contents of the subsections obtained by breaking the individual\n * pages up at `h1` ... `h6`. As there may be many sections on different pages\n * with identical titles (for example within this very project, e.g. \"Usage\"\n * or \"Installation\"), they need to be put into the context of the containing\n * page. For this reason, section results are grouped within their respective\n * articles which are the top-level results that are returned.\n *\n * @param query - Query value\n *\n * @returns Search results\n */\n public search(query: string): SearchResult {\n if (query) {\n try {\n const highlight = this.highlight(query)\n\n /* Parse query to extract clauses for analysis */\n const clauses = parseSearchQuery(query)\n .filter(clause => (\n clause.presence !== lunr.Query.presence.PROHIBITED\n ))\n\n /* Perform search and post-process results */\n const groups = this.index.search(`${query}*`)\n\n /* Apply post-query boosts based on title and search query terms */\n .reduce((item, { ref, score, matchData }) => {\n const document = this.documents.get(ref)\n if (typeof document !== \"undefined\") {\n const { location, title, text, tags, parent } = document\n\n /* Compute and analyze search query terms */\n const terms = getSearchQueryTerms(\n clauses,\n Object.keys(matchData.metadata)\n )\n\n /* Highlight title and text and apply post-query boosts */\n const boost = +!parent + +Object.values(terms).every(t => t)\n item.push({\n location,\n title: highlight(title),\n text: highlight(text),\n ...tags && { tags: tags.map(highlight) },\n score: score * (1 + boost),\n terms\n })\n }\n return item\n }, [])\n\n /* Sort search results again after applying boosts */\n .sort((a, b) => b.score - a.score)\n\n /* Group search results by page */\n .reduce((items, result) => {\n const document = this.documents.get(result.location)\n if (typeof document !== \"undefined\") {\n const ref = \"parent\" in document\n ? document.parent!.location\n : document.location\n items.set(ref, [...items.get(ref) || [], result])\n }\n return items\n }, new Map())\n\n /* Generate search suggestions, if desired */\n let suggestions: string[] | undefined\n if (this.options.suggestions) {\n const titles = this.index.query(builder => {\n for (const clause of clauses)\n builder.term(clause.term, {\n fields: [\"title\"],\n presence: lunr.Query.presence.REQUIRED,\n wildcard: lunr.Query.wildcard.TRAILING\n })\n })\n\n /* Retrieve suggestions for best match */\n suggestions = titles.length\n ? Object.keys(titles[0].matchData.metadata)\n : []\n }\n\n /* Return items and suggestions */\n return {\n items: [...groups.values()],\n ...typeof suggestions !== \"undefined\" && { suggestions }\n }\n\n /* Log errors to console (for now) */\n } catch {\n console.warn(`Invalid query: ${query} \u2013 see https://bit.ly/2s3ChXG`)\n }\n }\n\n /* Return nothing in case of error or empty query */\n return { items: [] }\n }\n}\n"], - "mappings": "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L,CAAI,KACrDD,EAAIC,EAER,CAEA,OAAAG,EAAKP,EACLQ,EAAMzB,EACFwB,EAAG,KAAKJ,CAAC,GAAKK,EAAI,KAAKL,CAAC,IAC1BI,EAAKjB,EACLa,EAAIA,EAAE,QAAQI,EAAG,EAAE,GAKjBD,GAAW,MACbH,EAAIG,EAAQ,YAAY,EAAIH,EAAE,OAAO,CAAC,GAGjCA,CACT,EAEA,OAAO,SAAUhD,EAAO,CACtB,OAAOA,EAAM,OAAO+C,CAAa,CACnC,CACF,EAAG,EAEHpG,EAAK,SAAS,iBAAiBA,EAAK,QAAS,SAAS,EACtD;AAAA;AAAA;AAAA,GAkBAA,EAAK,uBAAyB,SAAU8G,EAAW,CACjD,IAAIC,EAAQD,EAAU,OAAO,SAAU7D,EAAM+D,EAAU,CACrD,OAAA/D,EAAK+D,GAAYA,EACV/D,CACT,EAAG,CAAC,CAAC,EAEL,OAAO,SAAUI,EAAO,CACtB,GAAIA,GAAS0D,EAAM1D,EAAM,SAAS,KAAOA,EAAM,SAAS,EAAG,OAAOA,CACpE,CACF,EAeArD,EAAK,eAAiBA,EAAK,uBAAuB,CAChD,IACA,OACA,QACA,SACA,QACA,MACA,SACA,OACA,KACA,QACA,KACA,MACA,MACA,MACA,KACA,KACA,KACA,UACA,OACA,MACA,KACA,MACA,SACA,QACA,OACA,MACA,KACA,OACA,SACA,OACA,OACA,QACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,KACA,MACA,OACA,MACA,MACA,MACA,UACA,IACA,KACA,KACA,OACA,KACA,KACA,MACA,OACA,QACA,MACA,OACA,SACA,MACA,KACA,QACA,OACA,OACA,KACA,UACA,KACA,MACA,MACA,KACA,MACA,QACA,KACA,OACA,KACA,QACA,MACA,MACA,SACA,OACA,MACA,OACA,MACA,SACA,QACA,KACA,OACA,OACA,OACA,MACA,QACA,OACA,OACA,QACA,QACA,OACA,OACA,MACA,KACA,MACA,OACA,KACA,QACA,MACA,KACA,OACA,OACA,OACA,QACA,QACA,QACA,MACA,OACA,MACA,OACA,OACA,QACA,MACA,MACA,MACF,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", + "sourcesContent": ["/**\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9\n * Copyright (C) 2020 Oliver Nightingale\n * @license MIT\n */\n\n;(function(){\n\n/**\n * A convenience function for configuring and constructing\n * a new lunr Index.\n *\n * A lunr.Builder instance is created and the pipeline setup\n * with a trimmer, stop word filter and stemmer.\n *\n * This builder object is yielded to the configuration function\n * that is passed as a parameter, allowing the list of fields\n * and other builder parameters to be customised.\n *\n * All documents _must_ be added within the passed config function.\n *\n * @example\n * var idx = lunr(function () {\n * this.field('title')\n * this.field('body')\n * this.ref('id')\n *\n * documents.forEach(function (doc) {\n * this.add(doc)\n * }, this)\n * })\n *\n * @see {@link lunr.Builder}\n * @see {@link lunr.Pipeline}\n * @see {@link lunr.trimmer}\n * @see {@link lunr.stopWordFilter}\n * @see {@link lunr.stemmer}\n * @namespace {function} lunr\n */\nvar lunr = function (config) {\n var builder = new lunr.Builder\n\n builder.pipeline.add(\n lunr.trimmer,\n lunr.stopWordFilter,\n lunr.stemmer\n )\n\n builder.searchPipeline.add(\n lunr.stemmer\n )\n\n config.call(builder, builder)\n return builder.build()\n}\n\nlunr.version = \"2.3.9\"\n/*!\n * lunr.utils\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A namespace containing utils for the rest of the lunr library\n * @namespace lunr.utils\n */\nlunr.utils = {}\n\n/**\n * Print a warning message to the console.\n *\n * @param {String} message The message to be printed.\n * @memberOf lunr.utils\n * @function\n */\nlunr.utils.warn = (function (global) {\n /* eslint-disable no-console */\n return function (message) {\n if (global.console && console.warn) {\n console.warn(message)\n }\n }\n /* eslint-enable no-console */\n})(this)\n\n/**\n * Convert an object to a string.\n *\n * In the case of `null` and `undefined` the function returns\n * the empty string, in all other cases the result of calling\n * `toString` on the passed object is returned.\n *\n * @param {Any} obj The object to convert to a string.\n * @return {String} string representation of the passed object.\n * @memberOf lunr.utils\n */\nlunr.utils.asString = function (obj) {\n if (obj === void 0 || obj === null) {\n return \"\"\n } else {\n return obj.toString()\n }\n}\n\n/**\n * Clones an object.\n *\n * Will create a copy of an existing object such that any mutations\n * on the copy cannot affect the original.\n *\n * Only shallow objects are supported, passing a nested object to this\n * function will cause a TypeError.\n *\n * Objects with primitives, and arrays of primitives are supported.\n *\n * @param {Object} obj The object to clone.\n * @return {Object} a clone of the passed object.\n * @throws {TypeError} when a nested object is passed.\n * @memberOf Utils\n */\nlunr.utils.clone = function (obj) {\n if (obj === null || obj === undefined) {\n return obj\n }\n\n var clone = Object.create(null),\n keys = Object.keys(obj)\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i],\n val = obj[key]\n\n if (Array.isArray(val)) {\n clone[key] = val.slice()\n continue\n }\n\n if (typeof val === 'string' ||\n typeof val === 'number' ||\n typeof val === 'boolean') {\n clone[key] = val\n continue\n }\n\n throw new TypeError(\"clone is not deep and does not support nested objects\")\n }\n\n return clone\n}\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\n this.docRef = docRef\n this.fieldName = fieldName\n this._stringValue = stringValue\n}\n\nlunr.FieldRef.joiner = \"/\"\n\nlunr.FieldRef.fromString = function (s) {\n var n = s.indexOf(lunr.FieldRef.joiner)\n\n if (n === -1) {\n throw \"malformed field ref string\"\n }\n\n var fieldRef = s.slice(0, n),\n docRef = s.slice(n + 1)\n\n return new lunr.FieldRef (docRef, fieldRef, s)\n}\n\nlunr.FieldRef.prototype.toString = function () {\n if (this._stringValue == undefined) {\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\n }\n\n return this._stringValue\n}\n/*!\n * lunr.Set\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A lunr set.\n *\n * @constructor\n */\nlunr.Set = function (elements) {\n this.elements = Object.create(null)\n\n if (elements) {\n this.length = elements.length\n\n for (var i = 0; i < this.length; i++) {\n this.elements[elements[i]] = true\n }\n } else {\n this.length = 0\n }\n}\n\n/**\n * A complete set that contains all elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.complete = {\n intersect: function (other) {\n return other\n },\n\n union: function () {\n return this\n },\n\n contains: function () {\n return true\n }\n}\n\n/**\n * An empty set that contains no elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.empty = {\n intersect: function () {\n return this\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return false\n }\n}\n\n/**\n * Returns true if this set contains the specified object.\n *\n * @param {object} object - Object whose presence in this set is to be tested.\n * @returns {boolean} - True if this set contains the specified object.\n */\nlunr.Set.prototype.contains = function (object) {\n return !!this.elements[object]\n}\n\n/**\n * Returns a new set containing only the elements that are present in both\n * this set and the specified set.\n *\n * @param {lunr.Set} other - set to intersect with this set.\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\n */\n\nlunr.Set.prototype.intersect = function (other) {\n var a, b, elements, intersection = []\n\n if (other === lunr.Set.complete) {\n return this\n }\n\n if (other === lunr.Set.empty) {\n return other\n }\n\n if (this.length < other.length) {\n a = this\n b = other\n } else {\n a = other\n b = this\n }\n\n elements = Object.keys(a.elements)\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i]\n if (element in b.elements) {\n intersection.push(element)\n }\n }\n\n return new lunr.Set (intersection)\n}\n\n/**\n * Returns a new set combining the elements of this and the specified set.\n *\n * @param {lunr.Set} other - set to union with this set.\n * @return {lunr.Set} a new set that is the union of this and the specified set.\n */\n\nlunr.Set.prototype.union = function (other) {\n if (other === lunr.Set.complete) {\n return lunr.Set.complete\n }\n\n if (other === lunr.Set.empty) {\n return this\n }\n\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\n}\n/**\n * A function to calculate the inverse document frequency for\n * a posting. This is shared between the builder and the index\n *\n * @private\n * @param {object} posting - The posting for a given term\n * @param {number} documentCount - The total number of documents.\n */\nlunr.idf = function (posting, documentCount) {\n var documentsWithTerm = 0\n\n for (var fieldName in posting) {\n if (fieldName == '_index') continue // Ignore the term index, its not a field\n documentsWithTerm += Object.keys(posting[fieldName]).length\n }\n\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\n\n return Math.log(1 + Math.abs(x))\n}\n\n/**\n * A token wraps a string representation of a token\n * as it is passed through the text processing pipeline.\n *\n * @constructor\n * @param {string} [str=''] - The string token being wrapped.\n * @param {object} [metadata={}] - Metadata associated with this token.\n */\nlunr.Token = function (str, metadata) {\n this.str = str || \"\"\n this.metadata = metadata || {}\n}\n\n/**\n * Returns the token string that is being wrapped by this object.\n *\n * @returns {string}\n */\nlunr.Token.prototype.toString = function () {\n return this.str\n}\n\n/**\n * A token update function is used when updating or optionally\n * when cloning a token.\n *\n * @callback lunr.Token~updateFunction\n * @param {string} str - The string representation of the token.\n * @param {Object} metadata - All metadata associated with this token.\n */\n\n/**\n * Applies the given function to the wrapped string token.\n *\n * @example\n * token.update(function (str, metadata) {\n * return str.toUpperCase()\n * })\n *\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.update = function (fn) {\n this.str = fn(this.str, this.metadata)\n return this\n}\n\n/**\n * Creates a clone of this token. Optionally a function can be\n * applied to the cloned token.\n *\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.clone = function (fn) {\n fn = fn || function (s) { return s }\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\n}\n/*!\n * lunr.tokenizer\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A function for splitting a string into tokens ready to be inserted into\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\n * the value of this property to change how strings are split into tokens.\n *\n * This tokenizer will convert its parameter to a string by calling `toString` and\n * then will split this string on the character in `lunr.tokenizer.separator`.\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\n *\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\n * added as metadata to every token that is created from the object to be tokenized.\n *\n * @static\n * @param {?(string|object|object[])} obj - The object to convert into tokens\n * @param {?object} metadata - Optional metadata to associate with every token\n * @returns {lunr.Token[]}\n * @see {@link lunr.Pipeline}\n */\nlunr.tokenizer = function (obj, metadata) {\n if (obj == null || obj == undefined) {\n return []\n }\n\n if (Array.isArray(obj)) {\n return obj.map(function (t) {\n return new lunr.Token(\n lunr.utils.asString(t).toLowerCase(),\n lunr.utils.clone(metadata)\n )\n })\n }\n\n var str = obj.toString().toLowerCase(),\n len = str.length,\n tokens = []\n\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\n var char = str.charAt(sliceEnd),\n sliceLength = sliceEnd - sliceStart\n\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\n\n if (sliceLength > 0) {\n var tokenMetadata = lunr.utils.clone(metadata) || {}\n tokenMetadata[\"position\"] = [sliceStart, sliceLength]\n tokenMetadata[\"index\"] = tokens.length\n\n tokens.push(\n new lunr.Token (\n str.slice(sliceStart, sliceEnd),\n tokenMetadata\n )\n )\n }\n\n sliceStart = sliceEnd + 1\n }\n\n }\n\n return tokens\n}\n\n/**\n * The separator used to split a string into tokens. Override this property to change the behaviour of\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\n *\n * @static\n * @see lunr.tokenizer\n */\nlunr.tokenizer.separator = /[\\s\\-]+/\n/*!\n * lunr.Pipeline\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\n * tokens in documents entering the search index and queries being ran against\n * the index.\n *\n * An instance of lunr.Index created with the lunr shortcut will contain a\n * pipeline with a stop word filter and an English language stemmer. Extra\n * functions can be added before or after either of these functions or these\n * default functions can be removed.\n *\n * When run the pipeline will call each function in turn, passing a token, the\n * index of that token in the original list of all tokens and finally a list of\n * all the original tokens.\n *\n * The output of functions in the pipeline will be passed to the next function\n * in the pipeline. To exclude a token from entering the index the function\n * should return undefined, the rest of the pipeline will not be called with\n * this token.\n *\n * For serialisation of pipelines to work, all functions used in an instance of\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\n * then be loaded. If trying to load a serialised pipeline that uses functions\n * that are not registered an error will be thrown.\n *\n * If not planning on serialising the pipeline then registering pipeline functions\n * is not necessary.\n *\n * @constructor\n */\nlunr.Pipeline = function () {\n this._stack = []\n}\n\nlunr.Pipeline.registeredFunctions = Object.create(null)\n\n/**\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\n * string as well as all known metadata. A pipeline function can mutate the token string\n * or mutate (or add) metadata for a given token.\n *\n * A pipeline function can indicate that the passed token should be discarded by returning\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\n * functions and will not be added to the index.\n *\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\n *\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\n *\n * @interface lunr.PipelineFunction\n * @param {lunr.Token} token - A token from the document being processed.\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\n * @returns {(?lunr.Token|lunr.Token[])}\n */\n\n/**\n * Register a function with the pipeline.\n *\n * Functions that are used in the pipeline should be registered if the pipeline\n * needs to be serialised, or a serialised pipeline needs to be loaded.\n *\n * Registering a function does not add it to a pipeline, functions must still be\n * added to instances of the pipeline for them to be used when running a pipeline.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @param {String} label - The label to register this function with\n */\nlunr.Pipeline.registerFunction = function (fn, label) {\n if (label in this.registeredFunctions) {\n lunr.utils.warn('Overwriting existing registered function: ' + label)\n }\n\n fn.label = label\n lunr.Pipeline.registeredFunctions[fn.label] = fn\n}\n\n/**\n * Warns if the function is not registered as a Pipeline function.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @private\n */\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\n\n if (!isRegistered) {\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\n', fn)\n }\n}\n\n/**\n * Loads a previously serialised pipeline.\n *\n * All functions to be loaded must already be registered with lunr.Pipeline.\n * If any function from the serialised data has not been registered then an\n * error will be thrown.\n *\n * @param {Object} serialised - The serialised pipeline to load.\n * @returns {lunr.Pipeline}\n */\nlunr.Pipeline.load = function (serialised) {\n var pipeline = new lunr.Pipeline\n\n serialised.forEach(function (fnName) {\n var fn = lunr.Pipeline.registeredFunctions[fnName]\n\n if (fn) {\n pipeline.add(fn)\n } else {\n throw new Error('Cannot load unregistered function: ' + fnName)\n }\n })\n\n return pipeline\n}\n\n/**\n * Adds new functions to the end of the pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\n */\nlunr.Pipeline.prototype.add = function () {\n var fns = Array.prototype.slice.call(arguments)\n\n fns.forEach(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n this._stack.push(fn)\n }, this)\n}\n\n/**\n * Adds a single function after a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n pos = pos + 1\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Adds a single function before a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Removes a function from the pipeline.\n *\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\n */\nlunr.Pipeline.prototype.remove = function (fn) {\n var pos = this._stack.indexOf(fn)\n if (pos == -1) {\n return\n }\n\n this._stack.splice(pos, 1)\n}\n\n/**\n * Runs the current list of functions that make up the pipeline against the\n * passed tokens.\n *\n * @param {Array} tokens The tokens to run through the pipeline.\n * @returns {Array}\n */\nlunr.Pipeline.prototype.run = function (tokens) {\n var stackLength = this._stack.length\n\n for (var i = 0; i < stackLength; i++) {\n var fn = this._stack[i]\n var memo = []\n\n for (var j = 0; j < tokens.length; j++) {\n var result = fn(tokens[j], j, tokens)\n\n if (result === null || result === void 0 || result === '') continue\n\n if (Array.isArray(result)) {\n for (var k = 0; k < result.length; k++) {\n memo.push(result[k])\n }\n } else {\n memo.push(result)\n }\n }\n\n tokens = memo\n }\n\n return tokens\n}\n\n/**\n * Convenience method for passing a string through a pipeline and getting\n * strings out. This method takes care of wrapping the passed string in a\n * token and mapping the resulting tokens back to strings.\n *\n * @param {string} str - The string to pass through the pipeline.\n * @param {?object} metadata - Optional metadata to associate with the token\n * passed to the pipeline.\n * @returns {string[]}\n */\nlunr.Pipeline.prototype.runString = function (str, metadata) {\n var token = new lunr.Token (str, metadata)\n\n return this.run([token]).map(function (t) {\n return t.toString()\n })\n}\n\n/**\n * Resets the pipeline by removing any existing processors.\n *\n */\nlunr.Pipeline.prototype.reset = function () {\n this._stack = []\n}\n\n/**\n * Returns a representation of the pipeline ready for serialisation.\n *\n * Logs a warning if the function has not been registered.\n *\n * @returns {Array}\n */\nlunr.Pipeline.prototype.toJSON = function () {\n return this._stack.map(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n\n return fn.label\n })\n}\n/*!\n * lunr.Vector\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A vector is used to construct the vector space of documents and queries. These\n * vectors support operations to determine the similarity between two documents or\n * a document and a query.\n *\n * Normally no parameters are required for initializing a vector, but in the case of\n * loading a previously dumped vector the raw elements can be provided to the constructor.\n *\n * For performance reasons vectors are implemented with a flat array, where an elements\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\n * allows the underlying array to be as sparse as possible and still offer decent\n * performance when being used for vector calculations.\n *\n * @constructor\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\n */\nlunr.Vector = function (elements) {\n this._magnitude = 0\n this.elements = elements || []\n}\n\n\n/**\n * Calculates the position within the vector to insert a given index.\n *\n * This is used internally by insert and upsert. If there are duplicate indexes then\n * the position is returned as if the value for that index were to be updated, but it\n * is the callers responsibility to check whether there is a duplicate at that index\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @returns {Number}\n */\nlunr.Vector.prototype.positionForIndex = function (index) {\n // For an empty vector the tuple can be inserted at the beginning\n if (this.elements.length == 0) {\n return 0\n }\n\n var start = 0,\n end = this.elements.length / 2,\n sliceLength = end - start,\n pivotPoint = Math.floor(sliceLength / 2),\n pivotIndex = this.elements[pivotPoint * 2]\n\n while (sliceLength > 1) {\n if (pivotIndex < index) {\n start = pivotPoint\n }\n\n if (pivotIndex > index) {\n end = pivotPoint\n }\n\n if (pivotIndex == index) {\n break\n }\n\n sliceLength = end - start\n pivotPoint = start + Math.floor(sliceLength / 2)\n pivotIndex = this.elements[pivotPoint * 2]\n }\n\n if (pivotIndex == index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex > index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex < index) {\n return (pivotPoint + 1) * 2\n }\n}\n\n/**\n * Inserts an element at an index within the vector.\n *\n * Does not allow duplicates, will throw an error if there is already an entry\n * for this index.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n */\nlunr.Vector.prototype.insert = function (insertIdx, val) {\n this.upsert(insertIdx, val, function () {\n throw \"duplicate index\"\n })\n}\n\n/**\n * Inserts or updates an existing index within the vector.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n * @param {function} fn - A function that is called for updates, the existing value and the\n * requested value are passed as arguments\n */\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\n this._magnitude = 0\n var position = this.positionForIndex(insertIdx)\n\n if (this.elements[position] == insertIdx) {\n this.elements[position + 1] = fn(this.elements[position + 1], val)\n } else {\n this.elements.splice(position, 0, insertIdx, val)\n }\n}\n\n/**\n * Calculates the magnitude of this vector.\n *\n * @returns {Number}\n */\nlunr.Vector.prototype.magnitude = function () {\n if (this._magnitude) return this._magnitude\n\n var sumOfSquares = 0,\n elementsLength = this.elements.length\n\n for (var i = 1; i < elementsLength; i += 2) {\n var val = this.elements[i]\n sumOfSquares += val * val\n }\n\n return this._magnitude = Math.sqrt(sumOfSquares)\n}\n\n/**\n * Calculates the dot product of this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\n * @returns {Number}\n */\nlunr.Vector.prototype.dot = function (otherVector) {\n var dotProduct = 0,\n a = this.elements, b = otherVector.elements,\n aLen = a.length, bLen = b.length,\n aVal = 0, bVal = 0,\n i = 0, j = 0\n\n while (i < aLen && j < bLen) {\n aVal = a[i], bVal = b[j]\n if (aVal < bVal) {\n i += 2\n } else if (aVal > bVal) {\n j += 2\n } else if (aVal == bVal) {\n dotProduct += a[i + 1] * b[j + 1]\n i += 2\n j += 2\n }\n }\n\n return dotProduct\n}\n\n/**\n * Calculates the similarity between this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The other vector to calculate the\n * similarity with.\n * @returns {Number}\n */\nlunr.Vector.prototype.similarity = function (otherVector) {\n return this.dot(otherVector) / this.magnitude() || 0\n}\n\n/**\n * Converts the vector to an array of the elements within the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toArray = function () {\n var output = new Array (this.elements.length / 2)\n\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\n output[j] = this.elements[i]\n }\n\n return output\n}\n\n/**\n * A JSON serializable representation of the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toJSON = function () {\n return this.elements\n}\n/* eslint-disable */\n/*!\n * lunr.stemmer\n * Copyright (C) 2020 Oliver Nightingale\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\n */\n\n/**\n * lunr.stemmer is an english language stemmer, this is a JavaScript\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token - The string to stem\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n * @function\n */\nlunr.stemmer = (function(){\n var step2list = {\n \"ational\" : \"ate\",\n \"tional\" : \"tion\",\n \"enci\" : \"ence\",\n \"anci\" : \"ance\",\n \"izer\" : \"ize\",\n \"bli\" : \"ble\",\n \"alli\" : \"al\",\n \"entli\" : \"ent\",\n \"eli\" : \"e\",\n \"ousli\" : \"ous\",\n \"ization\" : \"ize\",\n \"ation\" : \"ate\",\n \"ator\" : \"ate\",\n \"alism\" : \"al\",\n \"iveness\" : \"ive\",\n \"fulness\" : \"ful\",\n \"ousness\" : \"ous\",\n \"aliti\" : \"al\",\n \"iviti\" : \"ive\",\n \"biliti\" : \"ble\",\n \"logi\" : \"log\"\n },\n\n step3list = {\n \"icate\" : \"ic\",\n \"ative\" : \"\",\n \"alize\" : \"al\",\n \"iciti\" : \"ic\",\n \"ical\" : \"ic\",\n \"ful\" : \"\",\n \"ness\" : \"\"\n },\n\n c = \"[^aeiou]\", // consonant\n v = \"[aeiouy]\", // vowel\n C = c + \"[^aeiouy]*\", // consonant sequence\n V = v + \"[aeiou]*\", // vowel sequence\n\n mgr0 = \"^(\" + C + \")?\" + V + C, // [C]VC... is m>0\n meq1 = \"^(\" + C + \")?\" + V + C + \"(\" + V + \")?$\", // [C]VC[V] is m=1\n mgr1 = \"^(\" + C + \")?\" + V + C + V + C, // [C]VCVC... is m>1\n s_v = \"^(\" + C + \")?\" + v; // vowel in stem\n\n var re_mgr0 = new RegExp(mgr0);\n var re_mgr1 = new RegExp(mgr1);\n var re_meq1 = new RegExp(meq1);\n var re_s_v = new RegExp(s_v);\n\n var re_1a = /^(.+?)(ss|i)es$/;\n var re2_1a = /^(.+?)([^s])s$/;\n var re_1b = /^(.+?)eed$/;\n var re2_1b = /^(.+?)(ed|ing)$/;\n var re_1b_2 = /.$/;\n var re2_1b_2 = /(at|bl|iz)$/;\n var re3_1b_2 = new RegExp(\"([^aeiouylsz])\\\\1$\");\n var re4_1b_2 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var re_1c = /^(.+?[^aeiou])y$/;\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\n\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\n\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\n var re2_4 = /^(.+?)(s|t)(ion)$/;\n\n var re_5 = /^(.+?)e$/;\n var re_5_1 = /ll$/;\n var re3_5 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var porterStemmer = function porterStemmer(w) {\n var stem,\n suffix,\n firstch,\n re,\n re2,\n re3,\n re4;\n\n if (w.length < 3) { return w; }\n\n firstch = w.substr(0,1);\n if (firstch == \"y\") {\n w = firstch.toUpperCase() + w.substr(1);\n }\n\n // Step 1a\n re = re_1a\n re2 = re2_1a;\n\n if (re.test(w)) { w = w.replace(re,\"$1$2\"); }\n else if (re2.test(w)) { w = w.replace(re2,\"$1$2\"); }\n\n // Step 1b\n re = re_1b;\n re2 = re2_1b;\n if (re.test(w)) {\n var fp = re.exec(w);\n re = re_mgr0;\n if (re.test(fp[1])) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1];\n re2 = re_s_v;\n if (re2.test(stem)) {\n w = stem;\n re2 = re2_1b_2;\n re3 = re3_1b_2;\n re4 = re4_1b_2;\n if (re2.test(w)) { w = w + \"e\"; }\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\"\"); }\n else if (re4.test(w)) { w = w + \"e\"; }\n }\n }\n\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\n re = re_1c;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n w = stem + \"i\";\n }\n\n // Step 2\n re = re_2;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step2list[suffix];\n }\n }\n\n // Step 3\n re = re_3;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step3list[suffix];\n }\n }\n\n // Step 4\n re = re_4;\n re2 = re2_4;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n if (re.test(stem)) {\n w = stem;\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1] + fp[2];\n re2 = re_mgr1;\n if (re2.test(stem)) {\n w = stem;\n }\n }\n\n // Step 5\n re = re_5;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n re2 = re_meq1;\n re3 = re3_5;\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\n w = stem;\n }\n }\n\n re = re_5_1;\n re2 = re_mgr1;\n if (re.test(w) && re2.test(w)) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n\n // and turn initial Y back to y\n\n if (firstch == \"y\") {\n w = firstch.toLowerCase() + w.substr(1);\n }\n\n return w;\n };\n\n return function (token) {\n return token.update(porterStemmer);\n }\n})();\n\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\n/*!\n * lunr.stopWordFilter\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\n * list of stop words.\n *\n * The built in lunr.stopWordFilter is built using this generator and can be used\n * to generate custom stopWordFilters for applications or non English languages.\n *\n * @function\n * @param {Array} token The token to pass through the filter\n * @returns {lunr.PipelineFunction}\n * @see lunr.Pipeline\n * @see lunr.stopWordFilter\n */\nlunr.generateStopWordFilter = function (stopWords) {\n var words = stopWords.reduce(function (memo, stopWord) {\n memo[stopWord] = stopWord\n return memo\n }, {})\n\n return function (token) {\n if (token && words[token.toString()] !== token.toString()) return token\n }\n}\n\n/**\n * lunr.stopWordFilter is an English language stop word list filter, any words\n * contained in the list will not be passed through the filter.\n *\n * This is intended to be used in the Pipeline. If the token does not pass the\n * filter then undefined will be returned.\n *\n * @function\n * @implements {lunr.PipelineFunction}\n * @params {lunr.Token} token - A token to check for being a stop word.\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n */\nlunr.stopWordFilter = lunr.generateStopWordFilter([\n 'a',\n 'able',\n 'about',\n 'across',\n 'after',\n 'all',\n 'almost',\n 'also',\n 'am',\n 'among',\n 'an',\n 'and',\n 'any',\n 'are',\n 'as',\n 'at',\n 'be',\n 'because',\n 'been',\n 'but',\n 'by',\n 'can',\n 'cannot',\n 'could',\n 'dear',\n 'did',\n 'do',\n 'does',\n 'either',\n 'else',\n 'ever',\n 'every',\n 'for',\n 'from',\n 'get',\n 'got',\n 'had',\n 'has',\n 'have',\n 'he',\n 'her',\n 'hers',\n 'him',\n 'his',\n 'how',\n 'however',\n 'i',\n 'if',\n 'in',\n 'into',\n 'is',\n 'it',\n 'its',\n 'just',\n 'least',\n 'let',\n 'like',\n 'likely',\n 'may',\n 'me',\n 'might',\n 'most',\n 'must',\n 'my',\n 'neither',\n 'no',\n 'nor',\n 'not',\n 'of',\n 'off',\n 'often',\n 'on',\n 'only',\n 'or',\n 'other',\n 'our',\n 'own',\n 'rather',\n 'said',\n 'say',\n 'says',\n 'she',\n 'should',\n 'since',\n 'so',\n 'some',\n 'than',\n 'that',\n 'the',\n 'their',\n 'them',\n 'then',\n 'there',\n 'these',\n 'they',\n 'this',\n 'tis',\n 'to',\n 'too',\n 'twas',\n 'us',\n 'wants',\n 'was',\n 'we',\n 'were',\n 'what',\n 'when',\n 'where',\n 'which',\n 'while',\n 'who',\n 'whom',\n 'why',\n 'will',\n 'with',\n 'would',\n 'yet',\n 'you',\n 'your'\n])\n\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\n/*!\n * lunr.trimmer\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * lunr.trimmer is a pipeline function for trimming non word\n * characters from the beginning and end of tokens before they\n * enter the index.\n *\n * This implementation may not work correctly for non latin\n * characters and should either be removed or adapted for use\n * with languages with non-latin characters.\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token The token to pass through the filter\n * @returns {lunr.Token}\n * @see lunr.Pipeline\n */\nlunr.trimmer = function (token) {\n return token.update(function (s) {\n return s.replace(/^\\W+/, '').replace(/\\W+$/, '')\n })\n}\n\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\n/*!\n * lunr.TokenSet\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * A token set is used to store the unique list of all tokens\n * within an index. Token sets are also used to represent an\n * incoming query to the index, this query token set and index\n * token set are then intersected to find which tokens to look\n * up in the inverted index.\n *\n * A token set can hold multiple tokens, as in the case of the\n * index token set, or it can hold a single token as in the\n * case of a simple query token set.\n *\n * Additionally token sets are used to perform wildcard matching.\n * Leading, contained and trailing wildcards are supported, and\n * from this edit distance matching can also be provided.\n *\n * Token sets are implemented as a minimal finite state automata,\n * where both common prefixes and suffixes are shared between tokens.\n * This helps to reduce the space used for storing the token set.\n *\n * @constructor\n */\nlunr.TokenSet = function () {\n this.final = false\n this.edges = {}\n this.id = lunr.TokenSet._nextId\n lunr.TokenSet._nextId += 1\n}\n\n/**\n * Keeps track of the next, auto increment, identifier to assign\n * to a new tokenSet.\n *\n * TokenSets require a unique identifier to be correctly minimised.\n *\n * @private\n */\nlunr.TokenSet._nextId = 1\n\n/**\n * Creates a TokenSet instance from the given sorted array of words.\n *\n * @param {String[]} arr - A sorted array of strings to create the set from.\n * @returns {lunr.TokenSet}\n * @throws Will throw an error if the input array is not sorted.\n */\nlunr.TokenSet.fromArray = function (arr) {\n var builder = new lunr.TokenSet.Builder\n\n for (var i = 0, len = arr.length; i < len; i++) {\n builder.insert(arr[i])\n }\n\n builder.finish()\n return builder.root\n}\n\n/**\n * Creates a token set from a query clause.\n *\n * @private\n * @param {Object} clause - A single clause from lunr.Query.\n * @param {string} clause.term - The query clause term.\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromClause = function (clause) {\n if ('editDistance' in clause) {\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\n } else {\n return lunr.TokenSet.fromString(clause.term)\n }\n}\n\n/**\n * Creates a token set representing a single string with a specified\n * edit distance.\n *\n * Insertions, deletions, substitutions and transpositions are each\n * treated as an edit distance of 1.\n *\n * Increasing the allowed edit distance will have a dramatic impact\n * on the performance of both creating and intersecting these TokenSets.\n * It is advised to keep the edit distance less than 3.\n *\n * @param {string} str - The string to create the token set from.\n * @param {number} editDistance - The allowed edit distance to match.\n * @returns {lunr.Vector}\n */\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\n var root = new lunr.TokenSet\n\n var stack = [{\n node: root,\n editsRemaining: editDistance,\n str: str\n }]\n\n while (stack.length) {\n var frame = stack.pop()\n\n // no edit\n if (frame.str.length > 0) {\n var char = frame.str.charAt(0),\n noEditNode\n\n if (char in frame.node.edges) {\n noEditNode = frame.node.edges[char]\n } else {\n noEditNode = new lunr.TokenSet\n frame.node.edges[char] = noEditNode\n }\n\n if (frame.str.length == 1) {\n noEditNode.final = true\n }\n\n stack.push({\n node: noEditNode,\n editsRemaining: frame.editsRemaining,\n str: frame.str.slice(1)\n })\n }\n\n if (frame.editsRemaining == 0) {\n continue\n }\n\n // insertion\n if (\"*\" in frame.node.edges) {\n var insertionNode = frame.node.edges[\"*\"]\n } else {\n var insertionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = insertionNode\n }\n\n if (frame.str.length == 0) {\n insertionNode.final = true\n }\n\n stack.push({\n node: insertionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str\n })\n\n // deletion\n // can only do a deletion if we have enough edits remaining\n // and if there are characters left to delete in the string\n if (frame.str.length > 1) {\n stack.push({\n node: frame.node,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // deletion\n // just removing the last character from the str\n if (frame.str.length == 1) {\n frame.node.final = true\n }\n\n // substitution\n // can only do a substitution if we have enough edits remaining\n // and if there are characters left to substitute\n if (frame.str.length >= 1) {\n if (\"*\" in frame.node.edges) {\n var substitutionNode = frame.node.edges[\"*\"]\n } else {\n var substitutionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = substitutionNode\n }\n\n if (frame.str.length == 1) {\n substitutionNode.final = true\n }\n\n stack.push({\n node: substitutionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // transposition\n // can only do a transposition if there are edits remaining\n // and there are enough characters to transpose\n if (frame.str.length > 1) {\n var charA = frame.str.charAt(0),\n charB = frame.str.charAt(1),\n transposeNode\n\n if (charB in frame.node.edges) {\n transposeNode = frame.node.edges[charB]\n } else {\n transposeNode = new lunr.TokenSet\n frame.node.edges[charB] = transposeNode\n }\n\n if (frame.str.length == 1) {\n transposeNode.final = true\n }\n\n stack.push({\n node: transposeNode,\n editsRemaining: frame.editsRemaining - 1,\n str: charA + frame.str.slice(2)\n })\n }\n }\n\n return root\n}\n\n/**\n * Creates a TokenSet from a string.\n *\n * The string may contain one or more wildcard characters (*)\n * that will allow wildcard matching when intersecting with\n * another TokenSet.\n *\n * @param {string} str - The string to create a TokenSet from.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromString = function (str) {\n var node = new lunr.TokenSet,\n root = node\n\n /*\n * Iterates through all characters within the passed string\n * appending a node for each character.\n *\n * When a wildcard character is found then a self\n * referencing edge is introduced to continually match\n * any number of any characters.\n */\n for (var i = 0, len = str.length; i < len; i++) {\n var char = str[i],\n final = (i == len - 1)\n\n if (char == \"*\") {\n node.edges[char] = node\n node.final = final\n\n } else {\n var next = new lunr.TokenSet\n next.final = final\n\n node.edges[char] = next\n node = next\n }\n }\n\n return root\n}\n\n/**\n * Converts this TokenSet into an array of strings\n * contained within the TokenSet.\n *\n * This is not intended to be used on a TokenSet that\n * contains wildcards, in these cases the results are\n * undefined and are likely to cause an infinite loop.\n *\n * @returns {string[]}\n */\nlunr.TokenSet.prototype.toArray = function () {\n var words = []\n\n var stack = [{\n prefix: \"\",\n node: this\n }]\n\n while (stack.length) {\n var frame = stack.pop(),\n edges = Object.keys(frame.node.edges),\n len = edges.length\n\n if (frame.node.final) {\n /* In Safari, at this point the prefix is sometimes corrupted, see:\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\n * String.prototype method forces Safari to \"cast\" this string to what\n * it's supposed to be, fixing the bug. */\n frame.prefix.charAt(0)\n words.push(frame.prefix)\n }\n\n for (var i = 0; i < len; i++) {\n var edge = edges[i]\n\n stack.push({\n prefix: frame.prefix.concat(edge),\n node: frame.node.edges[edge]\n })\n }\n }\n\n return words\n}\n\n/**\n * Generates a string representation of a TokenSet.\n *\n * This is intended to allow TokenSets to be used as keys\n * in objects, largely to aid the construction and minimisation\n * of a TokenSet. As such it is not designed to be a human\n * friendly representation of the TokenSet.\n *\n * @returns {string}\n */\nlunr.TokenSet.prototype.toString = function () {\n // NOTE: Using Object.keys here as this.edges is very likely\n // to enter 'hash-mode' with many keys being added\n //\n // avoiding a for-in loop here as it leads to the function\n // being de-optimised (at least in V8). From some simple\n // benchmarks the performance is comparable, but allowing\n // V8 to optimize may mean easy performance wins in the future.\n\n if (this._str) {\n return this._str\n }\n\n var str = this.final ? '1' : '0',\n labels = Object.keys(this.edges).sort(),\n len = labels.length\n\n for (var i = 0; i < len; i++) {\n var label = labels[i],\n node = this.edges[label]\n\n str = str + label + node.id\n }\n\n return str\n}\n\n/**\n * Returns a new TokenSet that is the intersection of\n * this TokenSet and the passed TokenSet.\n *\n * This intersection will take into account any wildcards\n * contained within the TokenSet.\n *\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.prototype.intersect = function (b) {\n var output = new lunr.TokenSet,\n frame = undefined\n\n var stack = [{\n qNode: b,\n output: output,\n node: this\n }]\n\n while (stack.length) {\n frame = stack.pop()\n\n // NOTE: As with the #toString method, we are using\n // Object.keys and a for loop instead of a for-in loop\n // as both of these objects enter 'hash' mode, causing\n // the function to be de-optimised in V8\n var qEdges = Object.keys(frame.qNode.edges),\n qLen = qEdges.length,\n nEdges = Object.keys(frame.node.edges),\n nLen = nEdges.length\n\n for (var q = 0; q < qLen; q++) {\n var qEdge = qEdges[q]\n\n for (var n = 0; n < nLen; n++) {\n var nEdge = nEdges[n]\n\n if (nEdge == qEdge || qEdge == '*') {\n var node = frame.node.edges[nEdge],\n qNode = frame.qNode.edges[qEdge],\n final = node.final && qNode.final,\n next = undefined\n\n if (nEdge in frame.output.edges) {\n // an edge already exists for this character\n // no need to create a new node, just set the finality\n // bit unless this node is already final\n next = frame.output.edges[nEdge]\n next.final = next.final || final\n\n } else {\n // no edge exists yet, must create one\n // set the finality bit and insert it\n // into the output\n next = new lunr.TokenSet\n next.final = final\n frame.output.edges[nEdge] = next\n }\n\n stack.push({\n qNode: qNode,\n output: next,\n node: node\n })\n }\n }\n }\n }\n\n return output\n}\nlunr.TokenSet.Builder = function () {\n this.previousWord = \"\"\n this.root = new lunr.TokenSet\n this.uncheckedNodes = []\n this.minimizedNodes = {}\n}\n\nlunr.TokenSet.Builder.prototype.insert = function (word) {\n var node,\n commonPrefix = 0\n\n if (word < this.previousWord) {\n throw new Error (\"Out of order word insertion\")\n }\n\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\n if (word[i] != this.previousWord[i]) break\n commonPrefix++\n }\n\n this.minimize(commonPrefix)\n\n if (this.uncheckedNodes.length == 0) {\n node = this.root\n } else {\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\n }\n\n for (var i = commonPrefix; i < word.length; i++) {\n var nextNode = new lunr.TokenSet,\n char = word[i]\n\n node.edges[char] = nextNode\n\n this.uncheckedNodes.push({\n parent: node,\n char: char,\n child: nextNode\n })\n\n node = nextNode\n }\n\n node.final = true\n this.previousWord = word\n}\n\nlunr.TokenSet.Builder.prototype.finish = function () {\n this.minimize(0)\n}\n\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\n var node = this.uncheckedNodes[i],\n childKey = node.child.toString()\n\n if (childKey in this.minimizedNodes) {\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\n } else {\n // Cache the key for this node since\n // we know it can't change anymore\n node.child._str = childKey\n\n this.minimizedNodes[childKey] = node.child\n }\n\n this.uncheckedNodes.pop()\n }\n}\n/*!\n * lunr.Index\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * An index contains the built index of all documents and provides a query interface\n * to the index.\n *\n * Usually instances of lunr.Index will not be created using this constructor, instead\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\n * used to load previously built and serialized indexes.\n *\n * @constructor\n * @param {Object} attrs - The attributes of the built search index.\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\n * @param {Object} attrs.fieldVectors - Field vectors\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\n * @param {string[]} attrs.fields - The names of indexed document fields.\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\n */\nlunr.Index = function (attrs) {\n this.invertedIndex = attrs.invertedIndex\n this.fieldVectors = attrs.fieldVectors\n this.tokenSet = attrs.tokenSet\n this.fields = attrs.fields\n this.pipeline = attrs.pipeline\n}\n\n/**\n * A result contains details of a document matching a search query.\n * @typedef {Object} lunr.Index~Result\n * @property {string} ref - The reference of the document this result represents.\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\n */\n\n/**\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\n * query language which itself is parsed into an instance of lunr.Query.\n *\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\n * is best used for human entered text rather than program generated text.\n *\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\n * or 'world', though those that contain both will rank higher in the results.\n *\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\n * wildcards will increase the number of documents that will be found but can also have a negative\n * impact on query performance, especially with wildcards at the beginning of a term.\n *\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\n * hello in the title field will match this query. Using a field not present in the index will lead\n * to an error being thrown.\n *\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\n * Avoid large values for edit distance to improve query performance.\n *\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\n *\n * To escape special characters the backslash character '\\' can be used, this allows searches to include\n * characters that would normally be considered modifiers, e.g. `foo\\~2` will search for a term \"foo~2\" instead\n * of attempting to apply a boost of 2 to the search term \"foo\".\n *\n * @typedef {string} lunr.Index~QueryString\n * @example Simple single term query\n * hello\n * @example Multiple term query\n * hello world\n * @example term scoped to a field\n * title:hello\n * @example term with a boost of 10\n * hello^10\n * @example term with an edit distance of 2\n * hello~2\n * @example terms with presence modifiers\n * -foo +bar baz\n */\n\n/**\n * Performs a search against the index using lunr query syntax.\n *\n * Results will be returned sorted by their score, the most relevant results\n * will be returned first. For details on how the score is calculated, please see\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\n *\n * For more programmatic querying use lunr.Index#query.\n *\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.search = function (queryString) {\n return this.query(function (query) {\n var parser = new lunr.QueryParser(queryString, query)\n parser.parse()\n })\n}\n\n/**\n * A query builder callback provides a query object to be used to express\n * the query to perform on the index.\n *\n * @callback lunr.Index~queryBuilder\n * @param {lunr.Query} query - The query object to build up.\n * @this lunr.Query\n */\n\n/**\n * Performs a query against the index using the yielded lunr.Query object.\n *\n * If performing programmatic queries against the index, this method is preferred\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\n *\n * A query object is yielded to the supplied function which should be used to\n * express the query to be run against the index.\n *\n * Note that although this function takes a callback parameter it is _not_ an\n * asynchronous operation, the callback is just yielded a query object to be\n * customized.\n *\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.query = function (fn) {\n // for each query clause\n // * process terms\n // * expand terms from token set\n // * find matching documents and metadata\n // * get document vectors\n // * score documents\n\n var query = new lunr.Query(this.fields),\n matchingFields = Object.create(null),\n queryVectors = Object.create(null),\n termFieldCache = Object.create(null),\n requiredMatches = Object.create(null),\n prohibitedMatches = Object.create(null)\n\n /*\n * To support field level boosts a query vector is created per\n * field. An empty vector is eagerly created to support negated\n * queries.\n */\n for (var i = 0; i < this.fields.length; i++) {\n queryVectors[this.fields[i]] = new lunr.Vector\n }\n\n fn.call(query, query)\n\n for (var i = 0; i < query.clauses.length; i++) {\n /*\n * Unless the pipeline has been disabled for this term, which is\n * the case for terms with wildcards, we need to pass the clause\n * term through the search pipeline. A pipeline returns an array\n * of processed terms. Pipeline functions may expand the passed\n * term, which means we may end up performing multiple index lookups\n * for a single query term.\n */\n var clause = query.clauses[i],\n terms = null,\n clauseMatches = lunr.Set.empty\n\n if (clause.usePipeline) {\n terms = this.pipeline.runString(clause.term, {\n fields: clause.fields\n })\n } else {\n terms = [clause.term]\n }\n\n for (var m = 0; m < terms.length; m++) {\n var term = terms[m]\n\n /*\n * Each term returned from the pipeline needs to use the same query\n * clause object, e.g. the same boost and or edit distance. The\n * simplest way to do this is to re-use the clause object but mutate\n * its term property.\n */\n clause.term = term\n\n /*\n * From the term in the clause we create a token set which will then\n * be used to intersect the indexes token set to get a list of terms\n * to lookup in the inverted index\n */\n var termTokenSet = lunr.TokenSet.fromClause(clause),\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\n\n /*\n * If a term marked as required does not exist in the tokenSet it is\n * impossible for the search to return any matches. We set all the field\n * scoped required matches set to empty and stop examining any further\n * clauses.\n */\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = lunr.Set.empty\n }\n\n break\n }\n\n for (var j = 0; j < expandedTerms.length; j++) {\n /*\n * For each term get the posting and termIndex, this is required for\n * building the query vector.\n */\n var expandedTerm = expandedTerms[j],\n posting = this.invertedIndex[expandedTerm],\n termIndex = posting._index\n\n for (var k = 0; k < clause.fields.length; k++) {\n /*\n * For each field that this query term is scoped by (by default\n * all fields are in scope) we need to get all the document refs\n * that have this term in that field.\n *\n * The posting is the entry in the invertedIndex for the matching\n * term from above.\n */\n var field = clause.fields[k],\n fieldPosting = posting[field],\n matchingDocumentRefs = Object.keys(fieldPosting),\n termField = expandedTerm + \"/\" + field,\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\n\n /*\n * if the presence of this term is required ensure that the matching\n * documents are added to the set of required matches for this clause.\n *\n */\n if (clause.presence == lunr.Query.presence.REQUIRED) {\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\n\n if (requiredMatches[field] === undefined) {\n requiredMatches[field] = lunr.Set.complete\n }\n }\n\n /*\n * if the presence of this term is prohibited ensure that the matching\n * documents are added to the set of prohibited matches for this field,\n * creating that set if it does not yet exist.\n */\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\n if (prohibitedMatches[field] === undefined) {\n prohibitedMatches[field] = lunr.Set.empty\n }\n\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\n\n /*\n * Prohibited matches should not be part of the query vector used for\n * similarity scoring and no metadata should be extracted so we continue\n * to the next field\n */\n continue\n }\n\n /*\n * The query field vector is populated using the termIndex found for\n * the term and a unit value with the appropriate boost applied.\n * Using upsert because there could already be an entry in the vector\n * for the term we are working with. In that case we just add the scores\n * together.\n */\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\n\n /**\n * If we've already seen this term, field combo then we've already collected\n * the matching documents and metadata, no need to go through all that again\n */\n if (termFieldCache[termField]) {\n continue\n }\n\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\n /*\n * All metadata for this term/field/document triple\n * are then extracted and collected into an instance\n * of lunr.MatchData ready to be returned in the query\n * results\n */\n var matchingDocumentRef = matchingDocumentRefs[l],\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\n metadata = fieldPosting[matchingDocumentRef],\n fieldMatch\n\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\n } else {\n fieldMatch.add(expandedTerm, field, metadata)\n }\n\n }\n\n termFieldCache[termField] = true\n }\n }\n }\n\n /**\n * If the presence was required we need to update the requiredMatches field sets.\n * We do this after all fields for the term have collected their matches because\n * the clause terms presence is required in _any_ of the fields not _all_ of the\n * fields.\n */\n if (clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\n }\n }\n }\n\n /**\n * Need to combine the field scoped required and prohibited\n * matching documents into a global set of required and prohibited\n * matches\n */\n var allRequiredMatches = lunr.Set.complete,\n allProhibitedMatches = lunr.Set.empty\n\n for (var i = 0; i < this.fields.length; i++) {\n var field = this.fields[i]\n\n if (requiredMatches[field]) {\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\n }\n\n if (prohibitedMatches[field]) {\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\n }\n }\n\n var matchingFieldRefs = Object.keys(matchingFields),\n results = [],\n matches = Object.create(null)\n\n /*\n * If the query is negated (contains only prohibited terms)\n * we need to get _all_ fieldRefs currently existing in the\n * index. This is only done when we know that the query is\n * entirely prohibited terms to avoid any cost of getting all\n * fieldRefs unnecessarily.\n *\n * Additionally, blank MatchData must be created to correctly\n * populate the results.\n */\n if (query.isNegated()) {\n matchingFieldRefs = Object.keys(this.fieldVectors)\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n var matchingFieldRef = matchingFieldRefs[i]\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\n matchingFields[matchingFieldRef] = new lunr.MatchData\n }\n }\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n /*\n * Currently we have document fields that match the query, but we\n * need to return documents. The matchData and scores are combined\n * from multiple fields belonging to the same document.\n *\n * Scores are calculated by field, using the query vectors created\n * above, and combined into a final document score using addition.\n */\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\n docRef = fieldRef.docRef\n\n if (!allRequiredMatches.contains(docRef)) {\n continue\n }\n\n if (allProhibitedMatches.contains(docRef)) {\n continue\n }\n\n var fieldVector = this.fieldVectors[fieldRef],\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\n docMatch\n\n if ((docMatch = matches[docRef]) !== undefined) {\n docMatch.score += score\n docMatch.matchData.combine(matchingFields[fieldRef])\n } else {\n var match = {\n ref: docRef,\n score: score,\n matchData: matchingFields[fieldRef]\n }\n matches[docRef] = match\n results.push(match)\n }\n }\n\n /*\n * Sort the results objects by score, highest first.\n */\n return results.sort(function (a, b) {\n return b.score - a.score\n })\n}\n\n/**\n * Prepares the index for JSON serialization.\n *\n * The schema for this JSON blob will be described in a\n * separate JSON schema file.\n *\n * @returns {Object}\n */\nlunr.Index.prototype.toJSON = function () {\n var invertedIndex = Object.keys(this.invertedIndex)\n .sort()\n .map(function (term) {\n return [term, this.invertedIndex[term]]\n }, this)\n\n var fieldVectors = Object.keys(this.fieldVectors)\n .map(function (ref) {\n return [ref, this.fieldVectors[ref].toJSON()]\n }, this)\n\n return {\n version: lunr.version,\n fields: this.fields,\n fieldVectors: fieldVectors,\n invertedIndex: invertedIndex,\n pipeline: this.pipeline.toJSON()\n }\n}\n\n/**\n * Loads a previously serialized lunr.Index\n *\n * @param {Object} serializedIndex - A previously serialized lunr.Index\n * @returns {lunr.Index}\n */\nlunr.Index.load = function (serializedIndex) {\n var attrs = {},\n fieldVectors = {},\n serializedVectors = serializedIndex.fieldVectors,\n invertedIndex = Object.create(null),\n serializedInvertedIndex = serializedIndex.invertedIndex,\n tokenSetBuilder = new lunr.TokenSet.Builder,\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\n\n if (serializedIndex.version != lunr.version) {\n lunr.utils.warn(\"Version mismatch when loading serialised index. Current version of lunr '\" + lunr.version + \"' does not match serialized index '\" + serializedIndex.version + \"'\")\n }\n\n for (var i = 0; i < serializedVectors.length; i++) {\n var tuple = serializedVectors[i],\n ref = tuple[0],\n elements = tuple[1]\n\n fieldVectors[ref] = new lunr.Vector(elements)\n }\n\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\n var tuple = serializedInvertedIndex[i],\n term = tuple[0],\n posting = tuple[1]\n\n tokenSetBuilder.insert(term)\n invertedIndex[term] = posting\n }\n\n tokenSetBuilder.finish()\n\n attrs.fields = serializedIndex.fields\n\n attrs.fieldVectors = fieldVectors\n attrs.invertedIndex = invertedIndex\n attrs.tokenSet = tokenSetBuilder.root\n attrs.pipeline = pipeline\n\n return new lunr.Index(attrs)\n}\n/*!\n * lunr.Builder\n * Copyright (C) 2020 Oliver Nightingale\n */\n\n/**\n * lunr.Builder performs indexing on a set of documents and\n * returns instances of lunr.Index ready for querying.\n *\n * All configuration of the index is done via the builder, the\n * fields to index, the document reference, the text processing\n * pipeline and document scoring parameters are all set on the\n * builder before indexing.\n *\n * @constructor\n * @property {string} _ref - Internal reference to the document reference field.\n * @property {string[]} _fields - Internal reference to the document fields to index.\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\n */\nlunr.Builder = function () {\n this._ref = \"id\"\n this._fields = Object.create(null)\n this._documents = Object.create(null)\n this.invertedIndex = Object.create(null)\n this.fieldTermFrequencies = {}\n this.fieldLengths = {}\n this.tokenizer = lunr.tokenizer\n this.pipeline = new lunr.Pipeline\n this.searchPipeline = new lunr.Pipeline\n this.documentCount = 0\n this._b = 0.75\n this._k1 = 1.2\n this.termIndex = 0\n this.metadataWhitelist = []\n}\n\n/**\n * Sets the document field used as the document reference. Every document must have this field.\n * The type of this field in the document should be a string, if it is not a string it will be\n * coerced into a string by calling toString.\n *\n * The default ref is 'id'.\n *\n * The ref should _not_ be changed during indexing, it should be set before any documents are\n * added to the index. Changing it during indexing can lead to inconsistent results.\n *\n * @param {string} ref - The name of the reference field in the document.\n */\nlunr.Builder.prototype.ref = function (ref) {\n this._ref = ref\n}\n\n/**\n * A function that is used to extract a field from a document.\n *\n * Lunr expects a field to be at the top level of a document, if however the field\n * is deeply nested within a document an extractor function can be used to extract\n * the right field for indexing.\n *\n * @callback fieldExtractor\n * @param {object} doc - The document being added to the index.\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\n * @example Extracting a nested field\n * function (doc) { return doc.nested.field }\n */\n\n/**\n * Adds a field to the list of document fields that will be indexed. Every document being\n * indexed should have this field. Null values for this field in indexed documents will\n * not cause errors but will limit the chance of that document being retrieved by searches.\n *\n * All fields should be added before adding documents to the index. Adding fields after\n * a document has been indexed will have no effect on already indexed documents.\n *\n * Fields can be boosted at build time. This allows terms within that field to have more\n * importance when ranking search results. Use a field boost to specify that matches within\n * one field are more important than other fields.\n *\n * @param {string} fieldName - The name of a field to index in all documents.\n * @param {object} attributes - Optional attributes associated with this field.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\n */\nlunr.Builder.prototype.field = function (fieldName, attributes) {\n if (/\\//.test(fieldName)) {\n throw new RangeError (\"Field '\" + fieldName + \"' contains illegal character '/'\")\n }\n\n this._fields[fieldName] = attributes || {}\n}\n\n/**\n * A parameter to tune the amount of field length normalisation that is applied when\n * calculating relevance scores. A value of 0 will completely disable any normalisation\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\n * will be clamped to the range 0 - 1.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.b = function (number) {\n if (number < 0) {\n this._b = 0\n } else if (number > 1) {\n this._b = 1\n } else {\n this._b = number\n }\n}\n\n/**\n * A parameter that controls the speed at which a rise in term frequency results in term\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\n * slower saturation levels, a lower value will result in quicker saturation.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.k1 = function (number) {\n this._k1 = number\n}\n\n/**\n * Adds a document to the index.\n *\n * Before adding fields to the index the index should have been fully setup, with the document\n * ref and all fields to index already having been specified.\n *\n * The document must have a field name as specified by the ref (by default this is 'id') and\n * it should have all fields defined for indexing, though null or undefined values will not\n * cause errors.\n *\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\n * this document should rank higher in search results than other documents.\n *\n * @param {object} doc - The document to add to the index.\n * @param {object} attributes - Optional attributes associated with this document.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\n */\nlunr.Builder.prototype.add = function (doc, attributes) {\n var docRef = doc[this._ref],\n fields = Object.keys(this._fields)\n\n this._documents[docRef] = attributes || {}\n this.documentCount += 1\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i],\n extractor = this._fields[fieldName].extractor,\n field = extractor ? extractor(doc) : doc[fieldName],\n tokens = this.tokenizer(field, {\n fields: [fieldName]\n }),\n terms = this.pipeline.run(tokens),\n fieldRef = new lunr.FieldRef (docRef, fieldName),\n fieldTerms = Object.create(null)\n\n this.fieldTermFrequencies[fieldRef] = fieldTerms\n this.fieldLengths[fieldRef] = 0\n\n // store the length of this field for this document\n this.fieldLengths[fieldRef] += terms.length\n\n // calculate term frequencies for this field\n for (var j = 0; j < terms.length; j++) {\n var term = terms[j]\n\n if (fieldTerms[term] == undefined) {\n fieldTerms[term] = 0\n }\n\n fieldTerms[term] += 1\n\n // add to inverted index\n // create an initial posting if one doesn't exist\n if (this.invertedIndex[term] == undefined) {\n var posting = Object.create(null)\n posting[\"_index\"] = this.termIndex\n this.termIndex += 1\n\n for (var k = 0; k < fields.length; k++) {\n posting[fields[k]] = Object.create(null)\n }\n\n this.invertedIndex[term] = posting\n }\n\n // add an entry for this term/fieldName/docRef to the invertedIndex\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\n }\n\n // store all whitelisted metadata about this token in the\n // inverted index\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\n var metadataKey = this.metadataWhitelist[l],\n metadata = term.metadata[metadataKey]\n\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\n }\n\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\n }\n }\n\n }\n}\n\n/**\n * Calculates the average document length for this index\n *\n * @private\n */\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\n\n var fieldRefs = Object.keys(this.fieldLengths),\n numberOfFields = fieldRefs.length,\n accumulator = {},\n documentsWithField = {}\n\n for (var i = 0; i < numberOfFields; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n field = fieldRef.fieldName\n\n documentsWithField[field] || (documentsWithField[field] = 0)\n documentsWithField[field] += 1\n\n accumulator[field] || (accumulator[field] = 0)\n accumulator[field] += this.fieldLengths[fieldRef]\n }\n\n var fields = Object.keys(this._fields)\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i]\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\n }\n\n this.averageFieldLength = accumulator\n}\n\n/**\n * Builds a vector space model of every document using lunr.Vector\n *\n * @private\n */\nlunr.Builder.prototype.createFieldVectors = function () {\n var fieldVectors = {},\n fieldRefs = Object.keys(this.fieldTermFrequencies),\n fieldRefsLength = fieldRefs.length,\n termIdfCache = Object.create(null)\n\n for (var i = 0; i < fieldRefsLength; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n fieldName = fieldRef.fieldName,\n fieldLength = this.fieldLengths[fieldRef],\n fieldVector = new lunr.Vector,\n termFrequencies = this.fieldTermFrequencies[fieldRef],\n terms = Object.keys(termFrequencies),\n termsLength = terms.length\n\n\n var fieldBoost = this._fields[fieldName].boost || 1,\n docBoost = this._documents[fieldRef.docRef].boost || 1\n\n for (var j = 0; j < termsLength; j++) {\n var term = terms[j],\n tf = termFrequencies[term],\n termIndex = this.invertedIndex[term]._index,\n idf, score, scoreWithPrecision\n\n if (termIdfCache[term] === undefined) {\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\n termIdfCache[term] = idf\n } else {\n idf = termIdfCache[term]\n }\n\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\n score *= fieldBoost\n score *= docBoost\n scoreWithPrecision = Math.round(score * 1000) / 1000\n // Converts 1.23456789 to 1.234.\n // Reducing the precision so that the vectors take up less\n // space when serialised. Doing it now so that they behave\n // the same before and after serialisation. Also, this is\n // the fastest approach to reducing a number's precision in\n // JavaScript.\n\n fieldVector.insert(termIndex, scoreWithPrecision)\n }\n\n fieldVectors[fieldRef] = fieldVector\n }\n\n this.fieldVectors = fieldVectors\n}\n\n/**\n * Creates a token set of all tokens in the index using lunr.TokenSet\n *\n * @private\n */\nlunr.Builder.prototype.createTokenSet = function () {\n this.tokenSet = lunr.TokenSet.fromArray(\n Object.keys(this.invertedIndex).sort()\n )\n}\n\n/**\n * Builds the index, creating an instance of lunr.Index.\n *\n * This completes the indexing process and should only be called\n * once all documents have been added to the index.\n *\n * @returns {lunr.Index}\n */\nlunr.Builder.prototype.build = function () {\n this.calculateAverageFieldLengths()\n this.createFieldVectors()\n this.createTokenSet()\n\n return new lunr.Index({\n invertedIndex: this.invertedIndex,\n fieldVectors: this.fieldVectors,\n tokenSet: this.tokenSet,\n fields: Object.keys(this._fields),\n pipeline: this.searchPipeline\n })\n}\n\n/**\n * Applies a plugin to the index builder.\n *\n * A plugin is a function that is called with the index builder as its context.\n * Plugins can be used to customise or extend the behaviour of the index\n * in some way. A plugin is just a function, that encapsulated the custom\n * behaviour that should be applied when building the index.\n *\n * The plugin function will be called with the index builder as its argument, additional\n * arguments can also be passed when calling use. The function will be called\n * with the index builder as its context.\n *\n * @param {Function} plugin The plugin to apply.\n */\nlunr.Builder.prototype.use = function (fn) {\n var args = Array.prototype.slice.call(arguments, 1)\n args.unshift(this)\n fn.apply(this, args)\n}\n/**\n * Contains and collects metadata about a matching document.\n * A single instance of lunr.MatchData is returned as part of every\n * lunr.Index~Result.\n *\n * @constructor\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n * @property {object} metadata - A cloned collection of metadata associated with this document.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData = function (term, field, metadata) {\n var clonedMetadata = Object.create(null),\n metadataKeys = Object.keys(metadata || {})\n\n // Cloning the metadata to prevent the original\n // being mutated during match data combination.\n // Metadata is kept in an array within the inverted\n // index so cloning the data can be done with\n // Array#slice\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n clonedMetadata[key] = metadata[key].slice()\n }\n\n this.metadata = Object.create(null)\n\n if (term !== undefined) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = clonedMetadata\n }\n}\n\n/**\n * An instance of lunr.MatchData will be created for every term that matches a\n * document. However only one instance is required in a lunr.Index~Result. This\n * method combines metadata from another instance of lunr.MatchData with this\n * objects metadata.\n *\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData.prototype.combine = function (otherMatchData) {\n var terms = Object.keys(otherMatchData.metadata)\n\n for (var i = 0; i < terms.length; i++) {\n var term = terms[i],\n fields = Object.keys(otherMatchData.metadata[term])\n\n if (this.metadata[term] == undefined) {\n this.metadata[term] = Object.create(null)\n }\n\n for (var j = 0; j < fields.length; j++) {\n var field = fields[j],\n keys = Object.keys(otherMatchData.metadata[term][field])\n\n if (this.metadata[term][field] == undefined) {\n this.metadata[term][field] = Object.create(null)\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k]\n\n if (this.metadata[term][field][key] == undefined) {\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\n } else {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\n }\n\n }\n }\n }\n}\n\n/**\n * Add metadata for a term/field pair to this instance of match data.\n *\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n */\nlunr.MatchData.prototype.add = function (term, field, metadata) {\n if (!(term in this.metadata)) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = metadata\n return\n }\n\n if (!(field in this.metadata[term])) {\n this.metadata[term][field] = metadata\n return\n }\n\n var metadataKeys = Object.keys(metadata)\n\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n\n if (key in this.metadata[term][field]) {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\n } else {\n this.metadata[term][field][key] = metadata[key]\n }\n }\n}\n/**\n * A lunr.Query provides a programmatic way of defining queries to be performed\n * against a {@link lunr.Index}.\n *\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\n * so the query object is pre-initialized with the right index fields.\n *\n * @constructor\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\n */\nlunr.Query = function (allFields) {\n this.clauses = []\n this.allFields = allFields\n}\n\n/**\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\n *\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\n * concatenation.\n *\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\n *\n * @constant\n * @default\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with trailing wildcard\n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\n * @example query term with leading and trailing wildcard\n * query.term('foo', {\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\n * })\n */\n\nlunr.Query.wildcard = new String (\"*\")\nlunr.Query.wildcard.NONE = 0\nlunr.Query.wildcard.LEADING = 1\nlunr.Query.wildcard.TRAILING = 2\n\n/**\n * Constants for indicating what kind of presence a term must have in matching documents.\n *\n * @constant\n * @enum {number}\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with required presence\n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\n */\nlunr.Query.presence = {\n /**\n * Term's presence in a document is optional, this is the default value.\n */\n OPTIONAL: 1,\n\n /**\n * Term's presence in a document is required, documents that do not contain\n * this term will not be returned.\n */\n REQUIRED: 2,\n\n /**\n * Term's presence in a document is prohibited, documents that do contain\n * this term will not be returned.\n */\n PROHIBITED: 3\n}\n\n/**\n * A single clause in a {@link lunr.Query} contains a term and details on how to\n * match that term against a {@link lunr.Index}.\n *\n * @typedef {Object} lunr.Query~Clause\n * @property {string[]} fields - The fields in an index this clause should be matched against.\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\n */\n\n/**\n * Adds a {@link lunr.Query~Clause} to this query.\n *\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\n * a default boost of 1 is applied to the clause.\n *\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\n * @see lunr.Query~Clause\n * @returns {lunr.Query}\n */\nlunr.Query.prototype.clause = function (clause) {\n if (!('fields' in clause)) {\n clause.fields = this.allFields\n }\n\n if (!('boost' in clause)) {\n clause.boost = 1\n }\n\n if (!('usePipeline' in clause)) {\n clause.usePipeline = true\n }\n\n if (!('wildcard' in clause)) {\n clause.wildcard = lunr.Query.wildcard.NONE\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\n clause.term = \"*\" + clause.term\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\n clause.term = \"\" + clause.term + \"*\"\n }\n\n if (!('presence' in clause)) {\n clause.presence = lunr.Query.presence.OPTIONAL\n }\n\n this.clauses.push(clause)\n\n return this\n}\n\n/**\n * A negated query is one in which every clause has a presence of\n * prohibited. These queries require some special processing to return\n * the expected results.\n *\n * @returns boolean\n */\nlunr.Query.prototype.isNegated = function () {\n for (var i = 0; i < this.clauses.length; i++) {\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\n * to the list of clauses that make up this query.\n *\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\n * to a token or token-like string should be done before calling this method.\n *\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\n * array, each term in the array will share the same options.\n *\n * @param {object|object[]} term - The term(s) to add to the query.\n * @param {object} [options] - Any additional properties to add to the query clause.\n * @returns {lunr.Query}\n * @see lunr.Query#clause\n * @see lunr.Query~Clause\n * @example adding a single term to a query\n * query.term(\"foo\")\n * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard\n * query.term(\"foo\", {\n * fields: [\"title\"],\n * boost: 10,\n * wildcard: lunr.Query.wildcard.TRAILING\n * })\n * @example using lunr.tokenizer to convert a string to tokens before using them as terms\n * query.term(lunr.tokenizer(\"foo bar\"))\n */\nlunr.Query.prototype.term = function (term, options) {\n if (Array.isArray(term)) {\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\n return this\n }\n\n var clause = options || {}\n clause.term = term.toString()\n\n this.clause(clause)\n\n return this\n}\nlunr.QueryParseError = function (message, start, end) {\n this.name = \"QueryParseError\"\n this.message = message\n this.start = start\n this.end = end\n}\n\nlunr.QueryParseError.prototype = new Error\nlunr.QueryLexer = function (str) {\n this.lexemes = []\n this.str = str\n this.length = str.length\n this.pos = 0\n this.start = 0\n this.escapeCharPositions = []\n}\n\nlunr.QueryLexer.prototype.run = function () {\n var state = lunr.QueryLexer.lexText\n\n while (state) {\n state = state(this)\n }\n}\n\nlunr.QueryLexer.prototype.sliceString = function () {\n var subSlices = [],\n sliceStart = this.start,\n sliceEnd = this.pos\n\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\n sliceEnd = this.escapeCharPositions[i]\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\n sliceStart = sliceEnd + 1\n }\n\n subSlices.push(this.str.slice(sliceStart, this.pos))\n this.escapeCharPositions.length = 0\n\n return subSlices.join('')\n}\n\nlunr.QueryLexer.prototype.emit = function (type) {\n this.lexemes.push({\n type: type,\n str: this.sliceString(),\n start: this.start,\n end: this.pos\n })\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.escapeCharacter = function () {\n this.escapeCharPositions.push(this.pos - 1)\n this.pos += 1\n}\n\nlunr.QueryLexer.prototype.next = function () {\n if (this.pos >= this.length) {\n return lunr.QueryLexer.EOS\n }\n\n var char = this.str.charAt(this.pos)\n this.pos += 1\n return char\n}\n\nlunr.QueryLexer.prototype.width = function () {\n return this.pos - this.start\n}\n\nlunr.QueryLexer.prototype.ignore = function () {\n if (this.start == this.pos) {\n this.pos += 1\n }\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.backup = function () {\n this.pos -= 1\n}\n\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\n var char, charCode\n\n do {\n char = this.next()\n charCode = char.charCodeAt(0)\n } while (charCode > 47 && charCode < 58)\n\n if (char != lunr.QueryLexer.EOS) {\n this.backup()\n }\n}\n\nlunr.QueryLexer.prototype.more = function () {\n return this.pos < this.length\n}\n\nlunr.QueryLexer.EOS = 'EOS'\nlunr.QueryLexer.FIELD = 'FIELD'\nlunr.QueryLexer.TERM = 'TERM'\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\nlunr.QueryLexer.BOOST = 'BOOST'\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\n\nlunr.QueryLexer.lexField = function (lexer) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.FIELD)\n lexer.ignore()\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexTerm = function (lexer) {\n if (lexer.width() > 1) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.TERM)\n }\n\n lexer.ignore()\n\n if (lexer.more()) {\n return lunr.QueryLexer.lexText\n }\n}\n\nlunr.QueryLexer.lexEditDistance = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexBoost = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.BOOST)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexEOS = function (lexer) {\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n}\n\n// This matches the separator used when tokenising fields\n// within a document. These should match otherwise it is\n// not possible to search for some tokens within a document.\n//\n// It is possible for the user to change the separator on the\n// tokenizer so it _might_ clash with any other of the special\n// characters already used within the search string, e.g. :.\n//\n// This means that it is possible to change the separator in\n// such a way that makes some words unsearchable using a search\n// string.\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\n\nlunr.QueryLexer.lexText = function (lexer) {\n while (true) {\n var char = lexer.next()\n\n if (char == lunr.QueryLexer.EOS) {\n return lunr.QueryLexer.lexEOS\n }\n\n // Escape character is '\\'\n if (char.charCodeAt(0) == 92) {\n lexer.escapeCharacter()\n continue\n }\n\n if (char == \":\") {\n return lunr.QueryLexer.lexField\n }\n\n if (char == \"~\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexEditDistance\n }\n\n if (char == \"^\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexBoost\n }\n\n // \"+\" indicates term presence is required\n // checking for length to ensure that only\n // leading \"+\" are considered\n if (char == \"+\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n // \"-\" indicates term presence is prohibited\n // checking for length to ensure that only\n // leading \"-\" are considered\n if (char == \"-\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n if (char.match(lunr.QueryLexer.termSeparator)) {\n return lunr.QueryLexer.lexTerm\n }\n }\n}\n\nlunr.QueryParser = function (str, query) {\n this.lexer = new lunr.QueryLexer (str)\n this.query = query\n this.currentClause = {}\n this.lexemeIdx = 0\n}\n\nlunr.QueryParser.prototype.parse = function () {\n this.lexer.run()\n this.lexemes = this.lexer.lexemes\n\n var state = lunr.QueryParser.parseClause\n\n while (state) {\n state = state(this)\n }\n\n return this.query\n}\n\nlunr.QueryParser.prototype.peekLexeme = function () {\n return this.lexemes[this.lexemeIdx]\n}\n\nlunr.QueryParser.prototype.consumeLexeme = function () {\n var lexeme = this.peekLexeme()\n this.lexemeIdx += 1\n return lexeme\n}\n\nlunr.QueryParser.prototype.nextClause = function () {\n var completedClause = this.currentClause\n this.query.clause(completedClause)\n this.currentClause = {}\n}\n\nlunr.QueryParser.parseClause = function (parser) {\n var lexeme = parser.peekLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.type) {\n case lunr.QueryLexer.PRESENCE:\n return lunr.QueryParser.parsePresence\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expected either a field or a term, found \" + lexeme.type\n\n if (lexeme.str.length >= 1) {\n errorMessage += \" with value '\" + lexeme.str + \"'\"\n }\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n}\n\nlunr.QueryParser.parsePresence = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.str) {\n case \"-\":\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\n break\n case \"+\":\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\n break\n default:\n var errorMessage = \"unrecognised presence operator'\" + lexeme.str + \"'\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term or field, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term or field, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseField = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\n var possibleFields = parser.query.allFields.map(function (f) { return \"'\" + f + \"'\" }).join(', '),\n errorMessage = \"unrecognised field '\" + lexeme.str + \"', possible fields: \" + possibleFields\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.fields = [lexeme.str]\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseTerm = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n parser.currentClause.term = lexeme.str.toLowerCase()\n\n if (lexeme.str.indexOf(\"*\") != -1) {\n parser.currentClause.usePipeline = false\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseEditDistance = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var editDistance = parseInt(lexeme.str, 10)\n\n if (isNaN(editDistance)) {\n var errorMessage = \"edit distance must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.editDistance = editDistance\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseBoost = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var boost = parseInt(lexeme.str, 10)\n\n if (isNaN(boost)) {\n var errorMessage = \"boost must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.boost = boost\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\n /**\n * export the module via AMD, CommonJS or as a browser global\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\n */\n ;(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(factory)\n } else if (typeof exports === 'object') {\n /**\n * Node. Does not work with strict CommonJS, but\n * only CommonJS-like enviroments that support module.exports,\n * like Node.\n */\n module.exports = factory()\n } else {\n // Browser globals (root is window)\n root.lunr = factory()\n }\n }(this, function () {\n /**\n * Just return a value to define the module export.\n * This example returns an object, but the module\n * can return a function as the exported value.\n */\n return lunr\n }))\n})();\n", "/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A RTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport lunr from \"lunr\"\n\nimport \"~/polyfills\"\n\nimport { Search, SearchIndexConfig } from \"../../_\"\nimport {\n SearchMessage,\n SearchMessageType\n} from \"../message\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Add support for usage with `iframe-worker` polyfill\n *\n * While `importScripts` is synchronous when executed inside of a web worker,\n * it's not possible to provide a synchronous polyfilled implementation. The\n * cool thing is that awaiting a non-Promise is a noop, so extending the type\n * definition to return a `Promise` shouldn't break anything.\n *\n * @see https://bit.ly/2PjDnXi - GitHub comment\n */\ndeclare global {\n function importScripts(...urls: string[]): Promise | void\n}\n\n/* ----------------------------------------------------------------------------\n * Data\n * ------------------------------------------------------------------------- */\n\n/**\n * Search index\n */\nlet index: Search\n\n/* ----------------------------------------------------------------------------\n * Helper functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch (= import) multi-language support through `lunr-languages`\n *\n * This function automatically imports the stemmers necessary to process the\n * languages, which are defined through the search index configuration.\n *\n * If the worker runs inside of an `iframe` (when using `iframe-worker` as\n * a shim), the base URL for the stemmers to be loaded must be determined by\n * searching for the first `script` element with a `src` attribute, which will\n * contain the contents of this script.\n *\n * @param config - Search index configuration\n *\n * @returns Promise resolving with no result\n */\nasync function setupSearchLanguages(\n config: SearchIndexConfig\n): Promise {\n let base = \"../lunr\"\n\n /* Detect `iframe-worker` and fix base URL */\n if (typeof parent !== \"undefined\" && \"IFrameWorker\" in parent) {\n const worker = document.querySelector(\"script[src]\")!\n const [path] = worker.src.split(\"/worker\")\n\n /* Prefix base with path */\n base = base.replace(\"..\", path)\n }\n\n /* Add scripts for languages */\n const scripts = []\n for (const lang of config.lang) {\n switch (lang) {\n\n /* Add segmenter for Japanese */\n case \"ja\":\n scripts.push(`${base}/tinyseg.js`)\n break\n\n /* Add segmenter for Hindi and Thai */\n case \"hi\":\n case \"th\":\n scripts.push(`${base}/wordcut.js`)\n break\n }\n\n /* Add language support */\n if (lang !== \"en\")\n scripts.push(`${base}/min/lunr.${lang}.min.js`)\n }\n\n /* Add multi-language support */\n if (config.lang.length > 1)\n scripts.push(`${base}/min/lunr.multi.min.js`)\n\n /* Load scripts synchronously */\n if (scripts.length)\n await importScripts(\n `${base}/min/lunr.stemmer.support.min.js`,\n ...scripts\n )\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Message handler\n *\n * @param message - Source message\n *\n * @returns Target message\n */\nexport async function handler(\n message: SearchMessage\n): Promise {\n switch (message.type) {\n\n /* Search setup message */\n case SearchMessageType.SETUP:\n await setupSearchLanguages(message.data.config)\n index = new Search(message.data)\n return {\n type: SearchMessageType.READY\n }\n\n /* Search query message */\n case SearchMessageType.QUERY:\n return {\n type: SearchMessageType.RESULT,\n data: index ? index.search(message.data) : { items: [] }\n }\n\n /* All other messages */\n default:\n throw new TypeError(\"Invalid message type\")\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Worker\n * ------------------------------------------------------------------------- */\n\n/* @ts-expect-error - expose Lunr.js in global scope, or stemmers won't work */\nself.lunr = lunr\n\n/* Handle messages */\naddEventListener(\"message\", async ev => {\n postMessage(await handler(ev.data))\n})\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Polyfills\n * ------------------------------------------------------------------------- */\n\n/* Polyfill `Object.entries` */\nif (!Object.entries)\n Object.entries = function (obj: object) {\n const data: [string, string][] = []\n for (const key of Object.keys(obj))\n // @ts-expect-error - ignore property access warning\n data.push([key, obj[key]])\n\n /* Return entries */\n return data\n }\n\n/* Polyfill `Object.values` */\nif (!Object.values)\n Object.values = function (obj: object) {\n const data: string[] = []\n for (const key of Object.keys(obj))\n // @ts-expect-error - ignore property access warning\n data.push(obj[key])\n\n /* Return values */\n return data\n }\n\n/* ------------------------------------------------------------------------- */\n\n/* Polyfills for `Element` */\nif (typeof Element !== \"undefined\") {\n\n /* Polyfill `Element.scrollTo` */\n if (!Element.prototype.scrollTo)\n Element.prototype.scrollTo = function (\n x?: ScrollToOptions | number, y?: number\n ): void {\n if (typeof x === \"object\") {\n this.scrollLeft = x.left!\n this.scrollTop = x.top!\n } else {\n this.scrollLeft = x!\n this.scrollTop = y!\n }\n }\n\n /* Polyfill `Element.replaceWith` */\n if (!Element.prototype.replaceWith)\n Element.prototype.replaceWith = function (\n ...nodes: Array\n ): void {\n const parent = this.parentNode\n if (parent) {\n if (nodes.length === 0)\n parent.removeChild(this)\n\n /* Replace children and create text nodes */\n for (let i = nodes.length - 1; i >= 0; i--) {\n let node = nodes[i]\n if (typeof node === \"string\")\n node = document.createTextNode(node)\n else if (node.parentNode)\n node.parentNode.removeChild(node)\n\n /* Replace child or insert before previous sibling */\n if (!i)\n parent.replaceChild(node, this)\n else\n parent.insertBefore(this.previousSibling!, node)\n }\n }\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport escapeHTML from \"escape-html\"\n\nimport { SearchIndexDocument } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search document\n */\nexport interface SearchDocument extends SearchIndexDocument {\n parent?: SearchIndexDocument /* Parent article */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search document mapping\n */\nexport type SearchDocumentMap = Map\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search document mapping\n *\n * @param docs - Search index documents\n *\n * @returns Search document map\n */\nexport function setupSearchDocumentMap(\n docs: SearchIndexDocument[]\n): SearchDocumentMap {\n const documents = new Map()\n const parents = new Set()\n for (const doc of docs) {\n const [path, hash] = doc.location.split(\"#\")\n\n /* Extract location, title and tags */\n const location = doc.location\n const title = doc.title\n const tags = doc.tags\n\n /* Escape and cleanup text */\n const text = escapeHTML(doc.text)\n .replace(/\\s+(?=[,.:;!?])/g, \"\")\n .replace(/\\s+/g, \" \")\n\n /* Handle section */\n if (hash) {\n const parent = documents.get(path)!\n\n /* Ignore first section, override article */\n if (!parents.has(parent)) {\n parent.title = doc.title\n parent.text = text\n\n /* Remember that we processed the article */\n parents.add(parent)\n\n /* Add subsequent section */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n parent\n })\n }\n\n /* Add article */\n } else {\n documents.set(location, {\n location,\n title,\n text,\n ...tags && { tags }\n })\n }\n }\n return documents\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport escapeHTML from \"escape-html\"\n\nimport { SearchIndexConfig } from \"../_\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search highlight function\n *\n * @param value - Value\n *\n * @returns Highlighted value\n */\nexport type SearchHighlightFn = (value: string) => string\n\n/**\n * Search highlight factory function\n *\n * @param query - Query value\n *\n * @returns Search highlight function\n */\nexport type SearchHighlightFactoryFn = (query: string) => SearchHighlightFn\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Create a search highlighter\n *\n * @param config - Search index configuration\n * @param escape - Whether to escape HTML\n *\n * @returns Search highlight factory function\n */\nexport function setupSearchHighlighter(\n config: SearchIndexConfig, escape: boolean\n): SearchHighlightFactoryFn {\n const separator = new RegExp(config.separator, \"img\")\n const highlight = (_: unknown, data: string, term: string) => {\n return `${data}${term}`\n }\n\n /* Return factory function */\n return (query: string) => {\n query = query\n .replace(/[\\s*+\\-:~^]+/g, \" \")\n .trim()\n\n /* Create search term match expression */\n const match = new RegExp(`(^|${config.separator})(${\n query\n .replace(/[|\\\\{}()[\\]^$+*?.-]/g, \"\\\\$&\")\n .replace(separator, \"|\")\n })`, \"img\")\n\n /* Highlight string value */\n return value => (\n escape\n ? escapeHTML(value)\n : value\n )\n .replace(match, highlight)\n .replace(/<\\/mark>(\\s+)]*>/img, \"$1\")\n }\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search query clause\n */\nexport interface SearchQueryClause {\n presence: lunr.Query.presence /* Clause presence */\n term: string /* Clause term */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search query terms\n */\nexport type SearchQueryTerms = Record\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Parse a search query for analysis\n *\n * @param value - Query value\n *\n * @returns Search query clauses\n */\nexport function parseSearchQuery(\n value: string\n): SearchQueryClause[] {\n const query = new (lunr as any).Query([\"title\", \"text\"])\n const parser = new (lunr as any).QueryParser(value, query)\n\n /* Parse and return query clauses */\n parser.parse()\n return query.clauses\n}\n\n/**\n * Analyze the search query clauses in regard to the search terms found\n *\n * @param query - Search query clauses\n * @param terms - Search terms\n *\n * @returns Search query terms\n */\nexport function getSearchQueryTerms(\n query: SearchQueryClause[], terms: string[]\n): SearchQueryTerms {\n const clauses = new Set(query)\n\n /* Match query clauses against terms */\n const result: SearchQueryTerms = {}\n for (let t = 0; t < terms.length; t++)\n for (const clause of clauses)\n if (terms[t].startsWith(clause.term)) {\n result[clause.term] = true\n clauses.delete(clause)\n }\n\n /* Annotate unmatched non-stopword query clauses */\n for (const clause of clauses)\n if (lunr.stopWordFilter?.(clause.term as any))\n result[clause.term] = false\n\n /* Return query terms */\n return result\n}\n", "/*\n * Copyright (c) 2016-2022 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport {\n SearchDocument,\n SearchDocumentMap,\n setupSearchDocumentMap\n} from \"../document\"\nimport {\n SearchHighlightFactoryFn,\n setupSearchHighlighter\n} from \"../highlighter\"\nimport { SearchOptions } from \"../options\"\nimport {\n SearchQueryTerms,\n getSearchQueryTerms,\n parseSearchQuery\n} from \"../query\"\n\n/* ----------------------------------------------------------------------------\n * Types\n * ------------------------------------------------------------------------- */\n\n/**\n * Search index configuration\n */\nexport interface SearchIndexConfig {\n lang: string[] /* Search languages */\n separator: string /* Search separator */\n}\n\n/**\n * Search index document\n */\nexport interface SearchIndexDocument {\n location: string /* Document location */\n title: string /* Document title */\n text: string /* Document text */\n tags?: string[] /* Document tags */\n boost?: number /* Document boost */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search index\n *\n * This interfaces describes the format of the `search_index.json` file which\n * is automatically built by the MkDocs search plugin.\n */\nexport interface SearchIndex {\n config: SearchIndexConfig /* Search index configuration */\n docs: SearchIndexDocument[] /* Search index documents */\n options: SearchOptions /* Search options */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search metadata\n */\nexport interface SearchMetadata {\n score: number /* Score (relevance) */\n terms: SearchQueryTerms /* Search query terms */\n}\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search result document\n */\nexport type SearchResultDocument = SearchDocument & SearchMetadata\n\n/**\n * Search result item\n */\nexport type SearchResultItem = SearchResultDocument[]\n\n/* ------------------------------------------------------------------------- */\n\n/**\n * Search result\n */\nexport interface SearchResult {\n items: SearchResultItem[] /* Search result items */\n suggestions?: string[] /* Search suggestions */\n}\n\n/* ----------------------------------------------------------------------------\n * Functions\n * ------------------------------------------------------------------------- */\n\n/**\n * Compute the difference of two lists of strings\n *\n * @param a - 1st list of strings\n * @param b - 2nd list of strings\n *\n * @returns Difference\n */\nfunction difference(a: string[], b: string[]): string[] {\n const [x, y] = [new Set(a), new Set(b)]\n return [\n ...new Set([...x].filter(value => !y.has(value)))\n ]\n}\n\n/* ----------------------------------------------------------------------------\n * Class\n * ------------------------------------------------------------------------- */\n\n/**\n * Search index\n */\nexport class Search {\n\n /**\n * Search document mapping\n *\n * A mapping of URLs (including hash fragments) to the actual articles and\n * sections of the documentation. The search document mapping must be created\n * regardless of whether the index was prebuilt or not, as Lunr.js itself\n * only stores the actual index.\n */\n protected documents: SearchDocumentMap\n\n /**\n * Search highlight factory function\n */\n protected highlight: SearchHighlightFactoryFn\n\n /**\n * The underlying Lunr.js search index\n */\n protected index: lunr.Index\n\n /**\n * Search options\n */\n protected options: SearchOptions\n\n /**\n * Create the search integration\n *\n * @param data - Search index\n */\n public constructor({ config, docs, options }: SearchIndex) {\n this.options = options\n\n /* Set up document map and highlighter factory */\n this.documents = setupSearchDocumentMap(docs)\n this.highlight = setupSearchHighlighter(config, false)\n\n /* Set separator for tokenizer */\n lunr.tokenizer.separator = new RegExp(config.separator)\n\n /* Create search index */\n this.index = lunr(function () {\n\n /* Set up multi-language support */\n if (config.lang.length === 1 && config.lang[0] !== \"en\") {\n this.use((lunr as any)[config.lang[0]])\n } else if (config.lang.length > 1) {\n this.use((lunr as any).multiLanguage(...config.lang))\n }\n\n /* Compute functions to be removed from the pipeline */\n const fns = difference([\n \"trimmer\", \"stopWordFilter\", \"stemmer\"\n ], options.pipeline)\n\n /* Remove functions from the pipeline for registered languages */\n for (const lang of config.lang.map(language => (\n language === \"en\" ? lunr : (lunr as any)[language]\n ))) {\n for (const fn of fns) {\n this.pipeline.remove(lang[fn])\n this.searchPipeline.remove(lang[fn])\n }\n }\n\n /* Set up reference */\n this.ref(\"location\")\n\n /* Set up fields */\n this.field(\"title\", { boost: 1e3 })\n this.field(\"text\")\n this.field(\"tags\", { boost: 1e6, extractor: doc => {\n const { tags = [] } = doc as SearchDocument\n return tags.reduce((list, tag) => [\n ...list,\n ...lunr.tokenizer(tag)\n ], [] as lunr.Token[])\n } })\n\n /* Index documents */\n for (const doc of docs)\n this.add(doc, { boost: doc.boost })\n })\n }\n\n /**\n * Search for matching documents\n *\n * The search index which MkDocs provides is divided up into articles, which\n * contain the whole content of the individual pages, and sections, which only\n * contain the contents of the subsections obtained by breaking the individual\n * pages up at `h1` ... `h6`. As there may be many sections on different pages\n * with identical titles (for example within this very project, e.g. \"Usage\"\n * or \"Installation\"), they need to be put into the context of the containing\n * page. For this reason, section results are grouped within their respective\n * articles which are the top-level results that are returned.\n *\n * @param query - Query value\n *\n * @returns Search results\n */\n public search(query: string): SearchResult {\n if (query) {\n try {\n const highlight = this.highlight(query)\n\n /* Parse query to extract clauses for analysis */\n const clauses = parseSearchQuery(query)\n .filter(clause => (\n clause.presence !== lunr.Query.presence.PROHIBITED\n ))\n\n /* Perform search and post-process results */\n const groups = this.index.search(`${query}*`)\n\n /* Apply post-query boosts based on title and search query terms */\n .reduce((item, { ref, score, matchData }) => {\n const document = this.documents.get(ref)\n if (typeof document !== \"undefined\") {\n const { location, title, text, tags, parent } = document\n\n /* Compute and analyze search query terms */\n const terms = getSearchQueryTerms(\n clauses,\n Object.keys(matchData.metadata)\n )\n\n /* Highlight title and text and apply post-query boosts */\n const boost = +!parent + +Object.values(terms).every(t => t)\n item.push({\n location,\n title: highlight(title),\n text: highlight(text),\n ...tags && { tags: tags.map(highlight) },\n score: score * (1 + boost),\n terms\n })\n }\n return item\n }, [])\n\n /* Sort search results again after applying boosts */\n .sort((a, b) => b.score - a.score)\n\n /* Group search results by page */\n .reduce((items, result) => {\n const document = this.documents.get(result.location)\n if (typeof document !== \"undefined\") {\n const ref = \"parent\" in document\n ? document.parent!.location\n : document.location\n items.set(ref, [...items.get(ref) || [], result])\n }\n return items\n }, new Map())\n\n /* Generate search suggestions, if desired */\n let suggestions: string[] | undefined\n if (this.options.suggestions) {\n const titles = this.index.query(builder => {\n for (const clause of clauses)\n builder.term(clause.term, {\n fields: [\"title\"],\n presence: lunr.Query.presence.REQUIRED,\n wildcard: lunr.Query.wildcard.TRAILING\n })\n })\n\n /* Retrieve suggestions for best match */\n suggestions = titles.length\n ? Object.keys(titles[0].matchData.metadata)\n : []\n }\n\n /* Return items and suggestions */\n return {\n items: [...groups.values()],\n ...typeof suggestions !== \"undefined\" && { suggestions }\n }\n\n /* Log errors to console (for now) */\n } catch {\n console.warn(`Invalid query: ${query} \u2013 see https://bit.ly/2s3ChXG`)\n }\n }\n\n /* Return nothing in case of error or empty query */\n return { items: [] }\n }\n}\n"], + "mappings": "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L,CAAI,KACrDD,EAAIC,EAER,CAEA,OAAAG,EAAKP,EACLQ,EAAMzB,EACFwB,EAAG,KAAKJ,CAAC,GAAKK,EAAI,KAAKL,CAAC,IAC1BI,EAAKjB,EACLa,EAAIA,EAAE,QAAQI,EAAG,EAAE,GAKjBD,GAAW,MACbH,EAAIG,EAAQ,YAAY,EAAIH,EAAE,OAAO,CAAC,GAGjCA,CACT,EAEA,OAAO,SAAUhD,EAAO,CACtB,OAAOA,EAAM,OAAO+C,CAAa,CACnC,CACF,EAAG,EAEHpG,EAAK,SAAS,iBAAiBA,EAAK,QAAS,SAAS,EACtD;AAAA;AAAA;AAAA,GAkBAA,EAAK,uBAAyB,SAAU8G,EAAW,CACjD,IAAIC,EAAQD,EAAU,OAAO,SAAU7D,EAAM+D,EAAU,CACrD,OAAA/D,EAAK+D,GAAYA,EACV/D,CACT,EAAG,CAAC,CAAC,EAEL,OAAO,SAAUI,EAAO,CACtB,GAAIA,GAAS0D,EAAM1D,EAAM,SAAS,KAAOA,EAAM,SAAS,EAAG,OAAOA,CACpE,CACF,EAeArD,EAAK,eAAiBA,EAAK,uBAAuB,CAChD,IACA,OACA,QACA,SACA,QACA,MACA,SACA,OACA,KACA,QACA,KACA,MACA,MACA,MACA,KACA,KACA,KACA,UACA,OACA,MACA,KACA,MACA,SACA,QACA,OACA,MACA,KACA,OACA,SACA,OACA,OACA,QACA,MACA,OACA,MACA,MACA,MACA,MACA,OACA,KACA,MACA,OACA,MACA,MACA,MACA,UACA,IACA,KACA,KACA,OACA,KACA,KACA,MACA,OACA,QACA,MACA,OACA,SACA,MACA,KACA,QACA,OACA,OACA,KACA,UACA,KACA,MACA,MACA,KACA,MACA,QACA,KACA,OACA,KACA,QACA,MACA,MACA,SACA,OACA,MACA,OACA,MACA,SACA,QACA,KACA,OACA,OACA,OACA,MACA,QACA,OACA,OACA,QACA,QACA,OACA,OACA,MACA,KACA,MACA,OACA,KACA,QACA,MACA,KACA,OACA,OACA,OACA,QACA,QACA,QACA,MACA,OACA,MACA,OACA,OACA,QACA,MACA,MACA,MACF,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", "names": ["require_lunr", "__commonJSMin", "exports", "module", "lunr", "config", "builder", "global", "message", "obj", "clone", "keys", "key", "val", "docRef", "fieldName", "stringValue", "s", "n", "fieldRef", "elements", "i", "other", "object", "a", "b", "intersection", "element", "posting", "documentCount", "documentsWithTerm", "x", "str", "metadata", "fn", "t", "len", "tokens", "sliceEnd", "sliceStart", "char", "sliceLength", "tokenMetadata", "label", "isRegistered", "serialised", "pipeline", "fnName", "fns", "existingFn", "newFn", "pos", "stackLength", "memo", "j", "result", "k", "token", "index", "start", "end", "pivotPoint", "pivotIndex", "insertIdx", "position", "sumOfSquares", "elementsLength", "otherVector", "dotProduct", "aLen", "bLen", "aVal", "bVal", "output", "step2list", "step3list", "c", "v", "C", "V", "mgr0", "meq1", "mgr1", "s_v", "re_mgr0", "re_mgr1", "re_meq1", "re_s_v", "re_1a", "re2_1a", "re_1b", "re2_1b", "re_1b_2", "re2_1b_2", "re3_1b_2", "re4_1b_2", "re_1c", "re_2", "re_3", "re_4", "re2_4", "re_5", "re_5_1", "re3_5", "porterStemmer", "w", "stem", "suffix", "firstch", "re", "re2", "re3", "re4", "fp", "stopWords", "words", "stopWord", "arr", "clause", "editDistance", "root", "stack", "frame", "noEditNode", "insertionNode", "substitutionNode", "charA", "charB", "transposeNode", "node", "final", "next", "edges", "edge", "labels", "qEdges", "qLen", "nEdges", "nLen", "q", "qEdge", "nEdge", "qNode", "word", "commonPrefix", "nextNode", "downTo", "childKey", "attrs", "queryString", "query", "parser", "matchingFields", "queryVectors", "termFieldCache", "requiredMatches", "prohibitedMatches", "terms", "clauseMatches", "m", "term", "termTokenSet", "expandedTerms", "field", "expandedTerm", "termIndex", "fieldPosting", "matchingDocumentRefs", "termField", "matchingDocumentsSet", "l", "matchingDocumentRef", "matchingFieldRef", "fieldMatch", "allRequiredMatches", "allProhibitedMatches", "matchingFieldRefs", "results", "matches", "fieldVector", "score", "docMatch", "match", "invertedIndex", "fieldVectors", "ref", "serializedIndex", "serializedVectors", "serializedInvertedIndex", "tokenSetBuilder", "tuple", "attributes", "number", "doc", "fields", "extractor", "fieldTerms", "metadataKey", "fieldRefs", "numberOfFields", "accumulator", "documentsWithField", "fieldRefsLength", "termIdfCache", "fieldLength", "termFrequencies", "termsLength", "fieldBoost", "docBoost", "tf", "idf", "scoreWithPrecision", "args", "clonedMetadata", "metadataKeys", "otherMatchData", "allFields", "options", "state", "subSlices", "type", "charCode", "lexer", "lexeme", "completedClause", "errorMessage", "nextLexeme", "possibleFields", "f", "boost", "factory", "require_escape_html", "__commonJSMin", "exports", "module", "matchHtmlRegExp", "escapeHtml", "string", "str", "match", "escape", "html", "index", "lastIndex", "import_lunr", "obj", "data", "key", "x", "y", "nodes", "parent", "i", "node", "import_escape_html", "setupSearchDocumentMap", "docs", "documents", "parents", "doc", "path", "hash", "location", "title", "tags", "text", "escapeHTML", "parent", "__spreadValues", "import_escape_html", "setupSearchHighlighter", "config", "escape", "separator", "highlight", "_", "data", "term", "query", "match", "value", "escapeHTML", "parseSearchQuery", "value", "query", "getSearchQueryTerms", "terms", "_a", "clauses", "result", "t", "clause", "difference", "a", "b", "x", "y", "value", "Search", "config", "docs", "options", "setupSearchDocumentMap", "setupSearchHighlighter", "fns", "lang", "language", "fn", "doc", "tags", "list", "tag", "query", "highlight", "clauses", "parseSearchQuery", "clause", "groups", "item", "ref", "score", "matchData", "document", "location", "title", "text", "parent", "terms", "getSearchQueryTerms", "boost", "t", "__spreadProps", "__spreadValues", "items", "result", "suggestions", "titles", "builder", "e", "index", "setupSearchLanguages", "config", "__async", "base", "worker", "path", "scripts", "lang", "handler", "message", "Search", "lunr", "ev"] } diff --git a/5.x/assets/stylesheets/main.20d9efc8.min.css b/5.x/assets/stylesheets/main.20d9efc8.min.css new file mode 100644 index 000000000..d1d3d5ec7 --- /dev/null +++ b/5.x/assets/stylesheets/main.20d9efc8.min.css @@ -0,0 +1 @@ +@charset "UTF-8";html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none;box-sizing:border-box}*,:after,:before{box-sizing:inherit}@media (prefers-reduced-motion){*,:after,:before{transition:none!important}}body{margin:0}a,button,input,label{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}hr{border:0;box-sizing:initial;display:block;height:.05rem;overflow:visible;padding:0}small{font-size:80%}sub,sup{line-height:1em}img{border-style:none}table{border-collapse:initial;border-spacing:0}td,th{font-weight:400;vertical-align:top}button{background:transparent;border:0;font-family:inherit;font-size:inherit;margin:0;padding:0}input{border:0;outline:none}:root,[data-md-color-scheme=default]{--md-default-fg-color:rgba(0,0,0,.87);--md-default-fg-color--light:rgba(0,0,0,.54);--md-default-fg-color--lighter:rgba(0,0,0,.32);--md-default-fg-color--lightest:rgba(0,0,0,.07);--md-default-bg-color:#fff;--md-default-bg-color--light:hsla(0,0%,100%,.7);--md-default-bg-color--lighter:hsla(0,0%,100%,.3);--md-default-bg-color--lightest:hsla(0,0%,100%,.12);--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7);--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:rgba(82,108,254,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7);--md-code-fg-color:#36464e;--md-code-bg-color:#f5f5f5;--md-code-hl-color:rgba(255,255,0,.5);--md-code-hl-number-color:#d52a2a;--md-code-hl-special-color:#db1457;--md-code-hl-function-color:#a846b9;--md-code-hl-constant-color:#6e59d9;--md-code-hl-keyword-color:#3f6ec6;--md-code-hl-string-color:#1c7d4d;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-mark-color:rgba(255,255,0,.5);--md-typeset-del-color:rgba(245,80,61,.15);--md-typeset-ins-color:rgba(11,213,112,.15);--md-typeset-kbd-color:#fafafa;--md-typeset-kbd-accent-color:#fff;--md-typeset-kbd-border-color:#b8b8b8;--md-typeset-table-color:rgba(0,0,0,.12);--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-footer-fg-color:#fff;--md-footer-fg-color--light:hsla(0,0%,100%,.7);--md-footer-fg-color--lighter:hsla(0,0%,100%,.3);--md-footer-bg-color:rgba(0,0,0,.87);--md-footer-bg-color--dark:rgba(0,0,0,.32);--md-shadow-z1:0 0.2rem 0.5rem rgba(0,0,0,.05),0 0 0.05rem rgba(0,0,0,.1);--md-shadow-z2:0 0.2rem 0.5rem rgba(0,0,0,.1),0 0 0.05rem rgba(0,0,0,.25);--md-shadow-z3:0 0.2rem 0.5rem rgba(0,0,0,.2),0 0 0.05rem rgba(0,0,0,.35)}.md-icon svg{fill:currentcolor;display:block;height:1.2rem;width:1.2rem}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--md-text-font-family:var(--md-text-font,_),-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;--md-code-font-family:var(--md-code-font,_),SFMono-Regular,Consolas,Menlo,monospace}body,input{font-feature-settings:"kern","liga";font-family:var(--md-text-font-family)}body,code,input,kbd,pre{color:var(--md-typeset-color)}code,kbd,pre{font-feature-settings:"kern";font-family:var(--md-code-font-family)}:root{--md-typeset-table-sort-icon:url('data:image/svg+xml;charset=utf-8,');--md-typeset-table-sort-icon--asc:url('data:image/svg+xml;charset=utf-8,');--md-typeset-table-sort-icon--desc:url('data:image/svg+xml;charset=utf-8,')}.md-typeset{-webkit-print-color-adjust:exact;color-adjust:exact;font-size:.8rem;line-height:1.6}@media print{.md-typeset{font-size:.68rem}}.md-typeset blockquote,.md-typeset dl,.md-typeset figure,.md-typeset ol,.md-typeset pre,.md-typeset ul{margin-bottom:1em;margin-top:1em}.md-typeset h1{color:var(--md-default-fg-color--light);font-size:2em;line-height:1.3;margin:0 0 1.25em}.md-typeset h1,.md-typeset h2{font-weight:300;letter-spacing:-.01em}.md-typeset h2{font-size:1.5625em;line-height:1.4;margin:1.6em 0 .64em}.md-typeset h3{font-size:1.25em;font-weight:400;letter-spacing:-.01em;line-height:1.5;margin:1.6em 0 .8em}.md-typeset h2+h3{margin-top:.8em}.md-typeset h4{font-weight:700;letter-spacing:-.01em;margin:1em 0}.md-typeset h5,.md-typeset h6{color:var(--md-default-fg-color--light);font-size:.8em;font-weight:700;letter-spacing:-.01em;margin:1.25em 0}.md-typeset h5{text-transform:uppercase}.md-typeset hr{border-bottom:.05rem solid var(--md-default-fg-color--lightest);display:flow-root;margin:1.5em 0}.md-typeset a{color:var(--md-typeset-a-color);word-break:break-word}.md-typeset a,.md-typeset a:before{transition:color 125ms}.md-typeset a:focus,.md-typeset a:hover{color:var(--md-accent-fg-color)}.md-typeset a:focus code,.md-typeset a:hover code{background-color:var(--md-accent-fg-color--transparent)}.md-typeset a code{color:currentcolor;transition:background-color 125ms}.md-typeset a.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset code,.md-typeset kbd,.md-typeset pre{color:var(--md-code-fg-color);direction:ltr;font-variant-ligatures:none}@media print{.md-typeset code,.md-typeset kbd,.md-typeset pre{white-space:pre-wrap}}.md-typeset code{background-color:var(--md-code-bg-color);border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone;font-size:.85em;padding:0 .2941176471em;word-break:break-word}.md-typeset code:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-typeset pre{display:flow-root;line-height:1.4;position:relative}.md-typeset pre>code{-webkit-box-decoration-break:slice;box-decoration-break:slice;box-shadow:none;display:block;margin:0;outline-color:var(--md-accent-fg-color);overflow:auto;padding:.7720588235em 1.1764705882em;scrollbar-color:var(--md-default-fg-color--lighter) transparent;scrollbar-width:thin;touch-action:auto;word-break:normal}.md-typeset pre>code:hover{scrollbar-color:var(--md-accent-fg-color) transparent}.md-typeset pre>code::-webkit-scrollbar{height:.2rem;width:.2rem}.md-typeset pre>code::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}.md-typeset kbd{background-color:var(--md-typeset-kbd-color);border-radius:.1rem;box-shadow:0 .1rem 0 .05rem var(--md-typeset-kbd-border-color),0 .1rem 0 var(--md-typeset-kbd-border-color),0 -.1rem .2rem var(--md-typeset-kbd-accent-color) inset;color:var(--md-default-fg-color);display:inline-block;font-size:.75em;padding:0 .6666666667em;vertical-align:text-top;word-break:break-word}.md-typeset mark{background-color:var(--md-typeset-mark-color);-webkit-box-decoration-break:clone;box-decoration-break:clone;color:inherit;word-break:break-word}.md-typeset abbr{border-bottom:.05rem dotted var(--md-default-fg-color--light);cursor:help;text-decoration:none}@media (hover:none){.md-typeset abbr{position:relative}.md-typeset abbr[title]:-webkit-any(:focus,:hover):after{background-color:var(--md-default-fg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z3);color:var(--md-default-bg-color);content:attr(title);display:inline-block;font-size:.7rem;margin-top:2em;max-width:80%;min-width:-webkit-max-content;min-width:max-content;padding:.2rem .3rem;position:absolute;width:auto}.md-typeset abbr[title]:-moz-any(:focus,:hover):after{background-color:var(--md-default-fg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z3);color:var(--md-default-bg-color);content:attr(title);display:inline-block;font-size:.7rem;margin-top:2em;max-width:80%;min-width:-moz-max-content;min-width:max-content;padding:.2rem .3rem;position:absolute;width:auto}[dir=ltr] .md-typeset abbr[title]:-webkit-any(:focus,:hover):after{left:0}[dir=ltr] .md-typeset abbr[title]:-moz-any(:focus,:hover):after{left:0}[dir=ltr] .md-typeset abbr[title]:is(:focus,:hover):after{left:0}[dir=rtl] .md-typeset abbr[title]:-webkit-any(:focus,:hover):after{right:0}[dir=rtl] .md-typeset abbr[title]:-moz-any(:focus,:hover):after{right:0}[dir=rtl] .md-typeset abbr[title]:is(:focus,:hover):after{right:0}.md-typeset abbr[title]:is(:focus,:hover):after{background-color:var(--md-default-fg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z3);color:var(--md-default-bg-color);content:attr(title);display:inline-block;font-size:.7rem;margin-top:2em;max-width:80%;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;padding:.2rem .3rem;position:absolute;width:auto}}.md-typeset small{opacity:.75}[dir=ltr] .md-typeset sub,[dir=ltr] .md-typeset sup{margin-left:.078125em}[dir=rtl] .md-typeset sub,[dir=rtl] .md-typeset sup{margin-right:.078125em}[dir=ltr] .md-typeset blockquote{padding-left:.6rem}[dir=rtl] .md-typeset blockquote{padding-right:.6rem}[dir=ltr] .md-typeset blockquote{border-left:.2rem solid var(--md-default-fg-color--lighter)}[dir=rtl] .md-typeset blockquote{border-right:.2rem solid var(--md-default-fg-color--lighter)}.md-typeset blockquote{color:var(--md-default-fg-color--light);margin-left:0;margin-right:0}.md-typeset ul{list-style-type:disc}[dir=ltr] .md-typeset ol,[dir=ltr] .md-typeset ul{margin-left:.625em}[dir=rtl] .md-typeset ol,[dir=rtl] .md-typeset ul{margin-right:.625em}.md-typeset ol,.md-typeset ul{padding:0}.md-typeset ol:not([hidden]),.md-typeset ul:not([hidden]){display:flow-root}.md-typeset ol ol,.md-typeset ul ol{list-style-type:lower-alpha}.md-typeset ol ol ol,.md-typeset ul ol ol{list-style-type:lower-roman}[dir=ltr] .md-typeset ol li,[dir=ltr] .md-typeset ul li{margin-left:1.25em}[dir=rtl] .md-typeset ol li,[dir=rtl] .md-typeset ul li{margin-right:1.25em}.md-typeset ol li,.md-typeset ul li{margin-bottom:.5em}.md-typeset ol li blockquote,.md-typeset ol li p,.md-typeset ul li blockquote,.md-typeset ul li p{margin:.5em 0}.md-typeset ol li:last-child,.md-typeset ul li:last-child{margin-bottom:0}.md-typeset ol li :-webkit-any(ul,ol),.md-typeset ul li :-webkit-any(ul,ol){margin-bottom:.5em;margin-top:.5em}.md-typeset ol li :-moz-any(ul,ol),.md-typeset ul li :-moz-any(ul,ol){margin-bottom:.5em;margin-top:.5em}[dir=ltr] .md-typeset ol li :-webkit-any(ul,ol),[dir=ltr] .md-typeset ul li :-webkit-any(ul,ol){margin-left:.625em}[dir=ltr] .md-typeset ol li :-moz-any(ul,ol),[dir=ltr] .md-typeset ul li :-moz-any(ul,ol){margin-left:.625em}[dir=ltr] .md-typeset ol li :is(ul,ol),[dir=ltr] .md-typeset ul li :is(ul,ol){margin-left:.625em}[dir=rtl] .md-typeset ol li :-webkit-any(ul,ol),[dir=rtl] .md-typeset ul li :-webkit-any(ul,ol){margin-right:.625em}[dir=rtl] .md-typeset ol li :-moz-any(ul,ol),[dir=rtl] .md-typeset ul li :-moz-any(ul,ol){margin-right:.625em}[dir=rtl] .md-typeset ol li :is(ul,ol),[dir=rtl] .md-typeset ul li :is(ul,ol){margin-right:.625em}.md-typeset ol li :is(ul,ol),.md-typeset ul li :is(ul,ol){margin-bottom:.5em;margin-top:.5em}[dir=ltr] .md-typeset dd{margin-left:1.875em}[dir=rtl] .md-typeset dd{margin-right:1.875em}.md-typeset dd{margin-bottom:1.5em;margin-top:1em}.md-typeset img,.md-typeset svg,.md-typeset video{height:auto;max-width:100%}.md-typeset img[align=left]{margin:1em 1em 1em 0}.md-typeset img[align=right]{margin:1em 0 1em 1em}.md-typeset img[align]:only-child{margin-top:0}.md-typeset img[src$="#gh-dark-mode-only"],.md-typeset img[src$="#only-dark"]{display:none}.md-typeset figure{display:flow-root;margin:1em auto;max-width:100%;text-align:center;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.md-typeset figure img{display:block}.md-typeset figcaption{font-style:italic;margin:1em auto;max-width:24rem}.md-typeset iframe{max-width:100%}.md-typeset table:not([class]){background-color:var(--md-default-bg-color);border:.05rem solid var(--md-typeset-table-color);border-radius:.1rem;display:inline-block;font-size:.64rem;max-width:100%;overflow:auto;touch-action:auto}@media print{.md-typeset table:not([class]){display:table}}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) :-webkit-any(th,td)>:first-child{margin-top:0}.md-typeset table:not([class]) :-moz-any(th,td)>:first-child{margin-top:0}.md-typeset table:not([class]) :is(th,td)>:first-child{margin-top:0}.md-typeset table:not([class]) :-webkit-any(th,td)>:last-child{margin-bottom:0}.md-typeset table:not([class]) :-moz-any(th,td)>:last-child{margin-bottom:0}.md-typeset table:not([class]) :is(th,td)>:last-child{margin-bottom:0}.md-typeset table:not([class]) :-webkit-any(th,td):not([align]){text-align:left}.md-typeset table:not([class]) :-moz-any(th,td):not([align]){text-align:left}.md-typeset table:not([class]) :is(th,td):not([align]){text-align:left}[dir=rtl] .md-typeset table:not([class]) :-webkit-any(th,td):not([align]){text-align:right}[dir=rtl] .md-typeset table:not([class]) :-moz-any(th,td):not([align]){text-align:right}[dir=rtl] .md-typeset table:not([class]) :is(th,td):not([align]){text-align:right}.md-typeset table:not([class]) th{font-weight:700;min-width:5rem;padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) td{border-top:.05rem solid var(--md-typeset-table-color);padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) tbody tr{transition:background-color 125ms}.md-typeset table:not([class]) tbody tr:hover{background-color:rgba(0,0,0,.035);box-shadow:0 .05rem 0 var(--md-default-bg-color) inset}.md-typeset table:not([class]) a{word-break:normal}.md-typeset table th[role=columnheader]{cursor:pointer}[dir=ltr] .md-typeset table th[role=columnheader]:after{margin-left:.5em}[dir=rtl] .md-typeset table th[role=columnheader]:after{margin-right:.5em}.md-typeset table th[role=columnheader]:after{content:"";display:inline-block;height:1.2em;-webkit-mask-image:var(--md-typeset-table-sort-icon);mask-image:var(--md-typeset-table-sort-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.md-typeset table th[role=columnheader]:hover:after{background-color:var(--md-default-fg-color--lighter)}.md-typeset table th[role=columnheader][aria-sort=ascending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--asc);mask-image:var(--md-typeset-table-sort-icon--asc)}.md-typeset table th[role=columnheader][aria-sort=descending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--desc);mask-image:var(--md-typeset-table-sort-icon--desc)}.md-typeset__scrollwrap{margin:1em -.8rem;overflow-x:auto;touch-action:auto}.md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}@media print{.md-typeset__table{display:block}}html .md-typeset__table table{display:table;margin:0;overflow:hidden;width:100%}@media screen and (max-width:44.9375em){.md-content__inner>pre{margin:1em -.8rem}.md-content__inner>pre code{border-radius:0}}.md-banner{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color);overflow:auto}@media print{.md-banner{display:none}}.md-banner--warning{background:var(--md-typeset-mark-color);color:var(--md-default-fg-color)}.md-banner__inner{font-size:.7rem;margin:.6rem auto;padding:0 .8rem}[dir=ltr] .md-banner__button{float:right}[dir=rtl] .md-banner__button{float:left}.md-banner__button{color:inherit;cursor:pointer;transition:opacity .25s}.md-banner__button:hover{opacity:.7}html{font-size:125%;height:100%;overflow-x:hidden}@media screen and (min-width:100em){html{font-size:137.5%}}@media screen and (min-width:125em){html{font-size:150%}}body{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;font-size:.5rem;min-height:100%;position:relative;width:100%}@media print{body{display:block}}@media screen and (max-width:59.9375em){body[data-md-scrolllock]{position:fixed}}.md-grid{margin-left:auto;margin-right:auto;max-width:61rem}.md-container{display:flex;flex-direction:column;flex-grow:1}@media print{.md-container{display:block}}.md-main{flex-grow:1}.md-main__inner{display:flex;height:100%;margin-top:1.5rem}.md-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md-toggle{display:none}.md-option{height:0;opacity:0;position:absolute;width:0}.md-option:checked+label:not([hidden]){display:block}.md-option.focus-visible+label{outline-color:var(--md-accent-fg-color);outline-style:auto}.md-skip{background-color:var(--md-default-fg-color);border-radius:.1rem;color:var(--md-default-bg-color);font-size:.64rem;margin:.5rem;opacity:0;outline-color:var(--md-accent-fg-color);padding:.3rem .5rem;position:fixed;transform:translateY(.4rem);z-index:-1}.md-skip:focus{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 175ms 75ms;z-index:10}@page{margin:25mm}:root{--md-clipboard-icon:url('data:image/svg+xml;charset=utf-8,')}.md-clipboard{border-radius:.1rem;color:var(--md-default-fg-color--lightest);cursor:pointer;height:1.5em;outline-color:var(--md-accent-fg-color);outline-offset:.1rem;position:absolute;right:.5em;top:.5em;transition:color .25s;width:1.5em;z-index:1}@media print{.md-clipboard{display:none}}.md-clipboard:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}:hover>.md-clipboard{color:var(--md-default-fg-color--light)}.md-clipboard:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-clipboard:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-clipboard:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-clipboard:after{background-color:currentcolor;content:"";display:block;height:1.125em;margin:0 auto;-webkit-mask-image:var(--md-clipboard-icon);mask-image:var(--md-clipboard-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:1.125em}.md-clipboard--inline{cursor:pointer}.md-clipboard--inline code{transition:color .25s,background-color .25s}.md-clipboard--inline:-webkit-any(:focus,:hover) code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-clipboard--inline:-moz-any(:focus,:hover) code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-clipboard--inline:is(:focus,:hover) code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}@keyframes consent{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes overlay{0%{opacity:0}to{opacity:1}}.md-consent__overlay{animation:overlay .25s both;-webkit-backdrop-filter:blur(.1rem);backdrop-filter:blur(.1rem);background-color:rgba(0,0,0,.54);height:100%;opacity:1;position:fixed;top:0;width:100%;z-index:5}.md-consent__inner{animation:consent .5s cubic-bezier(.1,.7,.1,1) both;background-color:var(--md-default-bg-color);border:0;border-radius:.1rem;bottom:0;box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2);max-height:100%;overflow:auto;padding:0;position:fixed;width:100%;z-index:5}.md-consent__form{padding:.8rem}.md-consent__settings{display:none;margin:1em 0}input:checked+.md-consent__settings{display:block}.md-consent__controls{margin-bottom:.8rem}.md-typeset .md-consent__controls .md-button{display:inline}@media screen and (max-width:44.9375em){.md-typeset .md-consent__controls .md-button{display:block;margin-top:.4rem;text-align:center;width:100%}}.md-consent label{cursor:pointer}.md-content{flex-grow:1;min-width:0}.md-content__inner{margin:0 .8rem 1.2rem;padding-top:.6rem}@media screen and (min-width:76.25em){[dir=ltr] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}[dir=ltr] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner,[dir=rtl] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-right:1.2rem}[dir=rtl] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}}.md-content__inner:before{content:"";display:block;height:.4rem}.md-content__inner>:last-child{margin-bottom:0}[dir=ltr] .md-content__button{float:right}[dir=rtl] .md-content__button{float:left}[dir=ltr] .md-content__button{margin-left:.4rem}[dir=rtl] .md-content__button{margin-right:.4rem}.md-content__button{margin:.4rem 0;padding:0}@media print{.md-content__button{display:none}}.md-typeset .md-content__button{color:var(--md-default-fg-color--lighter)}.md-content__button svg{display:inline;vertical-align:top}[dir=rtl] .md-content__button svg{transform:scaleX(-1)}[dir=ltr] .md-dialog{right:.8rem}[dir=rtl] .md-dialog{left:.8rem}.md-dialog{background-color:var(--md-default-fg-color);border-radius:.1rem;bottom:.8rem;box-shadow:var(--md-shadow-z3);min-width:11.1rem;opacity:0;padding:.4rem .6rem;pointer-events:none;position:fixed;transform:translateY(100%);transition:transform 0ms .4s,opacity .4s;z-index:4}@media print{.md-dialog{display:none}}.md-dialog--active{opacity:1;pointer-events:auto;transform:translateY(0);transition:transform .4s cubic-bezier(.075,.85,.175,1),opacity .4s}.md-dialog__inner{color:var(--md-default-bg-color);font-size:.7rem}.md-feedback{margin:2em 0 1em;text-align:center}.md-feedback fieldset{border:none;margin:0;padding:0}.md-feedback__title{font-weight:700;margin:1em auto}.md-feedback__inner{position:relative}.md-feedback__list{align-content:baseline;display:flex;flex-wrap:wrap;justify-content:center;position:relative}.md-feedback__list:hover .md-icon:not(:disabled){color:var(--md-default-fg-color--lighter)}:disabled .md-feedback__list{min-height:1.8rem}.md-feedback__icon{color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;margin:0 .1rem;transition:color 125ms}.md-feedback__icon:not(:disabled).md-icon:hover{color:var(--md-accent-fg-color)}.md-feedback__icon:disabled{color:var(--md-default-fg-color--lightest);pointer-events:none}.md-feedback__note{opacity:0;position:relative;transform:translateY(.4rem);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-feedback__note>*{margin:0 auto;max-width:16rem}:disabled .md-feedback__note{opacity:1;transform:translateY(0)}.md-footer{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color)}@media print{.md-footer{display:none}}.md-footer__inner{justify-content:space-between;overflow:auto;padding:.2rem}.md-footer__inner:not([hidden]){display:flex}.md-footer__link{display:flex;flex-grow:0.01;outline-color:var(--md-accent-fg-color);overflow:hidden;padding-bottom:.4rem;padding-top:1.4rem;transition:opacity .25s}.md-footer__link:-webkit-any(:focus,:hover){opacity:.7}.md-footer__link:-moz-any(:focus,:hover){opacity:.7}.md-footer__link:is(:focus,:hover){opacity:.7}[dir=rtl] .md-footer__link svg{transform:scaleX(-1)}@media screen and (max-width:44.9375em){.md-footer__link--prev .md-footer__title{display:none}}[dir=ltr] .md-footer__link--next{margin-left:auto}[dir=rtl] .md-footer__link--next{margin-right:auto}.md-footer__link--next{text-align:right}[dir=rtl] .md-footer__link--next{text-align:left}.md-footer__title{flex-grow:1;font-size:.9rem;line-height:2.4rem;max-width:calc(100% - 2.4rem);padding:0 1rem;position:relative;white-space:nowrap}.md-footer__button{margin:.2rem;padding:.4rem}.md-footer__direction{font-size:.64rem;left:0;margin-top:-1rem;opacity:.7;padding:0 1rem;position:absolute;right:0}.md-footer-meta{background-color:var(--md-footer-bg-color--dark)}.md-footer-meta__inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:.2rem}html .md-footer-meta.md-typeset a{color:var(--md-footer-fg-color--light)}html .md-footer-meta.md-typeset a:-webkit-any(:focus,:hover){color:var(--md-footer-fg-color)}html .md-footer-meta.md-typeset a:-moz-any(:focus,:hover){color:var(--md-footer-fg-color)}html .md-footer-meta.md-typeset a:is(:focus,:hover){color:var(--md-footer-fg-color)}.md-copyright{color:var(--md-footer-fg-color--lighter);font-size:.64rem;margin:auto .6rem;padding:.4rem 0;width:100%}@media screen and (min-width:45em){.md-copyright{width:auto}}.md-copyright__highlight{color:var(--md-footer-fg-color--light)}.md-social{margin:0 .4rem;padding:.2rem 0 .6rem}@media screen and (min-width:45em){.md-social{padding:.6rem 0}}.md-social__link{display:inline-block;height:1.6rem;text-align:center;width:1.6rem}.md-social__link:before{line-height:1.9}.md-social__link svg{fill:currentcolor;max-height:.8rem;vertical-align:-25%}.md-typeset .md-button{border:.1rem solid;border-radius:.1rem;color:var(--md-primary-fg-color);cursor:pointer;display:inline-block;font-weight:700;padding:.625em 2em;transition:color 125ms,background-color 125ms,border-color 125ms}.md-typeset .md-button--primary{background-color:var(--md-primary-fg-color);border-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color)}.md-typeset .md-button:-webkit-any(:focus,:hover){background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-typeset .md-button:-moz-any(:focus,:hover){background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-typeset .md-button:is(:focus,:hover){background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[dir=ltr] .md-typeset .md-input{border-top-left-radius:.1rem}[dir=ltr] .md-typeset .md-input,[dir=rtl] .md-typeset .md-input{border-top-right-radius:.1rem}[dir=rtl] .md-typeset .md-input{border-top-left-radius:.1rem}.md-typeset .md-input{border-bottom:.1rem solid var(--md-default-fg-color--lighter);box-shadow:var(--md-shadow-z1);font-size:.8rem;height:1.8rem;padding:0 .6rem;transition:border .25s,box-shadow .25s}.md-typeset .md-input:-webkit-any(:focus,:hover){border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.md-typeset .md-input:-moz-any(:focus,:hover){border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.md-typeset .md-input:is(:focus,:hover){border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.md-typeset .md-input--stretch{width:100%}.md-header{background-color:var(--md-primary-fg-color);box-shadow:0 0 .2rem transparent,0 .2rem .4rem transparent;color:var(--md-primary-bg-color);display:block;left:0;position:-webkit-sticky;position:sticky;right:0;top:0;z-index:4}@media print{.md-header{display:none}}.md-header[hidden]{transform:translateY(-100%);transition:transform .25s cubic-bezier(.8,0,.6,1),box-shadow .25s}.md-header--shadow{box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2);transition:transform .25s cubic-bezier(.1,.7,.1,1),box-shadow .25s}.md-header__inner{align-items:center;display:flex;padding:0 .2rem}.md-header__button{color:currentcolor;cursor:pointer;margin:.2rem;outline-color:var(--md-accent-fg-color);padding:.4rem;position:relative;transition:opacity .25s;vertical-align:middle;z-index:1}.md-header__button:hover{opacity:.7}.md-header__button:not([hidden]){display:inline-block}.md-header__button:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-header__button.md-logo{margin:.2rem;padding:.4rem}@media screen and (max-width:76.1875em){.md-header__button.md-logo{display:none}}.md-header__button.md-logo :-webkit-any(img,svg){fill:currentcolor;display:block;height:1.2rem;width:auto}.md-header__button.md-logo :-moz-any(img,svg){fill:currentcolor;display:block;height:1.2rem;width:auto}.md-header__button.md-logo :is(img,svg){fill:currentcolor;display:block;height:1.2rem;width:auto}@media screen and (min-width:60em){.md-header__button[for=__search]{display:none}}.no-js .md-header__button[for=__search]{display:none}[dir=rtl] .md-header__button[for=__search] svg{transform:scaleX(-1)}@media screen and (min-width:76.25em){.md-header__button[for=__drawer]{display:none}}.md-header__topic{display:flex;max-width:100%;position:absolute;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;white-space:nowrap}.md-header__topic+.md-header__topic{opacity:0;pointer-events:none;transform:translateX(1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__topic+.md-header__topic{transform:translateX(-1.25rem)}.md-header__topic:first-child{font-weight:700}[dir=ltr] .md-header__title{margin-right:.4rem}[dir=rtl] .md-header__title{margin-left:.4rem}[dir=ltr] .md-header__title{margin-left:1rem}[dir=rtl] .md-header__title{margin-right:1rem}.md-header__title{flex-grow:1;font-size:.9rem;height:2.4rem;line-height:2.4rem}.md-header__title--active .md-header__topic{opacity:0;pointer-events:none;transform:translateX(-1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__title--active .md-header__topic{transform:translateX(1.25rem)}.md-header__title--active .md-header__topic+.md-header__topic{opacity:1;pointer-events:auto;transform:translateX(0);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;z-index:0}.md-header__title>.md-header__ellipsis{height:100%;position:relative;width:100%}.md-header__option{display:flex;flex-shrink:0;max-width:100%;transition:max-width 0ms .25s,opacity .25s .25s;white-space:nowrap}[data-md-toggle=search]:checked~.md-header .md-header__option{max-width:0;opacity:0;transition:max-width 0ms,opacity 0ms}.md-header__source{display:none}@media screen and (min-width:60em){[dir=ltr] .md-header__source{margin-left:1rem}[dir=rtl] .md-header__source{margin-right:1rem}.md-header__source{display:block;max-width:11.7rem;width:11.7rem}}@media screen and (min-width:76.25em){[dir=ltr] .md-header__source{margin-left:1.4rem}[dir=rtl] .md-header__source{margin-right:1.4rem}}:root{--md-nav-icon--prev:url('data:image/svg+xml;charset=utf-8,');--md-nav-icon--next:url('data:image/svg+xml;charset=utf-8,');--md-toc-icon:url('data:image/svg+xml;charset=utf-8,')}.md-nav{font-size:.7rem;line-height:1.3}.md-nav__title{display:block;font-weight:700;overflow:hidden;padding:0 .6rem;text-overflow:ellipsis}.md-nav__title .md-nav__button{display:none}.md-nav__title .md-nav__button img{height:100%;width:auto}.md-nav__title .md-nav__button.md-logo :-webkit-any(img,svg){fill:currentcolor;display:block;height:2.4rem;max-width:100%;object-fit:contain;width:auto}.md-nav__title .md-nav__button.md-logo :-moz-any(img,svg){fill:currentcolor;display:block;height:2.4rem;max-width:100%;object-fit:contain;width:auto}.md-nav__title .md-nav__button.md-logo :is(img,svg){fill:currentcolor;display:block;height:2.4rem;max-width:100%;object-fit:contain;width:auto}.md-nav__list{list-style:none;margin:0;padding:0}.md-nav__item{padding:0 .6rem}[dir=ltr] .md-nav__item .md-nav__item{padding-right:0}[dir=rtl] .md-nav__item .md-nav__item{padding-left:0}.md-nav__link{align-items:center;cursor:pointer;display:flex;justify-content:space-between;margin-top:.625em;overflow:hidden;scroll-snap-align:start;text-overflow:ellipsis;transition:color 125ms}.md-nav__link--passed{color:var(--md-default-fg-color--light)}.md-nav__item .md-nav__link--active{color:var(--md-typeset-a-color)}.md-nav__item .md-nav__link--index [href]{width:100%}.md-nav__link:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav__link:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav__link:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav__link.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-nav--primary .md-nav__link[for=__toc]{display:none}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{background-color:currentcolor;display:block;height:100%;-webkit-mask-image:var(--md-toc-icon);mask-image:var(--md-toc-icon);width:100%}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:none}.md-nav__link>*{cursor:pointer;display:flex}.md-nav__icon{flex-shrink:0}.md-nav__source{display:none}@media screen and (max-width:76.1875em){.md-nav--primary,.md-nav--primary .md-nav{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;height:100%;left:0;position:absolute;right:0;top:0;z-index:1}.md-nav--primary :-webkit-any(.md-nav__title,.md-nav__item){font-size:.8rem;line-height:1.5}.md-nav--primary :-moz-any(.md-nav__title,.md-nav__item){font-size:.8rem;line-height:1.5}.md-nav--primary :is(.md-nav__title,.md-nav__item){font-size:.8rem;line-height:1.5}.md-nav--primary .md-nav__title{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);cursor:pointer;height:5.6rem;line-height:2.4rem;padding:3rem .8rem .2rem;position:relative;white-space:nowrap}[dir=ltr] .md-nav--primary .md-nav__title .md-nav__icon{left:.4rem}[dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon{right:.4rem}.md-nav--primary .md-nav__title .md-nav__icon{display:block;height:1.2rem;margin:.2rem;position:absolute;top:.4rem;width:1.2rem}.md-nav--primary .md-nav__title .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--prev);mask-image:var(--md-nav-icon--prev);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}.md-nav--primary .md-nav__title~.md-nav__list{background-color:var(--md-default-bg-color);box-shadow:0 .05rem 0 var(--md-default-fg-color--lightest) inset;overflow-y:auto;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;touch-action:pan-y}.md-nav--primary .md-nav__title~.md-nav__list>:first-child{border-top:0}.md-nav--primary .md-nav__title[for=__drawer]{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);font-weight:700}.md-nav--primary .md-nav__title .md-logo{display:block;left:.2rem;margin:.2rem;padding:.4rem;position:absolute;right:.2rem;top:.2rem}.md-nav--primary .md-nav__list{flex:1}.md-nav--primary .md-nav__item{border-top:.05rem solid var(--md-default-fg-color--lightest);padding:0}.md-nav--primary .md-nav__item--active>.md-nav__link{color:var(--md-typeset-a-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__link{margin-top:0;padding:.6rem .8rem}[dir=ltr] .md-nav--primary .md-nav__link .md-nav__icon{margin-right:-.2rem}[dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon{margin-left:-.2rem}.md-nav--primary .md-nav__link .md-nav__icon{font-size:1.2rem;height:1.2rem;width:1.2rem}.md-nav--primary .md-nav__link .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-nav--primary .md-nav__icon:after{transform:scale(-1)}.md-nav--primary .md-nav--secondary .md-nav{background-color:initial;position:static}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:1.4rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-right:1.4rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-right:2rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:2.6rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-right:2.6rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:3.2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-right:3.2rem}.md-nav--secondary{background-color:initial}.md-nav__toggle~.md-nav{display:flex;opacity:0;transform:translateX(100%);transition:transform .25s cubic-bezier(.8,0,.6,1),opacity 125ms 50ms}[dir=rtl] .md-nav__toggle~.md-nav{transform:translateX(-100%)}.md-nav__toggle:checked~.md-nav{opacity:1;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 125ms 125ms}.md-nav__toggle:checked~.md-nav>.md-nav__list{-webkit-backface-visibility:hidden;backface-visibility:hidden}}@media screen and (max-width:59.9375em){.md-nav--primary .md-nav__link[for=__toc]{display:flex}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--primary .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:flex}.md-nav__source{background-color:var(--md-primary-fg-color--dark);color:var(--md-primary-bg-color);display:block;padding:0 .2rem}}@media screen and (min-width:60em) and (max-width:76.1875em){.md-nav--integrated .md-nav__link[for=__toc]{display:flex}.md-nav--integrated .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--integrated .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--integrated .md-nav__link[for=__toc]~.md-nav{display:flex}}@media screen and (min-width:60em){.md-nav--secondary .md-nav__title{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);position:-webkit-sticky;position:sticky;top:0;z-index:1}.md-nav--secondary .md-nav__title[for=__toc]{scroll-snap-align:start}.md-nav--secondary .md-nav__title .md-nav__icon{display:none}}@media screen and (min-width:76.25em){.md-nav{transition:max-height .25s cubic-bezier(.86,0,.07,1)}.md-nav--primary .md-nav__title{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);position:-webkit-sticky;position:sticky;top:0;z-index:1}.md-nav--primary .md-nav__title[for=__drawer]{scroll-snap-align:start}.md-nav--primary .md-nav__title .md-nav__icon,.md-nav__toggle~.md-nav{display:none}.md-nav__toggle:-webkit-any(:checked,:indeterminate)~.md-nav{display:block}.md-nav__toggle:-moz-any(:checked,:indeterminate)~.md-nav{display:block}.md-nav__toggle:is(:checked,:indeterminate)~.md-nav{display:block}.md-nav__item--nested>.md-nav>.md-nav__title{display:none}.md-nav__item--section{display:block;margin:1.25em 0}.md-nav__item--section:last-child{margin-bottom:0}.md-nav__item--section>.md-nav__link{font-weight:700;pointer-events:none}.md-nav__item--section>.md-nav__link--index [href]{pointer-events:auto}.md-nav__item--section>.md-nav__link .md-nav__icon{display:none}.md-nav__item--section>.md-nav{display:block}.md-nav__item--section>.md-nav>.md-nav__list>.md-nav__item{padding:0}.md-nav__icon{border-radius:100%;height:.9rem;transition:background-color .25s,transform .25s;width:.9rem}[dir=rtl] .md-nav__icon{transform:rotate(180deg)}.md-nav__icon:hover{background-color:var(--md-accent-fg-color--transparent)}.md-nav__icon:after{background-color:currentcolor;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:-.1rem;width:100%}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link .md-nav__icon,.md-nav__item--nested .md-nav__toggle:indeterminate~.md-nav__link .md-nav__icon{transform:rotate(90deg)}.md-nav--lifted>.md-nav__list>.md-nav__item,.md-nav--lifted>.md-nav__list>.md-nav__item--nested,.md-nav--lifted>.md-nav__title{display:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active{display:block;padding:0}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link{background:var(--md-default-bg-color);box-shadow:0 0 .4rem .4rem var(--md-default-bg-color);font-weight:700;margin-top:0;padding:0 .6rem;position:-webkit-sticky;position:sticky;top:0;z-index:1}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link:not(.md-nav__link--index){pointer-events:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link .md-nav__icon{display:none}.md-nav--lifted .md-nav[data-md-level="1"]{display:block}[dir=ltr] .md-nav--lifted .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{padding-right:.6rem}[dir=rtl] .md-nav--lifted .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{padding-left:.6rem}.md-nav--integrated>.md-nav__list>.md-nav__item--active:not(.md-nav__item--nested){padding:0 .6rem}.md-nav--integrated>.md-nav__list>.md-nav__item--active:not(.md-nav__item--nested)>.md-nav__link{padding:0}[dir=ltr] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-left:.05rem solid var(--md-primary-fg-color)}[dir=rtl] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-right:.05rem solid var(--md-primary-fg-color)}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{display:block;margin-bottom:1.25em}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary>.md-nav__title{display:none}}:root{--md-search-result-icon:url('data:image/svg+xml;charset=utf-8,')}.md-search{position:relative}@media screen and (min-width:60em){.md-search{padding:.2rem 0}}.no-js .md-search{display:none}.md-search__overlay{opacity:0;z-index:1}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__overlay{left:-2.2rem}[dir=rtl] .md-search__overlay{right:-2.2rem}.md-search__overlay{background-color:var(--md-default-bg-color);border-radius:1rem;height:2rem;overflow:hidden;pointer-events:none;position:absolute;top:-1rem;transform-origin:center;transition:transform .3s .1s,opacity .2s .2s;width:2rem}[data-md-toggle=search]:checked~.md-header .md-search__overlay{opacity:1;transition:transform .4s,opacity .1s}}@media screen and (min-width:60em){[dir=ltr] .md-search__overlay{left:0}[dir=rtl] .md-search__overlay{right:0}.md-search__overlay{background-color:rgba(0,0,0,.54);cursor:pointer;height:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0}[data-md-toggle=search]:checked~.md-header .md-search__overlay{height:200vh;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@media screen and (max-width:29.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(45)}}@media screen and (min-width:30em) and (max-width:44.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(60)}}@media screen and (min-width:45em) and (max-width:59.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(75)}}.md-search__inner{-webkit-backface-visibility:hidden;backface-visibility:hidden}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__inner{left:0}[dir=rtl] .md-search__inner{right:0}.md-search__inner{height:0;opacity:0;overflow:hidden;position:fixed;top:0;transform:translateX(5%);transition:width 0ms .3s,height 0ms .3s,transform .15s cubic-bezier(.4,0,.2,1) .15s,opacity .15s .15s;width:0;z-index:2}[dir=rtl] .md-search__inner{transform:translateX(-5%)}[data-md-toggle=search]:checked~.md-header .md-search__inner{height:100%;opacity:1;transform:translateX(0);transition:width 0ms 0ms,height 0ms 0ms,transform .15s cubic-bezier(.1,.7,.1,1) .15s,opacity .15s .15s;width:100%}}@media screen and (min-width:60em){[dir=ltr] .md-search__inner{float:right}[dir=rtl] .md-search__inner{float:left}.md-search__inner{padding:.1rem 0;position:relative;transition:width .25s cubic-bezier(.1,.7,.1,1);width:11.7rem}}@media screen and (min-width:60em) and (max-width:76.1875em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:23.4rem}}@media screen and (min-width:76.25em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:34.4rem}}.md-search__form{background-color:var(--md-default-bg-color);box-shadow:0 0 .6rem transparent;height:2.4rem;position:relative;transition:color .25s,background-color .25s;z-index:2}@media screen and (min-width:60em){.md-search__form{background-color:rgba(0,0,0,.26);border-radius:.1rem;height:1.8rem}.md-search__form:hover{background-color:hsla(0,0%,100%,.12)}}[data-md-toggle=search]:checked~.md-header .md-search__form{background-color:var(--md-default-bg-color);border-radius:.1rem .1rem 0 0;box-shadow:0 0 .6rem rgba(0,0,0,.07);color:var(--md-default-fg-color)}[dir=ltr] .md-search__input{padding-left:3.6rem;padding-right:2.2rem}[dir=rtl] .md-search__input{padding-left:2.2rem;padding-right:3.6rem}.md-search__input{background:transparent;font-size:.9rem;height:100%;position:relative;text-overflow:ellipsis;width:100%;z-index:2}.md-search__input::-ms-input-placeholder{-ms-transition:color .25s;transition:color .25s}.md-search__input::placeholder{transition:color .25s}.md-search__input::-ms-input-placeholder{color:var(--md-default-fg-color--light)}.md-search__input::placeholder,.md-search__input~.md-search__icon{color:var(--md-default-fg-color--light)}.md-search__input::-ms-clear{display:none}@media screen and (max-width:59.9375em){.md-search__input{font-size:.9rem;height:2.4rem;width:100%}}@media screen and (min-width:60em){[dir=ltr] .md-search__input{padding-left:2.2rem}[dir=rtl] .md-search__input{padding-right:2.2rem}.md-search__input{color:inherit;font-size:.8rem}.md-search__input::-ms-input-placeholder{color:var(--md-primary-bg-color--light)}.md-search__input::placeholder{color:var(--md-primary-bg-color--light)}.md-search__input+.md-search__icon{color:var(--md-primary-bg-color)}[data-md-toggle=search]:checked~.md-header .md-search__input{text-overflow:clip}[data-md-toggle=search]:checked~.md-header .md-search__input::-ms-input-placeholder{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{color:var(--md-default-fg-color--light)}}.md-search__icon{cursor:pointer;display:inline-block;height:1.2rem;transition:color .25s,opacity .25s;width:1.2rem}.md-search__icon:hover{opacity:.7}[dir=ltr] .md-search__icon[for=__search]{left:.5rem}[dir=rtl] .md-search__icon[for=__search]{right:.5rem}.md-search__icon[for=__search]{position:absolute;top:.3rem;z-index:2}[dir=rtl] .md-search__icon[for=__search] svg{transform:scaleX(-1)}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__icon[for=__search]{left:.8rem}[dir=rtl] .md-search__icon[for=__search]{right:.8rem}.md-search__icon[for=__search]{top:.6rem}.md-search__icon[for=__search] svg:first-child{display:none}}@media screen and (min-width:60em){.md-search__icon[for=__search]{pointer-events:none}.md-search__icon[for=__search] svg:last-child{display:none}}[dir=ltr] .md-search__options{right:.5rem}[dir=rtl] .md-search__options{left:.5rem}.md-search__options{pointer-events:none;position:absolute;top:.3rem;z-index:2}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__options{right:.8rem}[dir=rtl] .md-search__options{left:.8rem}.md-search__options{top:.6rem}}[dir=ltr] .md-search__options>*{margin-left:.2rem}[dir=rtl] .md-search__options>*{margin-right:.2rem}.md-search__options>*{color:var(--md-default-fg-color--light);opacity:0;transform:scale(.75);transition:transform .15s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-search__options>:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>*{opacity:1;pointer-events:auto;transform:scale(1)}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>:hover{opacity:.7}[dir=ltr] .md-search__suggest{padding-left:3.6rem;padding-right:2.2rem}[dir=rtl] .md-search__suggest{padding-left:2.2rem;padding-right:3.6rem}.md-search__suggest{align-items:center;color:var(--md-default-fg-color--lighter);display:flex;font-size:.9rem;height:100%;opacity:0;position:absolute;top:0;transition:opacity 50ms;white-space:nowrap;width:100%}@media screen and (min-width:60em){[dir=ltr] .md-search__suggest{padding-left:2.2rem}[dir=rtl] .md-search__suggest{padding-right:2.2rem}.md-search__suggest{font-size:.8rem}}[data-md-toggle=search]:checked~.md-header .md-search__suggest{opacity:1;transition:opacity .3s .1s}[dir=ltr] .md-search__output{border-bottom-left-radius:.1rem}[dir=ltr] .md-search__output,[dir=rtl] .md-search__output{border-bottom-right-radius:.1rem}[dir=rtl] .md-search__output{border-bottom-left-radius:.1rem}.md-search__output{overflow:hidden;position:absolute;width:100%;z-index:1}@media screen and (max-width:59.9375em){.md-search__output{bottom:0;top:2.4rem}}@media screen and (min-width:60em){.md-search__output{opacity:0;top:1.9rem;transition:opacity .4s}[data-md-toggle=search]:checked~.md-header .md-search__output{box-shadow:var(--md-shadow-z3);opacity:1}}.md-search__scrollwrap{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);height:100%;overflow-y:auto;touch-action:pan-y}@media (-webkit-max-device-pixel-ratio:1),(max-resolution:1dppx){.md-search__scrollwrap{transform:translateZ(0)}}@media screen and (min-width:60em) and (max-width:76.1875em){.md-search__scrollwrap{width:23.4rem}}@media screen and (min-width:76.25em){.md-search__scrollwrap{width:34.4rem}}@media screen and (min-width:60em){.md-search__scrollwrap{max-height:0;scrollbar-color:var(--md-default-fg-color--lighter) transparent;scrollbar-width:thin}[data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{max-height:75vh}.md-search__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) transparent}.md-search__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-search__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}}.md-search-result{color:var(--md-default-fg-color);word-break:break-word}.md-search-result__meta{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.8rem;padding:0 .8rem;scroll-snap-align:start}@media screen and (min-width:60em){[dir=ltr] .md-search-result__meta{padding-left:2.2rem}[dir=rtl] .md-search-result__meta{padding-right:2.2rem}}.md-search-result__list{list-style:none;margin:0;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.md-search-result__item{box-shadow:0 -.05rem var(--md-default-fg-color--lightest)}.md-search-result__item:first-child{box-shadow:none}.md-search-result__link{display:block;outline:none;scroll-snap-align:start;transition:background-color .25s}.md-search-result__link:-webkit-any(:focus,:hover){background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:-moz-any(:focus,:hover){background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:is(:focus,:hover){background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:last-child p:last-child{margin-bottom:.6rem}.md-search-result__more summary{color:var(--md-typeset-a-color);cursor:pointer;display:block;font-size:.64rem;outline:none;padding:.75em .8rem;scroll-snap-align:start;transition:color .25s,background-color .25s}@media screen and (min-width:60em){[dir=ltr] .md-search-result__more summary{padding-left:2.2rem}[dir=rtl] .md-search-result__more summary{padding-right:2.2rem}}.md-search-result__more summary:-webkit-any(:focus,:hover){background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-search-result__more summary:-moz-any(:focus,:hover){background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-search-result__more summary:is(:focus,:hover){background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-search-result__more summary::marker{display:none}.md-search-result__more summary::-webkit-details-marker{display:none}.md-search-result__more summary~*>*{opacity:.65}.md-search-result__article{overflow:hidden;padding:0 .8rem;position:relative}@media screen and (min-width:60em){[dir=ltr] .md-search-result__article{padding-left:2.2rem}[dir=rtl] .md-search-result__article{padding-right:2.2rem}}.md-search-result__article--document .md-search-result__title{font-size:.8rem;font-weight:400;line-height:1.4;margin:.55rem 0}[dir=ltr] .md-search-result__icon{left:0}[dir=rtl] .md-search-result__icon{right:0}.md-search-result__icon{color:var(--md-default-fg-color--light);height:1.2rem;margin:.5rem;position:absolute;width:1.2rem}@media screen and (max-width:59.9375em){.md-search-result__icon{display:none}}.md-search-result__icon:after{background-color:currentcolor;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-search-result-icon);mask-image:var(--md-search-result-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-search-result__icon:after{transform:scaleX(-1)}.md-search-result__title{font-size:.64rem;font-weight:700;line-height:1.6;margin:.5em 0}.md-search-result__teaser{-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--md-default-fg-color--light);display:-webkit-box;font-size:.64rem;line-height:1.6;margin:.5em 0;max-height:2rem;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width:44.9375em){.md-search-result__teaser{-webkit-line-clamp:3;max-height:3rem}}@media screen and (min-width:60em) and (max-width:76.1875em){.md-search-result__teaser{-webkit-line-clamp:3;max-height:3rem}}.md-search-result__teaser mark{background-color:initial;text-decoration:underline}.md-search-result__terms{font-size:.64rem;font-style:italic;margin:.5em 0}.md-search-result mark{background-color:initial;color:var(--md-accent-fg-color)}.md-select{position:relative;z-index:1}.md-select__inner{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);left:50%;margin-top:.2rem;max-height:0;opacity:0;position:absolute;top:calc(100% - .2rem);transform:translate3d(-50%,.3rem,0);transition:transform .25s 375ms,opacity .25s .25s,max-height 0ms .5s}.md-select:-webkit-any(:focus-within,:hover) .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);-webkit-transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms;transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select:-moz-any(:focus-within,:hover) .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);-moz-transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms;transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select:is(:focus-within,:hover) .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select__inner:after{border-bottom:.2rem solid transparent;border-bottom-color:var(--md-default-bg-color);border-left:.2rem solid transparent;border-right:.2rem solid transparent;border-top:0;content:"";height:0;left:50%;margin-left:-.2rem;margin-top:-.2rem;position:absolute;top:0;width:0}.md-select__list{border-radius:.1rem;font-size:.8rem;list-style-type:none;margin:0;max-height:inherit;overflow:auto;padding:0}.md-select__item{line-height:1.8rem}[dir=ltr] .md-select__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-select__link{padding-left:1.2rem;padding-right:.6rem}.md-select__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:background-color .25s,color .25s;width:100%}.md-select__link:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-select__link:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-select__link:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-select__link:focus{background-color:var(--md-default-fg-color--lightest)}.md-sidebar{align-self:flex-start;flex-shrink:0;padding:1.2rem 0;position:-webkit-sticky;position:sticky;top:2.4rem;width:12.1rem}@media print{.md-sidebar{display:none}}@media screen and (max-width:76.1875em){[dir=ltr] .md-sidebar--primary{left:-12.1rem}[dir=rtl] .md-sidebar--primary{right:-12.1rem}.md-sidebar--primary{background-color:var(--md-default-bg-color);display:block;height:100%;position:fixed;top:0;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;width:12.1rem;z-index:5}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:var(--md-shadow-z3);transform:translateX(12.1rem)}[dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{transform:translateX(-12.1rem)}.md-sidebar--primary .md-sidebar__scrollwrap{bottom:0;left:0;margin:0;overflow:hidden;position:absolute;right:0;-ms-scroll-snap-type:none;scroll-snap-type:none;top:0}}@media screen and (min-width:76.25em){.md-sidebar{height:0}.no-js .md-sidebar{height:auto}.md-header--lifted~.md-container .md-sidebar{top:4.8rem}}.md-sidebar--secondary{display:none;order:2}@media screen and (min-width:60em){.md-sidebar--secondary{height:0}.no-js .md-sidebar--secondary{height:auto}.md-sidebar--secondary:not([hidden]){display:block}.md-sidebar--secondary .md-sidebar__scrollwrap{touch-action:pan-y}}.md-sidebar__scrollwrap{scrollbar-gutter:stable;-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:0 .2rem;overflow-y:auto;scrollbar-color:var(--md-default-fg-color--lighter) transparent;scrollbar-width:thin}.md-sidebar__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) transparent}.md-sidebar__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@supports selector(::-webkit-scrollbar){.md-sidebar__scrollwrap{scrollbar-gutter:auto}[dir=ltr] .md-sidebar__inner{padding-right:calc(100% - 11.5rem)}[dir=rtl] .md-sidebar__inner{padding-left:calc(100% - 11.5rem)}}@media screen and (max-width:76.1875em){.md-overlay{background-color:rgba(0,0,0,.54);height:0;opacity:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0;z-index:5}[data-md-toggle=drawer]:checked~.md-overlay{height:100%;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@keyframes facts{0%{height:0}to{height:.65rem}}@keyframes fact{0%{opacity:0;transform:translateY(100%)}50%{opacity:0}to{opacity:1;transform:translateY(0)}}:root{--md-source-forks-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-repositories-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-stars-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-version-icon:url('data:image/svg+xml;charset=utf-8,')}.md-source{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;font-size:.65rem;line-height:1.2;outline-color:var(--md-accent-fg-color);transition:opacity .25s;white-space:nowrap}.md-source:hover{opacity:.7}.md-source__icon{display:inline-block;height:2.4rem;vertical-align:middle;width:2rem}[dir=ltr] .md-source__icon svg{margin-left:.6rem}[dir=rtl] .md-source__icon svg{margin-right:.6rem}.md-source__icon svg{margin-top:.6rem}[dir=ltr] .md-source__icon+.md-source__repository{margin-left:-2rem}[dir=rtl] .md-source__icon+.md-source__repository{margin-right:-2rem}[dir=ltr] .md-source__icon+.md-source__repository{padding-left:2rem}[dir=rtl] .md-source__icon+.md-source__repository{padding-right:2rem}[dir=ltr] .md-source__repository{margin-left:.6rem}[dir=rtl] .md-source__repository{margin-right:.6rem}.md-source__repository{display:inline-block;max-width:calc(100% - 1.2rem);overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.md-source__facts{display:flex;font-size:.55rem;gap:.4rem;list-style-type:none;margin:.1rem 0 0;opacity:.75;overflow:hidden;padding:0;width:100%}.md-source__repository--active .md-source__facts{animation:facts .25s ease-in}.md-source__fact{overflow:hidden;text-overflow:ellipsis}.md-source__repository--active .md-source__fact{animation:fact .4s ease-out}[dir=ltr] .md-source__fact:before{margin-right:.1rem}[dir=rtl] .md-source__fact:before{margin-left:.1rem}.md-source__fact:before{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:text-top;width:.6rem}.md-source__fact:nth-child(1n+2){flex-shrink:0}.md-source__fact--version:before{-webkit-mask-image:var(--md-source-version-icon);mask-image:var(--md-source-version-icon)}.md-source__fact--stars:before{-webkit-mask-image:var(--md-source-stars-icon);mask-image:var(--md-source-stars-icon)}.md-source__fact--forks:before{-webkit-mask-image:var(--md-source-forks-icon);mask-image:var(--md-source-forks-icon)}.md-source__fact--repositories:before{-webkit-mask-image:var(--md-source-repositories-icon);mask-image:var(--md-source-repositories-icon)}.md-tabs{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);display:block;line-height:1.3;overflow:auto;width:100%;z-index:3}@media print{.md-tabs{display:none}}@media screen and (max-width:76.1875em){.md-tabs{display:none}}.md-tabs[hidden]{pointer-events:none}[dir=ltr] .md-tabs__list{margin-left:.2rem}[dir=rtl] .md-tabs__list{margin-right:.2rem}.md-tabs__list{contain:content;list-style:none;margin:0;padding:0;white-space:nowrap}.md-tabs__item{display:inline-block;height:2.4rem;padding-left:.6rem;padding-right:.6rem}.md-tabs__link{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;font-size:.7rem;margin-top:.8rem;opacity:.7;outline-color:var(--md-accent-fg-color);outline-offset:.2rem;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s}.md-tabs__link--active,.md-tabs__link:-webkit-any(:focus,:hover){color:inherit;opacity:1}.md-tabs__link--active,.md-tabs__link:-moz-any(:focus,:hover){color:inherit;opacity:1}.md-tabs__link--active,.md-tabs__link:is(:focus,:hover){color:inherit;opacity:1}.md-tabs__item:nth-child(2) .md-tabs__link{transition-delay:20ms}.md-tabs__item:nth-child(3) .md-tabs__link{transition-delay:40ms}.md-tabs__item:nth-child(4) .md-tabs__link{transition-delay:60ms}.md-tabs__item:nth-child(5) .md-tabs__link{transition-delay:80ms}.md-tabs__item:nth-child(6) .md-tabs__link{transition-delay:.1s}.md-tabs__item:nth-child(7) .md-tabs__link{transition-delay:.12s}.md-tabs__item:nth-child(8) .md-tabs__link{transition-delay:.14s}.md-tabs__item:nth-child(9) .md-tabs__link{transition-delay:.16s}.md-tabs__item:nth-child(10) .md-tabs__link{transition-delay:.18s}.md-tabs__item:nth-child(11) .md-tabs__link{transition-delay:.2s}.md-tabs__item:nth-child(12) .md-tabs__link{transition-delay:.22s}.md-tabs__item:nth-child(13) .md-tabs__link{transition-delay:.24s}.md-tabs__item:nth-child(14) .md-tabs__link{transition-delay:.26s}.md-tabs__item:nth-child(15) .md-tabs__link{transition-delay:.28s}.md-tabs__item:nth-child(16) .md-tabs__link{transition-delay:.3s}.md-tabs[hidden] .md-tabs__link{opacity:0;transform:translateY(50%);transition:transform 0ms .1s,opacity .1s}:root{--md-tag-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .md-tags{margin-bottom:.75em;margin-top:-.125em}[dir=ltr] .md-typeset .md-tag{margin-right:.5em}[dir=rtl] .md-typeset .md-tag{margin-left:.5em}.md-typeset .md-tag{background:var(--md-default-fg-color--lightest);border-radius:2.4rem;display:inline-block;font-size:.64rem;font-weight:700;letter-spacing:normal;line-height:1.6;margin-bottom:.5em;padding:.3125em .9375em;vertical-align:middle}.md-typeset .md-tag[href]{-webkit-tap-highlight-color:transparent;color:inherit;outline:none;transition:color 125ms,background-color 125ms}.md-typeset .md-tag[href]:focus,.md-typeset .md-tag[href]:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[id]>.md-typeset .md-tag{vertical-align:text-top}.md-typeset .md-tag-icon:before{background-color:var(--md-default-fg-color--lighter);content:"";display:inline-block;height:1.2em;margin-right:.4em;-webkit-mask-image:var(--md-tag-icon);mask-image:var(--md-tag-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.md-typeset .md-tag-icon:-webkit-any(a:focus,a:hover):before{background-color:var(--md-accent-bg-color)}.md-typeset .md-tag-icon:-moz-any(a:focus,a:hover):before{background-color:var(--md-accent-bg-color)}.md-typeset .md-tag-icon:is(a:focus,a:hover):before{background-color:var(--md-accent-bg-color)}@keyframes pulse{0%{box-shadow:0 0 0 0 var(--md-default-fg-color--lightest);transform:scale(.95)}75%{box-shadow:0 0 0 .625em transparent;transform:scale(1)}to{box-shadow:0 0 0 0 transparent;transform:scale(.95)}}:root{--md-tooltip-width:20rem}.md-tooltip{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);font-family:var(--md-text-font-family);left:clamp(var(--md-tooltip-0,0rem) + .8rem,var(--md-tooltip-x),100vw + var(--md-tooltip-0,0rem) + .8rem - var(--md-tooltip-width) - 2 * .8rem);max-width:calc(100vw - 1.6rem);opacity:0;position:absolute;top:var(--md-tooltip-y);transform:translateY(-.4rem);transition:transform 0ms .25s,opacity .25s,z-index .25s;width:var(--md-tooltip-width);z-index:0}.md-tooltip--active{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,z-index 0ms;z-index:2}:-webkit-any(.focus-visible>.md-tooltip,.md-tooltip:target){outline:var(--md-accent-fg-color) auto}:-moz-any(.focus-visible>.md-tooltip,.md-tooltip:target){outline:var(--md-accent-fg-color) auto}:is(.focus-visible>.md-tooltip,.md-tooltip:target){outline:var(--md-accent-fg-color) auto}.md-tooltip__inner{font-size:.64rem;padding:.8rem}.md-tooltip__inner.md-typeset>:first-child{margin-top:0}.md-tooltip__inner.md-typeset>:last-child{margin-bottom:0}.md-annotation{font-weight:400;outline:none;white-space:normal}[dir=rtl] .md-annotation{direction:rtl}.md-annotation:not([hidden]){display:inline-block;line-height:1.325}.md-annotation__index{cursor:pointer;font-family:var(--md-code-font-family);font-size:.85em;margin:0 1ch;outline:none;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:0}.md-annotation .md-annotation__index{color:#fff;transition:z-index .25s}.md-annotation .md-annotation__index:-webkit-any(:focus,:hover){color:#fff}.md-annotation .md-annotation__index:-moz-any(:focus,:hover){color:#fff}.md-annotation .md-annotation__index:is(:focus,:hover){color:#fff}.md-annotation__index:after{background-color:var(--md-default-fg-color--lighter);border-radius:2ch;content:"";height:2.2ch;left:-.125em;margin:0 -.4ch;padding:0 .4ch;position:absolute;top:0;transition:color .25s,background-color .25s;width:calc(100% + 1.2ch);width:max(2.2ch,100% + 1.2ch);z-index:-1}@media not all and (prefers-reduced-motion){[data-md-visible]>.md-annotation__index:after{animation:pulse 2s infinite}}.md-tooltip--active+.md-annotation__index:after{animation:none;transition:color .25s,background-color .25s}code .md-annotation__index{font-family:var(--md-code-font-family);font-size:inherit}:-webkit-any(.md-tooltip--active+.md-annotation__index,:hover>.md-annotation__index){color:var(--md-accent-bg-color)}:-moz-any(.md-tooltip--active+.md-annotation__index,:hover>.md-annotation__index){color:var(--md-accent-bg-color)}:is(.md-tooltip--active+.md-annotation__index,:hover>.md-annotation__index){color:var(--md-accent-bg-color)}:-webkit-any(.md-tooltip--active+.md-annotation__index,:hover>.md-annotation__index):after{background-color:var(--md-accent-fg-color)}:-moz-any(.md-tooltip--active+.md-annotation__index,:hover>.md-annotation__index):after{background-color:var(--md-accent-fg-color)}:is(.md-tooltip--active+.md-annotation__index,:hover>.md-annotation__index):after{background-color:var(--md-accent-fg-color)}.md-tooltip--active+.md-annotation__index{animation:none;transition:none;z-index:2}.md-annotation__index [data-md-annotation-id]{display:inline-block;line-height:90%}.md-annotation__index [data-md-annotation-id]:before{content:attr(data-md-annotation-id);display:inline-block;padding-bottom:.1em;transform:scale(1.15);transition:transform .4s cubic-bezier(.1,.7,.1,1);vertical-align:.065em}@media not print{.md-annotation__index [data-md-annotation-id]:before{content:"+"}:focus-within>.md-annotation__index [data-md-annotation-id]:before{transform:scale(1.25) rotate(45deg)}}[dir=ltr] .md-top{margin-left:50%}[dir=rtl] .md-top{margin-right:50%}.md-top{background-color:var(--md-default-bg-color);border-radius:1.6rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color--light);display:block;font-size:.7rem;outline:none;padding:.4rem .8rem;position:fixed;top:3.2rem;transform:translate(-50%);transition:color 125ms,background-color 125ms,transform 125ms cubic-bezier(.4,0,.2,1),opacity 125ms;z-index:2}@media print{.md-top{display:none}}[dir=rtl] .md-top{transform:translate(50%)}.md-top[hidden]{opacity:0;pointer-events:none;transform:translate(-50%,.2rem);transition-duration:0ms}[dir=rtl] .md-top[hidden]{transform:translate(50%,.2rem)}.md-top:-webkit-any(:focus,:hover){background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-top:-moz-any(:focus,:hover){background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-top:is(:focus,:hover){background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-top svg{display:inline-block;vertical-align:-.5em}@keyframes hoverfix{0%{pointer-events:none}}:root{--md-version-icon:url('data:image/svg+xml;charset=utf-8,')}.md-version{flex-shrink:0;font-size:.8rem;height:2.4rem}[dir=ltr] .md-version__current{margin-left:1.4rem;margin-right:.4rem}[dir=rtl] .md-version__current{margin-left:.4rem;margin-right:1.4rem}.md-version__current{color:inherit;cursor:pointer;outline:none;position:relative;top:.05rem}[dir=ltr] .md-version__current:after{margin-left:.4rem}[dir=rtl] .md-version__current:after{margin-right:.4rem}.md-version__current:after{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-image:var(--md-version-icon);mask-image:var(--md-version-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.4rem}.md-version__list{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);list-style-type:none;margin:.2rem .8rem;max-height:0;opacity:0;overflow:auto;padding:0;position:absolute;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;top:.15rem;transition:max-height 0ms .5s,opacity .25s .25s;z-index:3}.md-version:-webkit-any(:focus-within,:hover) .md-version__list{max-height:10rem;opacity:1;-webkit-transition:max-height 0ms,opacity .25s;transition:max-height 0ms,opacity .25s}.md-version:-moz-any(:focus-within,:hover) .md-version__list{max-height:10rem;opacity:1;-moz-transition:max-height 0ms,opacity .25s;transition:max-height 0ms,opacity .25s}.md-version:is(:focus-within,:hover) .md-version__list{max-height:10rem;opacity:1;transition:max-height 0ms,opacity .25s}@media (pointer:coarse){.md-version:hover .md-version__list{animation:hoverfix .25s forwards}.md-version:focus-within .md-version__list{animation:none}}.md-version__item{line-height:1.8rem}[dir=ltr] .md-version__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-version__link{padding-left:1.2rem;padding-right:.6rem}.md-version__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:color .25s,background-color .25s;white-space:nowrap;width:100%}.md-version__link:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-version__link:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-version__link:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-version__link:focus{background-color:var(--md-default-fg-color--lightest)}:root{--md-admonition-icon--note:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--abstract:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--info:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--tip:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--success:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--question:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--warning:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--failure:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--danger:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--bug:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--quote:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .admonition,.md-typeset details{background-color:var(--md-admonition-bg-color);border:.05rem solid #448aff;border-radius:.2rem;box-shadow:var(--md-shadow-z1);color:var(--md-admonition-fg-color);display:flow-root;font-size:.64rem;margin:1.5625em 0;padding:0 .6rem;page-break-inside:avoid}@media print{.md-typeset .admonition,.md-typeset details{box-shadow:none}}.md-typeset .admonition>*,.md-typeset details>*{box-sizing:border-box}.md-typeset .admonition :-webkit-any(.admonition,details),.md-typeset details :-webkit-any(.admonition,details){margin-bottom:1em;margin-top:1em}.md-typeset .admonition :-moz-any(.admonition,details),.md-typeset details :-moz-any(.admonition,details){margin-bottom:1em;margin-top:1em}.md-typeset .admonition :is(.admonition,details),.md-typeset details :is(.admonition,details){margin-bottom:1em;margin-top:1em}.md-typeset .admonition .md-typeset__scrollwrap,.md-typeset details .md-typeset__scrollwrap{margin:1em -.6rem}.md-typeset .admonition .md-typeset__table,.md-typeset details .md-typeset__table{padding:0 .6rem}.md-typeset .admonition>.tabbed-set:only-child,.md-typeset details>.tabbed-set:only-child{margin-top:0}html .md-typeset .admonition>:last-child,html .md-typeset details>:last-child{margin-bottom:.6rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{padding-left:2rem;padding-right:.6rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{padding-left:.6rem;padding-right:2rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{border-left-width:.2rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-right-width:.2rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}[dir=ltr] .md-typeset .admonition-title,[dir=ltr] .md-typeset summary,[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}[dir=rtl] .md-typeset .admonition-title,[dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.md-typeset .admonition-title,.md-typeset summary{background-color:rgba(68,138,255,.1);border:none;font-weight:700;margin:0 -.6rem;padding-bottom:.4rem;padding-top:.4rem;position:relative}html .md-typeset .admonition-title:last-child,html .md-typeset summary:last-child{margin-bottom:0}[dir=ltr] .md-typeset .admonition-title:before,[dir=ltr] .md-typeset summary:before{left:.6rem}[dir=rtl] .md-typeset .admonition-title:before,[dir=rtl] .md-typeset summary:before{right:.6rem}.md-typeset .admonition-title:before,.md-typeset summary:before{background-color:#448aff;content:"";height:1rem;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;width:1rem}.md-typeset .admonition-title code,.md-typeset summary code{box-shadow:0 0 0 .05rem var(--md-default-fg-color--lightest)}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.note){border-color:#448aff}.md-typeset :-moz-any(.admonition,details):-moz-any(.note){border-color:#448aff}.md-typeset :is(.admonition,details):is(.note){border-color:#448aff}.md-typeset :-webkit-any(.note)>:-webkit-any(.admonition-title,summary){background-color:rgba(68,138,255,.1)}.md-typeset :-moz-any(.note)>:-moz-any(.admonition-title,summary){background-color:rgba(68,138,255,.1)}.md-typeset :is(.note)>:is(.admonition-title,summary){background-color:rgba(68,138,255,.1)}.md-typeset :-webkit-any(.note)>:-webkit-any(.admonition-title,summary):before{background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note)}.md-typeset :-moz-any(.note)>:-moz-any(.admonition-title,summary):before{background-color:#448aff;mask-image:var(--md-admonition-icon--note)}.md-typeset :is(.note)>:is(.admonition-title,summary):before{background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note)}.md-typeset :-webkit-any(.note)>:-webkit-any(.admonition-title,summary):after{color:#448aff}.md-typeset :-moz-any(.note)>:-moz-any(.admonition-title,summary):after{color:#448aff}.md-typeset :is(.note)>:is(.admonition-title,summary):after{color:#448aff}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.abstract,.summary,.tldr){border-color:#00b0ff}.md-typeset :-moz-any(.admonition,details):-moz-any(.abstract,.summary,.tldr){border-color:#00b0ff}.md-typeset :is(.admonition,details):is(.abstract,.summary,.tldr){border-color:#00b0ff}.md-typeset :-webkit-any(.abstract,.summary,.tldr)>:-webkit-any(.admonition-title,summary){background-color:rgba(0,176,255,.1)}.md-typeset :-moz-any(.abstract,.summary,.tldr)>:-moz-any(.admonition-title,summary){background-color:rgba(0,176,255,.1)}.md-typeset :is(.abstract,.summary,.tldr)>:is(.admonition-title,summary){background-color:rgba(0,176,255,.1)}.md-typeset :-webkit-any(.abstract,.summary,.tldr)>:-webkit-any(.admonition-title,summary):before{background-color:#00b0ff;-webkit-mask-image:var(--md-admonition-icon--abstract);mask-image:var(--md-admonition-icon--abstract)}.md-typeset :-moz-any(.abstract,.summary,.tldr)>:-moz-any(.admonition-title,summary):before{background-color:#00b0ff;mask-image:var(--md-admonition-icon--abstract)}.md-typeset :is(.abstract,.summary,.tldr)>:is(.admonition-title,summary):before{background-color:#00b0ff;-webkit-mask-image:var(--md-admonition-icon--abstract);mask-image:var(--md-admonition-icon--abstract)}.md-typeset :-webkit-any(.abstract,.summary,.tldr)>:-webkit-any(.admonition-title,summary):after{color:#00b0ff}.md-typeset :-moz-any(.abstract,.summary,.tldr)>:-moz-any(.admonition-title,summary):after{color:#00b0ff}.md-typeset :is(.abstract,.summary,.tldr)>:is(.admonition-title,summary):after{color:#00b0ff}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.info,.todo){border-color:#00b8d4}.md-typeset :-moz-any(.admonition,details):-moz-any(.info,.todo){border-color:#00b8d4}.md-typeset :is(.admonition,details):is(.info,.todo){border-color:#00b8d4}.md-typeset :-webkit-any(.info,.todo)>:-webkit-any(.admonition-title,summary){background-color:rgba(0,184,212,.1)}.md-typeset :-moz-any(.info,.todo)>:-moz-any(.admonition-title,summary){background-color:rgba(0,184,212,.1)}.md-typeset :is(.info,.todo)>:is(.admonition-title,summary){background-color:rgba(0,184,212,.1)}.md-typeset :-webkit-any(.info,.todo)>:-webkit-any(.admonition-title,summary):before{background-color:#00b8d4;-webkit-mask-image:var(--md-admonition-icon--info);mask-image:var(--md-admonition-icon--info)}.md-typeset :-moz-any(.info,.todo)>:-moz-any(.admonition-title,summary):before{background-color:#00b8d4;mask-image:var(--md-admonition-icon--info)}.md-typeset :is(.info,.todo)>:is(.admonition-title,summary):before{background-color:#00b8d4;-webkit-mask-image:var(--md-admonition-icon--info);mask-image:var(--md-admonition-icon--info)}.md-typeset :-webkit-any(.info,.todo)>:-webkit-any(.admonition-title,summary):after{color:#00b8d4}.md-typeset :-moz-any(.info,.todo)>:-moz-any(.admonition-title,summary):after{color:#00b8d4}.md-typeset :is(.info,.todo)>:is(.admonition-title,summary):after{color:#00b8d4}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.tip,.hint,.important){border-color:#00bfa5}.md-typeset :-moz-any(.admonition,details):-moz-any(.tip,.hint,.important){border-color:#00bfa5}.md-typeset :is(.admonition,details):is(.tip,.hint,.important){border-color:#00bfa5}.md-typeset :-webkit-any(.tip,.hint,.important)>:-webkit-any(.admonition-title,summary){background-color:rgba(0,191,165,.1)}.md-typeset :-moz-any(.tip,.hint,.important)>:-moz-any(.admonition-title,summary){background-color:rgba(0,191,165,.1)}.md-typeset :is(.tip,.hint,.important)>:is(.admonition-title,summary){background-color:rgba(0,191,165,.1)}.md-typeset :-webkit-any(.tip,.hint,.important)>:-webkit-any(.admonition-title,summary):before{background-color:#00bfa5;-webkit-mask-image:var(--md-admonition-icon--tip);mask-image:var(--md-admonition-icon--tip)}.md-typeset :-moz-any(.tip,.hint,.important)>:-moz-any(.admonition-title,summary):before{background-color:#00bfa5;mask-image:var(--md-admonition-icon--tip)}.md-typeset :is(.tip,.hint,.important)>:is(.admonition-title,summary):before{background-color:#00bfa5;-webkit-mask-image:var(--md-admonition-icon--tip);mask-image:var(--md-admonition-icon--tip)}.md-typeset :-webkit-any(.tip,.hint,.important)>:-webkit-any(.admonition-title,summary):after{color:#00bfa5}.md-typeset :-moz-any(.tip,.hint,.important)>:-moz-any(.admonition-title,summary):after{color:#00bfa5}.md-typeset :is(.tip,.hint,.important)>:is(.admonition-title,summary):after{color:#00bfa5}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.success,.check,.done){border-color:#00c853}.md-typeset :-moz-any(.admonition,details):-moz-any(.success,.check,.done){border-color:#00c853}.md-typeset :is(.admonition,details):is(.success,.check,.done){border-color:#00c853}.md-typeset :-webkit-any(.success,.check,.done)>:-webkit-any(.admonition-title,summary){background-color:rgba(0,200,83,.1)}.md-typeset :-moz-any(.success,.check,.done)>:-moz-any(.admonition-title,summary){background-color:rgba(0,200,83,.1)}.md-typeset :is(.success,.check,.done)>:is(.admonition-title,summary){background-color:rgba(0,200,83,.1)}.md-typeset :-webkit-any(.success,.check,.done)>:-webkit-any(.admonition-title,summary):before{background-color:#00c853;-webkit-mask-image:var(--md-admonition-icon--success);mask-image:var(--md-admonition-icon--success)}.md-typeset :-moz-any(.success,.check,.done)>:-moz-any(.admonition-title,summary):before{background-color:#00c853;mask-image:var(--md-admonition-icon--success)}.md-typeset :is(.success,.check,.done)>:is(.admonition-title,summary):before{background-color:#00c853;-webkit-mask-image:var(--md-admonition-icon--success);mask-image:var(--md-admonition-icon--success)}.md-typeset :-webkit-any(.success,.check,.done)>:-webkit-any(.admonition-title,summary):after{color:#00c853}.md-typeset :-moz-any(.success,.check,.done)>:-moz-any(.admonition-title,summary):after{color:#00c853}.md-typeset :is(.success,.check,.done)>:is(.admonition-title,summary):after{color:#00c853}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.question,.help,.faq){border-color:#64dd17}.md-typeset :-moz-any(.admonition,details):-moz-any(.question,.help,.faq){border-color:#64dd17}.md-typeset :is(.admonition,details):is(.question,.help,.faq){border-color:#64dd17}.md-typeset :-webkit-any(.question,.help,.faq)>:-webkit-any(.admonition-title,summary){background-color:rgba(100,221,23,.1)}.md-typeset :-moz-any(.question,.help,.faq)>:-moz-any(.admonition-title,summary){background-color:rgba(100,221,23,.1)}.md-typeset :is(.question,.help,.faq)>:is(.admonition-title,summary){background-color:rgba(100,221,23,.1)}.md-typeset :-webkit-any(.question,.help,.faq)>:-webkit-any(.admonition-title,summary):before{background-color:#64dd17;-webkit-mask-image:var(--md-admonition-icon--question);mask-image:var(--md-admonition-icon--question)}.md-typeset :-moz-any(.question,.help,.faq)>:-moz-any(.admonition-title,summary):before{background-color:#64dd17;mask-image:var(--md-admonition-icon--question)}.md-typeset :is(.question,.help,.faq)>:is(.admonition-title,summary):before{background-color:#64dd17;-webkit-mask-image:var(--md-admonition-icon--question);mask-image:var(--md-admonition-icon--question)}.md-typeset :-webkit-any(.question,.help,.faq)>:-webkit-any(.admonition-title,summary):after{color:#64dd17}.md-typeset :-moz-any(.question,.help,.faq)>:-moz-any(.admonition-title,summary):after{color:#64dd17}.md-typeset :is(.question,.help,.faq)>:is(.admonition-title,summary):after{color:#64dd17}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.warning,.caution,.attention){border-color:#ff9100}.md-typeset :-moz-any(.admonition,details):-moz-any(.warning,.caution,.attention){border-color:#ff9100}.md-typeset :is(.admonition,details):is(.warning,.caution,.attention){border-color:#ff9100}.md-typeset :-webkit-any(.warning,.caution,.attention)>:-webkit-any(.admonition-title,summary){background-color:rgba(255,145,0,.1)}.md-typeset :-moz-any(.warning,.caution,.attention)>:-moz-any(.admonition-title,summary){background-color:rgba(255,145,0,.1)}.md-typeset :is(.warning,.caution,.attention)>:is(.admonition-title,summary){background-color:rgba(255,145,0,.1)}.md-typeset :-webkit-any(.warning,.caution,.attention)>:-webkit-any(.admonition-title,summary):before{background-color:#ff9100;-webkit-mask-image:var(--md-admonition-icon--warning);mask-image:var(--md-admonition-icon--warning)}.md-typeset :-moz-any(.warning,.caution,.attention)>:-moz-any(.admonition-title,summary):before{background-color:#ff9100;mask-image:var(--md-admonition-icon--warning)}.md-typeset :is(.warning,.caution,.attention)>:is(.admonition-title,summary):before{background-color:#ff9100;-webkit-mask-image:var(--md-admonition-icon--warning);mask-image:var(--md-admonition-icon--warning)}.md-typeset :-webkit-any(.warning,.caution,.attention)>:-webkit-any(.admonition-title,summary):after{color:#ff9100}.md-typeset :-moz-any(.warning,.caution,.attention)>:-moz-any(.admonition-title,summary):after{color:#ff9100}.md-typeset :is(.warning,.caution,.attention)>:is(.admonition-title,summary):after{color:#ff9100}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.failure,.fail,.missing){border-color:#ff5252}.md-typeset :-moz-any(.admonition,details):-moz-any(.failure,.fail,.missing){border-color:#ff5252}.md-typeset :is(.admonition,details):is(.failure,.fail,.missing){border-color:#ff5252}.md-typeset :-webkit-any(.failure,.fail,.missing)>:-webkit-any(.admonition-title,summary){background-color:rgba(255,82,82,.1)}.md-typeset :-moz-any(.failure,.fail,.missing)>:-moz-any(.admonition-title,summary){background-color:rgba(255,82,82,.1)}.md-typeset :is(.failure,.fail,.missing)>:is(.admonition-title,summary){background-color:rgba(255,82,82,.1)}.md-typeset :-webkit-any(.failure,.fail,.missing)>:-webkit-any(.admonition-title,summary):before{background-color:#ff5252;-webkit-mask-image:var(--md-admonition-icon--failure);mask-image:var(--md-admonition-icon--failure)}.md-typeset :-moz-any(.failure,.fail,.missing)>:-moz-any(.admonition-title,summary):before{background-color:#ff5252;mask-image:var(--md-admonition-icon--failure)}.md-typeset :is(.failure,.fail,.missing)>:is(.admonition-title,summary):before{background-color:#ff5252;-webkit-mask-image:var(--md-admonition-icon--failure);mask-image:var(--md-admonition-icon--failure)}.md-typeset :-webkit-any(.failure,.fail,.missing)>:-webkit-any(.admonition-title,summary):after{color:#ff5252}.md-typeset :-moz-any(.failure,.fail,.missing)>:-moz-any(.admonition-title,summary):after{color:#ff5252}.md-typeset :is(.failure,.fail,.missing)>:is(.admonition-title,summary):after{color:#ff5252}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.danger,.error){border-color:#ff1744}.md-typeset :-moz-any(.admonition,details):-moz-any(.danger,.error){border-color:#ff1744}.md-typeset :is(.admonition,details):is(.danger,.error){border-color:#ff1744}.md-typeset :-webkit-any(.danger,.error)>:-webkit-any(.admonition-title,summary){background-color:rgba(255,23,68,.1)}.md-typeset :-moz-any(.danger,.error)>:-moz-any(.admonition-title,summary){background-color:rgba(255,23,68,.1)}.md-typeset :is(.danger,.error)>:is(.admonition-title,summary){background-color:rgba(255,23,68,.1)}.md-typeset :-webkit-any(.danger,.error)>:-webkit-any(.admonition-title,summary):before{background-color:#ff1744;-webkit-mask-image:var(--md-admonition-icon--danger);mask-image:var(--md-admonition-icon--danger)}.md-typeset :-moz-any(.danger,.error)>:-moz-any(.admonition-title,summary):before{background-color:#ff1744;mask-image:var(--md-admonition-icon--danger)}.md-typeset :is(.danger,.error)>:is(.admonition-title,summary):before{background-color:#ff1744;-webkit-mask-image:var(--md-admonition-icon--danger);mask-image:var(--md-admonition-icon--danger)}.md-typeset :-webkit-any(.danger,.error)>:-webkit-any(.admonition-title,summary):after{color:#ff1744}.md-typeset :-moz-any(.danger,.error)>:-moz-any(.admonition-title,summary):after{color:#ff1744}.md-typeset :is(.danger,.error)>:is(.admonition-title,summary):after{color:#ff1744}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.bug){border-color:#f50057}.md-typeset :-moz-any(.admonition,details):-moz-any(.bug){border-color:#f50057}.md-typeset :is(.admonition,details):is(.bug){border-color:#f50057}.md-typeset :-webkit-any(.bug)>:-webkit-any(.admonition-title,summary){background-color:rgba(245,0,87,.1)}.md-typeset :-moz-any(.bug)>:-moz-any(.admonition-title,summary){background-color:rgba(245,0,87,.1)}.md-typeset :is(.bug)>:is(.admonition-title,summary){background-color:rgba(245,0,87,.1)}.md-typeset :-webkit-any(.bug)>:-webkit-any(.admonition-title,summary):before{background-color:#f50057;-webkit-mask-image:var(--md-admonition-icon--bug);mask-image:var(--md-admonition-icon--bug)}.md-typeset :-moz-any(.bug)>:-moz-any(.admonition-title,summary):before{background-color:#f50057;mask-image:var(--md-admonition-icon--bug)}.md-typeset :is(.bug)>:is(.admonition-title,summary):before{background-color:#f50057;-webkit-mask-image:var(--md-admonition-icon--bug);mask-image:var(--md-admonition-icon--bug)}.md-typeset :-webkit-any(.bug)>:-webkit-any(.admonition-title,summary):after{color:#f50057}.md-typeset :-moz-any(.bug)>:-moz-any(.admonition-title,summary):after{color:#f50057}.md-typeset :is(.bug)>:is(.admonition-title,summary):after{color:#f50057}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.example){border-color:#7c4dff}.md-typeset :-moz-any(.admonition,details):-moz-any(.example){border-color:#7c4dff}.md-typeset :is(.admonition,details):is(.example){border-color:#7c4dff}.md-typeset :-webkit-any(.example)>:-webkit-any(.admonition-title,summary){background-color:rgba(124,77,255,.1)}.md-typeset :-moz-any(.example)>:-moz-any(.admonition-title,summary){background-color:rgba(124,77,255,.1)}.md-typeset :is(.example)>:is(.admonition-title,summary){background-color:rgba(124,77,255,.1)}.md-typeset :-webkit-any(.example)>:-webkit-any(.admonition-title,summary):before{background-color:#7c4dff;-webkit-mask-image:var(--md-admonition-icon--example);mask-image:var(--md-admonition-icon--example)}.md-typeset :-moz-any(.example)>:-moz-any(.admonition-title,summary):before{background-color:#7c4dff;mask-image:var(--md-admonition-icon--example)}.md-typeset :is(.example)>:is(.admonition-title,summary):before{background-color:#7c4dff;-webkit-mask-image:var(--md-admonition-icon--example);mask-image:var(--md-admonition-icon--example)}.md-typeset :-webkit-any(.example)>:-webkit-any(.admonition-title,summary):after{color:#7c4dff}.md-typeset :-moz-any(.example)>:-moz-any(.admonition-title,summary):after{color:#7c4dff}.md-typeset :is(.example)>:is(.admonition-title,summary):after{color:#7c4dff}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.quote,.cite){border-color:#9e9e9e}.md-typeset :-moz-any(.admonition,details):-moz-any(.quote,.cite){border-color:#9e9e9e}.md-typeset :is(.admonition,details):is(.quote,.cite){border-color:#9e9e9e}.md-typeset :-webkit-any(.quote,.cite)>:-webkit-any(.admonition-title,summary){background-color:hsla(0,0%,62%,.1)}.md-typeset :-moz-any(.quote,.cite)>:-moz-any(.admonition-title,summary){background-color:hsla(0,0%,62%,.1)}.md-typeset :is(.quote,.cite)>:is(.admonition-title,summary){background-color:hsla(0,0%,62%,.1)}.md-typeset :-webkit-any(.quote,.cite)>:-webkit-any(.admonition-title,summary):before{background-color:#9e9e9e;-webkit-mask-image:var(--md-admonition-icon--quote);mask-image:var(--md-admonition-icon--quote)}.md-typeset :-moz-any(.quote,.cite)>:-moz-any(.admonition-title,summary):before{background-color:#9e9e9e;mask-image:var(--md-admonition-icon--quote)}.md-typeset :is(.quote,.cite)>:is(.admonition-title,summary):before{background-color:#9e9e9e;-webkit-mask-image:var(--md-admonition-icon--quote);mask-image:var(--md-admonition-icon--quote)}.md-typeset :-webkit-any(.quote,.cite)>:-webkit-any(.admonition-title,summary):after{color:#9e9e9e}.md-typeset :-moz-any(.quote,.cite)>:-moz-any(.admonition-title,summary):after{color:#9e9e9e}.md-typeset :is(.quote,.cite)>:is(.admonition-title,summary):after{color:#9e9e9e}:root{--md-footnotes-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .footnote{color:var(--md-default-fg-color--light);font-size:.64rem}[dir=ltr] .md-typeset .footnote>ol{margin-left:0}[dir=rtl] .md-typeset .footnote>ol{margin-right:0}.md-typeset .footnote>ol>li{transition:color 125ms}.md-typeset .footnote>ol>li:target{color:var(--md-default-fg-color)}.md-typeset .footnote>ol>li:focus-within .footnote-backref{opacity:1;transform:translateX(0);transition:none}.md-typeset .footnote>ol>li:-webkit-any(:hover,:target) .footnote-backref{opacity:1;transform:translateX(0)}.md-typeset .footnote>ol>li:-moz-any(:hover,:target) .footnote-backref{opacity:1;transform:translateX(0)}.md-typeset .footnote>ol>li:is(:hover,:target) .footnote-backref{opacity:1;transform:translateX(0)}.md-typeset .footnote>ol>li>:first-child{margin-top:0}.md-typeset .footnote-ref{font-size:.75em;font-weight:700}html .md-typeset .footnote-ref{outline-offset:.1rem}.md-typeset [id^="fnref:"]:target>.footnote-ref{outline:auto}.md-typeset .footnote-backref{color:var(--md-typeset-a-color);display:inline-block;font-size:0;opacity:0;transform:translateX(.25rem);transition:color .25s,transform .25s .25s,opacity 125ms .25s;vertical-align:text-bottom}@media print{.md-typeset .footnote-backref{color:var(--md-typeset-a-color);opacity:1;transform:translateX(0)}}[dir=rtl] .md-typeset .footnote-backref{transform:translateX(-.25rem)}.md-typeset .footnote-backref:hover{color:var(--md-accent-fg-color)}.md-typeset .footnote-backref:before{background-color:currentcolor;content:"";display:inline-block;height:.8rem;-webkit-mask-image:var(--md-footnotes-icon);mask-image:var(--md-footnotes-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.8rem}[dir=rtl] .md-typeset .footnote-backref:before svg{transform:scaleX(-1)}[dir=ltr] .md-typeset .headerlink{margin-left:.5rem}[dir=rtl] .md-typeset .headerlink{margin-right:.5rem}.md-typeset .headerlink{color:var(--md-default-fg-color--lighter);display:inline-block;opacity:0;transition:color .25s,opacity 125ms}@media print{.md-typeset .headerlink{display:none}}.md-typeset .headerlink:focus,.md-typeset :-webkit-any(:hover,:target)>.headerlink{opacity:1;-webkit-transition:color .25s,opacity 125ms;transition:color .25s,opacity 125ms}.md-typeset .headerlink:focus,.md-typeset :-moz-any(:hover,:target)>.headerlink{opacity:1;-moz-transition:color .25s,opacity 125ms;transition:color .25s,opacity 125ms}.md-typeset .headerlink:focus,.md-typeset :is(:hover,:target)>.headerlink{opacity:1;transition:color .25s,opacity 125ms}.md-typeset .headerlink:-webkit-any(:focus,:hover),.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset .headerlink:-moz-any(:focus,:hover),.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset .headerlink:is(:focus,:hover),.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset :target{--md-scroll-margin:3.6rem;--md-scroll-offset:0rem;scroll-margin-top:calc(var(--md-scroll-margin) - var(--md-scroll-offset))}@media screen and (min-width:76.25em){.md-header--lifted~.md-container .md-typeset :target{--md-scroll-margin:6rem}}.md-typeset :-webkit-any(h1,h2,h3):target{--md-scroll-offset:0.2rem}.md-typeset :-moz-any(h1,h2,h3):target{--md-scroll-offset:0.2rem}.md-typeset :is(h1,h2,h3):target{--md-scroll-offset:0.2rem}.md-typeset h4:target{--md-scroll-offset:0.15rem}.md-typeset div.arithmatex{overflow:auto}@media screen and (max-width:44.9375em){.md-typeset div.arithmatex{margin:0 -.8rem}}.md-typeset div.arithmatex>*{margin-left:auto!important;margin-right:auto!important;padding:0 .8rem;touch-action:auto;width:-webkit-min-content;width:-moz-min-content;width:min-content}.md-typeset div.arithmatex>* mjx-container{margin:0!important}.md-typeset :-webkit-any(del,ins,.comment).critic{-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset :-moz-any(del,ins,.comment).critic{box-decoration-break:clone}.md-typeset :is(del,ins,.comment).critic{-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset del.critic{background-color:var(--md-typeset-del-color)}.md-typeset ins.critic{background-color:var(--md-typeset-ins-color)}.md-typeset .critic.comment{color:var(--md-code-hl-comment-color)}.md-typeset .critic.comment:before{content:"/* "}.md-typeset .critic.comment:after{content:" */"}.md-typeset .critic.block{box-shadow:none;display:block;margin:1em 0;overflow:auto;padding-left:.8rem;padding-right:.8rem}.md-typeset .critic.block>:first-child{margin-top:.5em}.md-typeset .critic.block>:last-child{margin-bottom:.5em}:root{--md-details-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset details{display:flow-root;overflow:visible;padding-top:0}.md-typeset details[open]>summary:after{transform:rotate(90deg)}.md-typeset details:not([open]){box-shadow:none;padding-bottom:0}.md-typeset details:not([open])>summary{border-radius:.1rem}[dir=ltr] .md-typeset summary{padding-right:1.8rem}[dir=rtl] .md-typeset summary{padding-left:1.8rem}[dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}[dir=ltr] .md-typeset summary,[dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}[dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.md-typeset summary{cursor:pointer;display:block;min-height:1rem}.md-typeset summary.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset summary:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[dir=ltr] .md-typeset summary:after{right:.4rem}[dir=rtl] .md-typeset summary:after{left:.4rem}.md-typeset summary:after{background-color:currentcolor;content:"";height:1rem;-webkit-mask-image:var(--md-details-icon);mask-image:var(--md-details-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;transform:rotate(0deg);transition:transform .25s;width:1rem}[dir=rtl] .md-typeset summary:after{transform:rotate(180deg)}.md-typeset summary::marker{display:none}.md-typeset summary::-webkit-details-marker{display:none}.md-typeset :-webkit-any(.emojione,.twemoji,.gemoji){display:inline-flex;height:1.125em;vertical-align:text-top}.md-typeset :-moz-any(.emojione,.twemoji,.gemoji){display:inline-flex;height:1.125em;vertical-align:text-top}.md-typeset :is(.emojione,.twemoji,.gemoji){display:inline-flex;height:1.125em;vertical-align:text-top}.md-typeset :-webkit-any(.emojione,.twemoji,.gemoji) svg{fill:currentcolor;max-height:100%;width:1.125em}.md-typeset :-moz-any(.emojione,.twemoji,.gemoji) svg{fill:currentcolor;max-height:100%;width:1.125em}.md-typeset :is(.emojione,.twemoji,.gemoji) svg{fill:currentcolor;max-height:100%;width:1.125em}.highlight :-webkit-any(.o,.ow){color:var(--md-code-hl-operator-color)}.highlight :-moz-any(.o,.ow){color:var(--md-code-hl-operator-color)}.highlight :is(.o,.ow){color:var(--md-code-hl-operator-color)}.highlight .p{color:var(--md-code-hl-punctuation-color)}.highlight :-webkit-any(.cpf,.l,.s,.sb,.sc,.s2,.si,.s1,.ss){color:var(--md-code-hl-string-color)}.highlight :-moz-any(.cpf,.l,.s,.sb,.sc,.s2,.si,.s1,.ss){color:var(--md-code-hl-string-color)}.highlight :is(.cpf,.l,.s,.sb,.sc,.s2,.si,.s1,.ss){color:var(--md-code-hl-string-color)}.highlight :-webkit-any(.cp,.se,.sh,.sr,.sx){color:var(--md-code-hl-special-color)}.highlight :-moz-any(.cp,.se,.sh,.sr,.sx){color:var(--md-code-hl-special-color)}.highlight :is(.cp,.se,.sh,.sr,.sx){color:var(--md-code-hl-special-color)}.highlight :-webkit-any(.m,.mb,.mf,.mh,.mi,.il,.mo){color:var(--md-code-hl-number-color)}.highlight :-moz-any(.m,.mb,.mf,.mh,.mi,.il,.mo){color:var(--md-code-hl-number-color)}.highlight :is(.m,.mb,.mf,.mh,.mi,.il,.mo){color:var(--md-code-hl-number-color)}.highlight :-webkit-any(.k,.kd,.kn,.kp,.kr,.kt){color:var(--md-code-hl-keyword-color)}.highlight :-moz-any(.k,.kd,.kn,.kp,.kr,.kt){color:var(--md-code-hl-keyword-color)}.highlight :is(.k,.kd,.kn,.kp,.kr,.kt){color:var(--md-code-hl-keyword-color)}.highlight :-webkit-any(.kc,.n){color:var(--md-code-hl-name-color)}.highlight :-moz-any(.kc,.n){color:var(--md-code-hl-name-color)}.highlight :is(.kc,.n){color:var(--md-code-hl-name-color)}.highlight :-webkit-any(.no,.nb,.bp){color:var(--md-code-hl-constant-color)}.highlight :-moz-any(.no,.nb,.bp){color:var(--md-code-hl-constant-color)}.highlight :is(.no,.nb,.bp){color:var(--md-code-hl-constant-color)}.highlight :-webkit-any(.nc,.ne,.nf,.nn){color:var(--md-code-hl-function-color)}.highlight :-moz-any(.nc,.ne,.nf,.nn){color:var(--md-code-hl-function-color)}.highlight :is(.nc,.ne,.nf,.nn){color:var(--md-code-hl-function-color)}.highlight :-webkit-any(.nd,.ni,.nl,.nt){color:var(--md-code-hl-keyword-color)}.highlight :-moz-any(.nd,.ni,.nl,.nt){color:var(--md-code-hl-keyword-color)}.highlight :is(.nd,.ni,.nl,.nt){color:var(--md-code-hl-keyword-color)}.highlight :-webkit-any(.c,.cm,.c1,.ch,.cs,.sd){color:var(--md-code-hl-comment-color)}.highlight :-moz-any(.c,.cm,.c1,.ch,.cs,.sd){color:var(--md-code-hl-comment-color)}.highlight :is(.c,.cm,.c1,.ch,.cs,.sd){color:var(--md-code-hl-comment-color)}.highlight :-webkit-any(.na,.nv,.vc,.vg,.vi){color:var(--md-code-hl-variable-color)}.highlight :-moz-any(.na,.nv,.vc,.vg,.vi){color:var(--md-code-hl-variable-color)}.highlight :is(.na,.nv,.vc,.vg,.vi){color:var(--md-code-hl-variable-color)}.highlight :-webkit-any(.ge,.gr,.gh,.go,.gp,.gs,.gu,.gt){color:var(--md-code-hl-generic-color)}.highlight :-moz-any(.ge,.gr,.gh,.go,.gp,.gs,.gu,.gt){color:var(--md-code-hl-generic-color)}.highlight :is(.ge,.gr,.gh,.go,.gp,.gs,.gu,.gt){color:var(--md-code-hl-generic-color)}.highlight :-webkit-any(.gd,.gi){border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight :-moz-any(.gd,.gi){border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight :is(.gd,.gi){border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight .gd{background-color:var(--md-typeset-del-color)}.highlight .gi{background-color:var(--md-typeset-ins-color)}.highlight .hll{background-color:var(--md-code-hl-color);display:block;margin:0 -1.1764705882em;padding:0 1.1764705882em}.highlight span.filename{background-color:var(--md-code-bg-color);border-bottom:.05rem solid var(--md-default-fg-color--lightest);border-top-left-radius:.1rem;border-top-right-radius:.1rem;display:flow-root;font-size:.85em;font-weight:700;margin-top:1em;padding:.6617647059em 1.1764705882em;position:relative}.highlight span.filename+pre{margin-top:0}.highlight span.filename+pre>code{border-top-left-radius:0;border-top-right-radius:0}.highlight [data-linenos]:before{background-color:var(--md-code-bg-color);box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;color:var(--md-default-fg-color--light);content:attr(data-linenos);float:left;left:-1.1764705882em;margin-left:-1.1764705882em;margin-right:1.1764705882em;padding-left:1.1764705882em;position:-webkit-sticky;position:sticky;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:3}.highlight code a[id]{position:absolute;visibility:hidden}.highlight code[data-md-copying] .hll{display:contents}.highlight code[data-md-copying] .md-annotation{display:none}.highlighttable{display:flow-root}.highlighttable :-webkit-any(tbody,td){display:block;padding:0}.highlighttable :-moz-any(tbody,td){display:block;padding:0}.highlighttable :is(tbody,td){display:block;padding:0}.highlighttable tr{display:flex}.highlighttable pre{margin:0}.highlighttable th.filename{flex-grow:1;padding:0;text-align:left}.highlighttable th.filename span.filename{margin-top:0}.highlighttable .linenos{background-color:var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-top-left-radius:.1rem;font-size:.85em;padding:.7720588235em 0 .7720588235em 1.1764705882em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.highlighttable .linenodiv{box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;padding-right:.5882352941em}.highlighttable .linenodiv pre{color:var(--md-default-fg-color--light);text-align:right}.highlighttable .code{flex:1;min-width:0}.linenodiv a{color:inherit}.md-typeset .highlighttable{direction:ltr;margin:1em 0}.md-typeset .highlighttable>tbody>tr>.code>div>pre>code{border-bottom-left-radius:0;border-top-left-radius:0}.md-typeset .highlight+.result{border:.05rem solid var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-bottom-right-radius:.1rem;border-top-width:.1rem;margin-top:-1.125em;overflow:visible;padding:0 1em}.md-typeset .highlight+.result:after{clear:both;content:"";display:block}@media screen and (max-width:44.9375em){.md-content__inner>.highlight{margin:1em -.8rem}.md-content__inner>.highlight>.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.code>div>pre>code,.md-content__inner>.highlight>.highlighttable>tbody>tr>.filename span.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.linenos,.md-content__inner>.highlight>pre>code{border-radius:0}.md-content__inner>.highlight+.result{border-left-width:0;border-radius:0;border-right-width:0;margin-left:-.8rem;margin-right:-.8rem}}.md-typeset .keys kbd:-webkit-any(:before,:after){-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys kbd:-moz-any(:before,:after){-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys kbd:is(:before,:after){-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys span{color:var(--md-default-fg-color--light);padding:0 .2em}.md-typeset .keys .key-alt:before,.md-typeset .keys .key-left-alt:before,.md-typeset .keys .key-right-alt:before{content:"⎇";padding-right:.4em}.md-typeset .keys .key-command:before,.md-typeset .keys .key-left-command:before,.md-typeset .keys .key-right-command:before{content:"⌘";padding-right:.4em}.md-typeset .keys .key-control:before,.md-typeset .keys .key-left-control:before,.md-typeset .keys .key-right-control:before{content:"⌃";padding-right:.4em}.md-typeset .keys .key-left-meta:before,.md-typeset .keys .key-meta:before,.md-typeset .keys .key-right-meta:before{content:"◆";padding-right:.4em}.md-typeset .keys .key-left-option:before,.md-typeset .keys .key-option:before,.md-typeset .keys .key-right-option:before{content:"⌥";padding-right:.4em}.md-typeset .keys .key-left-shift:before,.md-typeset .keys .key-right-shift:before,.md-typeset .keys .key-shift:before{content:"⇧";padding-right:.4em}.md-typeset .keys .key-left-super:before,.md-typeset .keys .key-right-super:before,.md-typeset .keys .key-super:before{content:"❖";padding-right:.4em}.md-typeset .keys .key-left-windows:before,.md-typeset .keys .key-right-windows:before,.md-typeset .keys .key-windows:before{content:"⊞";padding-right:.4em}.md-typeset .keys .key-arrow-down:before{content:"↓";padding-right:.4em}.md-typeset .keys .key-arrow-left:before{content:"←";padding-right:.4em}.md-typeset .keys .key-arrow-right:before{content:"→";padding-right:.4em}.md-typeset .keys .key-arrow-up:before{content:"↑";padding-right:.4em}.md-typeset .keys .key-backspace:before{content:"⌫";padding-right:.4em}.md-typeset .keys .key-backtab:before{content:"⇤";padding-right:.4em}.md-typeset .keys .key-caps-lock:before{content:"⇪";padding-right:.4em}.md-typeset .keys .key-clear:before{content:"⌧";padding-right:.4em}.md-typeset .keys .key-context-menu:before{content:"☰";padding-right:.4em}.md-typeset .keys .key-delete:before{content:"⌦";padding-right:.4em}.md-typeset .keys .key-eject:before{content:"⏏";padding-right:.4em}.md-typeset .keys .key-end:before{content:"⤓";padding-right:.4em}.md-typeset .keys .key-escape:before{content:"⎋";padding-right:.4em}.md-typeset .keys .key-home:before{content:"⤒";padding-right:.4em}.md-typeset .keys .key-insert:before{content:"⎀";padding-right:.4em}.md-typeset .keys .key-page-down:before{content:"⇟";padding-right:.4em}.md-typeset .keys .key-page-up:before{content:"⇞";padding-right:.4em}.md-typeset .keys .key-print-screen:before{content:"⎙";padding-right:.4em}.md-typeset .keys .key-tab:after{content:"⇥";padding-left:.4em}.md-typeset .keys .key-num-enter:after{content:"⌤";padding-left:.4em}.md-typeset .keys .key-enter:after{content:"⏎";padding-left:.4em}:root{--md-tabbed-icon--prev:url('data:image/svg+xml;charset=utf-8,');--md-tabbed-icon--next:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .tabbed-set{border-radius:.1rem;display:flex;flex-flow:column wrap;margin:1em 0;position:relative}.md-typeset .tabbed-set>input{height:0;opacity:0;position:absolute;width:0}.md-typeset .tabbed-set>input:target{--md-scroll-offset:0.625em}.md-typeset .tabbed-labels{-ms-overflow-style:none;box-shadow:0 -.05rem var(--md-default-fg-color--lightest) inset;display:flex;max-width:100%;overflow:auto;scrollbar-width:none}@media print{.md-typeset .tabbed-labels{display:contents}}@media screen{.js .md-typeset .tabbed-labels{position:relative}.js .md-typeset .tabbed-labels:before{background:var(--md-accent-fg-color);bottom:0;content:"";display:block;height:2px;left:0;position:absolute;transform:translateX(var(--md-indicator-x));transition:width 225ms,transform .25s;transition-timing-function:cubic-bezier(.4,0,.2,1);width:var(--md-indicator-width)}}.md-typeset .tabbed-labels::-webkit-scrollbar{display:none}.md-typeset .tabbed-labels>label{border-bottom:.1rem solid transparent;border-radius:.1rem .1rem 0 0;color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;font-size:.64rem;font-weight:700;padding:.78125em 1.25em .625em;scroll-margin-inline-start:1rem;transition:background-color .25s,color .25s;white-space:nowrap;width:auto}@media print{.md-typeset .tabbed-labels>label:first-child{order:1}.md-typeset .tabbed-labels>label:nth-child(2){order:2}.md-typeset .tabbed-labels>label:nth-child(3){order:3}.md-typeset .tabbed-labels>label:nth-child(4){order:4}.md-typeset .tabbed-labels>label:nth-child(5){order:5}.md-typeset .tabbed-labels>label:nth-child(6){order:6}.md-typeset .tabbed-labels>label:nth-child(7){order:7}.md-typeset .tabbed-labels>label:nth-child(8){order:8}.md-typeset .tabbed-labels>label:nth-child(9){order:9}.md-typeset .tabbed-labels>label:nth-child(10){order:10}.md-typeset .tabbed-labels>label:nth-child(11){order:11}.md-typeset .tabbed-labels>label:nth-child(12){order:12}.md-typeset .tabbed-labels>label:nth-child(13){order:13}.md-typeset .tabbed-labels>label:nth-child(14){order:14}.md-typeset .tabbed-labels>label:nth-child(15){order:15}.md-typeset .tabbed-labels>label:nth-child(16){order:16}.md-typeset .tabbed-labels>label:nth-child(17){order:17}.md-typeset .tabbed-labels>label:nth-child(18){order:18}.md-typeset .tabbed-labels>label:nth-child(19){order:19}.md-typeset .tabbed-labels>label:nth-child(20){order:20}}.md-typeset .tabbed-labels>label:hover{color:var(--md-accent-fg-color)}.md-typeset .tabbed-content{width:100%}@media print{.md-typeset .tabbed-content{display:contents}}.md-typeset .tabbed-block{display:none}@media print{.md-typeset .tabbed-block{display:block}.md-typeset .tabbed-block:first-child{order:1}.md-typeset .tabbed-block:nth-child(2){order:2}.md-typeset .tabbed-block:nth-child(3){order:3}.md-typeset .tabbed-block:nth-child(4){order:4}.md-typeset .tabbed-block:nth-child(5){order:5}.md-typeset .tabbed-block:nth-child(6){order:6}.md-typeset .tabbed-block:nth-child(7){order:7}.md-typeset .tabbed-block:nth-child(8){order:8}.md-typeset .tabbed-block:nth-child(9){order:9}.md-typeset .tabbed-block:nth-child(10){order:10}.md-typeset .tabbed-block:nth-child(11){order:11}.md-typeset .tabbed-block:nth-child(12){order:12}.md-typeset .tabbed-block:nth-child(13){order:13}.md-typeset .tabbed-block:nth-child(14){order:14}.md-typeset .tabbed-block:nth-child(15){order:15}.md-typeset .tabbed-block:nth-child(16){order:16}.md-typeset .tabbed-block:nth-child(17){order:17}.md-typeset .tabbed-block:nth-child(18){order:18}.md-typeset .tabbed-block:nth-child(19){order:19}.md-typeset .tabbed-block:nth-child(20){order:20}}.md-typeset .tabbed-block>.highlight:first-child>pre,.md-typeset .tabbed-block>pre:first-child{margin:0}.md-typeset .tabbed-block>.highlight:first-child>pre>code,.md-typeset .tabbed-block>pre:first-child>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child>.filename{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable{margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.filename span.filename,.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.linenos{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.code>div>pre>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child+.result{margin-top:-.125em}.md-typeset .tabbed-block>.tabbed-set{margin:0}.md-typeset .tabbed-button{align-self:center;border-radius:100%;color:var(--md-default-fg-color--light);cursor:pointer;display:block;height:.9rem;margin-top:.1rem;pointer-events:auto;transition:background-color .25s;width:.9rem}.md-typeset .tabbed-button:hover{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-typeset .tabbed-button:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-tabbed-icon--prev);mask-image:var(--md-tabbed-icon--prev);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color .25s,transform .25s;width:100%}.md-typeset .tabbed-control{background:linear-gradient(to right,var(--md-default-bg-color) 60%,transparent);display:flex;height:1.9rem;justify-content:start;pointer-events:none;position:absolute;transition:opacity 125ms;width:1.2rem}[dir=rtl] .md-typeset .tabbed-control{transform:rotate(180deg)}.md-typeset .tabbed-control[hidden]{opacity:0}.md-typeset .tabbed-control--next{background:linear-gradient(to left,var(--md-default-bg-color) 60%,transparent);justify-content:end;right:0}.md-typeset .tabbed-control--next .tabbed-button:after{-webkit-mask-image:var(--md-tabbed-icon--next);mask-image:var(--md-tabbed-icon--next)}@media screen and (max-width:44.9375em){[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels{padding-right:.8rem}.md-content__inner>.tabbed-set .tabbed-labels{margin:0 -.8rem;max-width:100vw;scroll-padding-inline-start:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-left:.8rem}.md-content__inner>.tabbed-set .tabbed-labels:after{content:""}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-left:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-right:-.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-right:.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{width:2rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-right:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-left:-.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-left:.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{width:2rem}}@media screen{.md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){color:var(--md-accent-fg-color)}.md-typeset .no-js .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .no-js .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .no-js .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .no-js .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .no-js .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .no-js .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .no-js .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .no-js .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .no-js .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .no-js .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .no-js .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .no-js .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .no-js .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .no-js .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .no-js .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .no-js .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .no-js .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .no-js .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .no-js .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .no-js .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9),.no-js .md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.no-js .md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.no-js .md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.no-js .md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.no-js .md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.no-js .md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.no-js .md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.no-js .md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.no-js .md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.no-js .md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.no-js .md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.no-js .md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.no-js .md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.no-js .md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.no-js .md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.no-js .md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.no-js .md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.no-js .md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.no-js .md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.no-js .md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){border-color:var(--md-accent-fg-color)}}.md-typeset .tabbed-set>input:first-child.focus-visible~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10).focus-visible~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11).focus-visible~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12).focus-visible~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13).focus-visible~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14).focus-visible~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15).focus-visible~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16).focus-visible~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17).focus-visible~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18).focus-visible~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19).focus-visible~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2).focus-visible~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20).focus-visible~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3).focus-visible~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4).focus-visible~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5).focus-visible~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6).focus-visible~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7).focus-visible~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8).focus-visible~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9).focus-visible~.tabbed-labels>:nth-child(9){background-color:var(--md-accent-fg-color--transparent)}.md-typeset .tabbed-set>input:first-child:checked~.tabbed-content>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-content>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-content>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-content>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-content>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-content>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-content>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-content>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-content>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-content>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-content>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-content>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-content>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-content>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-content>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-content>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-content>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-content>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-content>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-content>:nth-child(9){display:block}:root{--md-tasklist-icon:url('data:image/svg+xml;charset=utf-8,');--md-tasklist-icon--checked:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .task-list-item{list-style-type:none;position:relative}[dir=ltr] .md-typeset .task-list-item [type=checkbox]{left:-2em}[dir=rtl] .md-typeset .task-list-item [type=checkbox]{right:-2em}.md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em}.md-typeset .task-list-control [type=checkbox]{opacity:0;z-index:-1}[dir=ltr] .md-typeset .task-list-indicator:before{left:-1.5em}[dir=rtl] .md-typeset .task-list-indicator:before{right:-1.5em}.md-typeset .task-list-indicator:before{background-color:var(--md-default-fg-color--lightest);content:"";height:1.25em;-webkit-mask-image:var(--md-tasklist-icon);mask-image:var(--md-tasklist-icon);-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.15em;width:1.25em}.md-typeset [type=checkbox]:checked+.task-list-indicator:before{background-color:#00e676;-webkit-mask-image:var(--md-tasklist-icon--checked);mask-image:var(--md-tasklist-icon--checked)}:root>*{--md-mermaid-font-family:var(--md-text-font-family),sans-serif;--md-mermaid-edge-color:var(--md-code-fg-color);--md-mermaid-node-bg-color:var(--md-accent-fg-color--transparent);--md-mermaid-node-fg-color:var(--md-accent-fg-color);--md-mermaid-label-bg-color:var(--md-default-bg-color);--md-mermaid-label-fg-color:var(--md-code-fg-color)}.mermaid{line-height:normal;margin:1em 0}@media screen and (min-width:45em){[dir=ltr] .md-typeset .inline{float:left}[dir=rtl] .md-typeset .inline{float:right}[dir=ltr] .md-typeset .inline{margin-right:.8rem}[dir=rtl] .md-typeset .inline{margin-left:.8rem}.md-typeset .inline{margin-bottom:.8rem;margin-top:0;width:11.7rem}[dir=ltr] .md-typeset .inline.end{float:right}[dir=rtl] .md-typeset .inline.end{float:left}[dir=ltr] .md-typeset .inline.end{margin-left:.8rem;margin-right:0}[dir=rtl] .md-typeset .inline.end{margin-left:0;margin-right:.8rem}} \ No newline at end of file diff --git a/5.x/assets/stylesheets/main.20d9efc8.min.css.map b/5.x/assets/stylesheets/main.20d9efc8.min.css.map new file mode 100644 index 000000000..5247bacd0 --- /dev/null +++ b/5.x/assets/stylesheets/main.20d9efc8.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["src/assets/stylesheets/main/extensions/pymdownx/_keys.scss","../../../src/assets/stylesheets/main.scss","src/assets/stylesheets/main/_resets.scss","src/assets/stylesheets/main/_colors.scss","src/assets/stylesheets/main/_icons.scss","src/assets/stylesheets/main/_typeset.scss","src/assets/stylesheets/utilities/_break.scss","src/assets/stylesheets/main/layout/_banner.scss","src/assets/stylesheets/main/layout/_base.scss","src/assets/stylesheets/main/layout/_clipboard.scss","src/assets/stylesheets/main/layout/_consent.scss","src/assets/stylesheets/main/layout/_content.scss","src/assets/stylesheets/main/layout/_dialog.scss","src/assets/stylesheets/main/layout/_feedback.scss","src/assets/stylesheets/main/layout/_footer.scss","src/assets/stylesheets/main/layout/_form.scss","src/assets/stylesheets/main/layout/_header.scss","src/assets/stylesheets/main/layout/_nav.scss","src/assets/stylesheets/main/layout/_search.scss","src/assets/stylesheets/main/layout/_select.scss","src/assets/stylesheets/main/layout/_sidebar.scss","src/assets/stylesheets/main/layout/_source.scss","src/assets/stylesheets/main/layout/_tabs.scss","src/assets/stylesheets/main/layout/_tag.scss","src/assets/stylesheets/main/layout/_tooltip.scss","src/assets/stylesheets/main/layout/_top.scss","src/assets/stylesheets/main/layout/_version.scss","src/assets/stylesheets/main/extensions/markdown/_admonition.scss","node_modules/material-design-color/material-color.scss","src/assets/stylesheets/main/extensions/markdown/_footnotes.scss","src/assets/stylesheets/main/extensions/markdown/_toc.scss","src/assets/stylesheets/main/extensions/pymdownx/_arithmatex.scss","src/assets/stylesheets/main/extensions/pymdownx/_critic.scss","src/assets/stylesheets/main/extensions/pymdownx/_details.scss","src/assets/stylesheets/main/extensions/pymdownx/_emoji.scss","src/assets/stylesheets/main/extensions/pymdownx/_highlight.scss","src/assets/stylesheets/main/extensions/pymdownx/_tabbed.scss","src/assets/stylesheets/main/extensions/pymdownx/_tasklist.scss","src/assets/stylesheets/main/integrations/_mermaid.scss","src/assets/stylesheets/main/_modifiers.scss"],"names":[],"mappings":"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FJ,C0B10FE,iEACE,oB1By0FJ,C0B10FE,qDACE,oB1By0FJ,C0Br0FE,8EACE,mC1Bw0FJ,C0Bz0FE,wEACE,mC1Bw0FJ,C0Bz0FE,4DACE,mC1Bw0FJ,C0Br0FI,qFACE,wBAnBG,CAoBH,kDAAA,CAAA,0C1Bu0FN,C0Bz0FI,+EACE,wBAnBG,CAoBH,0C1Bu0FN,C0Bz0FI,mEACE,wBAnBG,CAoBH,kDAAA,CAAA,0C1Bu0FN,C0Bn0FI,oFACE,a1Bq0FN,C0Bt0FI,8EACE,a1Bq0FN,C0Bt0FI,kEACE,a1Bq0FN,C0Br1FE,iFACE,oB1Bw1FJ,C0Bz1FE,2EACE,oB1Bw1FJ,C0Bz1FE,+DACE,oB1Bw1FJ,C0Bp1FE,wFACE,mC1Bu1FJ,C0Bx1FE,kFACE,mC1Bu1FJ,C0Bx1FE,sEACE,mC1Bu1FJ,C0Bp1FI,+FACE,wBAnBG,CAoBH,iDAAA,CAAA,yC1Bs1FN,C0Bx1FI,yFACE,wBAnBG,CAoBH,yC1Bs1FN,C0Bx1FI,6EACE,wBAnBG,CAoBH,iDAAA,CAAA,yC1Bs1FN,C0Bl1FI,8FACE,a1Bo1FN,C0Br1FI,wFACE,a1Bo1FN,C0Br1FI,4EACE,a1Bo1FN,C0Bp2FE,iFACE,oB1Bu2FJ,C0Bx2FE,2EACE,oB1Bu2FJ,C0Bx2FE,+DACE,oB1Bu2FJ,C0Bn2FE,wFACE,kC1Bs2FJ,C0Bv2FE,kFACE,kC1Bs2FJ,C0Bv2FE,sEACE,kC1Bs2FJ,C0Bn2FI,+FACE,wBAnBG,CAoBH,qDAAA,CAAA,6C1Bq2FN,C0Bv2FI,yFACE,wBAnBG,CAoBH,6C1Bq2FN,C0Bv2FI,6EACE,wBAnBG,CAoBH,qDAAA,CAAA,6C1Bq2FN,C0Bj2FI,8FACE,a1Bm2FN,C0Bp2FI,wFACE,a1Bm2FN,C0Bp2FI,4EACE,a1Bm2FN,C0Bn3FE,gFACE,oB1Bs3FJ,C0Bv3FE,0EACE,oB1Bs3FJ,C0Bv3FE,8DACE,oB1Bs3FJ,C0Bl3FE,uFACE,oC1Bq3FJ,C0Bt3FE,iFACE,oC1Bq3FJ,C0Bt3FE,qEACE,oC1Bq3FJ,C0Bl3FI,8FACE,wBAnBG,CAoBH,sDAAA,CAAA,8C1Bo3FN,C0Bt3FI,wFACE,wBAnBG,CAoBH,8C1Bo3FN,C0Bt3FI,4EACE,wBAnBG,CAoBH,sDAAA,CAAA,8C1Bo3FN,C0Bh3FI,6FACE,a1Bk3FN,C0Bn3FI,uFACE,a1Bk3FN,C0Bn3FI,2EACE,a1Bk3FN,C0Bl4FE,wFACE,oB1Bq4FJ,C0Bt4FE,kFACE,oB1Bq4FJ,C0Bt4FE,sEACE,oB1Bq4FJ,C0Bj4FE,+FACE,mC1Bo4FJ,C0Br4FE,yFACE,mC1Bo4FJ,C0Br4FE,6EACE,mC1Bo4FJ,C0Bj4FI,sGACE,wBAnBG,CAoBH,qDAAA,CAAA,6C1Bm4FN,C0Br4FI,gGACE,wBAnBG,CAoBH,6C1Bm4FN,C0Br4FI,oFACE,wBAnBG,CAoBH,qDAAA,CAAA,6C1Bm4FN,C0B/3FI,qGACE,a1Bi4FN,C0Bl4FI,+FACE,a1Bi4FN,C0Bl4FI,mFACE,a1Bi4FN,C0Bj5FE,mFACE,oB1Bo5FJ,C0Br5FE,6EACE,oB1Bo5FJ,C0Br5FE,iEACE,oB1Bo5FJ,C0Bh5FE,0FACE,mC1Bm5FJ,C0Bp5FE,oFACE,mC1Bm5FJ,C0Bp5FE,wEACE,mC1Bm5FJ,C0Bh5FI,iGACE,wBAnBG,CAoBH,qDAAA,CAAA,6C1Bk5FN,C0Bp5FI,2FACE,wBAnBG,CAoBH,6C1Bk5FN,C0Bp5FI,+EACE,wBAnBG,CAoBH,qDAAA,CAAA,6C1Bk5FN,C0B94FI,gGACE,a1Bg5FN,C0Bj5FI,0FACE,a1Bg5FN,C0Bj5FI,8EACE,a1Bg5FN,C0Bh6FE,0EACE,oB1Bm6FJ,C0Bp6FE,oEACE,oB1Bm6FJ,C0Bp6FE,wDACE,oB1Bm6FJ,C0B/5FE,iFACE,mC1Bk6FJ,C0Bn6FE,2EACE,mC1Bk6FJ,C0Bn6FE,+DACE,mC1Bk6FJ,C0B/5FI,wFACE,wBAnBG,CAoBH,oDAAA,CAAA,4C1Bi6FN,C0Bn6FI,kFACE,wBAnBG,CAoBH,4C1Bi6FN,C0Bn6FI,sEACE,wBAnBG,CAoBH,oDAAA,CAAA,4C1Bi6FN,C0B75FI,uFACE,a1B+5FN,C0Bh6FI,iFACE,a1B+5FN,C0Bh6FI,qEACE,a1B+5FN,C0B/6FE,gEACE,oB1Bk7FJ,C0Bn7FE,0DACE,oB1Bk7FJ,C0Bn7FE,8CACE,oB1Bk7FJ,C0B96FE,uEACE,kC1Bi7FJ,C0Bl7FE,iEACE,kC1Bi7FJ,C0Bl7FE,qDACE,kC1Bi7FJ,C0B96FI,8EACE,wBAnBG,CAoBH,iDAAA,CAAA,yC1Bg7FN,C0Bl7FI,wEACE,wBAnBG,CAoBH,yC1Bg7FN,C0Bl7FI,4DACE,wBAnBG,CAoBH,iDAAA,CAAA,yC1Bg7FN,C0B56FI,6EACE,a1B86FN,C0B/6FI,uEACE,a1B86FN,C0B/6FI,2DACE,a1B86FN,C0B97FE,oEACE,oB1Bi8FJ,C0Bl8FE,8DACE,oB1Bi8FJ,C0Bl8FE,kDACE,oB1Bi8FJ,C0B77FE,2EACE,oC1Bg8FJ,C0Bj8FE,qEACE,oC1Bg8FJ,C0Bj8FE,yDACE,oC1Bg8FJ,C0B77FI,kFACE,wBAnBG,CAoBH,qDAAA,CAAA,6C1B+7FN,C0Bj8FI,4EACE,wBAnBG,CAoBH,6C1B+7FN,C0Bj8FI,gEACE,wBAnBG,CAoBH,qDAAA,CAAA,6C1B+7FN,C0B37FI,iFACE,a1B67FN,C0B97FI,2EACE,a1B67FN,C0B97FI,+DACE,a1B67FN,C0B78FE,wEACE,oB1Bg9FJ,C0Bj9FE,kEACE,oB1Bg9FJ,C0Bj9FE,sDACE,oB1Bg9FJ,C0B58FE,+EACE,kC1B+8FJ,C0Bh9FE,yEACE,kC1B+8FJ,C0Bh9FE,6DACE,kC1B+8FJ,C0B58FI,sFACE,wBAnBG,CAoBH,mDAAA,CAAA,2C1B88FN,C0Bh9FI,gFACE,wBAnBG,CAoBH,2C1B88FN,C0Bh9FI,oEACE,wBAnBG,CAoBH,mDAAA,CAAA,2C1B88FN,C0B18FI,qFACE,a1B48FN,C0B78FI,+EACE,a1B48FN,C0B78FI,mEACE,a1B48FN,C4B9mGA,MACE,wM5BinGF,C4BxmGE,sBACE,uCAAA,CACA,gB5B2mGJ,C4BxmGI,mCACE,a5B0mGN,C4B3mGI,mCACE,c5B0mGN,C4BtmGM,4BACE,sB5BwmGR,C4BrmGQ,mCACE,gC5BumGV,C4BnmGQ,2DAEE,SAAA,CADA,uBAAA,CAEA,e5BqmGV,C4BjmGQ,0EAEE,SAAA,CADA,uB5BomGV,C4BrmGQ,uEAEE,SAAA,CADA,uB5BomGV,C4BrmGQ,iEAEE,SAAA,CADA,u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J,CkCz1GE,6BACE,sClCw1GJ,CkCz1GE,uBACE,sClCw1GJ,CkCr1GE,cACE,yClCu1GJ,CkC30GE,4DACE,oClC60GJ,CkC90GE,yDACE,oClC60GJ,CkC90GE,mDACE,oClC60GJ,CkCr0GE,6CACE,qClCu0GJ,CkCx0GE,0CACE,qClCu0GJ,CkCx0GE,oCACE,qClCu0GJ,CkC7zGE,oDACE,oClC+zGJ,CkCh0GE,iDACE,oClC+zGJ,CkCh0GE,2CACE,oClC+zGJ,CkCtzGE,gDACE,qClCwzGJ,CkCzzGE,6CACE,qClCwzGJ,CkCzzGE,uCACE,qClCwzGJ,CkCnzGE,gCACE,kClCqzGJ,CkCtzGE,6BACE,kClCqzGJ,CkCtzGE,uBACE,kClCqzGJ,CkC/yGE,qCACE,sClCizGJ,CkClzGE,kCACE,sClCizGJ,CkClzGE,4BACE,sClCizGJ,CkC1yGE,yCACE,sClC4yGJ,CkC7yGE,sCACE,sClC4yGJ,CkC7yGE,gCACE,sClC4yGJ,CkCryGE,yCACE,qClCuyGJ,CkCxyGE,sCACE,qClCuyGJ,CkCxyGE,gCACE,qClCuyGJ,CkC9xGE,gDACE,qClCgyGJ,CkCjyGE,6CACE,qClCgyGJ,CkCjyGE,uCACE,qClCgyGJ,CkCxxGE,6CACE,sClC0xGJ,CkC3xGE,0CACE,sClC0xGJ,CkC3xGE,oCACE,sClC0xGJ,CkC/wGE,yDACE,qClCixGJ,CkClxGE,sDACE,qClCixGJ,CkClxGE,gDACE,qClCixGJ,CkC5wGE,iCAGE,mBAAA,CAFA,gBAAA,CACA,gBlC+wGJ,CkCjxGE,8BAGE,mBAAA,CAFA,gBAAA,CACA,gBlC+wGJ,CkCjxGE,wBAGE,mBAAA,CAFA,gBAAA,CACA,gBlC+wGJ,CkC3wGE,eACE,4ClC6wGJ,CkC1wGE,eACE,4ClC4wGJ,CkCxwGE,gBAIE,wCAAA,CAHA,aAAA,CACA,wBAAA,CACA,wBlC2wGJ,CkCtwGE,yBAOE,wCAAA,CACA,+DAAA,CACA,4BAAA,CACA,6BAAA,CARA,iBAAA,CAIA,eAAA,CADA,eAAA,CAFA,cAAA,CACA,oCAAA,CAHA,iBlCixGJ,CkCrwGI,6BACE,YlCu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","file":"main.css"} \ No newline at end of file diff --git a/5.x/assets/stylesheets/main.69437709.min.css b/5.x/assets/stylesheets/main.69437709.min.css deleted file mode 100644 index 702d01386..000000000 --- a/5.x/assets/stylesheets/main.69437709.min.css +++ /dev/null @@ -1 +0,0 @@ -@charset "UTF-8";html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;-ms-text-size-adjust:none;text-size-adjust:none;box-sizing:border-box}*,:after,:before{box-sizing:inherit}@media (prefers-reduced-motion){*,:after,:before{transition:none!important}}body{margin:0}a,button,input,label{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}hr{border:0;box-sizing:initial;display:block;height:.05rem;overflow:visible;padding:0}small{font-size:80%}sub,sup{line-height:1em}img{border-style:none}table{border-collapse:initial;border-spacing:0}td,th{font-weight:400;vertical-align:top}button{background:transparent;border:0;font-family:inherit;font-size:inherit;margin:0;padding:0}input{border:0;outline:none}:root,[data-md-color-scheme=default]{--md-default-fg-color:rgba(0,0,0,.87);--md-default-fg-color--light:rgba(0,0,0,.54);--md-default-fg-color--lighter:rgba(0,0,0,.32);--md-default-fg-color--lightest:rgba(0,0,0,.07);--md-default-bg-color:#fff;--md-default-bg-color--light:hsla(0,0%,100%,.7);--md-default-bg-color--lighter:hsla(0,0%,100%,.3);--md-default-bg-color--lightest:hsla(0,0%,100%,.12);--md-primary-fg-color:#4051b5;--md-primary-fg-color--light:#5d6cc0;--md-primary-fg-color--dark:#303fa1;--md-primary-bg-color:#fff;--md-primary-bg-color--light:hsla(0,0%,100%,.7);--md-accent-fg-color:#526cfe;--md-accent-fg-color--transparent:rgba(82,108,254,.1);--md-accent-bg-color:#fff;--md-accent-bg-color--light:hsla(0,0%,100%,.7);--md-code-fg-color:#36464e;--md-code-bg-color:#f5f5f5;--md-code-hl-color:rgba(255,255,0,.5);--md-code-hl-number-color:#d52a2a;--md-code-hl-special-color:#db1457;--md-code-hl-function-color:#a846b9;--md-code-hl-constant-color:#6e59d9;--md-code-hl-keyword-color:#3f6ec6;--md-code-hl-string-color:#1c7d4d;--md-code-hl-name-color:var(--md-code-fg-color);--md-code-hl-operator-color:var(--md-default-fg-color--light);--md-code-hl-punctuation-color:var(--md-default-fg-color--light);--md-code-hl-comment-color:var(--md-default-fg-color--light);--md-code-hl-generic-color:var(--md-default-fg-color--light);--md-code-hl-variable-color:var(--md-default-fg-color--light);--md-typeset-color:var(--md-default-fg-color);--md-typeset-a-color:var(--md-primary-fg-color);--md-typeset-mark-color:rgba(255,255,0,.5);--md-typeset-del-color:rgba(245,80,61,.15);--md-typeset-ins-color:rgba(11,213,112,.15);--md-typeset-kbd-color:#fafafa;--md-typeset-kbd-accent-color:#fff;--md-typeset-kbd-border-color:#b8b8b8;--md-typeset-table-color:rgba(0,0,0,.12);--md-admonition-fg-color:var(--md-default-fg-color);--md-admonition-bg-color:var(--md-default-bg-color);--md-footer-fg-color:#fff;--md-footer-fg-color--light:hsla(0,0%,100%,.7);--md-footer-fg-color--lighter:hsla(0,0%,100%,.3);--md-footer-bg-color:rgba(0,0,0,.87);--md-footer-bg-color--dark:rgba(0,0,0,.32);--md-shadow-z1:0 0.2rem 0.5rem rgba(0,0,0,.05),0 0 0.05rem rgba(0,0,0,.1);--md-shadow-z2:0 0.2rem 0.5rem rgba(0,0,0,.1),0 0 0.05rem rgba(0,0,0,.25);--md-shadow-z3:0 0.2rem 0.5rem rgba(0,0,0,.2),0 0 0.05rem rgba(0,0,0,.35)}.md-icon svg{fill:currentcolor;display:block;height:1.2rem;width:1.2rem}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--md-text-font-family:var(--md-text-font,_),-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif;--md-code-font-family:var(--md-code-font,_),SFMono-Regular,Consolas,Menlo,monospace}body,input{font-feature-settings:"kern","liga";font-family:var(--md-text-font-family)}body,code,input,kbd,pre{color:var(--md-typeset-color)}code,kbd,pre{font-feature-settings:"kern";font-family:var(--md-code-font-family)}:root{--md-typeset-table-sort-icon:url('data:image/svg+xml;charset=utf-8,');--md-typeset-table-sort-icon--asc:url('data:image/svg+xml;charset=utf-8,');--md-typeset-table-sort-icon--desc:url('data:image/svg+xml;charset=utf-8,')}.md-typeset{-webkit-print-color-adjust:exact;color-adjust:exact;font-size:.8rem;line-height:1.6}@media print{.md-typeset{font-size:.68rem}}.md-typeset blockquote,.md-typeset dl,.md-typeset figure,.md-typeset ol,.md-typeset pre,.md-typeset ul{margin-bottom:1em;margin-top:1em}.md-typeset h1{color:var(--md-default-fg-color--light);font-size:2em;line-height:1.3;margin:0 0 1.25em}.md-typeset h1,.md-typeset h2{font-weight:300;letter-spacing:-.01em}.md-typeset h2{font-size:1.5625em;line-height:1.4;margin:1.6em 0 .64em}.md-typeset h3{font-size:1.25em;font-weight:400;letter-spacing:-.01em;line-height:1.5;margin:1.6em 0 .8em}.md-typeset h2+h3{margin-top:.8em}.md-typeset h4{font-weight:700;letter-spacing:-.01em;margin:1em 0}.md-typeset h5,.md-typeset h6{color:var(--md-default-fg-color--light);font-size:.8em;font-weight:700;letter-spacing:-.01em;margin:1.25em 0}.md-typeset h5{text-transform:uppercase}.md-typeset hr{border-bottom:.05rem solid var(--md-default-fg-color--lightest);display:flow-root;margin:1.5em 0}.md-typeset a{color:var(--md-typeset-a-color);word-break:break-word}.md-typeset a,.md-typeset a:before{transition:color 125ms}.md-typeset a:focus,.md-typeset a:hover{color:var(--md-accent-fg-color)}.md-typeset a:focus code,.md-typeset a:hover code{background-color:var(--md-accent-fg-color--transparent)}.md-typeset a code{color:currentcolor;transition:background-color 125ms}.md-typeset a.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset code,.md-typeset kbd,.md-typeset pre{color:var(--md-code-fg-color);direction:ltr}@media print{.md-typeset code,.md-typeset kbd,.md-typeset pre{white-space:pre-wrap}}.md-typeset code{background-color:var(--md-code-bg-color);border-radius:.1rem;-webkit-box-decoration-break:clone;box-decoration-break:clone;font-size:.85em;padding:0 .2941176471em;word-break:break-word}.md-typeset code:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-typeset pre{display:flow-root;line-height:1.4;position:relative}.md-typeset pre>code{-webkit-box-decoration-break:slice;box-decoration-break:slice;box-shadow:none;display:block;margin:0;outline-color:var(--md-accent-fg-color);overflow:auto;padding:.7720588235em 1.1764705882em;scrollbar-color:var(--md-default-fg-color--lighter) transparent;scrollbar-width:thin;touch-action:auto;word-break:normal}.md-typeset pre>code:hover{scrollbar-color:var(--md-accent-fg-color) transparent}.md-typeset pre>code::-webkit-scrollbar{height:.2rem;width:.2rem}.md-typeset pre>code::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-typeset pre>code::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}.md-typeset kbd{background-color:var(--md-typeset-kbd-color);border-radius:.1rem;box-shadow:0 .1rem 0 .05rem var(--md-typeset-kbd-border-color),0 .1rem 0 var(--md-typeset-kbd-border-color),0 -.1rem .2rem var(--md-typeset-kbd-accent-color) inset;color:var(--md-default-fg-color);display:inline-block;font-size:.75em;padding:0 .6666666667em;vertical-align:text-top;word-break:break-word}.md-typeset mark{background-color:var(--md-typeset-mark-color);-webkit-box-decoration-break:clone;box-decoration-break:clone;color:inherit;word-break:break-word}.md-typeset abbr{border-bottom:.05rem dotted var(--md-default-fg-color--light);cursor:help;text-decoration:none}@media (hover:none){.md-typeset abbr{position:relative}.md-typeset abbr[title]:-webkit-any(:focus,:hover):after{background-color:var(--md-default-fg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z3);color:var(--md-default-bg-color);content:attr(title);display:inline-block;font-size:.7rem;margin-top:2em;max-width:80%;min-width:-webkit-max-content;min-width:max-content;padding:.2rem .3rem;position:absolute;width:auto}.md-typeset abbr[title]:-moz-any(:focus,:hover):after{background-color:var(--md-default-fg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z3);color:var(--md-default-bg-color);content:attr(title);display:inline-block;font-size:.7rem;margin-top:2em;max-width:80%;min-width:-moz-max-content;min-width:max-content;padding:.2rem .3rem;position:absolute;width:auto}[dir=ltr] .md-typeset abbr[title]:-webkit-any(:focus,:hover):after{left:0}[dir=ltr] .md-typeset abbr[title]:-moz-any(:focus,:hover):after{left:0}[dir=ltr] .md-typeset abbr[title]:is(:focus,:hover):after{left:0}[dir=rtl] .md-typeset abbr[title]:-webkit-any(:focus,:hover):after{right:0}[dir=rtl] .md-typeset abbr[title]:-moz-any(:focus,:hover):after{right:0}[dir=rtl] .md-typeset abbr[title]:is(:focus,:hover):after{right:0}.md-typeset abbr[title]:is(:focus,:hover):after{background-color:var(--md-default-fg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z3);color:var(--md-default-bg-color);content:attr(title);display:inline-block;font-size:.7rem;margin-top:2em;max-width:80%;min-width:-webkit-max-content;min-width:-moz-max-content;min-width:max-content;padding:.2rem .3rem;position:absolute;width:auto}}.md-typeset small{opacity:.75}[dir=ltr] .md-typeset sub,[dir=ltr] .md-typeset sup{margin-left:.078125em}[dir=rtl] .md-typeset sub,[dir=rtl] .md-typeset sup{margin-right:.078125em}[dir=ltr] .md-typeset blockquote{padding-left:.6rem}[dir=rtl] .md-typeset blockquote{padding-right:.6rem}[dir=ltr] .md-typeset blockquote{border-left:.2rem solid var(--md-default-fg-color--lighter)}[dir=rtl] .md-typeset blockquote{border-right:.2rem solid var(--md-default-fg-color--lighter)}.md-typeset blockquote{color:var(--md-default-fg-color--light);margin-left:0;margin-right:0}.md-typeset ul{list-style-type:disc}[dir=ltr] .md-typeset ol,[dir=ltr] .md-typeset ul{margin-left:.625em}[dir=rtl] .md-typeset ol,[dir=rtl] .md-typeset ul{margin-right:.625em}.md-typeset ol,.md-typeset ul{padding:0}.md-typeset ol:not([hidden]),.md-typeset ul:not([hidden]){display:flow-root}.md-typeset ol ol,.md-typeset ul ol{list-style-type:lower-alpha}.md-typeset ol ol ol,.md-typeset ul ol ol{list-style-type:lower-roman}[dir=ltr] .md-typeset ol li,[dir=ltr] .md-typeset ul li{margin-left:1.25em}[dir=rtl] .md-typeset ol li,[dir=rtl] .md-typeset ul li{margin-right:1.25em}.md-typeset ol li,.md-typeset ul li{margin-bottom:.5em}.md-typeset ol li blockquote,.md-typeset ol li p,.md-typeset ul li blockquote,.md-typeset ul li p{margin:.5em 0}.md-typeset ol li:last-child,.md-typeset ul li:last-child{margin-bottom:0}.md-typeset ol li :-webkit-any(ul,ol),.md-typeset ul li :-webkit-any(ul,ol){margin-bottom:.5em;margin-top:.5em}.md-typeset ol li :-moz-any(ul,ol),.md-typeset ul li :-moz-any(ul,ol){margin-bottom:.5em;margin-top:.5em}[dir=ltr] .md-typeset ol li :-webkit-any(ul,ol),[dir=ltr] .md-typeset ul li :-webkit-any(ul,ol){margin-left:.625em}[dir=ltr] .md-typeset ol li :-moz-any(ul,ol),[dir=ltr] .md-typeset ul li :-moz-any(ul,ol){margin-left:.625em}[dir=ltr] .md-typeset ol li :is(ul,ol),[dir=ltr] .md-typeset ul li :is(ul,ol){margin-left:.625em}[dir=rtl] .md-typeset ol li :-webkit-any(ul,ol),[dir=rtl] .md-typeset ul li :-webkit-any(ul,ol){margin-right:.625em}[dir=rtl] .md-typeset ol li :-moz-any(ul,ol),[dir=rtl] .md-typeset ul li :-moz-any(ul,ol){margin-right:.625em}[dir=rtl] .md-typeset ol li :is(ul,ol),[dir=rtl] .md-typeset ul li :is(ul,ol){margin-right:.625em}.md-typeset ol li :is(ul,ol),.md-typeset ul li :is(ul,ol){margin-bottom:.5em;margin-top:.5em}[dir=ltr] .md-typeset dd{margin-left:1.875em}[dir=rtl] .md-typeset dd{margin-right:1.875em}.md-typeset dd{margin-bottom:1.5em;margin-top:1em}.md-typeset img,.md-typeset svg,.md-typeset video{height:auto;max-width:100%}.md-typeset img[align=left]{margin:1em 1em 1em 0}.md-typeset img[align=right]{margin:1em 0 1em 1em}.md-typeset img[align]:only-child{margin-top:0}.md-typeset img[src$="#gh-dark-mode-only"],.md-typeset img[src$="#only-dark"]{display:none}.md-typeset figure{display:flow-root;margin:1em auto;max-width:100%;text-align:center;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.md-typeset figure img{display:block}.md-typeset figcaption{font-style:italic;margin:1em auto;max-width:24rem}.md-typeset iframe{max-width:100%}.md-typeset table:not([class]){background-color:var(--md-default-bg-color);border:.05rem solid var(--md-typeset-table-color);border-radius:.1rem;display:inline-block;font-size:.64rem;max-width:100%;overflow:auto;touch-action:auto}@media print{.md-typeset table:not([class]){display:table}}.md-typeset table:not([class])+*{margin-top:1.5em}.md-typeset table:not([class]) :-webkit-any(th,td)>:first-child{margin-top:0}.md-typeset table:not([class]) :-moz-any(th,td)>:first-child{margin-top:0}.md-typeset table:not([class]) :is(th,td)>:first-child{margin-top:0}.md-typeset table:not([class]) :-webkit-any(th,td)>:last-child{margin-bottom:0}.md-typeset table:not([class]) :-moz-any(th,td)>:last-child{margin-bottom:0}.md-typeset table:not([class]) :is(th,td)>:last-child{margin-bottom:0}.md-typeset table:not([class]) :-webkit-any(th,td):not([align]){text-align:left}.md-typeset table:not([class]) :-moz-any(th,td):not([align]){text-align:left}.md-typeset table:not([class]) :is(th,td):not([align]){text-align:left}[dir=rtl] .md-typeset table:not([class]) :-webkit-any(th,td):not([align]){text-align:right}[dir=rtl] .md-typeset table:not([class]) :-moz-any(th,td):not([align]){text-align:right}[dir=rtl] .md-typeset table:not([class]) :is(th,td):not([align]){text-align:right}.md-typeset table:not([class]) th{font-weight:700;min-width:5rem;padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) th a{color:inherit}.md-typeset table:not([class]) td{border-top:.05rem solid var(--md-typeset-table-color);padding:.9375em 1.25em;vertical-align:top}.md-typeset table:not([class]) tbody tr{transition:background-color 125ms}.md-typeset table:not([class]) tbody tr:hover{background-color:rgba(0,0,0,.035);box-shadow:0 .05rem 0 var(--md-default-bg-color) inset}.md-typeset table:not([class]) a{word-break:normal}.md-typeset table th[role=columnheader]{cursor:pointer}[dir=ltr] .md-typeset table th[role=columnheader]:after{margin-left:.5em}[dir=rtl] .md-typeset table th[role=columnheader]:after{margin-right:.5em}.md-typeset table th[role=columnheader]:after{content:"";display:inline-block;height:1.2em;-webkit-mask-image:var(--md-typeset-table-sort-icon);mask-image:var(--md-typeset-table-sort-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color 125ms;vertical-align:text-bottom;width:1.2em}.md-typeset table th[role=columnheader]:hover:after{background-color:var(--md-default-fg-color--lighter)}.md-typeset table th[role=columnheader][aria-sort=ascending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--asc);mask-image:var(--md-typeset-table-sort-icon--asc)}.md-typeset table th[role=columnheader][aria-sort=descending]:after{background-color:var(--md-default-fg-color--light);-webkit-mask-image:var(--md-typeset-table-sort-icon--desc);mask-image:var(--md-typeset-table-sort-icon--desc)}.md-typeset__scrollwrap{margin:1em -.8rem;overflow-x:auto;touch-action:auto}.md-typeset__table{display:inline-block;margin-bottom:.5em;padding:0 .8rem}@media print{.md-typeset__table{display:block}}html .md-typeset__table table{display:table;margin:0;overflow:hidden;width:100%}@media screen and (max-width:44.9375em){.md-content__inner>pre{margin:1em -.8rem}.md-content__inner>pre code{border-radius:0}}.md-banner{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color);overflow:auto}@media print{.md-banner{display:none}}.md-banner--warning{background:var(--md-typeset-mark-color);color:var(--md-default-fg-color)}.md-banner__inner{font-size:.7rem;margin:.6rem auto;padding:0 .8rem}.md-banner__button{color:inherit;cursor:pointer;float:right;transition:opacity .25s}.md-banner__button:hover{opacity:.7}html{font-size:125%;height:100%;overflow-x:hidden}@media screen and (min-width:100em){html{font-size:137.5%}}@media screen and (min-width:125em){html{font-size:150%}}body{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;font-size:.5rem;min-height:100%;position:relative;width:100%}@media print{body{display:block}}@media screen and (max-width:59.9375em){body[data-md-scrolllock]{position:fixed}}.md-grid{margin-left:auto;margin-right:auto;max-width:61rem}.md-container{display:flex;flex-direction:column;flex-grow:1}@media print{.md-container{display:block}}.md-main{flex-grow:1}.md-main__inner{display:flex;height:100%;margin-top:1.5rem}.md-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.md-toggle{display:none}.md-option{height:0;opacity:0;position:absolute;width:0}.md-option:checked+label:not([hidden]){display:block}.md-option.focus-visible+label{outline-color:var(--md-accent-fg-color);outline-style:auto}.md-skip{background-color:var(--md-default-fg-color);border-radius:.1rem;color:var(--md-default-bg-color);font-size:.64rem;margin:.5rem;opacity:0;outline-color:var(--md-accent-fg-color);padding:.3rem .5rem;position:fixed;transform:translateY(.4rem);z-index:-1}.md-skip:focus{opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 175ms 75ms;z-index:10}@page{margin:25mm}:root{--md-clipboard-icon:url('data:image/svg+xml;charset=utf-8,')}.md-clipboard{border-radius:.1rem;color:var(--md-default-fg-color--lightest);cursor:pointer;height:1.5em;outline-color:var(--md-accent-fg-color);outline-offset:.1rem;position:absolute;right:.5em;top:.5em;transition:color .25s;width:1.5em;z-index:1}@media print{.md-clipboard{display:none}}.md-clipboard:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}:hover>.md-clipboard{color:var(--md-default-fg-color--light)}.md-clipboard:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-clipboard:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-clipboard:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-clipboard:after{background-color:currentcolor;content:"";display:block;height:1.125em;margin:0 auto;-webkit-mask-image:var(--md-clipboard-icon);mask-image:var(--md-clipboard-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:1.125em}.md-clipboard--inline{cursor:pointer}.md-clipboard--inline code{transition:color .25s,background-color .25s}.md-clipboard--inline:-webkit-any(:focus,:hover) code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-clipboard--inline:-moz-any(:focus,:hover) code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-clipboard--inline:is(:focus,:hover) code{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}@-webkit-keyframes consent{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes consent{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@-webkit-keyframes overlay{0%{opacity:0}to{opacity:1}}@keyframes overlay{0%{opacity:0}to{opacity:1}}.md-consent__overlay{-webkit-animation:overlay .25s both;animation:overlay .25s both;-webkit-backdrop-filter:blur(.1rem);backdrop-filter:blur(.1rem);background-color:rgba(0,0,0,.54);height:100%;opacity:1;position:fixed;top:0;width:100%;z-index:5}.md-consent__inner{-webkit-animation:consent .5s cubic-bezier(.1,.7,.1,1) both;animation:consent .5s cubic-bezier(.1,.7,.1,1) both;background-color:var(--md-default-bg-color);border:0;border-radius:.1rem;bottom:0;box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2);max-height:100%;overflow:auto;padding:0;position:fixed;width:100%;z-index:5}.md-consent__form{padding:.8rem}.md-consent__settings{display:none;margin:1em 0}input:checked+.md-consent__settings{display:block}.md-consent__controls{margin-bottom:.8rem}.md-typeset .md-consent__controls .md-button{display:inline}@media screen and (max-width:44.9375em){.md-typeset .md-consent__controls .md-button{display:block;margin-top:.4rem;text-align:center;width:100%}}.md-consent label{cursor:pointer}.md-content{flex-grow:1;min-width:0}.md-content__inner{margin:0 .8rem 1.2rem;padding-top:.6rem}@media screen and (min-width:76.25em){[dir=ltr] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}[dir=ltr] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner,[dir=rtl] .md-sidebar--primary:not([hidden])~.md-content>.md-content__inner{margin-right:1.2rem}[dir=rtl] .md-sidebar--secondary:not([hidden])~.md-content>.md-content__inner{margin-left:1.2rem}}.md-content__inner:before{content:"";display:block;height:.4rem}.md-content__inner>:last-child{margin-bottom:0}[dir=ltr] .md-content__button{margin-left:.4rem}[dir=rtl] .md-content__button{margin-right:.4rem}.md-content__button{float:right;margin:.4rem 0;padding:0}@media print{.md-content__button{display:none}}[dir=rtl] .md-content__button{float:left}.md-typeset .md-content__button{color:var(--md-default-fg-color--lighter)}.md-content__button svg{display:inline;vertical-align:top}[dir=rtl] .md-content__button svg{transform:scaleX(-1)}[dir=ltr] .md-dialog{right:.8rem}[dir=rtl] .md-dialog{left:.8rem}.md-dialog{background-color:var(--md-default-fg-color);border-radius:.1rem;bottom:.8rem;box-shadow:var(--md-shadow-z3);min-width:11.1rem;opacity:0;padding:.4rem .6rem;pointer-events:none;position:fixed;transform:translateY(100%);transition:transform 0ms .4s,opacity .4s;z-index:4}@media print{.md-dialog{display:none}}.md-dialog--active{opacity:1;pointer-events:auto;transform:translateY(0);transition:transform .4s cubic-bezier(.075,.85,.175,1),opacity .4s}.md-dialog__inner{color:var(--md-default-bg-color);font-size:.7rem}.md-feedback{margin:2em 0 1em;text-align:center}.md-feedback fieldset{border:none;margin:0;padding:0}.md-feedback__title{font-weight:700;margin:1em auto}.md-feedback__inner{position:relative}.md-feedback__list{align-content:baseline;display:flex;flex-wrap:wrap;justify-content:center;position:relative}.md-feedback__list:hover .md-icon:not(:disabled){color:var(--md-default-fg-color--lighter)}:disabled .md-feedback__list{min-height:1.8rem}.md-feedback__icon{color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;margin:0 .1rem;transition:color 125ms}.md-feedback__icon:not(:disabled).md-icon:hover{color:var(--md-accent-fg-color)}.md-feedback__icon:disabled{color:var(--md-default-fg-color--lightest);pointer-events:none}.md-feedback__note{opacity:0;position:relative;transform:translateY(.4rem);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-feedback__note>*{margin:0 auto;max-width:16rem}:disabled .md-feedback__note{opacity:1;transform:translateY(0)}.md-footer{background-color:var(--md-footer-bg-color);color:var(--md-footer-fg-color)}@media print{.md-footer{display:none}}.md-footer__inner{justify-content:space-between;overflow:auto;padding:.2rem}.md-footer__inner:not([hidden]){display:flex}.md-footer__link{display:flex;flex-grow:0.01;outline-color:var(--md-accent-fg-color);overflow:hidden;padding-bottom:.4rem;padding-top:1.4rem;transition:opacity .25s}.md-footer__link:-webkit-any(:focus,:hover){opacity:.7}.md-footer__link:-moz-any(:focus,:hover){opacity:.7}.md-footer__link:is(:focus,:hover){opacity:.7}[dir=rtl] .md-footer__link svg{transform:scaleX(-1)}@media screen and (max-width:44.9375em){.md-footer__link--prev .md-footer__title{display:none}}[dir=ltr] .md-footer__link--next{margin-left:auto}[dir=rtl] .md-footer__link--next{margin-right:auto}.md-footer__link--next{text-align:right}[dir=rtl] .md-footer__link--next{text-align:left}.md-footer__title{flex-grow:1;font-size:.9rem;line-height:2.4rem;max-width:calc(100% - 2.4rem);padding:0 1rem;position:relative;white-space:nowrap}.md-footer__button{margin:.2rem;padding:.4rem}.md-footer__direction{font-size:.64rem;left:0;margin-top:-1rem;opacity:.7;padding:0 1rem;position:absolute;right:0}.md-footer-meta{background-color:var(--md-footer-bg-color--dark)}.md-footer-meta__inner{display:flex;flex-wrap:wrap;justify-content:space-between;padding:.2rem}html .md-footer-meta.md-typeset a{color:var(--md-footer-fg-color--light)}html .md-footer-meta.md-typeset a:-webkit-any(:focus,:hover){color:var(--md-footer-fg-color)}html .md-footer-meta.md-typeset a:-moz-any(:focus,:hover){color:var(--md-footer-fg-color)}html .md-footer-meta.md-typeset a:is(:focus,:hover){color:var(--md-footer-fg-color)}.md-copyright{color:var(--md-footer-fg-color--lighter);font-size:.64rem;margin:auto .6rem;padding:.4rem 0;width:100%}@media screen and (min-width:45em){.md-copyright{width:auto}}.md-copyright__highlight{color:var(--md-footer-fg-color--light)}.md-social{margin:0 .4rem;padding:.2rem 0 .6rem}@media screen and (min-width:45em){.md-social{padding:.6rem 0}}.md-social__link{display:inline-block;height:1.6rem;text-align:center;width:1.6rem}.md-social__link:before{line-height:1.9}.md-social__link svg{fill:currentcolor;max-height:.8rem;vertical-align:-25%}.md-typeset .md-button{border:.1rem solid;border-radius:.1rem;color:var(--md-primary-fg-color);cursor:pointer;display:inline-block;font-weight:700;padding:.625em 2em;transition:color 125ms,background-color 125ms,border-color 125ms}.md-typeset .md-button--primary{background-color:var(--md-primary-fg-color);border-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color)}.md-typeset .md-button:-webkit-any(:focus,:hover){background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-typeset .md-button:-moz-any(:focus,:hover){background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-typeset .md-button:is(:focus,:hover){background-color:var(--md-accent-fg-color);border-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[dir=ltr] .md-typeset .md-input{border-top-left-radius:.1rem}[dir=ltr] .md-typeset .md-input,[dir=rtl] .md-typeset .md-input{border-top-right-radius:.1rem}[dir=rtl] .md-typeset .md-input{border-top-left-radius:.1rem}.md-typeset .md-input{border-bottom:.1rem solid var(--md-default-fg-color--lighter);box-shadow:var(--md-shadow-z1);font-size:.8rem;height:1.8rem;padding:0 .6rem;transition:border .25s,box-shadow .25s}.md-typeset .md-input:-webkit-any(:focus,:hover){border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.md-typeset .md-input:-moz-any(:focus,:hover){border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.md-typeset .md-input:is(:focus,:hover){border-bottom-color:var(--md-accent-fg-color);box-shadow:var(--md-shadow-z2)}.md-typeset .md-input--stretch{width:100%}.md-header{background-color:var(--md-primary-fg-color);box-shadow:0 0 .2rem transparent,0 .2rem .4rem transparent;color:var(--md-primary-bg-color);display:block;left:0;position:-webkit-sticky;position:sticky;right:0;top:0;z-index:4}@media print{.md-header{display:none}}.md-header[hidden]{transform:translateY(-100%);transition:transform .25s cubic-bezier(.8,0,.6,1),box-shadow .25s}.md-header--shadow{box-shadow:0 0 .2rem rgba(0,0,0,.1),0 .2rem .4rem rgba(0,0,0,.2);transition:transform .25s cubic-bezier(.1,.7,.1,1),box-shadow .25s}.md-header__inner{align-items:center;display:flex;padding:0 .2rem}.md-header__button{color:currentcolor;cursor:pointer;margin:.2rem;outline-color:var(--md-accent-fg-color);padding:.4rem;position:relative;transition:opacity .25s;vertical-align:middle;z-index:1}.md-header__button:hover{opacity:.7}.md-header__button:not([hidden]){display:inline-block}.md-header__button:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}.md-header__button.md-logo{margin:.2rem;padding:.4rem}@media screen and (max-width:76.1875em){.md-header__button.md-logo{display:none}}.md-header__button.md-logo :-webkit-any(img,svg){fill:currentcolor;display:block;height:1.2rem;width:auto}.md-header__button.md-logo :-moz-any(img,svg){fill:currentcolor;display:block;height:1.2rem;width:auto}.md-header__button.md-logo :is(img,svg){fill:currentcolor;display:block;height:1.2rem;width:auto}@media screen and (min-width:60em){.md-header__button[for=__search]{display:none}}.no-js .md-header__button[for=__search]{display:none}[dir=rtl] .md-header__button[for=__search] svg{transform:scaleX(-1)}@media screen and (min-width:76.25em){.md-header__button[for=__drawer]{display:none}}.md-header__topic{display:flex;max-width:100%;position:absolute;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;white-space:nowrap}.md-header__topic+.md-header__topic{opacity:0;pointer-events:none;transform:translateX(1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__topic+.md-header__topic{transform:translateX(-1.25rem)}.md-header__topic:first-child{font-weight:700}[dir=ltr] .md-header__title{margin-right:.4rem}[dir=rtl] .md-header__title{margin-left:.4rem}[dir=ltr] .md-header__title{margin-left:1rem}[dir=rtl] .md-header__title{margin-right:1rem}.md-header__title{flex-grow:1;font-size:.9rem;height:2.4rem;line-height:2.4rem}.md-header__title--active .md-header__topic{opacity:0;pointer-events:none;transform:translateX(-1.25rem);transition:transform .4s cubic-bezier(1,.7,.1,.1),opacity .15s;z-index:-1}[dir=rtl] .md-header__title--active .md-header__topic{transform:translateX(1.25rem)}.md-header__title--active .md-header__topic+.md-header__topic{opacity:1;pointer-events:auto;transform:translateX(0);transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .15s;z-index:0}.md-header__title>.md-header__ellipsis{height:100%;position:relative;width:100%}.md-header__option{display:flex;flex-shrink:0;max-width:100%;transition:max-width 0ms .25s,opacity .25s .25s;white-space:nowrap}[data-md-toggle=search]:checked~.md-header .md-header__option{max-width:0;opacity:0;transition:max-width 0ms,opacity 0ms}.md-header__source{display:none}@media screen and (min-width:60em){[dir=ltr] .md-header__source{margin-left:1rem}[dir=rtl] .md-header__source{margin-right:1rem}.md-header__source{display:block;max-width:11.7rem;width:11.7rem}}@media screen and (min-width:76.25em){[dir=ltr] .md-header__source{margin-left:1.4rem}[dir=rtl] .md-header__source{margin-right:1.4rem}}:root{--md-nav-icon--prev:url('data:image/svg+xml;charset=utf-8,');--md-nav-icon--next:url('data:image/svg+xml;charset=utf-8,');--md-toc-icon:url('data:image/svg+xml;charset=utf-8,')}.md-nav{font-size:.7rem;line-height:1.3}.md-nav__title{display:block;font-weight:700;overflow:hidden;padding:0 .6rem;text-overflow:ellipsis}.md-nav__title .md-nav__button{display:none}.md-nav__title .md-nav__button img{height:100%;width:auto}.md-nav__title .md-nav__button.md-logo :-webkit-any(img,svg){fill:currentcolor;display:block;height:2.4rem;max-width:100%;object-fit:contain;width:auto}.md-nav__title .md-nav__button.md-logo :-moz-any(img,svg){fill:currentcolor;display:block;height:2.4rem;max-width:100%;object-fit:contain;width:auto}.md-nav__title .md-nav__button.md-logo :is(img,svg){fill:currentcolor;display:block;height:2.4rem;max-width:100%;object-fit:contain;width:auto}.md-nav__list{list-style:none;margin:0;padding:0}.md-nav__item{padding:0 .6rem}[dir=ltr] .md-nav__item .md-nav__item{padding-right:0}[dir=rtl] .md-nav__item .md-nav__item{padding-left:0}.md-nav__link{align-items:center;cursor:pointer;display:flex;justify-content:space-between;margin-top:.625em;overflow:hidden;scroll-snap-align:start;text-overflow:ellipsis;transition:color 125ms}.md-nav__link--passed{color:var(--md-default-fg-color--light)}.md-nav__item .md-nav__link--active{color:var(--md-typeset-a-color)}.md-nav__item .md-nav__link--index [href]{width:100%}.md-nav__link:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav__link:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav__link:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav__link.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-nav--primary .md-nav__link[for=__toc]{display:none}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{background-color:currentcolor;display:block;height:100%;-webkit-mask-image:var(--md-toc-icon);mask-image:var(--md-toc-icon);width:100%}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:none}.md-nav__link>*{cursor:pointer;display:flex}.md-nav__icon{flex-shrink:0}.md-nav__source{display:none}@media screen and (max-width:76.1875em){.md-nav--primary,.md-nav--primary .md-nav{background-color:var(--md-default-bg-color);display:flex;flex-direction:column;height:100%;left:0;position:absolute;right:0;top:0;z-index:1}.md-nav--primary :-webkit-any(.md-nav__title,.md-nav__item){font-size:.8rem;line-height:1.5}.md-nav--primary :-moz-any(.md-nav__title,.md-nav__item){font-size:.8rem;line-height:1.5}.md-nav--primary :is(.md-nav__title,.md-nav__item){font-size:.8rem;line-height:1.5}.md-nav--primary .md-nav__title{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);cursor:pointer;height:5.6rem;line-height:2.4rem;padding:3rem .8rem .2rem;position:relative;white-space:nowrap}[dir=ltr] .md-nav--primary .md-nav__title .md-nav__icon{left:.4rem}[dir=rtl] .md-nav--primary .md-nav__title .md-nav__icon{right:.4rem}.md-nav--primary .md-nav__title .md-nav__icon{display:block;height:1.2rem;margin:.2rem;position:absolute;top:.4rem;width:1.2rem}.md-nav--primary .md-nav__title .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--prev);mask-image:var(--md-nav-icon--prev);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}.md-nav--primary .md-nav__title~.md-nav__list{background-color:var(--md-default-bg-color);box-shadow:0 .05rem 0 var(--md-default-fg-color--lightest) inset;overflow-y:auto;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;touch-action:pan-y}.md-nav--primary .md-nav__title~.md-nav__list>:first-child{border-top:0}.md-nav--primary .md-nav__title[for=__drawer]{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);font-weight:700}.md-nav--primary .md-nav__title .md-logo{display:block;left:.2rem;margin:.2rem;padding:.4rem;position:absolute;right:.2rem;top:.2rem}.md-nav--primary .md-nav__list{flex:1}.md-nav--primary .md-nav__item{border-top:.05rem solid var(--md-default-fg-color--lightest);padding:0}.md-nav--primary .md-nav__item--active>.md-nav__link{color:var(--md-typeset-a-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__item--active>.md-nav__link:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-nav--primary .md-nav__link{margin-top:0;padding:.6rem .8rem}[dir=ltr] .md-nav--primary .md-nav__link .md-nav__icon{margin-right:-.2rem}[dir=rtl] .md-nav--primary .md-nav__link .md-nav__icon{margin-left:-.2rem}.md-nav--primary .md-nav__link .md-nav__icon{font-size:1.2rem;height:1.2rem;width:1.2rem}.md-nav--primary .md-nav__link .md-nav__icon:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-nav--primary .md-nav__icon:after{transform:scale(-1)}.md-nav--primary .md-nav--secondary .md-nav{background-color:initial;position:static}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-left:1.4rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav__link{padding-right:1.4rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-left:2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav__link{padding-right:2rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-left:2.6rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav__link{padding-right:2.6rem}[dir=ltr] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-left:3.2rem}[dir=rtl] .md-nav--primary .md-nav--secondary .md-nav .md-nav .md-nav .md-nav .md-nav__link{padding-right:3.2rem}.md-nav--secondary{background-color:initial}.md-nav__toggle~.md-nav{display:flex;opacity:0;transform:translateX(100%);transition:transform .25s cubic-bezier(.8,0,.6,1),opacity 125ms 50ms}[dir=rtl] .md-nav__toggle~.md-nav{transform:translateX(-100%)}.md-nav__toggle:checked~.md-nav{opacity:1;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),opacity 125ms 125ms}.md-nav__toggle:checked~.md-nav>.md-nav__list{-webkit-backface-visibility:hidden;backface-visibility:hidden}}@media screen and (max-width:59.9375em){.md-nav--primary .md-nav__link[for=__toc]{display:flex}.md-nav--primary .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--primary .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--primary .md-nav__link[for=__toc]~.md-nav{display:flex}.md-nav__source{background-color:var(--md-primary-fg-color--dark);color:var(--md-primary-bg-color);display:block;padding:0 .2rem}}@media screen and (min-width:60em) and (max-width:76.1875em){.md-nav--integrated .md-nav__link[for=__toc]{display:flex}.md-nav--integrated .md-nav__link[for=__toc] .md-icon:after{content:""}.md-nav--integrated .md-nav__link[for=__toc]+.md-nav__link{display:none}.md-nav--integrated .md-nav__link[for=__toc]~.md-nav{display:flex}}@media screen and (min-width:60em){.md-nav--secondary .md-nav__title[for=__toc]{scroll-snap-align:start}.md-nav--secondary .md-nav__title .md-nav__icon{display:none}}@media screen and (min-width:76.25em){.md-nav{transition:max-height .25s cubic-bezier(.86,0,.07,1)}.md-nav--primary .md-nav__title[for=__drawer]{scroll-snap-align:start}.md-nav--primary .md-nav__title .md-nav__icon,.md-nav__toggle~.md-nav{display:none}.md-nav__toggle:-webkit-any(:checked,:indeterminate)~.md-nav{display:block}.md-nav__toggle:-moz-any(:checked,:indeterminate)~.md-nav{display:block}.md-nav__toggle:is(:checked,:indeterminate)~.md-nav{display:block}.md-nav__item--nested>.md-nav>.md-nav__title{display:none}.md-nav__item--section{display:block;margin:1.25em 0}.md-nav__item--section:last-child{margin-bottom:0}.md-nav__item--section>.md-nav__link{font-weight:700;pointer-events:none}.md-nav__item--section>.md-nav__link--index [href]{pointer-events:auto}.md-nav__item--section>.md-nav__link .md-nav__icon{display:none}.md-nav__item--section>.md-nav{display:block}.md-nav__item--section>.md-nav>.md-nav__list>.md-nav__item{padding:0}.md-nav__icon{border-radius:100%;float:right;height:.9rem;transition:background-color .25s,transform .25s;width:.9rem}[dir=rtl] .md-nav__icon{float:left;transform:rotate(180deg)}.md-nav__icon:hover{background-color:var(--md-accent-fg-color--transparent)}.md-nav__icon:after{background-color:currentcolor;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-nav-icon--next);mask-image:var(--md-nav-icon--next);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:-.1rem;width:100%}.md-nav__item--nested .md-nav__toggle:checked~.md-nav__link .md-nav__icon,.md-nav__item--nested .md-nav__toggle:indeterminate~.md-nav__link .md-nav__icon{transform:rotate(90deg)}.md-nav--lifted>.md-nav__list>.md-nav__item,.md-nav--lifted>.md-nav__list>.md-nav__item--nested,.md-nav--lifted>.md-nav__title{display:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active{display:block;padding:0}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link{font-weight:700;margin-top:0;padding:0 .6rem;pointer-events:none}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link--index [href]{pointer-events:auto}.md-nav--lifted>.md-nav__list>.md-nav__item--active>.md-nav__link .md-nav__icon{display:none}.md-nav--lifted .md-nav[data-md-level="1"]{display:block}[dir=ltr] .md-nav--lifted .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{padding-right:.6rem}[dir=rtl] .md-nav--lifted .md-nav[data-md-level="1"]>.md-nav__list>.md-nav__item{padding-left:.6rem}.md-nav--integrated>.md-nav__list>.md-nav__item--active:not(.md-nav__item--nested){padding:0 .6rem}.md-nav--integrated>.md-nav__list>.md-nav__item--active:not(.md-nav__item--nested)>.md-nav__link{padding:0}[dir=ltr] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-left:.05rem solid var(--md-primary-fg-color)}[dir=rtl] .md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{border-right:.05rem solid var(--md-primary-fg-color)}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary{display:block;margin-bottom:1.25em}.md-nav--integrated>.md-nav__list>.md-nav__item--active .md-nav--secondary>.md-nav__title{display:none}}:root{--md-search-result-icon:url('data:image/svg+xml;charset=utf-8,')}.md-search{position:relative}@media screen and (min-width:60em){.md-search{padding:.2rem 0}}.no-js .md-search{display:none}.md-search__overlay{opacity:0;z-index:1}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__overlay{left:-2.2rem}[dir=rtl] .md-search__overlay{right:-2.2rem}.md-search__overlay{background-color:var(--md-default-bg-color);border-radius:1rem;height:2rem;overflow:hidden;pointer-events:none;position:absolute;top:-1rem;transform-origin:center;transition:transform .3s .1s,opacity .2s .2s;width:2rem}[data-md-toggle=search]:checked~.md-header .md-search__overlay{opacity:1;transition:transform .4s,opacity .1s}}@media screen and (min-width:60em){[dir=ltr] .md-search__overlay{left:0}[dir=rtl] .md-search__overlay{right:0}.md-search__overlay{background-color:rgba(0,0,0,.54);cursor:pointer;height:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0}[data-md-toggle=search]:checked~.md-header .md-search__overlay{height:200vh;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@media screen and (max-width:29.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(45)}}@media screen and (min-width:30em) and (max-width:44.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(60)}}@media screen and (min-width:45em) and (max-width:59.9375em){[data-md-toggle=search]:checked~.md-header .md-search__overlay{transform:scale(75)}}.md-search__inner{-webkit-backface-visibility:hidden;backface-visibility:hidden}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__inner{left:0}[dir=rtl] .md-search__inner{right:0}.md-search__inner{height:0;opacity:0;overflow:hidden;position:fixed;top:0;transform:translateX(5%);transition:width 0ms .3s,height 0ms .3s,transform .15s cubic-bezier(.4,0,.2,1) .15s,opacity .15s .15s;width:0;z-index:2}[dir=rtl] .md-search__inner{transform:translateX(-5%)}[data-md-toggle=search]:checked~.md-header .md-search__inner{height:100%;opacity:1;transform:translateX(0);transition:width 0ms 0ms,height 0ms 0ms,transform .15s cubic-bezier(.1,.7,.1,1) .15s,opacity .15s .15s;width:100%}}@media screen and (min-width:60em){.md-search__inner{float:right;padding:.1rem 0;position:relative;transition:width .25s cubic-bezier(.1,.7,.1,1);width:11.7rem}[dir=rtl] .md-search__inner{float:left}}@media screen and (min-width:60em) and (max-width:76.1875em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:23.4rem}}@media screen and (min-width:76.25em){[data-md-toggle=search]:checked~.md-header .md-search__inner{width:34.4rem}}.md-search__form{background-color:var(--md-default-bg-color);box-shadow:0 0 .6rem transparent;height:2.4rem;position:relative;transition:color .25s,background-color .25s;z-index:2}@media screen and (min-width:60em){.md-search__form{background-color:rgba(0,0,0,.26);border-radius:.1rem;height:1.8rem}.md-search__form:hover{background-color:hsla(0,0%,100%,.12)}}[data-md-toggle=search]:checked~.md-header .md-search__form{background-color:var(--md-default-bg-color);border-radius:.1rem .1rem 0 0;box-shadow:0 0 .6rem rgba(0,0,0,.07);color:var(--md-default-fg-color)}[dir=ltr] .md-search__input{padding-left:3.6rem;padding-right:2.2rem}[dir=rtl] .md-search__input{padding-left:2.2rem;padding-right:3.6rem}.md-search__input{background:transparent;font-size:.9rem;height:100%;position:relative;text-overflow:ellipsis;width:100%;z-index:2}.md-search__input::-ms-input-placeholder{-ms-transition:color .25s;transition:color .25s}.md-search__input::placeholder{transition:color .25s}.md-search__input::-ms-input-placeholder{color:var(--md-default-fg-color--light)}.md-search__input::placeholder,.md-search__input~.md-search__icon{color:var(--md-default-fg-color--light)}.md-search__input::-ms-clear{display:none}@media screen and (max-width:59.9375em){.md-search__input{font-size:.9rem;height:2.4rem;width:100%}}@media screen and (min-width:60em){[dir=ltr] .md-search__input{padding-left:2.2rem}[dir=rtl] .md-search__input{padding-right:2.2rem}.md-search__input{color:inherit;font-size:.8rem}.md-search__input::-ms-input-placeholder{color:var(--md-primary-bg-color--light)}.md-search__input::placeholder{color:var(--md-primary-bg-color--light)}.md-search__input+.md-search__icon{color:var(--md-primary-bg-color)}[data-md-toggle=search]:checked~.md-header .md-search__input{text-overflow:clip}[data-md-toggle=search]:checked~.md-header .md-search__input::-ms-input-placeholder{color:var(--md-default-fg-color--light)}[data-md-toggle=search]:checked~.md-header .md-search__input+.md-search__icon,[data-md-toggle=search]:checked~.md-header .md-search__input::placeholder{color:var(--md-default-fg-color--light)}}.md-search__icon{cursor:pointer;display:inline-block;height:1.2rem;transition:color .25s,opacity .25s;width:1.2rem}.md-search__icon:hover{opacity:.7}[dir=ltr] .md-search__icon[for=__search]{left:.5rem}[dir=rtl] .md-search__icon[for=__search]{right:.5rem}.md-search__icon[for=__search]{position:absolute;top:.3rem;z-index:2}[dir=rtl] .md-search__icon[for=__search] svg{transform:scaleX(-1)}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__icon[for=__search]{left:.8rem}[dir=rtl] .md-search__icon[for=__search]{right:.8rem}.md-search__icon[for=__search]{top:.6rem}.md-search__icon[for=__search] svg:first-child{display:none}}@media screen and (min-width:60em){.md-search__icon[for=__search]{pointer-events:none}.md-search__icon[for=__search] svg:last-child{display:none}}[dir=ltr] .md-search__options{right:.5rem}[dir=rtl] .md-search__options{left:.5rem}.md-search__options{pointer-events:none;position:absolute;top:.3rem;z-index:2}@media screen and (max-width:59.9375em){[dir=ltr] .md-search__options{right:.8rem}[dir=rtl] .md-search__options{left:.8rem}.md-search__options{top:.6rem}}[dir=ltr] .md-search__options>*{margin-left:.2rem}[dir=rtl] .md-search__options>*{margin-right:.2rem}.md-search__options>*{color:var(--md-default-fg-color--light);opacity:0;transform:scale(.75);transition:transform .15s cubic-bezier(.1,.7,.1,1),opacity .15s}.md-search__options>:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>*{opacity:1;pointer-events:auto;transform:scale(1)}[data-md-toggle=search]:checked~.md-header .md-search__input:valid~.md-search__options>:hover{opacity:.7}[dir=ltr] .md-search__suggest{padding-left:3.6rem;padding-right:2.2rem}[dir=rtl] .md-search__suggest{padding-left:2.2rem;padding-right:3.6rem}.md-search__suggest{align-items:center;color:var(--md-default-fg-color--lighter);display:flex;font-size:.9rem;height:100%;opacity:0;position:absolute;top:0;transition:opacity 50ms;white-space:nowrap;width:100%}@media screen and (min-width:60em){[dir=ltr] .md-search__suggest{padding-left:2.2rem}[dir=rtl] .md-search__suggest{padding-right:2.2rem}.md-search__suggest{font-size:.8rem}}[data-md-toggle=search]:checked~.md-header .md-search__suggest{opacity:1;transition:opacity .3s .1s}[dir=ltr] .md-search__output{border-bottom-left-radius:.1rem}[dir=ltr] .md-search__output,[dir=rtl] .md-search__output{border-bottom-right-radius:.1rem}[dir=rtl] .md-search__output{border-bottom-left-radius:.1rem}.md-search__output{overflow:hidden;position:absolute;width:100%;z-index:1}@media screen and (max-width:59.9375em){.md-search__output{bottom:0;top:2.4rem}}@media screen and (min-width:60em){.md-search__output{opacity:0;top:1.9rem;transition:opacity .4s}[data-md-toggle=search]:checked~.md-header .md-search__output{box-shadow:var(--md-shadow-z3);opacity:1}}.md-search__scrollwrap{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);height:100%;overflow-y:auto;touch-action:pan-y}@media (-webkit-max-device-pixel-ratio:1),(max-resolution:1dppx){.md-search__scrollwrap{transform:translateZ(0)}}@media screen and (min-width:60em) and (max-width:76.1875em){.md-search__scrollwrap{width:23.4rem}}@media screen and (min-width:76.25em){.md-search__scrollwrap{width:34.4rem}}@media screen and (min-width:60em){.md-search__scrollwrap{max-height:0;scrollbar-color:var(--md-default-fg-color--lighter) transparent;scrollbar-width:thin}[data-md-toggle=search]:checked~.md-header .md-search__scrollwrap{max-height:75vh}.md-search__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) transparent}.md-search__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-search__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-search__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}}.md-search-result{color:var(--md-default-fg-color);word-break:break-word}.md-search-result__meta{background-color:var(--md-default-fg-color--lightest);color:var(--md-default-fg-color--light);font-size:.64rem;line-height:1.8rem;padding:0 .8rem;scroll-snap-align:start}@media screen and (min-width:60em){[dir=ltr] .md-search-result__meta{padding-left:2.2rem}[dir=rtl] .md-search-result__meta{padding-right:2.2rem}}.md-search-result__list{list-style:none;margin:0;padding:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.md-search-result__item{box-shadow:0 -.05rem var(--md-default-fg-color--lightest)}.md-search-result__item:first-child{box-shadow:none}.md-search-result__link{display:block;outline:none;scroll-snap-align:start;transition:background-color .25s}.md-search-result__link:-webkit-any(:focus,:hover){background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:-moz-any(:focus,:hover){background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:is(:focus,:hover){background-color:var(--md-accent-fg-color--transparent)}.md-search-result__link:last-child p:last-child{margin-bottom:.6rem}.md-search-result__more summary{color:var(--md-typeset-a-color);cursor:pointer;display:block;font-size:.64rem;outline:none;padding:.75em .8rem;scroll-snap-align:start;transition:color .25s,background-color .25s}@media screen and (min-width:60em){[dir=ltr] .md-search-result__more summary{padding-left:2.2rem}[dir=rtl] .md-search-result__more summary{padding-right:2.2rem}}.md-search-result__more summary:-webkit-any(:focus,:hover){background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-search-result__more summary:-moz-any(:focus,:hover){background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-search-result__more summary:is(:focus,:hover){background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-search-result__more summary::marker{display:none}.md-search-result__more summary::-webkit-details-marker{display:none}.md-search-result__more summary~*>*{opacity:.65}.md-search-result__article{overflow:hidden;padding:0 .8rem;position:relative}@media screen and (min-width:60em){[dir=ltr] .md-search-result__article{padding-left:2.2rem}[dir=rtl] .md-search-result__article{padding-right:2.2rem}}.md-search-result__article--document .md-search-result__title{font-size:.8rem;font-weight:400;line-height:1.4;margin:.55rem 0}[dir=ltr] .md-search-result__icon{left:0}[dir=rtl] .md-search-result__icon{right:0}.md-search-result__icon{color:var(--md-default-fg-color--light);height:1.2rem;margin:.5rem;position:absolute;width:1.2rem}@media screen and (max-width:59.9375em){.md-search-result__icon{display:none}}.md-search-result__icon:after{background-color:currentcolor;content:"";display:inline-block;height:100%;-webkit-mask-image:var(--md-search-result-icon);mask-image:var(--md-search-result-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:100%}[dir=rtl] .md-search-result__icon:after{transform:scaleX(-1)}.md-search-result__title{font-size:.64rem;font-weight:700;line-height:1.6;margin:.5em 0}.md-search-result__teaser{-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--md-default-fg-color--light);display:-webkit-box;font-size:.64rem;line-height:1.6;margin:.5em 0;max-height:2rem;overflow:hidden;text-overflow:ellipsis}@media screen and (max-width:44.9375em){.md-search-result__teaser{-webkit-line-clamp:3;max-height:3rem}}@media screen and (min-width:60em) and (max-width:76.1875em){.md-search-result__teaser{-webkit-line-clamp:3;max-height:3rem}}.md-search-result__teaser mark{background-color:initial;text-decoration:underline}.md-search-result__terms{font-size:.64rem;font-style:italic;margin:.5em 0}.md-search-result mark{background-color:initial;color:var(--md-accent-fg-color)}.md-select{position:relative;z-index:1}.md-select__inner{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);left:50%;margin-top:.2rem;max-height:0;opacity:0;position:absolute;top:calc(100% - .2rem);transform:translate3d(-50%,.3rem,0);transition:transform .25s 375ms,opacity .25s .25s,max-height 0ms .5s}.md-select:-webkit-any(:focus-within,:hover) .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);-webkit-transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms;transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select:-moz-any(:focus-within,:hover) .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);-moz-transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms;transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select:is(:focus-within,:hover) .md-select__inner{max-height:10rem;opacity:1;transform:translate3d(-50%,0,0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height 0ms}.md-select__inner:after{border-bottom:.2rem solid transparent;border-bottom-color:var(--md-default-bg-color);border-left:.2rem solid transparent;border-right:.2rem solid transparent;border-top:0;content:"";height:0;left:50%;margin-left:-.2rem;margin-top:-.2rem;position:absolute;top:0;width:0}.md-select__list{border-radius:.1rem;font-size:.8rem;list-style-type:none;margin:0;max-height:inherit;overflow:auto;padding:0}.md-select__item{line-height:1.8rem}[dir=ltr] .md-select__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-select__link{padding-left:1.2rem;padding-right:.6rem}.md-select__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:background-color .25s,color .25s;width:100%}.md-select__link:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-select__link:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-select__link:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-select__link:focus{background-color:var(--md-default-fg-color--lightest)}.md-sidebar{align-self:flex-start;flex-shrink:0;padding:1.2rem 0;position:-webkit-sticky;position:sticky;top:2.4rem;width:12.1rem}@media print{.md-sidebar{display:none}}@media screen and (max-width:76.1875em){[dir=ltr] .md-sidebar--primary{left:-12.1rem}[dir=rtl] .md-sidebar--primary{right:-12.1rem}.md-sidebar--primary{background-color:var(--md-default-bg-color);display:block;height:100%;position:fixed;top:0;transform:translateX(0);transition:transform .25s cubic-bezier(.4,0,.2,1),box-shadow .25s;width:12.1rem;z-index:5}[data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{box-shadow:var(--md-shadow-z3);transform:translateX(12.1rem)}[dir=rtl] [data-md-toggle=drawer]:checked~.md-container .md-sidebar--primary{transform:translateX(-12.1rem)}.md-sidebar--primary .md-sidebar__scrollwrap{bottom:0;left:0;margin:0;overflow:hidden;position:absolute;right:0;-ms-scroll-snap-type:none;scroll-snap-type:none;top:0}}@media screen and (min-width:76.25em){.md-sidebar{height:0}.no-js .md-sidebar{height:auto}}.md-sidebar--secondary{display:none;order:2}@media screen and (min-width:60em){.md-sidebar--secondary{height:0}.no-js .md-sidebar--secondary{height:auto}.md-sidebar--secondary:not([hidden]){display:block}.md-sidebar--secondary .md-sidebar__scrollwrap{touch-action:pan-y}}.md-sidebar__scrollwrap{-webkit-backface-visibility:hidden;backface-visibility:hidden;margin:0 .2rem;overflow-y:auto;scrollbar-color:var(--md-default-fg-color--lighter) transparent;scrollbar-width:thin}.md-sidebar__scrollwrap:hover{scrollbar-color:var(--md-accent-fg-color) transparent}.md-sidebar__scrollwrap::-webkit-scrollbar{height:.2rem;width:.2rem}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb{background-color:var(--md-default-fg-color--lighter)}.md-sidebar__scrollwrap::-webkit-scrollbar-thumb:hover{background-color:var(--md-accent-fg-color)}@media screen and (max-width:76.1875em){.md-overlay{background-color:rgba(0,0,0,.54);height:0;opacity:0;position:fixed;top:0;transition:width 0ms .25s,height 0ms .25s,opacity .25s;width:0;z-index:5}[data-md-toggle=drawer]:checked~.md-overlay{height:100%;opacity:1;transition:width 0ms,height 0ms,opacity .25s;width:100%}}@-webkit-keyframes facts{0%{height:0}to{height:.65rem}}@keyframes facts{0%{height:0}to{height:.65rem}}@-webkit-keyframes fact{0%{opacity:0;transform:translateY(100%)}50%{opacity:0}to{opacity:1;transform:translateY(0)}}@keyframes fact{0%{opacity:0;transform:translateY(100%)}50%{opacity:0}to{opacity:1;transform:translateY(0)}}:root{--md-source-forks-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-repositories-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-stars-icon:url('data:image/svg+xml;charset=utf-8,');--md-source-version-icon:url('data:image/svg+xml;charset=utf-8,')}.md-source{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;font-size:.65rem;line-height:1.2;outline-color:var(--md-accent-fg-color);transition:opacity .25s;white-space:nowrap}.md-source:hover{opacity:.7}.md-source__icon{display:inline-block;height:2.4rem;vertical-align:middle;width:2rem}[dir=ltr] .md-source__icon svg{margin-left:.6rem}[dir=rtl] .md-source__icon svg{margin-right:.6rem}.md-source__icon svg{margin-top:.6rem}[dir=ltr] .md-source__icon+.md-source__repository{margin-left:-2rem}[dir=rtl] .md-source__icon+.md-source__repository{margin-right:-2rem}[dir=ltr] .md-source__icon+.md-source__repository{padding-left:2rem}[dir=rtl] .md-source__icon+.md-source__repository{padding-right:2rem}[dir=ltr] .md-source__repository{margin-left:.6rem}[dir=rtl] .md-source__repository{margin-right:.6rem}.md-source__repository{display:inline-block;max-width:calc(100% - 1.2rem);overflow:hidden;text-overflow:ellipsis;vertical-align:middle}.md-source__facts{display:flex;font-size:.55rem;gap:.4rem;list-style-type:none;margin:.1rem 0 0;opacity:.75;overflow:hidden;padding:0;width:100%}.md-source__repository--active .md-source__facts{-webkit-animation:facts .25s ease-in;animation:facts .25s ease-in}.md-source__fact{overflow:hidden;text-overflow:ellipsis}.md-source__repository--active .md-source__fact{-webkit-animation:fact .4s ease-out;animation:fact .4s ease-out}[dir=ltr] .md-source__fact:before{margin-right:.1rem}[dir=rtl] .md-source__fact:before{margin-left:.1rem}.md-source__fact:before{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;vertical-align:text-top;width:.6rem}.md-source__fact:nth-child(1n+2){flex-shrink:0}.md-source__fact--version:before{-webkit-mask-image:var(--md-source-version-icon);mask-image:var(--md-source-version-icon)}.md-source__fact--stars:before{-webkit-mask-image:var(--md-source-stars-icon);mask-image:var(--md-source-stars-icon)}.md-source__fact--forks:before{-webkit-mask-image:var(--md-source-forks-icon);mask-image:var(--md-source-forks-icon)}.md-source__fact--repositories:before{-webkit-mask-image:var(--md-source-repositories-icon);mask-image:var(--md-source-repositories-icon)}.md-tabs{background-color:var(--md-primary-fg-color);color:var(--md-primary-bg-color);display:block;line-height:1.3;overflow:auto;width:100%;z-index:3}@media print{.md-tabs{display:none}}@media screen and (max-width:76.1875em){.md-tabs{display:none}}.md-tabs[hidden]{pointer-events:none}[dir=ltr] .md-tabs__list{margin-left:.2rem}[dir=rtl] .md-tabs__list{margin-right:.2rem}.md-tabs__list{contain:content;list-style:none;margin:0;padding:0;white-space:nowrap}.md-tabs__item{display:inline-block;height:2.4rem;padding-left:.6rem;padding-right:.6rem}.md-tabs__link{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:block;font-size:.7rem;margin-top:.8rem;opacity:.7;outline-color:var(--md-accent-fg-color);outline-offset:.2rem;transition:transform .4s cubic-bezier(.1,.7,.1,1),opacity .25s}.md-tabs__link--active,.md-tabs__link:-webkit-any(:focus,:hover){color:inherit;opacity:1}.md-tabs__link--active,.md-tabs__link:-moz-any(:focus,:hover){color:inherit;opacity:1}.md-tabs__link--active,.md-tabs__link:is(:focus,:hover){color:inherit;opacity:1}.md-tabs__item:nth-child(2) .md-tabs__link{transition-delay:20ms}.md-tabs__item:nth-child(3) .md-tabs__link{transition-delay:40ms}.md-tabs__item:nth-child(4) .md-tabs__link{transition-delay:60ms}.md-tabs__item:nth-child(5) .md-tabs__link{transition-delay:80ms}.md-tabs__item:nth-child(6) .md-tabs__link{transition-delay:.1s}.md-tabs__item:nth-child(7) .md-tabs__link{transition-delay:.12s}.md-tabs__item:nth-child(8) .md-tabs__link{transition-delay:.14s}.md-tabs__item:nth-child(9) .md-tabs__link{transition-delay:.16s}.md-tabs__item:nth-child(10) .md-tabs__link{transition-delay:.18s}.md-tabs__item:nth-child(11) .md-tabs__link{transition-delay:.2s}.md-tabs__item:nth-child(12) .md-tabs__link{transition-delay:.22s}.md-tabs__item:nth-child(13) .md-tabs__link{transition-delay:.24s}.md-tabs__item:nth-child(14) .md-tabs__link{transition-delay:.26s}.md-tabs__item:nth-child(15) .md-tabs__link{transition-delay:.28s}.md-tabs__item:nth-child(16) .md-tabs__link{transition-delay:.3s}.md-tabs[hidden] .md-tabs__link{opacity:0;transform:translateY(50%);transition:transform 0ms .1s,opacity .1s}.md-tags{margin-bottom:.75em}[dir=ltr] .md-tag{margin-right:.5em}[dir=rtl] .md-tag{margin-left:.5em}.md-tag{background:var(--md-default-fg-color--lightest);border-radius:.4rem;display:inline-block;font-size:.64rem;font-weight:700;line-height:1.6;margin-bottom:.5em;padding:.3125em .9375em}.md-tag[href]{-webkit-tap-highlight-color:transparent;color:inherit;outline:none;transition:color 125ms,background-color 125ms}.md-tag[href]:focus,.md-tag[href]:hover{background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}[id]>.md-tag{vertical-align:text-top}@-webkit-keyframes pulse{0%{box-shadow:0 0 0 0 var(--md-default-fg-color--lightest);transform:scale(.95)}75%{box-shadow:0 0 0 .625em transparent;transform:scale(1)}to{box-shadow:0 0 0 0 transparent;transform:scale(.95)}}@keyframes pulse{0%{box-shadow:0 0 0 0 var(--md-default-fg-color--lightest);transform:scale(.95)}75%{box-shadow:0 0 0 .625em transparent;transform:scale(1)}to{box-shadow:0 0 0 0 transparent;transform:scale(.95)}}:root{--md-tooltip-width:20rem}.md-tooltip{-webkit-backface-visibility:hidden;backface-visibility:hidden;background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);left:clamp(var(--md-tooltip-0,0rem) + .8rem,var(--md-tooltip-x),100vw + var(--md-tooltip-0,0rem) + .8rem - var(--md-tooltip-width) - 2 * .8rem);max-height:0;max-width:calc(100vw - 1.6rem);opacity:0;position:absolute;top:var(--md-tooltip-y);transform:translateY(-.4rem);transition:transform 0ms .25s,opacity .25s,max-height 0ms .25s,z-index .25s;width:var(--md-tooltip-width);z-index:0}:focus-within>.md-tooltip{max-height:1000%;opacity:1;transform:translateY(0);transition:transform .25s cubic-bezier(.1,.7,.1,1),opacity .25s,max-height .25s,z-index 0ms}.focus-visible>.md-tooltip{outline:var(--md-accent-fg-color) auto}.md-tooltip__inner{font-size:.64rem;padding:.8rem}.md-tooltip__inner.md-typeset>:first-child{margin-top:0}.md-tooltip__inner.md-typeset>:last-child{margin-bottom:0}.md-annotation{outline:none;white-space:normal}[dir=rtl] .md-annotation{direction:rtl}.md-annotation:not([hidden]){display:inline-block;line-height:1.325}.md-annotation:focus-within>*{z-index:2}.md-annotation__inner{font-family:var(--md-text-font-family);top:calc(var(--md-tooltip-y) + 1.2ch)}:not(:focus-within)>.md-annotation__inner{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.md-annotation__index{color:#fff;cursor:pointer;margin:0 1ch;position:relative;transition:z-index .25s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:0}.md-annotation__index:after{background-color:var(--md-default-fg-color--lighter);border-radius:2ch;content:"";height:2.2ch;left:-.126em;margin:0 -.4ch;padding:0 .4ch;position:absolute;transition:color .25s,background-color .25s;width:calc(100% + 1.2ch);width:max(2.2ch,100% + 1.2ch);z-index:-1}@media not all and (prefers-reduced-motion){[data-md-visible]>.md-annotation__index:after{-webkit-animation:pulse 2s infinite;animation:pulse 2s infinite}}:-webkit-any(:focus-within,:hover)>.md-annotation__index:after{background-color:var(--md-accent-fg-color)}:-moz-any(:focus-within,:hover)>.md-annotation__index:after{background-color:var(--md-accent-fg-color)}:is(:focus-within,:hover)>.md-annotation__index:after{background-color:var(--md-accent-fg-color)}:focus-within>.md-annotation__index:after{-webkit-animation:none;animation:none;transition:color .25s,background-color .25s}.md-annotation__index [data-md-annotation-id]{display:inline-block;line-height:90%}.md-annotation__index [data-md-annotation-id]:before{content:attr(data-md-annotation-id);display:inline-block;padding-bottom:.1em;transform:scale(1.15);transition:transform .4s cubic-bezier(.1,.7,.1,1);vertical-align:.065em}@media not print{.md-annotation__index [data-md-annotation-id]:before{content:"+"}:focus-within>.md-annotation__index [data-md-annotation-id]:before{transform:scale(1.25) rotate(45deg)}}:-webkit-any(:focus-within,:hover)>.md-annotation__index{color:var(--md-accent-bg-color)}:-moz-any(:focus-within,:hover)>.md-annotation__index{color:var(--md-accent-bg-color)}:is(:focus-within,:hover)>.md-annotation__index{color:var(--md-accent-bg-color)}:focus-within>.md-annotation__index{-webkit-animation:none;animation:none;transition:none}[dir=ltr] .md-top{margin-left:50%}[dir=rtl] .md-top{margin-right:50%}.md-top{background-color:var(--md-default-bg-color);border-radius:1.6rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color--light);display:block;font-size:.7rem;outline:none;padding:.4rem .8rem;position:fixed;top:3.2rem;transform:translate(-50%);transition:color 125ms,background-color 125ms,transform 125ms cubic-bezier(.4,0,.2,1),opacity 125ms;z-index:2}@media print{.md-top{display:none}}[dir=rtl] .md-top{transform:translate(50%)}.md-top[hidden]{opacity:0;pointer-events:none;transform:translate(-50%,.2rem);transition-duration:0ms}[dir=rtl] .md-top[hidden]{transform:translate(50%,.2rem)}.md-top:-webkit-any(:focus,:hover){background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-top:-moz-any(:focus,:hover){background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-top:is(:focus,:hover){background-color:var(--md-accent-fg-color);color:var(--md-accent-bg-color)}.md-top svg{display:inline-block;vertical-align:-.5em}@-webkit-keyframes hoverfix{0%{pointer-events:none}}@keyframes hoverfix{0%{pointer-events:none}}:root{--md-version-icon:url('data:image/svg+xml;charset=utf-8,')}.md-version{flex-shrink:0;font-size:.8rem;height:2.4rem}[dir=ltr] .md-version__current{margin-left:1.4rem;margin-right:.4rem}[dir=rtl] .md-version__current{margin-left:.4rem;margin-right:1.4rem}.md-version__current{color:inherit;cursor:pointer;outline:none;position:relative;top:.05rem}[dir=ltr] .md-version__current:after{margin-left:.4rem}[dir=rtl] .md-version__current:after{margin-right:.4rem}.md-version__current:after{background-color:currentcolor;content:"";display:inline-block;height:.6rem;-webkit-mask-image:var(--md-version-icon);mask-image:var(--md-version-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;width:.4rem}.md-version__list{background-color:var(--md-default-bg-color);border-radius:.1rem;box-shadow:var(--md-shadow-z2);color:var(--md-default-fg-color);list-style-type:none;margin:.2rem .8rem;max-height:0;opacity:0;overflow:auto;padding:0;position:absolute;-ms-scroll-snap-type:y mandatory;scroll-snap-type:y mandatory;top:.15rem;transition:max-height 0ms .5s,opacity .25s .25s;z-index:3}.md-version:-webkit-any(:focus-within,:hover) .md-version__list{max-height:10rem;opacity:1;-webkit-transition:max-height 0ms,opacity .25s;transition:max-height 0ms,opacity .25s}.md-version:-moz-any(:focus-within,:hover) .md-version__list{max-height:10rem;opacity:1;-moz-transition:max-height 0ms,opacity .25s;transition:max-height 0ms,opacity .25s}.md-version:is(:focus-within,:hover) .md-version__list{max-height:10rem;opacity:1;transition:max-height 0ms,opacity .25s}@media (pointer:coarse){.md-version:hover .md-version__list{-webkit-animation:hoverfix .25s forwards;animation:hoverfix .25s forwards}.md-version:focus-within .md-version__list{-webkit-animation:none;animation:none}}.md-version__item{line-height:1.8rem}[dir=ltr] .md-version__link{padding-left:.6rem;padding-right:1.2rem}[dir=rtl] .md-version__link{padding-left:1.2rem;padding-right:.6rem}.md-version__link{cursor:pointer;display:block;outline:none;scroll-snap-align:start;transition:color .25s,background-color .25s;white-space:nowrap;width:100%}.md-version__link:-webkit-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-version__link:-moz-any(:focus,:hover){color:var(--md-accent-fg-color)}.md-version__link:is(:focus,:hover){color:var(--md-accent-fg-color)}.md-version__link:focus{background-color:var(--md-default-fg-color--lightest)}:root{--md-admonition-icon--note:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--abstract:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--info:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--tip:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--success:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--question:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--warning:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--failure:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--danger:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--bug:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--example:url('data:image/svg+xml;charset=utf-8,');--md-admonition-icon--quote:url('data:image/svg+xml;charset=utf-8,')}.md-typeset :-webkit-any(.admonition,details){background-color:var(--md-admonition-bg-color);border:0 solid #448aff;border-radius:.1rem;box-shadow:var(--md-shadow-z1);color:var(--md-admonition-fg-color);display:flow-root;font-size:.64rem;margin:1.5625em 0;padding:0 .6rem;page-break-inside:avoid}.md-typeset :-moz-any(.admonition,details){background-color:var(--md-admonition-bg-color);border:0 solid #448aff;border-radius:.1rem;box-shadow:var(--md-shadow-z1);color:var(--md-admonition-fg-color);display:flow-root;font-size:.64rem;margin:1.5625em 0;padding:0 .6rem;page-break-inside:avoid}[dir=ltr] .md-typeset :-webkit-any(.admonition,details){border-left-width:.2rem}[dir=ltr] .md-typeset :-moz-any(.admonition,details){border-left-width:.2rem}[dir=ltr] .md-typeset :is(.admonition,details){border-left-width:.2rem}[dir=rtl] .md-typeset :-webkit-any(.admonition,details){border-right-width:.2rem}[dir=rtl] .md-typeset :-moz-any(.admonition,details){border-right-width:.2rem}[dir=rtl] .md-typeset :is(.admonition,details){border-right-width:.2rem}.md-typeset :is(.admonition,details){background-color:var(--md-admonition-bg-color);border:0 solid #448aff;border-radius:.1rem;box-shadow:var(--md-shadow-z1);color:var(--md-admonition-fg-color);display:flow-root;font-size:.64rem;margin:1.5625em 0;padding:0 .6rem;page-break-inside:avoid}@media print{.md-typeset :-webkit-any(.admonition,details){box-shadow:none}.md-typeset :-moz-any(.admonition,details){box-shadow:none}.md-typeset :is(.admonition,details){box-shadow:none}}.md-typeset :-webkit-any(.admonition,details)>*{box-sizing:border-box}.md-typeset :-moz-any(.admonition,details)>*{box-sizing:border-box}.md-typeset :is(.admonition,details)>*{box-sizing:border-box}.md-typeset :-webkit-any(.admonition,details) :-webkit-any(.admonition,details){margin-bottom:1em;margin-top:1em}.md-typeset :-moz-any(.admonition,details) :-moz-any(.admonition,details){margin-bottom:1em;margin-top:1em}.md-typeset :is(.admonition,details) :is(.admonition,details){margin-bottom:1em;margin-top:1em}.md-typeset :-webkit-any(.admonition,details) .md-typeset__scrollwrap{margin:1em -.6rem}.md-typeset :-moz-any(.admonition,details) .md-typeset__scrollwrap{margin:1em -.6rem}.md-typeset :is(.admonition,details) .md-typeset__scrollwrap{margin:1em -.6rem}.md-typeset :-webkit-any(.admonition,details) .md-typeset__table{padding:0 .6rem}.md-typeset :-moz-any(.admonition,details) .md-typeset__table{padding:0 .6rem}.md-typeset :is(.admonition,details) .md-typeset__table{padding:0 .6rem}.md-typeset :-webkit-any(.admonition,details)>.tabbed-set:only-child{margin-top:0}.md-typeset :-moz-any(.admonition,details)>.tabbed-set:only-child{margin-top:0}.md-typeset :is(.admonition,details)>.tabbed-set:only-child{margin-top:0}html .md-typeset :-webkit-any(.admonition,details)>:last-child{margin-bottom:.6rem}html .md-typeset :-moz-any(.admonition,details)>:last-child{margin-bottom:.6rem}html .md-typeset :is(.admonition,details)>:last-child{margin-bottom:.6rem}.md-typeset :-webkit-any(.admonition-title,summary){background-color:rgba(68,138,255,.1);border:none;font-weight:700;margin-bottom:0;margin-top:0;padding-bottom:.4rem;padding-top:.4rem;position:relative}.md-typeset :-moz-any(.admonition-title,summary){background-color:rgba(68,138,255,.1);border:none;font-weight:700;margin-bottom:0;margin-top:0;padding-bottom:.4rem;padding-top:.4rem;position:relative}[dir=ltr] .md-typeset :-webkit-any(.admonition-title,summary){margin-left:-.8rem;margin-right:-.6rem}[dir=ltr] .md-typeset :-moz-any(.admonition-title,summary){margin-left:-.8rem;margin-right:-.6rem}[dir=ltr] .md-typeset :is(.admonition-title,summary){margin-left:-.8rem;margin-right:-.6rem}[dir=rtl] .md-typeset :-webkit-any(.admonition-title,summary){margin-left:-.6rem;margin-right:-.8rem}[dir=rtl] .md-typeset :-moz-any(.admonition-title,summary){margin-left:-.6rem;margin-right:-.8rem}[dir=rtl] .md-typeset :is(.admonition-title,summary){margin-left:-.6rem;margin-right:-.8rem}[dir=ltr] .md-typeset :-webkit-any(.admonition-title,summary){padding-left:2.2rem;padding-right:.6rem}[dir=ltr] .md-typeset :-moz-any(.admonition-title,summary){padding-left:2.2rem;padding-right:.6rem}[dir=ltr] .md-typeset :is(.admonition-title,summary){padding-left:2.2rem;padding-right:.6rem}[dir=rtl] .md-typeset :-webkit-any(.admonition-title,summary){padding-left:.6rem;padding-right:2.2rem}[dir=rtl] .md-typeset :-moz-any(.admonition-title,summary){padding-left:.6rem;padding-right:2.2rem}[dir=rtl] .md-typeset :is(.admonition-title,summary){padding-left:.6rem;padding-right:2.2rem}[dir=ltr] .md-typeset :-webkit-any(.admonition-title,summary){border-left-width:.2rem}[dir=ltr] .md-typeset :-moz-any(.admonition-title,summary){border-left-width:.2rem}[dir=ltr] .md-typeset :is(.admonition-title,summary){border-left-width:.2rem}[dir=rtl] .md-typeset :-webkit-any(.admonition-title,summary){border-right-width:.2rem}[dir=rtl] .md-typeset :-moz-any(.admonition-title,summary){border-right-width:.2rem}[dir=rtl] .md-typeset :is(.admonition-title,summary){border-right-width:.2rem}[dir=ltr] .md-typeset :-webkit-any(.admonition-title,summary){border-top-left-radius:.1rem}[dir=ltr] .md-typeset :-moz-any(.admonition-title,summary){border-top-left-radius:.1rem}[dir=ltr] .md-typeset :is(.admonition-title,summary){border-top-left-radius:.1rem}[dir=rtl] .md-typeset :-webkit-any(.admonition-title,summary){border-top-right-radius:.1rem}[dir=rtl] .md-typeset :-moz-any(.admonition-title,summary){border-top-right-radius:.1rem}[dir=rtl] .md-typeset :is(.admonition-title,summary){border-top-right-radius:.1rem}[dir=ltr] .md-typeset :-webkit-any(.admonition-title,summary){border-top-right-radius:.1rem}[dir=ltr] .md-typeset :-moz-any(.admonition-title,summary){border-top-right-radius:.1rem}[dir=ltr] .md-typeset :is(.admonition-title,summary){border-top-right-radius:.1rem}[dir=rtl] .md-typeset :-webkit-any(.admonition-title,summary){border-top-left-radius:.1rem}[dir=rtl] .md-typeset :-moz-any(.admonition-title,summary){border-top-left-radius:.1rem}[dir=rtl] .md-typeset :is(.admonition-title,summary){border-top-left-radius:.1rem}.md-typeset :is(.admonition-title,summary){background-color:rgba(68,138,255,.1);border:none;font-weight:700;margin-bottom:0;margin-top:0;padding-bottom:.4rem;padding-top:.4rem;position:relative}html .md-typeset :-webkit-any(.admonition-title,summary):last-child{margin-bottom:0}html .md-typeset :-moz-any(.admonition-title,summary):last-child{margin-bottom:0}html .md-typeset :is(.admonition-title,summary):last-child{margin-bottom:0}.md-typeset :-webkit-any(.admonition-title,summary):before{background-color:#448aff;content:"";height:1rem;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;width:1rem}.md-typeset :-moz-any(.admonition-title,summary):before{background-color:#448aff;content:"";height:1rem;mask-image:var(--md-admonition-icon--note);mask-repeat:no-repeat;mask-size:contain;position:absolute;top:.625em;width:1rem}[dir=ltr] .md-typeset :-webkit-any(.admonition-title,summary):before{left:.8rem}[dir=ltr] .md-typeset :-moz-any(.admonition-title,summary):before{left:.8rem}[dir=ltr] .md-typeset :is(.admonition-title,summary):before{left:.8rem}[dir=rtl] .md-typeset :-webkit-any(.admonition-title,summary):before{right:.8rem}[dir=rtl] .md-typeset :-moz-any(.admonition-title,summary):before{right:.8rem}[dir=rtl] .md-typeset :is(.admonition-title,summary):before{right:.8rem}.md-typeset :is(.admonition-title,summary):before{background-color:#448aff;content:"";height:1rem;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;width:1rem}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.note){border-color:#448aff}.md-typeset :-moz-any(.admonition,details):-moz-any(.note){border-color:#448aff}.md-typeset :is(.admonition,details):is(.note){border-color:#448aff}.md-typeset :-webkit-any(.note)>:-webkit-any(.admonition-title,summary){background-color:rgba(68,138,255,.1)}.md-typeset :-moz-any(.note)>:-moz-any(.admonition-title,summary){background-color:rgba(68,138,255,.1)}.md-typeset :is(.note)>:is(.admonition-title,summary){background-color:rgba(68,138,255,.1)}.md-typeset :-webkit-any(.note)>:-webkit-any(.admonition-title,summary):before{background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.note)>:-moz-any(.admonition-title,summary):before{background-color:#448aff;mask-image:var(--md-admonition-icon--note);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.note)>:is(.admonition-title,summary):before{background-color:#448aff;-webkit-mask-image:var(--md-admonition-icon--note);mask-image:var(--md-admonition-icon--note);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.abstract,.summary,.tldr){border-color:#00b0ff}.md-typeset :-moz-any(.admonition,details):-moz-any(.abstract,.summary,.tldr){border-color:#00b0ff}.md-typeset :is(.admonition,details):is(.abstract,.summary,.tldr){border-color:#00b0ff}.md-typeset :-webkit-any(.abstract,.summary,.tldr)>:-webkit-any(.admonition-title,summary){background-color:rgba(0,176,255,.1)}.md-typeset :-moz-any(.abstract,.summary,.tldr)>:-moz-any(.admonition-title,summary){background-color:rgba(0,176,255,.1)}.md-typeset :is(.abstract,.summary,.tldr)>:is(.admonition-title,summary){background-color:rgba(0,176,255,.1)}.md-typeset :-webkit-any(.abstract,.summary,.tldr)>:-webkit-any(.admonition-title,summary):before{background-color:#00b0ff;-webkit-mask-image:var(--md-admonition-icon--abstract);mask-image:var(--md-admonition-icon--abstract);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.abstract,.summary,.tldr)>:-moz-any(.admonition-title,summary):before{background-color:#00b0ff;mask-image:var(--md-admonition-icon--abstract);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.abstract,.summary,.tldr)>:is(.admonition-title,summary):before{background-color:#00b0ff;-webkit-mask-image:var(--md-admonition-icon--abstract);mask-image:var(--md-admonition-icon--abstract);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.info,.todo){border-color:#00b8d4}.md-typeset :-moz-any(.admonition,details):-moz-any(.info,.todo){border-color:#00b8d4}.md-typeset :is(.admonition,details):is(.info,.todo){border-color:#00b8d4}.md-typeset :-webkit-any(.info,.todo)>:-webkit-any(.admonition-title,summary){background-color:rgba(0,184,212,.1)}.md-typeset :-moz-any(.info,.todo)>:-moz-any(.admonition-title,summary){background-color:rgba(0,184,212,.1)}.md-typeset :is(.info,.todo)>:is(.admonition-title,summary){background-color:rgba(0,184,212,.1)}.md-typeset :-webkit-any(.info,.todo)>:-webkit-any(.admonition-title,summary):before{background-color:#00b8d4;-webkit-mask-image:var(--md-admonition-icon--info);mask-image:var(--md-admonition-icon--info);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.info,.todo)>:-moz-any(.admonition-title,summary):before{background-color:#00b8d4;mask-image:var(--md-admonition-icon--info);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.info,.todo)>:is(.admonition-title,summary):before{background-color:#00b8d4;-webkit-mask-image:var(--md-admonition-icon--info);mask-image:var(--md-admonition-icon--info);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.tip,.hint,.important){border-color:#00bfa5}.md-typeset :-moz-any(.admonition,details):-moz-any(.tip,.hint,.important){border-color:#00bfa5}.md-typeset :is(.admonition,details):is(.tip,.hint,.important){border-color:#00bfa5}.md-typeset :-webkit-any(.tip,.hint,.important)>:-webkit-any(.admonition-title,summary){background-color:rgba(0,191,165,.1)}.md-typeset :-moz-any(.tip,.hint,.important)>:-moz-any(.admonition-title,summary){background-color:rgba(0,191,165,.1)}.md-typeset :is(.tip,.hint,.important)>:is(.admonition-title,summary){background-color:rgba(0,191,165,.1)}.md-typeset :-webkit-any(.tip,.hint,.important)>:-webkit-any(.admonition-title,summary):before{background-color:#00bfa5;-webkit-mask-image:var(--md-admonition-icon--tip);mask-image:var(--md-admonition-icon--tip);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.tip,.hint,.important)>:-moz-any(.admonition-title,summary):before{background-color:#00bfa5;mask-image:var(--md-admonition-icon--tip);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.tip,.hint,.important)>:is(.admonition-title,summary):before{background-color:#00bfa5;-webkit-mask-image:var(--md-admonition-icon--tip);mask-image:var(--md-admonition-icon--tip);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.success,.check,.done){border-color:#00c853}.md-typeset :-moz-any(.admonition,details):-moz-any(.success,.check,.done){border-color:#00c853}.md-typeset :is(.admonition,details):is(.success,.check,.done){border-color:#00c853}.md-typeset :-webkit-any(.success,.check,.done)>:-webkit-any(.admonition-title,summary){background-color:rgba(0,200,83,.1)}.md-typeset :-moz-any(.success,.check,.done)>:-moz-any(.admonition-title,summary){background-color:rgba(0,200,83,.1)}.md-typeset :is(.success,.check,.done)>:is(.admonition-title,summary){background-color:rgba(0,200,83,.1)}.md-typeset :-webkit-any(.success,.check,.done)>:-webkit-any(.admonition-title,summary):before{background-color:#00c853;-webkit-mask-image:var(--md-admonition-icon--success);mask-image:var(--md-admonition-icon--success);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.success,.check,.done)>:-moz-any(.admonition-title,summary):before{background-color:#00c853;mask-image:var(--md-admonition-icon--success);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.success,.check,.done)>:is(.admonition-title,summary):before{background-color:#00c853;-webkit-mask-image:var(--md-admonition-icon--success);mask-image:var(--md-admonition-icon--success);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.question,.help,.faq){border-color:#64dd17}.md-typeset :-moz-any(.admonition,details):-moz-any(.question,.help,.faq){border-color:#64dd17}.md-typeset :is(.admonition,details):is(.question,.help,.faq){border-color:#64dd17}.md-typeset :-webkit-any(.question,.help,.faq)>:-webkit-any(.admonition-title,summary){background-color:rgba(100,221,23,.1)}.md-typeset :-moz-any(.question,.help,.faq)>:-moz-any(.admonition-title,summary){background-color:rgba(100,221,23,.1)}.md-typeset :is(.question,.help,.faq)>:is(.admonition-title,summary){background-color:rgba(100,221,23,.1)}.md-typeset :-webkit-any(.question,.help,.faq)>:-webkit-any(.admonition-title,summary):before{background-color:#64dd17;-webkit-mask-image:var(--md-admonition-icon--question);mask-image:var(--md-admonition-icon--question);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.question,.help,.faq)>:-moz-any(.admonition-title,summary):before{background-color:#64dd17;mask-image:var(--md-admonition-icon--question);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.question,.help,.faq)>:is(.admonition-title,summary):before{background-color:#64dd17;-webkit-mask-image:var(--md-admonition-icon--question);mask-image:var(--md-admonition-icon--question);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.warning,.caution,.attention){border-color:#ff9100}.md-typeset :-moz-any(.admonition,details):-moz-any(.warning,.caution,.attention){border-color:#ff9100}.md-typeset :is(.admonition,details):is(.warning,.caution,.attention){border-color:#ff9100}.md-typeset :-webkit-any(.warning,.caution,.attention)>:-webkit-any(.admonition-title,summary){background-color:rgba(255,145,0,.1)}.md-typeset :-moz-any(.warning,.caution,.attention)>:-moz-any(.admonition-title,summary){background-color:rgba(255,145,0,.1)}.md-typeset :is(.warning,.caution,.attention)>:is(.admonition-title,summary){background-color:rgba(255,145,0,.1)}.md-typeset :-webkit-any(.warning,.caution,.attention)>:-webkit-any(.admonition-title,summary):before{background-color:#ff9100;-webkit-mask-image:var(--md-admonition-icon--warning);mask-image:var(--md-admonition-icon--warning);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.warning,.caution,.attention)>:-moz-any(.admonition-title,summary):before{background-color:#ff9100;mask-image:var(--md-admonition-icon--warning);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.warning,.caution,.attention)>:is(.admonition-title,summary):before{background-color:#ff9100;-webkit-mask-image:var(--md-admonition-icon--warning);mask-image:var(--md-admonition-icon--warning);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.failure,.fail,.missing){border-color:#ff5252}.md-typeset :-moz-any(.admonition,details):-moz-any(.failure,.fail,.missing){border-color:#ff5252}.md-typeset :is(.admonition,details):is(.failure,.fail,.missing){border-color:#ff5252}.md-typeset :-webkit-any(.failure,.fail,.missing)>:-webkit-any(.admonition-title,summary){background-color:rgba(255,82,82,.1)}.md-typeset :-moz-any(.failure,.fail,.missing)>:-moz-any(.admonition-title,summary){background-color:rgba(255,82,82,.1)}.md-typeset :is(.failure,.fail,.missing)>:is(.admonition-title,summary){background-color:rgba(255,82,82,.1)}.md-typeset :-webkit-any(.failure,.fail,.missing)>:-webkit-any(.admonition-title,summary):before{background-color:#ff5252;-webkit-mask-image:var(--md-admonition-icon--failure);mask-image:var(--md-admonition-icon--failure);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.failure,.fail,.missing)>:-moz-any(.admonition-title,summary):before{background-color:#ff5252;mask-image:var(--md-admonition-icon--failure);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.failure,.fail,.missing)>:is(.admonition-title,summary):before{background-color:#ff5252;-webkit-mask-image:var(--md-admonition-icon--failure);mask-image:var(--md-admonition-icon--failure);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.danger,.error){border-color:#ff1744}.md-typeset :-moz-any(.admonition,details):-moz-any(.danger,.error){border-color:#ff1744}.md-typeset :is(.admonition,details):is(.danger,.error){border-color:#ff1744}.md-typeset :-webkit-any(.danger,.error)>:-webkit-any(.admonition-title,summary){background-color:rgba(255,23,68,.1)}.md-typeset :-moz-any(.danger,.error)>:-moz-any(.admonition-title,summary){background-color:rgba(255,23,68,.1)}.md-typeset :is(.danger,.error)>:is(.admonition-title,summary){background-color:rgba(255,23,68,.1)}.md-typeset :-webkit-any(.danger,.error)>:-webkit-any(.admonition-title,summary):before{background-color:#ff1744;-webkit-mask-image:var(--md-admonition-icon--danger);mask-image:var(--md-admonition-icon--danger);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.danger,.error)>:-moz-any(.admonition-title,summary):before{background-color:#ff1744;mask-image:var(--md-admonition-icon--danger);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.danger,.error)>:is(.admonition-title,summary):before{background-color:#ff1744;-webkit-mask-image:var(--md-admonition-icon--danger);mask-image:var(--md-admonition-icon--danger);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.bug){border-color:#f50057}.md-typeset :-moz-any(.admonition,details):-moz-any(.bug){border-color:#f50057}.md-typeset :is(.admonition,details):is(.bug){border-color:#f50057}.md-typeset :-webkit-any(.bug)>:-webkit-any(.admonition-title,summary){background-color:rgba(245,0,87,.1)}.md-typeset :-moz-any(.bug)>:-moz-any(.admonition-title,summary){background-color:rgba(245,0,87,.1)}.md-typeset :is(.bug)>:is(.admonition-title,summary){background-color:rgba(245,0,87,.1)}.md-typeset :-webkit-any(.bug)>:-webkit-any(.admonition-title,summary):before{background-color:#f50057;-webkit-mask-image:var(--md-admonition-icon--bug);mask-image:var(--md-admonition-icon--bug);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.bug)>:-moz-any(.admonition-title,summary):before{background-color:#f50057;mask-image:var(--md-admonition-icon--bug);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.bug)>:is(.admonition-title,summary):before{background-color:#f50057;-webkit-mask-image:var(--md-admonition-icon--bug);mask-image:var(--md-admonition-icon--bug);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.example){border-color:#7c4dff}.md-typeset :-moz-any(.admonition,details):-moz-any(.example){border-color:#7c4dff}.md-typeset :is(.admonition,details):is(.example){border-color:#7c4dff}.md-typeset :-webkit-any(.example)>:-webkit-any(.admonition-title,summary){background-color:rgba(124,77,255,.1)}.md-typeset :-moz-any(.example)>:-moz-any(.admonition-title,summary){background-color:rgba(124,77,255,.1)}.md-typeset :is(.example)>:is(.admonition-title,summary){background-color:rgba(124,77,255,.1)}.md-typeset :-webkit-any(.example)>:-webkit-any(.admonition-title,summary):before{background-color:#7c4dff;-webkit-mask-image:var(--md-admonition-icon--example);mask-image:var(--md-admonition-icon--example);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.example)>:-moz-any(.admonition-title,summary):before{background-color:#7c4dff;mask-image:var(--md-admonition-icon--example);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.example)>:is(.admonition-title,summary):before{background-color:#7c4dff;-webkit-mask-image:var(--md-admonition-icon--example);mask-image:var(--md-admonition-icon--example);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-webkit-any(.admonition,details):-webkit-any(.quote,.cite){border-color:#9e9e9e}.md-typeset :-moz-any(.admonition,details):-moz-any(.quote,.cite){border-color:#9e9e9e}.md-typeset :is(.admonition,details):is(.quote,.cite){border-color:#9e9e9e}.md-typeset :-webkit-any(.quote,.cite)>:-webkit-any(.admonition-title,summary){background-color:hsla(0,0%,62%,.1)}.md-typeset :-moz-any(.quote,.cite)>:-moz-any(.admonition-title,summary){background-color:hsla(0,0%,62%,.1)}.md-typeset :is(.quote,.cite)>:is(.admonition-title,summary){background-color:hsla(0,0%,62%,.1)}.md-typeset :-webkit-any(.quote,.cite)>:-webkit-any(.admonition-title,summary):before{background-color:#9e9e9e;-webkit-mask-image:var(--md-admonition-icon--quote);mask-image:var(--md-admonition-icon--quote);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}.md-typeset :-moz-any(.quote,.cite)>:-moz-any(.admonition-title,summary):before{background-color:#9e9e9e;mask-image:var(--md-admonition-icon--quote);mask-repeat:no-repeat;mask-size:contain}.md-typeset :is(.quote,.cite)>:is(.admonition-title,summary):before{background-color:#9e9e9e;-webkit-mask-image:var(--md-admonition-icon--quote);mask-image:var(--md-admonition-icon--quote);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}:root{--md-footnotes-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .footnote{color:var(--md-default-fg-color--light);font-size:.64rem}[dir=ltr] .md-typeset .footnote>ol{margin-left:0}[dir=rtl] .md-typeset .footnote>ol{margin-right:0}.md-typeset .footnote>ol>li{transition:color 125ms}.md-typeset .footnote>ol>li:target{color:var(--md-default-fg-color)}.md-typeset .footnote>ol>li:focus-within .footnote-backref{opacity:1;transform:translateX(0);transition:none}.md-typeset .footnote>ol>li:-webkit-any(:hover,:target) .footnote-backref{opacity:1;transform:translateX(0)}.md-typeset .footnote>ol>li:-moz-any(:hover,:target) .footnote-backref{opacity:1;transform:translateX(0)}.md-typeset .footnote>ol>li:is(:hover,:target) .footnote-backref{opacity:1;transform:translateX(0)}.md-typeset .footnote>ol>li>:first-child{margin-top:0}.md-typeset .footnote-ref{font-size:.75em;font-weight:700}html .md-typeset .footnote-ref{outline-offset:.1rem}.md-typeset [id^="fnref:"]:target>.footnote-ref{outline:auto}.md-typeset .footnote-backref{color:var(--md-typeset-a-color);display:inline-block;font-size:0;opacity:0;transform:translateX(.25rem);transition:color .25s,transform .25s .25s,opacity 125ms .25s;vertical-align:text-bottom}@media print{.md-typeset .footnote-backref{color:var(--md-typeset-a-color);opacity:1;transform:translateX(0)}}[dir=rtl] .md-typeset .footnote-backref{transform:translateX(-.25rem)}.md-typeset .footnote-backref:hover{color:var(--md-accent-fg-color)}.md-typeset .footnote-backref:before{background-color:currentcolor;content:"";display:inline-block;height:.8rem;-webkit-mask-image:var(--md-footnotes-icon);mask-image:var(--md-footnotes-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;width:.8rem}[dir=rtl] .md-typeset .footnote-backref:before svg{transform:scaleX(-1)}[dir=ltr] .md-typeset .headerlink{margin-left:.5rem}[dir=rtl] .md-typeset .headerlink{margin-right:.5rem}.md-typeset .headerlink{color:var(--md-default-fg-color--lighter);display:inline-block;opacity:0;transition:color .25s,opacity 125ms}@media print{.md-typeset .headerlink{display:none}}.md-typeset .headerlink:focus,.md-typeset :-webkit-any(:hover,:target)>.headerlink{opacity:1;-webkit-transition:color .25s,opacity 125ms;transition:color .25s,opacity 125ms}.md-typeset .headerlink:focus,.md-typeset :-moz-any(:hover,:target)>.headerlink{opacity:1;-moz-transition:color .25s,opacity 125ms;transition:color .25s,opacity 125ms}.md-typeset .headerlink:focus,.md-typeset :is(:hover,:target)>.headerlink{opacity:1;transition:color .25s,opacity 125ms}.md-typeset .headerlink:-webkit-any(:focus,:hover),.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset .headerlink:-moz-any(:focus,:hover),.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset .headerlink:is(:focus,:hover),.md-typeset :target>.headerlink{color:var(--md-accent-fg-color)}.md-typeset :target{--md-scroll-margin:3.6rem;--md-scroll-offset:0rem;scroll-margin-top:calc(var(--md-scroll-margin) - var(--md-scroll-offset))}@media screen and (min-width:76.25em){.md-header--lifted~.md-container .md-typeset :target{--md-scroll-margin:6rem}}.md-typeset :-webkit-any(h1,h2,h3):target{--md-scroll-offset:0.2rem}.md-typeset :-moz-any(h1,h2,h3):target{--md-scroll-offset:0.2rem}.md-typeset :is(h1,h2,h3):target{--md-scroll-offset:0.2rem}.md-typeset h4:target{--md-scroll-offset:0.15rem}.md-typeset div.arithmatex{overflow:auto}@media screen and (max-width:44.9375em){.md-typeset div.arithmatex{margin:0 -.8rem}}.md-typeset div.arithmatex>*{margin-left:auto!important;margin-right:auto!important;padding:0 .8rem;touch-action:auto;width:-webkit-min-content;width:-moz-min-content;width:min-content}.md-typeset div.arithmatex>* mjx-container{margin:0!important}.md-typeset :-webkit-any(del,ins,.comment).critic{-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset :-moz-any(del,ins,.comment).critic{box-decoration-break:clone}.md-typeset :is(del,ins,.comment).critic{-webkit-box-decoration-break:clone;box-decoration-break:clone}.md-typeset del.critic{background-color:var(--md-typeset-del-color)}.md-typeset ins.critic{background-color:var(--md-typeset-ins-color)}.md-typeset .critic.comment{color:var(--md-code-hl-comment-color)}.md-typeset .critic.comment:before{content:"/* "}.md-typeset .critic.comment:after{content:" */"}.md-typeset .critic.block{box-shadow:none;display:block;margin:1em 0;overflow:auto;padding-left:.8rem;padding-right:.8rem}.md-typeset .critic.block>:first-child{margin-top:.5em}.md-typeset .critic.block>:last-child{margin-bottom:.5em}:root{--md-details-icon:url('data:image/svg+xml;charset=utf-8,')}.md-typeset details{display:flow-root;overflow:visible;padding-top:0}.md-typeset details[open]>summary:after{transform:rotate(90deg)}.md-typeset details:not([open]){box-shadow:none;padding-bottom:0}.md-typeset details:not([open])>summary{border-radius:.1rem}[dir=ltr] .md-typeset summary{padding-right:1.8rem}[dir=rtl] .md-typeset summary{padding-left:1.8rem}[dir=ltr] .md-typeset summary{border-top-left-radius:.1rem}[dir=ltr] .md-typeset summary,[dir=rtl] .md-typeset summary{border-top-right-radius:.1rem}[dir=rtl] .md-typeset summary{border-top-left-radius:.1rem}.md-typeset summary{cursor:pointer;display:block;min-height:1rem}.md-typeset summary.focus-visible{outline-color:var(--md-accent-fg-color);outline-offset:.2rem}.md-typeset summary:not(.focus-visible){-webkit-tap-highlight-color:transparent;outline:none}[dir=ltr] .md-typeset summary:after{right:.4rem}[dir=rtl] .md-typeset summary:after{left:.4rem}.md-typeset summary:after{background-color:currentcolor;content:"";height:1rem;-webkit-mask-image:var(--md-details-icon);mask-image:var(--md-details-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.625em;transform:rotate(0deg);transition:transform .25s;width:1rem}[dir=rtl] .md-typeset summary:after{transform:rotate(180deg)}.md-typeset summary::marker{display:none}.md-typeset summary::-webkit-details-marker{display:none}.md-typeset :-webkit-any(.emojione,.twemoji,.gemoji){display:inline-flex;height:1.125em;vertical-align:text-top}.md-typeset :-moz-any(.emojione,.twemoji,.gemoji){display:inline-flex;height:1.125em;vertical-align:text-top}.md-typeset :is(.emojione,.twemoji,.gemoji){display:inline-flex;height:1.125em;vertical-align:text-top}.md-typeset :-webkit-any(.emojione,.twemoji,.gemoji) svg{fill:currentcolor;max-height:100%;width:1.125em}.md-typeset :-moz-any(.emojione,.twemoji,.gemoji) svg{fill:currentcolor;max-height:100%;width:1.125em}.md-typeset :is(.emojione,.twemoji,.gemoji) svg{fill:currentcolor;max-height:100%;width:1.125em}.highlight :-webkit-any(.o,.ow){color:var(--md-code-hl-operator-color)}.highlight :-moz-any(.o,.ow){color:var(--md-code-hl-operator-color)}.highlight :is(.o,.ow){color:var(--md-code-hl-operator-color)}.highlight .p{color:var(--md-code-hl-punctuation-color)}.highlight :-webkit-any(.cpf,.l,.s,.sb,.sc,.s2,.si,.s1,.ss){color:var(--md-code-hl-string-color)}.highlight :-moz-any(.cpf,.l,.s,.sb,.sc,.s2,.si,.s1,.ss){color:var(--md-code-hl-string-color)}.highlight :is(.cpf,.l,.s,.sb,.sc,.s2,.si,.s1,.ss){color:var(--md-code-hl-string-color)}.highlight :-webkit-any(.cp,.se,.sh,.sr,.sx){color:var(--md-code-hl-special-color)}.highlight :-moz-any(.cp,.se,.sh,.sr,.sx){color:var(--md-code-hl-special-color)}.highlight :is(.cp,.se,.sh,.sr,.sx){color:var(--md-code-hl-special-color)}.highlight :-webkit-any(.m,.mb,.mf,.mh,.mi,.il,.mo){color:var(--md-code-hl-number-color)}.highlight :-moz-any(.m,.mb,.mf,.mh,.mi,.il,.mo){color:var(--md-code-hl-number-color)}.highlight :is(.m,.mb,.mf,.mh,.mi,.il,.mo){color:var(--md-code-hl-number-color)}.highlight :-webkit-any(.k,.kd,.kn,.kp,.kr,.kt){color:var(--md-code-hl-keyword-color)}.highlight :-moz-any(.k,.kd,.kn,.kp,.kr,.kt){color:var(--md-code-hl-keyword-color)}.highlight :is(.k,.kd,.kn,.kp,.kr,.kt){color:var(--md-code-hl-keyword-color)}.highlight :-webkit-any(.kc,.n){color:var(--md-code-hl-name-color)}.highlight :-moz-any(.kc,.n){color:var(--md-code-hl-name-color)}.highlight :is(.kc,.n){color:var(--md-code-hl-name-color)}.highlight :-webkit-any(.no,.nb,.bp){color:var(--md-code-hl-constant-color)}.highlight :-moz-any(.no,.nb,.bp){color:var(--md-code-hl-constant-color)}.highlight :is(.no,.nb,.bp){color:var(--md-code-hl-constant-color)}.highlight :-webkit-any(.nc,.ne,.nf,.nn){color:var(--md-code-hl-function-color)}.highlight :-moz-any(.nc,.ne,.nf,.nn){color:var(--md-code-hl-function-color)}.highlight :is(.nc,.ne,.nf,.nn){color:var(--md-code-hl-function-color)}.highlight :-webkit-any(.nd,.ni,.nl,.nt){color:var(--md-code-hl-keyword-color)}.highlight :-moz-any(.nd,.ni,.nl,.nt){color:var(--md-code-hl-keyword-color)}.highlight :is(.nd,.ni,.nl,.nt){color:var(--md-code-hl-keyword-color)}.highlight :-webkit-any(.c,.cm,.c1,.ch,.cs,.sd){color:var(--md-code-hl-comment-color)}.highlight :-moz-any(.c,.cm,.c1,.ch,.cs,.sd){color:var(--md-code-hl-comment-color)}.highlight :is(.c,.cm,.c1,.ch,.cs,.sd){color:var(--md-code-hl-comment-color)}.highlight :-webkit-any(.na,.nv,.vc,.vg,.vi){color:var(--md-code-hl-variable-color)}.highlight :-moz-any(.na,.nv,.vc,.vg,.vi){color:var(--md-code-hl-variable-color)}.highlight :is(.na,.nv,.vc,.vg,.vi){color:var(--md-code-hl-variable-color)}.highlight :-webkit-any(.ge,.gr,.gh,.go,.gp,.gs,.gu,.gt){color:var(--md-code-hl-generic-color)}.highlight :-moz-any(.ge,.gr,.gh,.go,.gp,.gs,.gu,.gt){color:var(--md-code-hl-generic-color)}.highlight :is(.ge,.gr,.gh,.go,.gp,.gs,.gu,.gt){color:var(--md-code-hl-generic-color)}.highlight :-webkit-any(.gd,.gi){border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight :-moz-any(.gd,.gi){border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight :is(.gd,.gi){border-radius:.1rem;margin:0 -.125em;padding:0 .125em}.highlight .gd{background-color:var(--md-typeset-del-color)}.highlight .gi{background-color:var(--md-typeset-ins-color)}.highlight .hll{background-color:var(--md-code-hl-color);display:block;margin:0 -1.1764705882em;padding:0 1.1764705882em}.highlight span.filename{background-color:var(--md-code-bg-color);border-bottom:.05rem solid var(--md-default-fg-color--lightest);border-top-left-radius:.1rem;border-top-right-radius:.1rem;display:flow-root;font-size:.85em;font-weight:700;margin-top:1em;padding:.6617647059em 1.1764705882em;position:relative}.highlight span.filename+pre{margin-top:0}.highlight span.filename+pre>code{border-top-left-radius:0;border-top-right-radius:0}.highlight [data-linenos]:before{background-color:var(--md-code-bg-color);box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;color:var(--md-default-fg-color--light);content:attr(data-linenos);float:left;left:-1.1764705882em;margin-left:-1.1764705882em;margin-right:1.1764705882em;padding-left:1.1764705882em;position:-webkit-sticky;position:sticky;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:3}.highlight code a[id]{position:absolute;visibility:hidden}.highlight code[data-md-copying] .hll{display:contents}.highlight code[data-md-copying] .md-annotation{display:none}.highlighttable{display:flow-root}.highlighttable :-webkit-any(tbody,td){display:block;padding:0}.highlighttable :-moz-any(tbody,td){display:block;padding:0}.highlighttable :is(tbody,td){display:block;padding:0}.highlighttable tr{display:flex}.highlighttable pre{margin:0}.highlighttable th.filename{flex-grow:1;padding:0;text-align:left}.highlighttable th.filename span.filename{margin-top:0}.highlighttable .linenos{background-color:var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-top-left-radius:.1rem;font-size:.85em;padding:.7720588235em 0 .7720588235em 1.1764705882em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.highlighttable .linenodiv{box-shadow:-.05rem 0 var(--md-default-fg-color--lightest) inset;padding-right:.5882352941em}.highlighttable .linenodiv pre{color:var(--md-default-fg-color--light);text-align:right}.highlighttable .code{flex:1;min-width:0}.linenodiv a{color:inherit}.md-typeset .highlighttable{direction:ltr;margin:1em 0}.md-typeset .highlighttable>tbody>tr>.code>div>pre>code{border-bottom-left-radius:0;border-top-left-radius:0}.md-typeset .highlight+.result{border:.05rem solid var(--md-code-bg-color);border-bottom-left-radius:.1rem;border-bottom-right-radius:.1rem;border-top-width:.1rem;margin-top:-1.125em;overflow:visible;padding:0 1em}.md-typeset .highlight+.result:after{clear:both;content:"";display:block}@media screen and (max-width:44.9375em){.md-content__inner>.highlight{margin:1em -.8rem}.md-content__inner>.highlight>.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.code>div>pre>code,.md-content__inner>.highlight>.highlighttable>tbody>tr>.filename span.filename,.md-content__inner>.highlight>.highlighttable>tbody>tr>.linenos,.md-content__inner>.highlight>pre>code{border-radius:0}.md-content__inner>.highlight+.result{border-left-width:0;border-radius:0;border-right-width:0;margin-left:-.8rem;margin-right:-.8rem}}.md-typeset .keys kbd:-webkit-any(:before,:after){-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys kbd:-moz-any(:before,:after){-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys kbd:is(:before,:after){-moz-osx-font-smoothing:initial;-webkit-font-smoothing:initial;color:inherit;margin:0;position:relative}.md-typeset .keys span{color:var(--md-default-fg-color--light);padding:0 .2em}.md-typeset .keys .key-alt:before,.md-typeset .keys .key-left-alt:before,.md-typeset .keys .key-right-alt:before{content:"⎇";padding-right:.4em}.md-typeset .keys .key-command:before,.md-typeset .keys .key-left-command:before,.md-typeset .keys .key-right-command:before{content:"⌘";padding-right:.4em}.md-typeset .keys .key-control:before,.md-typeset .keys .key-left-control:before,.md-typeset .keys .key-right-control:before{content:"⌃";padding-right:.4em}.md-typeset .keys .key-left-meta:before,.md-typeset .keys .key-meta:before,.md-typeset .keys .key-right-meta:before{content:"◆";padding-right:.4em}.md-typeset .keys .key-left-option:before,.md-typeset .keys .key-option:before,.md-typeset .keys .key-right-option:before{content:"⌥";padding-right:.4em}.md-typeset .keys .key-left-shift:before,.md-typeset .keys .key-right-shift:before,.md-typeset .keys .key-shift:before{content:"⇧";padding-right:.4em}.md-typeset .keys .key-left-super:before,.md-typeset .keys .key-right-super:before,.md-typeset .keys .key-super:before{content:"❖";padding-right:.4em}.md-typeset .keys .key-left-windows:before,.md-typeset .keys .key-right-windows:before,.md-typeset .keys .key-windows:before{content:"⊞";padding-right:.4em}.md-typeset .keys .key-arrow-down:before{content:"↓";padding-right:.4em}.md-typeset .keys .key-arrow-left:before{content:"←";padding-right:.4em}.md-typeset .keys .key-arrow-right:before{content:"→";padding-right:.4em}.md-typeset .keys .key-arrow-up:before{content:"↑";padding-right:.4em}.md-typeset .keys .key-backspace:before{content:"⌫";padding-right:.4em}.md-typeset .keys .key-backtab:before{content:"⇤";padding-right:.4em}.md-typeset .keys .key-caps-lock:before{content:"⇪";padding-right:.4em}.md-typeset .keys .key-clear:before{content:"⌧";padding-right:.4em}.md-typeset .keys .key-context-menu:before{content:"☰";padding-right:.4em}.md-typeset .keys .key-delete:before{content:"⌦";padding-right:.4em}.md-typeset .keys .key-eject:before{content:"⏏";padding-right:.4em}.md-typeset .keys .key-end:before{content:"⤓";padding-right:.4em}.md-typeset .keys .key-escape:before{content:"⎋";padding-right:.4em}.md-typeset .keys .key-home:before{content:"⤒";padding-right:.4em}.md-typeset .keys .key-insert:before{content:"⎀";padding-right:.4em}.md-typeset .keys .key-page-down:before{content:"⇟";padding-right:.4em}.md-typeset .keys .key-page-up:before{content:"⇞";padding-right:.4em}.md-typeset .keys .key-print-screen:before{content:"⎙";padding-right:.4em}.md-typeset .keys .key-tab:after{content:"⇥";padding-left:.4em}.md-typeset .keys .key-num-enter:after{content:"⌤";padding-left:.4em}.md-typeset .keys .key-enter:after{content:"⏎";padding-left:.4em}:root{--md-tabbed-icon--prev:url('data:image/svg+xml;charset=utf-8,');--md-tabbed-icon--next:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .tabbed-set{border-radius:.1rem;display:flex;flex-flow:column wrap;margin:1em 0;position:relative}.md-typeset .tabbed-set>input{height:0;opacity:0;position:absolute;width:0}.md-typeset .tabbed-set>input:target{--md-scroll-offset:0.625em}.md-typeset .tabbed-labels{-ms-overflow-style:none;box-shadow:0 -.05rem var(--md-default-fg-color--lightest) inset;display:flex;max-width:100%;overflow:auto;scrollbar-width:none}@media print{.md-typeset .tabbed-labels{display:contents}}@media screen{.js .md-typeset .tabbed-labels{position:relative}.js .md-typeset .tabbed-labels:before{background:var(--md-accent-fg-color);bottom:0;content:"";display:block;height:2px;left:0;position:absolute;transform:translateX(var(--md-indicator-x));transition:width 225ms,transform .25s;transition-timing-function:cubic-bezier(.4,0,.2,1);width:var(--md-indicator-width)}}.md-typeset .tabbed-labels::-webkit-scrollbar{display:none}.md-typeset .tabbed-labels>label{border-bottom:.1rem solid transparent;border-radius:.1rem .1rem 0 0;color:var(--md-default-fg-color--light);cursor:pointer;flex-shrink:0;font-size:.64rem;font-weight:700;padding:.78125em 1.25em .625em;scroll-margin-inline-start:1rem;transition:background-color .25s,color .25s;white-space:nowrap;width:auto}@media print{.md-typeset .tabbed-labels>label:first-child{order:1}.md-typeset .tabbed-labels>label:nth-child(2){order:2}.md-typeset .tabbed-labels>label:nth-child(3){order:3}.md-typeset .tabbed-labels>label:nth-child(4){order:4}.md-typeset .tabbed-labels>label:nth-child(5){order:5}.md-typeset .tabbed-labels>label:nth-child(6){order:6}.md-typeset .tabbed-labels>label:nth-child(7){order:7}.md-typeset .tabbed-labels>label:nth-child(8){order:8}.md-typeset .tabbed-labels>label:nth-child(9){order:9}.md-typeset .tabbed-labels>label:nth-child(10){order:10}.md-typeset .tabbed-labels>label:nth-child(11){order:11}.md-typeset .tabbed-labels>label:nth-child(12){order:12}.md-typeset .tabbed-labels>label:nth-child(13){order:13}.md-typeset .tabbed-labels>label:nth-child(14){order:14}.md-typeset .tabbed-labels>label:nth-child(15){order:15}.md-typeset .tabbed-labels>label:nth-child(16){order:16}.md-typeset .tabbed-labels>label:nth-child(17){order:17}.md-typeset .tabbed-labels>label:nth-child(18){order:18}.md-typeset .tabbed-labels>label:nth-child(19){order:19}.md-typeset .tabbed-labels>label:nth-child(20){order:20}}.md-typeset .tabbed-labels>label:hover{color:var(--md-accent-fg-color)}.md-typeset .tabbed-content{width:100%}@media print{.md-typeset .tabbed-content{display:contents}}.md-typeset .tabbed-block{display:none}@media print{.md-typeset .tabbed-block{display:block}.md-typeset .tabbed-block:first-child{order:1}.md-typeset .tabbed-block:nth-child(2){order:2}.md-typeset .tabbed-block:nth-child(3){order:3}.md-typeset .tabbed-block:nth-child(4){order:4}.md-typeset .tabbed-block:nth-child(5){order:5}.md-typeset .tabbed-block:nth-child(6){order:6}.md-typeset .tabbed-block:nth-child(7){order:7}.md-typeset .tabbed-block:nth-child(8){order:8}.md-typeset .tabbed-block:nth-child(9){order:9}.md-typeset .tabbed-block:nth-child(10){order:10}.md-typeset .tabbed-block:nth-child(11){order:11}.md-typeset .tabbed-block:nth-child(12){order:12}.md-typeset .tabbed-block:nth-child(13){order:13}.md-typeset .tabbed-block:nth-child(14){order:14}.md-typeset .tabbed-block:nth-child(15){order:15}.md-typeset .tabbed-block:nth-child(16){order:16}.md-typeset .tabbed-block:nth-child(17){order:17}.md-typeset .tabbed-block:nth-child(18){order:18}.md-typeset .tabbed-block:nth-child(19){order:19}.md-typeset .tabbed-block:nth-child(20){order:20}}.md-typeset .tabbed-block>.highlight:first-child>pre,.md-typeset .tabbed-block>pre:first-child{margin:0}.md-typeset .tabbed-block>.highlight:first-child>pre>code,.md-typeset .tabbed-block>pre:first-child>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child>.filename{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable{margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.filename span.filename,.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.linenos{border-top-left-radius:0;border-top-right-radius:0;margin:0}.md-typeset .tabbed-block>.highlight:first-child>.highlighttable>tbody>tr>.code>div>pre>code{border-top-left-radius:0;border-top-right-radius:0}.md-typeset .tabbed-block>.highlight:first-child+.result{margin-top:-.125em}.md-typeset .tabbed-block>.tabbed-set{margin:0}.md-typeset .tabbed-button{align-self:center;border-radius:100%;color:var(--md-default-fg-color--light);cursor:pointer;display:block;height:.9rem;margin-top:.1rem;pointer-events:auto;transition:background-color .25s;width:.9rem}.md-typeset .tabbed-button:hover{background-color:var(--md-accent-fg-color--transparent);color:var(--md-accent-fg-color)}.md-typeset .tabbed-button:after{background-color:currentcolor;content:"";display:block;height:100%;-webkit-mask-image:var(--md-tabbed-icon--prev);mask-image:var(--md-tabbed-icon--prev);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;transition:background-color .25s,transform .25s;width:100%}.md-typeset .tabbed-control{background:linear-gradient(to right,var(--md-default-bg-color) 60%,transparent);display:flex;height:1.9rem;justify-content:start;pointer-events:none;position:absolute;transition:opacity 125ms;width:1.2rem}[dir=rtl] .md-typeset .tabbed-control{transform:rotate(180deg)}.md-typeset .tabbed-control[hidden]{opacity:0}.md-typeset .tabbed-control--next{background:linear-gradient(to left,var(--md-default-bg-color) 60%,transparent);justify-content:end;right:0}.md-typeset .tabbed-control--next .tabbed-button:after{-webkit-mask-image:var(--md-tabbed-icon--next);mask-image:var(--md-tabbed-icon--next)}@media screen and (max-width:44.9375em){[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels{padding-right:.8rem}.md-content__inner>.tabbed-set .tabbed-labels{margin:0 -.8rem;max-width:100vw;scroll-padding-inline-start:.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels:after{padding-left:.8rem}.md-content__inner>.tabbed-set .tabbed-labels:after{content:""}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-left:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{margin-right:-.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-left:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{padding-right:.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--prev{width:2rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-right:-.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{margin-left:-.8rem}[dir=ltr] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-right:.8rem}[dir=rtl] .md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{padding-left:.8rem}.md-content__inner>.tabbed-set .tabbed-labels~.tabbed-control--next{width:2rem}}@media screen{.md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){color:var(--md-accent-fg-color)}.md-typeset .no-js .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.md-typeset .no-js .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.md-typeset .no-js .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.md-typeset .no-js .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.md-typeset .no-js .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.md-typeset .no-js .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.md-typeset .no-js .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.md-typeset .no-js .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.md-typeset .no-js .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.md-typeset .no-js .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.md-typeset .no-js .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.md-typeset .no-js .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.md-typeset .no-js .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.md-typeset .no-js .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.md-typeset .no-js .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.md-typeset .no-js .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.md-typeset .no-js .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.md-typeset .no-js .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.md-typeset .no-js .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.md-typeset .no-js .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9),.no-js .md-typeset .tabbed-set>input:first-child:checked~.tabbed-labels>:first-child,.no-js .md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),.no-js .md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),.no-js .md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),.no-js .md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),.no-js .md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),.no-js .md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),.no-js .md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),.no-js .md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),.no-js .md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),.no-js .md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),.no-js .md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),.no-js .md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20),.no-js .md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),.no-js .md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),.no-js .md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),.no-js .md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),.no-js .md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),.no-js .md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),.no-js .md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9){border-color:var(--md-accent-fg-color)}}.md-typeset .tabbed-set>input:first-child.focus-visible~.tabbed-labels>:first-child,.md-typeset .tabbed-set>input:nth-child(10).focus-visible~.tabbed-labels>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11).focus-visible~.tabbed-labels>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12).focus-visible~.tabbed-labels>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13).focus-visible~.tabbed-labels>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14).focus-visible~.tabbed-labels>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15).focus-visible~.tabbed-labels>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16).focus-visible~.tabbed-labels>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17).focus-visible~.tabbed-labels>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18).focus-visible~.tabbed-labels>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19).focus-visible~.tabbed-labels>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2).focus-visible~.tabbed-labels>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20).focus-visible~.tabbed-labels>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3).focus-visible~.tabbed-labels>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4).focus-visible~.tabbed-labels>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5).focus-visible~.tabbed-labels>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6).focus-visible~.tabbed-labels>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7).focus-visible~.tabbed-labels>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8).focus-visible~.tabbed-labels>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9).focus-visible~.tabbed-labels>:nth-child(9){background-color:var(--md-accent-fg-color--transparent)}.md-typeset .tabbed-set>input:first-child:checked~.tabbed-content>:first-child,.md-typeset .tabbed-set>input:nth-child(10):checked~.tabbed-content>:nth-child(10),.md-typeset .tabbed-set>input:nth-child(11):checked~.tabbed-content>:nth-child(11),.md-typeset .tabbed-set>input:nth-child(12):checked~.tabbed-content>:nth-child(12),.md-typeset .tabbed-set>input:nth-child(13):checked~.tabbed-content>:nth-child(13),.md-typeset .tabbed-set>input:nth-child(14):checked~.tabbed-content>:nth-child(14),.md-typeset .tabbed-set>input:nth-child(15):checked~.tabbed-content>:nth-child(15),.md-typeset .tabbed-set>input:nth-child(16):checked~.tabbed-content>:nth-child(16),.md-typeset .tabbed-set>input:nth-child(17):checked~.tabbed-content>:nth-child(17),.md-typeset .tabbed-set>input:nth-child(18):checked~.tabbed-content>:nth-child(18),.md-typeset .tabbed-set>input:nth-child(19):checked~.tabbed-content>:nth-child(19),.md-typeset .tabbed-set>input:nth-child(2):checked~.tabbed-content>:nth-child(2),.md-typeset .tabbed-set>input:nth-child(20):checked~.tabbed-content>:nth-child(20),.md-typeset .tabbed-set>input:nth-child(3):checked~.tabbed-content>:nth-child(3),.md-typeset .tabbed-set>input:nth-child(4):checked~.tabbed-content>:nth-child(4),.md-typeset .tabbed-set>input:nth-child(5):checked~.tabbed-content>:nth-child(5),.md-typeset .tabbed-set>input:nth-child(6):checked~.tabbed-content>:nth-child(6),.md-typeset .tabbed-set>input:nth-child(7):checked~.tabbed-content>:nth-child(7),.md-typeset .tabbed-set>input:nth-child(8):checked~.tabbed-content>:nth-child(8),.md-typeset .tabbed-set>input:nth-child(9):checked~.tabbed-content>:nth-child(9){display:block}:root{--md-tasklist-icon:url('data:image/svg+xml;charset=utf-8,');--md-tasklist-icon--checked:url('data:image/svg+xml;charset=utf-8,')}.md-typeset .task-list-item{list-style-type:none;position:relative}[dir=ltr] .md-typeset .task-list-item [type=checkbox]{left:-2em}[dir=rtl] .md-typeset .task-list-item [type=checkbox]{right:-2em}.md-typeset .task-list-item [type=checkbox]{position:absolute;top:.45em}.md-typeset .task-list-control [type=checkbox]{opacity:0;z-index:-1}[dir=ltr] .md-typeset .task-list-indicator:before{left:-1.5em}[dir=rtl] .md-typeset .task-list-indicator:before{right:-1.5em}.md-typeset .task-list-indicator:before{background-color:var(--md-default-fg-color--lightest);content:"";height:1.25em;-webkit-mask-image:var(--md-tasklist-icon);mask-image:var(--md-tasklist-icon);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;position:absolute;top:.15em;width:1.25em}.md-typeset [type=checkbox]:checked+.task-list-indicator:before{background-color:#00e676;-webkit-mask-image:var(--md-tasklist-icon--checked);mask-image:var(--md-tasklist-icon--checked)}:root>*{--md-mermaid-font-family:var(--md-text-font-family),sans-serif;--md-mermaid-edge-color:var(--md-code-fg-color);--md-mermaid-node-bg-color:var(--md-accent-fg-color--transparent);--md-mermaid-node-fg-color:var(--md-accent-fg-color);--md-mermaid-label-bg-color:var(--md-default-bg-color);--md-mermaid-label-fg-color:var(--md-code-fg-color)}.mermaid{line-height:normal;margin:1em 0}@media screen and (min-width:45em){[dir=ltr] .md-typeset .inline{margin-right:.8rem}[dir=rtl] .md-typeset .inline{margin-left:.8rem}.md-typeset .inline{float:left;margin-bottom:.8rem;margin-top:0;width:11.7rem}[dir=rtl] .md-typeset .inline{float:right}[dir=ltr] .md-typeset .inline.end{margin-left:.8rem;margin-right:0}[dir=rtl] .md-typeset .inline.end{margin-left:0;margin-right:.8rem}.md-typeset .inline.end{float:right}[dir=rtl] .md-typeset .inline.end{float:left}} \ No newline at end of file diff --git a/5.x/assets/stylesheets/main.69437709.min.css.map b/5.x/assets/stylesheets/main.69437709.min.css.map deleted file mode 100644 index 4c560661a..000000000 --- a/5.x/assets/stylesheets/main.69437709.min.css.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["src/assets/stylesheets/main/extensions/pymdownx/_keys.scss","../../../src/assets/stylesheets/main.scss","src/assets/stylesheets/main/_resets.scss","src/assets/stylesheets/main/_colors.scss","src/assets/stylesheets/main/_icons.scss","src/assets/stylesheets/main/_typeset.scss","src/assets/stylesheets/utilities/_break.scss","src/assets/stylesheets/main/layout/_banner.scss","src/assets/stylesheets/main/layout/_base.scss","src/assets/stylesheets/main/layout/_clipboard.scss","src/assets/stylesheets/main/layout/_consent.scss","src/assets/stylesheets/main/layout/_content.scss","src/assets/stylesheets/main/layout/_dialog.scss","src/assets/stylesheets/main/layout/_feedback.scss","src/assets/stylesheets/main/layout/_footer.scss","src/assets/stylesheets/main/layout/_form.scss","src/assets/stylesheets/main/layout/_header.scss","src/assets/stylesheets/main/layout/_nav.scss","src/assets/stylesheets/main/layout/_search.scss","src/assets/stylesheets/main/layout/_select.scss","src/assets/stylesheets/main/layout/_sidebar.scss","src/assets/stylesheets/main/layout/_source.scss","src/assets/stylesheets/main/layout/_tabs.scss","src/assets/stylesheets/main/layout/_tag.scss","src/assets/stylesheets/main/layout/_tooltip.scss","src/assets/stylesheets/main/layout/_top.scss","src/assets/stylesheets/main/layout/_version.scss","src/assets/stylesheets/main/extensions/markdown/_admonition.scss","node_modules/material-design-color/material-color.scss","src/assets/stylesheets/main/extensions/markdown/_footnotes.scss","src/assets/stylesheets/main/extensions/markdown/_toc.scss","src/assets/stylesheets/main/extensions/pymdownx/_arithmatex.scss","src/assets/stylesheets/main/extensions/pymdownx/_critic.scss","src/assets/stylesheets/main/extensions/pymdownx/_details.scss","src/assets/stylesheets/main/extensions/pymdownx/_emoji.scss","src/assets/stylesheets/main/extensions/pymdownx/_highlight.scss","src/assets/stylesheets/main/extensions/pymdownx/_tabbed.scss","src/assets/stylesheets/main/extensions/pymdownx/_tasklist.scss","src/assets/stylesheets/main/integrations/_mermaid.scss","src/assets/stylesheets/main/_modifiers.scss"],"names":[],"mappings":"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CALA,UnC4lHN,CmC7kHM,aAII,6CACE,OnC4kHV,CmC7kHQ,8CACE,OnC+kHV,CmChlHQ,8CACE,OnCklHV,CmCnlHQ,8CACE,OnCqlHV,CmCtlHQ,8CACE,OnCwlHV,CmCzlHQ,8CACE,OnC2lHV,CmC5lHQ,8CACE,OnC8lHV,CmC/lHQ,8CACE,OnCimHV,CmClmHQ,8CACE,OnComHV,CmCrmHQ,+CACE,QnCumHV,CmCxmHQ,+CACE,QnC0mHV,CmC3mHQ,+CACE,QnC6mHV,CmC9mHQ,+CACE,QnCgnHV,CmCjnHQ,+CACE,QnCmnHV,CmCpnHQ,+CACE,QnCsnHV,CmCvnHQ,+CACE,QnCynHV,CmC1nHQ,+CACE,QnC4nHV,CmC7nHQ,+CACE,QnC+nHV,CmChoHQ,+CACE,QnCkoHV,CmCnoHQ,+CACE,QnCqoHV,CACF,CmChoHM,uCACE,+BnCkoHR,CmC5nHE,4BACE,UnC8nHJ,CmC3nHI,aAJF,4BAKI,gBnC8nHJ,CACF,CmC1nHE,0BACE,YnC4nHJ,CmCznHI,aAJF,0BAKI,anC4nHJ,CmCxnHM,sCACE,OnC0nHR,CmC3nHM,uCACE,OnC6nHR,CmC9nHM,uCACE,OnCgoHR,CmCjoHM,uCACE,OnCmoHR,CmCpoHM,uCACE,OnCsoHR,CmCvoHM,uCACE,OnCyoHR,CmC1oHM,uCACE,OnC4oHR,CmC7oHM,uCACE,OnC+oHR,CmChpHM,uCACE,OnCkpHR,CmCnpHM,wCACE,QnCqpHR,CmCtpHM,wCACE,QnCwpHR,CmCzpHM,wCACE,QnC2pHR,CmC5pHM,wCACE,QnC8pHR,CmC/pHM,wCACE,QnCiqHR,CmClqHM,wCACE,QnCoqHR,CmCrqHM,wCACE,QnCuqHR,CmCxqHM,wCACE,QnC0qHR,CmC3qHM,wCACE,QnC6qHR,CmC9qHM,wCACE,QnCgrHR,CmCjrHM,wCACE,QnCmrHR,CACF,CmC7qHI,+FAEE,QnC+qHN,CmC5qHM,yGACE,wBAAA,CACA,yBnC+qHR,CmCtqHM,2DAEE,wBAAA,CACA,yBAAA,CAFA,QnC0qHR,CmCnqHM,iEACE,QnCqqHR,CmClqHQ,qLAGE,wBAAA,CACA,yBAAA,CAFA,QnCsqHV,CmChqHQ,6FACE,wBAAA,CACA,yBnCkqHV,CmC7pHM,yDACE,kBnC+pHR,CmC1pHI,sCACE,QnC4pHN,CmCvpHE,2BAEE,iBAAA,CAKA,kBAAA,CADA,uCAAA,CAEA,cAAA,CAPA,aAAA,CAGA,YAAA,CACA,gBAAA,CAKA,mBAAA,CADA,gCAAA,CANA,WnCgqHJ,CmCtpHI,iCAEE,uDAAA,CADA,+BnCypHN,CmCppHI,iCAIE,6BAAA,CAOA,UAAA,CAVA,aAAA,CAEA,WAAA,CAKA,8CAAA,CAAA,sCAAA,CACA,6BAAA,CAAA,qBAAA,CACA,yBAAA,CAAA,iBAAA,CALA,+CACE,CAJF,UnC6pHN,CmC/oHE,4BAME,+EACE,CALF,YAAA,CAGA,aAAA,CAFA,qBAAA,CAUA,mBAAA,CAZA,iBAAA,CAWA,wBAAA,CARA,YnCqpHJ,CmCzoHI,sCACE,wBnC2oHN,CmCvoHI,oCACE,SnCyoHN,CmCroHI,kCAGE,8EACE,CAFF,mBAAA,CADA,OnCyoHN,CmC/nHM,uDACE,8CAAA,CAAA,sCnCioHR,CKhvHI,wC8B6HF,wDAGE,kBnCwnHF,CmC3nHA,wDAGE,mBnCwnHF,CmC3nHA,8CAEE,eAAA,CADA,eAAA,CAGA,iCnCunHF,CmCnnHE,8DACE,mBnCsnHJ,CmCvnHE,8DACE,kBnCsnHJ,CmCvnHE,oDAEE,UnCqnHJ,CmCjnHE,8EAEE,kBnConHJ,CmCtnHE,8EAEE,mBnConHJ,CmCtnHE,8EAGE,kBnCmnHJ,CmCtnHE,8EAGE,mBnCmnHJ,CmCtnHE,oEACE,UnCqnHJ,CmC/mHE,8EAEE,mBnCknHJ,CmCpnHE,8EAEE,kBnCknHJ,CmCpnHE,8EAGE,mBnCinHJ,CmCpnHE,8EAGE,kBnCinHJ,CmCpnHE,oEACE,UnCmnHJ,CACF,CmCrmHE,cAHF,olDAII,+BnCwmHF,CmCrmHE,g8GACE,sCnCumHJ,CACF,CmClmHA,4sDACE,uDnCqmHF,CmCjmHA,wmDACE,anComHF,CoCh9HA,MACE,mVAAA,CAEA,4VpCo9HF,CoC18HE,4BAEE,oBAAA,CADA,iBpC88HJ,CoCz8HI,sDAGE,SpC28HN,CoC98HI,sDAGE,UpC28HN,CoC98HI,4CACE,iBAAA,CACA,SpC48HN,CoCt8HE,+CAEE,SAAA,CADA,UpCy8HJ,CoCp8HE,kDAGE,WpC68HJ,CoCh9HE,kDAGE,YpC68HJ,CoCh9HE,wCAME,qDAAA,CAIA,UAAA,CALA,aAAA,CAEA,0CAAA,CAAA,kCAAA,CACA,6BAAA,CAAA,qBAAA,CACA,yBAAA,CAAA,iBAAA,CARA,iBAAA,CACA,SAAA,CAEA,YpC48HJ,CoCl8HE,gEACE,wBT0Wa,CSzWb,mDAAA,CAAA,2CpCo8HJ,CqCr/HA,QACE,8DAAA,CAGA,+CAAA,CACA,iEAAA,CACA,oDAAA,CACA,sDAAA,CACA,mDrCs/HF,CqCl/HA,SAEE,kBAAA,CADA,YrCs/HF,CK71HI,mCiChKA,8BAIE,kBtCkgIJ,CsCtgIE,8BAIE,iBtCkgIJ,CsCtgIE,oBACE,UAAA,CAIA,mBAAA,CAFA,YAAA,CADA,atCogIJ,CsC9/HI,8BACE,WtCggIN,CsC5/HI,kCAEE,iBAAA,CAAA,ctC8/HN,CsChgII,kCAEE,aAAA,CAAA,kBtC8/HN,CsChgII,wBACE,WtC+/HN,CsC3/HM,kCACE,UtC6/HR,CACF","file":"main.css"} \ No newline at end of file diff --git a/5.x/contributing/making-changes/index.html b/5.x/contributing/making-changes/index.html index 4c004f4cc..42761f949 100644 --- a/5.x/contributing/making-changes/index.html +++ b/5.x/contributing/making-changes/index.html @@ -11,7 +11,7 @@ - + @@ -19,13 +19,14 @@ - + + @@ -44,6 +45,7 @@ + @@ -160,7 +162,7 @@ @@ -184,7 +186,7 @@
    - +
    - + @@ -994,7 +999,7 @@ make sure it stays that way.

    - + @@ -1003,7 +1008,7 @@ make sure it stays that way.

    - + @@ -1012,7 +1017,7 @@ make sure it stays that way.

    - + @@ -1026,10 +1031,10 @@ make sure it stays that way.

    - + - + diff --git a/5.x/contributing/release/index.html b/5.x/contributing/release/index.html index b0c042f20..7c4e64e4d 100644 --- a/5.x/contributing/release/index.html +++ b/5.x/contributing/release/index.html @@ -11,7 +11,7 @@ - + @@ -19,13 +19,14 @@ - + + @@ -44,6 +45,7 @@ + @@ -160,7 +162,7 @@ @@ -184,7 +186,7 @@
    - +
    - + @@ -1005,7 +1010,7 @@ - + @@ -1014,7 +1019,7 @@ - + @@ -1023,7 +1028,7 @@ - + @@ -1037,10 +1042,10 @@
    - + - + diff --git a/5.x/docs/.nojekyll b/5.x/docs/.nojekyll deleted file mode 100644 index e2ac6616a..000000000 --- a/5.x/docs/.nojekyll +++ /dev/null @@ -1 +0,0 @@ -TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file diff --git a/5.x/docs/assets/custom.css b/5.x/docs/assets/custom.css deleted file mode 100644 index 24616e25d..000000000 --- a/5.x/docs/assets/custom.css +++ /dev/null @@ -1,4 +0,0 @@ -.tsd-page-toolbar, -.tsd-page-title { - background-color: #7E56C2; -} diff --git a/5.x/docs/assets/highlight.css b/5.x/docs/assets/highlight.css deleted file mode 100644 index c1b7a0309..000000000 --- a/5.x/docs/assets/highlight.css +++ /dev/null @@ -1,78 +0,0 @@ -:root { - --light-hl-0: #000000; - --dark-hl-0: #D4D4D4; - --light-hl-1: #008000; - --dark-hl-1: #6A9955; - --light-hl-2: #795E26; - --dark-hl-2: #DCDCAA; - --light-hl-3: #0000FF; - --dark-hl-3: #569CD6; - --light-hl-4: #267F99; - --dark-hl-4: #4EC9B0; - --light-hl-5: #001080; - --dark-hl-5: #9CDCFE; - --light-hl-6: #0070C1; - --dark-hl-6: #4FC1FF; - --light-hl-7: #A31515; - --dark-hl-7: #CE9178; - --light-code-background: #FFFFFF; - --dark-code-background: #1E1E1E; -} - -@media (prefers-color-scheme: light) { :root { - --hl-0: var(--light-hl-0); - --hl-1: var(--light-hl-1); - --hl-2: var(--light-hl-2); - --hl-3: var(--light-hl-3); - --hl-4: var(--light-hl-4); - --hl-5: var(--light-hl-5); - --hl-6: var(--light-hl-6); - --hl-7: var(--light-hl-7); - --code-background: var(--light-code-background); -} } - -@media (prefers-color-scheme: dark) { :root { - --hl-0: var(--dark-hl-0); - --hl-1: var(--dark-hl-1); - --hl-2: var(--dark-hl-2); - --hl-3: var(--dark-hl-3); - --hl-4: var(--dark-hl-4); - --hl-5: var(--dark-hl-5); - --hl-6: var(--dark-hl-6); - --hl-7: var(--dark-hl-7); - --code-background: var(--dark-code-background); -} } - -:root[data-theme='light'] { - --hl-0: var(--light-hl-0); - --hl-1: var(--light-hl-1); - --hl-2: var(--light-hl-2); - --hl-3: var(--light-hl-3); - --hl-4: var(--light-hl-4); - --hl-5: var(--light-hl-5); - --hl-6: var(--light-hl-6); - --hl-7: var(--light-hl-7); - --code-background: var(--light-code-background); -} - -:root[data-theme='dark'] { - --hl-0: var(--dark-hl-0); - --hl-1: var(--dark-hl-1); - --hl-2: var(--dark-hl-2); - --hl-3: var(--dark-hl-3); - --hl-4: var(--dark-hl-4); - --hl-5: var(--dark-hl-5); - --hl-6: var(--dark-hl-6); - --hl-7: var(--dark-hl-7); - --code-background: var(--dark-code-background); -} - -.hl-0 { color: var(--hl-0); } -.hl-1 { color: var(--hl-1); } -.hl-2 { color: var(--hl-2); } -.hl-3 { color: var(--hl-3); } -.hl-4 { color: var(--hl-4); } -.hl-5 { color: var(--hl-5); } -.hl-6 { color: var(--hl-6); } -.hl-7 { color: var(--hl-7); } -pre, code { background: var(--code-background); } diff --git a/5.x/docs/assets/main.js b/5.x/docs/assets/main.js deleted file mode 100644 index c815b3349..000000000 --- a/5.x/docs/assets/main.js +++ /dev/null @@ -1,54 +0,0 @@ -"use strict"; -(()=>{var Qe=Object.create;var ae=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Ce=Object.getOwnPropertyNames;var Oe=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty;var _e=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Me=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ce(e))!Re.call(t,i)&&i!==n&&ae(t,i,{get:()=>e[i],enumerable:!(r=Pe(e,i))||r.enumerable});return t};var De=(t,e,n)=>(n=t!=null?Qe(Oe(t)):{},Me(e||!t||!t.__esModule?ae(n,"default",{value:t,enumerable:!0}):n,t));var de=_e((ce,he)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var h=t.utils.clone(n)||{};h.position=[a,l],h.index=s.length,s.push(new t.Token(r.slice(a,o),h))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. -`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ou?h+=2:a==u&&(n+=r[l+1]*i[h+1],l+=2,h+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}if(s.str.length==0&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var h=s.str.charAt(0),m=s.str.charAt(1),v;m in s.node.edges?v=s.node.edges[m]:(v=new t.TokenSet,s.node.edges[m]=v),s.str.length==1&&(v.final=!0),i.push({node:v,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof ce=="object"?he.exports=n():e.lunr=n()}(this,function(){return t})})()});var le=[];function j(t,e){le.push({selector:e,constructor:t})}var Y=class{constructor(){this.createComponents(document.body)}createComponents(e){le.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r}),r.dataset.hasInstance=String(!0))})})}};var k=class{constructor(e){this.el=e.el}};var J=class{constructor(){this.listeners={}}addEventListener(e,n){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push(n)}removeEventListener(e,n){if(!(e in this.listeners))return;let r=this.listeners[e];for(let i=0,s=r.length;i{let n=Date.now();return(...r)=>{n+e-Date.now()<0&&(t(...r),n=Date.now())}};var re=class extends J{constructor(){super();this.scrollTop=0;this.lastY=0;this.width=0;this.height=0;this.showToolbar=!0;this.toolbar=document.querySelector(".tsd-page-toolbar"),this.navigation=document.querySelector(".col-menu"),window.addEventListener("scroll",ne(()=>this.onScroll(),10)),window.addEventListener("resize",ne(()=>this.onResize(),10)),this.searchInput=document.querySelector("#tsd-search input"),this.searchInput&&this.searchInput.addEventListener("focus",()=>{this.hideShowToolbar()}),this.onResize(),this.onScroll()}triggerResize(){let n=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(n)}onResize(){this.width=window.innerWidth||0,this.height=window.innerHeight||0;let n=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(n)}onScroll(){this.scrollTop=window.scrollY||0;let n=new CustomEvent("scroll",{detail:{scrollTop:this.scrollTop}});this.dispatchEvent(n),this.hideShowToolbar()}hideShowToolbar(){let n=this.showToolbar;this.showToolbar=this.lastY>=this.scrollTop||this.scrollTop<=0||!!this.searchInput&&this.searchInput===document.activeElement,n!==this.showToolbar&&(this.toolbar.classList.toggle("tsd-page-toolbar--hide"),this.navigation?.classList.toggle("col-menu--hide")),this.lastY=this.scrollTop}},R=re;R.instance=new re;var X=class extends k{constructor(n){super(n);this.anchors=[];this.index=-1;R.instance.addEventListener("resize",()=>this.onResize()),R.instance.addEventListener("scroll",r=>this.onScroll(r)),this.createAnchors()}createAnchors(){let n=window.location.href;n.indexOf("#")!=-1&&(n=n.substring(0,n.indexOf("#"))),this.el.querySelectorAll("a").forEach(r=>{let i=r.href;if(i.indexOf("#")==-1||i.substring(0,n.length)!=n)return;let s=i.substring(i.indexOf("#")+1),o=document.querySelector("a.tsd-anchor[name="+s+"]"),a=r.parentNode;!o||!a||this.anchors.push({link:a,anchor:o,position:0})}),this.onResize()}onResize(){let n;for(let i=0,s=this.anchors.length;ii.position-s.position);let r=new CustomEvent("scroll",{detail:{scrollTop:R.instance.scrollTop}});this.onScroll(r)}onScroll(n){let r=n.detail.scrollTop+5,i=this.anchors,s=i.length-1,o=this.index;for(;o>-1&&i[o].position>r;)o-=1;for(;o-1&&this.anchors[this.index].link.classList.remove("focus"),this.index=o,this.index>-1&&this.anchors[this.index].link.classList.add("focus"))}};var ue=(t,e=100)=>{let n;return(...r)=>{clearTimeout(n),n=setTimeout(()=>t(r),e)}};var me=De(de());function ve(){let t=document.getElementById("tsd-search");if(!t)return;let e=document.getElementById("search-script");t.classList.add("loading"),e&&(e.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),e.addEventListener("load",()=>{t.classList.remove("loading"),t.classList.add("ready")}),window.searchData&&t.classList.remove("loading"));let n=document.querySelector("#tsd-search input"),r=document.querySelector("#tsd-search .results");if(!n||!r)throw new Error("The input field or the result list wrapper was not found");let i=!1;r.addEventListener("mousedown",()=>i=!0),r.addEventListener("mouseup",()=>{i=!1,t.classList.remove("has-focus")}),n.addEventListener("focus",()=>t.classList.add("has-focus")),n.addEventListener("blur",()=>{i||(i=!1,t.classList.remove("has-focus"))});let s={base:t.dataset.base+"/"};Fe(t,r,n,s)}function Fe(t,e,n,r){n.addEventListener("input",ue(()=>{Ae(t,e,n,r)},200));let i=!1;n.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ve(e,n):s.key=="Escape"?n.blur():s.key=="ArrowUp"?fe(e,-1):s.key==="ArrowDown"?fe(e,1):i=!1}),n.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!n.matches(":focus")&&s.key==="/"&&(n.focus(),s.preventDefault())})}function He(t,e){t.index||window.searchData&&(e.classList.remove("loading"),e.classList.add("ready"),t.data=window.searchData,t.index=me.Index.load(window.searchData.index))}function Ae(t,e,n,r){if(He(r,t),!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s=i?r.index.search(`*${i}*`):[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o${pe(u.parent,i)}.${l}`);let h=document.createElement("li");h.classList.value=u.classes??"";let m=document.createElement("a");m.href=r.base+u.url,m.innerHTML=l,h.append(m),e.appendChild(h)}}function fe(t,e){let n=t.querySelector(".current");if(!n)n=t.querySelector(e==1?"li:first-child":"li:last-child"),n&&n.classList.add("current");else{let r=n;if(e===1)do r=r.nextElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);else do r=r.previousElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);r&&(n.classList.remove("current"),r.classList.add("current"))}}function Ve(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),e.blur()}}function pe(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ie(t.substring(s,o)),`${ie(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(ie(t.substring(s))),i.join("")}var Ne={"&":"&","<":"<",">":">","'":"'",'"':"""};function ie(t){return t.replace(/[&<>"'"]/g,e=>Ne[e])}var F="mousedown",ye="mousemove",B="mouseup",Z={x:0,y:0},ge=!1,se=!1,je=!1,H=!1,xe=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(xe?"is-mobile":"not-mobile");xe&&"ontouchstart"in document.documentElement&&(je=!0,F="touchstart",ye="touchmove",B="touchend");document.addEventListener(F,t=>{se=!0,H=!1;let e=F=="touchstart"?t.targetTouches[0]:t;Z.y=e.pageY||0,Z.x=e.pageX||0});document.addEventListener(ye,t=>{if(!!se&&!H){let e=F=="touchstart"?t.targetTouches[0]:t,n=Z.x-(e.pageX||0),r=Z.y-(e.pageY||0);H=Math.sqrt(n*n+r*r)>10}});document.addEventListener(B,()=>{se=!1});document.addEventListener("click",t=>{ge&&(t.preventDefault(),t.stopImmediatePropagation(),ge=!1)});var K=class extends k{constructor(n){super(n);this.className=this.el.dataset.toggle||"",this.el.addEventListener(B,r=>this.onPointerUp(r)),this.el.addEventListener("click",r=>r.preventDefault()),document.addEventListener(F,r=>this.onDocumentPointerDown(r)),document.addEventListener(B,r=>this.onDocumentPointerUp(r))}setActive(n){if(this.active==n)return;this.active=n,document.documentElement.classList.toggle("has-"+this.className,n),this.el.classList.toggle("active",n);let r=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(r),setTimeout(()=>document.documentElement.classList.remove(r),500)}onPointerUp(n){H||(this.setActive(!0),n.preventDefault())}onDocumentPointerDown(n){if(this.active){if(n.target.closest(".col-menu, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(n){if(!H&&this.active&&n.target.closest(".col-menu")){let r=n.target.closest("a");if(r){let i=window.location.href;i.indexOf("#")!=-1&&(i=i.substring(0,i.indexOf("#"))),r.href.substring(0,i.length)==i&&setTimeout(()=>this.setActive(!1),250)}}}};var oe;try{oe=localStorage}catch{oe={getItem(){return null},setItem(){}}}var Q=oe;var Le=document.head.appendChild(document.createElement("style"));Le.dataset.for="filters";var ee=class extends k{constructor(n){super(n);this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),Le.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } -`}fromLocalStorage(){let n=Q.getItem(this.key);return n?n==="true":this.el.checked}setLocalStorage(n){Q.setItem(this.key,n.toString()),this.value=n,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),document.querySelectorAll(".tsd-index-section").forEach(n=>{n.style.display="block";let r=Array.from(n.querySelectorAll(".tsd-index-link")).every(i=>i.offsetParent==null);n.style.display=r?"none":"block"})}};var te=class extends k{constructor(n){super(n);this.calculateHeights(),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.textContent.replace(/\s+/g,"-").toLowerCase()}`,this.setLocalStorage(this.fromLocalStorage(),!0),this.summary.addEventListener("click",r=>this.toggleVisibility(r)),this.icon.style.transform=this.getIconRotation()}getIconRotation(n=this.el.open){return`rotate(${n?0:-90}deg)`}calculateHeights(){let n=this.el.open,{position:r,left:i}=this.el.style;this.el.style.position="fixed",this.el.style.left="-9999px",this.el.open=!0,this.expandedHeight=this.el.offsetHeight+"px",this.el.open=!1,this.collapsedHeight=this.el.offsetHeight+"px",this.el.open=n,this.el.style.height=n?this.expandedHeight:this.collapsedHeight,this.el.style.position=r,this.el.style.left=i}toggleVisibility(n){n.preventDefault(),this.el.style.overflow="hidden",this.el.open?this.collapse():this.expand()}expand(n=!0){this.el.open=!0,this.animate(this.collapsedHeight,this.expandedHeight,{opening:!0,duration:n?300:0})}collapse(n=!0){this.animate(this.expandedHeight,this.collapsedHeight,{opening:!1,duration:n?300:0})}animate(n,r,{opening:i,duration:s=300}){if(this.animation)return;let o={duration:s,easing:"ease"};this.animation=this.el.animate({height:[n,r]},o),this.icon.animate({transform:[this.icon.style.transform||this.getIconRotation(!i),this.getIconRotation(i)]},o).addEventListener("finish",()=>{this.icon.style.transform=this.getIconRotation(i)}),this.animation.addEventListener("finish",()=>this.animationEnd(i))}animationEnd(n){this.el.open=n,this.animation=void 0,this.el.style.height="auto",this.el.style.overflow="visible",this.setLocalStorage(n)}fromLocalStorage(){let n=Q.getItem(this.key);return n?n==="true":this.el.open}setLocalStorage(n,r=!1){this.fromLocalStorage()===n&&!r||(Q.setItem(this.key,n.toString()),this.el.open=n,this.handleValueChange(r))}handleValueChange(n=!1){this.fromLocalStorage()===this.el.open&&!n||(this.fromLocalStorage()?this.expand(!1):this.collapse(!1))}};function be(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,Ee(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),Ee(t.value)})}function Ee(t){document.documentElement.dataset.theme=t}ve();j(X,".menu-highlight");j(K,"a[data-toggle]");j(te,".tsd-index-accordion");j(ee,".tsd-filter-item input[type=checkbox]");var Se=document.getElementById("theme");Se&&be(Se);var Be=new Y;Object.defineProperty(window,"app",{value:Be});})(); -/*! - * lunr.Builder - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.Index - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.Pipeline - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.Set - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.TokenSet - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.Vector - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.stemmer - * Copyright (C) 2020 Oliver Nightingale - * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt - */ -/*! - * lunr.stopWordFilter - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.tokenizer - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.trimmer - * Copyright (C) 2020 Oliver Nightingale - */ -/*! - * lunr.utils - * Copyright (C) 2020 Oliver Nightingale - */ -/** - * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 - * Copyright (C) 2020 Oliver Nightingale - * @license MIT - */ diff --git a/5.x/docs/assets/search.js b/5.x/docs/assets/search.js deleted file mode 100644 index 097174cf1..000000000 --- a/5.x/docs/assets/search.js +++ /dev/null @@ -1 +0,0 @@ -window.searchData = JSON.parse("{\"kinds\":{\"8\":\"Enumeration\",\"16\":\"Enumeration Member\",\"32\":\"Variable\",\"64\":\"Function\",\"128\":\"Class\",\"256\":\"Interface\",\"512\":\"Constructor\",\"1024\":\"Property\",\"2048\":\"Method\",\"65536\":\"Type literal\",\"262144\":\"Accessor\",\"4194304\":\"Type alias\"},\"rows\":[{\"kind\":128,\"name\":\"BearerWebIdExtractor\",\"url\":\"classes/BearerWebIdExtractor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/BearerWebIdExtractor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"BearerWebIdExtractor\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/BearerWebIdExtractor.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"BearerWebIdExtractor\"},{\"kind\":1024,\"name\":\"verify\",\"url\":\"classes/BearerWebIdExtractor.html#verify\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BearerWebIdExtractor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/BearerWebIdExtractor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BearerWebIdExtractor\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/BearerWebIdExtractor.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BearerWebIdExtractor\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/BearerWebIdExtractor.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BearerWebIdExtractor\"},{\"kind\":256,\"name\":\"Credential\",\"url\":\"interfaces/Credential.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"webId\",\"url\":\"interfaces/Credential.html#webId\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Credential\"},{\"kind\":8,\"name\":\"CredentialGroup\",\"url\":\"enums/CredentialGroup.html\",\"classes\":\"tsd-kind-enum\"},{\"kind\":16,\"name\":\"public\",\"url\":\"enums/CredentialGroup.html#public\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"CredentialGroup\"},{\"kind\":16,\"name\":\"agent\",\"url\":\"enums/CredentialGroup.html#agent\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"CredentialGroup\"},{\"kind\":4194304,\"name\":\"CredentialSet\",\"url\":\"types/CredentialSet.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":128,\"name\":\"CredentialsExtractor\",\"url\":\"classes/CredentialsExtractor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/CredentialsExtractor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"CredentialsExtractor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/CredentialsExtractor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"CredentialsExtractor\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/CredentialsExtractor.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"CredentialsExtractor\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/CredentialsExtractor.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"CredentialsExtractor\"},{\"kind\":128,\"name\":\"DPoPWebIdExtractor\",\"url\":\"classes/DPoPWebIdExtractor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/DPoPWebIdExtractor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"DPoPWebIdExtractor\"},{\"kind\":1024,\"name\":\"originalUrlExtractor\",\"url\":\"classes/DPoPWebIdExtractor.html#originalUrlExtractor\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"DPoPWebIdExtractor\"},{\"kind\":1024,\"name\":\"verify\",\"url\":\"classes/DPoPWebIdExtractor.html#verify\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"DPoPWebIdExtractor\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/DPoPWebIdExtractor.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"DPoPWebIdExtractor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/DPoPWebIdExtractor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"DPoPWebIdExtractor\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/DPoPWebIdExtractor.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"DPoPWebIdExtractor\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/DPoPWebIdExtractor.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"DPoPWebIdExtractor\"},{\"kind\":128,\"name\":\"PublicCredentialsExtractor\",\"url\":\"classes/PublicCredentialsExtractor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/PublicCredentialsExtractor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PublicCredentialsExtractor\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/PublicCredentialsExtractor.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PublicCredentialsExtractor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/PublicCredentialsExtractor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PublicCredentialsExtractor\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/PublicCredentialsExtractor.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PublicCredentialsExtractor\"},{\"kind\":128,\"name\":\"UnionCredentialsExtractor\",\"url\":\"classes/UnionCredentialsExtractor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/UnionCredentialsExtractor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"UnionCredentialsExtractor\"},{\"kind\":2048,\"name\":\"combine\",\"url\":\"classes/UnionCredentialsExtractor.html#combine\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"UnionCredentialsExtractor\"},{\"kind\":1024,\"name\":\"handlers\",\"url\":\"classes/UnionCredentialsExtractor.html#handlers\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"UnionCredentialsExtractor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/UnionCredentialsExtractor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnionCredentialsExtractor\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/UnionCredentialsExtractor.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnionCredentialsExtractor\"},{\"kind\":2048,\"name\":\"allCanHandle\",\"url\":\"classes/UnionCredentialsExtractor.html#allCanHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"UnionCredentialsExtractor\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/UnionCredentialsExtractor.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnionCredentialsExtractor\"},{\"kind\":128,\"name\":\"UnsecureConstantCredentialsExtractor\",\"url\":\"classes/UnsecureConstantCredentialsExtractor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/UnsecureConstantCredentialsExtractor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"UnsecureConstantCredentialsExtractor\"},{\"kind\":1024,\"name\":\"credentials\",\"url\":\"classes/UnsecureConstantCredentialsExtractor.html#credentials\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"UnsecureConstantCredentialsExtractor\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/UnsecureConstantCredentialsExtractor.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"UnsecureConstantCredentialsExtractor\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/UnsecureConstantCredentialsExtractor.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"UnsecureConstantCredentialsExtractor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/UnsecureConstantCredentialsExtractor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnsecureConstantCredentialsExtractor\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/UnsecureConstantCredentialsExtractor.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnsecureConstantCredentialsExtractor\"},{\"kind\":128,\"name\":\"UnsecureWebIdExtractor\",\"url\":\"classes/UnsecureWebIdExtractor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/UnsecureWebIdExtractor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnsecureWebIdExtractor\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/UnsecureWebIdExtractor.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"UnsecureWebIdExtractor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/UnsecureWebIdExtractor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"UnsecureWebIdExtractor\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/UnsecureWebIdExtractor.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"UnsecureWebIdExtractor\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/UnsecureWebIdExtractor.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnsecureWebIdExtractor\"},{\"kind\":128,\"name\":\"AccessChecker\",\"url\":\"classes/AccessChecker.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/AccessChecker.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AccessChecker\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/AccessChecker.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AccessChecker\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/AccessChecker.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AccessChecker\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/AccessChecker.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AccessChecker\"},{\"kind\":256,\"name\":\"AccessCheckerArgs\",\"url\":\"interfaces/AccessCheckerArgs.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"acl\",\"url\":\"interfaces/AccessCheckerArgs.html#acl\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccessCheckerArgs\"},{\"kind\":1024,\"name\":\"rule\",\"url\":\"interfaces/AccessCheckerArgs.html#rule\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccessCheckerArgs\"},{\"kind\":1024,\"name\":\"credential\",\"url\":\"interfaces/AccessCheckerArgs.html#credential\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccessCheckerArgs\"},{\"kind\":128,\"name\":\"AgentAccessChecker\",\"url\":\"classes/AgentAccessChecker.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/AgentAccessChecker.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AgentAccessChecker\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/AgentAccessChecker.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"AgentAccessChecker\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/AgentAccessChecker.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AgentAccessChecker\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/AgentAccessChecker.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AgentAccessChecker\"},{\"kind\":128,\"name\":\"AgentClassAccessChecker\",\"url\":\"classes/AgentClassAccessChecker.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/AgentClassAccessChecker.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AgentClassAccessChecker\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/AgentClassAccessChecker.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"AgentClassAccessChecker\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/AgentClassAccessChecker.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AgentClassAccessChecker\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/AgentClassAccessChecker.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AgentClassAccessChecker\"},{\"kind\":128,\"name\":\"AgentGroupAccessChecker\",\"url\":\"classes/AgentGroupAccessChecker.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/AgentGroupAccessChecker.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"AgentGroupAccessChecker\"},{\"kind\":1024,\"name\":\"cache\",\"url\":\"classes/AgentGroupAccessChecker.html#cache\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"AgentGroupAccessChecker\"},{\"kind\":1024,\"name\":\"expiration\",\"url\":\"classes/AgentGroupAccessChecker.html#expiration\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"AgentGroupAccessChecker\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/AgentGroupAccessChecker.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"AgentGroupAccessChecker\"},{\"kind\":2048,\"name\":\"isMemberOfGroup\",\"url\":\"classes/AgentGroupAccessChecker.html#isMemberOfGroup\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"AgentGroupAccessChecker\"},{\"kind\":2048,\"name\":\"fetchCachedQuads\",\"url\":\"classes/AgentGroupAccessChecker.html#fetchCachedQuads\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"AgentGroupAccessChecker\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/AgentGroupAccessChecker.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AgentGroupAccessChecker\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/AgentGroupAccessChecker.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AgentGroupAccessChecker\"},{\"kind\":8,\"name\":\"AclMode\",\"url\":\"enums/AclMode.html\",\"classes\":\"tsd-kind-enum\"},{\"kind\":16,\"name\":\"control\",\"url\":\"enums/AclMode.html#control\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AclMode\"},{\"kind\":4194304,\"name\":\"AclPermission\",\"url\":\"types/AclPermission.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":128,\"name\":\"CreateModesExtractor\",\"url\":\"classes/CreateModesExtractor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/CreateModesExtractor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"CreateModesExtractor\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/CreateModesExtractor.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"CreateModesExtractor\"},{\"kind\":1024,\"name\":\"resourceSet\",\"url\":\"classes/CreateModesExtractor.html#resourceSet\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"CreateModesExtractor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/CreateModesExtractor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"CreateModesExtractor\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/CreateModesExtractor.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"CreateModesExtractor\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/CreateModesExtractor.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"CreateModesExtractor\"},{\"kind\":128,\"name\":\"DeleteParentExtractor\",\"url\":\"classes/DeleteParentExtractor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/DeleteParentExtractor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"DeleteParentExtractor\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/DeleteParentExtractor.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"DeleteParentExtractor\"},{\"kind\":1024,\"name\":\"resourceSet\",\"url\":\"classes/DeleteParentExtractor.html#resourceSet\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"DeleteParentExtractor\"},{\"kind\":1024,\"name\":\"identifierStrategy\",\"url\":\"classes/DeleteParentExtractor.html#identifierStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"DeleteParentExtractor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/DeleteParentExtractor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"DeleteParentExtractor\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/DeleteParentExtractor.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"DeleteParentExtractor\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/DeleteParentExtractor.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"DeleteParentExtractor\"},{\"kind\":128,\"name\":\"IntermediateCreateExtractor\",\"url\":\"classes/IntermediateCreateExtractor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/IntermediateCreateExtractor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"IntermediateCreateExtractor\"},{\"kind\":1024,\"name\":\"resourceSet\",\"url\":\"classes/IntermediateCreateExtractor.html#resourceSet\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"IntermediateCreateExtractor\"},{\"kind\":1024,\"name\":\"strategy\",\"url\":\"classes/IntermediateCreateExtractor.html#strategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"IntermediateCreateExtractor\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/IntermediateCreateExtractor.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"IntermediateCreateExtractor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/IntermediateCreateExtractor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"IntermediateCreateExtractor\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/IntermediateCreateExtractor.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"IntermediateCreateExtractor\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/IntermediateCreateExtractor.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IntermediateCreateExtractor\"},{\"kind\":128,\"name\":\"ModesExtractor\",\"url\":\"classes/ModesExtractor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ModesExtractor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ModesExtractor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ModesExtractor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ModesExtractor\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ModesExtractor.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ModesExtractor\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ModesExtractor.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ModesExtractor\"},{\"kind\":128,\"name\":\"MethodModesExtractor\",\"url\":\"classes/MethodModesExtractor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MethodModesExtractor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"MethodModesExtractor\"},{\"kind\":1024,\"name\":\"resourceSet\",\"url\":\"classes/MethodModesExtractor.html#resourceSet\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"MethodModesExtractor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/MethodModesExtractor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"MethodModesExtractor\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/MethodModesExtractor.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"MethodModesExtractor\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/MethodModesExtractor.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MethodModesExtractor\"},{\"kind\":128,\"name\":\"N3PatchModesExtractor\",\"url\":\"classes/N3PatchModesExtractor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/N3PatchModesExtractor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"N3PatchModesExtractor\"},{\"kind\":1024,\"name\":\"resourceSet\",\"url\":\"classes/N3PatchModesExtractor.html#resourceSet\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"N3PatchModesExtractor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/N3PatchModesExtractor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"N3PatchModesExtractor\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/N3PatchModesExtractor.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"N3PatchModesExtractor\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/N3PatchModesExtractor.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"N3PatchModesExtractor\"},{\"kind\":8,\"name\":\"AccessMode\",\"url\":\"enums/AccessMode.html\",\"classes\":\"tsd-kind-enum\"},{\"kind\":16,\"name\":\"read\",\"url\":\"enums/AccessMode.html#read\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccessMode\"},{\"kind\":16,\"name\":\"append\",\"url\":\"enums/AccessMode.html#append\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccessMode\"},{\"kind\":16,\"name\":\"write\",\"url\":\"enums/AccessMode.html#write\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccessMode\"},{\"kind\":16,\"name\":\"create\",\"url\":\"enums/AccessMode.html#create\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccessMode\"},{\"kind\":16,\"name\":\"delete\",\"url\":\"enums/AccessMode.html#delete\",\"classes\":\"tsd-kind-enum-member tsd-parent-kind-enum\",\"parent\":\"AccessMode\"},{\"kind\":4194304,\"name\":\"AccessMap\",\"url\":\"types/AccessMap.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"Permission\",\"url\":\"types/Permission.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"PermissionSet\",\"url\":\"types/PermissionSet.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"PermissionMap\",\"url\":\"types/PermissionMap.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":128,\"name\":\"SparqlUpdateModesExtractor\",\"url\":\"classes/SparqlUpdateModesExtractor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/SparqlUpdateModesExtractor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"SparqlUpdateModesExtractor\"},{\"kind\":1024,\"name\":\"resourceSet\",\"url\":\"classes/SparqlUpdateModesExtractor.html#resourceSet\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlUpdateModesExtractor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/SparqlUpdateModesExtractor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SparqlUpdateModesExtractor\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/SparqlUpdateModesExtractor.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SparqlUpdateModesExtractor\"},{\"kind\":2048,\"name\":\"isSparql\",\"url\":\"classes/SparqlUpdateModesExtractor.html#isSparql\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlUpdateModesExtractor\"},{\"kind\":2048,\"name\":\"isSupported\",\"url\":\"classes/SparqlUpdateModesExtractor.html#isSupported\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlUpdateModesExtractor\"},{\"kind\":2048,\"name\":\"isDeleteInsert\",\"url\":\"classes/SparqlUpdateModesExtractor.html#isDeleteInsert\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlUpdateModesExtractor\"},{\"kind\":2048,\"name\":\"isNop\",\"url\":\"classes/SparqlUpdateModesExtractor.html#isNop\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlUpdateModesExtractor\"},{\"kind\":2048,\"name\":\"hasConditions\",\"url\":\"classes/SparqlUpdateModesExtractor.html#hasConditions\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlUpdateModesExtractor\"},{\"kind\":2048,\"name\":\"hasInserts\",\"url\":\"classes/SparqlUpdateModesExtractor.html#hasInserts\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlUpdateModesExtractor\"},{\"kind\":2048,\"name\":\"hasDeletes\",\"url\":\"classes/SparqlUpdateModesExtractor.html#hasDeletes\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlUpdateModesExtractor\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/SparqlUpdateModesExtractor.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"SparqlUpdateModesExtractor\"},{\"kind\":128,\"name\":\"AllStaticReader\",\"url\":\"classes/AllStaticReader.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/AllStaticReader.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"AllStaticReader\"},{\"kind\":1024,\"name\":\"permissions\",\"url\":\"classes/AllStaticReader.html#permissions\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"AllStaticReader\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/AllStaticReader.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"AllStaticReader\"},{\"kind\":2048,\"name\":\"createPermissions\",\"url\":\"classes/AllStaticReader.html#createPermissions\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"AllStaticReader\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/AllStaticReader.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AllStaticReader\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/AllStaticReader.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AllStaticReader\"},{\"kind\":256,\"name\":\"AuthorizerInput\",\"url\":\"interfaces/AuthorizerInput.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"credentials\",\"url\":\"interfaces/AuthorizerInput.html#credentials\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AuthorizerInput\"},{\"kind\":1024,\"name\":\"requestedModes\",\"url\":\"interfaces/AuthorizerInput.html#requestedModes\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AuthorizerInput\"},{\"kind\":1024,\"name\":\"availablePermissions\",\"url\":\"interfaces/AuthorizerInput.html#availablePermissions\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AuthorizerInput\"},{\"kind\":128,\"name\":\"Authorizer\",\"url\":\"classes/Authorizer.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Authorizer.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Authorizer\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/Authorizer.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Authorizer\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/Authorizer.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Authorizer\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/Authorizer.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Authorizer\"},{\"kind\":128,\"name\":\"AuxiliaryReader\",\"url\":\"classes/AuxiliaryReader.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/AuxiliaryReader.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"AuxiliaryReader\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/AuxiliaryReader.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"AuxiliaryReader\"},{\"kind\":1024,\"name\":\"reader\",\"url\":\"classes/AuxiliaryReader.html#reader\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"AuxiliaryReader\"},{\"kind\":1024,\"name\":\"auxiliaryStrategy\",\"url\":\"classes/AuxiliaryReader.html#auxiliaryStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"AuxiliaryReader\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/AuxiliaryReader.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"AuxiliaryReader\"},{\"kind\":2048,\"name\":\"findAuxiliaries\",\"url\":\"classes/AuxiliaryReader.html#findAuxiliaries\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"AuxiliaryReader\"},{\"kind\":2048,\"name\":\"isDependentAuxiliary\",\"url\":\"classes/AuxiliaryReader.html#isDependentAuxiliary\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"AuxiliaryReader\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/AuxiliaryReader.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AuxiliaryReader\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/AuxiliaryReader.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AuxiliaryReader\"},{\"kind\":128,\"name\":\"OwnerPermissionReader\",\"url\":\"classes/OwnerPermissionReader.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/OwnerPermissionReader.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"OwnerPermissionReader\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/OwnerPermissionReader.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"OwnerPermissionReader\"},{\"kind\":1024,\"name\":\"accountStore\",\"url\":\"classes/OwnerPermissionReader.html#accountStore\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"OwnerPermissionReader\"},{\"kind\":1024,\"name\":\"aclStrategy\",\"url\":\"classes/OwnerPermissionReader.html#aclStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"OwnerPermissionReader\"},{\"kind\":1024,\"name\":\"identifierStrategy\",\"url\":\"classes/OwnerPermissionReader.html#identifierStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"OwnerPermissionReader\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/OwnerPermissionReader.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"OwnerPermissionReader\"},{\"kind\":2048,\"name\":\"findPodBaseUrl\",\"url\":\"classes/OwnerPermissionReader.html#findPodBaseUrl\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"OwnerPermissionReader\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/OwnerPermissionReader.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OwnerPermissionReader\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/OwnerPermissionReader.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OwnerPermissionReader\"},{\"kind\":128,\"name\":\"ParentContainerReader\",\"url\":\"classes/ParentContainerReader.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ParentContainerReader.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ParentContainerReader\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/ParentContainerReader.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"ParentContainerReader\"},{\"kind\":1024,\"name\":\"reader\",\"url\":\"classes/ParentContainerReader.html#reader\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ParentContainerReader\"},{\"kind\":1024,\"name\":\"identifierStrategy\",\"url\":\"classes/ParentContainerReader.html#identifierStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ParentContainerReader\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ParentContainerReader.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ParentContainerReader\"},{\"kind\":2048,\"name\":\"findParents\",\"url\":\"classes/ParentContainerReader.html#findParents\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ParentContainerReader\"},{\"kind\":2048,\"name\":\"getParentModes\",\"url\":\"classes/ParentContainerReader.html#getParentModes\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ParentContainerReader\"},{\"kind\":2048,\"name\":\"addContainerPermissions\",\"url\":\"classes/ParentContainerReader.html#addContainerPermissions\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ParentContainerReader\"},{\"kind\":2048,\"name\":\"interpretContainerPermission\",\"url\":\"classes/ParentContainerReader.html#interpretContainerPermission\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ParentContainerReader\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ParentContainerReader.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ParentContainerReader\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ParentContainerReader.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ParentContainerReader\"},{\"kind\":128,\"name\":\"PathBasedReader\",\"url\":\"classes/PathBasedReader.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/PathBasedReader.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"PathBasedReader\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/PathBasedReader.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"PathBasedReader\"},{\"kind\":1024,\"name\":\"baseUrl\",\"url\":\"classes/PathBasedReader.html#baseUrl\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"PathBasedReader\"},{\"kind\":1024,\"name\":\"paths\",\"url\":\"classes/PathBasedReader.html#paths\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"PathBasedReader\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/PathBasedReader.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PathBasedReader\"},{\"kind\":2048,\"name\":\"matchReaders\",\"url\":\"classes/PathBasedReader.html#matchReaders\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"PathBasedReader\"},{\"kind\":2048,\"name\":\"findReader\",\"url\":\"classes/PathBasedReader.html#findReader\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"PathBasedReader\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/PathBasedReader.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PathBasedReader\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/PathBasedReader.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PathBasedReader\"},{\"kind\":128,\"name\":\"PermissionBasedAuthorizer\",\"url\":\"classes/PermissionBasedAuthorizer.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/PermissionBasedAuthorizer.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"PermissionBasedAuthorizer\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/PermissionBasedAuthorizer.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"PermissionBasedAuthorizer\"},{\"kind\":1024,\"name\":\"resourceSet\",\"url\":\"classes/PermissionBasedAuthorizer.html#resourceSet\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"PermissionBasedAuthorizer\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/PermissionBasedAuthorizer.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PermissionBasedAuthorizer\"},{\"kind\":2048,\"name\":\"reportAccessError\",\"url\":\"classes/PermissionBasedAuthorizer.html#reportAccessError\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"PermissionBasedAuthorizer\"},{\"kind\":2048,\"name\":\"requireModePermission\",\"url\":\"classes/PermissionBasedAuthorizer.html#requireModePermission\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"PermissionBasedAuthorizer\"},{\"kind\":2048,\"name\":\"hasModePermission\",\"url\":\"classes/PermissionBasedAuthorizer.html#hasModePermission\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"PermissionBasedAuthorizer\"},{\"kind\":2048,\"name\":\"isAuthenticated\",\"url\":\"classes/PermissionBasedAuthorizer.html#isAuthenticated\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"PermissionBasedAuthorizer\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/PermissionBasedAuthorizer.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PermissionBasedAuthorizer\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/PermissionBasedAuthorizer.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PermissionBasedAuthorizer\"},{\"kind\":256,\"name\":\"PermissionReaderInput\",\"url\":\"interfaces/PermissionReaderInput.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"credentials\",\"url\":\"interfaces/PermissionReaderInput.html#credentials\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PermissionReaderInput\"},{\"kind\":1024,\"name\":\"requestedModes\",\"url\":\"interfaces/PermissionReaderInput.html#requestedModes\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PermissionReaderInput\"},{\"kind\":128,\"name\":\"PermissionReader\",\"url\":\"classes/PermissionReader.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/PermissionReader.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PermissionReader\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/PermissionReader.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PermissionReader\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/PermissionReader.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PermissionReader\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/PermissionReader.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PermissionReader\"},{\"kind\":128,\"name\":\"UnionPermissionReader\",\"url\":\"classes/UnionPermissionReader.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/UnionPermissionReader.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"UnionPermissionReader\"},{\"kind\":2048,\"name\":\"combine\",\"url\":\"classes/UnionPermissionReader.html#combine\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"UnionPermissionReader\"},{\"kind\":2048,\"name\":\"mergePermissionMaps\",\"url\":\"classes/UnionPermissionReader.html#mergePermissionMaps\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"UnionPermissionReader\"},{\"kind\":2048,\"name\":\"mergePermissions\",\"url\":\"classes/UnionPermissionReader.html#mergePermissions\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"UnionPermissionReader\"},{\"kind\":1024,\"name\":\"handlers\",\"url\":\"classes/UnionPermissionReader.html#handlers\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"UnionPermissionReader\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/UnionPermissionReader.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnionPermissionReader\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/UnionPermissionReader.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnionPermissionReader\"},{\"kind\":2048,\"name\":\"allCanHandle\",\"url\":\"classes/UnionPermissionReader.html#allCanHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"UnionPermissionReader\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/UnionPermissionReader.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnionPermissionReader\"},{\"kind\":128,\"name\":\"WebAclAuxiliaryReader\",\"url\":\"classes/WebAclAuxiliaryReader.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/WebAclAuxiliaryReader.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"WebAclAuxiliaryReader\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/WebAclAuxiliaryReader.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"WebAclAuxiliaryReader\"},{\"kind\":1024,\"name\":\"reader\",\"url\":\"classes/WebAclAuxiliaryReader.html#reader\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"WebAclAuxiliaryReader\"},{\"kind\":1024,\"name\":\"aclStrategy\",\"url\":\"classes/WebAclAuxiliaryReader.html#aclStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"WebAclAuxiliaryReader\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/WebAclAuxiliaryReader.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WebAclAuxiliaryReader\"},{\"kind\":2048,\"name\":\"findAcl\",\"url\":\"classes/WebAclAuxiliaryReader.html#findAcl\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"WebAclAuxiliaryReader\"},{\"kind\":2048,\"name\":\"interpretControl\",\"url\":\"classes/WebAclAuxiliaryReader.html#interpretControl\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"WebAclAuxiliaryReader\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/WebAclAuxiliaryReader.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WebAclAuxiliaryReader\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/WebAclAuxiliaryReader.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WebAclAuxiliaryReader\"},{\"kind\":128,\"name\":\"WebAclReader\",\"url\":\"classes/WebAclReader.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/WebAclReader.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"WebAclReader\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/WebAclReader.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"WebAclReader\"},{\"kind\":1024,\"name\":\"aclStrategy\",\"url\":\"classes/WebAclReader.html#aclStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"WebAclReader\"},{\"kind\":1024,\"name\":\"resourceSet\",\"url\":\"classes/WebAclReader.html#resourceSet\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"WebAclReader\"},{\"kind\":1024,\"name\":\"aclStore\",\"url\":\"classes/WebAclReader.html#aclStore\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"WebAclReader\"},{\"kind\":1024,\"name\":\"identifierStrategy\",\"url\":\"classes/WebAclReader.html#identifierStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"WebAclReader\"},{\"kind\":1024,\"name\":\"accessChecker\",\"url\":\"classes/WebAclReader.html#accessChecker\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"WebAclReader\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/WebAclReader.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WebAclReader\"},{\"kind\":2048,\"name\":\"findPermissions\",\"url\":\"classes/WebAclReader.html#findPermissions\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"WebAclReader\"},{\"kind\":2048,\"name\":\"determinePermissions\",\"url\":\"classes/WebAclReader.html#determinePermissions\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"WebAclReader\"},{\"kind\":2048,\"name\":\"getAclMatches\",\"url\":\"classes/WebAclReader.html#getAclMatches\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"WebAclReader\"},{\"kind\":2048,\"name\":\"getAclRecursive\",\"url\":\"classes/WebAclReader.html#getAclRecursive\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"WebAclReader\"},{\"kind\":2048,\"name\":\"findAuthorizationStatements\",\"url\":\"classes/WebAclReader.html#findAuthorizationStatements\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"WebAclReader\"},{\"kind\":2048,\"name\":\"filterStore\",\"url\":\"classes/WebAclReader.html#filterStore\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"WebAclReader\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/WebAclReader.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WebAclReader\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/WebAclReader.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WebAclReader\"},{\"kind\":256,\"name\":\"AuxiliaryIdentifierStrategy\",\"url\":\"interfaces/AuxiliaryIdentifierStrategy.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"getAuxiliaryIdentifier\",\"url\":\"interfaces/AuxiliaryIdentifierStrategy.html#getAuxiliaryIdentifier\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AuxiliaryIdentifierStrategy\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AuxiliaryIdentifierStrategy.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AuxiliaryIdentifierStrategy\"},{\"kind\":1024,\"name\":\"getAuxiliaryIdentifiers\",\"url\":\"interfaces/AuxiliaryIdentifierStrategy.html#getAuxiliaryIdentifiers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AuxiliaryIdentifierStrategy\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AuxiliaryIdentifierStrategy.html#__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AuxiliaryIdentifierStrategy\"},{\"kind\":1024,\"name\":\"isAuxiliaryIdentifier\",\"url\":\"interfaces/AuxiliaryIdentifierStrategy.html#isAuxiliaryIdentifier\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AuxiliaryIdentifierStrategy\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AuxiliaryIdentifierStrategy.html#__type-6\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AuxiliaryIdentifierStrategy\"},{\"kind\":1024,\"name\":\"getSubjectIdentifier\",\"url\":\"interfaces/AuxiliaryIdentifierStrategy.html#getSubjectIdentifier\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AuxiliaryIdentifierStrategy\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AuxiliaryIdentifierStrategy.html#__type-4\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AuxiliaryIdentifierStrategy\"},{\"kind\":256,\"name\":\"AuxiliaryStrategy\",\"url\":\"interfaces/AuxiliaryStrategy.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"usesOwnAuthorization\",\"url\":\"interfaces/AuxiliaryStrategy.html#usesOwnAuthorization\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AuxiliaryStrategy\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AuxiliaryStrategy.html#__type-12\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AuxiliaryStrategy\"},{\"kind\":1024,\"name\":\"isRequiredInRoot\",\"url\":\"interfaces/AuxiliaryStrategy.html#isRequiredInRoot\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AuxiliaryStrategy\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AuxiliaryStrategy.html#__type-10\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AuxiliaryStrategy\"},{\"kind\":1024,\"name\":\"addMetadata\",\"url\":\"interfaces/AuxiliaryStrategy.html#addMetadata\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AuxiliaryStrategy\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AuxiliaryStrategy.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AuxiliaryStrategy\"},{\"kind\":1024,\"name\":\"validate\",\"url\":\"interfaces/AuxiliaryStrategy.html#validate\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AuxiliaryStrategy\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AuxiliaryStrategy.html#__type-14\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AuxiliaryStrategy\"},{\"kind\":1024,\"name\":\"getAuxiliaryIdentifier\",\"url\":\"interfaces/AuxiliaryStrategy.html#getAuxiliaryIdentifier\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AuxiliaryStrategy\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AuxiliaryStrategy.html#__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AuxiliaryStrategy\"},{\"kind\":1024,\"name\":\"getAuxiliaryIdentifiers\",\"url\":\"interfaces/AuxiliaryStrategy.html#getAuxiliaryIdentifiers\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AuxiliaryStrategy\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AuxiliaryStrategy.html#__type-4\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AuxiliaryStrategy\"},{\"kind\":1024,\"name\":\"isAuxiliaryIdentifier\",\"url\":\"interfaces/AuxiliaryStrategy.html#isAuxiliaryIdentifier\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AuxiliaryStrategy\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AuxiliaryStrategy.html#__type-8\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AuxiliaryStrategy\"},{\"kind\":1024,\"name\":\"getSubjectIdentifier\",\"url\":\"interfaces/AuxiliaryStrategy.html#getSubjectIdentifier\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AuxiliaryStrategy\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AuxiliaryStrategy.html#__type-6\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AuxiliaryStrategy\"},{\"kind\":128,\"name\":\"ComposedAuxiliaryStrategy\",\"url\":\"classes/ComposedAuxiliaryStrategy.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ComposedAuxiliaryStrategy.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ComposedAuxiliaryStrategy\"},{\"kind\":1024,\"name\":\"identifierStrategy\",\"url\":\"classes/ComposedAuxiliaryStrategy.html#identifierStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ComposedAuxiliaryStrategy\"},{\"kind\":1024,\"name\":\"metadataGenerator\",\"url\":\"classes/ComposedAuxiliaryStrategy.html#metadataGenerator\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ComposedAuxiliaryStrategy\"},{\"kind\":1024,\"name\":\"validator\",\"url\":\"classes/ComposedAuxiliaryStrategy.html#validator\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ComposedAuxiliaryStrategy\"},{\"kind\":1024,\"name\":\"ownAuthorization\",\"url\":\"classes/ComposedAuxiliaryStrategy.html#ownAuthorization\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ComposedAuxiliaryStrategy\"},{\"kind\":1024,\"name\":\"requiredInRoot\",\"url\":\"classes/ComposedAuxiliaryStrategy.html#requiredInRoot\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ComposedAuxiliaryStrategy\"},{\"kind\":2048,\"name\":\"getAuxiliaryIdentifier\",\"url\":\"classes/ComposedAuxiliaryStrategy.html#getAuxiliaryIdentifier\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ComposedAuxiliaryStrategy\"},{\"kind\":2048,\"name\":\"getAuxiliaryIdentifiers\",\"url\":\"classes/ComposedAuxiliaryStrategy.html#getAuxiliaryIdentifiers\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ComposedAuxiliaryStrategy\"},{\"kind\":2048,\"name\":\"isAuxiliaryIdentifier\",\"url\":\"classes/ComposedAuxiliaryStrategy.html#isAuxiliaryIdentifier\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ComposedAuxiliaryStrategy\"},{\"kind\":2048,\"name\":\"getSubjectIdentifier\",\"url\":\"classes/ComposedAuxiliaryStrategy.html#getSubjectIdentifier\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ComposedAuxiliaryStrategy\"},{\"kind\":2048,\"name\":\"usesOwnAuthorization\",\"url\":\"classes/ComposedAuxiliaryStrategy.html#usesOwnAuthorization\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ComposedAuxiliaryStrategy\"},{\"kind\":2048,\"name\":\"isRequiredInRoot\",\"url\":\"classes/ComposedAuxiliaryStrategy.html#isRequiredInRoot\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ComposedAuxiliaryStrategy\"},{\"kind\":2048,\"name\":\"addMetadata\",\"url\":\"classes/ComposedAuxiliaryStrategy.html#addMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ComposedAuxiliaryStrategy\"},{\"kind\":2048,\"name\":\"validate\",\"url\":\"classes/ComposedAuxiliaryStrategy.html#validate\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ComposedAuxiliaryStrategy\"},{\"kind\":128,\"name\":\"LinkMetadataGenerator\",\"url\":\"classes/LinkMetadataGenerator.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/LinkMetadataGenerator.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"LinkMetadataGenerator\"},{\"kind\":1024,\"name\":\"link\",\"url\":\"classes/LinkMetadataGenerator.html#link\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"LinkMetadataGenerator\"},{\"kind\":1024,\"name\":\"identifierStrategy\",\"url\":\"classes/LinkMetadataGenerator.html#identifierStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"LinkMetadataGenerator\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/LinkMetadataGenerator.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"LinkMetadataGenerator\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/LinkMetadataGenerator.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"LinkMetadataGenerator\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/LinkMetadataGenerator.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"LinkMetadataGenerator\"},{\"kind\":128,\"name\":\"MetadataGenerator\",\"url\":\"classes/MetadataGenerator.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MetadataGenerator.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MetadataGenerator\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/MetadataGenerator.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MetadataGenerator\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/MetadataGenerator.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MetadataGenerator\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/MetadataGenerator.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MetadataGenerator\"},{\"kind\":128,\"name\":\"RdfValidator\",\"url\":\"classes/RdfValidator.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RdfValidator.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"RdfValidator\"},{\"kind\":1024,\"name\":\"converter\",\"url\":\"classes/RdfValidator.html#converter\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"RdfValidator\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/RdfValidator.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RdfValidator\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/RdfValidator.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RdfValidator\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/RdfValidator.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RdfValidator\"},{\"kind\":128,\"name\":\"RoutingAuxiliaryIdentifierStrategy\",\"url\":\"classes/RoutingAuxiliaryIdentifierStrategy.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RoutingAuxiliaryIdentifierStrategy.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"RoutingAuxiliaryIdentifierStrategy\"},{\"kind\":1024,\"name\":\"sources\",\"url\":\"classes/RoutingAuxiliaryIdentifierStrategy.html#sources\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"RoutingAuxiliaryIdentifierStrategy\"},{\"kind\":2048,\"name\":\"getAuxiliaryIdentifier\",\"url\":\"classes/RoutingAuxiliaryIdentifierStrategy.html#getAuxiliaryIdentifier\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RoutingAuxiliaryIdentifierStrategy\"},{\"kind\":2048,\"name\":\"getAuxiliaryIdentifiers\",\"url\":\"classes/RoutingAuxiliaryIdentifierStrategy.html#getAuxiliaryIdentifiers\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RoutingAuxiliaryIdentifierStrategy\"},{\"kind\":2048,\"name\":\"isAuxiliaryIdentifier\",\"url\":\"classes/RoutingAuxiliaryIdentifierStrategy.html#isAuxiliaryIdentifier\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RoutingAuxiliaryIdentifierStrategy\"},{\"kind\":2048,\"name\":\"getSubjectIdentifier\",\"url\":\"classes/RoutingAuxiliaryIdentifierStrategy.html#getSubjectIdentifier\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RoutingAuxiliaryIdentifierStrategy\"},{\"kind\":2048,\"name\":\"getMatchingSource\",\"url\":\"classes/RoutingAuxiliaryIdentifierStrategy.html#getMatchingSource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"RoutingAuxiliaryIdentifierStrategy\"},{\"kind\":128,\"name\":\"RoutingAuxiliaryStrategy\",\"url\":\"classes/RoutingAuxiliaryStrategy.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RoutingAuxiliaryStrategy.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"RoutingAuxiliaryStrategy\"},{\"kind\":1024,\"name\":\"sources\",\"url\":\"classes/RoutingAuxiliaryStrategy.html#sources\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"RoutingAuxiliaryStrategy\"},{\"kind\":2048,\"name\":\"usesOwnAuthorization\",\"url\":\"classes/RoutingAuxiliaryStrategy.html#usesOwnAuthorization\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RoutingAuxiliaryStrategy\"},{\"kind\":2048,\"name\":\"isRequiredInRoot\",\"url\":\"classes/RoutingAuxiliaryStrategy.html#isRequiredInRoot\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RoutingAuxiliaryStrategy\"},{\"kind\":2048,\"name\":\"addMetadata\",\"url\":\"classes/RoutingAuxiliaryStrategy.html#addMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RoutingAuxiliaryStrategy\"},{\"kind\":2048,\"name\":\"validate\",\"url\":\"classes/RoutingAuxiliaryStrategy.html#validate\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RoutingAuxiliaryStrategy\"},{\"kind\":2048,\"name\":\"getMatchingSource\",\"url\":\"classes/RoutingAuxiliaryStrategy.html#getMatchingSource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"RoutingAuxiliaryStrategy\"},{\"kind\":2048,\"name\":\"getAuxiliaryIdentifier\",\"url\":\"classes/RoutingAuxiliaryStrategy.html#getAuxiliaryIdentifier\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RoutingAuxiliaryStrategy\"},{\"kind\":2048,\"name\":\"getAuxiliaryIdentifiers\",\"url\":\"classes/RoutingAuxiliaryStrategy.html#getAuxiliaryIdentifiers\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RoutingAuxiliaryStrategy\"},{\"kind\":2048,\"name\":\"isAuxiliaryIdentifier\",\"url\":\"classes/RoutingAuxiliaryStrategy.html#isAuxiliaryIdentifier\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RoutingAuxiliaryStrategy\"},{\"kind\":2048,\"name\":\"getSubjectIdentifier\",\"url\":\"classes/RoutingAuxiliaryStrategy.html#getSubjectIdentifier\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RoutingAuxiliaryStrategy\"},{\"kind\":128,\"name\":\"SuffixAuxiliaryIdentifierStrategy\",\"url\":\"classes/SuffixAuxiliaryIdentifierStrategy.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/SuffixAuxiliaryIdentifierStrategy.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"SuffixAuxiliaryIdentifierStrategy\"},{\"kind\":1024,\"name\":\"suffix\",\"url\":\"classes/SuffixAuxiliaryIdentifierStrategy.html#suffix\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"SuffixAuxiliaryIdentifierStrategy\"},{\"kind\":2048,\"name\":\"getAuxiliaryIdentifier\",\"url\":\"classes/SuffixAuxiliaryIdentifierStrategy.html#getAuxiliaryIdentifier\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SuffixAuxiliaryIdentifierStrategy\"},{\"kind\":2048,\"name\":\"getAuxiliaryIdentifiers\",\"url\":\"classes/SuffixAuxiliaryIdentifierStrategy.html#getAuxiliaryIdentifiers\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SuffixAuxiliaryIdentifierStrategy\"},{\"kind\":2048,\"name\":\"isAuxiliaryIdentifier\",\"url\":\"classes/SuffixAuxiliaryIdentifierStrategy.html#isAuxiliaryIdentifier\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SuffixAuxiliaryIdentifierStrategy\"},{\"kind\":2048,\"name\":\"getSubjectIdentifier\",\"url\":\"classes/SuffixAuxiliaryIdentifierStrategy.html#getSubjectIdentifier\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SuffixAuxiliaryIdentifierStrategy\"},{\"kind\":4194304,\"name\":\"ValidatorInput\",\"url\":\"types/ValidatorInput.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/ValidatorInput.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"ValidatorInput\"},{\"kind\":1024,\"name\":\"representation\",\"url\":\"types/ValidatorInput.html#__type.representation\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ValidatorInput.__type\"},{\"kind\":1024,\"name\":\"identifier\",\"url\":\"types/ValidatorInput.html#__type.identifier\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ValidatorInput.__type\"},{\"kind\":128,\"name\":\"Validator\",\"url\":\"classes/Validator.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Validator.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Validator\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/Validator.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Validator\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/Validator.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Validator\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/Validator.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Validator\"},{\"kind\":256,\"name\":\"BodyParserArgs\",\"url\":\"interfaces/BodyParserArgs.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"request\",\"url\":\"interfaces/BodyParserArgs.html#request\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BodyParserArgs\"},{\"kind\":1024,\"name\":\"metadata\",\"url\":\"interfaces/BodyParserArgs.html#metadata\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BodyParserArgs\"},{\"kind\":128,\"name\":\"BodyParser\",\"url\":\"classes/BodyParser.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/BodyParser.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BodyParser\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/BodyParser.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BodyParser\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/BodyParser.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BodyParser\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/BodyParser.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BodyParser\"},{\"kind\":128,\"name\":\"N3PatchBodyParser\",\"url\":\"classes/N3PatchBodyParser.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/N3PatchBodyParser.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"N3PatchBodyParser\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/N3PatchBodyParser.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"N3PatchBodyParser\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/N3PatchBodyParser.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"N3PatchBodyParser\"},{\"kind\":2048,\"name\":\"parsePatch\",\"url\":\"classes/N3PatchBodyParser.html#parsePatch\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"N3PatchBodyParser\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/N3PatchBodyParser.html#parsePatch.parsePatch-1.__type\",\"classes\":\"tsd-kind-type-literal\",\"parent\":\"N3PatchBodyParser.parsePatch.parsePatch\"},{\"kind\":1024,\"name\":\"deletes\",\"url\":\"classes/N3PatchBodyParser.html#parsePatch.parsePatch-1.__type.deletes\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"N3PatchBodyParser.parsePatch.parsePatch.__type\"},{\"kind\":1024,\"name\":\"inserts\",\"url\":\"classes/N3PatchBodyParser.html#parsePatch.parsePatch-1.__type.inserts\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"N3PatchBodyParser.parsePatch.parsePatch.__type\"},{\"kind\":1024,\"name\":\"conditions\",\"url\":\"classes/N3PatchBodyParser.html#parsePatch.parsePatch-1.__type.conditions\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"N3PatchBodyParser.parsePatch.parsePatch.__type\"},{\"kind\":2048,\"name\":\"findQuads\",\"url\":\"classes/N3PatchBodyParser.html#findQuads\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"N3PatchBodyParser\"},{\"kind\":2048,\"name\":\"findVariables\",\"url\":\"classes/N3PatchBodyParser.html#findVariables\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"N3PatchBodyParser\"},{\"kind\":2048,\"name\":\"verifyQuads\",\"url\":\"classes/N3PatchBodyParser.html#verifyQuads\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"N3PatchBodyParser\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/N3PatchBodyParser.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"N3PatchBodyParser\"},{\"kind\":128,\"name\":\"RawBodyParser\",\"url\":\"classes/RawBodyParser.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RawBodyParser.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RawBodyParser\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/RawBodyParser.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"RawBodyParser\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/RawBodyParser.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RawBodyParser\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/RawBodyParser.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RawBodyParser\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/RawBodyParser.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RawBodyParser\"},{\"kind\":128,\"name\":\"SparqlUpdateBodyParser\",\"url\":\"classes/SparqlUpdateBodyParser.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/SparqlUpdateBodyParser.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"SparqlUpdateBodyParser\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/SparqlUpdateBodyParser.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"SparqlUpdateBodyParser\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/SparqlUpdateBodyParser.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SparqlUpdateBodyParser\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/SparqlUpdateBodyParser.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SparqlUpdateBodyParser\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/SparqlUpdateBodyParser.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"SparqlUpdateBodyParser\"},{\"kind\":128,\"name\":\"BasicConditionsParser\",\"url\":\"classes/BasicConditionsParser.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/BasicConditionsParser.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BasicConditionsParser\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/BasicConditionsParser.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"BasicConditionsParser\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/BasicConditionsParser.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BasicConditionsParser\"},{\"kind\":2048,\"name\":\"parseDateHeader\",\"url\":\"classes/BasicConditionsParser.html#parseDateHeader\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"BasicConditionsParser\"},{\"kind\":2048,\"name\":\"parseTagHeader\",\"url\":\"classes/BasicConditionsParser.html#parseTagHeader\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"BasicConditionsParser\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/BasicConditionsParser.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BasicConditionsParser\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/BasicConditionsParser.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BasicConditionsParser\"},{\"kind\":128,\"name\":\"ConditionsParser\",\"url\":\"classes/ConditionsParser.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ConditionsParser.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConditionsParser\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ConditionsParser.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConditionsParser\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ConditionsParser.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConditionsParser\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ConditionsParser.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConditionsParser\"},{\"kind\":256,\"name\":\"OriginalUrlExtractorArgs\",\"url\":\"interfaces/OriginalUrlExtractorArgs.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"identifierStrategy\",\"url\":\"interfaces/OriginalUrlExtractorArgs.html#identifierStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OriginalUrlExtractorArgs\"},{\"kind\":1024,\"name\":\"includeQueryString\",\"url\":\"interfaces/OriginalUrlExtractorArgs.html#includeQueryString\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OriginalUrlExtractorArgs\"},{\"kind\":128,\"name\":\"OriginalUrlExtractor\",\"url\":\"classes/OriginalUrlExtractor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/OriginalUrlExtractor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"OriginalUrlExtractor\"},{\"kind\":1024,\"name\":\"identifierStrategy\",\"url\":\"classes/OriginalUrlExtractor.html#identifierStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"OriginalUrlExtractor\"},{\"kind\":1024,\"name\":\"includeQueryString\",\"url\":\"classes/OriginalUrlExtractor.html#includeQueryString\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"OriginalUrlExtractor\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/OriginalUrlExtractor.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"OriginalUrlExtractor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/OriginalUrlExtractor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OriginalUrlExtractor\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/OriginalUrlExtractor.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OriginalUrlExtractor\"},{\"kind\":128,\"name\":\"TargetExtractor\",\"url\":\"classes/TargetExtractor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/TargetExtractor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"TargetExtractor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/TargetExtractor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"TargetExtractor\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/TargetExtractor.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"TargetExtractor\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/TargetExtractor.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"TargetExtractor\"},{\"kind\":128,\"name\":\"ContentLengthParser\",\"url\":\"classes/ContentLengthParser.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ContentLengthParser.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ContentLengthParser\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/ContentLengthParser.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"ContentLengthParser\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ContentLengthParser.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ContentLengthParser\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ContentLengthParser.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ContentLengthParser\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ContentLengthParser.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ContentLengthParser\"},{\"kind\":128,\"name\":\"ContentTypeParser\",\"url\":\"classes/ContentTypeParser.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ContentTypeParser.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ContentTypeParser\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ContentTypeParser.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ContentTypeParser\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ContentTypeParser.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ContentTypeParser\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ContentTypeParser.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ContentTypeParser\"},{\"kind\":128,\"name\":\"LinkRelParser\",\"url\":\"classes/LinkRelParser.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/LinkRelParser.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"LinkRelParser\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/LinkRelParser.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"LinkRelParser\"},{\"kind\":1024,\"name\":\"linkRelMap\",\"url\":\"classes/LinkRelParser.html#linkRelMap\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"LinkRelParser\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/LinkRelParser.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"LinkRelParser\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/LinkRelParser.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"LinkRelParser\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/LinkRelParser.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"LinkRelParser\"},{\"kind\":128,\"name\":\"LinkRelObject\",\"url\":\"classes/LinkRelObject.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/LinkRelObject.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"LinkRelObject\"},{\"kind\":1024,\"name\":\"value\",\"url\":\"classes/LinkRelObject.html#value\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"LinkRelObject\"},{\"kind\":1024,\"name\":\"ephemeral\",\"url\":\"classes/LinkRelObject.html#ephemeral\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"LinkRelObject\"},{\"kind\":1024,\"name\":\"allowList\",\"url\":\"classes/LinkRelObject.html#allowList\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"LinkRelObject\"},{\"kind\":2048,\"name\":\"objectAllowed\",\"url\":\"classes/LinkRelObject.html#objectAllowed\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"LinkRelObject\"},{\"kind\":2048,\"name\":\"addToMetadata\",\"url\":\"classes/LinkRelObject.html#addToMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"LinkRelObject\"},{\"kind\":128,\"name\":\"MetadataParser\",\"url\":\"classes/MetadataParser.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MetadataParser.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MetadataParser\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/MetadataParser.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MetadataParser\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/MetadataParser.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MetadataParser\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/MetadataParser.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MetadataParser\"},{\"kind\":128,\"name\":\"PlainJsonLdFilter\",\"url\":\"classes/PlainJsonLdFilter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/PlainJsonLdFilter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"PlainJsonLdFilter\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/PlainJsonLdFilter.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"PlainJsonLdFilter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/PlainJsonLdFilter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PlainJsonLdFilter\"},{\"kind\":2048,\"name\":\"linkHasContextRelation\",\"url\":\"classes/PlainJsonLdFilter.html#linkHasContextRelation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"PlainJsonLdFilter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/PlainJsonLdFilter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PlainJsonLdFilter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/PlainJsonLdFilter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PlainJsonLdFilter\"},{\"kind\":128,\"name\":\"SlugParser\",\"url\":\"classes/SlugParser.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/SlugParser.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"SlugParser\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/SlugParser.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"SlugParser\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/SlugParser.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SlugParser\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/SlugParser.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"SlugParser\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/SlugParser.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"SlugParser\"},{\"kind\":128,\"name\":\"AcceptPreferenceParser\",\"url\":\"classes/AcceptPreferenceParser.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/AcceptPreferenceParser.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AcceptPreferenceParser\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/AcceptPreferenceParser.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"AcceptPreferenceParser\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/AcceptPreferenceParser.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AcceptPreferenceParser\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/AcceptPreferenceParser.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AcceptPreferenceParser\"},{\"kind\":128,\"name\":\"PreferenceParser\",\"url\":\"classes/PreferenceParser.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/PreferenceParser.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PreferenceParser\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/PreferenceParser.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PreferenceParser\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/PreferenceParser.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PreferenceParser\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/PreferenceParser.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PreferenceParser\"},{\"kind\":256,\"name\":\"BasicRequestParserArgs\",\"url\":\"interfaces/BasicRequestParserArgs.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"targetExtractor\",\"url\":\"interfaces/BasicRequestParserArgs.html#targetExtractor\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BasicRequestParserArgs\"},{\"kind\":1024,\"name\":\"preferenceParser\",\"url\":\"interfaces/BasicRequestParserArgs.html#preferenceParser\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BasicRequestParserArgs\"},{\"kind\":1024,\"name\":\"metadataParser\",\"url\":\"interfaces/BasicRequestParserArgs.html#metadataParser\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BasicRequestParserArgs\"},{\"kind\":1024,\"name\":\"conditionsParser\",\"url\":\"interfaces/BasicRequestParserArgs.html#conditionsParser\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BasicRequestParserArgs\"},{\"kind\":1024,\"name\":\"bodyParser\",\"url\":\"interfaces/BasicRequestParserArgs.html#bodyParser\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BasicRequestParserArgs\"},{\"kind\":128,\"name\":\"BasicRequestParser\",\"url\":\"classes/BasicRequestParser.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/BasicRequestParser.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"BasicRequestParser\"},{\"kind\":1024,\"name\":\"targetExtractor\",\"url\":\"classes/BasicRequestParser.html#targetExtractor\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BasicRequestParser\"},{\"kind\":1024,\"name\":\"preferenceParser\",\"url\":\"classes/BasicRequestParser.html#preferenceParser\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BasicRequestParser\"},{\"kind\":1024,\"name\":\"metadataParser\",\"url\":\"classes/BasicRequestParser.html#metadataParser\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BasicRequestParser\"},{\"kind\":1024,\"name\":\"conditionsParser\",\"url\":\"classes/BasicRequestParser.html#conditionsParser\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BasicRequestParser\"},{\"kind\":1024,\"name\":\"bodyParser\",\"url\":\"classes/BasicRequestParser.html#bodyParser\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BasicRequestParser\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/BasicRequestParser.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BasicRequestParser\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/BasicRequestParser.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BasicRequestParser\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/BasicRequestParser.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BasicRequestParser\"},{\"kind\":128,\"name\":\"RequestParser\",\"url\":\"classes/RequestParser.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RequestParser.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RequestParser\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/RequestParser.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RequestParser\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/RequestParser.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RequestParser\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/RequestParser.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RequestParser\"},{\"kind\":256,\"name\":\"OperationMetadataCollectorInput\",\"url\":\"interfaces/OperationMetadataCollectorInput.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"metadata\",\"url\":\"interfaces/OperationMetadataCollectorInput.html#metadata\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OperationMetadataCollectorInput\"},{\"kind\":1024,\"name\":\"operation\",\"url\":\"interfaces/OperationMetadataCollectorInput.html#operation\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OperationMetadataCollectorInput\"},{\"kind\":128,\"name\":\"OperationMetadataCollector\",\"url\":\"classes/OperationMetadataCollector.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/OperationMetadataCollector.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OperationMetadataCollector\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/OperationMetadataCollector.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OperationMetadataCollector\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/OperationMetadataCollector.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OperationMetadataCollector\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/OperationMetadataCollector.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OperationMetadataCollector\"},{\"kind\":128,\"name\":\"WebAclMetadataCollector\",\"url\":\"classes/WebAclMetadataCollector.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/WebAclMetadataCollector.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WebAclMetadataCollector\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/WebAclMetadataCollector.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WebAclMetadataCollector\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/WebAclMetadataCollector.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WebAclMetadataCollector\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/WebAclMetadataCollector.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WebAclMetadataCollector\"},{\"kind\":128,\"name\":\"DeleteOperationHandler\",\"url\":\"classes/DeleteOperationHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/DeleteOperationHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"DeleteOperationHandler\"},{\"kind\":1024,\"name\":\"store\",\"url\":\"classes/DeleteOperationHandler.html#store\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"DeleteOperationHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/DeleteOperationHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"DeleteOperationHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/DeleteOperationHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"DeleteOperationHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/DeleteOperationHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"DeleteOperationHandler\"},{\"kind\":128,\"name\":\"GetOperationHandler\",\"url\":\"classes/GetOperationHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/GetOperationHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"GetOperationHandler\"},{\"kind\":1024,\"name\":\"store\",\"url\":\"classes/GetOperationHandler.html#store\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"GetOperationHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/GetOperationHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"GetOperationHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/GetOperationHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"GetOperationHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/GetOperationHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"GetOperationHandler\"},{\"kind\":128,\"name\":\"HeadOperationHandler\",\"url\":\"classes/HeadOperationHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/HeadOperationHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"HeadOperationHandler\"},{\"kind\":1024,\"name\":\"store\",\"url\":\"classes/HeadOperationHandler.html#store\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"HeadOperationHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/HeadOperationHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"HeadOperationHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/HeadOperationHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"HeadOperationHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/HeadOperationHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"HeadOperationHandler\"},{\"kind\":256,\"name\":\"OperationHandlerInput\",\"url\":\"interfaces/OperationHandlerInput.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"operation\",\"url\":\"interfaces/OperationHandlerInput.html#operation\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OperationHandlerInput\"},{\"kind\":128,\"name\":\"OperationHandler\",\"url\":\"classes/OperationHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/OperationHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OperationHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/OperationHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OperationHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/OperationHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OperationHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/OperationHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OperationHandler\"},{\"kind\":128,\"name\":\"PatchOperationHandler\",\"url\":\"classes/PatchOperationHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/PatchOperationHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"PatchOperationHandler\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/PatchOperationHandler.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"PatchOperationHandler\"},{\"kind\":1024,\"name\":\"store\",\"url\":\"classes/PatchOperationHandler.html#store\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"PatchOperationHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/PatchOperationHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PatchOperationHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/PatchOperationHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PatchOperationHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/PatchOperationHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PatchOperationHandler\"},{\"kind\":128,\"name\":\"PostOperationHandler\",\"url\":\"classes/PostOperationHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/PostOperationHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"PostOperationHandler\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/PostOperationHandler.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"PostOperationHandler\"},{\"kind\":1024,\"name\":\"store\",\"url\":\"classes/PostOperationHandler.html#store\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"PostOperationHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/PostOperationHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PostOperationHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/PostOperationHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PostOperationHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/PostOperationHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PostOperationHandler\"},{\"kind\":128,\"name\":\"PutOperationHandler\",\"url\":\"classes/PutOperationHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/PutOperationHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"PutOperationHandler\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/PutOperationHandler.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"PutOperationHandler\"},{\"kind\":1024,\"name\":\"store\",\"url\":\"classes/PutOperationHandler.html#store\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"PutOperationHandler\"},{\"kind\":1024,\"name\":\"metadataStrategy\",\"url\":\"classes/PutOperationHandler.html#metadataStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"PutOperationHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/PutOperationHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PutOperationHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/PutOperationHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PutOperationHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/PutOperationHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PutOperationHandler\"},{\"kind\":128,\"name\":\"ConvertingErrorHandler\",\"url\":\"classes/ConvertingErrorHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ConvertingErrorHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ConvertingErrorHandler\"},{\"kind\":1024,\"name\":\"converter\",\"url\":\"classes/ConvertingErrorHandler.html#converter\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConvertingErrorHandler\"},{\"kind\":1024,\"name\":\"preferenceParser\",\"url\":\"classes/ConvertingErrorHandler.html#preferenceParser\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConvertingErrorHandler\"},{\"kind\":1024,\"name\":\"showStackTrace\",\"url\":\"classes/ConvertingErrorHandler.html#showStackTrace\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConvertingErrorHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ConvertingErrorHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ConvertingErrorHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ConvertingErrorHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ConvertingErrorHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ConvertingErrorHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ConvertingErrorHandler\"},{\"kind\":2048,\"name\":\"extractErrorDetails\",\"url\":\"classes/ConvertingErrorHandler.html#extractErrorDetails\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConvertingErrorHandler\"},{\"kind\":2048,\"name\":\"createResponse\",\"url\":\"classes/ConvertingErrorHandler.html#createResponse\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConvertingErrorHandler\"},{\"kind\":2048,\"name\":\"toRepresentation\",\"url\":\"classes/ConvertingErrorHandler.html#toRepresentation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConvertingErrorHandler\"},{\"kind\":256,\"name\":\"ErrorHandlerArgs\",\"url\":\"interfaces/ErrorHandlerArgs.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"error\",\"url\":\"interfaces/ErrorHandlerArgs.html#error\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ErrorHandlerArgs\"},{\"kind\":1024,\"name\":\"request\",\"url\":\"interfaces/ErrorHandlerArgs.html#request\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ErrorHandlerArgs\"},{\"kind\":128,\"name\":\"ErrorHandler\",\"url\":\"classes/ErrorHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ErrorHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ErrorHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ErrorHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ErrorHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ErrorHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ErrorHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ErrorHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ErrorHandler\"},{\"kind\":128,\"name\":\"RedirectingErrorHandler\",\"url\":\"classes/RedirectingErrorHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RedirectingErrorHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RedirectingErrorHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/RedirectingErrorHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RedirectingErrorHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/RedirectingErrorHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RedirectingErrorHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/RedirectingErrorHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RedirectingErrorHandler\"},{\"kind\":128,\"name\":\"SafeErrorHandler\",\"url\":\"classes/SafeErrorHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/SafeErrorHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"SafeErrorHandler\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/SafeErrorHandler.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"SafeErrorHandler\"},{\"kind\":1024,\"name\":\"errorHandler\",\"url\":\"classes/SafeErrorHandler.html#errorHandler\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SafeErrorHandler\"},{\"kind\":1024,\"name\":\"showStackTrace\",\"url\":\"classes/SafeErrorHandler.html#showStackTrace\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SafeErrorHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/SafeErrorHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SafeErrorHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/SafeErrorHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"SafeErrorHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/SafeErrorHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"SafeErrorHandler\"},{\"kind\":128,\"name\":\"AllowAcceptHeaderWriter\",\"url\":\"classes/AllowAcceptHeaderWriter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/AllowAcceptHeaderWriter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"AllowAcceptHeaderWriter\"},{\"kind\":1024,\"name\":\"supportedMethods\",\"url\":\"classes/AllowAcceptHeaderWriter.html#supportedMethods\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"AllowAcceptHeaderWriter\"},{\"kind\":1024,\"name\":\"acceptTypes\",\"url\":\"classes/AllowAcceptHeaderWriter.html#acceptTypes\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"AllowAcceptHeaderWriter\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/AllowAcceptHeaderWriter.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"AllowAcceptHeaderWriter\"},{\"kind\":1024,\"name\":\"patch\",\"url\":\"classes/AllowAcceptHeaderWriter.html#__type.patch\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AllowAcceptHeaderWriter.__type\"},{\"kind\":1024,\"name\":\"post\",\"url\":\"classes/AllowAcceptHeaderWriter.html#__type.post\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AllowAcceptHeaderWriter.__type\"},{\"kind\":1024,\"name\":\"put\",\"url\":\"classes/AllowAcceptHeaderWriter.html#__type.put\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"AllowAcceptHeaderWriter.__type\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/AllowAcceptHeaderWriter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"AllowAcceptHeaderWriter\"},{\"kind\":2048,\"name\":\"filterAllowedMethods\",\"url\":\"classes/AllowAcceptHeaderWriter.html#filterAllowedMethods\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"AllowAcceptHeaderWriter\"},{\"kind\":2048,\"name\":\"isPostAllowed\",\"url\":\"classes/AllowAcceptHeaderWriter.html#isPostAllowed\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"AllowAcceptHeaderWriter\"},{\"kind\":2048,\"name\":\"isDeleteAllowed\",\"url\":\"classes/AllowAcceptHeaderWriter.html#isDeleteAllowed\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"AllowAcceptHeaderWriter\"},{\"kind\":2048,\"name\":\"generateAllow\",\"url\":\"classes/AllowAcceptHeaderWriter.html#generateAllow\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"AllowAcceptHeaderWriter\"},{\"kind\":2048,\"name\":\"generateAccept\",\"url\":\"classes/AllowAcceptHeaderWriter.html#generateAccept\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"AllowAcceptHeaderWriter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/AllowAcceptHeaderWriter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AllowAcceptHeaderWriter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/AllowAcceptHeaderWriter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AllowAcceptHeaderWriter\"},{\"kind\":128,\"name\":\"AuxiliaryLinkMetadataWriter\",\"url\":\"classes/AuxiliaryLinkMetadataWriter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/AuxiliaryLinkMetadataWriter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"AuxiliaryLinkMetadataWriter\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/AuxiliaryLinkMetadataWriter.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"AuxiliaryLinkMetadataWriter\"},{\"kind\":1024,\"name\":\"auxiliaryStrategy\",\"url\":\"classes/AuxiliaryLinkMetadataWriter.html#auxiliaryStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"AuxiliaryLinkMetadataWriter\"},{\"kind\":1024,\"name\":\"specificStrategy\",\"url\":\"classes/AuxiliaryLinkMetadataWriter.html#specificStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"AuxiliaryLinkMetadataWriter\"},{\"kind\":1024,\"name\":\"relationType\",\"url\":\"classes/AuxiliaryLinkMetadataWriter.html#relationType\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"AuxiliaryLinkMetadataWriter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/AuxiliaryLinkMetadataWriter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"AuxiliaryLinkMetadataWriter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/AuxiliaryLinkMetadataWriter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AuxiliaryLinkMetadataWriter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/AuxiliaryLinkMetadataWriter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AuxiliaryLinkMetadataWriter\"},{\"kind\":128,\"name\":\"ConstantMetadataWriter\",\"url\":\"classes/ConstantMetadataWriter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ConstantMetadataWriter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ConstantMetadataWriter\"},{\"kind\":1024,\"name\":\"headers\",\"url\":\"classes/ConstantMetadataWriter.html#headers\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConstantMetadataWriter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ConstantMetadataWriter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ConstantMetadataWriter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ConstantMetadataWriter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConstantMetadataWriter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ConstantMetadataWriter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConstantMetadataWriter\"},{\"kind\":128,\"name\":\"ContentTypeMetadataWriter\",\"url\":\"classes/ContentTypeMetadataWriter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ContentTypeMetadataWriter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ContentTypeMetadataWriter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ContentTypeMetadataWriter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ContentTypeMetadataWriter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ContentTypeMetadataWriter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ContentTypeMetadataWriter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ContentTypeMetadataWriter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ContentTypeMetadataWriter\"},{\"kind\":128,\"name\":\"LinkRelMetadataWriter\",\"url\":\"classes/LinkRelMetadataWriter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/LinkRelMetadataWriter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"LinkRelMetadataWriter\"},{\"kind\":1024,\"name\":\"linkRelMap\",\"url\":\"classes/LinkRelMetadataWriter.html#linkRelMap\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"LinkRelMetadataWriter\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/LinkRelMetadataWriter.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"LinkRelMetadataWriter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/LinkRelMetadataWriter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"LinkRelMetadataWriter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/LinkRelMetadataWriter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"LinkRelMetadataWriter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/LinkRelMetadataWriter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"LinkRelMetadataWriter\"},{\"kind\":128,\"name\":\"MappedMetadataWriter\",\"url\":\"classes/MappedMetadataWriter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MappedMetadataWriter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"MappedMetadataWriter\"},{\"kind\":1024,\"name\":\"headerMap\",\"url\":\"classes/MappedMetadataWriter.html#headerMap\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"MappedMetadataWriter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/MappedMetadataWriter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"MappedMetadataWriter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/MappedMetadataWriter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MappedMetadataWriter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/MappedMetadataWriter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MappedMetadataWriter\"},{\"kind\":128,\"name\":\"MetadataWriter\",\"url\":\"classes/MetadataWriter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MetadataWriter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MetadataWriter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/MetadataWriter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MetadataWriter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/MetadataWriter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MetadataWriter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/MetadataWriter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MetadataWriter\"},{\"kind\":128,\"name\":\"ModifiedMetadataWriter\",\"url\":\"classes/ModifiedMetadataWriter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ModifiedMetadataWriter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ModifiedMetadataWriter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ModifiedMetadataWriter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ModifiedMetadataWriter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ModifiedMetadataWriter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ModifiedMetadataWriter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ModifiedMetadataWriter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ModifiedMetadataWriter\"},{\"kind\":128,\"name\":\"WacAllowMetadataWriter\",\"url\":\"classes/WacAllowMetadataWriter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/WacAllowMetadataWriter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WacAllowMetadataWriter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/WacAllowMetadataWriter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WacAllowMetadataWriter\"},{\"kind\":2048,\"name\":\"aclToPermission\",\"url\":\"classes/WacAllowMetadataWriter.html#aclToPermission\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"WacAllowMetadataWriter\"},{\"kind\":2048,\"name\":\"createAccessParam\",\"url\":\"classes/WacAllowMetadataWriter.html#createAccessParam\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"WacAllowMetadataWriter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/WacAllowMetadataWriter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WacAllowMetadataWriter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/WacAllowMetadataWriter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WacAllowMetadataWriter\"},{\"kind\":128,\"name\":\"WwwAuthMetadataWriter\",\"url\":\"classes/WwwAuthMetadataWriter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/WwwAuthMetadataWriter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"WwwAuthMetadataWriter\"},{\"kind\":1024,\"name\":\"auth\",\"url\":\"classes/WwwAuthMetadataWriter.html#auth\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"WwwAuthMetadataWriter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/WwwAuthMetadataWriter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WwwAuthMetadataWriter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/WwwAuthMetadataWriter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WwwAuthMetadataWriter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/WwwAuthMetadataWriter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WwwAuthMetadataWriter\"},{\"kind\":128,\"name\":\"CreatedResponseDescription\",\"url\":\"classes/CreatedResponseDescription.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/CreatedResponseDescription.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"CreatedResponseDescription\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/CreatedResponseDescription.html#statusCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"CreatedResponseDescription\"},{\"kind\":1024,\"name\":\"metadata\",\"url\":\"classes/CreatedResponseDescription.html#metadata\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"CreatedResponseDescription\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/CreatedResponseDescription.html#data\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"CreatedResponseDescription\"},{\"kind\":128,\"name\":\"OkResponseDescription\",\"url\":\"classes/OkResponseDescription.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/OkResponseDescription.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"OkResponseDescription\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/OkResponseDescription.html#statusCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OkResponseDescription\"},{\"kind\":1024,\"name\":\"metadata\",\"url\":\"classes/OkResponseDescription.html#metadata\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OkResponseDescription\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/OkResponseDescription.html#data\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OkResponseDescription\"},{\"kind\":128,\"name\":\"ResetResponseDescription\",\"url\":\"classes/ResetResponseDescription.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ResetResponseDescription.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ResetResponseDescription\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/ResetResponseDescription.html#statusCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ResetResponseDescription\"},{\"kind\":1024,\"name\":\"metadata\",\"url\":\"classes/ResetResponseDescription.html#metadata\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ResetResponseDescription\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/ResetResponseDescription.html#data\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ResetResponseDescription\"},{\"kind\":128,\"name\":\"ResponseDescription\",\"url\":\"classes/ResponseDescription.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ResponseDescription.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ResponseDescription\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/ResponseDescription.html#statusCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"ResponseDescription\"},{\"kind\":1024,\"name\":\"metadata\",\"url\":\"classes/ResponseDescription.html#metadata\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"ResponseDescription\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/ResponseDescription.html#data\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"ResponseDescription\"},{\"kind\":128,\"name\":\"BasicResponseWriter\",\"url\":\"classes/BasicResponseWriter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/BasicResponseWriter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"BasicResponseWriter\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/BasicResponseWriter.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"BasicResponseWriter\"},{\"kind\":1024,\"name\":\"metadataWriter\",\"url\":\"classes/BasicResponseWriter.html#metadataWriter\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BasicResponseWriter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/BasicResponseWriter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BasicResponseWriter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/BasicResponseWriter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BasicResponseWriter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/BasicResponseWriter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BasicResponseWriter\"},{\"kind\":128,\"name\":\"ResponseWriter\",\"url\":\"classes/ResponseWriter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ResponseWriter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ResponseWriter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ResponseWriter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ResponseWriter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ResponseWriter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ResponseWriter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ResponseWriter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ResponseWriter\"},{\"kind\":128,\"name\":\"BasicRepresentation\",\"url\":\"classes/BasicRepresentation.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/BasicRepresentation.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"BasicRepresentation\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/BasicRepresentation.html#data\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"BasicRepresentation\"},{\"kind\":1024,\"name\":\"metadata\",\"url\":\"classes/BasicRepresentation.html#metadata\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"BasicRepresentation\"},{\"kind\":1024,\"name\":\"binary\",\"url\":\"classes/BasicRepresentation.html#binary\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"BasicRepresentation\"},{\"kind\":262144,\"name\":\"isEmpty\",\"url\":\"classes/BasicRepresentation.html#isEmpty\",\"classes\":\"tsd-kind-accessor tsd-parent-kind-class\",\"parent\":\"BasicRepresentation\"},{\"kind\":256,\"name\":\"Patch\",\"url\":\"interfaces/Patch.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"metadata\",\"url\":\"interfaces/Patch.html#metadata\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"Patch\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"interfaces/Patch.html#data\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"Patch\"},{\"kind\":1024,\"name\":\"binary\",\"url\":\"interfaces/Patch.html#binary\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"Patch\"},{\"kind\":1024,\"name\":\"isEmpty\",\"url\":\"interfaces/Patch.html#isEmpty\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"Patch\"},{\"kind\":256,\"name\":\"Representation\",\"url\":\"interfaces/Representation.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"metadata\",\"url\":\"interfaces/Representation.html#metadata\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Representation\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"interfaces/Representation.html#data\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Representation\"},{\"kind\":1024,\"name\":\"binary\",\"url\":\"interfaces/Representation.html#binary\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Representation\"},{\"kind\":1024,\"name\":\"isEmpty\",\"url\":\"interfaces/Representation.html#isEmpty\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Representation\"},{\"kind\":64,\"name\":\"isRepresentationMetadata\",\"url\":\"functions/isRepresentationMetadata.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":4194304,\"name\":\"MetadataIdentifier\",\"url\":\"types/MetadataIdentifier.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"MetadataValue\",\"url\":\"types/MetadataValue.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"MetadataRecord\",\"url\":\"types/MetadataRecord.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"MetadataGraph\",\"url\":\"types/MetadataGraph.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":128,\"name\":\"RepresentationMetadata\",\"url\":\"classes/RepresentationMetadata.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RepresentationMetadata.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"RepresentationMetadata\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/RepresentationMetadata.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"RepresentationMetadata\"},{\"kind\":1024,\"name\":\"store\",\"url\":\"classes/RepresentationMetadata.html#store\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RepresentationMetadata\"},{\"kind\":1024,\"name\":\"id\",\"url\":\"classes/RepresentationMetadata.html#id\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RepresentationMetadata\"},{\"kind\":2048,\"name\":\"setOverrides\",\"url\":\"classes/RepresentationMetadata.html#setOverrides\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"RepresentationMetadata\"},{\"kind\":2048,\"name\":\"quads\",\"url\":\"classes/RepresentationMetadata.html#quads\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RepresentationMetadata\"},{\"kind\":262144,\"name\":\"identifier\",\"url\":\"classes/RepresentationMetadata.html#identifier\",\"classes\":\"tsd-kind-accessor tsd-parent-kind-class\",\"parent\":\"RepresentationMetadata\"},{\"kind\":2048,\"name\":\"setMetadata\",\"url\":\"classes/RepresentationMetadata.html#setMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RepresentationMetadata\"},{\"kind\":2048,\"name\":\"addQuad\",\"url\":\"classes/RepresentationMetadata.html#addQuad\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RepresentationMetadata\"},{\"kind\":2048,\"name\":\"addQuads\",\"url\":\"classes/RepresentationMetadata.html#addQuads\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RepresentationMetadata\"},{\"kind\":2048,\"name\":\"removeQuad\",\"url\":\"classes/RepresentationMetadata.html#removeQuad\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RepresentationMetadata\"},{\"kind\":2048,\"name\":\"removeQuads\",\"url\":\"classes/RepresentationMetadata.html#removeQuads\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RepresentationMetadata\"},{\"kind\":2048,\"name\":\"add\",\"url\":\"classes/RepresentationMetadata.html#add\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RepresentationMetadata\"},{\"kind\":2048,\"name\":\"remove\",\"url\":\"classes/RepresentationMetadata.html#remove\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RepresentationMetadata\"},{\"kind\":2048,\"name\":\"forQuads\",\"url\":\"classes/RepresentationMetadata.html#forQuads\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"RepresentationMetadata\"},{\"kind\":2048,\"name\":\"removeAll\",\"url\":\"classes/RepresentationMetadata.html#removeAll\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RepresentationMetadata\"},{\"kind\":2048,\"name\":\"has\",\"url\":\"classes/RepresentationMetadata.html#has\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RepresentationMetadata\"},{\"kind\":2048,\"name\":\"getAll\",\"url\":\"classes/RepresentationMetadata.html#getAll\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RepresentationMetadata\"},{\"kind\":2048,\"name\":\"get\",\"url\":\"classes/RepresentationMetadata.html#get\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RepresentationMetadata\"},{\"kind\":2048,\"name\":\"set\",\"url\":\"classes/RepresentationMetadata.html#set\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RepresentationMetadata\"},{\"kind\":2048,\"name\":\"setContentType\",\"url\":\"classes/RepresentationMetadata.html#setContentType\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"RepresentationMetadata\"},{\"kind\":2048,\"name\":\"getContentType\",\"url\":\"classes/RepresentationMetadata.html#getContentType\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"RepresentationMetadata\"},{\"kind\":2048,\"name\":\"removeContentType\",\"url\":\"classes/RepresentationMetadata.html#removeContentType\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"RepresentationMetadata\"},{\"kind\":262144,\"name\":\"contentType\",\"url\":\"classes/RepresentationMetadata.html#contentType\",\"classes\":\"tsd-kind-accessor tsd-parent-kind-class\",\"parent\":\"RepresentationMetadata\"},{\"kind\":262144,\"name\":\"contentTypeObject\",\"url\":\"classes/RepresentationMetadata.html#contentTypeObject\",\"classes\":\"tsd-kind-accessor tsd-parent-kind-class\",\"parent\":\"RepresentationMetadata\"},{\"kind\":262144,\"name\":\"contentLength\",\"url\":\"classes/RepresentationMetadata.html#contentLength\",\"classes\":\"tsd-kind-accessor tsd-parent-kind-class\",\"parent\":\"RepresentationMetadata\"},{\"kind\":4194304,\"name\":\"ValuePreferences\",\"url\":\"types/ValuePreferences.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/ValuePreferences.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"ValuePreferences\"},{\"kind\":4194304,\"name\":\"ValuePreference\",\"url\":\"types/ValuePreference.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/ValuePreference.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"ValuePreference\"},{\"kind\":1024,\"name\":\"value\",\"url\":\"types/ValuePreference.html#__type.value\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ValuePreference.__type\"},{\"kind\":1024,\"name\":\"weight\",\"url\":\"types/ValuePreference.html#__type.weight\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ValuePreference.__type\"},{\"kind\":256,\"name\":\"RepresentationPreferences\",\"url\":\"interfaces/RepresentationPreferences.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"type\",\"url\":\"interfaces/RepresentationPreferences.html#type\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RepresentationPreferences\"},{\"kind\":1024,\"name\":\"charset\",\"url\":\"interfaces/RepresentationPreferences.html#charset\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RepresentationPreferences\"},{\"kind\":1024,\"name\":\"datetime\",\"url\":\"interfaces/RepresentationPreferences.html#datetime\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RepresentationPreferences\"},{\"kind\":1024,\"name\":\"encoding\",\"url\":\"interfaces/RepresentationPreferences.html#encoding\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RepresentationPreferences\"},{\"kind\":1024,\"name\":\"language\",\"url\":\"interfaces/RepresentationPreferences.html#language\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RepresentationPreferences\"},{\"kind\":64,\"name\":\"isResourceIdentifier\",\"url\":\"functions/isResourceIdentifier.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":256,\"name\":\"ResourceIdentifier\",\"url\":\"interfaces/ResourceIdentifier.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"path\",\"url\":\"interfaces/ResourceIdentifier.html#path\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ResourceIdentifier\"},{\"kind\":256,\"name\":\"SparqlUpdatePatch\",\"url\":\"interfaces/SparqlUpdatePatch.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"algebra\",\"url\":\"interfaces/SparqlUpdatePatch.html#algebra\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SparqlUpdatePatch\"},{\"kind\":1024,\"name\":\"metadata\",\"url\":\"interfaces/SparqlUpdatePatch.html#metadata\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SparqlUpdatePatch\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"interfaces/SparqlUpdatePatch.html#data\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SparqlUpdatePatch\"},{\"kind\":1024,\"name\":\"binary\",\"url\":\"interfaces/SparqlUpdatePatch.html#binary\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SparqlUpdatePatch\"},{\"kind\":1024,\"name\":\"isEmpty\",\"url\":\"interfaces/SparqlUpdatePatch.html#isEmpty\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"SparqlUpdatePatch\"},{\"kind\":256,\"name\":\"Operation\",\"url\":\"interfaces/Operation.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"method\",\"url\":\"interfaces/Operation.html#method\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Operation\"},{\"kind\":1024,\"name\":\"target\",\"url\":\"interfaces/Operation.html#target\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Operation\"},{\"kind\":1024,\"name\":\"preferences\",\"url\":\"interfaces/Operation.html#preferences\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Operation\"},{\"kind\":1024,\"name\":\"conditions\",\"url\":\"interfaces/Operation.html#conditions\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Operation\"},{\"kind\":1024,\"name\":\"availablePermissions\",\"url\":\"interfaces/Operation.html#availablePermissions\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Operation\"},{\"kind\":1024,\"name\":\"body\",\"url\":\"interfaces/Operation.html#body\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Operation\"},{\"kind\":128,\"name\":\"UnsecureWebSocketsProtocol\",\"url\":\"classes/UnsecureWebSocketsProtocol.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/UnsecureWebSocketsProtocol.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"UnsecureWebSocketsProtocol\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/UnsecureWebSocketsProtocol.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"UnsecureWebSocketsProtocol\"},{\"kind\":1024,\"name\":\"listeners\",\"url\":\"classes/UnsecureWebSocketsProtocol.html#listeners\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"UnsecureWebSocketsProtocol\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/UnsecureWebSocketsProtocol.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"UnsecureWebSocketsProtocol\"},{\"kind\":2048,\"name\":\"onResourceChanged\",\"url\":\"classes/UnsecureWebSocketsProtocol.html#onResourceChanged\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"UnsecureWebSocketsProtocol\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/UnsecureWebSocketsProtocol.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnsecureWebSocketsProtocol\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/UnsecureWebSocketsProtocol.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnsecureWebSocketsProtocol\"},{\"kind\":256,\"name\":\"IdentityProviderFactoryArgs\",\"url\":\"interfaces/IdentityProviderFactoryArgs.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"adapterFactory\",\"url\":\"interfaces/IdentityProviderFactoryArgs.html#adapterFactory\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"IdentityProviderFactoryArgs\"},{\"kind\":1024,\"name\":\"baseUrl\",\"url\":\"interfaces/IdentityProviderFactoryArgs.html#baseUrl\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"IdentityProviderFactoryArgs\"},{\"kind\":1024,\"name\":\"oidcPath\",\"url\":\"interfaces/IdentityProviderFactoryArgs.html#oidcPath\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"IdentityProviderFactoryArgs\"},{\"kind\":1024,\"name\":\"interactionHandler\",\"url\":\"interfaces/IdentityProviderFactoryArgs.html#interactionHandler\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"IdentityProviderFactoryArgs\"},{\"kind\":1024,\"name\":\"credentialStorage\",\"url\":\"interfaces/IdentityProviderFactoryArgs.html#credentialStorage\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"IdentityProviderFactoryArgs\"},{\"kind\":1024,\"name\":\"storage\",\"url\":\"interfaces/IdentityProviderFactoryArgs.html#storage\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"IdentityProviderFactoryArgs\"},{\"kind\":1024,\"name\":\"showStackTrace\",\"url\":\"interfaces/IdentityProviderFactoryArgs.html#showStackTrace\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"IdentityProviderFactoryArgs\"},{\"kind\":1024,\"name\":\"errorHandler\",\"url\":\"interfaces/IdentityProviderFactoryArgs.html#errorHandler\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"IdentityProviderFactoryArgs\"},{\"kind\":1024,\"name\":\"responseWriter\",\"url\":\"interfaces/IdentityProviderFactoryArgs.html#responseWriter\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"IdentityProviderFactoryArgs\"},{\"kind\":128,\"name\":\"IdentityProviderFactory\",\"url\":\"classes/IdentityProviderFactory.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/IdentityProviderFactory.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/IdentityProviderFactory.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":1024,\"name\":\"config\",\"url\":\"classes/IdentityProviderFactory.html#config\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":1024,\"name\":\"adapterFactory\",\"url\":\"classes/IdentityProviderFactory.html#adapterFactory\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":1024,\"name\":\"baseUrl\",\"url\":\"classes/IdentityProviderFactory.html#baseUrl\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":1024,\"name\":\"oidcPath\",\"url\":\"classes/IdentityProviderFactory.html#oidcPath\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":1024,\"name\":\"interactionHandler\",\"url\":\"classes/IdentityProviderFactory.html#interactionHandler\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":1024,\"name\":\"credentialStorage\",\"url\":\"classes/IdentityProviderFactory.html#credentialStorage\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":1024,\"name\":\"storage\",\"url\":\"classes/IdentityProviderFactory.html#storage\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":1024,\"name\":\"showStackTrace\",\"url\":\"classes/IdentityProviderFactory.html#showStackTrace\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":1024,\"name\":\"errorHandler\",\"url\":\"classes/IdentityProviderFactory.html#errorHandler\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":1024,\"name\":\"responseWriter\",\"url\":\"classes/IdentityProviderFactory.html#responseWriter\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":1024,\"name\":\"jwtAlg\",\"url\":\"classes/IdentityProviderFactory.html#jwtAlg\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":1024,\"name\":\"provider\",\"url\":\"classes/IdentityProviderFactory.html#provider\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":2048,\"name\":\"getProvider\",\"url\":\"classes/IdentityProviderFactory.html#getProvider\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":2048,\"name\":\"createProvider\",\"url\":\"classes/IdentityProviderFactory.html#createProvider\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":2048,\"name\":\"captureErrorResponses\",\"url\":\"classes/IdentityProviderFactory.html#captureErrorResponses\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":2048,\"name\":\"initConfig\",\"url\":\"classes/IdentityProviderFactory.html#initConfig\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":2048,\"name\":\"generateJwks\",\"url\":\"classes/IdentityProviderFactory.html#generateJwks\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":2048,\"name\":\"generateCookieKeys\",\"url\":\"classes/IdentityProviderFactory.html#generateCookieKeys\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":2048,\"name\":\"isAccessToken\",\"url\":\"classes/IdentityProviderFactory.html#isAccessToken\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":2048,\"name\":\"configureClaims\",\"url\":\"classes/IdentityProviderFactory.html#configureClaims\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":2048,\"name\":\"createRoute\",\"url\":\"classes/IdentityProviderFactory.html#createRoute\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":2048,\"name\":\"configureRoutes\",\"url\":\"classes/IdentityProviderFactory.html#configureRoutes\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":2048,\"name\":\"configureErrors\",\"url\":\"classes/IdentityProviderFactory.html#configureErrors\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderFactory\"},{\"kind\":256,\"name\":\"ProviderFactory\",\"url\":\"interfaces/ProviderFactory.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"getProvider\",\"url\":\"interfaces/ProviderFactory.html#getProvider\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ProviderFactory\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ProviderFactory.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"ProviderFactory\"},{\"kind\":256,\"name\":\"ClientCredentials\",\"url\":\"interfaces/ClientCredentials.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"secret\",\"url\":\"interfaces/ClientCredentials.html#secret\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ClientCredentials\"},{\"kind\":1024,\"name\":\"webId\",\"url\":\"interfaces/ClientCredentials.html#webId\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ClientCredentials\"},{\"kind\":128,\"name\":\"ClientCredentialsAdapter\",\"url\":\"classes/ClientCredentialsAdapter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ClientCredentialsAdapter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ClientCredentialsAdapter\"},{\"kind\":1024,\"name\":\"storage\",\"url\":\"classes/ClientCredentialsAdapter.html#storage\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ClientCredentialsAdapter\"},{\"kind\":2048,\"name\":\"find\",\"url\":\"classes/ClientCredentialsAdapter.html#find\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ClientCredentialsAdapter\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/ClientCredentialsAdapter.html#name\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ClientCredentialsAdapter\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/ClientCredentialsAdapter.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ClientCredentialsAdapter\"},{\"kind\":2048,\"name\":\"upsert\",\"url\":\"classes/ClientCredentialsAdapter.html#upsert\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ClientCredentialsAdapter\"},{\"kind\":2048,\"name\":\"findByUserCode\",\"url\":\"classes/ClientCredentialsAdapter.html#findByUserCode\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ClientCredentialsAdapter\"},{\"kind\":2048,\"name\":\"findByUid\",\"url\":\"classes/ClientCredentialsAdapter.html#findByUid\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ClientCredentialsAdapter\"},{\"kind\":2048,\"name\":\"consume\",\"url\":\"classes/ClientCredentialsAdapter.html#consume\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ClientCredentialsAdapter\"},{\"kind\":2048,\"name\":\"destroy\",\"url\":\"classes/ClientCredentialsAdapter.html#destroy\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ClientCredentialsAdapter\"},{\"kind\":2048,\"name\":\"revokeByGrantId\",\"url\":\"classes/ClientCredentialsAdapter.html#revokeByGrantId\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ClientCredentialsAdapter\"},{\"kind\":128,\"name\":\"ClientCredentialsAdapterFactory\",\"url\":\"classes/ClientCredentialsAdapterFactory.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ClientCredentialsAdapterFactory.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ClientCredentialsAdapterFactory\"},{\"kind\":1024,\"name\":\"storage\",\"url\":\"classes/ClientCredentialsAdapterFactory.html#storage\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ClientCredentialsAdapterFactory\"},{\"kind\":2048,\"name\":\"createStorageAdapter\",\"url\":\"classes/ClientCredentialsAdapterFactory.html#createStorageAdapter\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ClientCredentialsAdapterFactory\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/ClientCredentialsAdapterFactory.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ClientCredentialsAdapterFactory\"},{\"kind\":128,\"name\":\"EmailPasswordAuthorizer\",\"url\":\"classes/EmailPasswordAuthorizer.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/EmailPasswordAuthorizer.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"EmailPasswordAuthorizer\"},{\"kind\":1024,\"name\":\"accountStore\",\"url\":\"classes/EmailPasswordAuthorizer.html#accountStore\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"EmailPasswordAuthorizer\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/EmailPasswordAuthorizer.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"EmailPasswordAuthorizer\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/EmailPasswordAuthorizer.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EmailPasswordAuthorizer\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/EmailPasswordAuthorizer.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"EmailPasswordAuthorizer\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/EmailPasswordAuthorizer.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"EmailPasswordAuthorizer\"},{\"kind\":128,\"name\":\"CreateCredentialsHandler\",\"url\":\"classes/CreateCredentialsHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/CreateCredentialsHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"CreateCredentialsHandler\"},{\"kind\":1024,\"name\":\"accountStore\",\"url\":\"classes/CreateCredentialsHandler.html#accountStore\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"CreateCredentialsHandler\"},{\"kind\":1024,\"name\":\"credentialStorage\",\"url\":\"classes/CreateCredentialsHandler.html#credentialStorage\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"CreateCredentialsHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/CreateCredentialsHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"CreateCredentialsHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/CreateCredentialsHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"CreateCredentialsHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/CreateCredentialsHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"CreateCredentialsHandler\"},{\"kind\":256,\"name\":\"CredentialsHandlerBody\",\"url\":\"interfaces/CredentialsHandlerBody.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"email\",\"url\":\"interfaces/CredentialsHandlerBody.html#email\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CredentialsHandlerBody\"},{\"kind\":1024,\"name\":\"webId\",\"url\":\"interfaces/CredentialsHandlerBody.html#webId\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CredentialsHandlerBody\"},{\"kind\":256,\"name\":\"CredentialsHandlerInput\",\"url\":\"interfaces/CredentialsHandlerInput.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"operation\",\"url\":\"interfaces/CredentialsHandlerInput.html#operation\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CredentialsHandlerInput\"},{\"kind\":1024,\"name\":\"body\",\"url\":\"interfaces/CredentialsHandlerInput.html#body\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CredentialsHandlerInput\"},{\"kind\":128,\"name\":\"CredentialsHandler\",\"url\":\"classes/CredentialsHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/CredentialsHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"CredentialsHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/CredentialsHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"CredentialsHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/CredentialsHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"CredentialsHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/CredentialsHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"CredentialsHandler\"},{\"kind\":128,\"name\":\"DeleteCredentialsHandler\",\"url\":\"classes/DeleteCredentialsHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/DeleteCredentialsHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"DeleteCredentialsHandler\"},{\"kind\":1024,\"name\":\"accountStore\",\"url\":\"classes/DeleteCredentialsHandler.html#accountStore\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"DeleteCredentialsHandler\"},{\"kind\":1024,\"name\":\"credentialStorage\",\"url\":\"classes/DeleteCredentialsHandler.html#credentialStorage\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"DeleteCredentialsHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/DeleteCredentialsHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"DeleteCredentialsHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/DeleteCredentialsHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"DeleteCredentialsHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/DeleteCredentialsHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"DeleteCredentialsHandler\"},{\"kind\":128,\"name\":\"ListCredentialsHandler\",\"url\":\"classes/ListCredentialsHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ListCredentialsHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ListCredentialsHandler\"},{\"kind\":1024,\"name\":\"accountStore\",\"url\":\"classes/ListCredentialsHandler.html#accountStore\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ListCredentialsHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ListCredentialsHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ListCredentialsHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ListCredentialsHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ListCredentialsHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ListCredentialsHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ListCredentialsHandler\"},{\"kind\":256,\"name\":\"ForgotPasswordHandlerArgs\",\"url\":\"interfaces/ForgotPasswordHandlerArgs.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"accountStore\",\"url\":\"interfaces/ForgotPasswordHandlerArgs.html#accountStore\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ForgotPasswordHandlerArgs\"},{\"kind\":1024,\"name\":\"templateEngine\",\"url\":\"interfaces/ForgotPasswordHandlerArgs.html#templateEngine\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ForgotPasswordHandlerArgs\"},{\"kind\":1024,\"name\":\"emailSender\",\"url\":\"interfaces/ForgotPasswordHandlerArgs.html#emailSender\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ForgotPasswordHandlerArgs\"},{\"kind\":1024,\"name\":\"resetRoute\",\"url\":\"interfaces/ForgotPasswordHandlerArgs.html#resetRoute\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ForgotPasswordHandlerArgs\"},{\"kind\":128,\"name\":\"ForgotPasswordHandler\",\"url\":\"classes/ForgotPasswordHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ForgotPasswordHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ForgotPasswordHandler\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/ForgotPasswordHandler.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"ForgotPasswordHandler\"},{\"kind\":1024,\"name\":\"accountStore\",\"url\":\"classes/ForgotPasswordHandler.html#accountStore\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ForgotPasswordHandler\"},{\"kind\":1024,\"name\":\"templateEngine\",\"url\":\"classes/ForgotPasswordHandler.html#templateEngine\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ForgotPasswordHandler\"},{\"kind\":1024,\"name\":\"emailSender\",\"url\":\"classes/ForgotPasswordHandler.html#emailSender\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ForgotPasswordHandler\"},{\"kind\":1024,\"name\":\"resetRoute\",\"url\":\"classes/ForgotPasswordHandler.html#resetRoute\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ForgotPasswordHandler\"},{\"kind\":2048,\"name\":\"handlePost\",\"url\":\"classes/ForgotPasswordHandler.html#handlePost\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ForgotPasswordHandler\"},{\"kind\":2048,\"name\":\"resetPassword\",\"url\":\"classes/ForgotPasswordHandler.html#resetPassword\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ForgotPasswordHandler\"},{\"kind\":2048,\"name\":\"sendResetMail\",\"url\":\"classes/ForgotPasswordHandler.html#sendResetMail\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ForgotPasswordHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ForgotPasswordHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ForgotPasswordHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ForgotPasswordHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ForgotPasswordHandler\"},{\"kind\":2048,\"name\":\"handleGet\",\"url\":\"classes/ForgotPasswordHandler.html#handleGet\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ForgotPasswordHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ForgotPasswordHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ForgotPasswordHandler\"},{\"kind\":128,\"name\":\"LoginHandler\",\"url\":\"classes/LoginHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/LoginHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"LoginHandler\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/LoginHandler.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"LoginHandler\"},{\"kind\":1024,\"name\":\"accountStore\",\"url\":\"classes/LoginHandler.html#accountStore\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"LoginHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/LoginHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"LoginHandler\"},{\"kind\":2048,\"name\":\"handlePost\",\"url\":\"classes/LoginHandler.html#handlePost\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"LoginHandler\"},{\"kind\":2048,\"name\":\"parseInput\",\"url\":\"classes/LoginHandler.html#parseInput\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"LoginHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/LoginHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"LoginHandler\"},{\"kind\":2048,\"name\":\"handleGet\",\"url\":\"classes/LoginHandler.html#handleGet\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"LoginHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/LoginHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"LoginHandler\"},{\"kind\":128,\"name\":\"RegistrationHandler\",\"url\":\"classes/RegistrationHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RegistrationHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"RegistrationHandler\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/RegistrationHandler.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"RegistrationHandler\"},{\"kind\":1024,\"name\":\"registrationManager\",\"url\":\"classes/RegistrationHandler.html#registrationManager\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RegistrationHandler\"},{\"kind\":2048,\"name\":\"handlePost\",\"url\":\"classes/RegistrationHandler.html#handlePost\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RegistrationHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/RegistrationHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RegistrationHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/RegistrationHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RegistrationHandler\"},{\"kind\":2048,\"name\":\"handleGet\",\"url\":\"classes/RegistrationHandler.html#handleGet\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"RegistrationHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/RegistrationHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RegistrationHandler\"},{\"kind\":128,\"name\":\"ResetPasswordHandler\",\"url\":\"classes/ResetPasswordHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ResetPasswordHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ResetPasswordHandler\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/ResetPasswordHandler.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"ResetPasswordHandler\"},{\"kind\":1024,\"name\":\"accountStore\",\"url\":\"classes/ResetPasswordHandler.html#accountStore\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ResetPasswordHandler\"},{\"kind\":2048,\"name\":\"handlePost\",\"url\":\"classes/ResetPasswordHandler.html#handlePost\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ResetPasswordHandler\"},{\"kind\":2048,\"name\":\"resetPassword\",\"url\":\"classes/ResetPasswordHandler.html#resetPassword\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ResetPasswordHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ResetPasswordHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ResetPasswordHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ResetPasswordHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ResetPasswordHandler\"},{\"kind\":2048,\"name\":\"handleGet\",\"url\":\"classes/ResetPasswordHandler.html#handleGet\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ResetPasswordHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ResetPasswordHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ResetPasswordHandler\"},{\"kind\":256,\"name\":\"AccountSettings\",\"url\":\"interfaces/AccountSettings.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"useIdp\",\"url\":\"interfaces/AccountSettings.html#useIdp\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountSettings\"},{\"kind\":1024,\"name\":\"podBaseUrl\",\"url\":\"interfaces/AccountSettings.html#podBaseUrl\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountSettings\"},{\"kind\":1024,\"name\":\"clientCredentials\",\"url\":\"interfaces/AccountSettings.html#clientCredentials\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountSettings\"},{\"kind\":256,\"name\":\"AccountStore\",\"url\":\"interfaces/AccountStore.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"authenticate\",\"url\":\"interfaces/AccountStore.html#authenticate\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountStore\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountStore.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AccountStore\"},{\"kind\":1024,\"name\":\"create\",\"url\":\"interfaces/AccountStore.html#create\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountStore\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountStore.html#__type-4\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AccountStore\"},{\"kind\":1024,\"name\":\"verify\",\"url\":\"interfaces/AccountStore.html#verify\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountStore\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountStore.html#__type-18\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AccountStore\"},{\"kind\":1024,\"name\":\"changePassword\",\"url\":\"interfaces/AccountStore.html#changePassword\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountStore\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountStore.html#__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AccountStore\"},{\"kind\":1024,\"name\":\"getSettings\",\"url\":\"interfaces/AccountStore.html#getSettings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountStore\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountStore.html#__type-14\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AccountStore\"},{\"kind\":1024,\"name\":\"updateSettings\",\"url\":\"interfaces/AccountStore.html#updateSettings\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountStore\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountStore.html#__type-16\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AccountStore\"},{\"kind\":1024,\"name\":\"deleteAccount\",\"url\":\"interfaces/AccountStore.html#deleteAccount\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountStore\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountStore.html#__type-6\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AccountStore\"},{\"kind\":1024,\"name\":\"generateForgotPasswordRecord\",\"url\":\"interfaces/AccountStore.html#generateForgotPasswordRecord\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountStore\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountStore.html#__type-10\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AccountStore\"},{\"kind\":1024,\"name\":\"getForgotPasswordRecord\",\"url\":\"interfaces/AccountStore.html#getForgotPasswordRecord\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountStore\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountStore.html#__type-12\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AccountStore\"},{\"kind\":1024,\"name\":\"deleteForgotPasswordRecord\",\"url\":\"interfaces/AccountStore.html#deleteForgotPasswordRecord\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountStore\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AccountStore.html#__type-8\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AccountStore\"},{\"kind\":256,\"name\":\"AccountPayload\",\"url\":\"interfaces/AccountPayload.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"webId\",\"url\":\"interfaces/AccountPayload.html#webId\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountPayload\"},{\"kind\":1024,\"name\":\"email\",\"url\":\"interfaces/AccountPayload.html#email\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountPayload\"},{\"kind\":1024,\"name\":\"password\",\"url\":\"interfaces/AccountPayload.html#password\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountPayload\"},{\"kind\":1024,\"name\":\"verified\",\"url\":\"interfaces/AccountPayload.html#verified\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AccountPayload\"},{\"kind\":256,\"name\":\"ForgotPasswordPayload\",\"url\":\"interfaces/ForgotPasswordPayload.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"email\",\"url\":\"interfaces/ForgotPasswordPayload.html#email\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ForgotPasswordPayload\"},{\"kind\":1024,\"name\":\"recordId\",\"url\":\"interfaces/ForgotPasswordPayload.html#recordId\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ForgotPasswordPayload\"},{\"kind\":4194304,\"name\":\"EmailPasswordData\",\"url\":\"types/EmailPasswordData.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":128,\"name\":\"BaseAccountStore\",\"url\":\"classes/BaseAccountStore.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/BaseAccountStore.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"BaseAccountStore\"},{\"kind\":1024,\"name\":\"storage\",\"url\":\"classes/BaseAccountStore.html#storage\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BaseAccountStore\"},{\"kind\":1024,\"name\":\"forgotPasswordStorage\",\"url\":\"classes/BaseAccountStore.html#forgotPasswordStorage\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BaseAccountStore\"},{\"kind\":1024,\"name\":\"saltRounds\",\"url\":\"classes/BaseAccountStore.html#saltRounds\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BaseAccountStore\"},{\"kind\":1024,\"name\":\"forgotPasswordExpiration\",\"url\":\"classes/BaseAccountStore.html#forgotPasswordExpiration\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BaseAccountStore\"},{\"kind\":2048,\"name\":\"getAccountResourceIdentifier\",\"url\":\"classes/BaseAccountStore.html#getAccountResourceIdentifier\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"BaseAccountStore\"},{\"kind\":2048,\"name\":\"getForgotPasswordRecordResourceIdentifier\",\"url\":\"classes/BaseAccountStore.html#getForgotPasswordRecordResourceIdentifier\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"BaseAccountStore\"},{\"kind\":2048,\"name\":\"getAccountPayload\",\"url\":\"classes/BaseAccountStore.html#getAccountPayload\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"BaseAccountStore\"},{\"kind\":2048,\"name\":\"authenticate\",\"url\":\"classes/BaseAccountStore.html#authenticate\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseAccountStore\"},{\"kind\":2048,\"name\":\"create\",\"url\":\"classes/BaseAccountStore.html#create\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseAccountStore\"},{\"kind\":2048,\"name\":\"verify\",\"url\":\"classes/BaseAccountStore.html#verify\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseAccountStore\"},{\"kind\":2048,\"name\":\"changePassword\",\"url\":\"classes/BaseAccountStore.html#changePassword\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseAccountStore\"},{\"kind\":2048,\"name\":\"getSettings\",\"url\":\"classes/BaseAccountStore.html#getSettings\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseAccountStore\"},{\"kind\":2048,\"name\":\"updateSettings\",\"url\":\"classes/BaseAccountStore.html#updateSettings\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseAccountStore\"},{\"kind\":2048,\"name\":\"deleteAccount\",\"url\":\"classes/BaseAccountStore.html#deleteAccount\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseAccountStore\"},{\"kind\":2048,\"name\":\"generateForgotPasswordRecord\",\"url\":\"classes/BaseAccountStore.html#generateForgotPasswordRecord\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseAccountStore\"},{\"kind\":2048,\"name\":\"getForgotPasswordRecord\",\"url\":\"classes/BaseAccountStore.html#getForgotPasswordRecord\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseAccountStore\"},{\"kind\":2048,\"name\":\"deleteForgotPasswordRecord\",\"url\":\"classes/BaseAccountStore.html#deleteForgotPasswordRecord\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseAccountStore\"},{\"kind\":256,\"name\":\"EmailSenderArgs\",\"url\":\"interfaces/EmailSenderArgs.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"emailConfig\",\"url\":\"interfaces/EmailSenderArgs.html#emailConfig\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EmailSenderArgs\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/EmailSenderArgs.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"EmailSenderArgs\"},{\"kind\":1024,\"name\":\"host\",\"url\":\"interfaces/EmailSenderArgs.html#__type.host\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"EmailSenderArgs.__type\"},{\"kind\":1024,\"name\":\"port\",\"url\":\"interfaces/EmailSenderArgs.html#__type.port\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"EmailSenderArgs.__type\"},{\"kind\":1024,\"name\":\"auth\",\"url\":\"interfaces/EmailSenderArgs.html#__type.auth\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"EmailSenderArgs.__type\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/EmailSenderArgs.html#__type.__type-1\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-literal\",\"parent\":\"EmailSenderArgs.__type\"},{\"kind\":1024,\"name\":\"user\",\"url\":\"interfaces/EmailSenderArgs.html#__type.__type-1.user\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"EmailSenderArgs.__type.__type\"},{\"kind\":1024,\"name\":\"pass\",\"url\":\"interfaces/EmailSenderArgs.html#__type.__type-1.pass\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"EmailSenderArgs.__type.__type\"},{\"kind\":1024,\"name\":\"senderName\",\"url\":\"interfaces/EmailSenderArgs.html#senderName\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EmailSenderArgs\"},{\"kind\":128,\"name\":\"BaseEmailSender\",\"url\":\"classes/BaseEmailSender.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/BaseEmailSender.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"BaseEmailSender\"},{\"kind\":1024,\"name\":\"mailTransporter\",\"url\":\"classes/BaseEmailSender.html#mailTransporter\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BaseEmailSender\"},{\"kind\":1024,\"name\":\"senderName\",\"url\":\"classes/BaseEmailSender.html#senderName\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BaseEmailSender\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/BaseEmailSender.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseEmailSender\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/BaseEmailSender.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BaseEmailSender\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/BaseEmailSender.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BaseEmailSender\"},{\"kind\":256,\"name\":\"EmailArgs\",\"url\":\"interfaces/EmailArgs.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"recipient\",\"url\":\"interfaces/EmailArgs.html#recipient\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EmailArgs\"},{\"kind\":1024,\"name\":\"subject\",\"url\":\"interfaces/EmailArgs.html#subject\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EmailArgs\"},{\"kind\":1024,\"name\":\"text\",\"url\":\"interfaces/EmailArgs.html#text\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EmailArgs\"},{\"kind\":1024,\"name\":\"html\",\"url\":\"interfaces/EmailArgs.html#html\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"EmailArgs\"},{\"kind\":128,\"name\":\"EmailSender\",\"url\":\"classes/EmailSender.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/EmailSender.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"EmailSender\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/EmailSender.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"EmailSender\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/EmailSender.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"EmailSender\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/EmailSender.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"EmailSender\"},{\"kind\":256,\"name\":\"RegistrationManagerArgs\",\"url\":\"interfaces/RegistrationManagerArgs.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"baseUrl\",\"url\":\"interfaces/RegistrationManagerArgs.html#baseUrl\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RegistrationManagerArgs\"},{\"kind\":1024,\"name\":\"webIdSuffix\",\"url\":\"interfaces/RegistrationManagerArgs.html#webIdSuffix\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RegistrationManagerArgs\"},{\"kind\":1024,\"name\":\"identifierGenerator\",\"url\":\"interfaces/RegistrationManagerArgs.html#identifierGenerator\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RegistrationManagerArgs\"},{\"kind\":1024,\"name\":\"ownershipValidator\",\"url\":\"interfaces/RegistrationManagerArgs.html#ownershipValidator\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RegistrationManagerArgs\"},{\"kind\":1024,\"name\":\"accountStore\",\"url\":\"interfaces/RegistrationManagerArgs.html#accountStore\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RegistrationManagerArgs\"},{\"kind\":1024,\"name\":\"podManager\",\"url\":\"interfaces/RegistrationManagerArgs.html#podManager\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RegistrationManagerArgs\"},{\"kind\":256,\"name\":\"RegistrationParams\",\"url\":\"interfaces/RegistrationParams.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"email\",\"url\":\"interfaces/RegistrationParams.html#email\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RegistrationParams\"},{\"kind\":1024,\"name\":\"webId\",\"url\":\"interfaces/RegistrationParams.html#webId\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RegistrationParams\"},{\"kind\":1024,\"name\":\"password\",\"url\":\"interfaces/RegistrationParams.html#password\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RegistrationParams\"},{\"kind\":1024,\"name\":\"podName\",\"url\":\"interfaces/RegistrationParams.html#podName\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RegistrationParams\"},{\"kind\":1024,\"name\":\"template\",\"url\":\"interfaces/RegistrationParams.html#template\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RegistrationParams\"},{\"kind\":1024,\"name\":\"createWebId\",\"url\":\"interfaces/RegistrationParams.html#createWebId\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RegistrationParams\"},{\"kind\":1024,\"name\":\"register\",\"url\":\"interfaces/RegistrationParams.html#register\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RegistrationParams\"},{\"kind\":1024,\"name\":\"createPod\",\"url\":\"interfaces/RegistrationParams.html#createPod\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RegistrationParams\"},{\"kind\":1024,\"name\":\"rootPod\",\"url\":\"interfaces/RegistrationParams.html#rootPod\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RegistrationParams\"},{\"kind\":256,\"name\":\"RegistrationResponse\",\"url\":\"interfaces/RegistrationResponse.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"email\",\"url\":\"interfaces/RegistrationResponse.html#email\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RegistrationResponse\"},{\"kind\":1024,\"name\":\"webId\",\"url\":\"interfaces/RegistrationResponse.html#webId\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RegistrationResponse\"},{\"kind\":1024,\"name\":\"oidcIssuer\",\"url\":\"interfaces/RegistrationResponse.html#oidcIssuer\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RegistrationResponse\"},{\"kind\":1024,\"name\":\"podBaseUrl\",\"url\":\"interfaces/RegistrationResponse.html#podBaseUrl\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RegistrationResponse\"},{\"kind\":1024,\"name\":\"createWebId\",\"url\":\"interfaces/RegistrationResponse.html#createWebId\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RegistrationResponse\"},{\"kind\":1024,\"name\":\"register\",\"url\":\"interfaces/RegistrationResponse.html#register\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RegistrationResponse\"},{\"kind\":1024,\"name\":\"createPod\",\"url\":\"interfaces/RegistrationResponse.html#createPod\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RegistrationResponse\"},{\"kind\":128,\"name\":\"RegistrationManager\",\"url\":\"classes/RegistrationManager.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RegistrationManager.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"RegistrationManager\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/RegistrationManager.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"RegistrationManager\"},{\"kind\":1024,\"name\":\"baseUrl\",\"url\":\"classes/RegistrationManager.html#baseUrl\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RegistrationManager\"},{\"kind\":1024,\"name\":\"webIdSuffix\",\"url\":\"classes/RegistrationManager.html#webIdSuffix\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RegistrationManager\"},{\"kind\":1024,\"name\":\"identifierGenerator\",\"url\":\"classes/RegistrationManager.html#identifierGenerator\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RegistrationManager\"},{\"kind\":1024,\"name\":\"ownershipValidator\",\"url\":\"classes/RegistrationManager.html#ownershipValidator\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RegistrationManager\"},{\"kind\":1024,\"name\":\"accountStore\",\"url\":\"classes/RegistrationManager.html#accountStore\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RegistrationManager\"},{\"kind\":1024,\"name\":\"podManager\",\"url\":\"classes/RegistrationManager.html#podManager\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RegistrationManager\"},{\"kind\":2048,\"name\":\"trimString\",\"url\":\"classes/RegistrationManager.html#trimString\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"RegistrationManager\"},{\"kind\":2048,\"name\":\"validateInput\",\"url\":\"classes/RegistrationManager.html#validateInput\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RegistrationManager\"},{\"kind\":2048,\"name\":\"register\",\"url\":\"classes/RegistrationManager.html#register\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RegistrationManager\"},{\"kind\":64,\"name\":\"assertPassword\",\"url\":\"functions/assertPassword.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":128,\"name\":\"AbsolutePathInteractionRoute\",\"url\":\"classes/AbsolutePathInteractionRoute.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/AbsolutePathInteractionRoute.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"AbsolutePathInteractionRoute\"},{\"kind\":1024,\"name\":\"path\",\"url\":\"classes/AbsolutePathInteractionRoute.html#path\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"AbsolutePathInteractionRoute\"},{\"kind\":2048,\"name\":\"getPath\",\"url\":\"classes/AbsolutePathInteractionRoute.html#getPath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"AbsolutePathInteractionRoute\"},{\"kind\":256,\"name\":\"InteractionRoute\",\"url\":\"interfaces/InteractionRoute.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"getPath\",\"url\":\"interfaces/InteractionRoute.html#getPath\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"InteractionRoute\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/InteractionRoute.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"InteractionRoute\"},{\"kind\":128,\"name\":\"InteractionRouteHandler\",\"url\":\"classes/InteractionRouteHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/InteractionRouteHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"InteractionRouteHandler\"},{\"kind\":1024,\"name\":\"route\",\"url\":\"classes/InteractionRouteHandler.html#route\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"InteractionRouteHandler\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/InteractionRouteHandler.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"InteractionRouteHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/InteractionRouteHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"InteractionRouteHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/InteractionRouteHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"InteractionRouteHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/InteractionRouteHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"InteractionRouteHandler\"},{\"kind\":128,\"name\":\"RelativePathInteractionRoute\",\"url\":\"classes/RelativePathInteractionRoute.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RelativePathInteractionRoute.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"RelativePathInteractionRoute\"},{\"kind\":2048,\"name\":\"getPath\",\"url\":\"classes/RelativePathInteractionRoute.html#getPath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RelativePathInteractionRoute\"},{\"kind\":128,\"name\":\"BaseInteractionHandler\",\"url\":\"classes/BaseInteractionHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/BaseInteractionHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-protected\",\"parent\":\"BaseInteractionHandler\"},{\"kind\":1024,\"name\":\"view\",\"url\":\"classes/BaseInteractionHandler.html#view\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BaseInteractionHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/BaseInteractionHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseInteractionHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/BaseInteractionHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseInteractionHandler\"},{\"kind\":2048,\"name\":\"handleGet\",\"url\":\"classes/BaseInteractionHandler.html#handleGet\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"BaseInteractionHandler\"},{\"kind\":2048,\"name\":\"handlePost\",\"url\":\"classes/BaseInteractionHandler.html#handlePost\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"BaseInteractionHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/BaseInteractionHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BaseInteractionHandler\"},{\"kind\":128,\"name\":\"ConsentHandler\",\"url\":\"classes/ConsentHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ConsentHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ConsentHandler\"},{\"kind\":1024,\"name\":\"providerFactory\",\"url\":\"classes/ConsentHandler.html#providerFactory\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConsentHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ConsentHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ConsentHandler\"},{\"kind\":2048,\"name\":\"handleGet\",\"url\":\"classes/ConsentHandler.html#handleGet\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"ConsentHandler\"},{\"kind\":2048,\"name\":\"handlePost\",\"url\":\"classes/ConsentHandler.html#handlePost\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"ConsentHandler\"},{\"kind\":2048,\"name\":\"getGrant\",\"url\":\"classes/ConsentHandler.html#getGrant\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConsentHandler\"},{\"kind\":2048,\"name\":\"updateGrant\",\"url\":\"classes/ConsentHandler.html#updateGrant\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConsentHandler\"},{\"kind\":2048,\"name\":\"updateInteraction\",\"url\":\"classes/ConsentHandler.html#updateInteraction\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConsentHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ConsentHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConsentHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ConsentHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConsentHandler\"},{\"kind\":128,\"name\":\"ControlHandler\",\"url\":\"classes/ControlHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ControlHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ControlHandler\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/ControlHandler.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ControlHandler\"},{\"kind\":1024,\"name\":\"controls\",\"url\":\"classes/ControlHandler.html#controls\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ControlHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ControlHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ControlHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ControlHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ControlHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ControlHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ControlHandler\"},{\"kind\":128,\"name\":\"FixedInteractionHandler\",\"url\":\"classes/FixedInteractionHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/FixedInteractionHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"FixedInteractionHandler\"},{\"kind\":1024,\"name\":\"response\",\"url\":\"classes/FixedInteractionHandler.html#response\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"FixedInteractionHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/FixedInteractionHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"FixedInteractionHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/FixedInteractionHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"FixedInteractionHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/FixedInteractionHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"FixedInteractionHandler\"},{\"kind\":128,\"name\":\"HtmlViewHandler\",\"url\":\"classes/HtmlViewHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/HtmlViewHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"HtmlViewHandler\"},{\"kind\":1024,\"name\":\"idpIndex\",\"url\":\"classes/HtmlViewHandler.html#idpIndex\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"HtmlViewHandler\"},{\"kind\":1024,\"name\":\"templateEngine\",\"url\":\"classes/HtmlViewHandler.html#templateEngine\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"HtmlViewHandler\"},{\"kind\":1024,\"name\":\"templates\",\"url\":\"classes/HtmlViewHandler.html#templates\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"HtmlViewHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/HtmlViewHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"HtmlViewHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/HtmlViewHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"HtmlViewHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/HtmlViewHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"HtmlViewHandler\"},{\"kind\":4194304,\"name\":\"Interaction\",\"url\":\"types/Interaction.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":256,\"name\":\"InteractionHandlerInput\",\"url\":\"interfaces/InteractionHandlerInput.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"operation\",\"url\":\"interfaces/InteractionHandlerInput.html#operation\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"InteractionHandlerInput\"},{\"kind\":1024,\"name\":\"oidcInteraction\",\"url\":\"interfaces/InteractionHandlerInput.html#oidcInteraction\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"InteractionHandlerInput\"},{\"kind\":128,\"name\":\"InteractionHandler\",\"url\":\"classes/InteractionHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/InteractionHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"InteractionHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/InteractionHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"InteractionHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/InteractionHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"InteractionHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/InteractionHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"InteractionHandler\"},{\"kind\":128,\"name\":\"LocationInteractionHandler\",\"url\":\"classes/LocationInteractionHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/LocationInteractionHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"LocationInteractionHandler\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/LocationInteractionHandler.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"LocationInteractionHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/LocationInteractionHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"LocationInteractionHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/LocationInteractionHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"LocationInteractionHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/LocationInteractionHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"LocationInteractionHandler\"},{\"kind\":128,\"name\":\"PromptHandler\",\"url\":\"classes/PromptHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/PromptHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"PromptHandler\"},{\"kind\":1024,\"name\":\"promptRoutes\",\"url\":\"classes/PromptHandler.html#promptRoutes\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"PromptHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/PromptHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PromptHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/PromptHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PromptHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/PromptHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PromptHandler\"},{\"kind\":128,\"name\":\"NoCheckOwnershipValidator\",\"url\":\"classes/NoCheckOwnershipValidator.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/NoCheckOwnershipValidator.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NoCheckOwnershipValidator\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/NoCheckOwnershipValidator.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"NoCheckOwnershipValidator\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/NoCheckOwnershipValidator.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"NoCheckOwnershipValidator\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/NoCheckOwnershipValidator.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NoCheckOwnershipValidator\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/NoCheckOwnershipValidator.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NoCheckOwnershipValidator\"},{\"kind\":128,\"name\":\"OwnershipValidator\",\"url\":\"classes/OwnershipValidator.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/OwnershipValidator.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OwnershipValidator\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/OwnershipValidator.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OwnershipValidator\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/OwnershipValidator.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OwnershipValidator\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/OwnershipValidator.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OwnershipValidator\"},{\"kind\":128,\"name\":\"TokenOwnershipValidator\",\"url\":\"classes/TokenOwnershipValidator.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/TokenOwnershipValidator.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"TokenOwnershipValidator\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/TokenOwnershipValidator.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"TokenOwnershipValidator\"},{\"kind\":1024,\"name\":\"storage\",\"url\":\"classes/TokenOwnershipValidator.html#storage\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"TokenOwnershipValidator\"},{\"kind\":1024,\"name\":\"expiration\",\"url\":\"classes/TokenOwnershipValidator.html#expiration\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"TokenOwnershipValidator\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/TokenOwnershipValidator.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"TokenOwnershipValidator\"},{\"kind\":2048,\"name\":\"getTokenKey\",\"url\":\"classes/TokenOwnershipValidator.html#getTokenKey\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"TokenOwnershipValidator\"},{\"kind\":2048,\"name\":\"generateToken\",\"url\":\"classes/TokenOwnershipValidator.html#generateToken\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"TokenOwnershipValidator\"},{\"kind\":2048,\"name\":\"hasToken\",\"url\":\"classes/TokenOwnershipValidator.html#hasToken\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"TokenOwnershipValidator\"},{\"kind\":2048,\"name\":\"throwError\",\"url\":\"classes/TokenOwnershipValidator.html#throwError\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"TokenOwnershipValidator\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/TokenOwnershipValidator.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"TokenOwnershipValidator\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/TokenOwnershipValidator.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"TokenOwnershipValidator\"},{\"kind\":256,\"name\":\"AdapterFactory\",\"url\":\"interfaces/AdapterFactory.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"createStorageAdapter\",\"url\":\"interfaces/AdapterFactory.html#createStorageAdapter\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AdapterFactory\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AdapterFactory.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AdapterFactory\"},{\"kind\":128,\"name\":\"ExpiringAdapter\",\"url\":\"classes/ExpiringAdapter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ExpiringAdapter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ExpiringAdapter\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/ExpiringAdapter.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"ExpiringAdapter\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/ExpiringAdapter.html#name\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ExpiringAdapter\"},{\"kind\":1024,\"name\":\"storage\",\"url\":\"classes/ExpiringAdapter.html#storage\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ExpiringAdapter\"},{\"kind\":2048,\"name\":\"grantKeyFor\",\"url\":\"classes/ExpiringAdapter.html#grantKeyFor\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ExpiringAdapter\"},{\"kind\":2048,\"name\":\"userCodeKeyFor\",\"url\":\"classes/ExpiringAdapter.html#userCodeKeyFor\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ExpiringAdapter\"},{\"kind\":2048,\"name\":\"uidKeyFor\",\"url\":\"classes/ExpiringAdapter.html#uidKeyFor\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ExpiringAdapter\"},{\"kind\":2048,\"name\":\"keyFor\",\"url\":\"classes/ExpiringAdapter.html#keyFor\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ExpiringAdapter\"},{\"kind\":2048,\"name\":\"upsert\",\"url\":\"classes/ExpiringAdapter.html#upsert\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ExpiringAdapter\"},{\"kind\":2048,\"name\":\"find\",\"url\":\"classes/ExpiringAdapter.html#find\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ExpiringAdapter\"},{\"kind\":2048,\"name\":\"findByUserCode\",\"url\":\"classes/ExpiringAdapter.html#findByUserCode\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ExpiringAdapter\"},{\"kind\":2048,\"name\":\"findByUid\",\"url\":\"classes/ExpiringAdapter.html#findByUid\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ExpiringAdapter\"},{\"kind\":2048,\"name\":\"destroy\",\"url\":\"classes/ExpiringAdapter.html#destroy\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ExpiringAdapter\"},{\"kind\":2048,\"name\":\"revokeByGrantId\",\"url\":\"classes/ExpiringAdapter.html#revokeByGrantId\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ExpiringAdapter\"},{\"kind\":2048,\"name\":\"consume\",\"url\":\"classes/ExpiringAdapter.html#consume\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ExpiringAdapter\"},{\"kind\":128,\"name\":\"ExpiringAdapterFactory\",\"url\":\"classes/ExpiringAdapterFactory.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ExpiringAdapterFactory.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ExpiringAdapterFactory\"},{\"kind\":1024,\"name\":\"storage\",\"url\":\"classes/ExpiringAdapterFactory.html#storage\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ExpiringAdapterFactory\"},{\"kind\":2048,\"name\":\"createStorageAdapter\",\"url\":\"classes/ExpiringAdapterFactory.html#createStorageAdapter\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ExpiringAdapterFactory\"},{\"kind\":128,\"name\":\"PassthroughAdapter\",\"url\":\"classes/PassthroughAdapter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/PassthroughAdapter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"PassthroughAdapter\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/PassthroughAdapter.html#name\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"PassthroughAdapter\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/PassthroughAdapter.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"PassthroughAdapter\"},{\"kind\":2048,\"name\":\"upsert\",\"url\":\"classes/PassthroughAdapter.html#upsert\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PassthroughAdapter\"},{\"kind\":2048,\"name\":\"find\",\"url\":\"classes/PassthroughAdapter.html#find\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PassthroughAdapter\"},{\"kind\":2048,\"name\":\"findByUserCode\",\"url\":\"classes/PassthroughAdapter.html#findByUserCode\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PassthroughAdapter\"},{\"kind\":2048,\"name\":\"findByUid\",\"url\":\"classes/PassthroughAdapter.html#findByUid\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PassthroughAdapter\"},{\"kind\":2048,\"name\":\"consume\",\"url\":\"classes/PassthroughAdapter.html#consume\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PassthroughAdapter\"},{\"kind\":2048,\"name\":\"destroy\",\"url\":\"classes/PassthroughAdapter.html#destroy\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PassthroughAdapter\"},{\"kind\":2048,\"name\":\"revokeByGrantId\",\"url\":\"classes/PassthroughAdapter.html#revokeByGrantId\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PassthroughAdapter\"},{\"kind\":128,\"name\":\"PassthroughAdapterFactory\",\"url\":\"classes/PassthroughAdapterFactory.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/PassthroughAdapterFactory.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"PassthroughAdapterFactory\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/PassthroughAdapterFactory.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"PassthroughAdapterFactory\"},{\"kind\":2048,\"name\":\"createStorageAdapter\",\"url\":\"classes/PassthroughAdapterFactory.html#createStorageAdapter\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PassthroughAdapterFactory\"},{\"kind\":128,\"name\":\"WebIdAdapter\",\"url\":\"classes/WebIdAdapter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/WebIdAdapter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"WebIdAdapter\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/WebIdAdapter.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"WebIdAdapter\"},{\"kind\":1024,\"name\":\"converter\",\"url\":\"classes/WebIdAdapter.html#converter\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"WebIdAdapter\"},{\"kind\":2048,\"name\":\"find\",\"url\":\"classes/WebIdAdapter.html#find\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WebIdAdapter\"},{\"kind\":2048,\"name\":\"parseRdfWebId\",\"url\":\"classes/WebIdAdapter.html#parseRdfWebId\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"WebIdAdapter\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/WebIdAdapter.html#name\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"WebIdAdapter\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/WebIdAdapter.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"WebIdAdapter\"},{\"kind\":2048,\"name\":\"upsert\",\"url\":\"classes/WebIdAdapter.html#upsert\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WebIdAdapter\"},{\"kind\":2048,\"name\":\"findByUserCode\",\"url\":\"classes/WebIdAdapter.html#findByUserCode\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WebIdAdapter\"},{\"kind\":2048,\"name\":\"findByUid\",\"url\":\"classes/WebIdAdapter.html#findByUid\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WebIdAdapter\"},{\"kind\":2048,\"name\":\"consume\",\"url\":\"classes/WebIdAdapter.html#consume\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WebIdAdapter\"},{\"kind\":2048,\"name\":\"destroy\",\"url\":\"classes/WebIdAdapter.html#destroy\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WebIdAdapter\"},{\"kind\":2048,\"name\":\"revokeByGrantId\",\"url\":\"classes/WebIdAdapter.html#revokeByGrantId\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WebIdAdapter\"},{\"kind\":128,\"name\":\"WebIdAdapterFactory\",\"url\":\"classes/WebIdAdapterFactory.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/WebIdAdapterFactory.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"WebIdAdapterFactory\"},{\"kind\":1024,\"name\":\"converter\",\"url\":\"classes/WebIdAdapterFactory.html#converter\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"WebIdAdapterFactory\"},{\"kind\":2048,\"name\":\"createStorageAdapter\",\"url\":\"classes/WebIdAdapterFactory.html#createStorageAdapter\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WebIdAdapterFactory\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/WebIdAdapterFactory.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"WebIdAdapterFactory\"},{\"kind\":256,\"name\":\"IdentityProviderHttpHandlerArgs\",\"url\":\"interfaces/IdentityProviderHttpHandlerArgs.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"providerFactory\",\"url\":\"interfaces/IdentityProviderHttpHandlerArgs.html#providerFactory\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"IdentityProviderHttpHandlerArgs\"},{\"kind\":1024,\"name\":\"converter\",\"url\":\"interfaces/IdentityProviderHttpHandlerArgs.html#converter\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"IdentityProviderHttpHandlerArgs\"},{\"kind\":1024,\"name\":\"handler\",\"url\":\"interfaces/IdentityProviderHttpHandlerArgs.html#handler\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"IdentityProviderHttpHandlerArgs\"},{\"kind\":128,\"name\":\"IdentityProviderHttpHandler\",\"url\":\"classes/IdentityProviderHttpHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/IdentityProviderHttpHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"IdentityProviderHttpHandler\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/IdentityProviderHttpHandler.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"IdentityProviderHttpHandler\"},{\"kind\":1024,\"name\":\"providerFactory\",\"url\":\"classes/IdentityProviderHttpHandler.html#providerFactory\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderHttpHandler\"},{\"kind\":1024,\"name\":\"converter\",\"url\":\"classes/IdentityProviderHttpHandler.html#converter\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderHttpHandler\"},{\"kind\":1024,\"name\":\"handler\",\"url\":\"classes/IdentityProviderHttpHandler.html#handler\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"IdentityProviderHttpHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/IdentityProviderHttpHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"IdentityProviderHttpHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/IdentityProviderHttpHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentityProviderHttpHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/IdentityProviderHttpHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentityProviderHttpHandler\"},{\"kind\":128,\"name\":\"OidcHttpHandler\",\"url\":\"classes/OidcHttpHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/OidcHttpHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"OidcHttpHandler\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/OidcHttpHandler.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"OidcHttpHandler\"},{\"kind\":1024,\"name\":\"providerFactory\",\"url\":\"classes/OidcHttpHandler.html#providerFactory\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"OidcHttpHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/OidcHttpHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"OidcHttpHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/OidcHttpHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OidcHttpHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/OidcHttpHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OidcHttpHandler\"},{\"kind\":128,\"name\":\"ClusterManager\",\"url\":\"classes/ClusterManager.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ClusterManager.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ClusterManager\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/ClusterManager.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ClusterManager\"},{\"kind\":1024,\"name\":\"workers\",\"url\":\"classes/ClusterManager.html#workers\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ClusterManager\"},{\"kind\":1024,\"name\":\"clusterMode\",\"url\":\"classes/ClusterManager.html#clusterMode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ClusterManager\"},{\"kind\":2048,\"name\":\"spawnWorkers\",\"url\":\"classes/ClusterManager.html#spawnWorkers\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ClusterManager\"},{\"kind\":2048,\"name\":\"isSingleThreaded\",\"url\":\"classes/ClusterManager.html#isSingleThreaded\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ClusterManager\"},{\"kind\":2048,\"name\":\"isPrimary\",\"url\":\"classes/ClusterManager.html#isPrimary\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ClusterManager\"},{\"kind\":2048,\"name\":\"isWorker\",\"url\":\"classes/ClusterManager.html#isWorker\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ClusterManager\"},{\"kind\":64,\"name\":\"toComponentsJsType\",\"url\":\"functions/toComponentsJsType.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"listSingleThreadedComponents\",\"url\":\"functions/listSingleThreadedComponents.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":256,\"name\":\"SingleThreaded\",\"url\":\"interfaces/SingleThreaded.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":128,\"name\":\"WorkerManager\",\"url\":\"classes/WorkerManager.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/WorkerManager.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"WorkerManager\"},{\"kind\":1024,\"name\":\"clusterManager\",\"url\":\"classes/WorkerManager.html#clusterManager\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"WorkerManager\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/WorkerManager.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WorkerManager\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/WorkerManager.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WorkerManager\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/WorkerManager.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WorkerManager\"},{\"kind\":256,\"name\":\"Finalizable\",\"url\":\"interfaces/Finalizable.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"finalize\",\"url\":\"interfaces/Finalizable.html#finalize\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Finalizable\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/Finalizable.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"Finalizable\"},{\"kind\":128,\"name\":\"FinalizableHandler\",\"url\":\"classes/FinalizableHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/FinalizableHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"FinalizableHandler\"},{\"kind\":1024,\"name\":\"finalizable\",\"url\":\"classes/FinalizableHandler.html#finalizable\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"FinalizableHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/FinalizableHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"FinalizableHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/FinalizableHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"FinalizableHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/FinalizableHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"FinalizableHandler\"},{\"kind\":128,\"name\":\"Finalizer\",\"url\":\"classes/Finalizer.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Finalizer.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Finalizer\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/Finalizer.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Finalizer\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/Finalizer.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Finalizer\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/Finalizer.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Finalizer\"},{\"kind\":256,\"name\":\"SetupHandlerArgs\",\"url\":\"interfaces/SetupHandlerArgs.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"registrationManager\",\"url\":\"interfaces/SetupHandlerArgs.html#registrationManager\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SetupHandlerArgs\"},{\"kind\":1024,\"name\":\"initializer\",\"url\":\"interfaces/SetupHandlerArgs.html#initializer\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SetupHandlerArgs\"},{\"kind\":128,\"name\":\"SetupHandler\",\"url\":\"classes/SetupHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/SetupHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"SetupHandler\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/SetupHandler.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"SetupHandler\"},{\"kind\":1024,\"name\":\"registrationManager\",\"url\":\"classes/SetupHandler.html#registrationManager\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SetupHandler\"},{\"kind\":1024,\"name\":\"initializer\",\"url\":\"classes/SetupHandler.html#initializer\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SetupHandler\"},{\"kind\":2048,\"name\":\"handlePost\",\"url\":\"classes/SetupHandler.html#handlePost\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"SetupHandler\"},{\"kind\":2048,\"name\":\"initialize\",\"url\":\"classes/SetupHandler.html#initialize\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SetupHandler\"},{\"kind\":2048,\"name\":\"register\",\"url\":\"classes/SetupHandler.html#register\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SetupHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/SetupHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"SetupHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/SetupHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"SetupHandler\"},{\"kind\":2048,\"name\":\"handleGet\",\"url\":\"classes/SetupHandler.html#handleGet\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"SetupHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/SetupHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"SetupHandler\"},{\"kind\":256,\"name\":\"SetupHttpHandlerArgs\",\"url\":\"interfaces/SetupHttpHandlerArgs.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"converter\",\"url\":\"interfaces/SetupHttpHandlerArgs.html#converter\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SetupHttpHandlerArgs\"},{\"kind\":1024,\"name\":\"handler\",\"url\":\"interfaces/SetupHttpHandlerArgs.html#handler\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SetupHttpHandlerArgs\"},{\"kind\":1024,\"name\":\"storageKey\",\"url\":\"interfaces/SetupHttpHandlerArgs.html#storageKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SetupHttpHandlerArgs\"},{\"kind\":1024,\"name\":\"storage\",\"url\":\"interfaces/SetupHttpHandlerArgs.html#storage\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SetupHttpHandlerArgs\"},{\"kind\":1024,\"name\":\"templateEngine\",\"url\":\"interfaces/SetupHttpHandlerArgs.html#templateEngine\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SetupHttpHandlerArgs\"},{\"kind\":128,\"name\":\"SetupHttpHandler\",\"url\":\"classes/SetupHttpHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/SetupHttpHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"SetupHttpHandler\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/SetupHttpHandler.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"SetupHttpHandler\"},{\"kind\":1024,\"name\":\"handler\",\"url\":\"classes/SetupHttpHandler.html#handler\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SetupHttpHandler\"},{\"kind\":1024,\"name\":\"converter\",\"url\":\"classes/SetupHttpHandler.html#converter\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SetupHttpHandler\"},{\"kind\":1024,\"name\":\"storageKey\",\"url\":\"classes/SetupHttpHandler.html#storageKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SetupHttpHandler\"},{\"kind\":1024,\"name\":\"storage\",\"url\":\"classes/SetupHttpHandler.html#storage\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SetupHttpHandler\"},{\"kind\":1024,\"name\":\"templateEngine\",\"url\":\"classes/SetupHttpHandler.html#templateEngine\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SetupHttpHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/SetupHttpHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SetupHttpHandler\"},{\"kind\":2048,\"name\":\"handleGet\",\"url\":\"classes/SetupHttpHandler.html#handleGet\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SetupHttpHandler\"},{\"kind\":2048,\"name\":\"handlePost\",\"url\":\"classes/SetupHttpHandler.html#handlePost\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SetupHttpHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/SetupHttpHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"SetupHttpHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/SetupHttpHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"SetupHttpHandler\"},{\"kind\":128,\"name\":\"CliExtractor\",\"url\":\"classes/CliExtractor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/CliExtractor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"CliExtractor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/CliExtractor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"CliExtractor\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/CliExtractor.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"CliExtractor\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/CliExtractor.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"CliExtractor\"},{\"kind\":4194304,\"name\":\"YargsOptions\",\"url\":\"types/YargsOptions.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":128,\"name\":\"YargsParameter\",\"url\":\"classes/YargsParameter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/YargsParameter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"YargsParameter\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/YargsParameter.html#name\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"YargsParameter\"},{\"kind\":1024,\"name\":\"options\",\"url\":\"classes/YargsParameter.html#options\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"YargsParameter\"},{\"kind\":256,\"name\":\"CliOptions\",\"url\":\"interfaces/CliOptions.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"usage\",\"url\":\"interfaces/CliOptions.html#usage\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CliOptions\"},{\"kind\":1024,\"name\":\"strictMode\",\"url\":\"interfaces/CliOptions.html#strictMode\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CliOptions\"},{\"kind\":1024,\"name\":\"loadFromEnv\",\"url\":\"interfaces/CliOptions.html#loadFromEnv\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CliOptions\"},{\"kind\":1024,\"name\":\"envVarPrefix\",\"url\":\"interfaces/CliOptions.html#envVarPrefix\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CliOptions\"},{\"kind\":128,\"name\":\"YargsCliExtractor\",\"url\":\"classes/YargsCliExtractor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/YargsCliExtractor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"YargsCliExtractor\"},{\"kind\":1024,\"name\":\"yargsArgOptions\",\"url\":\"classes/YargsCliExtractor.html#yargsArgOptions\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"YargsCliExtractor\"},{\"kind\":1024,\"name\":\"yargvOptions\",\"url\":\"classes/YargsCliExtractor.html#yargvOptions\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"YargsCliExtractor\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/YargsCliExtractor.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"YargsCliExtractor\"},{\"kind\":2048,\"name\":\"createYArgv\",\"url\":\"classes/YargsCliExtractor.html#createYArgv\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"YargsCliExtractor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/YargsCliExtractor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"YargsCliExtractor\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/YargsCliExtractor.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"YargsCliExtractor\"},{\"kind\":128,\"name\":\"KeyExtractor\",\"url\":\"classes/KeyExtractor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/KeyExtractor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"KeyExtractor\"},{\"kind\":1024,\"name\":\"key\",\"url\":\"classes/KeyExtractor.html#key\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"KeyExtractor\"},{\"kind\":1024,\"name\":\"defaultValue\",\"url\":\"classes/KeyExtractor.html#defaultValue\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"KeyExtractor\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/KeyExtractor.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"KeyExtractor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/KeyExtractor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"KeyExtractor\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/KeyExtractor.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"KeyExtractor\"},{\"kind\":128,\"name\":\"AssetPathExtractor\",\"url\":\"classes/AssetPathExtractor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/AssetPathExtractor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"AssetPathExtractor\"},{\"kind\":1024,\"name\":\"key\",\"url\":\"classes/AssetPathExtractor.html#key\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"AssetPathExtractor\"},{\"kind\":1024,\"name\":\"defaultPath\",\"url\":\"classes/AssetPathExtractor.html#defaultPath\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"AssetPathExtractor\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/AssetPathExtractor.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"AssetPathExtractor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/AssetPathExtractor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AssetPathExtractor\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/AssetPathExtractor.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AssetPathExtractor\"},{\"kind\":128,\"name\":\"BaseUrlExtractor\",\"url\":\"classes/BaseUrlExtractor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/BaseUrlExtractor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"BaseUrlExtractor\"},{\"kind\":1024,\"name\":\"defaultPort\",\"url\":\"classes/BaseUrlExtractor.html#defaultPort\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BaseUrlExtractor\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/BaseUrlExtractor.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseUrlExtractor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/BaseUrlExtractor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BaseUrlExtractor\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/BaseUrlExtractor.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BaseUrlExtractor\"},{\"kind\":128,\"name\":\"ShorthandExtractor\",\"url\":\"classes/ShorthandExtractor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ShorthandExtractor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ShorthandExtractor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ShorthandExtractor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ShorthandExtractor\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ShorthandExtractor.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ShorthandExtractor\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ShorthandExtractor.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ShorthandExtractor\"},{\"kind\":128,\"name\":\"CombinedShorthandResolver\",\"url\":\"classes/CombinedShorthandResolver.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/CombinedShorthandResolver.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"CombinedShorthandResolver\"},{\"kind\":1024,\"name\":\"resolvers\",\"url\":\"classes/CombinedShorthandResolver.html#resolvers\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"CombinedShorthandResolver\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/CombinedShorthandResolver.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"CombinedShorthandResolver\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/CombinedShorthandResolver.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"CombinedShorthandResolver\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/CombinedShorthandResolver.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"CombinedShorthandResolver\"},{\"kind\":128,\"name\":\"ShorthandResolver\",\"url\":\"classes/ShorthandResolver.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ShorthandResolver.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ShorthandResolver\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ShorthandResolver.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ShorthandResolver\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ShorthandResolver.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ShorthandResolver\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ShorthandResolver.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ShorthandResolver\"},{\"kind\":128,\"name\":\"App\",\"url\":\"classes/App.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/App.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"App\"},{\"kind\":1024,\"name\":\"initializer\",\"url\":\"classes/App.html#initializer\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"App\"},{\"kind\":1024,\"name\":\"finalizer\",\"url\":\"classes/App.html#finalizer\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"App\"},{\"kind\":1024,\"name\":\"clusterManager\",\"url\":\"classes/App.html#clusterManager\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"App\"},{\"kind\":2048,\"name\":\"start\",\"url\":\"classes/App.html#start\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"App\"},{\"kind\":2048,\"name\":\"stop\",\"url\":\"classes/App.html#stop\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"App\"},{\"kind\":128,\"name\":\"AppRunner\",\"url\":\"classes/AppRunner.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/AppRunner.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"AppRunner\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/AppRunner.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"AppRunner\"},{\"kind\":2048,\"name\":\"run\",\"url\":\"classes/AppRunner.html#run\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"AppRunner\"},{\"kind\":2048,\"name\":\"create\",\"url\":\"classes/AppRunner.html#create\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"AppRunner\"},{\"kind\":2048,\"name\":\"runCliSync\",\"url\":\"classes/AppRunner.html#runCliSync\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"AppRunner\"},{\"kind\":2048,\"name\":\"runCli\",\"url\":\"classes/AppRunner.html#runCli\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"AppRunner\"},{\"kind\":2048,\"name\":\"createCli\",\"url\":\"classes/AppRunner.html#createCli\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"AppRunner\"},{\"kind\":2048,\"name\":\"createComponentsManager\",\"url\":\"classes/AppRunner.html#createComponentsManager\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"AppRunner\"},{\"kind\":2048,\"name\":\"cliToVariables\",\"url\":\"classes/AppRunner.html#cliToVariables\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"AppRunner\"},{\"kind\":2048,\"name\":\"createCliResolver\",\"url\":\"classes/AppRunner.html#createCliResolver\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"AppRunner\"},{\"kind\":2048,\"name\":\"extractShorthand\",\"url\":\"classes/AppRunner.html#extractShorthand\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"AppRunner\"},{\"kind\":2048,\"name\":\"resolveShorthand\",\"url\":\"classes/AppRunner.html#resolveShorthand\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"AppRunner\"},{\"kind\":2048,\"name\":\"createApp\",\"url\":\"classes/AppRunner.html#createApp\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"AppRunner\"},{\"kind\":2048,\"name\":\"resolveError\",\"url\":\"classes/AppRunner.html#resolveError\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"AppRunner\"},{\"kind\":128,\"name\":\"BaseUrlVerifier\",\"url\":\"classes/BaseUrlVerifier.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/BaseUrlVerifier.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"BaseUrlVerifier\"},{\"kind\":1024,\"name\":\"baseUrl\",\"url\":\"classes/BaseUrlVerifier.html#baseUrl\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BaseUrlVerifier\"},{\"kind\":1024,\"name\":\"storageKey\",\"url\":\"classes/BaseUrlVerifier.html#storageKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BaseUrlVerifier\"},{\"kind\":1024,\"name\":\"storage\",\"url\":\"classes/BaseUrlVerifier.html#storage\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BaseUrlVerifier\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/BaseUrlVerifier.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BaseUrlVerifier\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/BaseUrlVerifier.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseUrlVerifier\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/BaseUrlVerifier.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BaseUrlVerifier\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/BaseUrlVerifier.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BaseUrlVerifier\"},{\"kind\":128,\"name\":\"CliResolver\",\"url\":\"classes/CliResolver.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/CliResolver.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"CliResolver\"},{\"kind\":1024,\"name\":\"cliExtractor\",\"url\":\"classes/CliResolver.html#cliExtractor\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"CliResolver\"},{\"kind\":1024,\"name\":\"shorthandResolver\",\"url\":\"classes/CliResolver.html#shorthandResolver\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"CliResolver\"},{\"kind\":128,\"name\":\"ConfigPodInitializer\",\"url\":\"classes/ConfigPodInitializer.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ConfigPodInitializer.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ConfigPodInitializer\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/ConfigPodInitializer.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"ConfigPodInitializer\"},{\"kind\":1024,\"name\":\"storeFactory\",\"url\":\"classes/ConfigPodInitializer.html#storeFactory\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConfigPodInitializer\"},{\"kind\":1024,\"name\":\"configStorage\",\"url\":\"classes/ConfigPodInitializer.html#configStorage\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConfigPodInitializer\"},{\"kind\":1024,\"name\":\"routingStorage\",\"url\":\"classes/ConfigPodInitializer.html#routingStorage\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConfigPodInitializer\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ConfigPodInitializer.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ConfigPodInitializer\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ConfigPodInitializer.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConfigPodInitializer\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ConfigPodInitializer.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConfigPodInitializer\"},{\"kind\":256,\"name\":\"ContainerInitializerArgs\",\"url\":\"interfaces/ContainerInitializerArgs.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"baseUrl\",\"url\":\"interfaces/ContainerInitializerArgs.html#baseUrl\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ContainerInitializerArgs\"},{\"kind\":1024,\"name\":\"path\",\"url\":\"interfaces/ContainerInitializerArgs.html#path\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ContainerInitializerArgs\"},{\"kind\":1024,\"name\":\"store\",\"url\":\"interfaces/ContainerInitializerArgs.html#store\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ContainerInitializerArgs\"},{\"kind\":1024,\"name\":\"generator\",\"url\":\"interfaces/ContainerInitializerArgs.html#generator\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ContainerInitializerArgs\"},{\"kind\":1024,\"name\":\"storageKey\",\"url\":\"interfaces/ContainerInitializerArgs.html#storageKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ContainerInitializerArgs\"},{\"kind\":1024,\"name\":\"storage\",\"url\":\"interfaces/ContainerInitializerArgs.html#storage\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ContainerInitializerArgs\"},{\"kind\":128,\"name\":\"ContainerInitializer\",\"url\":\"classes/ContainerInitializer.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ContainerInitializer.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ContainerInitializer\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/ContainerInitializer.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"ContainerInitializer\"},{\"kind\":1024,\"name\":\"store\",\"url\":\"classes/ContainerInitializer.html#store\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ContainerInitializer\"},{\"kind\":1024,\"name\":\"containerId\",\"url\":\"classes/ContainerInitializer.html#containerId\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ContainerInitializer\"},{\"kind\":1024,\"name\":\"generator\",\"url\":\"classes/ContainerInitializer.html#generator\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ContainerInitializer\"},{\"kind\":1024,\"name\":\"storageKey\",\"url\":\"classes/ContainerInitializer.html#storageKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ContainerInitializer\"},{\"kind\":1024,\"name\":\"storage\",\"url\":\"classes/ContainerInitializer.html#storage\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ContainerInitializer\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ContainerInitializer.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ContainerInitializer\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ContainerInitializer.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ContainerInitializer\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ContainerInitializer.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ContainerInitializer\"},{\"kind\":256,\"name\":\"Initializable\",\"url\":\"interfaces/Initializable.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"initialize\",\"url\":\"interfaces/Initializable.html#initialize\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Initializable\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/Initializable.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"Initializable\"},{\"kind\":128,\"name\":\"InitializableHandler\",\"url\":\"classes/InitializableHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/InitializableHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"InitializableHandler\"},{\"kind\":1024,\"name\":\"initializable\",\"url\":\"classes/InitializableHandler.html#initializable\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"InitializableHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/InitializableHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"InitializableHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/InitializableHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"InitializableHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/InitializableHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"InitializableHandler\"},{\"kind\":128,\"name\":\"Initializer\",\"url\":\"classes/Initializer.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/Initializer.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Initializer\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/Initializer.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Initializer\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/Initializer.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Initializer\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/Initializer.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"Initializer\"},{\"kind\":128,\"name\":\"LoggerInitializer\",\"url\":\"classes/LoggerInitializer.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/LoggerInitializer.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"LoggerInitializer\"},{\"kind\":1024,\"name\":\"loggerFactory\",\"url\":\"classes/LoggerInitializer.html#loggerFactory\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"LoggerInitializer\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/LoggerInitializer.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"LoggerInitializer\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/LoggerInitializer.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"LoggerInitializer\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/LoggerInitializer.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"LoggerInitializer\"},{\"kind\":128,\"name\":\"ModuleVersionVerifier\",\"url\":\"classes/ModuleVersionVerifier.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ModuleVersionVerifier.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ModuleVersionVerifier\"},{\"kind\":1024,\"name\":\"storageKey\",\"url\":\"classes/ModuleVersionVerifier.html#storageKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ModuleVersionVerifier\"},{\"kind\":1024,\"name\":\"storage\",\"url\":\"classes/ModuleVersionVerifier.html#storage\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ModuleVersionVerifier\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ModuleVersionVerifier.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ModuleVersionVerifier\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ModuleVersionVerifier.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ModuleVersionVerifier\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ModuleVersionVerifier.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ModuleVersionVerifier\"},{\"kind\":128,\"name\":\"SeededPodInitializer\",\"url\":\"classes/SeededPodInitializer.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/SeededPodInitializer.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"SeededPodInitializer\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/SeededPodInitializer.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"SeededPodInitializer\"},{\"kind\":1024,\"name\":\"registrationManager\",\"url\":\"classes/SeededPodInitializer.html#registrationManager\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SeededPodInitializer\"},{\"kind\":1024,\"name\":\"configFilePath\",\"url\":\"classes/SeededPodInitializer.html#configFilePath\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SeededPodInitializer\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/SeededPodInitializer.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SeededPodInitializer\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/SeededPodInitializer.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"SeededPodInitializer\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/SeededPodInitializer.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"SeededPodInitializer\"},{\"kind\":128,\"name\":\"ServerInitializer\",\"url\":\"classes/ServerInitializer.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ServerInitializer.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ServerInitializer\"},{\"kind\":1024,\"name\":\"serverFactory\",\"url\":\"classes/ServerInitializer.html#serverFactory\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ServerInitializer\"},{\"kind\":1024,\"name\":\"port\",\"url\":\"classes/ServerInitializer.html#port\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ServerInitializer\"},{\"kind\":1024,\"name\":\"server\",\"url\":\"classes/ServerInitializer.html#server\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ServerInitializer\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ServerInitializer.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ServerInitializer\"},{\"kind\":2048,\"name\":\"finalize\",\"url\":\"classes/ServerInitializer.html#finalize\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ServerInitializer\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ServerInitializer.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ServerInitializer\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ServerInitializer.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ServerInitializer\"},{\"kind\":128,\"name\":\"LazyLoggerFactory\",\"url\":\"classes/LazyLoggerFactory.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/LazyLoggerFactory.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"LazyLoggerFactory\"},{\"kind\":1024,\"name\":\"factory\",\"url\":\"classes/LazyLoggerFactory.html#factory\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"LazyLoggerFactory\"},{\"kind\":262144,\"name\":\"loggerFactory\",\"url\":\"classes/LazyLoggerFactory.html#loggerFactory\",\"classes\":\"tsd-kind-accessor tsd-parent-kind-class\",\"parent\":\"LazyLoggerFactory\"},{\"kind\":2048,\"name\":\"createLogger\",\"url\":\"classes/LazyLoggerFactory.html#createLogger\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"LazyLoggerFactory\"},{\"kind\":256,\"name\":\"LogMetadata\",\"url\":\"interfaces/LogMetadata.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"isPrimary\",\"url\":\"interfaces/LogMetadata.html#isPrimary\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LogMetadata\"},{\"kind\":1024,\"name\":\"pid\",\"url\":\"interfaces/LogMetadata.html#pid\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LogMetadata\"},{\"kind\":256,\"name\":\"SimpleLogger\",\"url\":\"interfaces/SimpleLogger.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"log\",\"url\":\"interfaces/SimpleLogger.html#log\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SimpleLogger\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/SimpleLogger.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"SimpleLogger\"},{\"kind\":256,\"name\":\"Logger\",\"url\":\"interfaces/Logger.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"log\",\"url\":\"interfaces/Logger.html#log\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Logger\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/Logger.html#__type-6\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"Logger\"},{\"kind\":1024,\"name\":\"error\",\"url\":\"interfaces/Logger.html#error\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Logger\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/Logger.html#__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"Logger\"},{\"kind\":1024,\"name\":\"warn\",\"url\":\"interfaces/Logger.html#warn\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Logger\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/Logger.html#__type-12\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"Logger\"},{\"kind\":1024,\"name\":\"info\",\"url\":\"interfaces/Logger.html#info\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Logger\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/Logger.html#__type-4\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"Logger\"},{\"kind\":1024,\"name\":\"verbose\",\"url\":\"interfaces/Logger.html#verbose\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Logger\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/Logger.html#__type-10\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"Logger\"},{\"kind\":1024,\"name\":\"debug\",\"url\":\"interfaces/Logger.html#debug\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Logger\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/Logger.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"Logger\"},{\"kind\":1024,\"name\":\"silly\",\"url\":\"interfaces/Logger.html#silly\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Logger\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/Logger.html#__type-8\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"Logger\"},{\"kind\":128,\"name\":\"BaseLogger\",\"url\":\"classes/BaseLogger.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/BaseLogger.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"BaseLogger\"},{\"kind\":2048,\"name\":\"log\",\"url\":\"classes/BaseLogger.html#log\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseLogger\"},{\"kind\":2048,\"name\":\"getMeta\",\"url\":\"classes/BaseLogger.html#getMeta\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"BaseLogger\"},{\"kind\":2048,\"name\":\"error\",\"url\":\"classes/BaseLogger.html#error\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseLogger\"},{\"kind\":2048,\"name\":\"warn\",\"url\":\"classes/BaseLogger.html#warn\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseLogger\"},{\"kind\":2048,\"name\":\"info\",\"url\":\"classes/BaseLogger.html#info\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseLogger\"},{\"kind\":2048,\"name\":\"verbose\",\"url\":\"classes/BaseLogger.html#verbose\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseLogger\"},{\"kind\":2048,\"name\":\"debug\",\"url\":\"classes/BaseLogger.html#debug\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseLogger\"},{\"kind\":2048,\"name\":\"silly\",\"url\":\"classes/BaseLogger.html#silly\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseLogger\"},{\"kind\":128,\"name\":\"WrappingLogger\",\"url\":\"classes/WrappingLogger.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/WrappingLogger.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"WrappingLogger\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/WrappingLogger.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"WrappingLogger\"},{\"kind\":2048,\"name\":\"log\",\"url\":\"classes/WrappingLogger.html#log\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappingLogger\"},{\"kind\":2048,\"name\":\"error\",\"url\":\"classes/WrappingLogger.html#error\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WrappingLogger\"},{\"kind\":2048,\"name\":\"warn\",\"url\":\"classes/WrappingLogger.html#warn\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WrappingLogger\"},{\"kind\":2048,\"name\":\"info\",\"url\":\"classes/WrappingLogger.html#info\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WrappingLogger\"},{\"kind\":2048,\"name\":\"verbose\",\"url\":\"classes/WrappingLogger.html#verbose\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WrappingLogger\"},{\"kind\":2048,\"name\":\"debug\",\"url\":\"classes/WrappingLogger.html#debug\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WrappingLogger\"},{\"kind\":2048,\"name\":\"silly\",\"url\":\"classes/WrappingLogger.html#silly\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WrappingLogger\"},{\"kind\":256,\"name\":\"LoggerFactory\",\"url\":\"interfaces/LoggerFactory.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"createLogger\",\"url\":\"interfaces/LoggerFactory.html#createLogger\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LoggerFactory\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/LoggerFactory.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"LoggerFactory\"},{\"kind\":32,\"name\":\"LOG_LEVELS\",\"url\":\"variables/LOG_LEVELS.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":4194304,\"name\":\"LogLevel\",\"url\":\"types/LogLevel.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":64,\"name\":\"getLoggerFor\",\"url\":\"functions/getLoggerFor.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"setGlobalLoggerFactory\",\"url\":\"functions/setGlobalLoggerFactory.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"resetInternalLoggerFactory\",\"url\":\"functions/resetInternalLoggerFactory.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":128,\"name\":\"VoidLogger\",\"url\":\"classes/VoidLogger.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/VoidLogger.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"VoidLogger\"},{\"kind\":2048,\"name\":\"log\",\"url\":\"classes/VoidLogger.html#log\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"VoidLogger\"},{\"kind\":2048,\"name\":\"error\",\"url\":\"classes/VoidLogger.html#error\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"VoidLogger\"},{\"kind\":2048,\"name\":\"warn\",\"url\":\"classes/VoidLogger.html#warn\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"VoidLogger\"},{\"kind\":2048,\"name\":\"info\",\"url\":\"classes/VoidLogger.html#info\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"VoidLogger\"},{\"kind\":2048,\"name\":\"verbose\",\"url\":\"classes/VoidLogger.html#verbose\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"VoidLogger\"},{\"kind\":2048,\"name\":\"debug\",\"url\":\"classes/VoidLogger.html#debug\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"VoidLogger\"},{\"kind\":2048,\"name\":\"silly\",\"url\":\"classes/VoidLogger.html#silly\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"VoidLogger\"},{\"kind\":128,\"name\":\"VoidLoggerFactory\",\"url\":\"classes/VoidLoggerFactory.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/VoidLoggerFactory.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"VoidLoggerFactory\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/VoidLoggerFactory.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"VoidLoggerFactory\"},{\"kind\":2048,\"name\":\"createLogger\",\"url\":\"classes/VoidLoggerFactory.html#createLogger\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"VoidLoggerFactory\"},{\"kind\":128,\"name\":\"WinstonLogger\",\"url\":\"classes/WinstonLogger.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/WinstonLogger.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"WinstonLogger\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/WinstonLogger.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"WinstonLogger\"},{\"kind\":2048,\"name\":\"log\",\"url\":\"classes/WinstonLogger.html#log\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WinstonLogger\"},{\"kind\":2048,\"name\":\"error\",\"url\":\"classes/WinstonLogger.html#error\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WinstonLogger\"},{\"kind\":2048,\"name\":\"warn\",\"url\":\"classes/WinstonLogger.html#warn\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WinstonLogger\"},{\"kind\":2048,\"name\":\"info\",\"url\":\"classes/WinstonLogger.html#info\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WinstonLogger\"},{\"kind\":2048,\"name\":\"verbose\",\"url\":\"classes/WinstonLogger.html#verbose\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WinstonLogger\"},{\"kind\":2048,\"name\":\"debug\",\"url\":\"classes/WinstonLogger.html#debug\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WinstonLogger\"},{\"kind\":2048,\"name\":\"silly\",\"url\":\"classes/WinstonLogger.html#silly\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WinstonLogger\"},{\"kind\":128,\"name\":\"WinstonLoggerFactory\",\"url\":\"classes/WinstonLoggerFactory.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/WinstonLoggerFactory.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"WinstonLoggerFactory\"},{\"kind\":1024,\"name\":\"level\",\"url\":\"classes/WinstonLoggerFactory.html#level\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"WinstonLoggerFactory\"},{\"kind\":2048,\"name\":\"clusterInfo\",\"url\":\"classes/WinstonLoggerFactory.html#clusterInfo\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"WinstonLoggerFactory\"},{\"kind\":2048,\"name\":\"createLogger\",\"url\":\"classes/WinstonLoggerFactory.html#createLogger\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WinstonLoggerFactory\"},{\"kind\":2048,\"name\":\"createTransports\",\"url\":\"classes/WinstonLoggerFactory.html#createTransports\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"WinstonLoggerFactory\"},{\"kind\":128,\"name\":\"BaseUrlHandler\",\"url\":\"classes/BaseUrlHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/BaseUrlHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BaseUrlHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/BaseUrlHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseUrlHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/BaseUrlHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BaseUrlHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/BaseUrlHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BaseUrlHandler\"},{\"kind\":128,\"name\":\"RootFilePathHandler\",\"url\":\"classes/RootFilePathHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RootFilePathHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"RootFilePathHandler\"},{\"kind\":1024,\"name\":\"fileMapper\",\"url\":\"classes/RootFilePathHandler.html#fileMapper\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RootFilePathHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/RootFilePathHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RootFilePathHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/RootFilePathHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RootFilePathHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/RootFilePathHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RootFilePathHandler\"},{\"kind\":128,\"name\":\"VariableHandler\",\"url\":\"classes/VariableHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/VariableHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"VariableHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/VariableHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"VariableHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/VariableHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"VariableHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/VariableHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"VariableHandler\"},{\"kind\":64,\"name\":\"isValidVariable\",\"url\":\"functions/isValidVariable.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":32,\"name\":\"TEMPLATE\",\"url\":\"variables/TEMPLATE-1.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"TEMPLATE_VARIABLE\",\"url\":\"variables/TEMPLATE_VARIABLE.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":128,\"name\":\"VariableSetter\",\"url\":\"classes/VariableSetter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/VariableSetter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"VariableSetter\"},{\"kind\":1024,\"name\":\"variable\",\"url\":\"classes/VariableSetter.html#variable\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"VariableSetter\"},{\"kind\":1024,\"name\":\"value\",\"url\":\"classes/VariableSetter.html#value\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"VariableSetter\"},{\"kind\":1024,\"name\":\"override\",\"url\":\"classes/VariableSetter.html#override\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"VariableSetter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/VariableSetter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"VariableSetter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/VariableSetter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"VariableSetter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/VariableSetter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"VariableSetter\"},{\"kind\":128,\"name\":\"BaseComponentsJsFactory\",\"url\":\"classes/BaseComponentsJsFactory.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/BaseComponentsJsFactory.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"BaseComponentsJsFactory\"},{\"kind\":1024,\"name\":\"options\",\"url\":\"classes/BaseComponentsJsFactory.html#options\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BaseComponentsJsFactory\"},{\"kind\":2048,\"name\":\"buildManager\",\"url\":\"classes/BaseComponentsJsFactory.html#buildManager\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"BaseComponentsJsFactory\"},{\"kind\":2048,\"name\":\"generate\",\"url\":\"classes/BaseComponentsJsFactory.html#generate\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseComponentsJsFactory\"},{\"kind\":256,\"name\":\"ComponentsJsFactory\",\"url\":\"interfaces/ComponentsJsFactory.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"generate\",\"url\":\"interfaces/ComponentsJsFactory.html#generate\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ComponentsJsFactory\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ComponentsJsFactory.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"ComponentsJsFactory\"},{\"kind\":64,\"name\":\"addGeneratedResources\",\"url\":\"functions/addGeneratedResources.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":256,\"name\":\"IdentifierGenerator\",\"url\":\"interfaces/IdentifierGenerator.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"generate\",\"url\":\"interfaces/IdentifierGenerator.html#generate\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"IdentifierGenerator\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/IdentifierGenerator.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"IdentifierGenerator\"},{\"kind\":256,\"name\":\"PodGenerator\",\"url\":\"interfaces/PodGenerator.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"generate\",\"url\":\"interfaces/PodGenerator.html#generate\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PodGenerator\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/PodGenerator.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"PodGenerator\"},{\"kind\":256,\"name\":\"Resource\",\"url\":\"interfaces/Resource.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"identifier\",\"url\":\"interfaces/Resource.html#identifier\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Resource\"},{\"kind\":1024,\"name\":\"representation\",\"url\":\"interfaces/Resource.html#representation\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Resource\"},{\"kind\":256,\"name\":\"ResourcesGenerator\",\"url\":\"interfaces/ResourcesGenerator.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"generate\",\"url\":\"interfaces/ResourcesGenerator.html#generate\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ResourcesGenerator\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ResourcesGenerator.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"ResourcesGenerator\"},{\"kind\":128,\"name\":\"SubdomainIdentifierGenerator\",\"url\":\"classes/SubdomainIdentifierGenerator.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/SubdomainIdentifierGenerator.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"SubdomainIdentifierGenerator\"},{\"kind\":1024,\"name\":\"baseParts\",\"url\":\"classes/SubdomainIdentifierGenerator.html#baseParts\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SubdomainIdentifierGenerator\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/SubdomainIdentifierGenerator.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"SubdomainIdentifierGenerator\"},{\"kind\":1024,\"name\":\"scheme\",\"url\":\"classes/SubdomainIdentifierGenerator.html#__type.scheme\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SubdomainIdentifierGenerator.__type\"},{\"kind\":1024,\"name\":\"rest\",\"url\":\"classes/SubdomainIdentifierGenerator.html#__type.rest\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SubdomainIdentifierGenerator.__type\"},{\"kind\":2048,\"name\":\"generate\",\"url\":\"classes/SubdomainIdentifierGenerator.html#generate\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SubdomainIdentifierGenerator\"},{\"kind\":128,\"name\":\"SuffixIdentifierGenerator\",\"url\":\"classes/SuffixIdentifierGenerator.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/SuffixIdentifierGenerator.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"SuffixIdentifierGenerator\"},{\"kind\":1024,\"name\":\"base\",\"url\":\"classes/SuffixIdentifierGenerator.html#base\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SuffixIdentifierGenerator\"},{\"kind\":2048,\"name\":\"generate\",\"url\":\"classes/SuffixIdentifierGenerator.html#generate\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SuffixIdentifierGenerator\"},{\"kind\":128,\"name\":\"TemplatedPodGenerator\",\"url\":\"classes/TemplatedPodGenerator.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/TemplatedPodGenerator.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"TemplatedPodGenerator\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/TemplatedPodGenerator.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"TemplatedPodGenerator\"},{\"kind\":1024,\"name\":\"storeFactory\",\"url\":\"classes/TemplatedPodGenerator.html#storeFactory\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"TemplatedPodGenerator\"},{\"kind\":1024,\"name\":\"variableHandler\",\"url\":\"classes/TemplatedPodGenerator.html#variableHandler\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"TemplatedPodGenerator\"},{\"kind\":1024,\"name\":\"configStorage\",\"url\":\"classes/TemplatedPodGenerator.html#configStorage\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"TemplatedPodGenerator\"},{\"kind\":1024,\"name\":\"configTemplatePath\",\"url\":\"classes/TemplatedPodGenerator.html#configTemplatePath\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"TemplatedPodGenerator\"},{\"kind\":1024,\"name\":\"baseUrl\",\"url\":\"classes/TemplatedPodGenerator.html#baseUrl\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"TemplatedPodGenerator\"},{\"kind\":2048,\"name\":\"generate\",\"url\":\"classes/TemplatedPodGenerator.html#generate\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"TemplatedPodGenerator\"},{\"kind\":256,\"name\":\"TemplatedResourcesGeneratorArgs\",\"url\":\"interfaces/TemplatedResourcesGeneratorArgs.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"templateFolder\",\"url\":\"interfaces/TemplatedResourcesGeneratorArgs.html#templateFolder\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TemplatedResourcesGeneratorArgs\"},{\"kind\":1024,\"name\":\"factory\",\"url\":\"interfaces/TemplatedResourcesGeneratorArgs.html#factory\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TemplatedResourcesGeneratorArgs\"},{\"kind\":1024,\"name\":\"templateEngine\",\"url\":\"interfaces/TemplatedResourcesGeneratorArgs.html#templateEngine\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TemplatedResourcesGeneratorArgs\"},{\"kind\":1024,\"name\":\"templateExtension\",\"url\":\"interfaces/TemplatedResourcesGeneratorArgs.html#templateExtension\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TemplatedResourcesGeneratorArgs\"},{\"kind\":1024,\"name\":\"metadataStrategy\",\"url\":\"interfaces/TemplatedResourcesGeneratorArgs.html#metadataStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TemplatedResourcesGeneratorArgs\"},{\"kind\":1024,\"name\":\"store\",\"url\":\"interfaces/TemplatedResourcesGeneratorArgs.html#store\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TemplatedResourcesGeneratorArgs\"},{\"kind\":128,\"name\":\"TemplatedResourcesGenerator\",\"url\":\"classes/TemplatedResourcesGenerator.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/TemplatedResourcesGenerator.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"TemplatedResourcesGenerator\"},{\"kind\":1024,\"name\":\"templateFolder\",\"url\":\"classes/TemplatedResourcesGenerator.html#templateFolder\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"TemplatedResourcesGenerator\"},{\"kind\":1024,\"name\":\"factory\",\"url\":\"classes/TemplatedResourcesGenerator.html#factory\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"TemplatedResourcesGenerator\"},{\"kind\":1024,\"name\":\"templateEngine\",\"url\":\"classes/TemplatedResourcesGenerator.html#templateEngine\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"TemplatedResourcesGenerator\"},{\"kind\":1024,\"name\":\"templateExtension\",\"url\":\"classes/TemplatedResourcesGenerator.html#templateExtension\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"TemplatedResourcesGenerator\"},{\"kind\":1024,\"name\":\"metadataStrategy\",\"url\":\"classes/TemplatedResourcesGenerator.html#metadataStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"TemplatedResourcesGenerator\"},{\"kind\":1024,\"name\":\"store\",\"url\":\"classes/TemplatedResourcesGenerator.html#store\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"TemplatedResourcesGenerator\"},{\"kind\":2048,\"name\":\"generate\",\"url\":\"classes/TemplatedResourcesGenerator.html#generate\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"TemplatedResourcesGenerator\"},{\"kind\":2048,\"name\":\"processFolder\",\"url\":\"classes/TemplatedResourcesGenerator.html#processFolder\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"TemplatedResourcesGenerator\"},{\"kind\":2048,\"name\":\"toTemplateLink\",\"url\":\"classes/TemplatedResourcesGenerator.html#toTemplateLink\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"TemplatedResourcesGenerator\"},{\"kind\":2048,\"name\":\"groupLinks\",\"url\":\"classes/TemplatedResourcesGenerator.html#groupLinks\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"TemplatedResourcesGenerator\"},{\"kind\":2048,\"name\":\"generateResource\",\"url\":\"classes/TemplatedResourcesGenerator.html#generateResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"TemplatedResourcesGenerator\"},{\"kind\":2048,\"name\":\"generateMetadata\",\"url\":\"classes/TemplatedResourcesGenerator.html#generateMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"TemplatedResourcesGenerator\"},{\"kind\":2048,\"name\":\"processFile\",\"url\":\"classes/TemplatedResourcesGenerator.html#processFile\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"TemplatedResourcesGenerator\"},{\"kind\":256,\"name\":\"PodSettings\",\"url\":\"interfaces/PodSettings.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"webId\",\"url\":\"interfaces/PodSettings.html#webId\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PodSettings\"},{\"kind\":1024,\"name\":\"template\",\"url\":\"interfaces/PodSettings.html#template\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PodSettings\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"interfaces/PodSettings.html#name\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PodSettings\"},{\"kind\":1024,\"name\":\"email\",\"url\":\"interfaces/PodSettings.html#email\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PodSettings\"},{\"kind\":1024,\"name\":\"oidcIssuer\",\"url\":\"interfaces/PodSettings.html#oidcIssuer\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PodSettings\"},{\"kind\":128,\"name\":\"ConfigPodManager\",\"url\":\"classes/ConfigPodManager.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ConfigPodManager.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ConfigPodManager\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/ConfigPodManager.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"ConfigPodManager\"},{\"kind\":1024,\"name\":\"podGenerator\",\"url\":\"classes/ConfigPodManager.html#podGenerator\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConfigPodManager\"},{\"kind\":1024,\"name\":\"routingStorage\",\"url\":\"classes/ConfigPodManager.html#routingStorage\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConfigPodManager\"},{\"kind\":1024,\"name\":\"resourcesGenerator\",\"url\":\"classes/ConfigPodManager.html#resourcesGenerator\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConfigPodManager\"},{\"kind\":1024,\"name\":\"store\",\"url\":\"classes/ConfigPodManager.html#store\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConfigPodManager\"},{\"kind\":2048,\"name\":\"createPod\",\"url\":\"classes/ConfigPodManager.html#createPod\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ConfigPodManager\"},{\"kind\":128,\"name\":\"GeneratedPodManager\",\"url\":\"classes/GeneratedPodManager.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/GeneratedPodManager.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"GeneratedPodManager\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/GeneratedPodManager.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"GeneratedPodManager\"},{\"kind\":1024,\"name\":\"store\",\"url\":\"classes/GeneratedPodManager.html#store\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"GeneratedPodManager\"},{\"kind\":1024,\"name\":\"resourcesGenerator\",\"url\":\"classes/GeneratedPodManager.html#resourcesGenerator\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"GeneratedPodManager\"},{\"kind\":2048,\"name\":\"createPod\",\"url\":\"classes/GeneratedPodManager.html#createPod\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"GeneratedPodManager\"},{\"kind\":256,\"name\":\"PodManager\",\"url\":\"interfaces/PodManager.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"createPod\",\"url\":\"interfaces/PodManager.html#createPod\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"PodManager\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/PodManager.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"PodManager\"},{\"kind\":256,\"name\":\"AuthorizingHttpHandlerArgs\",\"url\":\"interfaces/AuthorizingHttpHandlerArgs.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"credentialsExtractor\",\"url\":\"interfaces/AuthorizingHttpHandlerArgs.html#credentialsExtractor\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AuthorizingHttpHandlerArgs\"},{\"kind\":1024,\"name\":\"modesExtractor\",\"url\":\"interfaces/AuthorizingHttpHandlerArgs.html#modesExtractor\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AuthorizingHttpHandlerArgs\"},{\"kind\":1024,\"name\":\"permissionReader\",\"url\":\"interfaces/AuthorizingHttpHandlerArgs.html#permissionReader\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AuthorizingHttpHandlerArgs\"},{\"kind\":1024,\"name\":\"authorizer\",\"url\":\"interfaces/AuthorizingHttpHandlerArgs.html#authorizer\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AuthorizingHttpHandlerArgs\"},{\"kind\":1024,\"name\":\"operationHandler\",\"url\":\"interfaces/AuthorizingHttpHandlerArgs.html#operationHandler\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AuthorizingHttpHandlerArgs\"},{\"kind\":128,\"name\":\"AuthorizingHttpHandler\",\"url\":\"classes/AuthorizingHttpHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/AuthorizingHttpHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"AuthorizingHttpHandler\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/AuthorizingHttpHandler.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"AuthorizingHttpHandler\"},{\"kind\":1024,\"name\":\"credentialsExtractor\",\"url\":\"classes/AuthorizingHttpHandler.html#credentialsExtractor\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"AuthorizingHttpHandler\"},{\"kind\":1024,\"name\":\"modesExtractor\",\"url\":\"classes/AuthorizingHttpHandler.html#modesExtractor\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"AuthorizingHttpHandler\"},{\"kind\":1024,\"name\":\"permissionReader\",\"url\":\"classes/AuthorizingHttpHandler.html#permissionReader\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"AuthorizingHttpHandler\"},{\"kind\":1024,\"name\":\"authorizer\",\"url\":\"classes/AuthorizingHttpHandler.html#authorizer\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"AuthorizingHttpHandler\"},{\"kind\":1024,\"name\":\"operationHandler\",\"url\":\"classes/AuthorizingHttpHandler.html#operationHandler\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"AuthorizingHttpHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/AuthorizingHttpHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"AuthorizingHttpHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/AuthorizingHttpHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AuthorizingHttpHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/AuthorizingHttpHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AuthorizingHttpHandler\"},{\"kind\":256,\"name\":\"BaseHttpServerOptions\",\"url\":\"interfaces/BaseHttpServerOptions.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"https\",\"url\":\"interfaces/BaseHttpServerOptions.html#https\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BaseHttpServerOptions\"},{\"kind\":1024,\"name\":\"showStackTrace\",\"url\":\"interfaces/BaseHttpServerOptions.html#showStackTrace\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BaseHttpServerOptions\"},{\"kind\":1024,\"name\":\"key\",\"url\":\"interfaces/BaseHttpServerOptions.html#key\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BaseHttpServerOptions\"},{\"kind\":1024,\"name\":\"cert\",\"url\":\"interfaces/BaseHttpServerOptions.html#cert\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BaseHttpServerOptions\"},{\"kind\":1024,\"name\":\"pfx\",\"url\":\"interfaces/BaseHttpServerOptions.html#pfx\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BaseHttpServerOptions\"},{\"kind\":1024,\"name\":\"passphrase\",\"url\":\"interfaces/BaseHttpServerOptions.html#passphrase\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BaseHttpServerOptions\"},{\"kind\":128,\"name\":\"BaseHttpServerFactory\",\"url\":\"classes/BaseHttpServerFactory.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/BaseHttpServerFactory.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"BaseHttpServerFactory\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/BaseHttpServerFactory.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"BaseHttpServerFactory\"},{\"kind\":1024,\"name\":\"handler\",\"url\":\"classes/BaseHttpServerFactory.html#handler\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BaseHttpServerFactory\"},{\"kind\":1024,\"name\":\"options\",\"url\":\"classes/BaseHttpServerFactory.html#options\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BaseHttpServerFactory\"},{\"kind\":2048,\"name\":\"startServer\",\"url\":\"classes/BaseHttpServerFactory.html#startServer\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseHttpServerFactory\"},{\"kind\":2048,\"name\":\"createServerOptions\",\"url\":\"classes/BaseHttpServerFactory.html#createServerOptions\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"BaseHttpServerFactory\"},{\"kind\":256,\"name\":\"HttpHandlerInput\",\"url\":\"interfaces/HttpHandlerInput.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"request\",\"url\":\"interfaces/HttpHandlerInput.html#request\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"HttpHandlerInput\"},{\"kind\":1024,\"name\":\"response\",\"url\":\"interfaces/HttpHandlerInput.html#response\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"HttpHandlerInput\"},{\"kind\":128,\"name\":\"HttpHandler\",\"url\":\"classes/HttpHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/HttpHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"HttpHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/HttpHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"HttpHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/HttpHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"HttpHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/HttpHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"HttpHandler\"},{\"kind\":64,\"name\":\"isHttpRequest\",\"url\":\"functions/isHttpRequest.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":4194304,\"name\":\"HttpRequest\",\"url\":\"types/HttpRequest.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"HttpResponse\",\"url\":\"types/HttpResponse.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":256,\"name\":\"HttpServerFactory\",\"url\":\"interfaces/HttpServerFactory.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"startServer\",\"url\":\"interfaces/HttpServerFactory.html#startServer\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"HttpServerFactory\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/HttpServerFactory.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"HttpServerFactory\"},{\"kind\":256,\"name\":\"OperationHttpHandlerInput\",\"url\":\"interfaces/OperationHttpHandlerInput.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"operation\",\"url\":\"interfaces/OperationHttpHandlerInput.html#operation\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"OperationHttpHandlerInput\"},{\"kind\":1024,\"name\":\"request\",\"url\":\"interfaces/OperationHttpHandlerInput.html#request\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OperationHttpHandlerInput\"},{\"kind\":1024,\"name\":\"response\",\"url\":\"interfaces/OperationHttpHandlerInput.html#response\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"OperationHttpHandlerInput\"},{\"kind\":128,\"name\":\"OperationHttpHandler\",\"url\":\"classes/OperationHttpHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/OperationHttpHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OperationHttpHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/OperationHttpHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OperationHttpHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/OperationHttpHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OperationHttpHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/OperationHttpHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"OperationHttpHandler\"},{\"kind\":256,\"name\":\"ParsingHttpHandlerArgs\",\"url\":\"interfaces/ParsingHttpHandlerArgs.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"requestParser\",\"url\":\"interfaces/ParsingHttpHandlerArgs.html#requestParser\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ParsingHttpHandlerArgs\"},{\"kind\":1024,\"name\":\"metadataCollector\",\"url\":\"interfaces/ParsingHttpHandlerArgs.html#metadataCollector\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ParsingHttpHandlerArgs\"},{\"kind\":1024,\"name\":\"errorHandler\",\"url\":\"interfaces/ParsingHttpHandlerArgs.html#errorHandler\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ParsingHttpHandlerArgs\"},{\"kind\":1024,\"name\":\"responseWriter\",\"url\":\"interfaces/ParsingHttpHandlerArgs.html#responseWriter\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ParsingHttpHandlerArgs\"},{\"kind\":1024,\"name\":\"operationHandler\",\"url\":\"interfaces/ParsingHttpHandlerArgs.html#operationHandler\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ParsingHttpHandlerArgs\"},{\"kind\":128,\"name\":\"ParsingHttpHandler\",\"url\":\"classes/ParsingHttpHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ParsingHttpHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ParsingHttpHandler\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/ParsingHttpHandler.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ParsingHttpHandler\"},{\"kind\":1024,\"name\":\"requestParser\",\"url\":\"classes/ParsingHttpHandler.html#requestParser\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ParsingHttpHandler\"},{\"kind\":1024,\"name\":\"errorHandler\",\"url\":\"classes/ParsingHttpHandler.html#errorHandler\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ParsingHttpHandler\"},{\"kind\":1024,\"name\":\"responseWriter\",\"url\":\"classes/ParsingHttpHandler.html#responseWriter\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ParsingHttpHandler\"},{\"kind\":1024,\"name\":\"metadataCollector\",\"url\":\"classes/ParsingHttpHandler.html#metadataCollector\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ParsingHttpHandler\"},{\"kind\":1024,\"name\":\"operationHandler\",\"url\":\"classes/ParsingHttpHandler.html#operationHandler\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ParsingHttpHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ParsingHttpHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ParsingHttpHandler\"},{\"kind\":2048,\"name\":\"handleRequest\",\"url\":\"classes/ParsingHttpHandler.html#handleRequest\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"ParsingHttpHandler\"},{\"kind\":2048,\"name\":\"handleError\",\"url\":\"classes/ParsingHttpHandler.html#handleError\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"ParsingHttpHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ParsingHttpHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ParsingHttpHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ParsingHttpHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ParsingHttpHandler\"},{\"kind\":128,\"name\":\"WebSocketHandler\",\"url\":\"classes/WebSocketHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/WebSocketHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WebSocketHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/WebSocketHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WebSocketHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/WebSocketHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WebSocketHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/WebSocketHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WebSocketHandler\"},{\"kind\":128,\"name\":\"WebSocketServerFactory\",\"url\":\"classes/WebSocketServerFactory.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/WebSocketServerFactory.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"WebSocketServerFactory\"},{\"kind\":1024,\"name\":\"baseServerFactory\",\"url\":\"classes/WebSocketServerFactory.html#baseServerFactory\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"WebSocketServerFactory\"},{\"kind\":1024,\"name\":\"webSocketHandler\",\"url\":\"classes/WebSocketServerFactory.html#webSocketHandler\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"WebSocketServerFactory\"},{\"kind\":2048,\"name\":\"startServer\",\"url\":\"classes/WebSocketServerFactory.html#startServer\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WebSocketServerFactory\"},{\"kind\":128,\"name\":\"CorsHandler\",\"url\":\"classes/CorsHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/CorsHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"CorsHandler\"},{\"kind\":1024,\"name\":\"corsHandler\",\"url\":\"classes/CorsHandler.html#corsHandler\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"CorsHandler\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/CorsHandler.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"CorsHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/CorsHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"CorsHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/CorsHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"CorsHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/CorsHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"CorsHandler\"},{\"kind\":128,\"name\":\"HeaderHandler\",\"url\":\"classes/HeaderHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/HeaderHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"HeaderHandler\"},{\"kind\":1024,\"name\":\"headers\",\"url\":\"classes/HeaderHandler.html#headers\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"HeaderHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/HeaderHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"HeaderHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/HeaderHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"HeaderHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/HeaderHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"HeaderHandler\"},{\"kind\":128,\"name\":\"StaticAssetHandler\",\"url\":\"classes/StaticAssetHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/StaticAssetHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"StaticAssetHandler\"},{\"kind\":1024,\"name\":\"mappings\",\"url\":\"classes/StaticAssetHandler.html#mappings\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"StaticAssetHandler\"},{\"kind\":1024,\"name\":\"pathMatcher\",\"url\":\"classes/StaticAssetHandler.html#pathMatcher\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"StaticAssetHandler\"},{\"kind\":1024,\"name\":\"expires\",\"url\":\"classes/StaticAssetHandler.html#expires\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"StaticAssetHandler\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/StaticAssetHandler.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"StaticAssetHandler\"},{\"kind\":2048,\"name\":\"createPathMatcher\",\"url\":\"classes/StaticAssetHandler.html#createPathMatcher\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"StaticAssetHandler\"},{\"kind\":2048,\"name\":\"getFilePath\",\"url\":\"classes/StaticAssetHandler.html#getFilePath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"StaticAssetHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/StaticAssetHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"StaticAssetHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/StaticAssetHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"StaticAssetHandler\"},{\"kind\":2048,\"name\":\"getCacheHeaders\",\"url\":\"classes/StaticAssetHandler.html#getCacheHeaders\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"StaticAssetHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/StaticAssetHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"StaticAssetHandler\"},{\"kind\":128,\"name\":\"WebSocketAdvertiser\",\"url\":\"classes/WebSocketAdvertiser.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/WebSocketAdvertiser.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"WebSocketAdvertiser\"},{\"kind\":1024,\"name\":\"socketUrl\",\"url\":\"classes/WebSocketAdvertiser.html#socketUrl\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"WebSocketAdvertiser\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/WebSocketAdvertiser.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WebSocketAdvertiser\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/WebSocketAdvertiser.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WebSocketAdvertiser\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/WebSocketAdvertiser.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"WebSocketAdvertiser\"},{\"kind\":128,\"name\":\"RedirectingHttpHandler\",\"url\":\"classes/RedirectingHttpHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RedirectingHttpHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"RedirectingHttpHandler\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/RedirectingHttpHandler.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RedirectingHttpHandler\"},{\"kind\":1024,\"name\":\"redirects\",\"url\":\"classes/RedirectingHttpHandler.html#redirects\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RedirectingHttpHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/RedirectingHttpHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RedirectingHttpHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/RedirectingHttpHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RedirectingHttpHandler\"},{\"kind\":2048,\"name\":\"findRedirect\",\"url\":\"classes/RedirectingHttpHandler.html#findRedirect\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"RedirectingHttpHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/RedirectingHttpHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RedirectingHttpHandler\"},{\"kind\":256,\"name\":\"RouterHandlerArgs\",\"url\":\"interfaces/RouterHandlerArgs.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"baseUrl\",\"url\":\"interfaces/RouterHandlerArgs.html#baseUrl\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RouterHandlerArgs\"},{\"kind\":1024,\"name\":\"targetExtractor\",\"url\":\"interfaces/RouterHandlerArgs.html#targetExtractor\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RouterHandlerArgs\"},{\"kind\":1024,\"name\":\"handler\",\"url\":\"interfaces/RouterHandlerArgs.html#handler\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RouterHandlerArgs\"},{\"kind\":1024,\"name\":\"allowedMethods\",\"url\":\"interfaces/RouterHandlerArgs.html#allowedMethods\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RouterHandlerArgs\"},{\"kind\":1024,\"name\":\"allowedPathNames\",\"url\":\"interfaces/RouterHandlerArgs.html#allowedPathNames\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RouterHandlerArgs\"},{\"kind\":128,\"name\":\"RouterHandler\",\"url\":\"classes/RouterHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RouterHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"RouterHandler\"},{\"kind\":1024,\"name\":\"baseUrl\",\"url\":\"classes/RouterHandler.html#baseUrl\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RouterHandler\"},{\"kind\":1024,\"name\":\"targetExtractor\",\"url\":\"classes/RouterHandler.html#targetExtractor\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RouterHandler\"},{\"kind\":1024,\"name\":\"handler\",\"url\":\"classes/RouterHandler.html#handler\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RouterHandler\"},{\"kind\":1024,\"name\":\"allowedMethods\",\"url\":\"classes/RouterHandler.html#allowedMethods\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RouterHandler\"},{\"kind\":1024,\"name\":\"allMethods\",\"url\":\"classes/RouterHandler.html#allMethods\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RouterHandler\"},{\"kind\":1024,\"name\":\"allowedPathNamesRegEx\",\"url\":\"classes/RouterHandler.html#allowedPathNamesRegEx\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RouterHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/RouterHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RouterHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/RouterHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RouterHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/RouterHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RouterHandler\"},{\"kind\":256,\"name\":\"AtomicDataAccessor\",\"url\":\"interfaces/AtomicDataAccessor.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"canHandle\",\"url\":\"interfaces/AtomicDataAccessor.html#canHandle\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AtomicDataAccessor\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AtomicDataAccessor.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AtomicDataAccessor\"},{\"kind\":1024,\"name\":\"getData\",\"url\":\"interfaces/AtomicDataAccessor.html#getData\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AtomicDataAccessor\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AtomicDataAccessor.html#__type-6\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AtomicDataAccessor\"},{\"kind\":1024,\"name\":\"getMetadata\",\"url\":\"interfaces/AtomicDataAccessor.html#getMetadata\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AtomicDataAccessor\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AtomicDataAccessor.html#__type-8\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AtomicDataAccessor\"},{\"kind\":1024,\"name\":\"getChildren\",\"url\":\"interfaces/AtomicDataAccessor.html#getChildren\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AtomicDataAccessor\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AtomicDataAccessor.html#__type-4\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AtomicDataAccessor\"},{\"kind\":1024,\"name\":\"writeDocument\",\"url\":\"interfaces/AtomicDataAccessor.html#writeDocument\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AtomicDataAccessor\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AtomicDataAccessor.html#__type-12\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AtomicDataAccessor\"},{\"kind\":1024,\"name\":\"writeContainer\",\"url\":\"interfaces/AtomicDataAccessor.html#writeContainer\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AtomicDataAccessor\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AtomicDataAccessor.html#__type-10\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AtomicDataAccessor\"},{\"kind\":1024,\"name\":\"writeMetadata\",\"url\":\"interfaces/AtomicDataAccessor.html#writeMetadata\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AtomicDataAccessor\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AtomicDataAccessor.html#__type-14\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AtomicDataAccessor\"},{\"kind\":1024,\"name\":\"deleteResource\",\"url\":\"interfaces/AtomicDataAccessor.html#deleteResource\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AtomicDataAccessor\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AtomicDataAccessor.html#__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AtomicDataAccessor\"},{\"kind\":128,\"name\":\"AtomicFileDataAccessor\",\"url\":\"classes/AtomicFileDataAccessor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/AtomicFileDataAccessor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"AtomicFileDataAccessor\"},{\"kind\":1024,\"name\":\"tempFilePath\",\"url\":\"classes/AtomicFileDataAccessor.html#tempFilePath\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"AtomicFileDataAccessor\"},{\"kind\":2048,\"name\":\"writeDocument\",\"url\":\"classes/AtomicFileDataAccessor.html#writeDocument\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"AtomicFileDataAccessor\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/AtomicFileDataAccessor.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"AtomicFileDataAccessor\"},{\"kind\":1024,\"name\":\"resourceMapper\",\"url\":\"classes/AtomicFileDataAccessor.html#resourceMapper\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"AtomicFileDataAccessor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/AtomicFileDataAccessor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AtomicFileDataAccessor\"},{\"kind\":2048,\"name\":\"getData\",\"url\":\"classes/AtomicFileDataAccessor.html#getData\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AtomicFileDataAccessor\"},{\"kind\":2048,\"name\":\"getMetadata\",\"url\":\"classes/AtomicFileDataAccessor.html#getMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AtomicFileDataAccessor\"},{\"kind\":2048,\"name\":\"getChildren\",\"url\":\"classes/AtomicFileDataAccessor.html#getChildren\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AtomicFileDataAccessor\"},{\"kind\":2048,\"name\":\"writeContainer\",\"url\":\"classes/AtomicFileDataAccessor.html#writeContainer\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AtomicFileDataAccessor\"},{\"kind\":2048,\"name\":\"writeMetadata\",\"url\":\"classes/AtomicFileDataAccessor.html#writeMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AtomicFileDataAccessor\"},{\"kind\":2048,\"name\":\"deleteResource\",\"url\":\"classes/AtomicFileDataAccessor.html#deleteResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"AtomicFileDataAccessor\"},{\"kind\":2048,\"name\":\"getStats\",\"url\":\"classes/AtomicFileDataAccessor.html#getStats\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"AtomicFileDataAccessor\"},{\"kind\":2048,\"name\":\"writeMetadataFile\",\"url\":\"classes/AtomicFileDataAccessor.html#writeMetadataFile\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"AtomicFileDataAccessor\"},{\"kind\":2048,\"name\":\"verifyExistingExtension\",\"url\":\"classes/AtomicFileDataAccessor.html#verifyExistingExtension\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"AtomicFileDataAccessor\"},{\"kind\":2048,\"name\":\"writeDataFile\",\"url\":\"classes/AtomicFileDataAccessor.html#writeDataFile\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"AtomicFileDataAccessor\"},{\"kind\":256,\"name\":\"DataAccessor\",\"url\":\"interfaces/DataAccessor.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"canHandle\",\"url\":\"interfaces/DataAccessor.html#canHandle\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"DataAccessor\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/DataAccessor.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"DataAccessor\"},{\"kind\":1024,\"name\":\"getData\",\"url\":\"interfaces/DataAccessor.html#getData\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"DataAccessor\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/DataAccessor.html#__type-6\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"DataAccessor\"},{\"kind\":1024,\"name\":\"getMetadata\",\"url\":\"interfaces/DataAccessor.html#getMetadata\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"DataAccessor\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/DataAccessor.html#__type-8\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"DataAccessor\"},{\"kind\":1024,\"name\":\"getChildren\",\"url\":\"interfaces/DataAccessor.html#getChildren\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"DataAccessor\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/DataAccessor.html#__type-4\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"DataAccessor\"},{\"kind\":1024,\"name\":\"writeDocument\",\"url\":\"interfaces/DataAccessor.html#writeDocument\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"DataAccessor\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/DataAccessor.html#__type-12\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"DataAccessor\"},{\"kind\":1024,\"name\":\"writeContainer\",\"url\":\"interfaces/DataAccessor.html#writeContainer\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"DataAccessor\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/DataAccessor.html#__type-10\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"DataAccessor\"},{\"kind\":1024,\"name\":\"writeMetadata\",\"url\":\"interfaces/DataAccessor.html#writeMetadata\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"DataAccessor\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/DataAccessor.html#__type-14\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"DataAccessor\"},{\"kind\":1024,\"name\":\"deleteResource\",\"url\":\"interfaces/DataAccessor.html#deleteResource\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"DataAccessor\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/DataAccessor.html#__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"DataAccessor\"},{\"kind\":128,\"name\":\"FileDataAccessor\",\"url\":\"classes/FileDataAccessor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/FileDataAccessor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"FileDataAccessor\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/FileDataAccessor.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"FileDataAccessor\"},{\"kind\":1024,\"name\":\"resourceMapper\",\"url\":\"classes/FileDataAccessor.html#resourceMapper\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"FileDataAccessor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/FileDataAccessor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"FileDataAccessor\"},{\"kind\":2048,\"name\":\"getData\",\"url\":\"classes/FileDataAccessor.html#getData\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"FileDataAccessor\"},{\"kind\":2048,\"name\":\"getMetadata\",\"url\":\"classes/FileDataAccessor.html#getMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"FileDataAccessor\"},{\"kind\":2048,\"name\":\"getChildren\",\"url\":\"classes/FileDataAccessor.html#getChildren\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"FileDataAccessor\"},{\"kind\":2048,\"name\":\"writeDocument\",\"url\":\"classes/FileDataAccessor.html#writeDocument\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"FileDataAccessor\"},{\"kind\":2048,\"name\":\"writeContainer\",\"url\":\"classes/FileDataAccessor.html#writeContainer\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"FileDataAccessor\"},{\"kind\":2048,\"name\":\"writeMetadata\",\"url\":\"classes/FileDataAccessor.html#writeMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"FileDataAccessor\"},{\"kind\":2048,\"name\":\"deleteResource\",\"url\":\"classes/FileDataAccessor.html#deleteResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"FileDataAccessor\"},{\"kind\":2048,\"name\":\"getStats\",\"url\":\"classes/FileDataAccessor.html#getStats\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"FileDataAccessor\"},{\"kind\":2048,\"name\":\"getFileMetadata\",\"url\":\"classes/FileDataAccessor.html#getFileMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"FileDataAccessor\"},{\"kind\":2048,\"name\":\"getDirectoryMetadata\",\"url\":\"classes/FileDataAccessor.html#getDirectoryMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"FileDataAccessor\"},{\"kind\":2048,\"name\":\"writeMetadataFile\",\"url\":\"classes/FileDataAccessor.html#writeMetadataFile\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"FileDataAccessor\"},{\"kind\":2048,\"name\":\"getBaseMetadata\",\"url\":\"classes/FileDataAccessor.html#getBaseMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"FileDataAccessor\"},{\"kind\":2048,\"name\":\"getRawMetadata\",\"url\":\"classes/FileDataAccessor.html#getRawMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"FileDataAccessor\"},{\"kind\":2048,\"name\":\"getChildMetadata\",\"url\":\"classes/FileDataAccessor.html#getChildMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"FileDataAccessor\"},{\"kind\":2048,\"name\":\"addPosixMetadata\",\"url\":\"classes/FileDataAccessor.html#addPosixMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"FileDataAccessor\"},{\"kind\":2048,\"name\":\"verifyExistingExtension\",\"url\":\"classes/FileDataAccessor.html#verifyExistingExtension\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"FileDataAccessor\"},{\"kind\":2048,\"name\":\"writeDataFile\",\"url\":\"classes/FileDataAccessor.html#writeDataFile\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"FileDataAccessor\"},{\"kind\":128,\"name\":\"FilterMetadataDataAccessor\",\"url\":\"classes/FilterMetadataDataAccessor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/FilterMetadataDataAccessor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"FilterMetadataDataAccessor\"},{\"kind\":1024,\"name\":\"filters\",\"url\":\"classes/FilterMetadataDataAccessor.html#filters\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"FilterMetadataDataAccessor\"},{\"kind\":2048,\"name\":\"writeDocument\",\"url\":\"classes/FilterMetadataDataAccessor.html#writeDocument\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"FilterMetadataDataAccessor\"},{\"kind\":2048,\"name\":\"writeContainer\",\"url\":\"classes/FilterMetadataDataAccessor.html#writeContainer\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"FilterMetadataDataAccessor\"},{\"kind\":2048,\"name\":\"applyFilters\",\"url\":\"classes/FilterMetadataDataAccessor.html#applyFilters\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"FilterMetadataDataAccessor\"},{\"kind\":1024,\"name\":\"accessor\",\"url\":\"classes/FilterMetadataDataAccessor.html#accessor\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"FilterMetadataDataAccessor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/FilterMetadataDataAccessor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"FilterMetadataDataAccessor\"},{\"kind\":2048,\"name\":\"getData\",\"url\":\"classes/FilterMetadataDataAccessor.html#getData\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"FilterMetadataDataAccessor\"},{\"kind\":2048,\"name\":\"getMetadata\",\"url\":\"classes/FilterMetadataDataAccessor.html#getMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"FilterMetadataDataAccessor\"},{\"kind\":2048,\"name\":\"writeMetadata\",\"url\":\"classes/FilterMetadataDataAccessor.html#writeMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"FilterMetadataDataAccessor\"},{\"kind\":2048,\"name\":\"getChildren\",\"url\":\"classes/FilterMetadataDataAccessor.html#getChildren\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"FilterMetadataDataAccessor\"},{\"kind\":2048,\"name\":\"deleteResource\",\"url\":\"classes/FilterMetadataDataAccessor.html#deleteResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"FilterMetadataDataAccessor\"},{\"kind\":128,\"name\":\"InMemoryDataAccessor\",\"url\":\"classes/InMemoryDataAccessor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/InMemoryDataAccessor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"InMemoryDataAccessor\"},{\"kind\":1024,\"name\":\"identifierStrategy\",\"url\":\"classes/InMemoryDataAccessor.html#identifierStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"InMemoryDataAccessor\"},{\"kind\":1024,\"name\":\"store\",\"url\":\"classes/InMemoryDataAccessor.html#store\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"InMemoryDataAccessor\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/InMemoryDataAccessor.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"InMemoryDataAccessor\"},{\"kind\":1024,\"name\":\"entries\",\"url\":\"classes/InMemoryDataAccessor.html#__type.entries\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"InMemoryDataAccessor.__type\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/InMemoryDataAccessor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"InMemoryDataAccessor\"},{\"kind\":2048,\"name\":\"getData\",\"url\":\"classes/InMemoryDataAccessor.html#getData\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"InMemoryDataAccessor\"},{\"kind\":2048,\"name\":\"getMetadata\",\"url\":\"classes/InMemoryDataAccessor.html#getMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"InMemoryDataAccessor\"},{\"kind\":2048,\"name\":\"getChildren\",\"url\":\"classes/InMemoryDataAccessor.html#getChildren\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"InMemoryDataAccessor\"},{\"kind\":2048,\"name\":\"writeDocument\",\"url\":\"classes/InMemoryDataAccessor.html#writeDocument\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"InMemoryDataAccessor\"},{\"kind\":2048,\"name\":\"writeContainer\",\"url\":\"classes/InMemoryDataAccessor.html#writeContainer\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"InMemoryDataAccessor\"},{\"kind\":2048,\"name\":\"writeMetadata\",\"url\":\"classes/InMemoryDataAccessor.html#writeMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"InMemoryDataAccessor\"},{\"kind\":2048,\"name\":\"deleteResource\",\"url\":\"classes/InMemoryDataAccessor.html#deleteResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"InMemoryDataAccessor\"},{\"kind\":2048,\"name\":\"isDataEntry\",\"url\":\"classes/InMemoryDataAccessor.html#isDataEntry\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"InMemoryDataAccessor\"},{\"kind\":2048,\"name\":\"getHierarchy\",\"url\":\"classes/InMemoryDataAccessor.html#getHierarchy\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"InMemoryDataAccessor\"},{\"kind\":2048,\"name\":\"getParentEntry\",\"url\":\"classes/InMemoryDataAccessor.html#getParentEntry\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"InMemoryDataAccessor\"},{\"kind\":2048,\"name\":\"getEntry\",\"url\":\"classes/InMemoryDataAccessor.html#getEntry\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"InMemoryDataAccessor\"},{\"kind\":128,\"name\":\"PassthroughDataAccessor\",\"url\":\"classes/PassthroughDataAccessor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/PassthroughDataAccessor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"PassthroughDataAccessor\"},{\"kind\":1024,\"name\":\"accessor\",\"url\":\"classes/PassthroughDataAccessor.html#accessor\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"PassthroughDataAccessor\"},{\"kind\":2048,\"name\":\"writeDocument\",\"url\":\"classes/PassthroughDataAccessor.html#writeDocument\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PassthroughDataAccessor\"},{\"kind\":2048,\"name\":\"writeContainer\",\"url\":\"classes/PassthroughDataAccessor.html#writeContainer\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PassthroughDataAccessor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/PassthroughDataAccessor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PassthroughDataAccessor\"},{\"kind\":2048,\"name\":\"getData\",\"url\":\"classes/PassthroughDataAccessor.html#getData\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PassthroughDataAccessor\"},{\"kind\":2048,\"name\":\"getMetadata\",\"url\":\"classes/PassthroughDataAccessor.html#getMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PassthroughDataAccessor\"},{\"kind\":2048,\"name\":\"writeMetadata\",\"url\":\"classes/PassthroughDataAccessor.html#writeMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PassthroughDataAccessor\"},{\"kind\":2048,\"name\":\"getChildren\",\"url\":\"classes/PassthroughDataAccessor.html#getChildren\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PassthroughDataAccessor\"},{\"kind\":2048,\"name\":\"deleteResource\",\"url\":\"classes/PassthroughDataAccessor.html#deleteResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PassthroughDataAccessor\"},{\"kind\":128,\"name\":\"SparqlDataAccessor\",\"url\":\"classes/SparqlDataAccessor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/SparqlDataAccessor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/SparqlDataAccessor.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":1024,\"name\":\"endpoint\",\"url\":\"classes/SparqlDataAccessor.html#endpoint\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":1024,\"name\":\"identifierStrategy\",\"url\":\"classes/SparqlDataAccessor.html#identifierStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":1024,\"name\":\"fetcher\",\"url\":\"classes/SparqlDataAccessor.html#fetcher\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":1024,\"name\":\"generator\",\"url\":\"classes/SparqlDataAccessor.html#generator\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/SparqlDataAccessor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":2048,\"name\":\"getData\",\"url\":\"classes/SparqlDataAccessor.html#getData\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":2048,\"name\":\"getMetadata\",\"url\":\"classes/SparqlDataAccessor.html#getMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":2048,\"name\":\"getChildren\",\"url\":\"classes/SparqlDataAccessor.html#getChildren\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":2048,\"name\":\"writeContainer\",\"url\":\"classes/SparqlDataAccessor.html#writeContainer\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":2048,\"name\":\"writeDocument\",\"url\":\"classes/SparqlDataAccessor.html#writeDocument\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":2048,\"name\":\"writeMetadata\",\"url\":\"classes/SparqlDataAccessor.html#writeMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":2048,\"name\":\"deleteResource\",\"url\":\"classes/SparqlDataAccessor.html#deleteResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":2048,\"name\":\"getRelatedNames\",\"url\":\"classes/SparqlDataAccessor.html#getRelatedNames\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/SparqlDataAccessor.html#getRelatedNames.getRelatedNames-1.__type\",\"classes\":\"tsd-kind-type-literal\",\"parent\":\"SparqlDataAccessor.getRelatedNames.getRelatedNames\"},{\"kind\":1024,\"name\":\"name\",\"url\":\"classes/SparqlDataAccessor.html#getRelatedNames.getRelatedNames-1.__type.name\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SparqlDataAccessor.getRelatedNames.getRelatedNames.__type\"},{\"kind\":1024,\"name\":\"parent\",\"url\":\"classes/SparqlDataAccessor.html#getRelatedNames.getRelatedNames-1.__type.parent\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SparqlDataAccessor.getRelatedNames.getRelatedNames.__type\"},{\"kind\":2048,\"name\":\"getMetadataNode\",\"url\":\"classes/SparqlDataAccessor.html#getMetadataNode\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":2048,\"name\":\"isMetadataIdentifier\",\"url\":\"classes/SparqlDataAccessor.html#isMetadataIdentifier\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":2048,\"name\":\"sparqlConstruct\",\"url\":\"classes/SparqlDataAccessor.html#sparqlConstruct\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":2048,\"name\":\"sparqlSelectGraph\",\"url\":\"classes/SparqlDataAccessor.html#sparqlSelectGraph\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":2048,\"name\":\"sparqlInsert\",\"url\":\"classes/SparqlDataAccessor.html#sparqlInsert\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":2048,\"name\":\"sparqlInsertMetadata\",\"url\":\"classes/SparqlDataAccessor.html#sparqlInsertMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":2048,\"name\":\"sparqlDelete\",\"url\":\"classes/SparqlDataAccessor.html#sparqlDelete\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":2048,\"name\":\"sparqlUpdateDeleteAll\",\"url\":\"classes/SparqlDataAccessor.html#sparqlUpdateDeleteAll\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":2048,\"name\":\"sparqlUpdateGraph\",\"url\":\"classes/SparqlDataAccessor.html#sparqlUpdateGraph\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":2048,\"name\":\"sendSparqlConstruct\",\"url\":\"classes/SparqlDataAccessor.html#sendSparqlConstruct\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":2048,\"name\":\"sendSparqlUpdate\",\"url\":\"classes/SparqlDataAccessor.html#sendSparqlUpdate\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlDataAccessor\"},{\"kind\":128,\"name\":\"ValidatingDataAccessor\",\"url\":\"classes/ValidatingDataAccessor.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ValidatingDataAccessor.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ValidatingDataAccessor\"},{\"kind\":1024,\"name\":\"validator\",\"url\":\"classes/ValidatingDataAccessor.html#validator\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ValidatingDataAccessor\"},{\"kind\":2048,\"name\":\"writeDocument\",\"url\":\"classes/ValidatingDataAccessor.html#writeDocument\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ValidatingDataAccessor\"},{\"kind\":2048,\"name\":\"writeContainer\",\"url\":\"classes/ValidatingDataAccessor.html#writeContainer\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ValidatingDataAccessor\"},{\"kind\":1024,\"name\":\"accessor\",\"url\":\"classes/ValidatingDataAccessor.html#accessor\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ValidatingDataAccessor\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ValidatingDataAccessor.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ValidatingDataAccessor\"},{\"kind\":2048,\"name\":\"getData\",\"url\":\"classes/ValidatingDataAccessor.html#getData\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ValidatingDataAccessor\"},{\"kind\":2048,\"name\":\"getMetadata\",\"url\":\"classes/ValidatingDataAccessor.html#getMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ValidatingDataAccessor\"},{\"kind\":2048,\"name\":\"writeMetadata\",\"url\":\"classes/ValidatingDataAccessor.html#writeMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ValidatingDataAccessor\"},{\"kind\":2048,\"name\":\"getChildren\",\"url\":\"classes/ValidatingDataAccessor.html#getChildren\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ValidatingDataAccessor\"},{\"kind\":2048,\"name\":\"deleteResource\",\"url\":\"classes/ValidatingDataAccessor.html#deleteResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ValidatingDataAccessor\"},{\"kind\":128,\"name\":\"BaseTypedRepresentationConverter\",\"url\":\"classes/BaseTypedRepresentationConverter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/BaseTypedRepresentationConverter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"BaseTypedRepresentationConverter\"},{\"kind\":1024,\"name\":\"inputTypes\",\"url\":\"classes/BaseTypedRepresentationConverter.html#inputTypes\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"BaseTypedRepresentationConverter\"},{\"kind\":1024,\"name\":\"outputTypes\",\"url\":\"classes/BaseTypedRepresentationConverter.html#outputTypes\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"BaseTypedRepresentationConverter\"},{\"kind\":2048,\"name\":\"getOutputTypes\",\"url\":\"classes/BaseTypedRepresentationConverter.html#getOutputTypes\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseTypedRepresentationConverter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/BaseTypedRepresentationConverter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseTypedRepresentationConverter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/BaseTypedRepresentationConverter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BaseTypedRepresentationConverter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/BaseTypedRepresentationConverter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BaseTypedRepresentationConverter\"},{\"kind\":128,\"name\":\"ChainedConverter\",\"url\":\"classes/ChainedConverter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ChainedConverter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ChainedConverter\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/ChainedConverter.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"ChainedConverter\"},{\"kind\":1024,\"name\":\"converters\",\"url\":\"classes/ChainedConverter.html#converters\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ChainedConverter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ChainedConverter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ChainedConverter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ChainedConverter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ChainedConverter\"},{\"kind\":2048,\"name\":\"findPath\",\"url\":\"classes/ChainedConverter.html#findPath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ChainedConverter\"},{\"kind\":2048,\"name\":\"generatePath\",\"url\":\"classes/ChainedConverter.html#generatePath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ChainedConverter\"},{\"kind\":2048,\"name\":\"updatePathWeights\",\"url\":\"classes/ChainedConverter.html#updatePathWeights\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ChainedConverter\"},{\"kind\":2048,\"name\":\"findBest\",\"url\":\"classes/ChainedConverter.html#findBest\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ChainedConverter\"},{\"kind\":2048,\"name\":\"removeBadPaths\",\"url\":\"classes/ChainedConverter.html#removeBadPaths\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ChainedConverter\"},{\"kind\":2048,\"name\":\"takeStep\",\"url\":\"classes/ChainedConverter.html#takeStep\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ChainedConverter\"},{\"kind\":2048,\"name\":\"modifyTypeWeights\",\"url\":\"classes/ChainedConverter.html#modifyTypeWeights\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ChainedConverter\"},{\"kind\":2048,\"name\":\"supportedConverters\",\"url\":\"classes/ChainedConverter.html#supportedConverters\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ChainedConverter\"},{\"kind\":2048,\"name\":\"findConverterPreference\",\"url\":\"classes/ChainedConverter.html#findConverterPreference\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ChainedConverter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ChainedConverter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ChainedConverter\"},{\"kind\":256,\"name\":\"ConstantConverterOptions\",\"url\":\"interfaces/ConstantConverterOptions.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"container\",\"url\":\"interfaces/ConstantConverterOptions.html#container\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ConstantConverterOptions\"},{\"kind\":1024,\"name\":\"document\",\"url\":\"interfaces/ConstantConverterOptions.html#document\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ConstantConverterOptions\"},{\"kind\":1024,\"name\":\"minQuality\",\"url\":\"interfaces/ConstantConverterOptions.html#minQuality\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ConstantConverterOptions\"},{\"kind\":1024,\"name\":\"enabledMediaRanges\",\"url\":\"interfaces/ConstantConverterOptions.html#enabledMediaRanges\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ConstantConverterOptions\"},{\"kind\":1024,\"name\":\"disabledMediaRanges\",\"url\":\"interfaces/ConstantConverterOptions.html#disabledMediaRanges\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ConstantConverterOptions\"},{\"kind\":128,\"name\":\"ConstantConverter\",\"url\":\"classes/ConstantConverter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ConstantConverter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ConstantConverter\"},{\"kind\":1024,\"name\":\"filePath\",\"url\":\"classes/ConstantConverter.html#filePath\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConstantConverter\"},{\"kind\":1024,\"name\":\"contentType\",\"url\":\"classes/ConstantConverter.html#contentType\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConstantConverter\"},{\"kind\":1024,\"name\":\"options\",\"url\":\"classes/ConstantConverter.html#options\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConstantConverter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ConstantConverter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ConstantConverter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ConstantConverter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ConstantConverter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ConstantConverter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConstantConverter\"},{\"kind\":128,\"name\":\"ContainerToTemplateConverter\",\"url\":\"classes/ContainerToTemplateConverter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ContainerToTemplateConverter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ContainerToTemplateConverter\"},{\"kind\":1024,\"name\":\"identifierStrategy\",\"url\":\"classes/ContainerToTemplateConverter.html#identifierStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ContainerToTemplateConverter\"},{\"kind\":1024,\"name\":\"templateEngine\",\"url\":\"classes/ContainerToTemplateConverter.html#templateEngine\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ContainerToTemplateConverter\"},{\"kind\":1024,\"name\":\"contentType\",\"url\":\"classes/ContainerToTemplateConverter.html#contentType\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ContainerToTemplateConverter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ContainerToTemplateConverter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ContainerToTemplateConverter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ContainerToTemplateConverter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ContainerToTemplateConverter\"},{\"kind\":2048,\"name\":\"getChildResources\",\"url\":\"classes/ContainerToTemplateConverter.html#getChildResources\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ContainerToTemplateConverter\"},{\"kind\":2048,\"name\":\"getParentContainers\",\"url\":\"classes/ContainerToTemplateConverter.html#getParentContainers\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ContainerToTemplateConverter\"},{\"kind\":2048,\"name\":\"getLocalName\",\"url\":\"classes/ContainerToTemplateConverter.html#getLocalName\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ContainerToTemplateConverter\"},{\"kind\":1024,\"name\":\"inputTypes\",\"url\":\"classes/ContainerToTemplateConverter.html#inputTypes\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ContainerToTemplateConverter\"},{\"kind\":1024,\"name\":\"outputTypes\",\"url\":\"classes/ContainerToTemplateConverter.html#outputTypes\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ContainerToTemplateConverter\"},{\"kind\":2048,\"name\":\"getOutputTypes\",\"url\":\"classes/ContainerToTemplateConverter.html#getOutputTypes\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ContainerToTemplateConverter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ContainerToTemplateConverter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ContainerToTemplateConverter\"},{\"kind\":128,\"name\":\"ContentTypeReplacer\",\"url\":\"classes/ContentTypeReplacer.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ContentTypeReplacer.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ContentTypeReplacer\"},{\"kind\":1024,\"name\":\"contentTypeMap\",\"url\":\"classes/ContentTypeReplacer.html#contentTypeMap\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ContentTypeReplacer\"},{\"kind\":2048,\"name\":\"getOutputTypes\",\"url\":\"classes/ContentTypeReplacer.html#getOutputTypes\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ContentTypeReplacer\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ContentTypeReplacer.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ContentTypeReplacer\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ContentTypeReplacer.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ContentTypeReplacer\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ContentTypeReplacer.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ContentTypeReplacer\"},{\"kind\":2048,\"name\":\"getReplacementType\",\"url\":\"classes/ContentTypeReplacer.html#getReplacementType\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ContentTypeReplacer\"},{\"kind\":64,\"name\":\"cleanPreferences\",\"url\":\"functions/cleanPreferences.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"getTypeWeight\",\"url\":\"functions/getTypeWeight.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"getWeightedPreferences\",\"url\":\"functions/getWeightedPreferences.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"getBestPreference\",\"url\":\"functions/getBestPreference.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"getConversionTarget\",\"url\":\"functions/getConversionTarget.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"matchesMediaPreferences\",\"url\":\"functions/matchesMediaPreferences.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"matchesMediaType\",\"url\":\"functions/matchesMediaType.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"isInternalContentType\",\"url\":\"functions/isInternalContentType.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"preferencesToString\",\"url\":\"functions/preferencesToString.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":128,\"name\":\"DynamicJsonToTemplateConverter\",\"url\":\"classes/DynamicJsonToTemplateConverter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/DynamicJsonToTemplateConverter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"DynamicJsonToTemplateConverter\"},{\"kind\":1024,\"name\":\"templateEngine\",\"url\":\"classes/DynamicJsonToTemplateConverter.html#templateEngine\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"DynamicJsonToTemplateConverter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/DynamicJsonToTemplateConverter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"DynamicJsonToTemplateConverter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/DynamicJsonToTemplateConverter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"DynamicJsonToTemplateConverter\"},{\"kind\":2048,\"name\":\"constructTypeMap\",\"url\":\"classes/DynamicJsonToTemplateConverter.html#constructTypeMap\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"DynamicJsonToTemplateConverter\"},{\"kind\":2048,\"name\":\"findType\",\"url\":\"classes/DynamicJsonToTemplateConverter.html#findType\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"DynamicJsonToTemplateConverter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/DynamicJsonToTemplateConverter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"DynamicJsonToTemplateConverter\"},{\"kind\":128,\"name\":\"ErrorToJsonConverter\",\"url\":\"classes/ErrorToJsonConverter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ErrorToJsonConverter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ErrorToJsonConverter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ErrorToJsonConverter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ErrorToJsonConverter\"},{\"kind\":1024,\"name\":\"inputTypes\",\"url\":\"classes/ErrorToJsonConverter.html#inputTypes\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ErrorToJsonConverter\"},{\"kind\":1024,\"name\":\"outputTypes\",\"url\":\"classes/ErrorToJsonConverter.html#outputTypes\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ErrorToJsonConverter\"},{\"kind\":2048,\"name\":\"getOutputTypes\",\"url\":\"classes/ErrorToJsonConverter.html#getOutputTypes\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ErrorToJsonConverter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ErrorToJsonConverter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ErrorToJsonConverter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ErrorToJsonConverter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ErrorToJsonConverter\"},{\"kind\":128,\"name\":\"ErrorToQuadConverter\",\"url\":\"classes/ErrorToQuadConverter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ErrorToQuadConverter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ErrorToQuadConverter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ErrorToQuadConverter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ErrorToQuadConverter\"},{\"kind\":1024,\"name\":\"inputTypes\",\"url\":\"classes/ErrorToQuadConverter.html#inputTypes\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ErrorToQuadConverter\"},{\"kind\":1024,\"name\":\"outputTypes\",\"url\":\"classes/ErrorToQuadConverter.html#outputTypes\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ErrorToQuadConverter\"},{\"kind\":2048,\"name\":\"getOutputTypes\",\"url\":\"classes/ErrorToQuadConverter.html#getOutputTypes\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ErrorToQuadConverter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ErrorToQuadConverter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ErrorToQuadConverter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ErrorToQuadConverter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ErrorToQuadConverter\"},{\"kind\":256,\"name\":\"TemplateOptions\",\"url\":\"interfaces/TemplateOptions.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"mainTemplatePath\",\"url\":\"interfaces/TemplateOptions.html#mainTemplatePath\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TemplateOptions\"},{\"kind\":1024,\"name\":\"codeTemplatesPath\",\"url\":\"interfaces/TemplateOptions.html#codeTemplatesPath\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TemplateOptions\"},{\"kind\":1024,\"name\":\"extension\",\"url\":\"interfaces/TemplateOptions.html#extension\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TemplateOptions\"},{\"kind\":1024,\"name\":\"contentType\",\"url\":\"interfaces/TemplateOptions.html#contentType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TemplateOptions\"},{\"kind\":128,\"name\":\"ErrorToTemplateConverter\",\"url\":\"classes/ErrorToTemplateConverter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ErrorToTemplateConverter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ErrorToTemplateConverter\"},{\"kind\":1024,\"name\":\"templateEngine\",\"url\":\"classes/ErrorToTemplateConverter.html#templateEngine\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ErrorToTemplateConverter\"},{\"kind\":1024,\"name\":\"mainTemplatePath\",\"url\":\"classes/ErrorToTemplateConverter.html#mainTemplatePath\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ErrorToTemplateConverter\"},{\"kind\":1024,\"name\":\"codeTemplatesPath\",\"url\":\"classes/ErrorToTemplateConverter.html#codeTemplatesPath\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ErrorToTemplateConverter\"},{\"kind\":1024,\"name\":\"extension\",\"url\":\"classes/ErrorToTemplateConverter.html#extension\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ErrorToTemplateConverter\"},{\"kind\":1024,\"name\":\"contentType\",\"url\":\"classes/ErrorToTemplateConverter.html#contentType\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ErrorToTemplateConverter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ErrorToTemplateConverter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ErrorToTemplateConverter\"},{\"kind\":1024,\"name\":\"inputTypes\",\"url\":\"classes/ErrorToTemplateConverter.html#inputTypes\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ErrorToTemplateConverter\"},{\"kind\":1024,\"name\":\"outputTypes\",\"url\":\"classes/ErrorToTemplateConverter.html#outputTypes\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ErrorToTemplateConverter\"},{\"kind\":2048,\"name\":\"getOutputTypes\",\"url\":\"classes/ErrorToTemplateConverter.html#getOutputTypes\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ErrorToTemplateConverter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ErrorToTemplateConverter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ErrorToTemplateConverter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ErrorToTemplateConverter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ErrorToTemplateConverter\"},{\"kind\":128,\"name\":\"FormToJsonConverter\",\"url\":\"classes/FormToJsonConverter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/FormToJsonConverter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"FormToJsonConverter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/FormToJsonConverter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"FormToJsonConverter\"},{\"kind\":1024,\"name\":\"inputTypes\",\"url\":\"classes/FormToJsonConverter.html#inputTypes\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"FormToJsonConverter\"},{\"kind\":1024,\"name\":\"outputTypes\",\"url\":\"classes/FormToJsonConverter.html#outputTypes\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"FormToJsonConverter\"},{\"kind\":2048,\"name\":\"getOutputTypes\",\"url\":\"classes/FormToJsonConverter.html#getOutputTypes\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"FormToJsonConverter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/FormToJsonConverter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"FormToJsonConverter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/FormToJsonConverter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"FormToJsonConverter\"},{\"kind\":128,\"name\":\"MarkdownToHtmlConverter\",\"url\":\"classes/MarkdownToHtmlConverter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MarkdownToHtmlConverter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"MarkdownToHtmlConverter\"},{\"kind\":1024,\"name\":\"templateEngine\",\"url\":\"classes/MarkdownToHtmlConverter.html#templateEngine\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"MarkdownToHtmlConverter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/MarkdownToHtmlConverter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"MarkdownToHtmlConverter\"},{\"kind\":1024,\"name\":\"inputTypes\",\"url\":\"classes/MarkdownToHtmlConverter.html#inputTypes\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"MarkdownToHtmlConverter\"},{\"kind\":1024,\"name\":\"outputTypes\",\"url\":\"classes/MarkdownToHtmlConverter.html#outputTypes\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"MarkdownToHtmlConverter\"},{\"kind\":2048,\"name\":\"getOutputTypes\",\"url\":\"classes/MarkdownToHtmlConverter.html#getOutputTypes\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MarkdownToHtmlConverter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/MarkdownToHtmlConverter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MarkdownToHtmlConverter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/MarkdownToHtmlConverter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MarkdownToHtmlConverter\"},{\"kind\":128,\"name\":\"PassthroughConverter\",\"url\":\"classes/PassthroughConverter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/PassthroughConverter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PassthroughConverter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/PassthroughConverter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PassthroughConverter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/PassthroughConverter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PassthroughConverter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/PassthroughConverter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PassthroughConverter\"},{\"kind\":128,\"name\":\"QuadToRdfConverter\",\"url\":\"classes/QuadToRdfConverter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/QuadToRdfConverter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"QuadToRdfConverter\"},{\"kind\":1024,\"name\":\"outputPreferences\",\"url\":\"classes/QuadToRdfConverter.html#outputPreferences\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"QuadToRdfConverter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/QuadToRdfConverter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"QuadToRdfConverter\"},{\"kind\":1024,\"name\":\"inputTypes\",\"url\":\"classes/QuadToRdfConverter.html#inputTypes\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"QuadToRdfConverter\"},{\"kind\":1024,\"name\":\"outputTypes\",\"url\":\"classes/QuadToRdfConverter.html#outputTypes\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"QuadToRdfConverter\"},{\"kind\":2048,\"name\":\"getOutputTypes\",\"url\":\"classes/QuadToRdfConverter.html#getOutputTypes\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"QuadToRdfConverter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/QuadToRdfConverter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"QuadToRdfConverter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/QuadToRdfConverter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"QuadToRdfConverter\"},{\"kind\":128,\"name\":\"RdfToQuadConverter\",\"url\":\"classes/RdfToQuadConverter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RdfToQuadConverter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"RdfToQuadConverter\"},{\"kind\":1024,\"name\":\"documentLoader\",\"url\":\"classes/RdfToQuadConverter.html#documentLoader\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RdfToQuadConverter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/RdfToQuadConverter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RdfToQuadConverter\"},{\"kind\":1024,\"name\":\"inputTypes\",\"url\":\"classes/RdfToQuadConverter.html#inputTypes\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"RdfToQuadConverter\"},{\"kind\":1024,\"name\":\"outputTypes\",\"url\":\"classes/RdfToQuadConverter.html#outputTypes\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"RdfToQuadConverter\"},{\"kind\":2048,\"name\":\"getOutputTypes\",\"url\":\"classes/RdfToQuadConverter.html#getOutputTypes\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RdfToQuadConverter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/RdfToQuadConverter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RdfToQuadConverter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/RdfToQuadConverter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RdfToQuadConverter\"},{\"kind\":256,\"name\":\"RepresentationConverterArgs\",\"url\":\"interfaces/RepresentationConverterArgs.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"identifier\",\"url\":\"interfaces/RepresentationConverterArgs.html#identifier\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RepresentationConverterArgs\"},{\"kind\":1024,\"name\":\"representation\",\"url\":\"interfaces/RepresentationConverterArgs.html#representation\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RepresentationConverterArgs\"},{\"kind\":1024,\"name\":\"preferences\",\"url\":\"interfaces/RepresentationConverterArgs.html#preferences\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RepresentationConverterArgs\"},{\"kind\":128,\"name\":\"RepresentationConverter\",\"url\":\"classes/RepresentationConverter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RepresentationConverter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RepresentationConverter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/RepresentationConverter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RepresentationConverter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/RepresentationConverter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RepresentationConverter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/RepresentationConverter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RepresentationConverter\"},{\"kind\":128,\"name\":\"TypedRepresentationConverter\",\"url\":\"classes/TypedRepresentationConverter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/TypedRepresentationConverter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"TypedRepresentationConverter\"},{\"kind\":2048,\"name\":\"getOutputTypes\",\"url\":\"classes/TypedRepresentationConverter.html#getOutputTypes\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"TypedRepresentationConverter\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/TypedRepresentationConverter.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"TypedRepresentationConverter\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/TypedRepresentationConverter.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"TypedRepresentationConverter\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/TypedRepresentationConverter.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"TypedRepresentationConverter\"},{\"kind\":128,\"name\":\"EncodingPathStorage\",\"url\":\"classes/EncodingPathStorage.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/EncodingPathStorage.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"EncodingPathStorage\"},{\"kind\":1024,\"name\":\"basePath\",\"url\":\"classes/EncodingPathStorage.html#basePath\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"EncodingPathStorage\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/EncodingPathStorage.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"EncodingPathStorage\"},{\"kind\":2048,\"name\":\"get\",\"url\":\"classes/EncodingPathStorage.html#get\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EncodingPathStorage\"},{\"kind\":2048,\"name\":\"has\",\"url\":\"classes/EncodingPathStorage.html#has\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EncodingPathStorage\"},{\"kind\":2048,\"name\":\"set\",\"url\":\"classes/EncodingPathStorage.html#set\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EncodingPathStorage\"},{\"kind\":2048,\"name\":\"delete\",\"url\":\"classes/EncodingPathStorage.html#delete\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EncodingPathStorage\"},{\"kind\":2048,\"name\":\"entries\",\"url\":\"classes/EncodingPathStorage.html#entries\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EncodingPathStorage\"},{\"kind\":2048,\"name\":\"keyToPath\",\"url\":\"classes/EncodingPathStorage.html#keyToPath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"EncodingPathStorage\"},{\"kind\":2048,\"name\":\"pathToKey\",\"url\":\"classes/EncodingPathStorage.html#pathToKey\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"EncodingPathStorage\"},{\"kind\":256,\"name\":\"ExpiringStorage\",\"url\":\"interfaces/ExpiringStorage.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":2048,\"name\":\"set\",\"url\":\"interfaces/ExpiringStorage.html#set\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"ExpiringStorage\"},{\"kind\":1024,\"name\":\"get\",\"url\":\"interfaces/ExpiringStorage.html#get\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ExpiringStorage\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ExpiringStorage.html#__type-4\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"ExpiringStorage\"},{\"kind\":1024,\"name\":\"has\",\"url\":\"interfaces/ExpiringStorage.html#has\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ExpiringStorage\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ExpiringStorage.html#__type-6\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"ExpiringStorage\"},{\"kind\":1024,\"name\":\"delete\",\"url\":\"interfaces/ExpiringStorage.html#delete\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ExpiringStorage\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ExpiringStorage.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"ExpiringStorage\"},{\"kind\":1024,\"name\":\"entries\",\"url\":\"interfaces/ExpiringStorage.html#entries\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ExpiringStorage\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ExpiringStorage.html#__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"ExpiringStorage\"},{\"kind\":128,\"name\":\"JsonFileStorage\",\"url\":\"classes/JsonFileStorage.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/JsonFileStorage.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"JsonFileStorage\"},{\"kind\":1024,\"name\":\"filePath\",\"url\":\"classes/JsonFileStorage.html#filePath\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"JsonFileStorage\"},{\"kind\":1024,\"name\":\"locker\",\"url\":\"classes/JsonFileStorage.html#locker\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"JsonFileStorage\"},{\"kind\":1024,\"name\":\"lockIdentifier\",\"url\":\"classes/JsonFileStorage.html#lockIdentifier\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"JsonFileStorage\"},{\"kind\":2048,\"name\":\"get\",\"url\":\"classes/JsonFileStorage.html#get\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"JsonFileStorage\"},{\"kind\":2048,\"name\":\"has\",\"url\":\"classes/JsonFileStorage.html#has\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"JsonFileStorage\"},{\"kind\":2048,\"name\":\"set\",\"url\":\"classes/JsonFileStorage.html#set\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"JsonFileStorage\"},{\"kind\":2048,\"name\":\"delete\",\"url\":\"classes/JsonFileStorage.html#delete\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"JsonFileStorage\"},{\"kind\":2048,\"name\":\"entries\",\"url\":\"classes/JsonFileStorage.html#entries\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"JsonFileStorage\"},{\"kind\":2048,\"name\":\"getJsonSafely\",\"url\":\"classes/JsonFileStorage.html#getJsonSafely\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"JsonFileStorage\"},{\"kind\":2048,\"name\":\"updateJsonSafely\",\"url\":\"classes/JsonFileStorage.html#updateJsonSafely\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"JsonFileStorage\"},{\"kind\":2048,\"name\":\"getJson\",\"url\":\"classes/JsonFileStorage.html#getJson\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"JsonFileStorage\"},{\"kind\":128,\"name\":\"JsonResourceStorage\",\"url\":\"classes/JsonResourceStorage.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/JsonResourceStorage.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"JsonResourceStorage\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/JsonResourceStorage.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"JsonResourceStorage\"},{\"kind\":1024,\"name\":\"container\",\"url\":\"classes/JsonResourceStorage.html#container\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"JsonResourceStorage\"},{\"kind\":2048,\"name\":\"get\",\"url\":\"classes/JsonResourceStorage.html#get\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"JsonResourceStorage\"},{\"kind\":2048,\"name\":\"has\",\"url\":\"classes/JsonResourceStorage.html#has\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"JsonResourceStorage\"},{\"kind\":2048,\"name\":\"set\",\"url\":\"classes/JsonResourceStorage.html#set\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"JsonResourceStorage\"},{\"kind\":2048,\"name\":\"delete\",\"url\":\"classes/JsonResourceStorage.html#delete\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"JsonResourceStorage\"},{\"kind\":2048,\"name\":\"entries\",\"url\":\"classes/JsonResourceStorage.html#entries\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"JsonResourceStorage\"},{\"kind\":2048,\"name\":\"getResourceEntries\",\"url\":\"classes/JsonResourceStorage.html#getResourceEntries\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"JsonResourceStorage\"},{\"kind\":2048,\"name\":\"safelyGetResource\",\"url\":\"classes/JsonResourceStorage.html#safelyGetResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"JsonResourceStorage\"},{\"kind\":2048,\"name\":\"keyToIdentifier\",\"url\":\"classes/JsonResourceStorage.html#keyToIdentifier\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"JsonResourceStorage\"},{\"kind\":2048,\"name\":\"identifierToKey\",\"url\":\"classes/JsonResourceStorage.html#identifierToKey\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"JsonResourceStorage\"},{\"kind\":2048,\"name\":\"applyHash\",\"url\":\"classes/JsonResourceStorage.html#applyHash\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"JsonResourceStorage\"},{\"kind\":256,\"name\":\"KeyValueStorage\",\"url\":\"interfaces/KeyValueStorage.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"get\",\"url\":\"interfaces/KeyValueStorage.html#get\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"KeyValueStorage\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/KeyValueStorage.html#__type-4\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"KeyValueStorage\"},{\"kind\":1024,\"name\":\"has\",\"url\":\"interfaces/KeyValueStorage.html#has\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"KeyValueStorage\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/KeyValueStorage.html#__type-6\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"KeyValueStorage\"},{\"kind\":1024,\"name\":\"set\",\"url\":\"interfaces/KeyValueStorage.html#set\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"KeyValueStorage\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/KeyValueStorage.html#__type-8\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"KeyValueStorage\"},{\"kind\":1024,\"name\":\"delete\",\"url\":\"interfaces/KeyValueStorage.html#delete\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"KeyValueStorage\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/KeyValueStorage.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"KeyValueStorage\"},{\"kind\":1024,\"name\":\"entries\",\"url\":\"interfaces/KeyValueStorage.html#entries\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"KeyValueStorage\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/KeyValueStorage.html#__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"KeyValueStorage\"},{\"kind\":128,\"name\":\"MemoryMapStorage\",\"url\":\"classes/MemoryMapStorage.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MemoryMapStorage.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"MemoryMapStorage\"},{\"kind\":1024,\"name\":\"data\",\"url\":\"classes/MemoryMapStorage.html#data\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"MemoryMapStorage\"},{\"kind\":2048,\"name\":\"get\",\"url\":\"classes/MemoryMapStorage.html#get\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"MemoryMapStorage\"},{\"kind\":2048,\"name\":\"has\",\"url\":\"classes/MemoryMapStorage.html#has\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"MemoryMapStorage\"},{\"kind\":2048,\"name\":\"set\",\"url\":\"classes/MemoryMapStorage.html#set\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"MemoryMapStorage\"},{\"kind\":2048,\"name\":\"delete\",\"url\":\"classes/MemoryMapStorage.html#delete\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"MemoryMapStorage\"},{\"kind\":2048,\"name\":\"entries\",\"url\":\"classes/MemoryMapStorage.html#entries\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"MemoryMapStorage\"},{\"kind\":4194304,\"name\":\"Expires\",\"url\":\"types/Expires.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/Expires.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"Expires\"},{\"kind\":1024,\"name\":\"expires\",\"url\":\"types/Expires.html#__type.expires\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"Expires.__type\"},{\"kind\":1024,\"name\":\"payload\",\"url\":\"types/Expires.html#__type.payload\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"Expires.__type\"},{\"kind\":128,\"name\":\"WrappedExpiringStorage\",\"url\":\"classes/WrappedExpiringStorage.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/WrappedExpiringStorage.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"WrappedExpiringStorage\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/WrappedExpiringStorage.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"WrappedExpiringStorage\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/WrappedExpiringStorage.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"WrappedExpiringStorage\"},{\"kind\":1024,\"name\":\"timer\",\"url\":\"classes/WrappedExpiringStorage.html#timer\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"WrappedExpiringStorage\"},{\"kind\":2048,\"name\":\"get\",\"url\":\"classes/WrappedExpiringStorage.html#get\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedExpiringStorage\"},{\"kind\":2048,\"name\":\"has\",\"url\":\"classes/WrappedExpiringStorage.html#has\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedExpiringStorage\"},{\"kind\":2048,\"name\":\"set\",\"url\":\"classes/WrappedExpiringStorage.html#set\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedExpiringStorage\"},{\"kind\":2048,\"name\":\"delete\",\"url\":\"classes/WrappedExpiringStorage.html#delete\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedExpiringStorage\"},{\"kind\":2048,\"name\":\"entries\",\"url\":\"classes/WrappedExpiringStorage.html#entries\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedExpiringStorage\"},{\"kind\":2048,\"name\":\"removeExpiredEntries\",\"url\":\"classes/WrappedExpiringStorage.html#removeExpiredEntries\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"WrappedExpiringStorage\"},{\"kind\":2048,\"name\":\"getUnexpired\",\"url\":\"classes/WrappedExpiringStorage.html#getUnexpired\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"WrappedExpiringStorage\"},{\"kind\":2048,\"name\":\"isExpired\",\"url\":\"classes/WrappedExpiringStorage.html#isExpired\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"WrappedExpiringStorage\"},{\"kind\":2048,\"name\":\"toExpires\",\"url\":\"classes/WrappedExpiringStorage.html#toExpires\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"WrappedExpiringStorage\"},{\"kind\":2048,\"name\":\"toData\",\"url\":\"classes/WrappedExpiringStorage.html#toData\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"WrappedExpiringStorage\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/WrappedExpiringStorage.html#toData.toData-1.__type\",\"classes\":\"tsd-kind-type-literal\",\"parent\":\"WrappedExpiringStorage.toData.toData\"},{\"kind\":1024,\"name\":\"expires\",\"url\":\"classes/WrappedExpiringStorage.html#toData.toData-1.__type.expires\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"WrappedExpiringStorage.toData.toData.__type\"},{\"kind\":1024,\"name\":\"payload\",\"url\":\"classes/WrappedExpiringStorage.html#toData.toData-1.__type.payload\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"WrappedExpiringStorage.toData.toData.__type\"},{\"kind\":2048,\"name\":\"finalize\",\"url\":\"classes/WrappedExpiringStorage.html#finalize\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedExpiringStorage\"},{\"kind\":128,\"name\":\"BaseFileIdentifierMapper\",\"url\":\"classes/BaseFileIdentifierMapper.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/BaseFileIdentifierMapper.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"BaseFileIdentifierMapper\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/BaseFileIdentifierMapper.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"BaseFileIdentifierMapper\"},{\"kind\":1024,\"name\":\"baseRequestURI\",\"url\":\"classes/BaseFileIdentifierMapper.html#baseRequestURI\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"BaseFileIdentifierMapper\"},{\"kind\":1024,\"name\":\"rootFilepath\",\"url\":\"classes/BaseFileIdentifierMapper.html#rootFilepath\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"BaseFileIdentifierMapper\"},{\"kind\":1024,\"name\":\"unknownMediaTypeExtension\",\"url\":\"classes/BaseFileIdentifierMapper.html#unknownMediaTypeExtension\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"BaseFileIdentifierMapper\"},{\"kind\":2048,\"name\":\"mapUrlToFilePath\",\"url\":\"classes/BaseFileIdentifierMapper.html#mapUrlToFilePath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseFileIdentifierMapper\"},{\"kind\":2048,\"name\":\"mapUrlToContainerPath\",\"url\":\"classes/BaseFileIdentifierMapper.html#mapUrlToContainerPath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"BaseFileIdentifierMapper\"},{\"kind\":2048,\"name\":\"mapUrlToDocumentPath\",\"url\":\"classes/BaseFileIdentifierMapper.html#mapUrlToDocumentPath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"BaseFileIdentifierMapper\"},{\"kind\":2048,\"name\":\"getContentTypeFromUrl\",\"url\":\"classes/BaseFileIdentifierMapper.html#getContentTypeFromUrl\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"BaseFileIdentifierMapper\"},{\"kind\":2048,\"name\":\"mapFilePathToUrl\",\"url\":\"classes/BaseFileIdentifierMapper.html#mapFilePathToUrl\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseFileIdentifierMapper\"},{\"kind\":2048,\"name\":\"getContainerUrl\",\"url\":\"classes/BaseFileIdentifierMapper.html#getContainerUrl\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"BaseFileIdentifierMapper\"},{\"kind\":2048,\"name\":\"getDocumentUrl\",\"url\":\"classes/BaseFileIdentifierMapper.html#getDocumentUrl\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"BaseFileIdentifierMapper\"},{\"kind\":2048,\"name\":\"getContentTypeFromPath\",\"url\":\"classes/BaseFileIdentifierMapper.html#getContentTypeFromPath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"BaseFileIdentifierMapper\"},{\"kind\":2048,\"name\":\"getAbsolutePath\",\"url\":\"classes/BaseFileIdentifierMapper.html#getAbsolutePath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"BaseFileIdentifierMapper\"},{\"kind\":2048,\"name\":\"getRelativePath\",\"url\":\"classes/BaseFileIdentifierMapper.html#getRelativePath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"BaseFileIdentifierMapper\"},{\"kind\":2048,\"name\":\"validateRelativePath\",\"url\":\"classes/BaseFileIdentifierMapper.html#validateRelativePath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"BaseFileIdentifierMapper\"},{\"kind\":2048,\"name\":\"isMetadataPath\",\"url\":\"classes/BaseFileIdentifierMapper.html#isMetadataPath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"BaseFileIdentifierMapper\"},{\"kind\":128,\"name\":\"ExtensionBasedMapper\",\"url\":\"classes/ExtensionBasedMapper.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ExtensionBasedMapper.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ExtensionBasedMapper\"},{\"kind\":1024,\"name\":\"customTypes\",\"url\":\"classes/ExtensionBasedMapper.html#customTypes\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ExtensionBasedMapper\"},{\"kind\":1024,\"name\":\"customExtensions\",\"url\":\"classes/ExtensionBasedMapper.html#customExtensions\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"mapUrlToDocumentPath\",\"url\":\"classes/ExtensionBasedMapper.html#mapUrlToDocumentPath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"ExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"getDocumentUrl\",\"url\":\"classes/ExtensionBasedMapper.html#getDocumentUrl\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"ExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"getContentTypeFromPath\",\"url\":\"classes/ExtensionBasedMapper.html#getContentTypeFromPath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"ExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"stripExtension\",\"url\":\"classes/ExtensionBasedMapper.html#stripExtension\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"ExtensionBasedMapper\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/ExtensionBasedMapper.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ExtensionBasedMapper\"},{\"kind\":1024,\"name\":\"baseRequestURI\",\"url\":\"classes/ExtensionBasedMapper.html#baseRequestURI\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ExtensionBasedMapper\"},{\"kind\":1024,\"name\":\"rootFilepath\",\"url\":\"classes/ExtensionBasedMapper.html#rootFilepath\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ExtensionBasedMapper\"},{\"kind\":1024,\"name\":\"unknownMediaTypeExtension\",\"url\":\"classes/ExtensionBasedMapper.html#unknownMediaTypeExtension\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"mapUrlToFilePath\",\"url\":\"classes/ExtensionBasedMapper.html#mapUrlToFilePath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"mapUrlToContainerPath\",\"url\":\"classes/ExtensionBasedMapper.html#mapUrlToContainerPath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"getContentTypeFromUrl\",\"url\":\"classes/ExtensionBasedMapper.html#getContentTypeFromUrl\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"mapFilePathToUrl\",\"url\":\"classes/ExtensionBasedMapper.html#mapFilePathToUrl\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"getContainerUrl\",\"url\":\"classes/ExtensionBasedMapper.html#getContainerUrl\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"getAbsolutePath\",\"url\":\"classes/ExtensionBasedMapper.html#getAbsolutePath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"getRelativePath\",\"url\":\"classes/ExtensionBasedMapper.html#getRelativePath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"validateRelativePath\",\"url\":\"classes/ExtensionBasedMapper.html#validateRelativePath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"isMetadataPath\",\"url\":\"classes/ExtensionBasedMapper.html#isMetadataPath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ExtensionBasedMapper\"},{\"kind\":128,\"name\":\"ExtensionBasedMapperFactory\",\"url\":\"classes/ExtensionBasedMapperFactory.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ExtensionBasedMapperFactory.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ExtensionBasedMapperFactory\"},{\"kind\":2048,\"name\":\"create\",\"url\":\"classes/ExtensionBasedMapperFactory.html#create\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ExtensionBasedMapperFactory\"},{\"kind\":256,\"name\":\"ResourceLink\",\"url\":\"interfaces/ResourceLink.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"identifier\",\"url\":\"interfaces/ResourceLink.html#identifier\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ResourceLink\"},{\"kind\":1024,\"name\":\"filePath\",\"url\":\"interfaces/ResourceLink.html#filePath\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ResourceLink\"},{\"kind\":1024,\"name\":\"contentType\",\"url\":\"interfaces/ResourceLink.html#contentType\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ResourceLink\"},{\"kind\":1024,\"name\":\"isMetadata\",\"url\":\"interfaces/ResourceLink.html#isMetadata\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ResourceLink\"},{\"kind\":256,\"name\":\"FileIdentifierMapper\",\"url\":\"interfaces/FileIdentifierMapper.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"mapFilePathToUrl\",\"url\":\"interfaces/FileIdentifierMapper.html#mapFilePathToUrl\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"FileIdentifierMapper\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/FileIdentifierMapper.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"FileIdentifierMapper\"},{\"kind\":1024,\"name\":\"mapUrlToFilePath\",\"url\":\"interfaces/FileIdentifierMapper.html#mapUrlToFilePath\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"FileIdentifierMapper\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/FileIdentifierMapper.html#__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"FileIdentifierMapper\"},{\"kind\":256,\"name\":\"FileIdentifierMapperFactory\",\"url\":\"interfaces/FileIdentifierMapperFactory.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"create\",\"url\":\"interfaces/FileIdentifierMapperFactory.html#create\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"FileIdentifierMapperFactory\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/FileIdentifierMapperFactory.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"FileIdentifierMapperFactory\"},{\"kind\":128,\"name\":\"FixedContentTypeMapper\",\"url\":\"classes/FixedContentTypeMapper.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/FixedContentTypeMapper.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"FixedContentTypeMapper\"},{\"kind\":1024,\"name\":\"contentType\",\"url\":\"classes/FixedContentTypeMapper.html#contentType\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"FixedContentTypeMapper\"},{\"kind\":1024,\"name\":\"pathSuffix\",\"url\":\"classes/FixedContentTypeMapper.html#pathSuffix\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"FixedContentTypeMapper\"},{\"kind\":1024,\"name\":\"urlSuffix\",\"url\":\"classes/FixedContentTypeMapper.html#urlSuffix\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"FixedContentTypeMapper\"},{\"kind\":2048,\"name\":\"getContentTypeFromUrl\",\"url\":\"classes/FixedContentTypeMapper.html#getContentTypeFromUrl\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"FixedContentTypeMapper\"},{\"kind\":2048,\"name\":\"getContentTypeFromPath\",\"url\":\"classes/FixedContentTypeMapper.html#getContentTypeFromPath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"FixedContentTypeMapper\"},{\"kind\":2048,\"name\":\"mapUrlToDocumentPath\",\"url\":\"classes/FixedContentTypeMapper.html#mapUrlToDocumentPath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"FixedContentTypeMapper\"},{\"kind\":2048,\"name\":\"getDocumentUrl\",\"url\":\"classes/FixedContentTypeMapper.html#getDocumentUrl\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"FixedContentTypeMapper\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/FixedContentTypeMapper.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"FixedContentTypeMapper\"},{\"kind\":1024,\"name\":\"baseRequestURI\",\"url\":\"classes/FixedContentTypeMapper.html#baseRequestURI\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"FixedContentTypeMapper\"},{\"kind\":1024,\"name\":\"rootFilepath\",\"url\":\"classes/FixedContentTypeMapper.html#rootFilepath\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"FixedContentTypeMapper\"},{\"kind\":1024,\"name\":\"unknownMediaTypeExtension\",\"url\":\"classes/FixedContentTypeMapper.html#unknownMediaTypeExtension\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"FixedContentTypeMapper\"},{\"kind\":2048,\"name\":\"mapUrlToFilePath\",\"url\":\"classes/FixedContentTypeMapper.html#mapUrlToFilePath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"FixedContentTypeMapper\"},{\"kind\":2048,\"name\":\"mapUrlToContainerPath\",\"url\":\"classes/FixedContentTypeMapper.html#mapUrlToContainerPath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"FixedContentTypeMapper\"},{\"kind\":2048,\"name\":\"mapFilePathToUrl\",\"url\":\"classes/FixedContentTypeMapper.html#mapFilePathToUrl\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"FixedContentTypeMapper\"},{\"kind\":2048,\"name\":\"getContainerUrl\",\"url\":\"classes/FixedContentTypeMapper.html#getContainerUrl\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"FixedContentTypeMapper\"},{\"kind\":2048,\"name\":\"getAbsolutePath\",\"url\":\"classes/FixedContentTypeMapper.html#getAbsolutePath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"FixedContentTypeMapper\"},{\"kind\":2048,\"name\":\"getRelativePath\",\"url\":\"classes/FixedContentTypeMapper.html#getRelativePath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"FixedContentTypeMapper\"},{\"kind\":2048,\"name\":\"validateRelativePath\",\"url\":\"classes/FixedContentTypeMapper.html#validateRelativePath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"FixedContentTypeMapper\"},{\"kind\":2048,\"name\":\"isMetadataPath\",\"url\":\"classes/FixedContentTypeMapper.html#isMetadataPath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"FixedContentTypeMapper\"},{\"kind\":128,\"name\":\"SubdomainExtensionBasedMapper\",\"url\":\"classes/SubdomainExtensionBasedMapper.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"SubdomainExtensionBasedMapper\"},{\"kind\":1024,\"name\":\"baseSubdomain\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#baseSubdomain\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SubdomainExtensionBasedMapper\"},{\"kind\":1024,\"name\":\"regex\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#regex\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SubdomainExtensionBasedMapper\"},{\"kind\":1024,\"name\":\"baseParts\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#baseParts\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SubdomainExtensionBasedMapper\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"SubdomainExtensionBasedMapper\"},{\"kind\":1024,\"name\":\"scheme\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#__type.scheme\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SubdomainExtensionBasedMapper.__type\"},{\"kind\":1024,\"name\":\"rest\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#__type.rest\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"SubdomainExtensionBasedMapper.__type\"},{\"kind\":2048,\"name\":\"getContainerUrl\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#getContainerUrl\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"SubdomainExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"getDocumentUrl\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#getDocumentUrl\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"SubdomainExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"relativeToUrl\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#relativeToUrl\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"SubdomainExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"getRelativePath\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#getRelativePath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"SubdomainExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"mapUrlToDocumentPath\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#mapUrlToDocumentPath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"SubdomainExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"getContentTypeFromPath\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#getContentTypeFromPath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"SubdomainExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"stripExtension\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#stripExtension\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"SubdomainExtensionBasedMapper\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"SubdomainExtensionBasedMapper\"},{\"kind\":1024,\"name\":\"baseRequestURI\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#baseRequestURI\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"SubdomainExtensionBasedMapper\"},{\"kind\":1024,\"name\":\"rootFilepath\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#rootFilepath\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"SubdomainExtensionBasedMapper\"},{\"kind\":1024,\"name\":\"unknownMediaTypeExtension\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#unknownMediaTypeExtension\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"SubdomainExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"mapUrlToFilePath\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#mapUrlToFilePath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"SubdomainExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"mapUrlToContainerPath\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#mapUrlToContainerPath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"SubdomainExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"getContentTypeFromUrl\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#getContentTypeFromUrl\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"SubdomainExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"mapFilePathToUrl\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#mapFilePathToUrl\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"SubdomainExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"getAbsolutePath\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#getAbsolutePath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"SubdomainExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"validateRelativePath\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#validateRelativePath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"SubdomainExtensionBasedMapper\"},{\"kind\":2048,\"name\":\"isMetadataPath\",\"url\":\"classes/SubdomainExtensionBasedMapper.html#isMetadataPath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"SubdomainExtensionBasedMapper\"},{\"kind\":128,\"name\":\"ConvertingPatcher\",\"url\":\"classes/ConvertingPatcher.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ConvertingPatcher.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ConvertingPatcher\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/ConvertingPatcher.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"ConvertingPatcher\"},{\"kind\":1024,\"name\":\"patcher\",\"url\":\"classes/ConvertingPatcher.html#patcher\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConvertingPatcher\"},{\"kind\":1024,\"name\":\"converter\",\"url\":\"classes/ConvertingPatcher.html#converter\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConvertingPatcher\"},{\"kind\":1024,\"name\":\"intermediateType\",\"url\":\"classes/ConvertingPatcher.html#intermediateType\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConvertingPatcher\"},{\"kind\":1024,\"name\":\"defaultType\",\"url\":\"classes/ConvertingPatcher.html#defaultType\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConvertingPatcher\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ConvertingPatcher.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ConvertingPatcher\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ConvertingPatcher.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ConvertingPatcher\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ConvertingPatcher.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConvertingPatcher\"},{\"kind\":128,\"name\":\"ImmutableMetadataPatcher\",\"url\":\"classes/ImmutableMetadataPatcher.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ImmutableMetadataPatcher.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ImmutableMetadataPatcher\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/ImmutableMetadataPatcher.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"ImmutableMetadataPatcher\"},{\"kind\":1024,\"name\":\"patcher\",\"url\":\"classes/ImmutableMetadataPatcher.html#patcher\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ImmutableMetadataPatcher\"},{\"kind\":1024,\"name\":\"metadataStrategy\",\"url\":\"classes/ImmutableMetadataPatcher.html#metadataStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ImmutableMetadataPatcher\"},{\"kind\":1024,\"name\":\"immutablePatterns\",\"url\":\"classes/ImmutableMetadataPatcher.html#immutablePatterns\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ImmutableMetadataPatcher\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ImmutableMetadataPatcher.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ImmutableMetadataPatcher\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ImmutableMetadataPatcher.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ImmutableMetadataPatcher\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ImmutableMetadataPatcher.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ImmutableMetadataPatcher\"},{\"kind\":128,\"name\":\"N3Patcher\",\"url\":\"classes/N3Patcher.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/N3Patcher.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"N3Patcher\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/N3Patcher.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"N3Patcher\"},{\"kind\":1024,\"name\":\"engine\",\"url\":\"classes/N3Patcher.html#engine\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"N3Patcher\"},{\"kind\":1024,\"name\":\"generator\",\"url\":\"classes/N3Patcher.html#generator\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"N3Patcher\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/N3Patcher.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"N3Patcher\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/N3Patcher.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"N3Patcher\"},{\"kind\":2048,\"name\":\"patch\",\"url\":\"classes/N3Patcher.html#patch\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"N3Patcher\"},{\"kind\":2048,\"name\":\"applyConditions\",\"url\":\"classes/N3Patcher.html#applyConditions\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"N3Patcher\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/N3Patcher.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"N3Patcher\"},{\"kind\":4194304,\"name\":\"PatchHandlerInput\",\"url\":\"types/PatchHandlerInput.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/PatchHandlerInput.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"PatchHandlerInput\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"types/PatchHandlerInput.html#__type.source\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"PatchHandlerInput.__type\"},{\"kind\":1024,\"name\":\"identifier\",\"url\":\"types/PatchHandlerInput.html#__type.identifier\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"PatchHandlerInput.__type\"},{\"kind\":1024,\"name\":\"patch\",\"url\":\"types/PatchHandlerInput.html#__type.patch\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"PatchHandlerInput.__type\"},{\"kind\":128,\"name\":\"PatchHandler\",\"url\":\"classes/PatchHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/PatchHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PatchHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/PatchHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PatchHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/PatchHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PatchHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/PatchHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PatchHandler\"},{\"kind\":128,\"name\":\"RdfPatcher\",\"url\":\"classes/RdfPatcher.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RdfPatcher.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"RdfPatcher\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/RdfPatcher.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"RdfPatcher\"},{\"kind\":1024,\"name\":\"patcher\",\"url\":\"classes/RdfPatcher.html#patcher\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RdfPatcher\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/RdfPatcher.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RdfPatcher\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/RdfPatcher.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RdfPatcher\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/RdfPatcher.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RdfPatcher\"},{\"kind\":256,\"name\":\"RdfStorePatcherInput\",\"url\":\"interfaces/RdfStorePatcherInput.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"identifier\",\"url\":\"interfaces/RdfStorePatcherInput.html#identifier\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RdfStorePatcherInput\"},{\"kind\":1024,\"name\":\"patch\",\"url\":\"interfaces/RdfStorePatcherInput.html#patch\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RdfStorePatcherInput\"},{\"kind\":1024,\"name\":\"store\",\"url\":\"interfaces/RdfStorePatcherInput.html#store\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RdfStorePatcherInput\"},{\"kind\":128,\"name\":\"RdfStorePatcher\",\"url\":\"classes/RdfStorePatcher.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RdfStorePatcher.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RdfStorePatcher\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/RdfStorePatcher.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RdfStorePatcher\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/RdfStorePatcher.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RdfStorePatcher\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/RdfStorePatcher.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RdfStorePatcher\"},{\"kind\":256,\"name\":\"RepresentationPatcherInput\",\"url\":\"interfaces/RepresentationPatcherInput.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"identifier\",\"url\":\"interfaces/RepresentationPatcherInput.html#identifier\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RepresentationPatcherInput\"},{\"kind\":1024,\"name\":\"patch\",\"url\":\"interfaces/RepresentationPatcherInput.html#patch\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RepresentationPatcherInput\"},{\"kind\":1024,\"name\":\"representation\",\"url\":\"interfaces/RepresentationPatcherInput.html#representation\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RepresentationPatcherInput\"},{\"kind\":128,\"name\":\"RepresentationPatcher\",\"url\":\"classes/RepresentationPatcher.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RepresentationPatcher.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RepresentationPatcher\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/RepresentationPatcher.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RepresentationPatcher\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/RepresentationPatcher.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RepresentationPatcher\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/RepresentationPatcher.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RepresentationPatcher\"},{\"kind\":128,\"name\":\"RepresentationPatchHandler\",\"url\":\"classes/RepresentationPatchHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RepresentationPatchHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"RepresentationPatchHandler\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/RepresentationPatchHandler.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"RepresentationPatchHandler\"},{\"kind\":1024,\"name\":\"patcher\",\"url\":\"classes/RepresentationPatchHandler.html#patcher\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RepresentationPatchHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/RepresentationPatchHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RepresentationPatchHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/RepresentationPatchHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RepresentationPatchHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/RepresentationPatchHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RepresentationPatchHandler\"},{\"kind\":128,\"name\":\"SparqlUpdatePatcher\",\"url\":\"classes/SparqlUpdatePatcher.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/SparqlUpdatePatcher.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"SparqlUpdatePatcher\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/SparqlUpdatePatcher.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"SparqlUpdatePatcher\"},{\"kind\":1024,\"name\":\"engine\",\"url\":\"classes/SparqlUpdatePatcher.html#engine\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlUpdatePatcher\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/SparqlUpdatePatcher.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SparqlUpdatePatcher\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/SparqlUpdatePatcher.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SparqlUpdatePatcher\"},{\"kind\":2048,\"name\":\"isSparqlUpdate\",\"url\":\"classes/SparqlUpdatePatcher.html#isSparqlUpdate\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlUpdatePatcher\"},{\"kind\":2048,\"name\":\"isDeleteInsert\",\"url\":\"classes/SparqlUpdatePatcher.html#isDeleteInsert\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlUpdatePatcher\"},{\"kind\":2048,\"name\":\"isComposite\",\"url\":\"classes/SparqlUpdatePatcher.html#isComposite\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlUpdatePatcher\"},{\"kind\":2048,\"name\":\"validateUpdate\",\"url\":\"classes/SparqlUpdatePatcher.html#validateUpdate\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlUpdatePatcher\"},{\"kind\":2048,\"name\":\"validateDeleteInsert\",\"url\":\"classes/SparqlUpdatePatcher.html#validateDeleteInsert\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlUpdatePatcher\"},{\"kind\":2048,\"name\":\"validateComposite\",\"url\":\"classes/SparqlUpdatePatcher.html#validateComposite\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlUpdatePatcher\"},{\"kind\":2048,\"name\":\"patch\",\"url\":\"classes/SparqlUpdatePatcher.html#patch\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"SparqlUpdatePatcher\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/SparqlUpdatePatcher.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"SparqlUpdatePatcher\"},{\"kind\":128,\"name\":\"GlobalQuotaStrategy\",\"url\":\"classes/GlobalQuotaStrategy.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/GlobalQuotaStrategy.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"GlobalQuotaStrategy\"},{\"kind\":1024,\"name\":\"base\",\"url\":\"classes/GlobalQuotaStrategy.html#base\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"GlobalQuotaStrategy\"},{\"kind\":2048,\"name\":\"getTotalSpaceUsed\",\"url\":\"classes/GlobalQuotaStrategy.html#getTotalSpaceUsed\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"GlobalQuotaStrategy\"},{\"kind\":1024,\"name\":\"reporter\",\"url\":\"classes/GlobalQuotaStrategy.html#reporter\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"GlobalQuotaStrategy\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"classes/GlobalQuotaStrategy.html#limit\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"GlobalQuotaStrategy\"},{\"kind\":2048,\"name\":\"getAvailableSpace\",\"url\":\"classes/GlobalQuotaStrategy.html#getAvailableSpace\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"GlobalQuotaStrategy\"},{\"kind\":2048,\"name\":\"estimateSize\",\"url\":\"classes/GlobalQuotaStrategy.html#estimateSize\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"GlobalQuotaStrategy\"},{\"kind\":2048,\"name\":\"createQuotaGuard\",\"url\":\"classes/GlobalQuotaStrategy.html#createQuotaGuard\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"GlobalQuotaStrategy\"},{\"kind\":128,\"name\":\"PodQuotaStrategy\",\"url\":\"classes/PodQuotaStrategy.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/PodQuotaStrategy.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"PodQuotaStrategy\"},{\"kind\":1024,\"name\":\"identifierStrategy\",\"url\":\"classes/PodQuotaStrategy.html#identifierStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"PodQuotaStrategy\"},{\"kind\":1024,\"name\":\"accessor\",\"url\":\"classes/PodQuotaStrategy.html#accessor\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"PodQuotaStrategy\"},{\"kind\":2048,\"name\":\"getTotalSpaceUsed\",\"url\":\"classes/PodQuotaStrategy.html#getTotalSpaceUsed\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"PodQuotaStrategy\"},{\"kind\":2048,\"name\":\"searchPimStorage\",\"url\":\"classes/PodQuotaStrategy.html#searchPimStorage\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"PodQuotaStrategy\"},{\"kind\":1024,\"name\":\"reporter\",\"url\":\"classes/PodQuotaStrategy.html#reporter\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PodQuotaStrategy\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"classes/PodQuotaStrategy.html#limit\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PodQuotaStrategy\"},{\"kind\":2048,\"name\":\"getAvailableSpace\",\"url\":\"classes/PodQuotaStrategy.html#getAvailableSpace\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PodQuotaStrategy\"},{\"kind\":2048,\"name\":\"estimateSize\",\"url\":\"classes/PodQuotaStrategy.html#estimateSize\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PodQuotaStrategy\"},{\"kind\":2048,\"name\":\"createQuotaGuard\",\"url\":\"classes/PodQuotaStrategy.html#createQuotaGuard\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PodQuotaStrategy\"},{\"kind\":128,\"name\":\"QuotaStrategy\",\"url\":\"classes/QuotaStrategy.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/QuotaStrategy.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"QuotaStrategy\"},{\"kind\":1024,\"name\":\"reporter\",\"url\":\"classes/QuotaStrategy.html#reporter\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"QuotaStrategy\"},{\"kind\":1024,\"name\":\"limit\",\"url\":\"classes/QuotaStrategy.html#limit\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"QuotaStrategy\"},{\"kind\":2048,\"name\":\"getAvailableSpace\",\"url\":\"classes/QuotaStrategy.html#getAvailableSpace\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"QuotaStrategy\"},{\"kind\":2048,\"name\":\"getTotalSpaceUsed\",\"url\":\"classes/QuotaStrategy.html#getTotalSpaceUsed\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"QuotaStrategy\"},{\"kind\":2048,\"name\":\"estimateSize\",\"url\":\"classes/QuotaStrategy.html#estimateSize\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"QuotaStrategy\"},{\"kind\":2048,\"name\":\"createQuotaGuard\",\"url\":\"classes/QuotaStrategy.html#createQuotaGuard\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"QuotaStrategy\"},{\"kind\":128,\"name\":\"BaseUrlRouterRule\",\"url\":\"classes/BaseUrlRouterRule.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/BaseUrlRouterRule.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"BaseUrlRouterRule\"},{\"kind\":1024,\"name\":\"baseStore\",\"url\":\"classes/BaseUrlRouterRule.html#baseStore\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BaseUrlRouterRule\"},{\"kind\":1024,\"name\":\"stores\",\"url\":\"classes/BaseUrlRouterRule.html#stores\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BaseUrlRouterRule\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/BaseUrlRouterRule.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseUrlRouterRule\"},{\"kind\":2048,\"name\":\"findStore\",\"url\":\"classes/BaseUrlRouterRule.html#findStore\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"BaseUrlRouterRule\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/BaseUrlRouterRule.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BaseUrlRouterRule\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/BaseUrlRouterRule.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BaseUrlRouterRule\"},{\"kind\":256,\"name\":\"ConvertingStoreEntry\",\"url\":\"interfaces/ConvertingStoreEntry.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"store\",\"url\":\"interfaces/ConvertingStoreEntry.html#store\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ConvertingStoreEntry\"},{\"kind\":1024,\"name\":\"supportChecker\",\"url\":\"interfaces/ConvertingStoreEntry.html#supportChecker\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ConvertingStoreEntry\"},{\"kind\":128,\"name\":\"ConvertingRouterRule\",\"url\":\"classes/ConvertingRouterRule.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ConvertingRouterRule.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ConvertingRouterRule\"},{\"kind\":1024,\"name\":\"typedStores\",\"url\":\"classes/ConvertingRouterRule.html#typedStores\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConvertingRouterRule\"},{\"kind\":1024,\"name\":\"defaultStore\",\"url\":\"classes/ConvertingRouterRule.html#defaultStore\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConvertingRouterRule\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ConvertingRouterRule.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ConvertingRouterRule\"},{\"kind\":2048,\"name\":\"findStore\",\"url\":\"classes/ConvertingRouterRule.html#findStore\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConvertingRouterRule\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ConvertingRouterRule.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConvertingRouterRule\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ConvertingRouterRule.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConvertingRouterRule\"},{\"kind\":128,\"name\":\"PreferenceSupport\",\"url\":\"classes/PreferenceSupport.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/PreferenceSupport.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"PreferenceSupport\"},{\"kind\":1024,\"name\":\"preferences\",\"url\":\"classes/PreferenceSupport.html#preferences\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"PreferenceSupport\"},{\"kind\":1024,\"name\":\"converter\",\"url\":\"classes/PreferenceSupport.html#converter\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"PreferenceSupport\"},{\"kind\":2048,\"name\":\"supports\",\"url\":\"classes/PreferenceSupport.html#supports\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PreferenceSupport\"},{\"kind\":128,\"name\":\"RegexRule\",\"url\":\"classes/RegexRule.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RegexRule.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"RegexRule\"},{\"kind\":1024,\"name\":\"regex\",\"url\":\"classes/RegexRule.html#regex\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"RegexRule\"},{\"kind\":1024,\"name\":\"store\",\"url\":\"classes/RegexRule.html#store\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"RegexRule\"},{\"kind\":128,\"name\":\"RegexRouterRule\",\"url\":\"classes/RegexRouterRule.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RegexRouterRule.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"RegexRouterRule\"},{\"kind\":1024,\"name\":\"base\",\"url\":\"classes/RegexRouterRule.html#base\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RegexRouterRule\"},{\"kind\":1024,\"name\":\"rules\",\"url\":\"classes/RegexRouterRule.html#rules\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RegexRouterRule\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/RegexRouterRule.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RegexRouterRule\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/RegexRouterRule.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RegexRouterRule\"},{\"kind\":2048,\"name\":\"matchStore\",\"url\":\"classes/RegexRouterRule.html#matchStore\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"RegexRouterRule\"},{\"kind\":2048,\"name\":\"toRelative\",\"url\":\"classes/RegexRouterRule.html#toRelative\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"RegexRouterRule\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/RegexRouterRule.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RegexRouterRule\"},{\"kind\":128,\"name\":\"RouterRule\",\"url\":\"classes/RouterRule.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RouterRule.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RouterRule\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/RouterRule.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RouterRule\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/RouterRule.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RouterRule\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/RouterRule.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RouterRule\"},{\"kind\":128,\"name\":\"FileSizeReporter\",\"url\":\"classes/FileSizeReporter.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/FileSizeReporter.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"FileSizeReporter\"},{\"kind\":1024,\"name\":\"fileIdentifierMapper\",\"url\":\"classes/FileSizeReporter.html#fileIdentifierMapper\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"FileSizeReporter\"},{\"kind\":1024,\"name\":\"ignoreFolders\",\"url\":\"classes/FileSizeReporter.html#ignoreFolders\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"FileSizeReporter\"},{\"kind\":1024,\"name\":\"rootFilePath\",\"url\":\"classes/FileSizeReporter.html#rootFilePath\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"FileSizeReporter\"},{\"kind\":2048,\"name\":\"getUnit\",\"url\":\"classes/FileSizeReporter.html#getUnit\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"FileSizeReporter\"},{\"kind\":2048,\"name\":\"getSize\",\"url\":\"classes/FileSizeReporter.html#getSize\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"FileSizeReporter\"},{\"kind\":2048,\"name\":\"calculateChunkSize\",\"url\":\"classes/FileSizeReporter.html#calculateChunkSize\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"FileSizeReporter\"},{\"kind\":2048,\"name\":\"estimateSize\",\"url\":\"classes/FileSizeReporter.html#estimateSize\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"FileSizeReporter\"},{\"kind\":2048,\"name\":\"getTotalSize\",\"url\":\"classes/FileSizeReporter.html#getTotalSize\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"FileSizeReporter\"},{\"kind\":256,\"name\":\"Size\",\"url\":\"interfaces/Size.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"unit\",\"url\":\"interfaces/Size.html#unit\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Size\"},{\"kind\":1024,\"name\":\"amount\",\"url\":\"interfaces/Size.html#amount\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Size\"},{\"kind\":32,\"name\":\"UNIT_BYTES\",\"url\":\"variables/UNIT_BYTES.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":256,\"name\":\"SizeReporter\",\"url\":\"interfaces/SizeReporter.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"getUnit\",\"url\":\"interfaces/SizeReporter.html#getUnit\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SizeReporter\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/SizeReporter.html#__type-6\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"SizeReporter\"},{\"kind\":1024,\"name\":\"getSize\",\"url\":\"interfaces/SizeReporter.html#getSize\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SizeReporter\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/SizeReporter.html#__type-4\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"SizeReporter\"},{\"kind\":1024,\"name\":\"calculateChunkSize\",\"url\":\"interfaces/SizeReporter.html#calculateChunkSize\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SizeReporter\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/SizeReporter.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"SizeReporter\"},{\"kind\":1024,\"name\":\"estimateSize\",\"url\":\"interfaces/SizeReporter.html#estimateSize\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SizeReporter\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/SizeReporter.html#__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"SizeReporter\"},{\"kind\":128,\"name\":\"QuotaValidator\",\"url\":\"classes/QuotaValidator.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/QuotaValidator.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"QuotaValidator\"},{\"kind\":1024,\"name\":\"strategy\",\"url\":\"classes/QuotaValidator.html#strategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"QuotaValidator\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/QuotaValidator.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"QuotaValidator\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/QuotaValidator.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"QuotaValidator\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/QuotaValidator.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"QuotaValidator\"},{\"kind\":256,\"name\":\"AtomicResourceStore\",\"url\":\"interfaces/AtomicResourceStore.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"getRepresentation\",\"url\":\"interfaces/AtomicResourceStore.html#getRepresentation\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AtomicResourceStore\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AtomicResourceStore.html#__type-4\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AtomicResourceStore\"},{\"kind\":1024,\"name\":\"setRepresentation\",\"url\":\"interfaces/AtomicResourceStore.html#setRepresentation\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AtomicResourceStore\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AtomicResourceStore.html#__type-10\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AtomicResourceStore\"},{\"kind\":1024,\"name\":\"addResource\",\"url\":\"interfaces/AtomicResourceStore.html#addResource\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AtomicResourceStore\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AtomicResourceStore.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AtomicResourceStore\"},{\"kind\":1024,\"name\":\"deleteResource\",\"url\":\"interfaces/AtomicResourceStore.html#deleteResource\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AtomicResourceStore\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AtomicResourceStore.html#__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AtomicResourceStore\"},{\"kind\":1024,\"name\":\"modifyResource\",\"url\":\"interfaces/AtomicResourceStore.html#modifyResource\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AtomicResourceStore\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AtomicResourceStore.html#__type-8\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AtomicResourceStore\"},{\"kind\":1024,\"name\":\"hasResource\",\"url\":\"interfaces/AtomicResourceStore.html#hasResource\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AtomicResourceStore\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AtomicResourceStore.html#__type-6\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AtomicResourceStore\"},{\"kind\":128,\"name\":\"BaseResourceStore\",\"url\":\"classes/BaseResourceStore.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/BaseResourceStore.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"BaseResourceStore\"},{\"kind\":2048,\"name\":\"hasResource\",\"url\":\"classes/BaseResourceStore.html#hasResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseResourceStore\"},{\"kind\":2048,\"name\":\"getRepresentation\",\"url\":\"classes/BaseResourceStore.html#getRepresentation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseResourceStore\"},{\"kind\":2048,\"name\":\"setRepresentation\",\"url\":\"classes/BaseResourceStore.html#setRepresentation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseResourceStore\"},{\"kind\":2048,\"name\":\"addResource\",\"url\":\"classes/BaseResourceStore.html#addResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseResourceStore\"},{\"kind\":2048,\"name\":\"deleteResource\",\"url\":\"classes/BaseResourceStore.html#deleteResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseResourceStore\"},{\"kind\":2048,\"name\":\"modifyResource\",\"url\":\"classes/BaseResourceStore.html#modifyResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseResourceStore\"},{\"kind\":256,\"name\":\"BasicConditionsOptions\",\"url\":\"interfaces/BasicConditionsOptions.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"matchesETag\",\"url\":\"interfaces/BasicConditionsOptions.html#matchesETag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BasicConditionsOptions\"},{\"kind\":1024,\"name\":\"notMatchesETag\",\"url\":\"interfaces/BasicConditionsOptions.html#notMatchesETag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BasicConditionsOptions\"},{\"kind\":1024,\"name\":\"modifiedSince\",\"url\":\"interfaces/BasicConditionsOptions.html#modifiedSince\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BasicConditionsOptions\"},{\"kind\":1024,\"name\":\"unmodifiedSince\",\"url\":\"interfaces/BasicConditionsOptions.html#unmodifiedSince\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"BasicConditionsOptions\"},{\"kind\":128,\"name\":\"BasicConditions\",\"url\":\"classes/BasicConditions.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/BasicConditions.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"BasicConditions\"},{\"kind\":1024,\"name\":\"matchesETag\",\"url\":\"classes/BasicConditions.html#matchesETag\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"BasicConditions\"},{\"kind\":1024,\"name\":\"notMatchesETag\",\"url\":\"classes/BasicConditions.html#notMatchesETag\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"BasicConditions\"},{\"kind\":1024,\"name\":\"modifiedSince\",\"url\":\"classes/BasicConditions.html#modifiedSince\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"BasicConditions\"},{\"kind\":1024,\"name\":\"unmodifiedSince\",\"url\":\"classes/BasicConditions.html#unmodifiedSince\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"BasicConditions\"},{\"kind\":2048,\"name\":\"matchesMetadata\",\"url\":\"classes/BasicConditions.html#matchesMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BasicConditions\"},{\"kind\":2048,\"name\":\"matches\",\"url\":\"classes/BasicConditions.html#matches\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BasicConditions\"},{\"kind\":128,\"name\":\"CachedResourceSet\",\"url\":\"classes/CachedResourceSet.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/CachedResourceSet.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"CachedResourceSet\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/CachedResourceSet.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"CachedResourceSet\"},{\"kind\":1024,\"name\":\"cache\",\"url\":\"classes/CachedResourceSet.html#cache\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"CachedResourceSet\"},{\"kind\":2048,\"name\":\"hasResource\",\"url\":\"classes/CachedResourceSet.html#hasResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"CachedResourceSet\"},{\"kind\":64,\"name\":\"getETag\",\"url\":\"functions/getETag.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":256,\"name\":\"Conditions\",\"url\":\"interfaces/Conditions.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"matchesETag\",\"url\":\"interfaces/Conditions.html#matchesETag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Conditions\"},{\"kind\":1024,\"name\":\"notMatchesETag\",\"url\":\"interfaces/Conditions.html#notMatchesETag\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Conditions\"},{\"kind\":1024,\"name\":\"modifiedSince\",\"url\":\"interfaces/Conditions.html#modifiedSince\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Conditions\"},{\"kind\":1024,\"name\":\"unmodifiedSince\",\"url\":\"interfaces/Conditions.html#unmodifiedSince\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Conditions\"},{\"kind\":1024,\"name\":\"matchesMetadata\",\"url\":\"interfaces/Conditions.html#matchesMetadata\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Conditions\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/Conditions.html#__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"Conditions\"},{\"kind\":1024,\"name\":\"matches\",\"url\":\"interfaces/Conditions.html#matches\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Conditions\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/Conditions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"Conditions\"},{\"kind\":128,\"name\":\"DataAccessorBasedStore\",\"url\":\"classes/DataAccessorBasedStore.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/DataAccessorBasedStore.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/DataAccessorBasedStore.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":1024,\"name\":\"accessor\",\"url\":\"classes/DataAccessorBasedStore.html#accessor\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":1024,\"name\":\"identifierStrategy\",\"url\":\"classes/DataAccessorBasedStore.html#identifierStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":1024,\"name\":\"auxiliaryStrategy\",\"url\":\"classes/DataAccessorBasedStore.html#auxiliaryStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":1024,\"name\":\"metadataStrategy\",\"url\":\"classes/DataAccessorBasedStore.html#metadataStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"hasResource\",\"url\":\"classes/DataAccessorBasedStore.html#hasResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"getRepresentation\",\"url\":\"classes/DataAccessorBasedStore.html#getRepresentation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"addResource\",\"url\":\"classes/DataAccessorBasedStore.html#addResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"setRepresentation\",\"url\":\"classes/DataAccessorBasedStore.html#setRepresentation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"modifyResource\",\"url\":\"classes/DataAccessorBasedStore.html#modifyResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"deleteResource\",\"url\":\"classes/DataAccessorBasedStore.html#deleteResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"validateIdentifier\",\"url\":\"classes/DataAccessorBasedStore.html#validateIdentifier\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"validateConditions\",\"url\":\"classes/DataAccessorBasedStore.html#validateConditions\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"getNormalizedMetadata\",\"url\":\"classes/DataAccessorBasedStore.html#getNormalizedMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"getSafeNormalizedMetadata\",\"url\":\"classes/DataAccessorBasedStore.html#getSafeNormalizedMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"writeMetadata\",\"url\":\"classes/DataAccessorBasedStore.html#writeMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"writeData\",\"url\":\"classes/DataAccessorBasedStore.html#writeData\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"handleContainerData\",\"url\":\"classes/DataAccessorBasedStore.html#handleContainerData\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"removeResponseMetadata\",\"url\":\"classes/DataAccessorBasedStore.html#removeResponseMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"updateContainerModifiedDate\",\"url\":\"classes/DataAccessorBasedStore.html#updateContainerModifiedDate\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"createURI\",\"url\":\"classes/DataAccessorBasedStore.html#createURI\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"validateSlug\",\"url\":\"classes/DataAccessorBasedStore.html#validateSlug\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"cleanSlug\",\"url\":\"classes/DataAccessorBasedStore.html#cleanSlug\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"createSafeUri\",\"url\":\"classes/DataAccessorBasedStore.html#createSafeUri\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"isContainerType\",\"url\":\"classes/DataAccessorBasedStore.html#isContainerType\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"hasContainerType\",\"url\":\"classes/DataAccessorBasedStore.html#hasContainerType\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"isRootStorage\",\"url\":\"classes/DataAccessorBasedStore.html#isRootStorage\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"hasProperChildren\",\"url\":\"classes/DataAccessorBasedStore.html#hasProperChildren\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"safelyDeleteAuxiliaryResources\",\"url\":\"classes/DataAccessorBasedStore.html#safelyDeleteAuxiliaryResources\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"createRecursiveContainers\",\"url\":\"classes/DataAccessorBasedStore.html#createRecursiveContainers\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":2048,\"name\":\"addActivityMetadata\",\"url\":\"classes/DataAccessorBasedStore.html#addActivityMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"DataAccessorBasedStore\"},{\"kind\":128,\"name\":\"IndexRepresentationStore\",\"url\":\"classes/IndexRepresentationStore.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/IndexRepresentationStore.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"IndexRepresentationStore\"},{\"kind\":1024,\"name\":\"indexName\",\"url\":\"classes/IndexRepresentationStore.html#indexName\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"IndexRepresentationStore\"},{\"kind\":1024,\"name\":\"mediaRange\",\"url\":\"classes/IndexRepresentationStore.html#mediaRange\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"IndexRepresentationStore\"},{\"kind\":2048,\"name\":\"getRepresentation\",\"url\":\"classes/IndexRepresentationStore.html#getRepresentation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"IndexRepresentationStore\"},{\"kind\":2048,\"name\":\"matchesPreferences\",\"url\":\"classes/IndexRepresentationStore.html#matchesPreferences\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"IndexRepresentationStore\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/IndexRepresentationStore.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"IndexRepresentationStore\"},{\"kind\":2048,\"name\":\"hasResource\",\"url\":\"classes/IndexRepresentationStore.html#hasResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IndexRepresentationStore\"},{\"kind\":2048,\"name\":\"addResource\",\"url\":\"classes/IndexRepresentationStore.html#addResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IndexRepresentationStore\"},{\"kind\":2048,\"name\":\"deleteResource\",\"url\":\"classes/IndexRepresentationStore.html#deleteResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IndexRepresentationStore\"},{\"kind\":2048,\"name\":\"modifyResource\",\"url\":\"classes/IndexRepresentationStore.html#modifyResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IndexRepresentationStore\"},{\"kind\":2048,\"name\":\"setRepresentation\",\"url\":\"classes/IndexRepresentationStore.html#setRepresentation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IndexRepresentationStore\"},{\"kind\":128,\"name\":\"LockingResourceStore\",\"url\":\"classes/LockingResourceStore.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/LockingResourceStore.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"LockingResourceStore\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/LockingResourceStore.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"LockingResourceStore\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/LockingResourceStore.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"LockingResourceStore\"},{\"kind\":1024,\"name\":\"locks\",\"url\":\"classes/LockingResourceStore.html#locks\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"LockingResourceStore\"},{\"kind\":1024,\"name\":\"auxiliaryStrategy\",\"url\":\"classes/LockingResourceStore.html#auxiliaryStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"LockingResourceStore\"},{\"kind\":2048,\"name\":\"hasResource\",\"url\":\"classes/LockingResourceStore.html#hasResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"LockingResourceStore\"},{\"kind\":2048,\"name\":\"getRepresentation\",\"url\":\"classes/LockingResourceStore.html#getRepresentation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"LockingResourceStore\"},{\"kind\":2048,\"name\":\"addResource\",\"url\":\"classes/LockingResourceStore.html#addResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"LockingResourceStore\"},{\"kind\":2048,\"name\":\"setRepresentation\",\"url\":\"classes/LockingResourceStore.html#setRepresentation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"LockingResourceStore\"},{\"kind\":2048,\"name\":\"deleteResource\",\"url\":\"classes/LockingResourceStore.html#deleteResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"LockingResourceStore\"},{\"kind\":2048,\"name\":\"modifyResource\",\"url\":\"classes/LockingResourceStore.html#modifyResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"LockingResourceStore\"},{\"kind\":2048,\"name\":\"getLockIdentifier\",\"url\":\"classes/LockingResourceStore.html#getLockIdentifier\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"LockingResourceStore\"},{\"kind\":2048,\"name\":\"lockedRepresentationRun\",\"url\":\"classes/LockingResourceStore.html#lockedRepresentationRun\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"LockingResourceStore\"},{\"kind\":2048,\"name\":\"createExpiringRepresentation\",\"url\":\"classes/LockingResourceStore.html#createExpiringRepresentation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"LockingResourceStore\"},{\"kind\":2048,\"name\":\"waitForStreamToEnd\",\"url\":\"classes/LockingResourceStore.html#waitForStreamToEnd\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"LockingResourceStore\"},{\"kind\":128,\"name\":\"MonitoringStore\",\"url\":\"classes/MonitoringStore.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MonitoringStore.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"MonitoringStore\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/MonitoringStore.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"MonitoringStore\"},{\"kind\":2048,\"name\":\"hasResource\",\"url\":\"classes/MonitoringStore.html#hasResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"MonitoringStore\"},{\"kind\":2048,\"name\":\"getRepresentation\",\"url\":\"classes/MonitoringStore.html#getRepresentation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"MonitoringStore\"},{\"kind\":2048,\"name\":\"addResource\",\"url\":\"classes/MonitoringStore.html#addResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"MonitoringStore\"},{\"kind\":2048,\"name\":\"deleteResource\",\"url\":\"classes/MonitoringStore.html#deleteResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"MonitoringStore\"},{\"kind\":2048,\"name\":\"setRepresentation\",\"url\":\"classes/MonitoringStore.html#setRepresentation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"MonitoringStore\"},{\"kind\":2048,\"name\":\"modifyResource\",\"url\":\"classes/MonitoringStore.html#modifyResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"MonitoringStore\"},{\"kind\":2048,\"name\":\"emitChanged\",\"url\":\"classes/MonitoringStore.html#emitChanged\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"MonitoringStore\"},{\"kind\":128,\"name\":\"PassthroughStore\",\"url\":\"classes/PassthroughStore.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/PassthroughStore.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"PassthroughStore\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/PassthroughStore.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"PassthroughStore\"},{\"kind\":2048,\"name\":\"hasResource\",\"url\":\"classes/PassthroughStore.html#hasResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PassthroughStore\"},{\"kind\":2048,\"name\":\"getRepresentation\",\"url\":\"classes/PassthroughStore.html#getRepresentation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PassthroughStore\"},{\"kind\":2048,\"name\":\"addResource\",\"url\":\"classes/PassthroughStore.html#addResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PassthroughStore\"},{\"kind\":2048,\"name\":\"deleteResource\",\"url\":\"classes/PassthroughStore.html#deleteResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PassthroughStore\"},{\"kind\":2048,\"name\":\"modifyResource\",\"url\":\"classes/PassthroughStore.html#modifyResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PassthroughStore\"},{\"kind\":2048,\"name\":\"setRepresentation\",\"url\":\"classes/PassthroughStore.html#setRepresentation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PassthroughStore\"},{\"kind\":128,\"name\":\"PatchingStore\",\"url\":\"classes/PatchingStore.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/PatchingStore.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"PatchingStore\"},{\"kind\":1024,\"name\":\"patchHandler\",\"url\":\"classes/PatchingStore.html#patchHandler\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"PatchingStore\"},{\"kind\":2048,\"name\":\"modifyResource\",\"url\":\"classes/PatchingStore.html#modifyResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"PatchingStore\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/PatchingStore.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"PatchingStore\"},{\"kind\":2048,\"name\":\"hasResource\",\"url\":\"classes/PatchingStore.html#hasResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PatchingStore\"},{\"kind\":2048,\"name\":\"getRepresentation\",\"url\":\"classes/PatchingStore.html#getRepresentation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PatchingStore\"},{\"kind\":2048,\"name\":\"addResource\",\"url\":\"classes/PatchingStore.html#addResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PatchingStore\"},{\"kind\":2048,\"name\":\"deleteResource\",\"url\":\"classes/PatchingStore.html#deleteResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PatchingStore\"},{\"kind\":2048,\"name\":\"setRepresentation\",\"url\":\"classes/PatchingStore.html#setRepresentation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PatchingStore\"},{\"kind\":128,\"name\":\"ReadOnlyStore\",\"url\":\"classes/ReadOnlyStore.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ReadOnlyStore.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ReadOnlyStore\"},{\"kind\":2048,\"name\":\"addResource\",\"url\":\"classes/ReadOnlyStore.html#addResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ReadOnlyStore\"},{\"kind\":2048,\"name\":\"deleteResource\",\"url\":\"classes/ReadOnlyStore.html#deleteResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ReadOnlyStore\"},{\"kind\":2048,\"name\":\"modifyResource\",\"url\":\"classes/ReadOnlyStore.html#modifyResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ReadOnlyStore\"},{\"kind\":2048,\"name\":\"setRepresentation\",\"url\":\"classes/ReadOnlyStore.html#setRepresentation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ReadOnlyStore\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/ReadOnlyStore.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"ReadOnlyStore\"},{\"kind\":2048,\"name\":\"hasResource\",\"url\":\"classes/ReadOnlyStore.html#hasResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ReadOnlyStore\"},{\"kind\":2048,\"name\":\"getRepresentation\",\"url\":\"classes/ReadOnlyStore.html#getRepresentation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ReadOnlyStore\"},{\"kind\":128,\"name\":\"RepresentationConvertingStore\",\"url\":\"classes/RepresentationConvertingStore.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RepresentationConvertingStore.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"RepresentationConvertingStore\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/RepresentationConvertingStore.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"RepresentationConvertingStore\"},{\"kind\":1024,\"name\":\"metadataStrategy\",\"url\":\"classes/RepresentationConvertingStore.html#metadataStrategy\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RepresentationConvertingStore\"},{\"kind\":1024,\"name\":\"inConverter\",\"url\":\"classes/RepresentationConvertingStore.html#inConverter\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RepresentationConvertingStore\"},{\"kind\":1024,\"name\":\"outConverter\",\"url\":\"classes/RepresentationConvertingStore.html#outConverter\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RepresentationConvertingStore\"},{\"kind\":1024,\"name\":\"inPreferences\",\"url\":\"classes/RepresentationConvertingStore.html#inPreferences\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RepresentationConvertingStore\"},{\"kind\":2048,\"name\":\"getRepresentation\",\"url\":\"classes/RepresentationConvertingStore.html#getRepresentation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RepresentationConvertingStore\"},{\"kind\":2048,\"name\":\"addResource\",\"url\":\"classes/RepresentationConvertingStore.html#addResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RepresentationConvertingStore\"},{\"kind\":2048,\"name\":\"setRepresentation\",\"url\":\"classes/RepresentationConvertingStore.html#setRepresentation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RepresentationConvertingStore\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/RepresentationConvertingStore.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected tsd-is-inherited\",\"parent\":\"RepresentationConvertingStore\"},{\"kind\":2048,\"name\":\"hasResource\",\"url\":\"classes/RepresentationConvertingStore.html#hasResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RepresentationConvertingStore\"},{\"kind\":2048,\"name\":\"deleteResource\",\"url\":\"classes/RepresentationConvertingStore.html#deleteResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RepresentationConvertingStore\"},{\"kind\":2048,\"name\":\"modifyResource\",\"url\":\"classes/RepresentationConvertingStore.html#modifyResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RepresentationConvertingStore\"},{\"kind\":256,\"name\":\"ResourceSet\",\"url\":\"interfaces/ResourceSet.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"hasResource\",\"url\":\"interfaces/ResourceSet.html#hasResource\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ResourceSet\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ResourceSet.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"ResourceSet\"},{\"kind\":4194304,\"name\":\"ChangeMap\",\"url\":\"types/ChangeMap.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":256,\"name\":\"ResourceStore\",\"url\":\"interfaces/ResourceStore.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"getRepresentation\",\"url\":\"interfaces/ResourceStore.html#getRepresentation\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ResourceStore\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ResourceStore.html#__type-4\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"ResourceStore\"},{\"kind\":1024,\"name\":\"setRepresentation\",\"url\":\"interfaces/ResourceStore.html#setRepresentation\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ResourceStore\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ResourceStore.html#__type-10\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"ResourceStore\"},{\"kind\":1024,\"name\":\"addResource\",\"url\":\"interfaces/ResourceStore.html#addResource\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ResourceStore\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ResourceStore.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"ResourceStore\"},{\"kind\":1024,\"name\":\"deleteResource\",\"url\":\"interfaces/ResourceStore.html#deleteResource\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ResourceStore\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ResourceStore.html#__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"ResourceStore\"},{\"kind\":1024,\"name\":\"modifyResource\",\"url\":\"interfaces/ResourceStore.html#modifyResource\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ResourceStore\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ResourceStore.html#__type-8\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"ResourceStore\"},{\"kind\":1024,\"name\":\"hasResource\",\"url\":\"interfaces/ResourceStore.html#hasResource\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"ResourceStore\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ResourceStore.html#__type-6\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"ResourceStore\"},{\"kind\":128,\"name\":\"RoutingResourceStore\",\"url\":\"classes/RoutingResourceStore.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RoutingResourceStore.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"RoutingResourceStore\"},{\"kind\":1024,\"name\":\"rule\",\"url\":\"classes/RoutingResourceStore.html#rule\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RoutingResourceStore\"},{\"kind\":2048,\"name\":\"hasResource\",\"url\":\"classes/RoutingResourceStore.html#hasResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RoutingResourceStore\"},{\"kind\":2048,\"name\":\"getRepresentation\",\"url\":\"classes/RoutingResourceStore.html#getRepresentation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RoutingResourceStore\"},{\"kind\":2048,\"name\":\"addResource\",\"url\":\"classes/RoutingResourceStore.html#addResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RoutingResourceStore\"},{\"kind\":2048,\"name\":\"setRepresentation\",\"url\":\"classes/RoutingResourceStore.html#setRepresentation\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RoutingResourceStore\"},{\"kind\":2048,\"name\":\"deleteResource\",\"url\":\"classes/RoutingResourceStore.html#deleteResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RoutingResourceStore\"},{\"kind\":2048,\"name\":\"modifyResource\",\"url\":\"classes/RoutingResourceStore.html#modifyResource\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RoutingResourceStore\"},{\"kind\":2048,\"name\":\"getStore\",\"url\":\"classes/RoutingResourceStore.html#getStore\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"RoutingResourceStore\"},{\"kind\":128,\"name\":\"BadRequestHttpError\",\"url\":\"classes/BadRequestHttpError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/BadRequestHttpError.html#statusCode-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BadRequestHttpError\"},{\"kind\":1024,\"name\":\"uri\",\"url\":\"classes/BadRequestHttpError.html#uri\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BadRequestHttpError\"},{\"kind\":1024,\"name\":\"isInstance\",\"url\":\"classes/BadRequestHttpError.html#isInstance\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BadRequestHttpError\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/BadRequestHttpError.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"BadRequestHttpError\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/BadRequestHttpError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"BadRequestHttpError\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/BadRequestHttpError.html#statusCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BadRequestHttpError\"},{\"kind\":1024,\"name\":\"cause\",\"url\":\"classes/BadRequestHttpError.html#cause\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BadRequestHttpError\"},{\"kind\":1024,\"name\":\"errorCode\",\"url\":\"classes/BadRequestHttpError.html#errorCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BadRequestHttpError\"},{\"kind\":1024,\"name\":\"details\",\"url\":\"classes/BadRequestHttpError.html#details\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BadRequestHttpError\"},{\"kind\":2048,\"name\":\"generateMetadata\",\"url\":\"classes/BadRequestHttpError.html#generateMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"BadRequestHttpError\"},{\"kind\":128,\"name\":\"ConflictHttpError\",\"url\":\"classes/ConflictHttpError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/ConflictHttpError.html#statusCode-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConflictHttpError\"},{\"kind\":1024,\"name\":\"uri\",\"url\":\"classes/ConflictHttpError.html#uri\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConflictHttpError\"},{\"kind\":1024,\"name\":\"isInstance\",\"url\":\"classes/ConflictHttpError.html#isInstance\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConflictHttpError\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/ConflictHttpError.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"ConflictHttpError\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ConflictHttpError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ConflictHttpError\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/ConflictHttpError.html#statusCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConflictHttpError\"},{\"kind\":1024,\"name\":\"cause\",\"url\":\"classes/ConflictHttpError.html#cause\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConflictHttpError\"},{\"kind\":1024,\"name\":\"errorCode\",\"url\":\"classes/ConflictHttpError.html#errorCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConflictHttpError\"},{\"kind\":1024,\"name\":\"details\",\"url\":\"classes/ConflictHttpError.html#details\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConflictHttpError\"},{\"kind\":2048,\"name\":\"generateMetadata\",\"url\":\"classes/ConflictHttpError.html#generateMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ConflictHttpError\"},{\"kind\":64,\"name\":\"isError\",\"url\":\"functions/isError.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"assertError\",\"url\":\"functions/assertError.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"createErrorMessage\",\"url\":\"functions/createErrorMessage.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":128,\"name\":\"ForbiddenHttpError\",\"url\":\"classes/ForbiddenHttpError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/ForbiddenHttpError.html#statusCode-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ForbiddenHttpError\"},{\"kind\":1024,\"name\":\"uri\",\"url\":\"classes/ForbiddenHttpError.html#uri\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ForbiddenHttpError\"},{\"kind\":1024,\"name\":\"isInstance\",\"url\":\"classes/ForbiddenHttpError.html#isInstance\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ForbiddenHttpError\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/ForbiddenHttpError.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"ForbiddenHttpError\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ForbiddenHttpError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ForbiddenHttpError\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/ForbiddenHttpError.html#statusCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ForbiddenHttpError\"},{\"kind\":1024,\"name\":\"cause\",\"url\":\"classes/ForbiddenHttpError.html#cause\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ForbiddenHttpError\"},{\"kind\":1024,\"name\":\"errorCode\",\"url\":\"classes/ForbiddenHttpError.html#errorCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ForbiddenHttpError\"},{\"kind\":1024,\"name\":\"details\",\"url\":\"classes/ForbiddenHttpError.html#details\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ForbiddenHttpError\"},{\"kind\":2048,\"name\":\"generateMetadata\",\"url\":\"classes/ForbiddenHttpError.html#generateMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ForbiddenHttpError\"},{\"kind\":128,\"name\":\"FoundHttpError\",\"url\":\"classes/FoundHttpError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/FoundHttpError.html#statusCode-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"FoundHttpError\"},{\"kind\":1024,\"name\":\"uri\",\"url\":\"classes/FoundHttpError.html#uri\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"FoundHttpError\"},{\"kind\":1024,\"name\":\"isInstance\",\"url\":\"classes/FoundHttpError.html#isInstance\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"FoundHttpError\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/FoundHttpError.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"FoundHttpError\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/FoundHttpError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"FoundHttpError\"},{\"kind\":1024,\"name\":\"location\",\"url\":\"classes/FoundHttpError.html#location\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"FoundHttpError\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/FoundHttpError.html#statusCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"FoundHttpError\"},{\"kind\":1024,\"name\":\"cause\",\"url\":\"classes/FoundHttpError.html#cause\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"FoundHttpError\"},{\"kind\":1024,\"name\":\"errorCode\",\"url\":\"classes/FoundHttpError.html#errorCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"FoundHttpError\"},{\"kind\":1024,\"name\":\"details\",\"url\":\"classes/FoundHttpError.html#details\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"FoundHttpError\"},{\"kind\":2048,\"name\":\"generateMetadata\",\"url\":\"classes/FoundHttpError.html#generateMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"FoundHttpError\"},{\"kind\":64,\"name\":\"generateHttpErrorUri\",\"url\":\"functions/generateHttpErrorUri.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"generateHttpErrorClass\",\"url\":\"functions/generateHttpErrorClass.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":256,\"name\":\"HttpErrorOptions\",\"url\":\"interfaces/HttpErrorOptions.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"cause\",\"url\":\"interfaces/HttpErrorOptions.html#cause\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"HttpErrorOptions\"},{\"kind\":1024,\"name\":\"errorCode\",\"url\":\"interfaces/HttpErrorOptions.html#errorCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"HttpErrorOptions\"},{\"kind\":1024,\"name\":\"details\",\"url\":\"interfaces/HttpErrorOptions.html#details\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"HttpErrorOptions\"},{\"kind\":128,\"name\":\"HttpError\",\"url\":\"classes/HttpError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":2048,\"name\":\"isInstance\",\"url\":\"classes/HttpError.html#isInstance\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"HttpError\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/HttpError.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"HttpError\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/HttpError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"HttpError\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/HttpError.html#statusCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"HttpError\"},{\"kind\":1024,\"name\":\"cause\",\"url\":\"classes/HttpError.html#cause\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"HttpError\"},{\"kind\":1024,\"name\":\"errorCode\",\"url\":\"classes/HttpError.html#errorCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"HttpError\"},{\"kind\":1024,\"name\":\"details\",\"url\":\"classes/HttpError.html#details\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"HttpError\"},{\"kind\":2048,\"name\":\"generateMetadata\",\"url\":\"classes/HttpError.html#generateMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"HttpError\"},{\"kind\":256,\"name\":\"HttpErrorClass\",\"url\":\"interfaces/HttpErrorClass.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"interfaces/HttpErrorClass.html#statusCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"HttpErrorClass\"},{\"kind\":1024,\"name\":\"uri\",\"url\":\"interfaces/HttpErrorClass.html#uri\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"HttpErrorClass\"},{\"kind\":1024,\"name\":\"isInstance\",\"url\":\"interfaces/HttpErrorClass.html#isInstance\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"HttpErrorClass\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/HttpErrorClass.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"HttpErrorClass\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"interfaces/HttpErrorClass.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-interface\",\"parent\":\"HttpErrorClass\"},{\"kind\":64,\"name\":\"getStatusCode\",\"url\":\"functions/getStatusCode.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"createAggregateError\",\"url\":\"functions/createAggregateError.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":128,\"name\":\"InternalServerError\",\"url\":\"classes/InternalServerError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/InternalServerError.html#statusCode-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"InternalServerError\"},{\"kind\":1024,\"name\":\"uri\",\"url\":\"classes/InternalServerError.html#uri\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"InternalServerError\"},{\"kind\":1024,\"name\":\"isInstance\",\"url\":\"classes/InternalServerError.html#isInstance\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"InternalServerError\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/InternalServerError.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"InternalServerError\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/InternalServerError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"InternalServerError\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/InternalServerError.html#statusCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"InternalServerError\"},{\"kind\":1024,\"name\":\"cause\",\"url\":\"classes/InternalServerError.html#cause\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"InternalServerError\"},{\"kind\":1024,\"name\":\"errorCode\",\"url\":\"classes/InternalServerError.html#errorCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"InternalServerError\"},{\"kind\":1024,\"name\":\"details\",\"url\":\"classes/InternalServerError.html#details\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"InternalServerError\"},{\"kind\":2048,\"name\":\"generateMetadata\",\"url\":\"classes/InternalServerError.html#generateMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"InternalServerError\"},{\"kind\":128,\"name\":\"MethodNotAllowedHttpError\",\"url\":\"classes/MethodNotAllowedHttpError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/MethodNotAllowedHttpError.html#statusCode-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MethodNotAllowedHttpError\"},{\"kind\":1024,\"name\":\"uri\",\"url\":\"classes/MethodNotAllowedHttpError.html#uri\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MethodNotAllowedHttpError\"},{\"kind\":1024,\"name\":\"isInstance\",\"url\":\"classes/MethodNotAllowedHttpError.html#isInstance\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MethodNotAllowedHttpError\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/MethodNotAllowedHttpError.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"MethodNotAllowedHttpError\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MethodNotAllowedHttpError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"MethodNotAllowedHttpError\"},{\"kind\":1024,\"name\":\"methods\",\"url\":\"classes/MethodNotAllowedHttpError.html#methods\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"MethodNotAllowedHttpError\"},{\"kind\":2048,\"name\":\"generateMetadata\",\"url\":\"classes/MethodNotAllowedHttpError.html#generateMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"MethodNotAllowedHttpError\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/MethodNotAllowedHttpError.html#statusCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MethodNotAllowedHttpError\"},{\"kind\":1024,\"name\":\"cause\",\"url\":\"classes/MethodNotAllowedHttpError.html#cause\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MethodNotAllowedHttpError\"},{\"kind\":1024,\"name\":\"errorCode\",\"url\":\"classes/MethodNotAllowedHttpError.html#errorCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MethodNotAllowedHttpError\"},{\"kind\":1024,\"name\":\"details\",\"url\":\"classes/MethodNotAllowedHttpError.html#details\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MethodNotAllowedHttpError\"},{\"kind\":128,\"name\":\"MovedPermanentlyHttpError\",\"url\":\"classes/MovedPermanentlyHttpError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/MovedPermanentlyHttpError.html#statusCode-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MovedPermanentlyHttpError\"},{\"kind\":1024,\"name\":\"uri\",\"url\":\"classes/MovedPermanentlyHttpError.html#uri\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MovedPermanentlyHttpError\"},{\"kind\":1024,\"name\":\"isInstance\",\"url\":\"classes/MovedPermanentlyHttpError.html#isInstance\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MovedPermanentlyHttpError\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/MovedPermanentlyHttpError.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"MovedPermanentlyHttpError\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MovedPermanentlyHttpError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"MovedPermanentlyHttpError\"},{\"kind\":1024,\"name\":\"location\",\"url\":\"classes/MovedPermanentlyHttpError.html#location\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MovedPermanentlyHttpError\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/MovedPermanentlyHttpError.html#statusCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MovedPermanentlyHttpError\"},{\"kind\":1024,\"name\":\"cause\",\"url\":\"classes/MovedPermanentlyHttpError.html#cause\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MovedPermanentlyHttpError\"},{\"kind\":1024,\"name\":\"errorCode\",\"url\":\"classes/MovedPermanentlyHttpError.html#errorCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MovedPermanentlyHttpError\"},{\"kind\":1024,\"name\":\"details\",\"url\":\"classes/MovedPermanentlyHttpError.html#details\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MovedPermanentlyHttpError\"},{\"kind\":2048,\"name\":\"generateMetadata\",\"url\":\"classes/MovedPermanentlyHttpError.html#generateMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MovedPermanentlyHttpError\"},{\"kind\":128,\"name\":\"NotFoundHttpError\",\"url\":\"classes/NotFoundHttpError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/NotFoundHttpError.html#statusCode-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotFoundHttpError\"},{\"kind\":1024,\"name\":\"uri\",\"url\":\"classes/NotFoundHttpError.html#uri\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotFoundHttpError\"},{\"kind\":1024,\"name\":\"isInstance\",\"url\":\"classes/NotFoundHttpError.html#isInstance\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotFoundHttpError\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/NotFoundHttpError.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"NotFoundHttpError\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/NotFoundHttpError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"NotFoundHttpError\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/NotFoundHttpError.html#statusCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotFoundHttpError\"},{\"kind\":1024,\"name\":\"cause\",\"url\":\"classes/NotFoundHttpError.html#cause\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotFoundHttpError\"},{\"kind\":1024,\"name\":\"errorCode\",\"url\":\"classes/NotFoundHttpError.html#errorCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotFoundHttpError\"},{\"kind\":1024,\"name\":\"details\",\"url\":\"classes/NotFoundHttpError.html#details\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotFoundHttpError\"},{\"kind\":2048,\"name\":\"generateMetadata\",\"url\":\"classes/NotFoundHttpError.html#generateMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotFoundHttpError\"},{\"kind\":128,\"name\":\"NotImplementedHttpError\",\"url\":\"classes/NotImplementedHttpError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/NotImplementedHttpError.html#statusCode-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotImplementedHttpError\"},{\"kind\":1024,\"name\":\"uri\",\"url\":\"classes/NotImplementedHttpError.html#uri\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotImplementedHttpError\"},{\"kind\":1024,\"name\":\"isInstance\",\"url\":\"classes/NotImplementedHttpError.html#isInstance\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotImplementedHttpError\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/NotImplementedHttpError.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"NotImplementedHttpError\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/NotImplementedHttpError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"NotImplementedHttpError\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/NotImplementedHttpError.html#statusCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotImplementedHttpError\"},{\"kind\":1024,\"name\":\"cause\",\"url\":\"classes/NotImplementedHttpError.html#cause\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotImplementedHttpError\"},{\"kind\":1024,\"name\":\"errorCode\",\"url\":\"classes/NotImplementedHttpError.html#errorCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotImplementedHttpError\"},{\"kind\":1024,\"name\":\"details\",\"url\":\"classes/NotImplementedHttpError.html#details\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotImplementedHttpError\"},{\"kind\":2048,\"name\":\"generateMetadata\",\"url\":\"classes/NotImplementedHttpError.html#generateMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"NotImplementedHttpError\"},{\"kind\":128,\"name\":\"PreconditionFailedHttpError\",\"url\":\"classes/PreconditionFailedHttpError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/PreconditionFailedHttpError.html#statusCode-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PreconditionFailedHttpError\"},{\"kind\":1024,\"name\":\"uri\",\"url\":\"classes/PreconditionFailedHttpError.html#uri\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PreconditionFailedHttpError\"},{\"kind\":1024,\"name\":\"isInstance\",\"url\":\"classes/PreconditionFailedHttpError.html#isInstance\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PreconditionFailedHttpError\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/PreconditionFailedHttpError.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"PreconditionFailedHttpError\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/PreconditionFailedHttpError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"PreconditionFailedHttpError\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/PreconditionFailedHttpError.html#statusCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PreconditionFailedHttpError\"},{\"kind\":1024,\"name\":\"cause\",\"url\":\"classes/PreconditionFailedHttpError.html#cause\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PreconditionFailedHttpError\"},{\"kind\":1024,\"name\":\"errorCode\",\"url\":\"classes/PreconditionFailedHttpError.html#errorCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PreconditionFailedHttpError\"},{\"kind\":1024,\"name\":\"details\",\"url\":\"classes/PreconditionFailedHttpError.html#details\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PreconditionFailedHttpError\"},{\"kind\":2048,\"name\":\"generateMetadata\",\"url\":\"classes/PreconditionFailedHttpError.html#generateMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"PreconditionFailedHttpError\"},{\"kind\":64,\"name\":\"generateRedirectHttpErrorClass\",\"url\":\"functions/generateRedirectHttpErrorClass.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":128,\"name\":\"RedirectHttpError\",\"url\":\"classes/RedirectHttpError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":2048,\"name\":\"isInstance\",\"url\":\"classes/RedirectHttpError.html#isInstance\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RedirectHttpError\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/RedirectHttpError.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"RedirectHttpError\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RedirectHttpError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"RedirectHttpError\"},{\"kind\":1024,\"name\":\"location\",\"url\":\"classes/RedirectHttpError.html#location\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"RedirectHttpError\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/RedirectHttpError.html#statusCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RedirectHttpError\"},{\"kind\":1024,\"name\":\"cause\",\"url\":\"classes/RedirectHttpError.html#cause\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RedirectHttpError\"},{\"kind\":1024,\"name\":\"errorCode\",\"url\":\"classes/RedirectHttpError.html#errorCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RedirectHttpError\"},{\"kind\":1024,\"name\":\"details\",\"url\":\"classes/RedirectHttpError.html#details\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RedirectHttpError\"},{\"kind\":2048,\"name\":\"generateMetadata\",\"url\":\"classes/RedirectHttpError.html#generateMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"RedirectHttpError\"},{\"kind\":256,\"name\":\"RedirectHttpErrorClass\",\"url\":\"interfaces/RedirectHttpErrorClass.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"interfaces/RedirectHttpErrorClass.html#statusCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RedirectHttpErrorClass\"},{\"kind\":1024,\"name\":\"uri\",\"url\":\"interfaces/RedirectHttpErrorClass.html#uri\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RedirectHttpErrorClass\"},{\"kind\":1024,\"name\":\"isInstance\",\"url\":\"interfaces/RedirectHttpErrorClass.html#isInstance\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RedirectHttpErrorClass\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/RedirectHttpErrorClass.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"RedirectHttpErrorClass\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"interfaces/RedirectHttpErrorClass.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"RedirectHttpErrorClass\"},{\"kind\":64,\"name\":\"isSystemError\",\"url\":\"functions/isSystemError.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":256,\"name\":\"SystemError\",\"url\":\"interfaces/SystemError.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"address\",\"url\":\"interfaces/SystemError.html#address\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SystemError\"},{\"kind\":1024,\"name\":\"code\",\"url\":\"interfaces/SystemError.html#code\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SystemError\"},{\"kind\":1024,\"name\":\"dest\",\"url\":\"interfaces/SystemError.html#dest\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SystemError\"},{\"kind\":1024,\"name\":\"errno\",\"url\":\"interfaces/SystemError.html#errno\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SystemError\"},{\"kind\":1024,\"name\":\"info\",\"url\":\"interfaces/SystemError.html#info\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SystemError\"},{\"kind\":1024,\"name\":\"path\",\"url\":\"interfaces/SystemError.html#path\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SystemError\"},{\"kind\":1024,\"name\":\"port\",\"url\":\"interfaces/SystemError.html#port\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SystemError\"},{\"kind\":1024,\"name\":\"syscall\",\"url\":\"interfaces/SystemError.html#syscall\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SystemError\"},{\"kind\":128,\"name\":\"UnauthorizedHttpError\",\"url\":\"classes/UnauthorizedHttpError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/UnauthorizedHttpError.html#statusCode-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnauthorizedHttpError\"},{\"kind\":1024,\"name\":\"uri\",\"url\":\"classes/UnauthorizedHttpError.html#uri\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnauthorizedHttpError\"},{\"kind\":1024,\"name\":\"isInstance\",\"url\":\"classes/UnauthorizedHttpError.html#isInstance\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnauthorizedHttpError\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/UnauthorizedHttpError.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"UnauthorizedHttpError\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/UnauthorizedHttpError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"UnauthorizedHttpError\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/UnauthorizedHttpError.html#statusCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnauthorizedHttpError\"},{\"kind\":1024,\"name\":\"cause\",\"url\":\"classes/UnauthorizedHttpError.html#cause\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnauthorizedHttpError\"},{\"kind\":1024,\"name\":\"errorCode\",\"url\":\"classes/UnauthorizedHttpError.html#errorCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnauthorizedHttpError\"},{\"kind\":1024,\"name\":\"details\",\"url\":\"classes/UnauthorizedHttpError.html#details\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnauthorizedHttpError\"},{\"kind\":2048,\"name\":\"generateMetadata\",\"url\":\"classes/UnauthorizedHttpError.html#generateMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnauthorizedHttpError\"},{\"kind\":128,\"name\":\"UnsupportedMediaTypeHttpError\",\"url\":\"classes/UnsupportedMediaTypeHttpError.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/UnsupportedMediaTypeHttpError.html#statusCode-1\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnsupportedMediaTypeHttpError\"},{\"kind\":1024,\"name\":\"uri\",\"url\":\"classes/UnsupportedMediaTypeHttpError.html#uri\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnsupportedMediaTypeHttpError\"},{\"kind\":1024,\"name\":\"isInstance\",\"url\":\"classes/UnsupportedMediaTypeHttpError.html#isInstance\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnsupportedMediaTypeHttpError\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/UnsupportedMediaTypeHttpError.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"UnsupportedMediaTypeHttpError\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/UnsupportedMediaTypeHttpError.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"UnsupportedMediaTypeHttpError\"},{\"kind\":1024,\"name\":\"statusCode\",\"url\":\"classes/UnsupportedMediaTypeHttpError.html#statusCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnsupportedMediaTypeHttpError\"},{\"kind\":1024,\"name\":\"cause\",\"url\":\"classes/UnsupportedMediaTypeHttpError.html#cause\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnsupportedMediaTypeHttpError\"},{\"kind\":1024,\"name\":\"errorCode\",\"url\":\"classes/UnsupportedMediaTypeHttpError.html#errorCode\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnsupportedMediaTypeHttpError\"},{\"kind\":1024,\"name\":\"details\",\"url\":\"classes/UnsupportedMediaTypeHttpError.html#details\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnsupportedMediaTypeHttpError\"},{\"kind\":2048,\"name\":\"generateMetadata\",\"url\":\"classes/UnsupportedMediaTypeHttpError.html#generateMetadata\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnsupportedMediaTypeHttpError\"},{\"kind\":128,\"name\":\"AsyncHandler\",\"url\":\"classes/AsyncHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/AsyncHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"AsyncHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/AsyncHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"AsyncHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/AsyncHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"AsyncHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/AsyncHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"AsyncHandler\"},{\"kind\":128,\"name\":\"BooleanHandler\",\"url\":\"classes/BooleanHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/BooleanHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"BooleanHandler\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/BooleanHandler.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"BooleanHandler\"},{\"kind\":1024,\"name\":\"handlers\",\"url\":\"classes/BooleanHandler.html#handlers\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"BooleanHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/BooleanHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BooleanHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/BooleanHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BooleanHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/BooleanHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BooleanHandler\"},{\"kind\":128,\"name\":\"ConditionalHandler\",\"url\":\"classes/ConditionalHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ConditionalHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ConditionalHandler\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/ConditionalHandler.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConditionalHandler\"},{\"kind\":1024,\"name\":\"storage\",\"url\":\"classes/ConditionalHandler.html#storage\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConditionalHandler\"},{\"kind\":1024,\"name\":\"storageKey\",\"url\":\"classes/ConditionalHandler.html#storageKey\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConditionalHandler\"},{\"kind\":1024,\"name\":\"storageValue\",\"url\":\"classes/ConditionalHandler.html#storageValue\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConditionalHandler\"},{\"kind\":1024,\"name\":\"finished\",\"url\":\"classes/ConditionalHandler.html#finished\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConditionalHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ConditionalHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ConditionalHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ConditionalHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ConditionalHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ConditionalHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ConditionalHandler\"},{\"kind\":2048,\"name\":\"checkCondition\",\"url\":\"classes/ConditionalHandler.html#checkCondition\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ConditionalHandler\"},{\"kind\":64,\"name\":\"findHandler\",\"url\":\"functions/findHandler.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"filterHandlers\",\"url\":\"functions/filterHandlers.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":128,\"name\":\"MethodFilterHandler\",\"url\":\"classes/MethodFilterHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MethodFilterHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"MethodFilterHandler\"},{\"kind\":1024,\"name\":\"methods\",\"url\":\"classes/MethodFilterHandler.html#methods\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"MethodFilterHandler\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/MethodFilterHandler.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"MethodFilterHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/MethodFilterHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"MethodFilterHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/MethodFilterHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"MethodFilterHandler\"},{\"kind\":2048,\"name\":\"findMethod\",\"url\":\"classes/MethodFilterHandler.html#findMethod\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"MethodFilterHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/MethodFilterHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"MethodFilterHandler\"},{\"kind\":128,\"name\":\"ParallelHandler\",\"url\":\"classes/ParallelHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ParallelHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ParallelHandler\"},{\"kind\":1024,\"name\":\"handlers\",\"url\":\"classes/ParallelHandler.html#handlers\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ParallelHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ParallelHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ParallelHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ParallelHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ParallelHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ParallelHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ParallelHandler\"},{\"kind\":128,\"name\":\"ProcessHandler\",\"url\":\"classes/ProcessHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ProcessHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ProcessHandler\"},{\"kind\":1024,\"name\":\"clusterManager\",\"url\":\"classes/ProcessHandler.html#clusterManager\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ProcessHandler\"},{\"kind\":1024,\"name\":\"source\",\"url\":\"classes/ProcessHandler.html#source\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ProcessHandler\"},{\"kind\":1024,\"name\":\"executeOnPrimary\",\"url\":\"classes/ProcessHandler.html#executeOnPrimary\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ProcessHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/ProcessHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ProcessHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/ProcessHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ProcessHandler\"},{\"kind\":2048,\"name\":\"canExecute\",\"url\":\"classes/ProcessHandler.html#canExecute\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"ProcessHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/ProcessHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"ProcessHandler\"},{\"kind\":128,\"name\":\"SequenceHandler\",\"url\":\"classes/SequenceHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/SequenceHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"SequenceHandler\"},{\"kind\":1024,\"name\":\"handlers\",\"url\":\"classes/SequenceHandler.html#handlers\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SequenceHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/SequenceHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SequenceHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/SequenceHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"SequenceHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/SequenceHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"SequenceHandler\"},{\"kind\":128,\"name\":\"StaticHandler\",\"url\":\"classes/StaticHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/StaticHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"StaticHandler\"},{\"kind\":1024,\"name\":\"value\",\"url\":\"classes/StaticHandler.html#value\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"StaticHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/StaticHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"StaticHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/StaticHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"StaticHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/StaticHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"StaticHandler\"},{\"kind\":128,\"name\":\"StaticThrowHandler\",\"url\":\"classes/StaticThrowHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/StaticThrowHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"StaticThrowHandler\"},{\"kind\":1024,\"name\":\"error\",\"url\":\"classes/StaticThrowHandler.html#error\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"StaticThrowHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/StaticThrowHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"StaticThrowHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/StaticThrowHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"StaticThrowHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/StaticThrowHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"StaticThrowHandler\"},{\"kind\":128,\"name\":\"UnionHandler\",\"url\":\"classes/UnionHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/UnionHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"UnionHandler\"},{\"kind\":1024,\"name\":\"handlers\",\"url\":\"classes/UnionHandler.html#handlers\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"UnionHandler\"},{\"kind\":1024,\"name\":\"requireAll\",\"url\":\"classes/UnionHandler.html#requireAll\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"UnionHandler\"},{\"kind\":1024,\"name\":\"ignoreErrors\",\"url\":\"classes/UnionHandler.html#ignoreErrors\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"UnionHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/UnionHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"UnionHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/UnionHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"UnionHandler\"},{\"kind\":2048,\"name\":\"allCanHandle\",\"url\":\"classes/UnionHandler.html#allCanHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"UnionHandler\"},{\"kind\":2048,\"name\":\"combine\",\"url\":\"classes/UnionHandler.html#combine\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-protected\",\"parent\":\"UnionHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/UnionHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnionHandler\"},{\"kind\":128,\"name\":\"UnsupportedAsyncHandler\",\"url\":\"classes/UnsupportedAsyncHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/UnsupportedAsyncHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"UnsupportedAsyncHandler\"},{\"kind\":1024,\"name\":\"errorMessage\",\"url\":\"classes/UnsupportedAsyncHandler.html#errorMessage\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"UnsupportedAsyncHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/UnsupportedAsyncHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"UnsupportedAsyncHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/UnsupportedAsyncHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"UnsupportedAsyncHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/UnsupportedAsyncHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"UnsupportedAsyncHandler\"},{\"kind\":128,\"name\":\"WaterfallHandler\",\"url\":\"classes/WaterfallHandler.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/WaterfallHandler.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"WaterfallHandler\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/WaterfallHandler.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"WaterfallHandler\"},{\"kind\":1024,\"name\":\"handlers\",\"url\":\"classes/WaterfallHandler.html#handlers\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"WaterfallHandler\"},{\"kind\":2048,\"name\":\"canHandle\",\"url\":\"classes/WaterfallHandler.html#canHandle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WaterfallHandler\"},{\"kind\":2048,\"name\":\"handle\",\"url\":\"classes/WaterfallHandler.html#handle\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WaterfallHandler\"},{\"kind\":2048,\"name\":\"handleSafe\",\"url\":\"classes/WaterfallHandler.html#handleSafe\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WaterfallHandler\"},{\"kind\":128,\"name\":\"BaseIdentifierStrategy\",\"url\":\"classes/BaseIdentifierStrategy.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/BaseIdentifierStrategy.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"BaseIdentifierStrategy\"},{\"kind\":2048,\"name\":\"supportsIdentifier\",\"url\":\"classes/BaseIdentifierStrategy.html#supportsIdentifier\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseIdentifierStrategy\"},{\"kind\":2048,\"name\":\"getParentContainer\",\"url\":\"classes/BaseIdentifierStrategy.html#getParentContainer\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseIdentifierStrategy\"},{\"kind\":2048,\"name\":\"isRootContainer\",\"url\":\"classes/BaseIdentifierStrategy.html#isRootContainer\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseIdentifierStrategy\"},{\"kind\":2048,\"name\":\"contains\",\"url\":\"classes/BaseIdentifierStrategy.html#contains\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"BaseIdentifierStrategy\"},{\"kind\":256,\"name\":\"IdentifierStrategy\",\"url\":\"interfaces/IdentifierStrategy.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"supportsIdentifier\",\"url\":\"interfaces/IdentifierStrategy.html#supportsIdentifier\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"IdentifierStrategy\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/IdentifierStrategy.html#__type-6\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"IdentifierStrategy\"},{\"kind\":1024,\"name\":\"getParentContainer\",\"url\":\"interfaces/IdentifierStrategy.html#getParentContainer\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"IdentifierStrategy\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/IdentifierStrategy.html#__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"IdentifierStrategy\"},{\"kind\":1024,\"name\":\"isRootContainer\",\"url\":\"interfaces/IdentifierStrategy.html#isRootContainer\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"IdentifierStrategy\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/IdentifierStrategy.html#__type-4\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"IdentifierStrategy\"},{\"kind\":1024,\"name\":\"contains\",\"url\":\"interfaces/IdentifierStrategy.html#contains\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"IdentifierStrategy\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/IdentifierStrategy.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"IdentifierStrategy\"},{\"kind\":128,\"name\":\"SingleRootIdentifierStrategy\",\"url\":\"classes/SingleRootIdentifierStrategy.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/SingleRootIdentifierStrategy.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"SingleRootIdentifierStrategy\"},{\"kind\":1024,\"name\":\"baseUrl\",\"url\":\"classes/SingleRootIdentifierStrategy.html#baseUrl\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SingleRootIdentifierStrategy\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/SingleRootIdentifierStrategy.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"SingleRootIdentifierStrategy\"},{\"kind\":2048,\"name\":\"supportsIdentifier\",\"url\":\"classes/SingleRootIdentifierStrategy.html#supportsIdentifier\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SingleRootIdentifierStrategy\"},{\"kind\":2048,\"name\":\"isRootContainer\",\"url\":\"classes/SingleRootIdentifierStrategy.html#isRootContainer\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SingleRootIdentifierStrategy\"},{\"kind\":2048,\"name\":\"getParentContainer\",\"url\":\"classes/SingleRootIdentifierStrategy.html#getParentContainer\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"SingleRootIdentifierStrategy\"},{\"kind\":2048,\"name\":\"contains\",\"url\":\"classes/SingleRootIdentifierStrategy.html#contains\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"SingleRootIdentifierStrategy\"},{\"kind\":128,\"name\":\"SubdomainIdentifierStrategy\",\"url\":\"classes/SubdomainIdentifierStrategy.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/SubdomainIdentifierStrategy.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"SubdomainIdentifierStrategy\"},{\"kind\":1024,\"name\":\"baseUrl\",\"url\":\"classes/SubdomainIdentifierStrategy.html#baseUrl\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SubdomainIdentifierStrategy\"},{\"kind\":1024,\"name\":\"regex\",\"url\":\"classes/SubdomainIdentifierStrategy.html#regex\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"SubdomainIdentifierStrategy\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/SubdomainIdentifierStrategy.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"SubdomainIdentifierStrategy\"},{\"kind\":2048,\"name\":\"supportsIdentifier\",\"url\":\"classes/SubdomainIdentifierStrategy.html#supportsIdentifier\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SubdomainIdentifierStrategy\"},{\"kind\":2048,\"name\":\"isRootContainer\",\"url\":\"classes/SubdomainIdentifierStrategy.html#isRootContainer\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"SubdomainIdentifierStrategy\"},{\"kind\":2048,\"name\":\"getParentContainer\",\"url\":\"classes/SubdomainIdentifierStrategy.html#getParentContainer\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"SubdomainIdentifierStrategy\"},{\"kind\":2048,\"name\":\"contains\",\"url\":\"classes/SubdomainIdentifierStrategy.html#contains\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"SubdomainIdentifierStrategy\"},{\"kind\":256,\"name\":\"ExpiringReadWriteLocker\",\"url\":\"interfaces/ExpiringReadWriteLocker.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"withReadLock\",\"url\":\"interfaces/ExpiringReadWriteLocker.html#withReadLock\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ExpiringReadWriteLocker\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ExpiringReadWriteLocker.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"ExpiringReadWriteLocker\"},{\"kind\":1024,\"name\":\"withWriteLock\",\"url\":\"interfaces/ExpiringReadWriteLocker.html#withWriteLock\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ExpiringReadWriteLocker\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ExpiringReadWriteLocker.html#__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"ExpiringReadWriteLocker\"},{\"kind\":128,\"name\":\"EqualReadWriteLocker\",\"url\":\"classes/EqualReadWriteLocker.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/EqualReadWriteLocker.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"EqualReadWriteLocker\"},{\"kind\":1024,\"name\":\"locker\",\"url\":\"classes/EqualReadWriteLocker.html#locker\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"EqualReadWriteLocker\"},{\"kind\":2048,\"name\":\"withReadLock\",\"url\":\"classes/EqualReadWriteLocker.html#withReadLock\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EqualReadWriteLocker\"},{\"kind\":2048,\"name\":\"withWriteLock\",\"url\":\"classes/EqualReadWriteLocker.html#withWriteLock\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EqualReadWriteLocker\"},{\"kind\":2048,\"name\":\"withLock\",\"url\":\"classes/EqualReadWriteLocker.html#withLock\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"EqualReadWriteLocker\"},{\"kind\":128,\"name\":\"FileSystemResourceLocker\",\"url\":\"classes/FileSystemResourceLocker.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/FileSystemResourceLocker.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"FileSystemResourceLocker\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/FileSystemResourceLocker.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"FileSystemResourceLocker\"},{\"kind\":1024,\"name\":\"attemptSettings\",\"url\":\"classes/FileSystemResourceLocker.html#attemptSettings\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"FileSystemResourceLocker\"},{\"kind\":1024,\"name\":\"lockOptions\",\"url\":\"classes/FileSystemResourceLocker.html#lockOptions\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"FileSystemResourceLocker\"},{\"kind\":1024,\"name\":\"lockFolder\",\"url\":\"classes/FileSystemResourceLocker.html#lockFolder\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"FileSystemResourceLocker\"},{\"kind\":1024,\"name\":\"finalized\",\"url\":\"classes/FileSystemResourceLocker.html#finalized\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"FileSystemResourceLocker\"},{\"kind\":2048,\"name\":\"swallowErrors\",\"url\":\"classes/FileSystemResourceLocker.html#swallowErrors\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"FileSystemResourceLocker\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/FileSystemResourceLocker.html#swallowErrors.swallowErrors-1.__type\",\"classes\":\"tsd-kind-type-literal\",\"parent\":\"FileSystemResourceLocker.swallowErrors.swallowErrors\"},{\"kind\":2048,\"name\":\"acquire\",\"url\":\"classes/FileSystemResourceLocker.html#acquire\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"FileSystemResourceLocker\"},{\"kind\":2048,\"name\":\"release\",\"url\":\"classes/FileSystemResourceLocker.html#release\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"FileSystemResourceLocker\"},{\"kind\":2048,\"name\":\"toLockfilePath\",\"url\":\"classes/FileSystemResourceLocker.html#toLockfilePath\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"FileSystemResourceLocker\"},{\"kind\":2048,\"name\":\"generateOptions\",\"url\":\"classes/FileSystemResourceLocker.html#generateOptions\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"FileSystemResourceLocker\"},{\"kind\":2048,\"name\":\"initialize\",\"url\":\"classes/FileSystemResourceLocker.html#initialize\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"FileSystemResourceLocker\"},{\"kind\":2048,\"name\":\"finalize\",\"url\":\"classes/FileSystemResourceLocker.html#finalize\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"FileSystemResourceLocker\"},{\"kind\":2048,\"name\":\"customOnCompromised\",\"url\":\"classes/FileSystemResourceLocker.html#customOnCompromised\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"FileSystemResourceLocker\"},{\"kind\":256,\"name\":\"GreedyReadWriteSuffixes\",\"url\":\"interfaces/GreedyReadWriteSuffixes.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"count\",\"url\":\"interfaces/GreedyReadWriteSuffixes.html#count\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"GreedyReadWriteSuffixes\"},{\"kind\":1024,\"name\":\"read\",\"url\":\"interfaces/GreedyReadWriteSuffixes.html#read\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"GreedyReadWriteSuffixes\"},{\"kind\":1024,\"name\":\"write\",\"url\":\"interfaces/GreedyReadWriteSuffixes.html#write\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"GreedyReadWriteSuffixes\"},{\"kind\":128,\"name\":\"GreedyReadWriteLocker\",\"url\":\"classes/GreedyReadWriteLocker.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/GreedyReadWriteLocker.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"GreedyReadWriteLocker\"},{\"kind\":1024,\"name\":\"locker\",\"url\":\"classes/GreedyReadWriteLocker.html#locker\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"GreedyReadWriteLocker\"},{\"kind\":1024,\"name\":\"storage\",\"url\":\"classes/GreedyReadWriteLocker.html#storage\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"GreedyReadWriteLocker\"},{\"kind\":1024,\"name\":\"suffixes\",\"url\":\"classes/GreedyReadWriteLocker.html#suffixes\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"GreedyReadWriteLocker\"},{\"kind\":2048,\"name\":\"withReadLock\",\"url\":\"classes/GreedyReadWriteLocker.html#withReadLock\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"GreedyReadWriteLocker\"},{\"kind\":2048,\"name\":\"withWriteLock\",\"url\":\"classes/GreedyReadWriteLocker.html#withWriteLock\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"GreedyReadWriteLocker\"},{\"kind\":2048,\"name\":\"getCountKey\",\"url\":\"classes/GreedyReadWriteLocker.html#getCountKey\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"GreedyReadWriteLocker\"},{\"kind\":2048,\"name\":\"getReadLockKey\",\"url\":\"classes/GreedyReadWriteLocker.html#getReadLockKey\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"GreedyReadWriteLocker\"},{\"kind\":2048,\"name\":\"getWriteLockKey\",\"url\":\"classes/GreedyReadWriteLocker.html#getWriteLockKey\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"GreedyReadWriteLocker\"},{\"kind\":2048,\"name\":\"preReadSetup\",\"url\":\"classes/GreedyReadWriteLocker.html#preReadSetup\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"GreedyReadWriteLocker\"},{\"kind\":2048,\"name\":\"postReadCleanup\",\"url\":\"classes/GreedyReadWriteLocker.html#postReadCleanup\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"GreedyReadWriteLocker\"},{\"kind\":2048,\"name\":\"withInternalReadLock\",\"url\":\"classes/GreedyReadWriteLocker.html#withInternalReadLock\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"GreedyReadWriteLocker\"},{\"kind\":2048,\"name\":\"incrementCount\",\"url\":\"classes/GreedyReadWriteLocker.html#incrementCount\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"GreedyReadWriteLocker\"},{\"kind\":128,\"name\":\"MemoryResourceLocker\",\"url\":\"classes/MemoryResourceLocker.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/MemoryResourceLocker.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"MemoryResourceLocker\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/MemoryResourceLocker.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"MemoryResourceLocker\"},{\"kind\":1024,\"name\":\"locker\",\"url\":\"classes/MemoryResourceLocker.html#locker\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"MemoryResourceLocker\"},{\"kind\":1024,\"name\":\"unlockCallbacks\",\"url\":\"classes/MemoryResourceLocker.html#unlockCallbacks\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"MemoryResourceLocker\"},{\"kind\":2048,\"name\":\"acquire\",\"url\":\"classes/MemoryResourceLocker.html#acquire\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"MemoryResourceLocker\"},{\"kind\":2048,\"name\":\"release\",\"url\":\"classes/MemoryResourceLocker.html#release\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"MemoryResourceLocker\"},{\"kind\":2048,\"name\":\"getLockCount\",\"url\":\"classes/MemoryResourceLocker.html#getLockCount\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"MemoryResourceLocker\"},{\"kind\":256,\"name\":\"ReadWriteLocker\",\"url\":\"interfaces/ReadWriteLocker.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"withReadLock\",\"url\":\"interfaces/ReadWriteLocker.html#withReadLock\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ReadWriteLocker\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ReadWriteLocker.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"ReadWriteLocker\"},{\"kind\":1024,\"name\":\"withWriteLock\",\"url\":\"interfaces/ReadWriteLocker.html#withWriteLock\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ReadWriteLocker\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ReadWriteLocker.html#__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"ReadWriteLocker\"},{\"kind\":256,\"name\":\"RedisSettings\",\"url\":\"interfaces/RedisSettings.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"namespacePrefix\",\"url\":\"interfaces/RedisSettings.html#namespacePrefix\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RedisSettings\"},{\"kind\":1024,\"name\":\"username\",\"url\":\"interfaces/RedisSettings.html#username\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RedisSettings\"},{\"kind\":1024,\"name\":\"password\",\"url\":\"interfaces/RedisSettings.html#password\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RedisSettings\"},{\"kind\":1024,\"name\":\"db\",\"url\":\"interfaces/RedisSettings.html#db\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"RedisSettings\"},{\"kind\":128,\"name\":\"RedisLocker\",\"url\":\"classes/RedisLocker.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RedisLocker.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"RedisLocker\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/RedisLocker.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"RedisLocker\"},{\"kind\":1024,\"name\":\"redis\",\"url\":\"classes/RedisLocker.html#redis\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RedisLocker\"},{\"kind\":1024,\"name\":\"redisRw\",\"url\":\"classes/RedisLocker.html#redisRw\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RedisLocker\"},{\"kind\":1024,\"name\":\"redisLock\",\"url\":\"classes/RedisLocker.html#redisLock\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RedisLocker\"},{\"kind\":1024,\"name\":\"attemptSettings\",\"url\":\"classes/RedisLocker.html#attemptSettings\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RedisLocker\"},{\"kind\":1024,\"name\":\"namespacePrefix\",\"url\":\"classes/RedisLocker.html#namespacePrefix\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RedisLocker\"},{\"kind\":1024,\"name\":\"finalized\",\"url\":\"classes/RedisLocker.html#finalized\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"RedisLocker\"},{\"kind\":2048,\"name\":\"createRedisClient\",\"url\":\"classes/RedisLocker.html#createRedisClient\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"RedisLocker\"},{\"kind\":2048,\"name\":\"getReadWriteKey\",\"url\":\"classes/RedisLocker.html#getReadWriteKey\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"RedisLocker\"},{\"kind\":2048,\"name\":\"getResourceKey\",\"url\":\"classes/RedisLocker.html#getResourceKey\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"RedisLocker\"},{\"kind\":2048,\"name\":\"swallowFalse\",\"url\":\"classes/RedisLocker.html#swallowFalse\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"RedisLocker\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/RedisLocker.html#swallowFalse.swallowFalse-1.__type\",\"classes\":\"tsd-kind-type-literal\",\"parent\":\"RedisLocker.swallowFalse.swallowFalse\"},{\"kind\":2048,\"name\":\"withReadLock\",\"url\":\"classes/RedisLocker.html#withReadLock\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RedisLocker\"},{\"kind\":2048,\"name\":\"withWriteLock\",\"url\":\"classes/RedisLocker.html#withWriteLock\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RedisLocker\"},{\"kind\":2048,\"name\":\"acquire\",\"url\":\"classes/RedisLocker.html#acquire\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RedisLocker\"},{\"kind\":2048,\"name\":\"release\",\"url\":\"classes/RedisLocker.html#release\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RedisLocker\"},{\"kind\":2048,\"name\":\"initialize\",\"url\":\"classes/RedisLocker.html#initialize\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RedisLocker\"},{\"kind\":2048,\"name\":\"finalize\",\"url\":\"classes/RedisLocker.html#finalize\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"RedisLocker\"},{\"kind\":2048,\"name\":\"clearLocks\",\"url\":\"classes/RedisLocker.html#clearLocks\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"RedisLocker\"},{\"kind\":256,\"name\":\"ResourceLocker\",\"url\":\"interfaces/ResourceLocker.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"acquire\",\"url\":\"interfaces/ResourceLocker.html#acquire\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ResourceLocker\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ResourceLocker.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"ResourceLocker\"},{\"kind\":1024,\"name\":\"release\",\"url\":\"interfaces/ResourceLocker.html#release\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ResourceLocker\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/ResourceLocker.html#__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"ResourceLocker\"},{\"kind\":128,\"name\":\"WrappedExpiringReadWriteLocker\",\"url\":\"classes/WrappedExpiringReadWriteLocker.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/WrappedExpiringReadWriteLocker.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"WrappedExpiringReadWriteLocker\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/WrappedExpiringReadWriteLocker.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"WrappedExpiringReadWriteLocker\"},{\"kind\":1024,\"name\":\"locker\",\"url\":\"classes/WrappedExpiringReadWriteLocker.html#locker\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"WrappedExpiringReadWriteLocker\"},{\"kind\":1024,\"name\":\"expiration\",\"url\":\"classes/WrappedExpiringReadWriteLocker.html#expiration\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"WrappedExpiringReadWriteLocker\"},{\"kind\":2048,\"name\":\"withReadLock\",\"url\":\"classes/WrappedExpiringReadWriteLocker.html#withReadLock\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedExpiringReadWriteLocker\"},{\"kind\":2048,\"name\":\"withWriteLock\",\"url\":\"classes/WrappedExpiringReadWriteLocker.html#withWriteLock\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedExpiringReadWriteLocker\"},{\"kind\":2048,\"name\":\"expiringPromise\",\"url\":\"classes/WrappedExpiringReadWriteLocker.html#expiringPromise\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-private\",\"parent\":\"WrappedExpiringReadWriteLocker\"},{\"kind\":128,\"name\":\"VoidLocker\",\"url\":\"classes/VoidLocker.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/VoidLocker.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"VoidLocker\"},{\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/VoidLocker.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"VoidLocker\"},{\"kind\":2048,\"name\":\"withReadLock\",\"url\":\"classes/VoidLocker.html#withReadLock\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"VoidLocker\"},{\"kind\":2048,\"name\":\"withWriteLock\",\"url\":\"classes/VoidLocker.html#withWriteLock\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"VoidLocker\"},{\"kind\":128,\"name\":\"HashMap\",\"url\":\"classes/HashMap.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/HashMap.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"HashMap\"},{\"kind\":1024,\"name\":\"hashMap\",\"url\":\"classes/HashMap.html#hashMap\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"HashMap\"},{\"kind\":1024,\"name\":\"hashFn\",\"url\":\"classes/HashMap.html#hashFn\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"HashMap\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"classes/HashMap.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-class\",\"parent\":\"HashMap\"},{\"kind\":2048,\"name\":\"has\",\"url\":\"classes/HashMap.html#has\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"HashMap\"},{\"kind\":2048,\"name\":\"get\",\"url\":\"classes/HashMap.html#get\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"HashMap\"},{\"kind\":2048,\"name\":\"set\",\"url\":\"classes/HashMap.html#set\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"HashMap\"},{\"kind\":2048,\"name\":\"delete\",\"url\":\"classes/HashMap.html#delete\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"HashMap\"},{\"kind\":2048,\"name\":\"clear\",\"url\":\"classes/HashMap.html#clear\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"HashMap\"},{\"kind\":2048,\"name\":\"entries\",\"url\":\"classes/HashMap.html#entries\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"HashMap\"},{\"kind\":2048,\"name\":\"keys\",\"url\":\"classes/HashMap.html#keys\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"HashMap\"},{\"kind\":2048,\"name\":\"values\",\"url\":\"classes/HashMap.html#values\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"HashMap\"},{\"kind\":2048,\"name\":\"forEach\",\"url\":\"classes/HashMap.html#forEach\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"HashMap\"},{\"kind\":262144,\"name\":\"size\",\"url\":\"classes/HashMap.html#size\",\"classes\":\"tsd-kind-accessor tsd-parent-kind-class\",\"parent\":\"HashMap\"},{\"kind\":2048,\"name\":\"[iterator]\",\"url\":\"classes/HashMap.html#_iterator_\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"HashMap\"},{\"kind\":1024,\"name\":\"[toStringTag]\",\"url\":\"classes/HashMap.html#_toStringTag_\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"HashMap\"},{\"kind\":64,\"name\":\"identifierHashFn\",\"url\":\"functions/identifierHashFn.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":128,\"name\":\"IdentifierMap\",\"url\":\"classes/IdentifierMap.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/IdentifierMap.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"IdentifierMap\"},{\"kind\":2048,\"name\":\"has\",\"url\":\"classes/IdentifierMap.html#has\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierMap\"},{\"kind\":2048,\"name\":\"get\",\"url\":\"classes/IdentifierMap.html#get\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierMap\"},{\"kind\":2048,\"name\":\"set\",\"url\":\"classes/IdentifierMap.html#set\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierMap\"},{\"kind\":2048,\"name\":\"delete\",\"url\":\"classes/IdentifierMap.html#delete\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierMap\"},{\"kind\":2048,\"name\":\"clear\",\"url\":\"classes/IdentifierMap.html#clear\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierMap\"},{\"kind\":2048,\"name\":\"entries\",\"url\":\"classes/IdentifierMap.html#entries\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierMap\"},{\"kind\":2048,\"name\":\"keys\",\"url\":\"classes/IdentifierMap.html#keys\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierMap\"},{\"kind\":2048,\"name\":\"values\",\"url\":\"classes/IdentifierMap.html#values\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierMap\"},{\"kind\":2048,\"name\":\"forEach\",\"url\":\"classes/IdentifierMap.html#forEach\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierMap\"},{\"kind\":262144,\"name\":\"size\",\"url\":\"classes/IdentifierMap.html#size\",\"classes\":\"tsd-kind-accessor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierMap\"},{\"kind\":2048,\"name\":\"[iterator]\",\"url\":\"classes/IdentifierMap.html#_iterator_\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierMap\"},{\"kind\":1024,\"name\":\"[toStringTag]\",\"url\":\"classes/IdentifierMap.html#_toStringTag_\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierMap\"},{\"kind\":128,\"name\":\"IdentifierSetMultiMap\",\"url\":\"classes/IdentifierSetMultiMap.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/IdentifierSetMultiMap.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"IdentifierSetMultiMap\"},{\"kind\":2048,\"name\":\"has\",\"url\":\"classes/IdentifierSetMultiMap.html#has\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierSetMultiMap\"},{\"kind\":2048,\"name\":\"hasEntry\",\"url\":\"classes/IdentifierSetMultiMap.html#hasEntry\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierSetMultiMap\"},{\"kind\":2048,\"name\":\"get\",\"url\":\"classes/IdentifierSetMultiMap.html#get\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierSetMultiMap\"},{\"kind\":2048,\"name\":\"set\",\"url\":\"classes/IdentifierSetMultiMap.html#set\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierSetMultiMap\"},{\"kind\":2048,\"name\":\"add\",\"url\":\"classes/IdentifierSetMultiMap.html#add\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierSetMultiMap\"},{\"kind\":2048,\"name\":\"delete\",\"url\":\"classes/IdentifierSetMultiMap.html#delete\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierSetMultiMap\"},{\"kind\":2048,\"name\":\"deleteEntry\",\"url\":\"classes/IdentifierSetMultiMap.html#deleteEntry\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierSetMultiMap\"},{\"kind\":2048,\"name\":\"clear\",\"url\":\"classes/IdentifierSetMultiMap.html#clear\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierSetMultiMap\"},{\"kind\":2048,\"name\":\"asMap\",\"url\":\"classes/IdentifierSetMultiMap.html#asMap\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierSetMultiMap\"},{\"kind\":2048,\"name\":\"entries\",\"url\":\"classes/IdentifierSetMultiMap.html#entries\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierSetMultiMap\"},{\"kind\":2048,\"name\":\"entrySets\",\"url\":\"classes/IdentifierSetMultiMap.html#entrySets\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierSetMultiMap\"},{\"kind\":2048,\"name\":\"keys\",\"url\":\"classes/IdentifierSetMultiMap.html#keys\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierSetMultiMap\"},{\"kind\":2048,\"name\":\"distinctKeys\",\"url\":\"classes/IdentifierSetMultiMap.html#distinctKeys\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierSetMultiMap\"},{\"kind\":2048,\"name\":\"values\",\"url\":\"classes/IdentifierSetMultiMap.html#values\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierSetMultiMap\"},{\"kind\":2048,\"name\":\"valueSets\",\"url\":\"classes/IdentifierSetMultiMap.html#valueSets\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierSetMultiMap\"},{\"kind\":2048,\"name\":\"forEach\",\"url\":\"classes/IdentifierSetMultiMap.html#forEach\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierSetMultiMap\"},{\"kind\":262144,\"name\":\"size\",\"url\":\"classes/IdentifierSetMultiMap.html#size\",\"classes\":\"tsd-kind-accessor tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierSetMultiMap\"},{\"kind\":2048,\"name\":\"[iterator]\",\"url\":\"classes/IdentifierSetMultiMap.html#_iterator_\",\"classes\":\"tsd-kind-method tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierSetMultiMap\"},{\"kind\":1024,\"name\":\"[toStringTag]\",\"url\":\"classes/IdentifierSetMultiMap.html#_toStringTag_\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-inherited\",\"parent\":\"IdentifierSetMultiMap\"},{\"kind\":64,\"name\":\"modify\",\"url\":\"functions/modify.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"getDefault\",\"url\":\"functions/getDefault.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":4194304,\"name\":\"MapKey\",\"url\":\"types/MapKey.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"MapValue\",\"url\":\"types/MapValue.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"MapEntry\",\"url\":\"types/MapEntry.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"EmptyMapConstructor\",\"url\":\"types/EmptyMapConstructor.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":512,\"name\":\"__type\",\"url\":\"types/EmptyMapConstructor.html#__type\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-type-alias\",\"parent\":\"EmptyMapConstructor\"},{\"kind\":4194304,\"name\":\"ModifyOptions\",\"url\":\"types/ModifyOptions.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"types/ModifyOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-type-alias\",\"parent\":\"ModifyOptions\"},{\"kind\":1024,\"name\":\"add\",\"url\":\"types/ModifyOptions.html#__type.add\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ModifyOptions.__type\"},{\"kind\":1024,\"name\":\"remove\",\"url\":\"types/ModifyOptions.html#__type.remove\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"ModifyOptions.__type\"},{\"kind\":256,\"name\":\"SetMultiMap\",\"url\":\"interfaces/SetMultiMap.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"get\",\"url\":\"interfaces/SetMultiMap.html#get\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SetMultiMap\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/SetMultiMap.html#__type-16\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"SetMultiMap\"},{\"kind\":1024,\"name\":\"hasEntry\",\"url\":\"interfaces/SetMultiMap.html#hasEntry\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SetMultiMap\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/SetMultiMap.html#__type-18\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"SetMultiMap\"},{\"kind\":1024,\"name\":\"add\",\"url\":\"interfaces/SetMultiMap.html#add\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SetMultiMap\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/SetMultiMap.html#__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"SetMultiMap\"},{\"kind\":1024,\"name\":\"deleteEntry\",\"url\":\"interfaces/SetMultiMap.html#deleteEntry\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SetMultiMap\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/SetMultiMap.html#__type-6\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"SetMultiMap\"},{\"kind\":1024,\"name\":\"asMap\",\"url\":\"interfaces/SetMultiMap.html#asMap\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SetMultiMap\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/SetMultiMap.html#__type-4\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"SetMultiMap\"},{\"kind\":1024,\"name\":\"entries\",\"url\":\"interfaces/SetMultiMap.html#entries\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SetMultiMap\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/SetMultiMap.html#__type-10\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"SetMultiMap\"},{\"kind\":1024,\"name\":\"entrySets\",\"url\":\"interfaces/SetMultiMap.html#entrySets\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SetMultiMap\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/SetMultiMap.html#__type-12\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"SetMultiMap\"},{\"kind\":1024,\"name\":\"distinctKeys\",\"url\":\"interfaces/SetMultiMap.html#distinctKeys\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SetMultiMap\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/SetMultiMap.html#__type-8\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"SetMultiMap\"},{\"kind\":1024,\"name\":\"values\",\"url\":\"interfaces/SetMultiMap.html#values\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SetMultiMap\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/SetMultiMap.html#__type-22\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"SetMultiMap\"},{\"kind\":1024,\"name\":\"valueSets\",\"url\":\"interfaces/SetMultiMap.html#valueSets\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SetMultiMap\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/SetMultiMap.html#__type-20\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"SetMultiMap\"},{\"kind\":1024,\"name\":\"forEach\",\"url\":\"interfaces/SetMultiMap.html#forEach\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SetMultiMap\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/SetMultiMap.html#__type-14\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"SetMultiMap\"},{\"kind\":1024,\"name\":\"[iterator]\",\"url\":\"interfaces/SetMultiMap.html#_iterator_\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"SetMultiMap\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/SetMultiMap.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"SetMultiMap\"},{\"kind\":128,\"name\":\"WrappedSetMultiMap\",\"url\":\"classes/WrappedSetMultiMap.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/WrappedSetMultiMap.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"WrappedSetMultiMap\"},{\"kind\":1024,\"name\":\"count\",\"url\":\"classes/WrappedSetMultiMap.html#count\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"WrappedSetMultiMap\"},{\"kind\":1024,\"name\":\"map\",\"url\":\"classes/WrappedSetMultiMap.html#map\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"WrappedSetMultiMap\"},{\"kind\":2048,\"name\":\"has\",\"url\":\"classes/WrappedSetMultiMap.html#has\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedSetMultiMap\"},{\"kind\":2048,\"name\":\"hasEntry\",\"url\":\"classes/WrappedSetMultiMap.html#hasEntry\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedSetMultiMap\"},{\"kind\":2048,\"name\":\"get\",\"url\":\"classes/WrappedSetMultiMap.html#get\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedSetMultiMap\"},{\"kind\":2048,\"name\":\"set\",\"url\":\"classes/WrappedSetMultiMap.html#set\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedSetMultiMap\"},{\"kind\":2048,\"name\":\"add\",\"url\":\"classes/WrappedSetMultiMap.html#add\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedSetMultiMap\"},{\"kind\":2048,\"name\":\"delete\",\"url\":\"classes/WrappedSetMultiMap.html#delete\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedSetMultiMap\"},{\"kind\":2048,\"name\":\"deleteEntry\",\"url\":\"classes/WrappedSetMultiMap.html#deleteEntry\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedSetMultiMap\"},{\"kind\":2048,\"name\":\"clear\",\"url\":\"classes/WrappedSetMultiMap.html#clear\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedSetMultiMap\"},{\"kind\":2048,\"name\":\"asMap\",\"url\":\"classes/WrappedSetMultiMap.html#asMap\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedSetMultiMap\"},{\"kind\":2048,\"name\":\"entries\",\"url\":\"classes/WrappedSetMultiMap.html#entries\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedSetMultiMap\"},{\"kind\":2048,\"name\":\"entrySets\",\"url\":\"classes/WrappedSetMultiMap.html#entrySets\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedSetMultiMap\"},{\"kind\":2048,\"name\":\"keys\",\"url\":\"classes/WrappedSetMultiMap.html#keys\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedSetMultiMap\"},{\"kind\":2048,\"name\":\"distinctKeys\",\"url\":\"classes/WrappedSetMultiMap.html#distinctKeys\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedSetMultiMap\"},{\"kind\":2048,\"name\":\"values\",\"url\":\"classes/WrappedSetMultiMap.html#values\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedSetMultiMap\"},{\"kind\":2048,\"name\":\"valueSets\",\"url\":\"classes/WrappedSetMultiMap.html#valueSets\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedSetMultiMap\"},{\"kind\":2048,\"name\":\"forEach\",\"url\":\"classes/WrappedSetMultiMap.html#forEach\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedSetMultiMap\"},{\"kind\":262144,\"name\":\"size\",\"url\":\"classes/WrappedSetMultiMap.html#size\",\"classes\":\"tsd-kind-accessor tsd-parent-kind-class\",\"parent\":\"WrappedSetMultiMap\"},{\"kind\":2048,\"name\":\"[iterator]\",\"url\":\"classes/WrappedSetMultiMap.html#_iterator_\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WrappedSetMultiMap\"},{\"kind\":1024,\"name\":\"[toStringTag]\",\"url\":\"classes/WrappedSetMultiMap.html#_toStringTag_\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"WrappedSetMultiMap\"},{\"kind\":128,\"name\":\"ChainedTemplateEngine\",\"url\":\"classes/ChainedTemplateEngine.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ChainedTemplateEngine.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ChainedTemplateEngine\"},{\"kind\":1024,\"name\":\"firstEngine\",\"url\":\"classes/ChainedTemplateEngine.html#firstEngine\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ChainedTemplateEngine\"},{\"kind\":1024,\"name\":\"chainedEngines\",\"url\":\"classes/ChainedTemplateEngine.html#chainedEngines\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ChainedTemplateEngine\"},{\"kind\":1024,\"name\":\"renderedName\",\"url\":\"classes/ChainedTemplateEngine.html#renderedName\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"ChainedTemplateEngine\"},{\"kind\":2048,\"name\":\"render\",\"url\":\"classes/ChainedTemplateEngine.html#render\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ChainedTemplateEngine\"},{\"kind\":128,\"name\":\"EjsTemplateEngine\",\"url\":\"classes/EjsTemplateEngine.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/EjsTemplateEngine.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"EjsTemplateEngine\"},{\"kind\":1024,\"name\":\"applyTemplate\",\"url\":\"classes/EjsTemplateEngine.html#applyTemplate\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"EjsTemplateEngine\"},{\"kind\":1024,\"name\":\"baseUrl\",\"url\":\"classes/EjsTemplateEngine.html#baseUrl\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"EjsTemplateEngine\"},{\"kind\":2048,\"name\":\"render\",\"url\":\"classes/EjsTemplateEngine.html#render\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"EjsTemplateEngine\"},{\"kind\":128,\"name\":\"HandlebarsTemplateEngine\",\"url\":\"classes/HandlebarsTemplateEngine.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/HandlebarsTemplateEngine.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"HandlebarsTemplateEngine\"},{\"kind\":1024,\"name\":\"applyTemplate\",\"url\":\"classes/HandlebarsTemplateEngine.html#applyTemplate\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"HandlebarsTemplateEngine\"},{\"kind\":1024,\"name\":\"baseUrl\",\"url\":\"classes/HandlebarsTemplateEngine.html#baseUrl\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-private\",\"parent\":\"HandlebarsTemplateEngine\"},{\"kind\":2048,\"name\":\"render\",\"url\":\"classes/HandlebarsTemplateEngine.html#render\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"HandlebarsTemplateEngine\"},{\"kind\":64,\"name\":\"getTemplateFilePath\",\"url\":\"functions/getTemplateFilePath.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"readTemplate\",\"url\":\"functions/readTemplate.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":4194304,\"name\":\"Template\",\"url\":\"types/Template.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":4194304,\"name\":\"TemplateFileName\",\"url\":\"types/TemplateFileName.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":256,\"name\":\"TemplateString\",\"url\":\"interfaces/TemplateString.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"templateString\",\"url\":\"interfaces/TemplateString.html#templateString\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TemplateString\"},{\"kind\":256,\"name\":\"TemplatePath\",\"url\":\"interfaces/TemplatePath.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"templateFile\",\"url\":\"interfaces/TemplatePath.html#templateFile\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TemplatePath\"},{\"kind\":1024,\"name\":\"templatePath\",\"url\":\"interfaces/TemplatePath.html#templatePath\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"TemplatePath\"},{\"kind\":256,\"name\":\"TemplateEngine\",\"url\":\"interfaces/TemplateEngine.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":2048,\"name\":\"render\",\"url\":\"interfaces/TemplateEngine.html#render\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"TemplateEngine\"},{\"kind\":32,\"name\":\"APPLICATION_JSON\",\"url\":\"variables/APPLICATION_JSON.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"APPLICATION_OCTET_STREAM\",\"url\":\"variables/APPLICATION_OCTET_STREAM.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"APPLICATION_SPARQL_UPDATE\",\"url\":\"variables/APPLICATION_SPARQL_UPDATE.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"APPLICATION_X_WWW_FORM_URLENCODED\",\"url\":\"variables/APPLICATION_X_WWW_FORM_URLENCODED.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"TEXT_HTML\",\"url\":\"variables/TEXT_HTML.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"TEXT_MARKDOWN\",\"url\":\"variables/TEXT_MARKDOWN.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"TEXT_N3\",\"url\":\"variables/TEXT_N3.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"TEXT_TURTLE\",\"url\":\"variables/TEXT_TURTLE.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"INTERNAL_ALL\",\"url\":\"variables/INTERNAL_ALL.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"INTERNAL_QUADS\",\"url\":\"variables/INTERNAL_QUADS.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"INTERNAL_ERROR\",\"url\":\"variables/INTERNAL_ERROR.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"DEFAULT_CUSTOM_TYPES\",\"url\":\"variables/DEFAULT_CUSTOM_TYPES.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"variables/DEFAULT_CUSTOM_TYPES.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-variable\",\"parent\":\"DEFAULT_CUSTOM_TYPES\"},{\"kind\":1024,\"name\":\"acl\",\"url\":\"variables/DEFAULT_CUSTOM_TYPES.html#__type.acl\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"DEFAULT_CUSTOM_TYPES.__type\"},{\"kind\":1024,\"name\":\"meta\",\"url\":\"variables/DEFAULT_CUSTOM_TYPES.html#__type.meta\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"DEFAULT_CUSTOM_TYPES.__type\"},{\"kind\":64,\"name\":\"fetchDataset\",\"url\":\"functions/fetchDataset.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"responseToDataset\",\"url\":\"functions/responseToDataset.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"isGuarded\",\"url\":\"functions/isGuarded.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"guardStream\",\"url\":\"functions/guardStream.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":4194304,\"name\":\"Guarded\",\"url\":\"types/Guarded.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":64,\"name\":\"transformQuotedStrings\",\"url\":\"functions/transformQuotedStrings.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"functions/transformQuotedStrings.html#transformQuotedStrings.__type\",\"classes\":\"tsd-kind-type-literal\",\"parent\":\"transformQuotedStrings.transformQuotedStrings\"},{\"kind\":1024,\"name\":\"result\",\"url\":\"functions/transformQuotedStrings.html#transformQuotedStrings.__type.result\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"transformQuotedStrings.transformQuotedStrings.__type\"},{\"kind\":1024,\"name\":\"replacements\",\"url\":\"functions/transformQuotedStrings.html#transformQuotedStrings.__type.replacements\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"transformQuotedStrings.transformQuotedStrings.__type\"},{\"kind\":64,\"name\":\"splitAndClean\",\"url\":\"functions/splitAndClean.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"parseParameters\",\"url\":\"functions/parseParameters.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"parseAccept\",\"url\":\"functions/parseAccept.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"parseAcceptCharset\",\"url\":\"functions/parseAcceptCharset.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"parseAcceptEncoding\",\"url\":\"functions/parseAcceptEncoding.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"parseAcceptLanguage\",\"url\":\"functions/parseAcceptLanguage.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"parseAcceptDateTime\",\"url\":\"functions/parseAcceptDateTime.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"addHeader\",\"url\":\"functions/addHeader.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"parseContentType\",\"url\":\"functions/parseContentType.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"parseForwarded\",\"url\":\"functions/parseForwarded.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"parseLinkHeader\",\"url\":\"functions/parseLinkHeader.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"matchesAuthorizationScheme\",\"url\":\"functions/matchesAuthorizationScheme.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"hasScheme\",\"url\":\"functions/hasScheme.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":256,\"name\":\"AcceptHeader\",\"url\":\"interfaces/AcceptHeader.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"range\",\"url\":\"interfaces/AcceptHeader.html#range\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AcceptHeader\"},{\"kind\":1024,\"name\":\"weight\",\"url\":\"interfaces/AcceptHeader.html#weight\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AcceptHeader\"},{\"kind\":256,\"name\":\"Accept\",\"url\":\"interfaces/Accept.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"parameters\",\"url\":\"interfaces/Accept.html#parameters\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Accept\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/Accept.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"Accept\"},{\"kind\":1024,\"name\":\"mediaType\",\"url\":\"interfaces/Accept.html#__type.mediaType\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"Accept.__type\"},{\"kind\":1024,\"name\":\"extension\",\"url\":\"interfaces/Accept.html#__type.extension\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"Accept.__type\"},{\"kind\":1024,\"name\":\"range\",\"url\":\"interfaces/Accept.html#range\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"Accept\"},{\"kind\":1024,\"name\":\"weight\",\"url\":\"interfaces/Accept.html#weight\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"Accept\"},{\"kind\":256,\"name\":\"AcceptCharset\",\"url\":\"interfaces/AcceptCharset.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"range\",\"url\":\"interfaces/AcceptCharset.html#range\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AcceptCharset\"},{\"kind\":1024,\"name\":\"weight\",\"url\":\"interfaces/AcceptCharset.html#weight\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AcceptCharset\"},{\"kind\":256,\"name\":\"AcceptEncoding\",\"url\":\"interfaces/AcceptEncoding.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"range\",\"url\":\"interfaces/AcceptEncoding.html#range\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AcceptEncoding\"},{\"kind\":1024,\"name\":\"weight\",\"url\":\"interfaces/AcceptEncoding.html#weight\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AcceptEncoding\"},{\"kind\":256,\"name\":\"AcceptLanguage\",\"url\":\"interfaces/AcceptLanguage.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"range\",\"url\":\"interfaces/AcceptLanguage.html#range\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AcceptLanguage\"},{\"kind\":1024,\"name\":\"weight\",\"url\":\"interfaces/AcceptLanguage.html#weight\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AcceptLanguage\"},{\"kind\":256,\"name\":\"AcceptDatetime\",\"url\":\"interfaces/AcceptDatetime.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"range\",\"url\":\"interfaces/AcceptDatetime.html#range\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AcceptDatetime\"},{\"kind\":1024,\"name\":\"weight\",\"url\":\"interfaces/AcceptDatetime.html#weight\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface tsd-is-inherited\",\"parent\":\"AcceptDatetime\"},{\"kind\":128,\"name\":\"ContentType\",\"url\":\"classes/ContentType.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ContentType.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"ContentType\"},{\"kind\":1024,\"name\":\"value\",\"url\":\"classes/ContentType.html#value\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"ContentType\"},{\"kind\":1024,\"name\":\"parameters\",\"url\":\"classes/ContentType.html#parameters\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"ContentType\"},{\"kind\":2048,\"name\":\"toHeaderValueString\",\"url\":\"classes/ContentType.html#toHeaderValueString\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ContentType\"},{\"kind\":256,\"name\":\"LinkEntryParameters\",\"url\":\"interfaces/LinkEntryParameters.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"rel\",\"url\":\"interfaces/LinkEntryParameters.html#rel\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LinkEntryParameters\"},{\"kind\":256,\"name\":\"LinkEntry\",\"url\":\"interfaces/LinkEntry.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"target\",\"url\":\"interfaces/LinkEntry.html#target\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LinkEntry\"},{\"kind\":1024,\"name\":\"parameters\",\"url\":\"interfaces/LinkEntry.html#parameters\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"LinkEntry\"},{\"kind\":256,\"name\":\"Forwarded\",\"url\":\"interfaces/Forwarded.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"by\",\"url\":\"interfaces/Forwarded.html#by\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Forwarded\"},{\"kind\":1024,\"name\":\"for\",\"url\":\"interfaces/Forwarded.html#for\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Forwarded\"},{\"kind\":1024,\"name\":\"host\",\"url\":\"interfaces/Forwarded.html#host\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Forwarded\"},{\"kind\":1024,\"name\":\"proto\",\"url\":\"interfaces/Forwarded.html#proto\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"Forwarded\"},{\"kind\":64,\"name\":\"map\",\"url\":\"functions/map.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"filter\",\"url\":\"functions/filter.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"concat\",\"url\":\"functions/concat.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"find\",\"url\":\"functions/find.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"reduce\",\"url\":\"functions/reduce.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"normalizeFilePath\",\"url\":\"functions/normalizeFilePath.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"joinFilePath\",\"url\":\"functions/joinFilePath.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"absoluteFilePath\",\"url\":\"functions/absoluteFilePath.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"ensureTrailingSlash\",\"url\":\"functions/ensureTrailingSlash.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"trimTrailingSlashes\",\"url\":\"functions/trimTrailingSlashes.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"ensureLeadingSlash\",\"url\":\"functions/ensureLeadingSlash.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"trimLeadingSlashes\",\"url\":\"functions/trimLeadingSlashes.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"getExtension\",\"url\":\"functions/getExtension.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"toCanonicalUriPath\",\"url\":\"functions/toCanonicalUriPath.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"decodeUriPathComponents\",\"url\":\"functions/decodeUriPathComponents.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"encodeUriPathComponents\",\"url\":\"functions/encodeUriPathComponents.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"isContainerPath\",\"url\":\"functions/isContainerPath.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"isContainerIdentifier\",\"url\":\"functions/isContainerIdentifier.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"extractScheme\",\"url\":\"functions/extractScheme.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"functions/extractScheme.html#extractScheme.__type\",\"classes\":\"tsd-kind-type-literal\",\"parent\":\"extractScheme.extractScheme\"},{\"kind\":1024,\"name\":\"scheme\",\"url\":\"functions/extractScheme.html#extractScheme.__type.scheme\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"extractScheme.extractScheme.__type\"},{\"kind\":1024,\"name\":\"rest\",\"url\":\"functions/extractScheme.html#extractScheme.__type.rest\",\"classes\":\"tsd-kind-property tsd-parent-kind-type-literal\",\"parent\":\"extractScheme.extractScheme.__type\"},{\"kind\":64,\"name\":\"getRelativeUrl\",\"url\":\"functions/getRelativeUrl.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"createSubdomainRegexp\",\"url\":\"functions/createSubdomainRegexp.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"getModuleRoot\",\"url\":\"functions/getModuleRoot.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"modulePath\",\"url\":\"functions/modulePath.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"resolveModulePath\",\"url\":\"functions/resolveModulePath.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"resolveAssetPath\",\"url\":\"functions/resolveAssetPath.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"readPackageJson\",\"url\":\"functions/readPackageJson.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":32,\"name\":\"modulePathPlaceholder\",\"url\":\"variables/modulePathPlaceholder.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":64,\"name\":\"joinUrl\",\"url\":\"functions/joinUrl.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"promiseSome\",\"url\":\"functions/promiseSome.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"allFulfilled\",\"url\":\"functions/allFulfilled.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"serializeQuads\",\"url\":\"functions/serializeQuads.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"parseQuads\",\"url\":\"functions/parseQuads.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"uniqueQuads\",\"url\":\"functions/uniqueQuads.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":128,\"name\":\"FilterPattern\",\"url\":\"classes/FilterPattern.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/FilterPattern.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"FilterPattern\"},{\"kind\":1024,\"name\":\"subject\",\"url\":\"classes/FilterPattern.html#subject\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"FilterPattern\"},{\"kind\":1024,\"name\":\"predicate\",\"url\":\"classes/FilterPattern.html#predicate\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"FilterPattern\"},{\"kind\":1024,\"name\":\"object\",\"url\":\"classes/FilterPattern.html#object\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"FilterPattern\"},{\"kind\":128,\"name\":\"RecordObject\",\"url\":\"classes/RecordObject.html\",\"classes\":\"tsd-kind-class\"},{\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/RecordObject.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class\",\"parent\":\"RecordObject\"},{\"kind\":64,\"name\":\"addResourceMetadata\",\"url\":\"functions/addResourceMetadata.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"updateModifiedDate\",\"url\":\"functions/updateModifiedDate.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"addTemplateMetadata\",\"url\":\"functions/addTemplateMetadata.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"cloneRepresentation\",\"url\":\"functions/cloneRepresentation.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"readableToString\",\"url\":\"functions/readableToString.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"readableToQuads\",\"url\":\"functions/readableToQuads.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"readJsonStream\",\"url\":\"functions/readJsonStream.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"getSingleItem\",\"url\":\"functions/getSingleItem.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"pipeSafely\",\"url\":\"functions/pipeSafely.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"transformSafely\",\"url\":\"functions/transformSafely.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"guardedStreamFrom\",\"url\":\"functions/guardedStreamFrom.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"endOfStream\",\"url\":\"functions/endOfStream.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":256,\"name\":\"AsyncTransformOptions\",\"url\":\"interfaces/AsyncTransformOptions.html\",\"classes\":\"tsd-kind-interface\"},{\"kind\":1024,\"name\":\"transform\",\"url\":\"interfaces/AsyncTransformOptions.html#transform\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AsyncTransformOptions\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AsyncTransformOptions.html#__type-2\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AsyncTransformOptions\"},{\"kind\":1024,\"name\":\"flush\",\"url\":\"interfaces/AsyncTransformOptions.html#flush\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"AsyncTransformOptions\"},{\"kind\":65536,\"name\":\"__type\",\"url\":\"interfaces/AsyncTransformOptions.html#__type\",\"classes\":\"tsd-kind-type-literal tsd-parent-kind-interface\",\"parent\":\"AsyncTransformOptions\"},{\"kind\":64,\"name\":\"splitCommaSeparated\",\"url\":\"functions/splitCommaSeparated.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"sanitizeUrlPart\",\"url\":\"functions/sanitizeUrlPart.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"isValidFileName\",\"url\":\"functions/isValidFileName.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"isTerm\",\"url\":\"functions/isTerm.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"toNamedTerm\",\"url\":\"functions/toNamedTerm.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"toObjectTerm\",\"url\":\"functions/toObjectTerm.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"toLiteral\",\"url\":\"functions/toLiteral.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"toPredicateTerm\",\"url\":\"functions/toPredicateTerm.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"setSafeInterval\",\"url\":\"functions/setSafeInterval.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"createNamespace\",\"url\":\"functions/createNamespace.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"createUriNamespace\",\"url\":\"functions/createUriNamespace.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"createTermNamespace\",\"url\":\"functions/createTermNamespace.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":64,\"name\":\"createUriAndTermNamespace\",\"url\":\"functions/createUriAndTermNamespace.html\",\"classes\":\"tsd-kind-function\"},{\"kind\":4194304,\"name\":\"Namespace\",\"url\":\"types/Namespace.html\",\"classes\":\"tsd-kind-type-alias\"},{\"kind\":32,\"name\":\"ACL\",\"url\":\"variables/ACL.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"AS\",\"url\":\"variables/AS.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"AUTH\",\"url\":\"variables/AUTH.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"DC\",\"url\":\"variables/DC.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"FOAF\",\"url\":\"variables/FOAF.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"HH\",\"url\":\"variables/HH.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"HTTP\",\"url\":\"variables/HTTP.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"IANA\",\"url\":\"variables/IANA.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"JSON_LD\",\"url\":\"variables/JSON_LD.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"LDP\",\"url\":\"variables/LDP.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"MA\",\"url\":\"variables/MA.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"OIDC\",\"url\":\"variables/OIDC.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"PIM\",\"url\":\"variables/PIM.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"POSIX\",\"url\":\"variables/POSIX.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"RDF\",\"url\":\"variables/RDF.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"RDFS\",\"url\":\"variables/RDFS.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"SOLID\",\"url\":\"variables/SOLID.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"SOLID_AS\",\"url\":\"variables/SOLID_AS.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"SOLID_ERROR\",\"url\":\"variables/SOLID_ERROR.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"SOLID_HTTP\",\"url\":\"variables/SOLID_HTTP.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"SOLID_META\",\"url\":\"variables/SOLID_META.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"VANN\",\"url\":\"variables/VANN.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"VCARD\",\"url\":\"variables/VCARD.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"XSD\",\"url\":\"variables/XSD.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"CONTENT_LENGTH\",\"url\":\"variables/CONTENT_LENGTH.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"CONTENT_LENGTH_TERM\",\"url\":\"variables/CONTENT_LENGTH_TERM.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"CONTENT_TYPE\",\"url\":\"variables/CONTENT_TYPE.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"CONTENT_TYPE_TERM\",\"url\":\"variables/CONTENT_TYPE_TERM.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"PREFERRED_PREFIX\",\"url\":\"variables/PREFERRED_PREFIX.html\",\"classes\":\"tsd-kind-variable\"},{\"kind\":32,\"name\":\"PREFERRED_PREFIX_TERM\",\"url\":\"variables/PREFERRED_PREFIX_TERM.html\",\"classes\":\"tsd-kind-variable\"}],\"index\":{\"version\":\"2.3.9\",\"fields\":[\"name\",\"comment\"],\"fieldVectors\":[[\"name/0\",[0,77.243]],[\"comment/0\",[]],[\"name/1\",[1,24.344]],[\"comment/1\",[]],[\"name/2\",[2,36.696]],[\"comment/2\",[]],[\"name/3\",[3,66.257]],[\"comment/3\",[]],[\"name/4\",[4,28.801]],[\"comment/4\",[]],[\"name/5\",[5,29.285]],[\"comment/5\",[]],[\"name/6\",[6,29.285]],[\"comment/6\",[]],[\"name/7\",[7,72.135]],[\"comment/7\",[]],[\"name/8\",[8,61.149]],[\"comment/8\",[]],[\"name/9\",[9,77.243]],[\"comment/9\",[]],[\"name/10\",[10,77.243]],[\"comment/10\",[]],[\"name/11\",[11,77.243]],[\"comment/11\",[]],[\"name/12\",[12,77.243]],[\"comment/12\",[]],[\"name/13\",[13,68.77]],[\"comment/13\",[]],[\"name/14\",[1,24.344]],[\"comment/14\",[]],[\"name/15\",[4,28.801]],[\"comment/15\",[]],[\"name/16\",[5,29.285]],[\"comment/16\",[]],[\"name/17\",[6,29.285]],[\"comment/17\",[]],[\"name/18\",[14,77.243]],[\"comment/18\",[]],[\"name/19\",[1,24.344]],[\"comment/19\",[]],[\"name/20\",[15,72.135]],[\"comment/20\",[]],[\"name/21\",[3,66.257]],[\"comment/21\",[]],[\"name/22\",[2,36.696]],[\"comment/22\",[]],[\"name/23\",[4,28.801]],[\"comment/23\",[]],[\"name/24\",[5,29.285]],[\"comment/24\",[]],[\"name/25\",[6,29.285]],[\"comment/25\",[]],[\"name/26\",[16,77.243]],[\"comment/26\",[]],[\"name/27\",[1,24.344]],[\"comment/27\",[]],[\"name/28\",[5,29.285]],[\"comment/28\",[]],[\"name/29\",[4,28.801]],[\"comment/29\",[]],[\"name/30\",[6,29.285]],[\"comment/30\",[]],[\"name/31\",[17,77.243]],[\"comment/31\",[]],[\"name/32\",[1,24.344]],[\"comment/32\",[]],[\"name/33\",[18,68.77]],[\"comment/33\",[]],[\"name/34\",[19,61.149]],[\"comment/34\",[]],[\"name/35\",[4,28.801]],[\"comment/35\",[]],[\"name/36\",[5,29.285]],[\"comment/36\",[]],[\"name/37\",[20,68.77]],[\"comment/37\",[]],[\"name/38\",[6,29.285]],[\"comment/38\",[]],[\"name/39\",[21,77.243]],[\"comment/39\",[]],[\"name/40\",[1,24.344]],[\"comment/40\",[]],[\"name/41\",[22,68.77]],[\"comment/41\",[]],[\"name/42\",[2,36.696]],[\"comment/42\",[]],[\"name/43\",[5,29.285]],[\"comment/43\",[]],[\"name/44\",[4,28.801]],[\"comment/44\",[]],[\"name/45\",[6,29.285]],[\"comment/45\",[]],[\"name/46\",[23,77.243]],[\"comment/46\",[]],[\"name/47\",[1,24.344]],[\"comment/47\",[]],[\"name/48\",[2,36.696]],[\"comment/48\",[]],[\"name/49\",[4,28.801]],[\"comment/49\",[]],[\"name/50\",[5,29.285]],[\"comment/50\",[]],[\"name/51\",[6,29.285]],[\"comment/51\",[]],[\"name/52\",[24,72.135]],[\"comment/52\",[]],[\"name/53\",[1,24.344]],[\"comment/53\",[]],[\"name/54\",[4,28.801]],[\"comment/54\",[]],[\"name/55\",[5,29.285]],[\"comment/55\",[]],[\"name/56\",[6,29.285]],[\"comment/56\",[]],[\"name/57\",[25,77.243]],[\"comment/57\",[]],[\"name/58\",[26,68.77]],[\"comment/58\",[]],[\"name/59\",[27,72.135]],[\"comment/59\",[]],[\"name/60\",[7,72.135]],[\"comment/60\",[]],[\"name/61\",[28,77.243]],[\"comment/61\",[]],[\"name/62\",[1,24.344]],[\"comment/62\",[]],[\"name/63\",[5,29.285]],[\"comment/63\",[]],[\"name/64\",[4,28.801]],[\"comment/64\",[]],[\"name/65\",[6,29.285]],[\"comment/65\",[]],[\"name/66\",[29,77.243]],[\"comment/66\",[]],[\"name/67\",[1,24.344]],[\"comment/67\",[]],[\"name/68\",[5,29.285]],[\"comment/68\",[]],[\"name/69\",[4,28.801]],[\"comment/69\",[]],[\"name/70\",[6,29.285]],[\"comment/70\",[]],[\"name/71\",[30,77.243]],[\"comment/71\",[]],[\"name/72\",[1,24.344]],[\"comment/72\",[]],[\"name/73\",[31,72.135]],[\"comment/73\",[]],[\"name/74\",[32,68.77]],[\"comment/74\",[]],[\"name/75\",[5,29.285]],[\"comment/75\",[]],[\"name/76\",[33,77.243]],[\"comment/76\",[]],[\"name/77\",[34,77.243]],[\"comment/77\",[]],[\"name/78\",[4,28.801]],[\"comment/78\",[]],[\"name/79\",[6,29.285]],[\"comment/79\",[]],[\"name/80\",[35,77.243]],[\"comment/80\",[]],[\"name/81\",[36,77.243]],[\"comment/81\",[]],[\"name/82\",[37,77.243]],[\"comment/82\",[]],[\"name/83\",[38,77.243]],[\"comment/83\",[]],[\"name/84\",[1,24.344]],[\"comment/84\",[]],[\"name/85\",[39,47.799]],[\"comment/85\",[]],[\"name/86\",[40,58.785]],[\"comment/86\",[]],[\"name/87\",[4,28.801]],[\"comment/87\",[]],[\"name/88\",[5,29.285]],[\"comment/88\",[]],[\"name/89\",[6,29.285]],[\"comment/89\",[]],[\"name/90\",[41,77.243]],[\"comment/90\",[]],[\"name/91\",[1,24.344]],[\"comment/91\",[]],[\"name/92\",[39,47.799]],[\"comment/92\",[]],[\"name/93\",[40,58.785]],[\"comment/93\",[]],[\"name/94\",[42,54.556]],[\"comment/94\",[]],[\"name/95\",[4,28.801]],[\"comment/95\",[]],[\"name/96\",[5,29.285]],[\"comment/96\",[]],[\"name/97\",[6,29.285]],[\"comment/97\",[]],[\"name/98\",[43,77.243]],[\"comment/98\",[]],[\"name/99\",[1,24.344]],[\"comment/99\",[]],[\"name/100\",[40,58.785]],[\"comment/100\",[]],[\"name/101\",[44,72.135]],[\"comment/101\",[]],[\"name/102\",[39,47.799]],[\"comment/102\",[]],[\"name/103\",[4,28.801]],[\"comment/103\",[]],[\"name/104\",[5,29.285]],[\"comment/104\",[]],[\"name/105\",[6,29.285]],[\"comment/105\",[]],[\"name/106\",[45,68.77]],[\"comment/106\",[]],[\"name/107\",[1,24.344]],[\"comment/107\",[]],[\"name/108\",[4,28.801]],[\"comment/108\",[]],[\"name/109\",[5,29.285]],[\"comment/109\",[]],[\"name/110\",[6,29.285]],[\"comment/110\",[]],[\"name/111\",[46,77.243]],[\"comment/111\",[]],[\"name/112\",[1,24.344]],[\"comment/112\",[]],[\"name/113\",[40,58.785]],[\"comment/113\",[]],[\"name/114\",[4,28.801]],[\"comment/114\",[]],[\"name/115\",[5,29.285]],[\"comment/115\",[]],[\"name/116\",[6,29.285]],[\"comment/116\",[]],[\"name/117\",[47,77.243]],[\"comment/117\",[]],[\"name/118\",[1,24.344]],[\"comment/118\",[]],[\"name/119\",[40,58.785]],[\"comment/119\",[]],[\"name/120\",[4,28.801]],[\"comment/120\",[]],[\"name/121\",[5,29.285]],[\"comment/121\",[]],[\"name/122\",[6,29.285]],[\"comment/122\",[]],[\"name/123\",[48,77.243]],[\"comment/123\",[]],[\"name/124\",[49,72.135]],[\"comment/124\",[]],[\"name/125\",[50,77.243]],[\"comment/125\",[]],[\"name/126\",[51,72.135]],[\"comment/126\",[]],[\"name/127\",[52,62.58]],[\"comment/127\",[]],[\"name/128\",[53,56.04]],[\"comment/128\",[]],[\"name/129\",[54,77.243]],[\"comment/129\",[]],[\"name/130\",[55,77.243]],[\"comment/130\",[]],[\"name/131\",[56,77.243]],[\"comment/131\",[]],[\"name/132\",[57,77.243]],[\"comment/132\",[]],[\"name/133\",[58,77.243]],[\"comment/133\",[]],[\"name/134\",[1,24.344]],[\"comment/134\",[]],[\"name/135\",[40,58.785]],[\"comment/135\",[]],[\"name/136\",[4,28.801]],[\"comment/136\",[]],[\"name/137\",[5,29.285]],[\"comment/137\",[]],[\"name/138\",[59,77.243]],[\"comment/138\",[]],[\"name/139\",[60,77.243]],[\"comment/139\",[]],[\"name/140\",[61,72.135]],[\"comment/140\",[]],[\"name/141\",[62,77.243]],[\"comment/141\",[]],[\"name/142\",[63,77.243]],[\"comment/142\",[]],[\"name/143\",[64,77.243]],[\"comment/143\",[]],[\"name/144\",[65,77.243]],[\"comment/144\",[]],[\"name/145\",[6,29.285]],[\"comment/145\",[]],[\"name/146\",[66,77.243]],[\"comment/146\",[]],[\"name/147\",[1,24.344]],[\"comment/147\",[]],[\"name/148\",[67,77.243]],[\"comment/148\",[]],[\"name/149\",[5,29.285]],[\"comment/149\",[]],[\"name/150\",[68,77.243]],[\"comment/150\",[]],[\"name/151\",[4,28.801]],[\"comment/151\",[]],[\"name/152\",[6,29.285]],[\"comment/152\",[]],[\"name/153\",[69,77.243]],[\"comment/153\",[]],[\"name/154\",[22,68.77]],[\"comment/154\",[]],[\"name/155\",[70,72.135]],[\"comment/155\",[]],[\"name/156\",[71,72.135]],[\"comment/156\",[]],[\"name/157\",[72,68.77]],[\"comment/157\",[]],[\"name/158\",[1,24.344]],[\"comment/158\",[]],[\"name/159\",[4,28.801]],[\"comment/159\",[]],[\"name/160\",[5,29.285]],[\"comment/160\",[]],[\"name/161\",[6,29.285]],[\"comment/161\",[]],[\"name/162\",[73,77.243]],[\"comment/162\",[]],[\"name/163\",[1,24.344]],[\"comment/163\",[]],[\"name/164\",[2,36.696]],[\"comment/164\",[]],[\"name/165\",[74,68.77]],[\"comment/165\",[]],[\"name/166\",[75,64.25]],[\"comment/166\",[]],[\"name/167\",[5,29.285]],[\"comment/167\",[]],[\"name/168\",[76,77.243]],[\"comment/168\",[]],[\"name/169\",[77,77.243]],[\"comment/169\",[]],[\"name/170\",[4,28.801]],[\"comment/170\",[]],[\"name/171\",[6,29.285]],[\"comment/171\",[]],[\"name/172\",[78,77.243]],[\"comment/172\",[]],[\"name/173\",[1,24.344]],[\"comment/173\",[]],[\"name/174\",[2,36.696]],[\"comment/174\",[]],[\"name/175\",[79,56.04]],[\"comment/175\",[]],[\"name/176\",[80,68.77]],[\"comment/176\",[]],[\"name/177\",[42,54.556]],[\"comment/177\",[]],[\"name/178\",[5,29.285]],[\"comment/178\",[]],[\"name/179\",[81,77.243]],[\"comment/179\",[]],[\"name/180\",[4,28.801]],[\"comment/180\",[]],[\"name/181\",[6,29.285]],[\"comment/181\",[]],[\"name/182\",[82,77.243]],[\"comment/182\",[]],[\"name/183\",[1,24.344]],[\"comment/183\",[]],[\"name/184\",[2,36.696]],[\"comment/184\",[]],[\"name/185\",[74,68.77]],[\"comment/185\",[]],[\"name/186\",[42,54.556]],[\"comment/186\",[]],[\"name/187\",[5,29.285]],[\"comment/187\",[]],[\"name/188\",[83,77.243]],[\"comment/188\",[]],[\"name/189\",[84,77.243]],[\"comment/189\",[]],[\"name/190\",[85,77.243]],[\"comment/190\",[]],[\"name/191\",[86,77.243]],[\"comment/191\",[]],[\"name/192\",[4,28.801]],[\"comment/192\",[]],[\"name/193\",[6,29.285]],[\"comment/193\",[]],[\"name/194\",[87,77.243]],[\"comment/194\",[]],[\"name/195\",[1,24.344]],[\"comment/195\",[]],[\"name/196\",[2,36.696]],[\"comment/196\",[]],[\"name/197\",[88,54.556]],[\"comment/197\",[]],[\"name/198\",[89,77.243]],[\"comment/198\",[]],[\"name/199\",[5,29.285]],[\"comment/199\",[]],[\"name/200\",[90,77.243]],[\"comment/200\",[]],[\"name/201\",[91,77.243]],[\"comment/201\",[]],[\"name/202\",[4,28.801]],[\"comment/202\",[]],[\"name/203\",[6,29.285]],[\"comment/203\",[]],[\"name/204\",[92,77.243]],[\"comment/204\",[]],[\"name/205\",[1,24.344]],[\"comment/205\",[]],[\"name/206\",[2,36.696]],[\"comment/206\",[]],[\"name/207\",[40,58.785]],[\"comment/207\",[]],[\"name/208\",[5,29.285]],[\"comment/208\",[]],[\"name/209\",[93,77.243]],[\"comment/209\",[]],[\"name/210\",[94,77.243]],[\"comment/210\",[]],[\"name/211\",[95,77.243]],[\"comment/211\",[]],[\"name/212\",[96,77.243]],[\"comment/212\",[]],[\"name/213\",[4,28.801]],[\"comment/213\",[]],[\"name/214\",[6,29.285]],[\"comment/214\",[]],[\"name/215\",[97,77.243]],[\"comment/215\",[]],[\"name/216\",[22,68.77]],[\"comment/216\",[]],[\"name/217\",[70,72.135]],[\"comment/217\",[]],[\"name/218\",[98,68.77]],[\"comment/218\",[]],[\"name/219\",[1,24.344]],[\"comment/219\",[]],[\"name/220\",[4,28.801]],[\"comment/220\",[]],[\"name/221\",[5,29.285]],[\"comment/221\",[]],[\"name/222\",[6,29.285]],[\"comment/222\",[]],[\"name/223\",[99,77.243]],[\"comment/223\",[]],[\"name/224\",[1,24.344]],[\"comment/224\",[]],[\"name/225\",[18,68.77]],[\"comment/225\",[]],[\"name/226\",[100,77.243]],[\"comment/226\",[]],[\"name/227\",[101,77.243]],[\"comment/227\",[]],[\"name/228\",[19,61.149]],[\"comment/228\",[]],[\"name/229\",[4,28.801]],[\"comment/229\",[]],[\"name/230\",[5,29.285]],[\"comment/230\",[]],[\"name/231\",[20,68.77]],[\"comment/231\",[]],[\"name/232\",[6,29.285]],[\"comment/232\",[]],[\"name/233\",[102,77.243]],[\"comment/233\",[]],[\"name/234\",[1,24.344]],[\"comment/234\",[]],[\"name/235\",[2,36.696]],[\"comment/235\",[]],[\"name/236\",[74,68.77]],[\"comment/236\",[]],[\"name/237\",[80,68.77]],[\"comment/237\",[]],[\"name/238\",[5,29.285]],[\"comment/238\",[]],[\"name/239\",[103,77.243]],[\"comment/239\",[]],[\"name/240\",[104,77.243]],[\"comment/240\",[]],[\"name/241\",[4,28.801]],[\"comment/241\",[]],[\"name/242\",[6,29.285]],[\"comment/242\",[]],[\"name/243\",[105,77.243]],[\"comment/243\",[]],[\"name/244\",[1,24.344]],[\"comment/244\",[]],[\"name/245\",[2,36.696]],[\"comment/245\",[]],[\"name/246\",[80,68.77]],[\"comment/246\",[]],[\"name/247\",[40,58.785]],[\"comment/247\",[]],[\"name/248\",[106,77.243]],[\"comment/248\",[]],[\"name/249\",[42,54.556]],[\"comment/249\",[]],[\"name/250\",[24,72.135]],[\"comment/250\",[]],[\"name/251\",[5,29.285]],[\"comment/251\",[]],[\"name/252\",[107,77.243]],[\"comment/252\",[]],[\"name/253\",[108,77.243]],[\"comment/253\",[]],[\"name/254\",[109,77.243]],[\"comment/254\",[]],[\"name/255\",[110,77.243]],[\"comment/255\",[]],[\"name/256\",[111,77.243]],[\"comment/256\",[]],[\"name/257\",[112,77.243]],[\"comment/257\",[]],[\"name/258\",[4,28.801]],[\"comment/258\",[]],[\"name/259\",[6,29.285]],[\"comment/259\",[]],[\"name/260\",[113,77.243]],[\"comment/260\",[]],[\"name/261\",[114,62.58]],[\"comment/261\",[]],[\"name/262\",[115,30.961]],[\"comment/262\",[]],[\"name/263\",[116,62.58]],[\"comment/263\",[]],[\"name/264\",[115,30.961]],[\"comment/264\",[]],[\"name/265\",[117,62.58]],[\"comment/265\",[]],[\"name/266\",[115,30.961]],[\"comment/266\",[]],[\"name/267\",[118,62.58]],[\"comment/267\",[]],[\"name/268\",[115,30.961]],[\"comment/268\",[]],[\"name/269\",[75,64.25]],[\"comment/269\",[]],[\"name/270\",[119,68.77]],[\"comment/270\",[]],[\"name/271\",[115,30.961]],[\"comment/271\",[]],[\"name/272\",[120,68.77]],[\"comment/272\",[]],[\"name/273\",[115,30.961]],[\"comment/273\",[]],[\"name/274\",[121,68.77]],[\"comment/274\",[]],[\"name/275\",[115,30.961]],[\"comment/275\",[]],[\"name/276\",[122,68.77]],[\"comment/276\",[]],[\"name/277\",[115,30.961]],[\"comment/277\",[]],[\"name/278\",[114,62.58]],[\"comment/278\",[]],[\"name/279\",[115,30.961]],[\"comment/279\",[]],[\"name/280\",[116,62.58]],[\"comment/280\",[]],[\"name/281\",[115,30.961]],[\"comment/281\",[]],[\"name/282\",[117,62.58]],[\"comment/282\",[]],[\"name/283\",[115,30.961]],[\"comment/283\",[]],[\"name/284\",[118,62.58]],[\"comment/284\",[]],[\"name/285\",[115,30.961]],[\"comment/285\",[]],[\"name/286\",[123,77.243]],[\"comment/286\",[]],[\"name/287\",[1,24.344]],[\"comment/287\",[]],[\"name/288\",[42,54.556]],[\"comment/288\",[]],[\"name/289\",[124,72.135]],[\"comment/289\",[]],[\"name/290\",[125,68.77]],[\"comment/290\",[]],[\"name/291\",[126,77.243]],[\"comment/291\",[]],[\"name/292\",[127,77.243]],[\"comment/292\",[]],[\"name/293\",[114,62.58]],[\"comment/293\",[]],[\"name/294\",[116,62.58]],[\"comment/294\",[]],[\"name/295\",[117,62.58]],[\"comment/295\",[]],[\"name/296\",[118,62.58]],[\"comment/296\",[]],[\"name/297\",[119,68.77]],[\"comment/297\",[]],[\"name/298\",[120,68.77]],[\"comment/298\",[]],[\"name/299\",[121,68.77]],[\"comment/299\",[]],[\"name/300\",[122,68.77]],[\"comment/300\",[]],[\"name/301\",[128,77.243]],[\"comment/301\",[]],[\"name/302\",[1,24.344]],[\"comment/302\",[]],[\"name/303\",[129,77.243]],[\"comment/303\",[]],[\"name/304\",[42,54.556]],[\"comment/304\",[]],[\"name/305\",[5,29.285]],[\"comment/305\",[]],[\"name/306\",[4,28.801]],[\"comment/306\",[]],[\"name/307\",[6,29.285]],[\"comment/307\",[]],[\"name/308\",[124,72.135]],[\"comment/308\",[]],[\"name/309\",[1,24.344]],[\"comment/309\",[]],[\"name/310\",[4,28.801]],[\"comment/310\",[]],[\"name/311\",[5,29.285]],[\"comment/311\",[]],[\"name/312\",[6,29.285]],[\"comment/312\",[]],[\"name/313\",[130,77.243]],[\"comment/313\",[]],[\"name/314\",[1,24.344]],[\"comment/314\",[]],[\"name/315\",[131,57.784]],[\"comment/315\",[]],[\"name/316\",[5,29.285]],[\"comment/316\",[]],[\"name/317\",[4,28.801]],[\"comment/317\",[]],[\"name/318\",[6,29.285]],[\"comment/318\",[]],[\"name/319\",[132,77.243]],[\"comment/319\",[]],[\"name/320\",[1,24.344]],[\"comment/320\",[]],[\"name/321\",[133,72.135]],[\"comment/321\",[]],[\"name/322\",[114,62.58]],[\"comment/322\",[]],[\"name/323\",[116,62.58]],[\"comment/323\",[]],[\"name/324\",[117,62.58]],[\"comment/324\",[]],[\"name/325\",[118,62.58]],[\"comment/325\",[]],[\"name/326\",[134,72.135]],[\"comment/326\",[]],[\"name/327\",[135,77.243]],[\"comment/327\",[]],[\"name/328\",[1,24.344]],[\"comment/328\",[]],[\"name/329\",[133,72.135]],[\"comment/329\",[]],[\"name/330\",[119,68.77]],[\"comment/330\",[]],[\"name/331\",[120,68.77]],[\"comment/331\",[]],[\"name/332\",[121,68.77]],[\"comment/332\",[]],[\"name/333\",[122,68.77]],[\"comment/333\",[]],[\"name/334\",[134,72.135]],[\"comment/334\",[]],[\"name/335\",[114,62.58]],[\"comment/335\",[]],[\"name/336\",[116,62.58]],[\"comment/336\",[]],[\"name/337\",[117,62.58]],[\"comment/337\",[]],[\"name/338\",[118,62.58]],[\"comment/338\",[]],[\"name/339\",[136,77.243]],[\"comment/339\",[]],[\"name/340\",[1,24.344]],[\"comment/340\",[]],[\"name/341\",[137,77.243]],[\"comment/341\",[]],[\"name/342\",[114,62.58]],[\"comment/342\",[]],[\"name/343\",[116,62.58]],[\"comment/343\",[]],[\"name/344\",[117,62.58]],[\"comment/344\",[]],[\"name/345\",[118,62.58]],[\"comment/345\",[]],[\"name/346\",[138,77.243]],[\"comment/346\",[]],[\"name/347\",[115,30.961]],[\"comment/347\",[]],[\"name/348\",[139,64.25]],[\"comment/348\",[]],[\"name/349\",[140,59.897]],[\"comment/349\",[]],[\"name/350\",[125,68.77]],[\"comment/350\",[]],[\"name/351\",[1,24.344]],[\"comment/351\",[]],[\"name/352\",[4,28.801]],[\"comment/352\",[]],[\"name/353\",[5,29.285]],[\"comment/353\",[]],[\"name/354\",[6,29.285]],[\"comment/354\",[]],[\"name/355\",[141,77.243]],[\"comment/355\",[]],[\"name/356\",[142,66.257]],[\"comment/356\",[]],[\"name/357\",[143,57.784]],[\"comment/357\",[]],[\"name/358\",[144,68.77]],[\"comment/358\",[]],[\"name/359\",[1,24.344]],[\"comment/359\",[]],[\"name/360\",[4,28.801]],[\"comment/360\",[]],[\"name/361\",[5,29.285]],[\"comment/361\",[]],[\"name/362\",[6,29.285]],[\"comment/362\",[]],[\"name/363\",[145,77.243]],[\"comment/363\",[]],[\"name/364\",[1,24.344]],[\"comment/364\",[]],[\"name/365\",[4,28.801]],[\"comment/365\",[]],[\"name/366\",[5,29.285]],[\"comment/366\",[]],[\"name/367\",[146,77.243]],[\"comment/367\",[]],[\"name/368\",[115,30.961]],[\"comment/368\",[]],[\"name/369\",[147,77.243]],[\"comment/369\",[]],[\"name/370\",[148,77.243]],[\"comment/370\",[]],[\"name/371\",[149,68.77]],[\"comment/371\",[]],[\"name/372\",[150,77.243]],[\"comment/372\",[]],[\"name/373\",[151,77.243]],[\"comment/373\",[]],[\"name/374\",[152,77.243]],[\"comment/374\",[]],[\"name/375\",[6,29.285]],[\"comment/375\",[]],[\"name/376\",[153,77.243]],[\"comment/376\",[]],[\"name/377\",[1,24.344]],[\"comment/377\",[]],[\"name/378\",[2,36.696]],[\"comment/378\",[]],[\"name/379\",[5,29.285]],[\"comment/379\",[]],[\"name/380\",[4,28.801]],[\"comment/380\",[]],[\"name/381\",[6,29.285]],[\"comment/381\",[]],[\"name/382\",[154,77.243]],[\"comment/382\",[]],[\"name/383\",[1,24.344]],[\"comment/383\",[]],[\"name/384\",[2,36.696]],[\"comment/384\",[]],[\"name/385\",[4,28.801]],[\"comment/385\",[]],[\"name/386\",[5,29.285]],[\"comment/386\",[]],[\"name/387\",[6,29.285]],[\"comment/387\",[]],[\"name/388\",[155,77.243]],[\"comment/388\",[]],[\"name/389\",[1,24.344]],[\"comment/389\",[]],[\"name/390\",[2,36.696]],[\"comment/390\",[]],[\"name/391\",[5,29.285]],[\"comment/391\",[]],[\"name/392\",[156,77.243]],[\"comment/392\",[]],[\"name/393\",[157,77.243]],[\"comment/393\",[]],[\"name/394\",[4,28.801]],[\"comment/394\",[]],[\"name/395\",[6,29.285]],[\"comment/395\",[]],[\"name/396\",[158,68.77]],[\"comment/396\",[]],[\"name/397\",[1,24.344]],[\"comment/397\",[]],[\"name/398\",[4,28.801]],[\"comment/398\",[]],[\"name/399\",[5,29.285]],[\"comment/399\",[]],[\"name/400\",[6,29.285]],[\"comment/400\",[]],[\"name/401\",[159,77.243]],[\"comment/401\",[]],[\"name/402\",[42,54.556]],[\"comment/402\",[]],[\"name/403\",[160,72.135]],[\"comment/403\",[]],[\"name/404\",[15,72.135]],[\"comment/404\",[]],[\"name/405\",[1,24.344]],[\"comment/405\",[]],[\"name/406\",[42,54.556]],[\"comment/406\",[]],[\"name/407\",[160,72.135]],[\"comment/407\",[]],[\"name/408\",[5,29.285]],[\"comment/408\",[]],[\"name/409\",[4,28.801]],[\"comment/409\",[]],[\"name/410\",[6,29.285]],[\"comment/410\",[]],[\"name/411\",[161,64.25]],[\"comment/411\",[]],[\"name/412\",[1,24.344]],[\"comment/412\",[]],[\"name/413\",[4,28.801]],[\"comment/413\",[]],[\"name/414\",[5,29.285]],[\"comment/414\",[]],[\"name/415\",[6,29.285]],[\"comment/415\",[]],[\"name/416\",[162,77.243]],[\"comment/416\",[]],[\"name/417\",[1,24.344]],[\"comment/417\",[]],[\"name/418\",[2,36.696]],[\"comment/418\",[]],[\"name/419\",[5,29.285]],[\"comment/419\",[]],[\"name/420\",[4,28.801]],[\"comment/420\",[]],[\"name/421\",[6,29.285]],[\"comment/421\",[]],[\"name/422\",[163,77.243]],[\"comment/422\",[]],[\"name/423\",[1,24.344]],[\"comment/423\",[]],[\"name/424\",[5,29.285]],[\"comment/424\",[]],[\"name/425\",[4,28.801]],[\"comment/425\",[]],[\"name/426\",[6,29.285]],[\"comment/426\",[]],[\"name/427\",[164,77.243]],[\"comment/427\",[]],[\"name/428\",[1,24.344]],[\"comment/428\",[]],[\"name/429\",[2,36.696]],[\"comment/429\",[]],[\"name/430\",[165,72.135]],[\"comment/430\",[]],[\"name/431\",[5,29.285]],[\"comment/431\",[]],[\"name/432\",[4,28.801]],[\"comment/432\",[]],[\"name/433\",[6,29.285]],[\"comment/433\",[]],[\"name/434\",[166,77.243]],[\"comment/434\",[]],[\"name/435\",[1,24.344]],[\"comment/435\",[]],[\"name/436\",[167,64.25]],[\"comment/436\",[]],[\"name/437\",[168,77.243]],[\"comment/437\",[]],[\"name/438\",[169,77.243]],[\"comment/438\",[]],[\"name/439\",[170,77.243]],[\"comment/439\",[]],[\"name/440\",[171,77.243]],[\"comment/440\",[]],[\"name/441\",[172,68.77]],[\"comment/441\",[]],[\"name/442\",[1,24.344]],[\"comment/442\",[]],[\"name/443\",[4,28.801]],[\"comment/443\",[]],[\"name/444\",[5,29.285]],[\"comment/444\",[]],[\"name/445\",[6,29.285]],[\"comment/445\",[]],[\"name/446\",[173,77.243]],[\"comment/446\",[]],[\"name/447\",[1,24.344]],[\"comment/447\",[]],[\"name/448\",[2,36.696]],[\"comment/448\",[]],[\"name/449\",[5,29.285]],[\"comment/449\",[]],[\"name/450\",[174,77.243]],[\"comment/450\",[]],[\"name/451\",[4,28.801]],[\"comment/451\",[]],[\"name/452\",[6,29.285]],[\"comment/452\",[]],[\"name/453\",[175,77.243]],[\"comment/453\",[]],[\"name/454\",[1,24.344]],[\"comment/454\",[]],[\"name/455\",[2,36.696]],[\"comment/455\",[]],[\"name/456\",[5,29.285]],[\"comment/456\",[]],[\"name/457\",[4,28.801]],[\"comment/457\",[]],[\"name/458\",[6,29.285]],[\"comment/458\",[]],[\"name/459\",[176,77.243]],[\"comment/459\",[]],[\"name/460\",[1,24.344]],[\"comment/460\",[]],[\"name/461\",[5,29.285]],[\"comment/461\",[]],[\"name/462\",[4,28.801]],[\"comment/462\",[]],[\"name/463\",[6,29.285]],[\"comment/463\",[]],[\"name/464\",[177,66.257]],[\"comment/464\",[]],[\"name/465\",[1,24.344]],[\"comment/465\",[]],[\"name/466\",[4,28.801]],[\"comment/466\",[]],[\"name/467\",[5,29.285]],[\"comment/467\",[]],[\"name/468\",[6,29.285]],[\"comment/468\",[]],[\"name/469\",[178,77.243]],[\"comment/469\",[]],[\"name/470\",[161,64.25]],[\"comment/470\",[]],[\"name/471\",[177,66.257]],[\"comment/471\",[]],[\"name/472\",[172,68.77]],[\"comment/472\",[]],[\"name/473\",[158,68.77]],[\"comment/473\",[]],[\"name/474\",[144,68.77]],[\"comment/474\",[]],[\"name/475\",[179,77.243]],[\"comment/475\",[]],[\"name/476\",[1,24.344]],[\"comment/476\",[]],[\"name/477\",[161,64.25]],[\"comment/477\",[]],[\"name/478\",[177,66.257]],[\"comment/478\",[]],[\"name/479\",[172,68.77]],[\"comment/479\",[]],[\"name/480\",[158,68.77]],[\"comment/480\",[]],[\"name/481\",[144,68.77]],[\"comment/481\",[]],[\"name/482\",[5,29.285]],[\"comment/482\",[]],[\"name/483\",[4,28.801]],[\"comment/483\",[]],[\"name/484\",[6,29.285]],[\"comment/484\",[]],[\"name/485\",[180,68.77]],[\"comment/485\",[]],[\"name/486\",[1,24.344]],[\"comment/486\",[]],[\"name/487\",[4,28.801]],[\"comment/487\",[]],[\"name/488\",[5,29.285]],[\"comment/488\",[]],[\"name/489\",[6,29.285]],[\"comment/489\",[]],[\"name/490\",[181,77.243]],[\"comment/490\",[]],[\"name/491\",[143,57.784]],[\"comment/491\",[]],[\"name/492\",[182,62.58]],[\"comment/492\",[]],[\"name/493\",[183,77.243]],[\"comment/493\",[]],[\"name/494\",[1,24.344]],[\"comment/494\",[]],[\"name/495\",[4,28.801]],[\"comment/495\",[]],[\"name/496\",[5,29.285]],[\"comment/496\",[]],[\"name/497\",[6,29.285]],[\"comment/497\",[]],[\"name/498\",[184,77.243]],[\"comment/498\",[]],[\"name/499\",[1,24.344]],[\"comment/499\",[]],[\"name/500\",[5,29.285]],[\"comment/500\",[]],[\"name/501\",[4,28.801]],[\"comment/501\",[]],[\"name/502\",[6,29.285]],[\"comment/502\",[]],[\"name/503\",[185,77.243]],[\"comment/503\",[]],[\"name/504\",[1,24.344]],[\"comment/504\",[]],[\"name/505\",[186,52.676]],[\"comment/505\",[]],[\"name/506\",[4,28.801]],[\"comment/506\",[]],[\"name/507\",[5,29.285]],[\"comment/507\",[]],[\"name/508\",[6,29.285]],[\"comment/508\",[]],[\"name/509\",[187,77.243]],[\"comment/509\",[]],[\"name/510\",[1,24.344]],[\"comment/510\",[]],[\"name/511\",[186,52.676]],[\"comment/511\",[]],[\"name/512\",[4,28.801]],[\"comment/512\",[]],[\"name/513\",[5,29.285]],[\"comment/513\",[]],[\"name/514\",[6,29.285]],[\"comment/514\",[]],[\"name/515\",[188,77.243]],[\"comment/515\",[]],[\"name/516\",[1,24.344]],[\"comment/516\",[]],[\"name/517\",[186,52.676]],[\"comment/517\",[]],[\"name/518\",[4,28.801]],[\"comment/518\",[]],[\"name/519\",[5,29.285]],[\"comment/519\",[]],[\"name/520\",[6,29.285]],[\"comment/520\",[]],[\"name/521\",[189,77.243]],[\"comment/521\",[]],[\"name/522\",[182,62.58]],[\"comment/522\",[]],[\"name/523\",[190,64.25]],[\"comment/523\",[]],[\"name/524\",[1,24.344]],[\"comment/524\",[]],[\"name/525\",[4,28.801]],[\"comment/525\",[]],[\"name/526\",[5,29.285]],[\"comment/526\",[]],[\"name/527\",[6,29.285]],[\"comment/527\",[]],[\"name/528\",[191,77.243]],[\"comment/528\",[]],[\"name/529\",[1,24.344]],[\"comment/529\",[]],[\"name/530\",[2,36.696]],[\"comment/530\",[]],[\"name/531\",[186,52.676]],[\"comment/531\",[]],[\"name/532\",[4,28.801]],[\"comment/532\",[]],[\"name/533\",[5,29.285]],[\"comment/533\",[]],[\"name/534\",[6,29.285]],[\"comment/534\",[]],[\"name/535\",[192,77.243]],[\"comment/535\",[]],[\"name/536\",[1,24.344]],[\"comment/536\",[]],[\"name/537\",[2,36.696]],[\"comment/537\",[]],[\"name/538\",[186,52.676]],[\"comment/538\",[]],[\"name/539\",[4,28.801]],[\"comment/539\",[]],[\"name/540\",[5,29.285]],[\"comment/540\",[]],[\"name/541\",[6,29.285]],[\"comment/541\",[]],[\"name/542\",[193,77.243]],[\"comment/542\",[]],[\"name/543\",[1,24.344]],[\"comment/543\",[]],[\"name/544\",[2,36.696]],[\"comment/544\",[]],[\"name/545\",[186,52.676]],[\"comment/545\",[]],[\"name/546\",[194,62.58]],[\"comment/546\",[]],[\"name/547\",[4,28.801]],[\"comment/547\",[]],[\"name/548\",[5,29.285]],[\"comment/548\",[]],[\"name/549\",[6,29.285]],[\"comment/549\",[]],[\"name/550\",[195,77.243]],[\"comment/550\",[]],[\"name/551\",[1,24.344]],[\"comment/551\",[]],[\"name/552\",[131,57.784]],[\"comment/552\",[]],[\"name/553\",[177,66.257]],[\"comment/553\",[]],[\"name/554\",[196,64.25]],[\"comment/554\",[]],[\"name/555\",[4,28.801]],[\"comment/555\",[]],[\"name/556\",[5,29.285]],[\"comment/556\",[]],[\"name/557\",[6,29.285]],[\"comment/557\",[]],[\"name/558\",[197,77.243]],[\"comment/558\",[]],[\"name/559\",[198,77.243]],[\"comment/559\",[]],[\"name/560\",[199,77.243]],[\"comment/560\",[]],[\"name/561\",[200,77.243]],[\"comment/561\",[]],[\"name/562\",[201,61.149]],[\"comment/562\",[]],[\"name/563\",[142,66.257]],[\"comment/563\",[]],[\"name/564\",[202,62.58]],[\"comment/564\",[]],[\"name/565\",[1,24.344]],[\"comment/565\",[]],[\"name/566\",[4,28.801]],[\"comment/566\",[]],[\"name/567\",[5,29.285]],[\"comment/567\",[]],[\"name/568\",[6,29.285]],[\"comment/568\",[]],[\"name/569\",[203,77.243]],[\"comment/569\",[]],[\"name/570\",[1,24.344]],[\"comment/570\",[]],[\"name/571\",[4,28.801]],[\"comment/571\",[]],[\"name/572\",[5,29.285]],[\"comment/572\",[]],[\"name/573\",[6,29.285]],[\"comment/573\",[]],[\"name/574\",[204,77.243]],[\"comment/574\",[]],[\"name/575\",[1,24.344]],[\"comment/575\",[]],[\"name/576\",[2,36.696]],[\"comment/576\",[]],[\"name/577\",[202,62.58]],[\"comment/577\",[]],[\"name/578\",[196,64.25]],[\"comment/578\",[]],[\"name/579\",[5,29.285]],[\"comment/579\",[]],[\"name/580\",[4,28.801]],[\"comment/580\",[]],[\"name/581\",[6,29.285]],[\"comment/581\",[]],[\"name/582\",[205,77.243]],[\"comment/582\",[]],[\"name/583\",[1,24.344]],[\"comment/583\",[]],[\"name/584\",[206,77.243]],[\"comment/584\",[]],[\"name/585\",[207,77.243]],[\"comment/585\",[]],[\"name/586\",[115,30.961]],[\"comment/586\",[]],[\"name/587\",[208,61.149]],[\"comment/587\",[]],[\"name/588\",[209,77.243]],[\"comment/588\",[]],[\"name/589\",[210,77.243]],[\"comment/589\",[]],[\"name/590\",[5,29.285]],[\"comment/590\",[]],[\"name/591\",[211,77.243]],[\"comment/591\",[]],[\"name/592\",[212,77.243]],[\"comment/592\",[]],[\"name/593\",[213,77.243]],[\"comment/593\",[]],[\"name/594\",[214,77.243]],[\"comment/594\",[]],[\"name/595\",[215,77.243]],[\"comment/595\",[]],[\"name/596\",[4,28.801]],[\"comment/596\",[]],[\"name/597\",[6,29.285]],[\"comment/597\",[]],[\"name/598\",[216,77.243]],[\"comment/598\",[]],[\"name/599\",[1,24.344]],[\"comment/599\",[]],[\"name/600\",[2,36.696]],[\"comment/600\",[]],[\"name/601\",[75,64.25]],[\"comment/601\",[]],[\"name/602\",[217,77.243]],[\"comment/602\",[]],[\"name/603\",[218,77.243]],[\"comment/603\",[]],[\"name/604\",[5,29.285]],[\"comment/604\",[]],[\"name/605\",[4,28.801]],[\"comment/605\",[]],[\"name/606\",[6,29.285]],[\"comment/606\",[]],[\"name/607\",[219,77.243]],[\"comment/607\",[]],[\"name/608\",[1,24.344]],[\"comment/608\",[]],[\"name/609\",[220,72.135]],[\"comment/609\",[]],[\"name/610\",[5,29.285]],[\"comment/610\",[]],[\"name/611\",[4,28.801]],[\"comment/611\",[]],[\"name/612\",[6,29.285]],[\"comment/612\",[]],[\"name/613\",[221,77.243]],[\"comment/613\",[]],[\"name/614\",[1,24.344]],[\"comment/614\",[]],[\"name/615\",[5,29.285]],[\"comment/615\",[]],[\"name/616\",[4,28.801]],[\"comment/616\",[]],[\"name/617\",[6,29.285]],[\"comment/617\",[]],[\"name/618\",[222,77.243]],[\"comment/618\",[]],[\"name/619\",[1,24.344]],[\"comment/619\",[]],[\"name/620\",[165,72.135]],[\"comment/620\",[]],[\"name/621\",[2,36.696]],[\"comment/621\",[]],[\"name/622\",[5,29.285]],[\"comment/622\",[]],[\"name/623\",[4,28.801]],[\"comment/623\",[]],[\"name/624\",[6,29.285]],[\"comment/624\",[]],[\"name/625\",[223,77.243]],[\"comment/625\",[]],[\"name/626\",[1,24.344]],[\"comment/626\",[]],[\"name/627\",[224,77.243]],[\"comment/627\",[]],[\"name/628\",[5,29.285]],[\"comment/628\",[]],[\"name/629\",[4,28.801]],[\"comment/629\",[]],[\"name/630\",[6,29.285]],[\"comment/630\",[]],[\"name/631\",[225,72.135]],[\"comment/631\",[]],[\"name/632\",[1,24.344]],[\"comment/632\",[]],[\"name/633\",[4,28.801]],[\"comment/633\",[]],[\"name/634\",[5,29.285]],[\"comment/634\",[]],[\"name/635\",[6,29.285]],[\"comment/635\",[]],[\"name/636\",[226,77.243]],[\"comment/636\",[]],[\"name/637\",[1,24.344]],[\"comment/637\",[]],[\"name/638\",[5,29.285]],[\"comment/638\",[]],[\"name/639\",[4,28.801]],[\"comment/639\",[]],[\"name/640\",[6,29.285]],[\"comment/640\",[]],[\"name/641\",[227,77.243]],[\"comment/641\",[]],[\"name/642\",[1,24.344]],[\"comment/642\",[]],[\"name/643\",[5,29.285]],[\"comment/643\",[]],[\"name/644\",[228,77.243]],[\"comment/644\",[]],[\"name/645\",[229,77.243]],[\"comment/645\",[]],[\"name/646\",[4,28.801]],[\"comment/646\",[]],[\"name/647\",[6,29.285]],[\"comment/647\",[]],[\"name/648\",[230,77.243]],[\"comment/648\",[]],[\"name/649\",[1,24.344]],[\"comment/649\",[]],[\"name/650\",[231,68.77]],[\"comment/650\",[]],[\"name/651\",[5,29.285]],[\"comment/651\",[]],[\"name/652\",[4,28.801]],[\"comment/652\",[]],[\"name/653\",[6,29.285]],[\"comment/653\",[]],[\"name/654\",[232,77.243]],[\"comment/654\",[]],[\"name/655\",[1,24.344]],[\"comment/655\",[]],[\"name/656\",[233,46.485]],[\"comment/656\",[]],[\"name/657\",[143,57.784]],[\"comment/657\",[]],[\"name/658\",[234,58.785]],[\"comment/658\",[]],[\"name/659\",[235,77.243]],[\"comment/659\",[]],[\"name/660\",[1,24.344]],[\"comment/660\",[]],[\"name/661\",[233,46.485]],[\"comment/661\",[]],[\"name/662\",[143,57.784]],[\"comment/662\",[]],[\"name/663\",[234,58.785]],[\"comment/663\",[]],[\"name/664\",[236,77.243]],[\"comment/664\",[]],[\"name/665\",[1,24.344]],[\"comment/665\",[]],[\"name/666\",[233,46.485]],[\"comment/666\",[]],[\"name/667\",[143,57.784]],[\"comment/667\",[]],[\"name/668\",[234,58.785]],[\"comment/668\",[]],[\"name/669\",[237,77.243]],[\"comment/669\",[]],[\"name/670\",[1,24.344]],[\"comment/670\",[]],[\"name/671\",[233,46.485]],[\"comment/671\",[]],[\"name/672\",[143,57.784]],[\"comment/672\",[]],[\"name/673\",[234,58.785]],[\"comment/673\",[]],[\"name/674\",[238,77.243]],[\"comment/674\",[]],[\"name/675\",[1,24.344]],[\"comment/675\",[]],[\"name/676\",[2,36.696]],[\"comment/676\",[]],[\"name/677\",[225,72.135]],[\"comment/677\",[]],[\"name/678\",[4,28.801]],[\"comment/678\",[]],[\"name/679\",[5,29.285]],[\"comment/679\",[]],[\"name/680\",[6,29.285]],[\"comment/680\",[]],[\"name/681\",[239,64.25]],[\"comment/681\",[]],[\"name/682\",[1,24.344]],[\"comment/682\",[]],[\"name/683\",[4,28.801]],[\"comment/683\",[]],[\"name/684\",[5,29.285]],[\"comment/684\",[]],[\"name/685\",[6,29.285]],[\"comment/685\",[]],[\"name/686\",[240,77.243]],[\"comment/686\",[]],[\"name/687\",[1,24.344]],[\"comment/687\",[]],[\"name/688\",[234,58.785]],[\"comment/688\",[]],[\"name/689\",[143,57.784]],[\"comment/689\",[]],[\"name/690\",[241,66.257]],[\"comment/690\",[]],[\"name/691\",[242,66.257]],[\"comment/691\",[]],[\"name/692\",[208,61.149]],[\"comment/692\",[]],[\"name/693\",[143,57.784]],[\"comment/693\",[]],[\"name/694\",[234,58.785]],[\"comment/694\",[]],[\"name/695\",[241,66.257]],[\"comment/695\",[]],[\"name/696\",[242,66.257]],[\"comment/696\",[]],[\"name/697\",[139,64.25]],[\"comment/697\",[]],[\"name/698\",[143,57.784]],[\"comment/698\",[]],[\"name/699\",[234,58.785]],[\"comment/699\",[]],[\"name/700\",[241,66.257]],[\"comment/700\",[]],[\"name/701\",[242,66.257]],[\"comment/701\",[]],[\"name/702\",[243,77.243]],[\"comment/702\",[]],[\"name/703\",[244,77.243]],[\"comment/703\",[]],[\"name/704\",[245,77.243]],[\"comment/704\",[]],[\"name/705\",[246,77.243]],[\"comment/705\",[]],[\"name/706\",[247,77.243]],[\"comment/706\",[]],[\"name/707\",[248,77.243]],[\"comment/707\",[]],[\"name/708\",[1,24.344]],[\"comment/708\",[]],[\"name/709\",[2,36.696]],[\"comment/709\",[]],[\"name/710\",[186,52.676]],[\"comment/710\",[]],[\"name/711\",[249,77.243]],[\"comment/711\",[]],[\"name/712\",[250,77.243]],[\"comment/712\",[]],[\"name/713\",[251,77.243]],[\"comment/713\",[]],[\"name/714\",[140,59.897]],[\"comment/714\",[]],[\"name/715\",[252,77.243]],[\"comment/715\",[]],[\"name/716\",[253,77.243]],[\"comment/716\",[]],[\"name/717\",[254,77.243]],[\"comment/717\",[]],[\"name/718\",[255,77.243]],[\"comment/718\",[]],[\"name/719\",[256,77.243]],[\"comment/719\",[]],[\"name/720\",[257,64.25]],[\"comment/720\",[]],[\"name/721\",[258,72.135]],[\"comment/721\",[]],[\"name/722\",[259,77.243]],[\"comment/722\",[]],[\"name/723\",[260,77.243]],[\"comment/723\",[]],[\"name/724\",[261,56.04]],[\"comment/724\",[]],[\"name/725\",[262,77.243]],[\"comment/725\",[]],[\"name/726\",[263,55.271]],[\"comment/726\",[]],[\"name/727\",[264,56.04]],[\"comment/727\",[]],[\"name/728\",[265,77.243]],[\"comment/728\",[]],[\"name/729\",[266,77.243]],[\"comment/729\",[]],[\"name/730\",[267,77.243]],[\"comment/730\",[]],[\"name/731\",[268,59.897]],[\"comment/731\",[]],[\"name/732\",[269,77.243]],[\"comment/732\",[]],[\"name/733\",[270,77.243]],[\"comment/733\",[]],[\"name/734\",[271,77.243]],[\"comment/734\",[]],[\"name/735\",[115,30.961]],[\"comment/735\",[]],[\"name/736\",[272,77.243]],[\"comment/736\",[]],[\"name/737\",[115,30.961]],[\"comment/737\",[]],[\"name/738\",[167,64.25]],[\"comment/738\",[]],[\"name/739\",[273,61.149]],[\"comment/739\",[]],[\"name/740\",[274,77.243]],[\"comment/740\",[]],[\"name/741\",[275,77.243]],[\"comment/741\",[]],[\"name/742\",[276,77.243]],[\"comment/742\",[]],[\"name/743\",[277,77.243]],[\"comment/743\",[]],[\"name/744\",[278,77.243]],[\"comment/744\",[]],[\"name/745\",[279,77.243]],[\"comment/745\",[]],[\"name/746\",[280,77.243]],[\"comment/746\",[]],[\"name/747\",[281,77.243]],[\"comment/747\",[]],[\"name/748\",[282,66.257]],[\"comment/748\",[]],[\"name/749\",[283,77.243]],[\"comment/749\",[]],[\"name/750\",[284,77.243]],[\"comment/750\",[]],[\"name/751\",[143,57.784]],[\"comment/751\",[]],[\"name/752\",[234,58.785]],[\"comment/752\",[]],[\"name/753\",[241,66.257]],[\"comment/753\",[]],[\"name/754\",[242,66.257]],[\"comment/754\",[]],[\"name/755\",[182,62.58]],[\"comment/755\",[]],[\"name/756\",[285,77.243]],[\"comment/756\",[]],[\"name/757\",[286,72.135]],[\"comment/757\",[]],[\"name/758\",[287,68.77]],[\"comment/758\",[]],[\"name/759\",[149,68.77]],[\"comment/759\",[]],[\"name/760\",[71,72.135]],[\"comment/760\",[]],[\"name/761\",[288,72.135]],[\"comment/761\",[]],[\"name/762\",[289,77.243]],[\"comment/762\",[]],[\"name/763\",[1,24.344]],[\"comment/763\",[]],[\"name/764\",[2,36.696]],[\"comment/764\",[]],[\"name/765\",[290,77.243]],[\"comment/765\",[]],[\"name/766\",[5,29.285]],[\"comment/766\",[]],[\"name/767\",[291,77.243]],[\"comment/767\",[]],[\"name/768\",[4,28.801]],[\"comment/768\",[]],[\"name/769\",[6,29.285]],[\"comment/769\",[]],[\"name/770\",[292,77.243]],[\"comment/770\",[]],[\"name/771\",[293,68.77]],[\"comment/771\",[]],[\"name/772\",[88,54.556]],[\"comment/772\",[]],[\"name/773\",[294,72.135]],[\"comment/773\",[]],[\"name/774\",[295,68.77]],[\"comment/774\",[]],[\"name/775\",[296,66.257]],[\"comment/775\",[]],[\"name/776\",[297,53.264]],[\"comment/776\",[]],[\"name/777\",[196,64.25]],[\"comment/777\",[]],[\"name/778\",[202,62.58]],[\"comment/778\",[]],[\"name/779\",[239,64.25]],[\"comment/779\",[]],[\"name/780\",[298,77.243]],[\"comment/780\",[]],[\"name/781\",[1,24.344]],[\"comment/781\",[]],[\"name/782\",[2,36.696]],[\"comment/782\",[]],[\"name/783\",[299,77.243]],[\"comment/783\",[]],[\"name/784\",[293,68.77]],[\"comment/784\",[]],[\"name/785\",[88,54.556]],[\"comment/785\",[]],[\"name/786\",[294,72.135]],[\"comment/786\",[]],[\"name/787\",[295,68.77]],[\"comment/787\",[]],[\"name/788\",[296,66.257]],[\"comment/788\",[]],[\"name/789\",[297,53.264]],[\"comment/789\",[]],[\"name/790\",[196,64.25]],[\"comment/790\",[]],[\"name/791\",[202,62.58]],[\"comment/791\",[]],[\"name/792\",[239,64.25]],[\"comment/792\",[]],[\"name/793\",[300,77.243]],[\"comment/793\",[]],[\"name/794\",[301,77.243]],[\"comment/794\",[]],[\"name/795\",[302,72.135]],[\"comment/795\",[]],[\"name/796\",[303,77.243]],[\"comment/796\",[]],[\"name/797\",[304,77.243]],[\"comment/797\",[]],[\"name/798\",[305,77.243]],[\"comment/798\",[]],[\"name/799\",[306,77.243]],[\"comment/799\",[]],[\"name/800\",[307,77.243]],[\"comment/800\",[]],[\"name/801\",[308,77.243]],[\"comment/801\",[]],[\"name/802\",[309,77.243]],[\"comment/802\",[]],[\"name/803\",[310,77.243]],[\"comment/803\",[]],[\"name/804\",[311,77.243]],[\"comment/804\",[]],[\"name/805\",[312,77.243]],[\"comment/805\",[]],[\"name/806\",[313,64.25]],[\"comment/806\",[]],[\"name/807\",[302,72.135]],[\"comment/807\",[]],[\"name/808\",[115,30.961]],[\"comment/808\",[]],[\"name/809\",[314,72.135]],[\"comment/809\",[]],[\"name/810\",[315,77.243]],[\"comment/810\",[]],[\"name/811\",[8,61.149]],[\"comment/811\",[]],[\"name/812\",[316,77.243]],[\"comment/812\",[]],[\"name/813\",[1,24.344]],[\"comment/813\",[]],[\"name/814\",[297,53.264]],[\"comment/814\",[]],[\"name/815\",[317,64.25]],[\"comment/815\",[]],[\"name/816\",[318,61.149]],[\"comment/816\",[]],[\"name/817\",[39,47.799]],[\"comment/817\",[]],[\"name/818\",[319,66.257]],[\"comment/818\",[]],[\"name/819\",[320,66.257]],[\"comment/819\",[]],[\"name/820\",[321,66.257]],[\"comment/820\",[]],[\"name/821\",[322,66.257]],[\"comment/821\",[]],[\"name/822\",[323,66.257]],[\"comment/822\",[]],[\"name/823\",[324,66.257]],[\"comment/823\",[]],[\"name/824\",[325,77.243]],[\"comment/824\",[]],[\"name/825\",[1,24.344]],[\"comment/825\",[]],[\"name/826\",[297,53.264]],[\"comment/826\",[]],[\"name/827\",[326,64.25]],[\"comment/827\",[]],[\"name/828\",[39,47.799]],[\"comment/828\",[]],[\"name/829\",[327,77.243]],[\"comment/829\",[]],[\"name/830\",[1,24.344]],[\"comment/830\",[]],[\"name/831\",[79,56.04]],[\"comment/831\",[]],[\"name/832\",[39,47.799]],[\"comment/832\",[]],[\"name/833\",[5,29.285]],[\"comment/833\",[]],[\"name/834\",[4,28.801]],[\"comment/834\",[]],[\"name/835\",[6,29.285]],[\"comment/835\",[]],[\"name/836\",[328,77.243]],[\"comment/836\",[]],[\"name/837\",[1,24.344]],[\"comment/837\",[]],[\"name/838\",[79,56.04]],[\"comment/838\",[]],[\"name/839\",[296,66.257]],[\"comment/839\",[]],[\"name/840\",[4,28.801]],[\"comment/840\",[]],[\"name/841\",[5,29.285]],[\"comment/841\",[]],[\"name/842\",[6,29.285]],[\"comment/842\",[]],[\"name/843\",[329,77.243]],[\"comment/843\",[]],[\"name/844\",[330,62.58]],[\"comment/844\",[]],[\"name/845\",[8,61.149]],[\"comment/845\",[]],[\"name/846\",[331,77.243]],[\"comment/846\",[]],[\"name/847\",[182,62.58]],[\"comment/847\",[]],[\"name/848\",[288,72.135]],[\"comment/848\",[]],[\"name/849\",[332,77.243]],[\"comment/849\",[]],[\"name/850\",[1,24.344]],[\"comment/850\",[]],[\"name/851\",[4,28.801]],[\"comment/851\",[]],[\"name/852\",[5,29.285]],[\"comment/852\",[]],[\"name/853\",[6,29.285]],[\"comment/853\",[]],[\"name/854\",[333,77.243]],[\"comment/854\",[]],[\"name/855\",[1,24.344]],[\"comment/855\",[]],[\"name/856\",[79,56.04]],[\"comment/856\",[]],[\"name/857\",[296,66.257]],[\"comment/857\",[]],[\"name/858\",[4,28.801]],[\"comment/858\",[]],[\"name/859\",[5,29.285]],[\"comment/859\",[]],[\"name/860\",[6,29.285]],[\"comment/860\",[]],[\"name/861\",[334,77.243]],[\"comment/861\",[]],[\"name/862\",[1,24.344]],[\"comment/862\",[]],[\"name/863\",[79,56.04]],[\"comment/863\",[]],[\"name/864\",[5,29.285]],[\"comment/864\",[]],[\"name/865\",[4,28.801]],[\"comment/865\",[]],[\"name/866\",[6,29.285]],[\"comment/866\",[]],[\"name/867\",[335,77.243]],[\"comment/867\",[]],[\"name/868\",[79,56.04]],[\"comment/868\",[]],[\"name/869\",[336,56.04]],[\"comment/869\",[]],[\"name/870\",[337,68.77]],[\"comment/870\",[]],[\"name/871\",[338,72.135]],[\"comment/871\",[]],[\"name/872\",[339,77.243]],[\"comment/872\",[]],[\"name/873\",[1,24.344]],[\"comment/873\",[]],[\"name/874\",[2,36.696]],[\"comment/874\",[]],[\"name/875\",[79,56.04]],[\"comment/875\",[]],[\"name/876\",[336,56.04]],[\"comment/876\",[]],[\"name/877\",[337,68.77]],[\"comment/877\",[]],[\"name/878\",[338,72.135]],[\"comment/878\",[]],[\"name/879\",[340,59.897]],[\"comment/879\",[]],[\"name/880\",[341,72.135]],[\"comment/880\",[]],[\"name/881\",[342,77.243]],[\"comment/881\",[]],[\"name/882\",[4,28.801]],[\"comment/882\",[]],[\"name/883\",[5,29.285]],[\"comment/883\",[]],[\"name/884\",[343,59.897]],[\"comment/884\",[]],[\"name/885\",[6,29.285]],[\"comment/885\",[]],[\"name/886\",[344,77.243]],[\"comment/886\",[]],[\"name/887\",[1,24.344]],[\"comment/887\",[]],[\"name/888\",[2,36.696]],[\"comment/888\",[]],[\"name/889\",[79,56.04]],[\"comment/889\",[]],[\"name/890\",[4,28.801]],[\"comment/890\",[]],[\"name/891\",[340,59.897]],[\"comment/891\",[]],[\"name/892\",[345,77.243]],[\"comment/892\",[]],[\"name/893\",[5,29.285]],[\"comment/893\",[]],[\"name/894\",[343,59.897]],[\"comment/894\",[]],[\"name/895\",[6,29.285]],[\"comment/895\",[]],[\"name/896\",[346,77.243]],[\"comment/896\",[]],[\"name/897\",[1,24.344]],[\"comment/897\",[]],[\"name/898\",[2,36.696]],[\"comment/898\",[]],[\"name/899\",[347,64.25]],[\"comment/899\",[]],[\"name/900\",[340,59.897]],[\"comment/900\",[]],[\"name/901\",[4,28.801]],[\"comment/901\",[]],[\"name/902\",[5,29.285]],[\"comment/902\",[]],[\"name/903\",[343,59.897]],[\"comment/903\",[]],[\"name/904\",[6,29.285]],[\"comment/904\",[]],[\"name/905\",[348,77.243]],[\"comment/905\",[]],[\"name/906\",[1,24.344]],[\"comment/906\",[]],[\"name/907\",[2,36.696]],[\"comment/907\",[]],[\"name/908\",[79,56.04]],[\"comment/908\",[]],[\"name/909\",[340,59.897]],[\"comment/909\",[]],[\"name/910\",[341,72.135]],[\"comment/910\",[]],[\"name/911\",[4,28.801]],[\"comment/911\",[]],[\"name/912\",[5,29.285]],[\"comment/912\",[]],[\"name/913\",[343,59.897]],[\"comment/913\",[]],[\"name/914\",[6,29.285]],[\"comment/914\",[]],[\"name/915\",[349,77.243]],[\"comment/915\",[]],[\"name/916\",[350,77.243]],[\"comment/916\",[]],[\"name/917\",[351,72.135]],[\"comment/917\",[]],[\"name/918\",[314,72.135]],[\"comment/918\",[]],[\"name/919\",[79,56.04]],[\"comment/919\",[]],[\"name/920\",[352,72.135]],[\"comment/920\",[]],[\"name/921\",[115,30.961]],[\"comment/921\",[]],[\"name/922\",[52,62.58]],[\"comment/922\",[]],[\"name/923\",[115,30.961]],[\"comment/923\",[]],[\"name/924\",[3,66.257]],[\"comment/924\",[]],[\"name/925\",[115,30.961]],[\"comment/925\",[]],[\"name/926\",[353,72.135]],[\"comment/926\",[]],[\"name/927\",[115,30.961]],[\"comment/927\",[]],[\"name/928\",[354,72.135]],[\"comment/928\",[]],[\"name/929\",[115,30.961]],[\"comment/929\",[]],[\"name/930\",[355,72.135]],[\"comment/930\",[]],[\"name/931\",[115,30.961]],[\"comment/931\",[]],[\"name/932\",[356,72.135]],[\"comment/932\",[]],[\"name/933\",[115,30.961]],[\"comment/933\",[]],[\"name/934\",[357,72.135]],[\"comment/934\",[]],[\"name/935\",[115,30.961]],[\"comment/935\",[]],[\"name/936\",[358,72.135]],[\"comment/936\",[]],[\"name/937\",[115,30.961]],[\"comment/937\",[]],[\"name/938\",[359,72.135]],[\"comment/938\",[]],[\"name/939\",[115,30.961]],[\"comment/939\",[]],[\"name/940\",[360,77.243]],[\"comment/940\",[]],[\"name/941\",[8,61.149]],[\"comment/941\",[]],[\"name/942\",[330,62.58]],[\"comment/942\",[]],[\"name/943\",[361,68.77]],[\"comment/943\",[]],[\"name/944\",[362,77.243]],[\"comment/944\",[]],[\"name/945\",[363,77.243]],[\"comment/945\",[]],[\"name/946\",[330,62.58]],[\"comment/946\",[]],[\"name/947\",[364,77.243]],[\"comment/947\",[]],[\"name/948\",[365,77.243]],[\"comment/948\",[]],[\"name/949\",[366,77.243]],[\"comment/949\",[]],[\"name/950\",[1,24.344]],[\"comment/950\",[]],[\"name/951\",[297,53.264]],[\"comment/951\",[]],[\"name/952\",[367,77.243]],[\"comment/952\",[]],[\"name/953\",[368,77.243]],[\"comment/953\",[]],[\"name/954\",[369,77.243]],[\"comment/954\",[]],[\"name/955\",[370,77.243]],[\"comment/955\",[]],[\"name/956\",[371,77.243]],[\"comment/956\",[]],[\"name/957\",[372,77.243]],[\"comment/957\",[]],[\"name/958\",[352,72.135]],[\"comment/958\",[]],[\"name/959\",[52,62.58]],[\"comment/959\",[]],[\"name/960\",[3,66.257]],[\"comment/960\",[]],[\"name/961\",[353,72.135]],[\"comment/961\",[]],[\"name/962\",[354,72.135]],[\"comment/962\",[]],[\"name/963\",[355,72.135]],[\"comment/963\",[]],[\"name/964\",[356,72.135]],[\"comment/964\",[]],[\"name/965\",[357,72.135]],[\"comment/965\",[]],[\"name/966\",[358,72.135]],[\"comment/966\",[]],[\"name/967\",[359,72.135]],[\"comment/967\",[]],[\"name/968\",[373,77.243]],[\"comment/968\",[]],[\"name/969\",[374,77.243]],[\"comment/969\",[]],[\"name/970\",[115,30.961]],[\"comment/970\",[]],[\"name/971\",[375,72.135]],[\"comment/971\",[]],[\"name/972\",[376,68.77]],[\"comment/972\",[]],[\"name/973\",[231,68.77]],[\"comment/973\",[]],[\"name/974\",[115,30.961]],[\"comment/974\",[]],[\"name/975\",[377,77.243]],[\"comment/975\",[]],[\"name/976\",[378,77.243]],[\"comment/976\",[]],[\"name/977\",[379,72.135]],[\"comment/977\",[]],[\"name/978\",[380,77.243]],[\"comment/978\",[]],[\"name/979\",[1,24.344]],[\"comment/979\",[]],[\"name/980\",[381,77.243]],[\"comment/980\",[]],[\"name/981\",[379,72.135]],[\"comment/981\",[]],[\"name/982\",[5,29.285]],[\"comment/982\",[]],[\"name/983\",[4,28.801]],[\"comment/983\",[]],[\"name/984\",[6,29.285]],[\"comment/984\",[]],[\"name/985\",[382,77.243]],[\"comment/985\",[]],[\"name/986\",[383,77.243]],[\"comment/986\",[]],[\"name/987\",[384,72.135]],[\"comment/987\",[]],[\"name/988\",[385,77.243]],[\"comment/988\",[]],[\"name/989\",[386,77.243]],[\"comment/989\",[]],[\"name/990\",[337,68.77]],[\"comment/990\",[]],[\"name/991\",[1,24.344]],[\"comment/991\",[]],[\"name/992\",[4,28.801]],[\"comment/992\",[]],[\"name/993\",[5,29.285]],[\"comment/993\",[]],[\"name/994\",[6,29.285]],[\"comment/994\",[]],[\"name/995\",[387,77.243]],[\"comment/995\",[]],[\"name/996\",[88,54.556]],[\"comment/996\",[]],[\"name/997\",[388,72.135]],[\"comment/997\",[]],[\"name/998\",[389,68.77]],[\"comment/998\",[]],[\"name/999\",[390,68.77]],[\"comment/999\",[]],[\"name/1000\",[79,56.04]],[\"comment/1000\",[]],[\"name/1001\",[391,68.77]],[\"comment/1001\",[]],[\"name/1002\",[392,77.243]],[\"comment/1002\",[]],[\"name/1003\",[330,62.58]],[\"comment/1003\",[]],[\"name/1004\",[8,61.149]],[\"comment/1004\",[]],[\"name/1005\",[361,68.77]],[\"comment/1005\",[]],[\"name/1006\",[393,77.243]],[\"comment/1006\",[]],[\"name/1007\",[394,66.257]],[\"comment/1007\",[]],[\"name/1008\",[395,72.135]],[\"comment/1008\",[]],[\"name/1009\",[396,66.257]],[\"comment/1009\",[]],[\"name/1010\",[397,64.25]],[\"comment/1010\",[]],[\"name/1011\",[398,77.243]],[\"comment/1011\",[]],[\"name/1012\",[399,77.243]],[\"comment/1012\",[]],[\"name/1013\",[330,62.58]],[\"comment/1013\",[]],[\"name/1014\",[8,61.149]],[\"comment/1014\",[]],[\"name/1015\",[400,72.135]],[\"comment/1015\",[]],[\"name/1016\",[351,72.135]],[\"comment/1016\",[]],[\"name/1017\",[395,72.135]],[\"comment/1017\",[]],[\"name/1018\",[396,66.257]],[\"comment/1018\",[]],[\"name/1019\",[397,64.25]],[\"comment/1019\",[]],[\"name/1020\",[347,64.25]],[\"comment/1020\",[]],[\"name/1021\",[1,24.344]],[\"comment/1021\",[]],[\"name/1022\",[2,36.696]],[\"comment/1022\",[]],[\"name/1023\",[88,54.556]],[\"comment/1023\",[]],[\"name/1024\",[388,72.135]],[\"comment/1024\",[]],[\"name/1025\",[389,68.77]],[\"comment/1025\",[]],[\"name/1026\",[390,68.77]],[\"comment/1026\",[]],[\"name/1027\",[79,56.04]],[\"comment/1027\",[]],[\"name/1028\",[391,68.77]],[\"comment/1028\",[]],[\"name/1029\",[401,77.243]],[\"comment/1029\",[]],[\"name/1030\",[402,77.243]],[\"comment/1030\",[]],[\"name/1031\",[396,66.257]],[\"comment/1031\",[]],[\"name/1032\",[403,77.243]],[\"comment/1032\",[]],[\"name/1033\",[404,77.243]],[\"comment/1033\",[]],[\"name/1034\",[1,24.344]],[\"comment/1034\",[]],[\"name/1035\",[282,66.257]],[\"comment/1035\",[]],[\"name/1036\",[405,68.77]],[\"comment/1036\",[]],[\"name/1037\",[406,77.243]],[\"comment/1037\",[]],[\"name/1038\",[405,68.77]],[\"comment/1038\",[]],[\"name/1039\",[115,30.961]],[\"comment/1039\",[]],[\"name/1040\",[407,77.243]],[\"comment/1040\",[]],[\"name/1041\",[1,24.344]],[\"comment/1041\",[]],[\"name/1042\",[408,77.243]],[\"comment/1042\",[]],[\"name/1043\",[39,47.799]],[\"comment/1043\",[]],[\"name/1044\",[4,28.801]],[\"comment/1044\",[]],[\"name/1045\",[5,29.285]],[\"comment/1045\",[]],[\"name/1046\",[6,29.285]],[\"comment/1046\",[]],[\"name/1047\",[409,77.243]],[\"comment/1047\",[]],[\"name/1048\",[1,24.344]],[\"comment/1048\",[]],[\"name/1049\",[405,68.77]],[\"comment/1049\",[]],[\"name/1050\",[410,77.243]],[\"comment/1050\",[]],[\"name/1051\",[1,24.344]],[\"comment/1051\",[]],[\"name/1052\",[411,77.243]],[\"comment/1052\",[]],[\"name/1053\",[4,28.801]],[\"comment/1053\",[]],[\"name/1054\",[5,29.285]],[\"comment/1054\",[]],[\"name/1055\",[343,59.897]],[\"comment/1055\",[]],[\"name/1056\",[340,59.897]],[\"comment/1056\",[]],[\"name/1057\",[6,29.285]],[\"comment/1057\",[]],[\"name/1058\",[412,77.243]],[\"comment/1058\",[]],[\"name/1059\",[1,24.344]],[\"comment/1059\",[]],[\"name/1060\",[313,64.25]],[\"comment/1060\",[]],[\"name/1061\",[4,28.801]],[\"comment/1061\",[]],[\"name/1062\",[343,59.897]],[\"comment/1062\",[]],[\"name/1063\",[340,59.897]],[\"comment/1063\",[]],[\"name/1064\",[413,77.243]],[\"comment/1064\",[]],[\"name/1065\",[414,77.243]],[\"comment/1065\",[]],[\"name/1066\",[415,77.243]],[\"comment/1066\",[]],[\"name/1067\",[5,29.285]],[\"comment/1067\",[]],[\"name/1068\",[6,29.285]],[\"comment/1068\",[]],[\"name/1069\",[416,77.243]],[\"comment/1069\",[]],[\"name/1070\",[1,24.344]],[\"comment/1070\",[]],[\"name/1071\",[39,47.799]],[\"comment/1071\",[]],[\"name/1072\",[417,77.243]],[\"comment/1072\",[]],[\"name/1073\",[4,28.801]],[\"comment/1073\",[]],[\"name/1074\",[5,29.285]],[\"comment/1074\",[]],[\"name/1075\",[6,29.285]],[\"comment/1075\",[]],[\"name/1076\",[418,77.243]],[\"comment/1076\",[]],[\"name/1077\",[1,24.344]],[\"comment/1077\",[]],[\"name/1078\",[419,68.77]],[\"comment/1078\",[]],[\"name/1079\",[5,29.285]],[\"comment/1079\",[]],[\"name/1080\",[4,28.801]],[\"comment/1080\",[]],[\"name/1081\",[6,29.285]],[\"comment/1081\",[]],[\"name/1082\",[420,77.243]],[\"comment/1082\",[]],[\"name/1083\",[1,24.344]],[\"comment/1083\",[]],[\"name/1084\",[421,77.243]],[\"comment/1084\",[]],[\"name/1085\",[336,56.04]],[\"comment/1085\",[]],[\"name/1086\",[422,77.243]],[\"comment/1086\",[]],[\"name/1087\",[4,28.801]],[\"comment/1087\",[]],[\"name/1088\",[5,29.285]],[\"comment/1088\",[]],[\"name/1089\",[6,29.285]],[\"comment/1089\",[]],[\"name/1090\",[423,77.243]],[\"comment/1090\",[]],[\"name/1091\",[424,77.243]],[\"comment/1091\",[]],[\"name/1092\",[182,62.58]],[\"comment/1092\",[]],[\"name/1093\",[425,77.243]],[\"comment/1093\",[]],[\"name/1094\",[295,68.77]],[\"comment/1094\",[]],[\"name/1095\",[1,24.344]],[\"comment/1095\",[]],[\"name/1096\",[4,28.801]],[\"comment/1096\",[]],[\"name/1097\",[5,29.285]],[\"comment/1097\",[]],[\"name/1098\",[6,29.285]],[\"comment/1098\",[]],[\"name/1099\",[426,77.243]],[\"comment/1099\",[]],[\"name/1100\",[1,24.344]],[\"comment/1100\",[]],[\"name/1101\",[39,47.799]],[\"comment/1101\",[]],[\"name/1102\",[4,28.801]],[\"comment/1102\",[]],[\"name/1103\",[5,29.285]],[\"comment/1103\",[]],[\"name/1104\",[6,29.285]],[\"comment/1104\",[]],[\"name/1105\",[427,77.243]],[\"comment/1105\",[]],[\"name/1106\",[1,24.344]],[\"comment/1106\",[]],[\"name/1107\",[428,77.243]],[\"comment/1107\",[]],[\"name/1108\",[5,29.285]],[\"comment/1108\",[]],[\"name/1109\",[4,28.801]],[\"comment/1109\",[]],[\"name/1110\",[6,29.285]],[\"comment/1110\",[]],[\"name/1111\",[429,77.243]],[\"comment/1111\",[]],[\"name/1112\",[1,24.344]],[\"comment/1112\",[]],[\"name/1113\",[2,36.696]],[\"comment/1113\",[]],[\"name/1114\",[5,29.285]],[\"comment/1114\",[]],[\"name/1115\",[4,28.801]],[\"comment/1115\",[]],[\"name/1116\",[6,29.285]],[\"comment/1116\",[]],[\"name/1117\",[390,68.77]],[\"comment/1117\",[]],[\"name/1118\",[1,24.344]],[\"comment/1118\",[]],[\"name/1119\",[4,28.801]],[\"comment/1119\",[]],[\"name/1120\",[5,29.285]],[\"comment/1120\",[]],[\"name/1121\",[6,29.285]],[\"comment/1121\",[]],[\"name/1122\",[430,77.243]],[\"comment/1122\",[]],[\"name/1123\",[1,24.344]],[\"comment/1123\",[]],[\"name/1124\",[2,36.696]],[\"comment/1124\",[]],[\"name/1125\",[297,53.264]],[\"comment/1125\",[]],[\"name/1126\",[32,68.77]],[\"comment/1126\",[]],[\"name/1127\",[5,29.285]],[\"comment/1127\",[]],[\"name/1128\",[431,77.243]],[\"comment/1128\",[]],[\"name/1129\",[432,77.243]],[\"comment/1129\",[]],[\"name/1130\",[433,77.243]],[\"comment/1130\",[]],[\"name/1131\",[434,77.243]],[\"comment/1131\",[]],[\"name/1132\",[4,28.801]],[\"comment/1132\",[]],[\"name/1133\",[6,29.285]],[\"comment/1133\",[]],[\"name/1134\",[293,68.77]],[\"comment/1134\",[]],[\"name/1135\",[326,64.25]],[\"comment/1135\",[]],[\"name/1136\",[115,30.961]],[\"comment/1136\",[]],[\"name/1137\",[435,77.243]],[\"comment/1137\",[]],[\"name/1138\",[1,24.344]],[\"comment/1138\",[]],[\"name/1139\",[2,36.696]],[\"comment/1139\",[]],[\"name/1140\",[318,61.149]],[\"comment/1140\",[]],[\"name/1141\",[297,53.264]],[\"comment/1141\",[]],[\"name/1142\",[436,77.243]],[\"comment/1142\",[]],[\"name/1143\",[437,77.243]],[\"comment/1143\",[]],[\"name/1144\",[438,77.243]],[\"comment/1144\",[]],[\"name/1145\",[439,77.243]],[\"comment/1145\",[]],[\"name/1146\",[319,66.257]],[\"comment/1146\",[]],[\"name/1147\",[317,64.25]],[\"comment/1147\",[]],[\"name/1148\",[320,66.257]],[\"comment/1148\",[]],[\"name/1149\",[321,66.257]],[\"comment/1149\",[]],[\"name/1150\",[323,66.257]],[\"comment/1150\",[]],[\"name/1151\",[324,66.257]],[\"comment/1151\",[]],[\"name/1152\",[322,66.257]],[\"comment/1152\",[]],[\"name/1153\",[440,77.243]],[\"comment/1153\",[]],[\"name/1154\",[1,24.344]],[\"comment/1154\",[]],[\"name/1155\",[297,53.264]],[\"comment/1155\",[]],[\"name/1156\",[326,64.25]],[\"comment/1156\",[]],[\"name/1157\",[441,77.243]],[\"comment/1157\",[]],[\"name/1158\",[1,24.344]],[\"comment/1158\",[]],[\"name/1159\",[318,61.149]],[\"comment/1159\",[]],[\"name/1160\",[39,47.799]],[\"comment/1160\",[]],[\"name/1161\",[319,66.257]],[\"comment/1161\",[]],[\"name/1162\",[317,64.25]],[\"comment/1162\",[]],[\"name/1163\",[320,66.257]],[\"comment/1163\",[]],[\"name/1164\",[321,66.257]],[\"comment/1164\",[]],[\"name/1165\",[322,66.257]],[\"comment/1165\",[]],[\"name/1166\",[323,66.257]],[\"comment/1166\",[]],[\"name/1167\",[324,66.257]],[\"comment/1167\",[]],[\"name/1168\",[442,77.243]],[\"comment/1168\",[]],[\"name/1169\",[1,24.344]],[\"comment/1169\",[]],[\"name/1170\",[39,47.799]],[\"comment/1170\",[]],[\"name/1171\",[326,64.25]],[\"comment/1171\",[]],[\"name/1172\",[443,77.243]],[\"comment/1172\",[]],[\"name/1173\",[1,24.344]],[\"comment/1173\",[]],[\"name/1174\",[2,36.696]],[\"comment/1174\",[]],[\"name/1175\",[131,57.784]],[\"comment/1175\",[]],[\"name/1176\",[317,64.25]],[\"comment/1176\",[]],[\"name/1177\",[444,77.243]],[\"comment/1177\",[]],[\"name/1178\",[318,61.149]],[\"comment/1178\",[]],[\"name/1179\",[39,47.799]],[\"comment/1179\",[]],[\"name/1180\",[319,66.257]],[\"comment/1180\",[]],[\"name/1181\",[320,66.257]],[\"comment/1181\",[]],[\"name/1182\",[321,66.257]],[\"comment/1182\",[]],[\"name/1183\",[322,66.257]],[\"comment/1183\",[]],[\"name/1184\",[323,66.257]],[\"comment/1184\",[]],[\"name/1185\",[324,66.257]],[\"comment/1185\",[]],[\"name/1186\",[445,77.243]],[\"comment/1186\",[]],[\"name/1187\",[1,24.344]],[\"comment/1187\",[]],[\"name/1188\",[131,57.784]],[\"comment/1188\",[]],[\"name/1189\",[326,64.25]],[\"comment/1189\",[]],[\"name/1190\",[39,47.799]],[\"comment/1190\",[]],[\"name/1191\",[446,77.243]],[\"comment/1191\",[]],[\"name/1192\",[313,64.25]],[\"comment/1192\",[]],[\"name/1193\",[131,57.784]],[\"comment/1193\",[]],[\"name/1194\",[447,61.149]],[\"comment/1194\",[]],[\"name/1195\",[448,77.243]],[\"comment/1195\",[]],[\"name/1196\",[1,24.344]],[\"comment/1196\",[]],[\"name/1197\",[2,36.696]],[\"comment/1197\",[]],[\"name/1198\",[313,64.25]],[\"comment/1198\",[]],[\"name/1199\",[131,57.784]],[\"comment/1199\",[]],[\"name/1200\",[447,61.149]],[\"comment/1200\",[]],[\"name/1201\",[5,29.285]],[\"comment/1201\",[]],[\"name/1202\",[4,28.801]],[\"comment/1202\",[]],[\"name/1203\",[6,29.285]],[\"comment/1203\",[]],[\"name/1204\",[449,77.243]],[\"comment/1204\",[]],[\"name/1205\",[1,24.344]],[\"comment/1205\",[]],[\"name/1206\",[2,36.696]],[\"comment/1206\",[]],[\"name/1207\",[313,64.25]],[\"comment/1207\",[]],[\"name/1208\",[5,29.285]],[\"comment/1208\",[]],[\"name/1209\",[4,28.801]],[\"comment/1209\",[]],[\"name/1210\",[6,29.285]],[\"comment/1210\",[]],[\"name/1211\",[450,66.257]],[\"comment/1211\",[]],[\"name/1212\",[1,24.344]],[\"comment/1212\",[]],[\"name/1213\",[2,36.696]],[\"comment/1213\",[]],[\"name/1214\",[451,77.243]],[\"comment/1214\",[]],[\"name/1215\",[452,77.243]],[\"comment/1215\",[]],[\"name/1216\",[453,77.243]],[\"comment/1216\",[]],[\"name/1217\",[454,77.243]],[\"comment/1217\",[]],[\"name/1218\",[455,72.135]],[\"comment/1218\",[]],[\"name/1219\",[456,77.243]],[\"comment/1219\",[]],[\"name/1220\",[457,77.243]],[\"comment/1220\",[]],[\"name/1221\",[458,77.243]],[\"comment/1221\",[]],[\"name/1222\",[459,77.243]],[\"comment/1222\",[]],[\"name/1223\",[460,77.243]],[\"comment/1223\",[]],[\"name/1224\",[1,24.344]],[\"comment/1224\",[]],[\"name/1225\",[450,66.257]],[\"comment/1225\",[]],[\"name/1226\",[5,29.285]],[\"comment/1226\",[]],[\"name/1227\",[4,28.801]],[\"comment/1227\",[]],[\"name/1228\",[6,29.285]],[\"comment/1228\",[]],[\"name/1229\",[461,72.135]],[\"comment/1229\",[]],[\"name/1230\",[462,64.25]],[\"comment/1230\",[]],[\"name/1231\",[115,30.961]],[\"comment/1231\",[]],[\"name/1232\",[463,77.243]],[\"comment/1232\",[]],[\"name/1233\",[1,24.344]],[\"comment/1233\",[]],[\"name/1234\",[461,72.135]],[\"comment/1234\",[]],[\"name/1235\",[5,29.285]],[\"comment/1235\",[]],[\"name/1236\",[4,28.801]],[\"comment/1236\",[]],[\"name/1237\",[6,29.285]],[\"comment/1237\",[]],[\"name/1238\",[464,72.135]],[\"comment/1238\",[]],[\"name/1239\",[1,24.344]],[\"comment/1239\",[]],[\"name/1240\",[4,28.801]],[\"comment/1240\",[]],[\"name/1241\",[5,29.285]],[\"comment/1241\",[]],[\"name/1242\",[6,29.285]],[\"comment/1242\",[]],[\"name/1243\",[465,77.243]],[\"comment/1243\",[]],[\"name/1244\",[347,64.25]],[\"comment/1244\",[]],[\"name/1245\",[466,66.257]],[\"comment/1245\",[]],[\"name/1246\",[467,77.243]],[\"comment/1246\",[]],[\"name/1247\",[1,24.344]],[\"comment/1247\",[]],[\"name/1248\",[2,36.696]],[\"comment/1248\",[]],[\"name/1249\",[347,64.25]],[\"comment/1249\",[]],[\"name/1250\",[466,66.257]],[\"comment/1250\",[]],[\"name/1251\",[340,59.897]],[\"comment/1251\",[]],[\"name/1252\",[468,66.257]],[\"comment/1252\",[]],[\"name/1253\",[396,66.257]],[\"comment/1253\",[]],[\"name/1254\",[4,28.801]],[\"comment/1254\",[]],[\"name/1255\",[5,29.285]],[\"comment/1255\",[]],[\"name/1256\",[343,59.897]],[\"comment/1256\",[]],[\"name/1257\",[6,29.285]],[\"comment/1257\",[]],[\"name/1258\",[469,77.243]],[\"comment/1258\",[]],[\"name/1259\",[131,57.784]],[\"comment/1259\",[]],[\"name/1260\",[447,61.149]],[\"comment/1260\",[]],[\"name/1261\",[470,61.149]],[\"comment/1261\",[]],[\"name/1262\",[297,53.264]],[\"comment/1262\",[]],[\"name/1263\",[336,56.04]],[\"comment/1263\",[]],[\"name/1264\",[471,77.243]],[\"comment/1264\",[]],[\"name/1265\",[1,24.344]],[\"comment/1265\",[]],[\"name/1266\",[2,36.696]],[\"comment/1266\",[]],[\"name/1267\",[447,61.149]],[\"comment/1267\",[]],[\"name/1268\",[131,57.784]],[\"comment/1268\",[]],[\"name/1269\",[470,61.149]],[\"comment/1269\",[]],[\"name/1270\",[297,53.264]],[\"comment/1270\",[]],[\"name/1271\",[336,56.04]],[\"comment/1271\",[]],[\"name/1272\",[5,29.285]],[\"comment/1272\",[]],[\"name/1273\",[343,59.897]],[\"comment/1273\",[]],[\"name/1274\",[340,59.897]],[\"comment/1274\",[]],[\"name/1275\",[4,28.801]],[\"comment/1275\",[]],[\"name/1276\",[6,29.285]],[\"comment/1276\",[]],[\"name/1277\",[472,72.135]],[\"comment/1277\",[]],[\"name/1278\",[1,24.344]],[\"comment/1278\",[]],[\"name/1279\",[4,28.801]],[\"comment/1279\",[]],[\"name/1280\",[5,29.285]],[\"comment/1280\",[]],[\"name/1281\",[6,29.285]],[\"comment/1281\",[]],[\"name/1282\",[473,77.243]],[\"comment/1282\",[]],[\"name/1283\",[474,77.243]],[\"comment/1283\",[]],[\"name/1284\",[1,24.344]],[\"comment/1284\",[]],[\"name/1285\",[318,61.149]],[\"comment/1285\",[]],[\"name/1286\",[475,66.257]],[\"comment/1286\",[]],[\"name/1287\",[476,77.243]],[\"comment/1287\",[]],[\"name/1288\",[477,77.243]],[\"comment/1288\",[]],[\"name/1289\",[478,77.243]],[\"comment/1289\",[]],[\"name/1290\",[479,77.243]],[\"comment/1290\",[]],[\"name/1291\",[480,77.243]],[\"comment/1291\",[]],[\"name/1292\",[481,77.243]],[\"comment/1292\",[]],[\"name/1293\",[1,24.344]],[\"comment/1293\",[]],[\"name/1294\",[482,77.243]],[\"comment/1294\",[]],[\"name/1295\",[483,77.243]],[\"comment/1295\",[]],[\"name/1296\",[5,29.285]],[\"comment/1296\",[]],[\"name/1297\",[484,77.243]],[\"comment/1297\",[]],[\"name/1298\",[4,28.801]],[\"comment/1298\",[]],[\"name/1299\",[6,29.285]],[\"comment/1299\",[]],[\"name/1300\",[485,77.243]],[\"comment/1300\",[]],[\"name/1301\",[1,24.344]],[\"comment/1301\",[]],[\"name/1302\",[486,68.77]],[\"comment/1302\",[]],[\"name/1303\",[487,77.243]],[\"comment/1303\",[]],[\"name/1304\",[5,29.285]],[\"comment/1304\",[]],[\"name/1305\",[4,28.801]],[\"comment/1305\",[]],[\"name/1306\",[6,29.285]],[\"comment/1306\",[]],[\"name/1307\",[488,77.243]],[\"comment/1307\",[]],[\"name/1308\",[1,24.344]],[\"comment/1308\",[]],[\"name/1309\",[486,68.77]],[\"comment/1309\",[]],[\"name/1310\",[489,77.243]],[\"comment/1310\",[]],[\"name/1311\",[5,29.285]],[\"comment/1311\",[]],[\"name/1312\",[4,28.801]],[\"comment/1312\",[]],[\"name/1313\",[6,29.285]],[\"comment/1313\",[]],[\"name/1314\",[490,77.243]],[\"comment/1314\",[]],[\"name/1315\",[1,24.344]],[\"comment/1315\",[]],[\"name/1316\",[491,77.243]],[\"comment/1316\",[]],[\"name/1317\",[5,29.285]],[\"comment/1317\",[]],[\"name/1318\",[4,28.801]],[\"comment/1318\",[]],[\"name/1319\",[6,29.285]],[\"comment/1319\",[]],[\"name/1320\",[492,77.243]],[\"comment/1320\",[]],[\"name/1321\",[1,24.344]],[\"comment/1321\",[]],[\"name/1322\",[4,28.801]],[\"comment/1322\",[]],[\"name/1323\",[5,29.285]],[\"comment/1323\",[]],[\"name/1324\",[6,29.285]],[\"comment/1324\",[]],[\"name/1325\",[493,77.243]],[\"comment/1325\",[]],[\"name/1326\",[1,24.344]],[\"comment/1326\",[]],[\"name/1327\",[494,77.243]],[\"comment/1327\",[]],[\"name/1328\",[5,29.285]],[\"comment/1328\",[]],[\"name/1329\",[4,28.801]],[\"comment/1329\",[]],[\"name/1330\",[6,29.285]],[\"comment/1330\",[]],[\"name/1331\",[495,72.135]],[\"comment/1331\",[]],[\"name/1332\",[1,24.344]],[\"comment/1332\",[]],[\"name/1333\",[4,28.801]],[\"comment/1333\",[]],[\"name/1334\",[5,29.285]],[\"comment/1334\",[]],[\"name/1335\",[6,29.285]],[\"comment/1335\",[]],[\"name/1336\",[496,77.243]],[\"comment/1336\",[]],[\"name/1337\",[1,24.344]],[\"comment/1337\",[]],[\"name/1338\",[466,66.257]],[\"comment/1338\",[]],[\"name/1339\",[464,72.135]],[\"comment/1339\",[]],[\"name/1340\",[450,66.257]],[\"comment/1340\",[]],[\"name/1341\",[497,77.243]],[\"comment/1341\",[]],[\"name/1342\",[498,77.243]],[\"comment/1342\",[]],[\"name/1343\",[499,77.243]],[\"comment/1343\",[]],[\"name/1344\",[1,24.344]],[\"comment/1344\",[]],[\"name/1345\",[2,36.696]],[\"comment/1345\",[]],[\"name/1346\",[500,77.243]],[\"comment/1346\",[]],[\"name/1347\",[52,62.58]],[\"comment/1347\",[]],[\"name/1348\",[501,77.243]],[\"comment/1348\",[]],[\"name/1349\",[502,77.243]],[\"comment/1349\",[]],[\"name/1350\",[503,77.243]],[\"comment/1350\",[]],[\"name/1351\",[504,77.243]],[\"comment/1351\",[]],[\"name/1352\",[505,77.243]],[\"comment/1352\",[]],[\"name/1353\",[506,77.243]],[\"comment/1353\",[]],[\"name/1354\",[507,77.243]],[\"comment/1354\",[]],[\"name/1355\",[508,77.243]],[\"comment/1355\",[]],[\"name/1356\",[509,77.243]],[\"comment/1356\",[]],[\"name/1357\",[510,77.243]],[\"comment/1357\",[]],[\"name/1358\",[511,77.243]],[\"comment/1358\",[]],[\"name/1359\",[1,24.344]],[\"comment/1359\",[]],[\"name/1360\",[88,54.556]],[\"comment/1360\",[]],[\"name/1361\",[470,61.149]],[\"comment/1361\",[]],[\"name/1362\",[297,53.264]],[\"comment/1362\",[]],[\"name/1363\",[2,36.696]],[\"comment/1363\",[]],[\"name/1364\",[5,29.285]],[\"comment/1364\",[]],[\"name/1365\",[4,28.801]],[\"comment/1365\",[]],[\"name/1366\",[6,29.285]],[\"comment/1366\",[]],[\"name/1367\",[512,77.243]],[\"comment/1367\",[]],[\"name/1368\",[1,24.344]],[\"comment/1368\",[]],[\"name/1369\",[472,72.135]],[\"comment/1369\",[]],[\"name/1370\",[495,72.135]],[\"comment/1370\",[]],[\"name/1371\",[513,77.243]],[\"comment/1371\",[]],[\"name/1372\",[1,24.344]],[\"comment/1372\",[]],[\"name/1373\",[2,36.696]],[\"comment/1373\",[]],[\"name/1374\",[514,72.135]],[\"comment/1374\",[]],[\"name/1375\",[515,72.135]],[\"comment/1375\",[]],[\"name/1376\",[516,72.135]],[\"comment/1376\",[]],[\"name/1377\",[5,29.285]],[\"comment/1377\",[]],[\"name/1378\",[4,28.801]],[\"comment/1378\",[]],[\"name/1379\",[6,29.285]],[\"comment/1379\",[]],[\"name/1380\",[517,77.243]],[\"comment/1380\",[]],[\"name/1381\",[88,54.556]],[\"comment/1381\",[]],[\"name/1382\",[282,66.257]],[\"comment/1382\",[]],[\"name/1383\",[186,52.676]],[\"comment/1383\",[]],[\"name/1384\",[518,66.257]],[\"comment/1384\",[]],[\"name/1385\",[470,61.149]],[\"comment/1385\",[]],[\"name/1386\",[297,53.264]],[\"comment/1386\",[]],[\"name/1387\",[519,77.243]],[\"comment/1387\",[]],[\"name/1388\",[1,24.344]],[\"comment/1388\",[]],[\"name/1389\",[2,36.696]],[\"comment/1389\",[]],[\"name/1390\",[186,52.676]],[\"comment/1390\",[]],[\"name/1391\",[520,77.243]],[\"comment/1391\",[]],[\"name/1392\",[518,66.257]],[\"comment/1392\",[]],[\"name/1393\",[470,61.149]],[\"comment/1393\",[]],[\"name/1394\",[297,53.264]],[\"comment/1394\",[]],[\"name/1395\",[5,29.285]],[\"comment/1395\",[]],[\"name/1396\",[4,28.801]],[\"comment/1396\",[]],[\"name/1397\",[6,29.285]],[\"comment/1397\",[]],[\"name/1398\",[521,72.135]],[\"comment/1398\",[]],[\"name/1399\",[468,66.257]],[\"comment/1399\",[]],[\"name/1400\",[115,30.961]],[\"comment/1400\",[]],[\"name/1401\",[522,77.243]],[\"comment/1401\",[]],[\"name/1402\",[1,24.344]],[\"comment/1402\",[]],[\"name/1403\",[521,72.135]],[\"comment/1403\",[]],[\"name/1404\",[5,29.285]],[\"comment/1404\",[]],[\"name/1405\",[4,28.801]],[\"comment/1405\",[]],[\"name/1406\",[6,29.285]],[\"comment/1406\",[]],[\"name/1407\",[466,66.257]],[\"comment/1407\",[]],[\"name/1408\",[1,24.344]],[\"comment/1408\",[]],[\"name/1409\",[4,28.801]],[\"comment/1409\",[]],[\"name/1410\",[5,29.285]],[\"comment/1410\",[]],[\"name/1411\",[6,29.285]],[\"comment/1411\",[]],[\"name/1412\",[523,77.243]],[\"comment/1412\",[]],[\"name/1413\",[1,24.344]],[\"comment/1413\",[]],[\"name/1414\",[524,68.77]],[\"comment/1414\",[]],[\"name/1415\",[5,29.285]],[\"comment/1415\",[]],[\"name/1416\",[4,28.801]],[\"comment/1416\",[]],[\"name/1417\",[6,29.285]],[\"comment/1417\",[]],[\"name/1418\",[525,77.243]],[\"comment/1418\",[]],[\"name/1419\",[1,24.344]],[\"comment/1419\",[]],[\"name/1420\",[470,61.149]],[\"comment/1420\",[]],[\"name/1421\",[297,53.264]],[\"comment/1421\",[]],[\"name/1422\",[5,29.285]],[\"comment/1422\",[]],[\"name/1423\",[4,28.801]],[\"comment/1423\",[]],[\"name/1424\",[6,29.285]],[\"comment/1424\",[]],[\"name/1425\",[526,77.243]],[\"comment/1425\",[]],[\"name/1426\",[1,24.344]],[\"comment/1426\",[]],[\"name/1427\",[2,36.696]],[\"comment/1427\",[]],[\"name/1428\",[347,64.25]],[\"comment/1428\",[]],[\"name/1429\",[527,77.243]],[\"comment/1429\",[]],[\"name/1430\",[5,29.285]],[\"comment/1430\",[]],[\"name/1431\",[4,28.801]],[\"comment/1431\",[]],[\"name/1432\",[6,29.285]],[\"comment/1432\",[]],[\"name/1433\",[528,77.243]],[\"comment/1433\",[]],[\"name/1434\",[1,24.344]],[\"comment/1434\",[]],[\"name/1435\",[529,77.243]],[\"comment/1435\",[]],[\"name/1436\",[376,68.77]],[\"comment/1436\",[]],[\"name/1437\",[530,77.243]],[\"comment/1437\",[]],[\"name/1438\",[5,29.285]],[\"comment/1438\",[]],[\"name/1439\",[462,64.25]],[\"comment/1439\",[]],[\"name/1440\",[4,28.801]],[\"comment/1440\",[]],[\"name/1441\",[6,29.285]],[\"comment/1441\",[]],[\"name/1442\",[531,77.243]],[\"comment/1442\",[]],[\"name/1443\",[1,24.344]],[\"comment/1443\",[]],[\"name/1444\",[532,68.77]],[\"comment/1444\",[]],[\"name/1445\",[524,68.77]],[\"comment/1445\",[]],[\"name/1446\",[533,66.257]],[\"comment/1446\",[]],[\"name/1447\",[534,77.243]],[\"comment/1447\",[]],[\"name/1448\",[455,72.135]],[\"comment/1448\",[]],[\"name/1449\",[535,77.243]],[\"comment/1449\",[]],[\"name/1450\",[536,77.243]],[\"comment/1450\",[]],[\"name/1451\",[537,62.58]],[\"comment/1451\",[]],[\"name/1452\",[115,30.961]],[\"comment/1452\",[]],[\"name/1453\",[2,36.696]],[\"comment/1453\",[]],[\"name/1454\",[537,62.58]],[\"comment/1454\",[]],[\"name/1455\",[115,30.961]],[\"comment/1455\",[]],[\"name/1456\",[201,61.149]],[\"comment/1456\",[]],[\"name/1457\",[115,30.961]],[\"comment/1457\",[]],[\"name/1458\",[538,64.25]],[\"comment/1458\",[]],[\"name/1459\",[115,30.961]],[\"comment/1459\",[]],[\"name/1460\",[539,62.58]],[\"comment/1460\",[]],[\"name/1461\",[115,30.961]],[\"comment/1461\",[]],[\"name/1462\",[540,64.25]],[\"comment/1462\",[]],[\"name/1463\",[115,30.961]],[\"comment/1463\",[]],[\"name/1464\",[541,64.25]],[\"comment/1464\",[]],[\"name/1465\",[115,30.961]],[\"comment/1465\",[]],[\"name/1466\",[542,64.25]],[\"comment/1466\",[]],[\"name/1467\",[115,30.961]],[\"comment/1467\",[]],[\"name/1468\",[543,77.243]],[\"comment/1468\",[]],[\"name/1469\",[1,24.344]],[\"comment/1469\",[]],[\"name/1470\",[537,62.58]],[\"comment/1470\",[]],[\"name/1471\",[544,77.243]],[\"comment/1471\",[]],[\"name/1472\",[201,61.149]],[\"comment/1472\",[]],[\"name/1473\",[538,64.25]],[\"comment/1473\",[]],[\"name/1474\",[539,62.58]],[\"comment/1474\",[]],[\"name/1475\",[540,64.25]],[\"comment/1475\",[]],[\"name/1476\",[541,64.25]],[\"comment/1476\",[]],[\"name/1477\",[542,64.25]],[\"comment/1477\",[]],[\"name/1478\",[545,77.243]],[\"comment/1478\",[]],[\"name/1479\",[1,24.344]],[\"comment/1479\",[]],[\"name/1480\",[2,36.696]],[\"comment/1480\",[]],[\"name/1481\",[537,62.58]],[\"comment/1481\",[]],[\"name/1482\",[201,61.149]],[\"comment/1482\",[]],[\"name/1483\",[538,64.25]],[\"comment/1483\",[]],[\"name/1484\",[539,62.58]],[\"comment/1484\",[]],[\"name/1485\",[540,64.25]],[\"comment/1485\",[]],[\"name/1486\",[541,64.25]],[\"comment/1486\",[]],[\"name/1487\",[542,64.25]],[\"comment/1487\",[]],[\"name/1488\",[524,68.77]],[\"comment/1488\",[]],[\"name/1489\",[533,66.257]],[\"comment/1489\",[]],[\"name/1490\",[115,30.961]],[\"comment/1490\",[]],[\"name/1491\",[546,77.243]],[\"comment/1491\",[]],[\"name/1492\",[547,77.243]],[\"comment/1492\",[]],[\"name/1493\",[548,77.243]],[\"comment/1493\",[]],[\"name/1494\",[549,77.243]],[\"comment/1494\",[]],[\"name/1495\",[550,77.243]],[\"comment/1495\",[]],[\"name/1496\",[551,77.243]],[\"comment/1496\",[]],[\"name/1497\",[1,24.344]],[\"comment/1497\",[]],[\"name/1498\",[537,62.58]],[\"comment/1498\",[]],[\"name/1499\",[201,61.149]],[\"comment/1499\",[]],[\"name/1500\",[538,64.25]],[\"comment/1500\",[]],[\"name/1501\",[539,62.58]],[\"comment/1501\",[]],[\"name/1502\",[540,64.25]],[\"comment/1502\",[]],[\"name/1503\",[541,64.25]],[\"comment/1503\",[]],[\"name/1504\",[542,64.25]],[\"comment/1504\",[]],[\"name/1505\",[552,77.243]],[\"comment/1505\",[]],[\"name/1506\",[1,24.344]],[\"comment/1506\",[]],[\"name/1507\",[2,36.696]],[\"comment/1507\",[]],[\"name/1508\",[533,66.257]],[\"comment/1508\",[]],[\"name/1509\",[553,77.243]],[\"comment/1509\",[]],[\"name/1510\",[1,24.344]],[\"comment/1510\",[]],[\"name/1511\",[2,36.696]],[\"comment/1511\",[]],[\"name/1512\",[537,62.58]],[\"comment/1512\",[]],[\"name/1513\",[201,61.149]],[\"comment/1513\",[]],[\"name/1514\",[538,64.25]],[\"comment/1514\",[]],[\"name/1515\",[539,62.58]],[\"comment/1515\",[]],[\"name/1516\",[540,64.25]],[\"comment/1516\",[]],[\"name/1517\",[541,64.25]],[\"comment/1517\",[]],[\"name/1518\",[542,64.25]],[\"comment/1518\",[]],[\"name/1519\",[554,77.243]],[\"comment/1519\",[]],[\"name/1520\",[1,24.344]],[\"comment/1520\",[]],[\"name/1521\",[555,77.243]],[\"comment/1521\",[]],[\"name/1522\",[556,77.243]],[\"comment/1522\",[]],[\"name/1523\",[533,66.257]],[\"comment/1523\",[]],[\"name/1524\",[557,77.243]],[\"comment/1524\",[]],[\"name/1525\",[558,77.243]],[\"comment/1525\",[]],[\"name/1526\",[1,24.344]],[\"comment/1526\",[]],[\"name/1527\",[5,29.285]],[\"comment/1527\",[]],[\"name/1528\",[4,28.801]],[\"comment/1528\",[]],[\"name/1529\",[6,29.285]],[\"comment/1529\",[]],[\"name/1530\",[559,77.243]],[\"comment/1530\",[]],[\"name/1531\",[1,24.344]],[\"comment/1531\",[]],[\"name/1532\",[560,77.243]],[\"comment/1532\",[]],[\"name/1533\",[5,29.285]],[\"comment/1533\",[]],[\"name/1534\",[4,28.801]],[\"comment/1534\",[]],[\"name/1535\",[6,29.285]],[\"comment/1535\",[]],[\"name/1536\",[561,72.135]],[\"comment/1536\",[]],[\"name/1537\",[1,24.344]],[\"comment/1537\",[]],[\"name/1538\",[4,28.801]],[\"comment/1538\",[]],[\"name/1539\",[5,29.285]],[\"comment/1539\",[]],[\"name/1540\",[6,29.285]],[\"comment/1540\",[]],[\"name/1541\",[562,77.243]],[\"comment/1541\",[]],[\"name/1542\",[394,66.257]],[\"comment/1542\",[]],[\"name/1543\",[563,77.243]],[\"comment/1543\",[]],[\"name/1544\",[564,77.243]],[\"comment/1544\",[]],[\"name/1545\",[1,24.344]],[\"comment/1545\",[]],[\"name/1546\",[565,77.243]],[\"comment/1546\",[]],[\"name/1547\",[167,64.25]],[\"comment/1547\",[]],[\"name/1548\",[566,77.243]],[\"comment/1548\",[]],[\"name/1549\",[5,29.285]],[\"comment/1549\",[]],[\"name/1550\",[4,28.801]],[\"comment/1550\",[]],[\"name/1551\",[6,29.285]],[\"comment/1551\",[]],[\"name/1552\",[567,77.243]],[\"comment/1552\",[]],[\"name/1553\",[1,24.344]],[\"comment/1553\",[]],[\"name/1554\",[475,66.257]],[\"comment/1554\",[]],[\"name/1555\",[568,77.243]],[\"comment/1555\",[]],[\"name/1556\",[569,58.785]],[\"comment/1556\",[]],[\"name/1557\",[570,77.243]],[\"comment/1557\",[]],[\"name/1558\",[569,58.785]],[\"comment/1558\",[]],[\"name/1559\",[115,30.961]],[\"comment/1559\",[]],[\"name/1560\",[571,77.243]],[\"comment/1560\",[]],[\"name/1561\",[389,68.77]],[\"comment/1561\",[]],[\"name/1562\",[569,58.785]],[\"comment/1562\",[]],[\"name/1563\",[115,30.961]],[\"comment/1563\",[]],[\"name/1564\",[572,72.135]],[\"comment/1564\",[]],[\"name/1565\",[569,58.785]],[\"comment/1565\",[]],[\"name/1566\",[115,30.961]],[\"comment/1566\",[]],[\"name/1567\",[573,77.243]],[\"comment/1567\",[]],[\"name/1568\",[140,59.897]],[\"comment/1568\",[]],[\"name/1569\",[139,64.25]],[\"comment/1569\",[]],[\"name/1570\",[574,68.77]],[\"comment/1570\",[]],[\"name/1571\",[569,58.785]],[\"comment/1571\",[]],[\"name/1572\",[115,30.961]],[\"comment/1572\",[]],[\"name/1573\",[575,77.243]],[\"comment/1573\",[]],[\"name/1574\",[1,24.344]],[\"comment/1574\",[]],[\"name/1575\",[576,72.135]],[\"comment/1575\",[]],[\"name/1576\",[115,30.961]],[\"comment/1576\",[]],[\"name/1577\",[577,68.77]],[\"comment/1577\",[]],[\"name/1578\",[578,68.77]],[\"comment/1578\",[]],[\"name/1579\",[569,58.785]],[\"comment/1579\",[]],[\"name/1580\",[579,77.243]],[\"comment/1580\",[]],[\"name/1581\",[1,24.344]],[\"comment/1581\",[]],[\"name/1582\",[580,68.77]],[\"comment/1582\",[]],[\"name/1583\",[569,58.785]],[\"comment/1583\",[]],[\"name/1584\",[581,77.243]],[\"comment/1584\",[]],[\"name/1585\",[1,24.344]],[\"comment/1585\",[]],[\"name/1586\",[2,36.696]],[\"comment/1586\",[]],[\"name/1587\",[514,72.135]],[\"comment/1587\",[]],[\"name/1588\",[561,72.135]],[\"comment/1588\",[]],[\"name/1589\",[515,72.135]],[\"comment/1589\",[]],[\"name/1590\",[582,77.243]],[\"comment/1590\",[]],[\"name/1591\",[88,54.556]],[\"comment/1591\",[]],[\"name/1592\",[569,58.785]],[\"comment/1592\",[]],[\"name/1593\",[583,77.243]],[\"comment/1593\",[]],[\"name/1594\",[584,72.135]],[\"comment/1594\",[]],[\"name/1595\",[532,68.77]],[\"comment/1595\",[]],[\"name/1596\",[336,56.04]],[\"comment/1596\",[]],[\"name/1597\",[585,72.135]],[\"comment/1597\",[]],[\"name/1598\",[194,62.58]],[\"comment/1598\",[]],[\"name/1599\",[186,52.676]],[\"comment/1599\",[]],[\"name/1600\",[586,77.243]],[\"comment/1600\",[]],[\"name/1601\",[1,24.344]],[\"comment/1601\",[]],[\"name/1602\",[584,72.135]],[\"comment/1602\",[]],[\"name/1603\",[532,68.77]],[\"comment/1603\",[]],[\"name/1604\",[336,56.04]],[\"comment/1604\",[]],[\"name/1605\",[585,72.135]],[\"comment/1605\",[]],[\"name/1606\",[194,62.58]],[\"comment/1606\",[]],[\"name/1607\",[186,52.676]],[\"comment/1607\",[]],[\"name/1608\",[569,58.785]],[\"comment/1608\",[]],[\"name/1609\",[587,77.243]],[\"comment/1609\",[]],[\"name/1610\",[588,77.243]],[\"comment/1610\",[]],[\"name/1611\",[589,77.243]],[\"comment/1611\",[]],[\"name/1612\",[590,77.243]],[\"comment/1612\",[]],[\"name/1613\",[591,53.889]],[\"comment/1613\",[]],[\"name/1614\",[592,77.243]],[\"comment/1614\",[]],[\"name/1615\",[593,77.243]],[\"comment/1615\",[]],[\"name/1616\",[8,61.149]],[\"comment/1616\",[]],[\"name/1617\",[394,66.257]],[\"comment/1617\",[]],[\"name/1618\",[318,61.149]],[\"comment/1618\",[]],[\"name/1619\",[330,62.58]],[\"comment/1619\",[]],[\"name/1620\",[400,72.135]],[\"comment/1620\",[]],[\"name/1621\",[594,77.243]],[\"comment/1621\",[]],[\"name/1622\",[1,24.344]],[\"comment/1622\",[]],[\"name/1623\",[2,36.696]],[\"comment/1623\",[]],[\"name/1624\",[572,72.135]],[\"comment/1624\",[]],[\"name/1625\",[516,72.135]],[\"comment/1625\",[]],[\"name/1626\",[574,68.77]],[\"comment/1626\",[]],[\"name/1627\",[186,52.676]],[\"comment/1627\",[]],[\"name/1628\",[397,64.25]],[\"comment/1628\",[]],[\"name/1629\",[595,77.243]],[\"comment/1629\",[]],[\"name/1630\",[1,24.344]],[\"comment/1630\",[]],[\"name/1631\",[2,36.696]],[\"comment/1631\",[]],[\"name/1632\",[186,52.676]],[\"comment/1632\",[]],[\"name/1633\",[574,68.77]],[\"comment/1633\",[]],[\"name/1634\",[397,64.25]],[\"comment/1634\",[]],[\"name/1635\",[391,68.77]],[\"comment/1635\",[]],[\"name/1636\",[397,64.25]],[\"comment/1636\",[]],[\"name/1637\",[115,30.961]],[\"comment/1637\",[]],[\"name/1638\",[596,77.243]],[\"comment/1638\",[]],[\"name/1639\",[13,68.77]],[\"comment/1639\",[]],[\"name/1640\",[45,68.77]],[\"comment/1640\",[]],[\"name/1641\",[98,68.77]],[\"comment/1641\",[]],[\"name/1642\",[72,68.77]],[\"comment/1642\",[]],[\"name/1643\",[190,64.25]],[\"comment/1643\",[]],[\"name/1644\",[597,77.243]],[\"comment/1644\",[]],[\"name/1645\",[1,24.344]],[\"comment/1645\",[]],[\"name/1646\",[2,36.696]],[\"comment/1646\",[]],[\"name/1647\",[13,68.77]],[\"comment/1647\",[]],[\"name/1648\",[45,68.77]],[\"comment/1648\",[]],[\"name/1649\",[98,68.77]],[\"comment/1649\",[]],[\"name/1650\",[72,68.77]],[\"comment/1650\",[]],[\"name/1651\",[190,64.25]],[\"comment/1651\",[]],[\"name/1652\",[5,29.285]],[\"comment/1652\",[]],[\"name/1653\",[4,28.801]],[\"comment/1653\",[]],[\"name/1654\",[6,29.285]],[\"comment/1654\",[]],[\"name/1655\",[598,77.243]],[\"comment/1655\",[]],[\"name/1656\",[599,77.243]],[\"comment/1656\",[]],[\"name/1657\",[196,64.25]],[\"comment/1657\",[]],[\"name/1658\",[486,68.77]],[\"comment/1658\",[]],[\"name/1659\",[600,77.243]],[\"comment/1659\",[]],[\"name/1660\",[601,77.243]],[\"comment/1660\",[]],[\"name/1661\",[602,77.243]],[\"comment/1661\",[]],[\"name/1662\",[603,77.243]],[\"comment/1662\",[]],[\"name/1663\",[1,24.344]],[\"comment/1663\",[]],[\"name/1664\",[2,36.696]],[\"comment/1664\",[]],[\"name/1665\",[447,61.149]],[\"comment/1665\",[]],[\"name/1666\",[475,66.257]],[\"comment/1666\",[]],[\"name/1667\",[604,68.77]],[\"comment/1667\",[]],[\"name/1668\",[605,77.243]],[\"comment/1668\",[]],[\"name/1669\",[606,77.243]],[\"comment/1669\",[]],[\"name/1670\",[142,66.257]],[\"comment/1670\",[]],[\"name/1671\",[419,68.77]],[\"comment/1671\",[]],[\"name/1672\",[607,77.243]],[\"comment/1672\",[]],[\"name/1673\",[1,24.344]],[\"comment/1673\",[]],[\"name/1674\",[4,28.801]],[\"comment/1674\",[]],[\"name/1675\",[5,29.285]],[\"comment/1675\",[]],[\"name/1676\",[6,29.285]],[\"comment/1676\",[]],[\"name/1677\",[608,77.243]],[\"comment/1677\",[]],[\"name/1678\",[609,77.243]],[\"comment/1678\",[]],[\"name/1679\",[610,77.243]],[\"comment/1679\",[]],[\"name/1680\",[611,77.243]],[\"comment/1680\",[]],[\"name/1681\",[604,68.77]],[\"comment/1681\",[]],[\"name/1682\",[115,30.961]],[\"comment/1682\",[]],[\"name/1683\",[612,77.243]],[\"comment/1683\",[]],[\"name/1684\",[182,62.58]],[\"comment/1684\",[]],[\"name/1685\",[142,66.257]],[\"comment/1685\",[]],[\"name/1686\",[419,68.77]],[\"comment/1686\",[]],[\"name/1687\",[613,77.243]],[\"comment/1687\",[]],[\"name/1688\",[1,24.344]],[\"comment/1688\",[]],[\"name/1689\",[4,28.801]],[\"comment/1689\",[]],[\"name/1690\",[5,29.285]],[\"comment/1690\",[]],[\"name/1691\",[6,29.285]],[\"comment/1691\",[]],[\"name/1692\",[614,77.243]],[\"comment/1692\",[]],[\"name/1693\",[180,68.77]],[\"comment/1693\",[]],[\"name/1694\",[615,72.135]],[\"comment/1694\",[]],[\"name/1695\",[202,62.58]],[\"comment/1695\",[]],[\"name/1696\",[239,64.25]],[\"comment/1696\",[]],[\"name/1697\",[190,64.25]],[\"comment/1697\",[]],[\"name/1698\",[616,77.243]],[\"comment/1698\",[]],[\"name/1699\",[1,24.344]],[\"comment/1699\",[]],[\"name/1700\",[2,36.696]],[\"comment/1700\",[]],[\"name/1701\",[180,68.77]],[\"comment/1701\",[]],[\"name/1702\",[202,62.58]],[\"comment/1702\",[]],[\"name/1703\",[239,64.25]],[\"comment/1703\",[]],[\"name/1704\",[615,72.135]],[\"comment/1704\",[]],[\"name/1705\",[190,64.25]],[\"comment/1705\",[]],[\"name/1706\",[5,29.285]],[\"comment/1706\",[]],[\"name/1707\",[617,77.243]],[\"comment/1707\",[]],[\"name/1708\",[618,77.243]],[\"comment/1708\",[]],[\"name/1709\",[4,28.801]],[\"comment/1709\",[]],[\"name/1710\",[6,29.285]],[\"comment/1710\",[]],[\"name/1711\",[619,72.135]],[\"comment/1711\",[]],[\"name/1712\",[1,24.344]],[\"comment/1712\",[]],[\"name/1713\",[4,28.801]],[\"comment/1713\",[]],[\"name/1714\",[5,29.285]],[\"comment/1714\",[]],[\"name/1715\",[6,29.285]],[\"comment/1715\",[]],[\"name/1716\",[620,77.243]],[\"comment/1716\",[]],[\"name/1717\",[1,24.344]],[\"comment/1717\",[]],[\"name/1718\",[621,77.243]],[\"comment/1718\",[]],[\"name/1719\",[619,72.135]],[\"comment/1719\",[]],[\"name/1720\",[604,68.77]],[\"comment/1720\",[]],[\"name/1721\",[622,72.135]],[\"comment/1721\",[]],[\"name/1722\",[1,24.344]],[\"comment/1722\",[]],[\"name/1723\",[622,72.135]],[\"comment/1723\",[]],[\"name/1724\",[115,30.961]],[\"comment/1724\",[]],[\"name/1725\",[5,29.285]],[\"comment/1725\",[]],[\"name/1726\",[4,28.801]],[\"comment/1726\",[]],[\"name/1727\",[6,29.285]],[\"comment/1727\",[]],[\"name/1728\",[623,77.243]],[\"comment/1728\",[]],[\"name/1729\",[1,24.344]],[\"comment/1729\",[]],[\"name/1730\",[220,72.135]],[\"comment/1730\",[]],[\"name/1731\",[5,29.285]],[\"comment/1731\",[]],[\"name/1732\",[4,28.801]],[\"comment/1732\",[]],[\"name/1733\",[6,29.285]],[\"comment/1733\",[]],[\"name/1734\",[624,77.243]],[\"comment/1734\",[]],[\"name/1735\",[1,24.344]],[\"comment/1735\",[]],[\"name/1736\",[625,77.243]],[\"comment/1736\",[]],[\"name/1737\",[626,77.243]],[\"comment/1737\",[]],[\"name/1738\",[627,66.257]],[\"comment/1738\",[]],[\"name/1739\",[2,36.696]],[\"comment/1739\",[]],[\"name/1740\",[628,77.243]],[\"comment/1740\",[]],[\"name/1741\",[629,77.243]],[\"comment/1741\",[]],[\"name/1742\",[4,28.801]],[\"comment/1742\",[]],[\"name/1743\",[5,29.285]],[\"comment/1743\",[]],[\"name/1744\",[630,77.243]],[\"comment/1744\",[]],[\"name/1745\",[6,29.285]],[\"comment/1745\",[]],[\"name/1746\",[631,77.243]],[\"comment/1746\",[]],[\"name/1747\",[1,24.344]],[\"comment/1747\",[]],[\"name/1748\",[632,77.243]],[\"comment/1748\",[]],[\"name/1749\",[5,29.285]],[\"comment/1749\",[]],[\"name/1750\",[4,28.801]],[\"comment/1750\",[]],[\"name/1751\",[6,29.285]],[\"comment/1751\",[]],[\"name/1752\",[633,77.243]],[\"comment/1752\",[]],[\"name/1753\",[1,24.344]],[\"comment/1753\",[]],[\"name/1754\",[2,36.696]],[\"comment/1754\",[]],[\"name/1755\",[634,77.243]],[\"comment/1755\",[]],[\"name/1756\",[4,28.801]],[\"comment/1756\",[]],[\"name/1757\",[5,29.285]],[\"comment/1757\",[]],[\"name/1758\",[635,77.243]],[\"comment/1758\",[]],[\"name/1759\",[6,29.285]],[\"comment/1759\",[]],[\"name/1760\",[636,77.243]],[\"comment/1760\",[]],[\"name/1761\",[88,54.556]],[\"comment/1761\",[]],[\"name/1762\",[161,64.25]],[\"comment/1762\",[]],[\"name/1763\",[447,61.149]],[\"comment/1763\",[]],[\"name/1764\",[637,72.135]],[\"comment/1764\",[]],[\"name/1765\",[638,77.243]],[\"comment/1765\",[]],[\"name/1766\",[639,77.243]],[\"comment/1766\",[]],[\"name/1767\",[1,24.344]],[\"comment/1767\",[]],[\"name/1768\",[88,54.556]],[\"comment/1768\",[]],[\"name/1769\",[161,64.25]],[\"comment/1769\",[]],[\"name/1770\",[447,61.149]],[\"comment/1770\",[]],[\"name/1771\",[637,72.135]],[\"comment/1771\",[]],[\"name/1772\",[640,77.243]],[\"comment/1772\",[]],[\"name/1773\",[641,77.243]],[\"comment/1773\",[]],[\"name/1774\",[4,28.801]],[\"comment/1774\",[]],[\"name/1775\",[5,29.285]],[\"comment/1775\",[]],[\"name/1776\",[6,29.285]],[\"comment/1776\",[]],[\"name/1777\",[642,77.243]],[\"comment/1777\",[]],[\"name/1778\",[4,28.801]],[\"comment/1778\",[]],[\"name/1779\",[115,30.961]],[\"comment/1779\",[]],[\"name/1780\",[643,58.785]],[\"comment/1780\",[]],[\"name/1781\",[115,30.961]],[\"comment/1781\",[]],[\"name/1782\",[644,58.785]],[\"comment/1782\",[]],[\"name/1783\",[115,30.961]],[\"comment/1783\",[]],[\"name/1784\",[645,58.785]],[\"comment/1784\",[]],[\"name/1785\",[115,30.961]],[\"comment/1785\",[]],[\"name/1786\",[646,58.785]],[\"comment/1786\",[]],[\"name/1787\",[115,30.961]],[\"comment/1787\",[]],[\"name/1788\",[647,58.785]],[\"comment/1788\",[]],[\"name/1789\",[115,30.961]],[\"comment/1789\",[]],[\"name/1790\",[648,57.784]],[\"comment/1790\",[]],[\"name/1791\",[115,30.961]],[\"comment/1791\",[]],[\"name/1792\",[649,50.617]],[\"comment/1792\",[]],[\"name/1793\",[115,30.961]],[\"comment/1793\",[]],[\"name/1794\",[650,77.243]],[\"comment/1794\",[]],[\"name/1795\",[1,24.344]],[\"comment/1795\",[]],[\"name/1796\",[651,77.243]],[\"comment/1796\",[]],[\"name/1797\",[646,58.785]],[\"comment/1797\",[]],[\"name/1798\",[2,36.696]],[\"comment/1798\",[]],[\"name/1799\",[652,72.135]],[\"comment/1799\",[]],[\"name/1800\",[4,28.801]],[\"comment/1800\",[]],[\"name/1801\",[643,58.785]],[\"comment/1801\",[]],[\"name/1802\",[644,58.785]],[\"comment/1802\",[]],[\"name/1803\",[645,58.785]],[\"comment/1803\",[]],[\"name/1804\",[647,58.785]],[\"comment/1804\",[]],[\"name/1805\",[648,57.784]],[\"comment/1805\",[]],[\"name/1806\",[649,50.617]],[\"comment/1806\",[]],[\"name/1807\",[653,72.135]],[\"comment/1807\",[]],[\"name/1808\",[654,72.135]],[\"comment/1808\",[]],[\"name/1809\",[655,72.135]],[\"comment/1809\",[]],[\"name/1810\",[656,72.135]],[\"comment/1810\",[]],[\"name/1811\",[657,77.243]],[\"comment/1811\",[]],[\"name/1812\",[4,28.801]],[\"comment/1812\",[]],[\"name/1813\",[115,30.961]],[\"comment/1813\",[]],[\"name/1814\",[643,58.785]],[\"comment/1814\",[]],[\"name/1815\",[115,30.961]],[\"comment/1815\",[]],[\"name/1816\",[644,58.785]],[\"comment/1816\",[]],[\"name/1817\",[115,30.961]],[\"comment/1817\",[]],[\"name/1818\",[645,58.785]],[\"comment/1818\",[]],[\"name/1819\",[115,30.961]],[\"comment/1819\",[]],[\"name/1820\",[646,58.785]],[\"comment/1820\",[]],[\"name/1821\",[115,30.961]],[\"comment/1821\",[]],[\"name/1822\",[647,58.785]],[\"comment/1822\",[]],[\"name/1823\",[115,30.961]],[\"comment/1823\",[]],[\"name/1824\",[648,57.784]],[\"comment/1824\",[]],[\"name/1825\",[115,30.961]],[\"comment/1825\",[]],[\"name/1826\",[649,50.617]],[\"comment/1826\",[]],[\"name/1827\",[115,30.961]],[\"comment/1827\",[]],[\"name/1828\",[658,77.243]],[\"comment/1828\",[]],[\"name/1829\",[1,24.344]],[\"comment/1829\",[]],[\"name/1830\",[2,36.696]],[\"comment/1830\",[]],[\"name/1831\",[652,72.135]],[\"comment/1831\",[]],[\"name/1832\",[4,28.801]],[\"comment/1832\",[]],[\"name/1833\",[643,58.785]],[\"comment/1833\",[]],[\"name/1834\",[644,58.785]],[\"comment/1834\",[]],[\"name/1835\",[645,58.785]],[\"comment/1835\",[]],[\"name/1836\",[646,58.785]],[\"comment/1836\",[]],[\"name/1837\",[647,58.785]],[\"comment/1837\",[]],[\"name/1838\",[648,57.784]],[\"comment/1838\",[]],[\"name/1839\",[649,50.617]],[\"comment/1839\",[]],[\"name/1840\",[653,72.135]],[\"comment/1840\",[]],[\"name/1841\",[659,77.243]],[\"comment/1841\",[]],[\"name/1842\",[660,77.243]],[\"comment/1842\",[]],[\"name/1843\",[654,72.135]],[\"comment/1843\",[]],[\"name/1844\",[661,77.243]],[\"comment/1844\",[]],[\"name/1845\",[662,77.243]],[\"comment/1845\",[]],[\"name/1846\",[663,77.243]],[\"comment/1846\",[]],[\"name/1847\",[664,77.243]],[\"comment/1847\",[]],[\"name/1848\",[655,72.135]],[\"comment/1848\",[]],[\"name/1849\",[656,72.135]],[\"comment/1849\",[]],[\"name/1850\",[665,77.243]],[\"comment/1850\",[]],[\"name/1851\",[1,24.344]],[\"comment/1851\",[]],[\"name/1852\",[666,77.243]],[\"comment/1852\",[]],[\"name/1853\",[646,58.785]],[\"comment/1853\",[]],[\"name/1854\",[647,58.785]],[\"comment/1854\",[]],[\"name/1855\",[667,77.243]],[\"comment/1855\",[]],[\"name/1856\",[668,64.25]],[\"comment/1856\",[]],[\"name/1857\",[4,28.801]],[\"comment/1857\",[]],[\"name/1858\",[643,58.785]],[\"comment/1858\",[]],[\"name/1859\",[644,58.785]],[\"comment/1859\",[]],[\"name/1860\",[648,57.784]],[\"comment/1860\",[]],[\"name/1861\",[645,58.785]],[\"comment/1861\",[]],[\"name/1862\",[649,50.617]],[\"comment/1862\",[]],[\"name/1863\",[669,77.243]],[\"comment/1863\",[]],[\"name/1864\",[1,24.344]],[\"comment/1864\",[]],[\"name/1865\",[42,54.556]],[\"comment/1865\",[]],[\"name/1866\",[186,52.676]],[\"comment/1866\",[]],[\"name/1867\",[115,30.961]],[\"comment/1867\",[]],[\"name/1868\",[670,55.271]],[\"comment/1868\",[]],[\"name/1869\",[4,28.801]],[\"comment/1869\",[]],[\"name/1870\",[643,58.785]],[\"comment/1870\",[]],[\"name/1871\",[644,58.785]],[\"comment/1871\",[]],[\"name/1872\",[645,58.785]],[\"comment/1872\",[]],[\"name/1873\",[646,58.785]],[\"comment/1873\",[]],[\"name/1874\",[647,58.785]],[\"comment/1874\",[]],[\"name/1875\",[648,57.784]],[\"comment/1875\",[]],[\"name/1876\",[649,50.617]],[\"comment/1876\",[]],[\"name/1877\",[671,77.243]],[\"comment/1877\",[]],[\"name/1878\",[672,77.243]],[\"comment/1878\",[]],[\"name/1879\",[673,77.243]],[\"comment/1879\",[]],[\"name/1880\",[674,77.243]],[\"comment/1880\",[]],[\"name/1881\",[675,77.243]],[\"comment/1881\",[]],[\"name/1882\",[1,24.344]],[\"comment/1882\",[]],[\"name/1883\",[668,64.25]],[\"comment/1883\",[]],[\"name/1884\",[646,58.785]],[\"comment/1884\",[]],[\"name/1885\",[647,58.785]],[\"comment/1885\",[]],[\"name/1886\",[4,28.801]],[\"comment/1886\",[]],[\"name/1887\",[643,58.785]],[\"comment/1887\",[]],[\"name/1888\",[644,58.785]],[\"comment/1888\",[]],[\"name/1889\",[648,57.784]],[\"comment/1889\",[]],[\"name/1890\",[645,58.785]],[\"comment/1890\",[]],[\"name/1891\",[649,50.617]],[\"comment/1891\",[]],[\"name/1892\",[676,77.243]],[\"comment/1892\",[]],[\"name/1893\",[1,24.344]],[\"comment/1893\",[]],[\"name/1894\",[2,36.696]],[\"comment/1894\",[]],[\"name/1895\",[677,77.243]],[\"comment/1895\",[]],[\"name/1896\",[42,54.556]],[\"comment/1896\",[]],[\"name/1897\",[678,77.243]],[\"comment/1897\",[]],[\"name/1898\",[518,66.257]],[\"comment/1898\",[]],[\"name/1899\",[4,28.801]],[\"comment/1899\",[]],[\"name/1900\",[643,58.785]],[\"comment/1900\",[]],[\"name/1901\",[644,58.785]],[\"comment/1901\",[]],[\"name/1902\",[645,58.785]],[\"comment/1902\",[]],[\"name/1903\",[647,58.785]],[\"comment/1903\",[]],[\"name/1904\",[646,58.785]],[\"comment/1904\",[]],[\"name/1905\",[648,57.784]],[\"comment/1905\",[]],[\"name/1906\",[649,50.617]],[\"comment/1906\",[]],[\"name/1907\",[679,77.243]],[\"comment/1907\",[]],[\"name/1908\",[115,30.961]],[\"comment/1908\",[]],[\"name/1909\",[318,61.149]],[\"comment/1909\",[]],[\"name/1910\",[680,77.243]],[\"comment/1910\",[]],[\"name/1911\",[681,77.243]],[\"comment/1911\",[]],[\"name/1912\",[682,77.243]],[\"comment/1912\",[]],[\"name/1913\",[683,77.243]],[\"comment/1913\",[]],[\"name/1914\",[684,77.243]],[\"comment/1914\",[]],[\"name/1915\",[685,77.243]],[\"comment/1915\",[]],[\"name/1916\",[686,77.243]],[\"comment/1916\",[]],[\"name/1917\",[687,77.243]],[\"comment/1917\",[]],[\"name/1918\",[688,77.243]],[\"comment/1918\",[]],[\"name/1919\",[689,77.243]],[\"comment/1919\",[]],[\"name/1920\",[690,77.243]],[\"comment/1920\",[]],[\"name/1921\",[691,77.243]],[\"comment/1921\",[]],[\"name/1922\",[692,77.243]],[\"comment/1922\",[]],[\"name/1923\",[1,24.344]],[\"comment/1923\",[]],[\"name/1924\",[125,68.77]],[\"comment/1924\",[]],[\"name/1925\",[646,58.785]],[\"comment/1925\",[]],[\"name/1926\",[647,58.785]],[\"comment/1926\",[]],[\"name/1927\",[668,64.25]],[\"comment/1927\",[]],[\"name/1928\",[4,28.801]],[\"comment/1928\",[]],[\"name/1929\",[643,58.785]],[\"comment/1929\",[]],[\"name/1930\",[644,58.785]],[\"comment/1930\",[]],[\"name/1931\",[648,57.784]],[\"comment/1931\",[]],[\"name/1932\",[645,58.785]],[\"comment/1932\",[]],[\"name/1933\",[649,50.617]],[\"comment/1933\",[]],[\"name/1934\",[693,77.243]],[\"comment/1934\",[]],[\"name/1935\",[1,24.344]],[\"comment/1935\",[]],[\"name/1936\",[694,58.785]],[\"comment/1936\",[]],[\"name/1937\",[695,58.785]],[\"comment/1937\",[]],[\"name/1938\",[696,56.874]],[\"comment/1938\",[]],[\"name/1939\",[4,28.801]],[\"comment/1939\",[]],[\"name/1940\",[5,29.285]],[\"comment/1940\",[]],[\"name/1941\",[6,29.285]],[\"comment/1941\",[]],[\"name/1942\",[697,77.243]],[\"comment/1942\",[]],[\"name/1943\",[1,24.344]],[\"comment/1943\",[]],[\"name/1944\",[2,36.696]],[\"comment/1944\",[]],[\"name/1945\",[698,77.243]],[\"comment/1945\",[]],[\"name/1946\",[4,28.801]],[\"comment/1946\",[]],[\"name/1947\",[5,29.285]],[\"comment/1947\",[]],[\"name/1948\",[699,77.243]],[\"comment/1948\",[]],[\"name/1949\",[700,77.243]],[\"comment/1949\",[]],[\"name/1950\",[701,77.243]],[\"comment/1950\",[]],[\"name/1951\",[702,77.243]],[\"comment/1951\",[]],[\"name/1952\",[703,77.243]],[\"comment/1952\",[]],[\"name/1953\",[704,77.243]],[\"comment/1953\",[]],[\"name/1954\",[705,77.243]],[\"comment/1954\",[]],[\"name/1955\",[706,77.243]],[\"comment/1955\",[]],[\"name/1956\",[707,77.243]],[\"comment/1956\",[]],[\"name/1957\",[6,29.285]],[\"comment/1957\",[]],[\"name/1958\",[708,77.243]],[\"comment/1958\",[]],[\"name/1959\",[709,72.135]],[\"comment/1959\",[]],[\"name/1960\",[710,77.243]],[\"comment/1960\",[]],[\"name/1961\",[711,77.243]],[\"comment/1961\",[]],[\"name/1962\",[712,77.243]],[\"comment/1962\",[]],[\"name/1963\",[713,77.243]],[\"comment/1963\",[]],[\"name/1964\",[714,77.243]],[\"comment/1964\",[]],[\"name/1965\",[1,24.344]],[\"comment/1965\",[]],[\"name/1966\",[715,68.77]],[\"comment/1966\",[]],[\"name/1967\",[268,59.897]],[\"comment/1967\",[]],[\"name/1968\",[475,66.257]],[\"comment/1968\",[]],[\"name/1969\",[4,28.801]],[\"comment/1969\",[]],[\"name/1970\",[5,29.285]],[\"comment/1970\",[]],[\"name/1971\",[6,29.285]],[\"comment/1971\",[]],[\"name/1972\",[716,77.243]],[\"comment/1972\",[]],[\"name/1973\",[1,24.344]],[\"comment/1973\",[]],[\"name/1974\",[42,54.556]],[\"comment/1974\",[]],[\"name/1975\",[336,56.04]],[\"comment/1975\",[]],[\"name/1976\",[268,59.897]],[\"comment/1976\",[]],[\"name/1977\",[4,28.801]],[\"comment/1977\",[]],[\"name/1978\",[5,29.285]],[\"comment/1978\",[]],[\"name/1979\",[717,77.243]],[\"comment/1979\",[]],[\"name/1980\",[718,77.243]],[\"comment/1980\",[]],[\"name/1981\",[719,77.243]],[\"comment/1981\",[]],[\"name/1982\",[694,58.785]],[\"comment/1982\",[]],[\"name/1983\",[695,58.785]],[\"comment/1983\",[]],[\"name/1984\",[696,56.874]],[\"comment/1984\",[]],[\"name/1985\",[6,29.285]],[\"comment/1985\",[]],[\"name/1986\",[720,77.243]],[\"comment/1986\",[]],[\"name/1987\",[1,24.344]],[\"comment/1987\",[]],[\"name/1988\",[721,77.243]],[\"comment/1988\",[]],[\"name/1989\",[696,56.874]],[\"comment/1989\",[]],[\"name/1990\",[4,28.801]],[\"comment/1990\",[]],[\"name/1991\",[5,29.285]],[\"comment/1991\",[]],[\"name/1992\",[6,29.285]],[\"comment/1992\",[]],[\"name/1993\",[722,77.243]],[\"comment/1993\",[]],[\"name/1994\",[723,77.243]],[\"comment/1994\",[]],[\"name/1995\",[724,77.243]],[\"comment/1995\",[]],[\"name/1996\",[725,77.243]],[\"comment/1996\",[]],[\"name/1997\",[726,77.243]],[\"comment/1997\",[]],[\"name/1998\",[727,77.243]],[\"comment/1998\",[]],[\"name/1999\",[728,77.243]],[\"comment/1999\",[]],[\"name/2000\",[729,77.243]],[\"comment/2000\",[]],[\"name/2001\",[730,77.243]],[\"comment/2001\",[]],[\"name/2002\",[731,77.243]],[\"comment/2002\",[]],[\"name/2003\",[732,77.243]],[\"comment/2003\",[]],[\"name/2004\",[1,24.344]],[\"comment/2004\",[]],[\"name/2005\",[336,56.04]],[\"comment/2005\",[]],[\"name/2006\",[4,28.801]],[\"comment/2006\",[]],[\"name/2007\",[5,29.285]],[\"comment/2007\",[]],[\"name/2008\",[733,77.243]],[\"comment/2008\",[]],[\"name/2009\",[734,77.243]],[\"comment/2009\",[]],[\"name/2010\",[6,29.285]],[\"comment/2010\",[]],[\"name/2011\",[735,77.243]],[\"comment/2011\",[]],[\"name/2012\",[1,24.344]],[\"comment/2012\",[]],[\"name/2013\",[5,29.285]],[\"comment/2013\",[]],[\"name/2014\",[694,58.785]],[\"comment/2014\",[]],[\"name/2015\",[695,58.785]],[\"comment/2015\",[]],[\"name/2016\",[696,56.874]],[\"comment/2016\",[]],[\"name/2017\",[4,28.801]],[\"comment/2017\",[]],[\"name/2018\",[6,29.285]],[\"comment/2018\",[]],[\"name/2019\",[736,77.243]],[\"comment/2019\",[]],[\"name/2020\",[1,24.344]],[\"comment/2020\",[]],[\"name/2021\",[5,29.285]],[\"comment/2021\",[]],[\"name/2022\",[694,58.785]],[\"comment/2022\",[]],[\"name/2023\",[695,58.785]],[\"comment/2023\",[]],[\"name/2024\",[696,56.874]],[\"comment/2024\",[]],[\"name/2025\",[4,28.801]],[\"comment/2025\",[]],[\"name/2026\",[6,29.285]],[\"comment/2026\",[]],[\"name/2027\",[737,77.243]],[\"comment/2027\",[]],[\"name/2028\",[738,72.135]],[\"comment/2028\",[]],[\"name/2029\",[739,72.135]],[\"comment/2029\",[]],[\"name/2030\",[740,68.77]],[\"comment/2030\",[]],[\"name/2031\",[268,59.897]],[\"comment/2031\",[]],[\"name/2032\",[741,77.243]],[\"comment/2032\",[]],[\"name/2033\",[1,24.344]],[\"comment/2033\",[]],[\"name/2034\",[336,56.04]],[\"comment/2034\",[]],[\"name/2035\",[738,72.135]],[\"comment/2035\",[]],[\"name/2036\",[739,72.135]],[\"comment/2036\",[]],[\"name/2037\",[740,68.77]],[\"comment/2037\",[]],[\"name/2038\",[268,59.897]],[\"comment/2038\",[]],[\"name/2039\",[5,29.285]],[\"comment/2039\",[]],[\"name/2040\",[694,58.785]],[\"comment/2040\",[]],[\"name/2041\",[695,58.785]],[\"comment/2041\",[]],[\"name/2042\",[696,56.874]],[\"comment/2042\",[]],[\"name/2043\",[4,28.801]],[\"comment/2043\",[]],[\"name/2044\",[6,29.285]],[\"comment/2044\",[]],[\"name/2045\",[742,77.243]],[\"comment/2045\",[]],[\"name/2046\",[1,24.344]],[\"comment/2046\",[]],[\"name/2047\",[5,29.285]],[\"comment/2047\",[]],[\"name/2048\",[694,58.785]],[\"comment/2048\",[]],[\"name/2049\",[695,58.785]],[\"comment/2049\",[]],[\"name/2050\",[696,56.874]],[\"comment/2050\",[]],[\"name/2051\",[4,28.801]],[\"comment/2051\",[]],[\"name/2052\",[6,29.285]],[\"comment/2052\",[]],[\"name/2053\",[743,77.243]],[\"comment/2053\",[]],[\"name/2054\",[1,24.344]],[\"comment/2054\",[]],[\"name/2055\",[336,56.04]],[\"comment/2055\",[]],[\"name/2056\",[5,29.285]],[\"comment/2056\",[]],[\"name/2057\",[694,58.785]],[\"comment/2057\",[]],[\"name/2058\",[695,58.785]],[\"comment/2058\",[]],[\"name/2059\",[696,56.874]],[\"comment/2059\",[]],[\"name/2060\",[4,28.801]],[\"comment/2060\",[]],[\"name/2061\",[6,29.285]],[\"comment/2061\",[]],[\"name/2062\",[744,77.243]],[\"comment/2062\",[]],[\"name/2063\",[1,24.344]],[\"comment/2063\",[]],[\"name/2064\",[5,29.285]],[\"comment/2064\",[]],[\"name/2065\",[4,28.801]],[\"comment/2065\",[]],[\"name/2066\",[6,29.285]],[\"comment/2066\",[]],[\"name/2067\",[745,77.243]],[\"comment/2067\",[]],[\"name/2068\",[1,24.344]],[\"comment/2068\",[]],[\"name/2069\",[746,77.243]],[\"comment/2069\",[]],[\"name/2070\",[5,29.285]],[\"comment/2070\",[]],[\"name/2071\",[694,58.785]],[\"comment/2071\",[]],[\"name/2072\",[695,58.785]],[\"comment/2072\",[]],[\"name/2073\",[696,56.874]],[\"comment/2073\",[]],[\"name/2074\",[4,28.801]],[\"comment/2074\",[]],[\"name/2075\",[6,29.285]],[\"comment/2075\",[]],[\"name/2076\",[747,77.243]],[\"comment/2076\",[]],[\"name/2077\",[1,24.344]],[\"comment/2077\",[]],[\"name/2078\",[748,77.243]],[\"comment/2078\",[]],[\"name/2079\",[5,29.285]],[\"comment/2079\",[]],[\"name/2080\",[694,58.785]],[\"comment/2080\",[]],[\"name/2081\",[695,58.785]],[\"comment/2081\",[]],[\"name/2082\",[696,56.874]],[\"comment/2082\",[]],[\"name/2083\",[4,28.801]],[\"comment/2083\",[]],[\"name/2084\",[6,29.285]],[\"comment/2084\",[]],[\"name/2085\",[749,77.243]],[\"comment/2085\",[]],[\"name/2086\",[140,59.897]],[\"comment/2086\",[]],[\"name/2087\",[139,64.25]],[\"comment/2087\",[]],[\"name/2088\",[287,68.77]],[\"comment/2088\",[]],[\"name/2089\",[750,77.243]],[\"comment/2089\",[]],[\"name/2090\",[1,24.344]],[\"comment/2090\",[]],[\"name/2091\",[4,28.801]],[\"comment/2091\",[]],[\"name/2092\",[5,29.285]],[\"comment/2092\",[]],[\"name/2093\",[6,29.285]],[\"comment/2093\",[]],[\"name/2094\",[751,77.243]],[\"comment/2094\",[]],[\"name/2095\",[1,24.344]],[\"comment/2095\",[]],[\"name/2096\",[696,56.874]],[\"comment/2096\",[]],[\"name/2097\",[4,28.801]],[\"comment/2097\",[]],[\"name/2098\",[5,29.285]],[\"comment/2098\",[]],[\"name/2099\",[6,29.285]],[\"comment/2099\",[]],[\"name/2100\",[752,77.243]],[\"comment/2100\",[]],[\"name/2101\",[1,24.344]],[\"comment/2101\",[]],[\"name/2102\",[753,77.243]],[\"comment/2102\",[]],[\"name/2103\",[39,47.799]],[\"comment/2103\",[]],[\"name/2104\",[263,55.271]],[\"comment/2104\",[]],[\"name/2105\",[261,56.04]],[\"comment/2105\",[]],[\"name/2106\",[264,56.04]],[\"comment/2106\",[]],[\"name/2107\",[53,56.04]],[\"comment/2107\",[]],[\"name/2108\",[670,55.271]],[\"comment/2108\",[]],[\"name/2109\",[754,77.243]],[\"comment/2109\",[]],[\"name/2110\",[755,77.243]],[\"comment/2110\",[]],[\"name/2111\",[756,77.243]],[\"comment/2111\",[]],[\"name/2112\",[264,56.04]],[\"comment/2112\",[]],[\"name/2113\",[263,55.271]],[\"comment/2113\",[]],[\"name/2114\",[115,30.961]],[\"comment/2114\",[]],[\"name/2115\",[261,56.04]],[\"comment/2115\",[]],[\"name/2116\",[115,30.961]],[\"comment/2116\",[]],[\"name/2117\",[53,56.04]],[\"comment/2117\",[]],[\"name/2118\",[115,30.961]],[\"comment/2118\",[]],[\"name/2119\",[670,55.271]],[\"comment/2119\",[]],[\"name/2120\",[115,30.961]],[\"comment/2120\",[]],[\"name/2121\",[757,77.243]],[\"comment/2121\",[]],[\"name/2122\",[1,24.344]],[\"comment/2122\",[]],[\"name/2123\",[715,68.77]],[\"comment/2123\",[]],[\"name/2124\",[758,64.25]],[\"comment/2124\",[]],[\"name/2125\",[759,77.243]],[\"comment/2125\",[]],[\"name/2126\",[263,55.271]],[\"comment/2126\",[]],[\"name/2127\",[261,56.04]],[\"comment/2127\",[]],[\"name/2128\",[264,56.04]],[\"comment/2128\",[]],[\"name/2129\",[53,56.04]],[\"comment/2129\",[]],[\"name/2130\",[670,55.271]],[\"comment/2130\",[]],[\"name/2131\",[760,77.243]],[\"comment/2131\",[]],[\"name/2132\",[761,77.243]],[\"comment/2132\",[]],[\"name/2133\",[762,77.243]],[\"comment/2133\",[]],[\"name/2134\",[763,77.243]],[\"comment/2134\",[]],[\"name/2135\",[1,24.344]],[\"comment/2135\",[]],[\"name/2136\",[39,47.799]],[\"comment/2136\",[]],[\"name/2137\",[709,72.135]],[\"comment/2137\",[]],[\"name/2138\",[263,55.271]],[\"comment/2138\",[]],[\"name/2139\",[261,56.04]],[\"comment/2139\",[]],[\"name/2140\",[264,56.04]],[\"comment/2140\",[]],[\"name/2141\",[53,56.04]],[\"comment/2141\",[]],[\"name/2142\",[670,55.271]],[\"comment/2142\",[]],[\"name/2143\",[764,77.243]],[\"comment/2143\",[]],[\"name/2144\",[765,77.243]],[\"comment/2144\",[]],[\"name/2145\",[766,77.243]],[\"comment/2145\",[]],[\"name/2146\",[767,77.243]],[\"comment/2146\",[]],[\"name/2147\",[768,77.243]],[\"comment/2147\",[]],[\"name/2148\",[769,77.243]],[\"comment/2148\",[]],[\"name/2149\",[263,55.271]],[\"comment/2149\",[]],[\"name/2150\",[115,30.961]],[\"comment/2150\",[]],[\"name/2151\",[261,56.04]],[\"comment/2151\",[]],[\"name/2152\",[115,30.961]],[\"comment/2152\",[]],[\"name/2153\",[264,56.04]],[\"comment/2153\",[]],[\"name/2154\",[115,30.961]],[\"comment/2154\",[]],[\"name/2155\",[53,56.04]],[\"comment/2155\",[]],[\"name/2156\",[115,30.961]],[\"comment/2156\",[]],[\"name/2157\",[670,55.271]],[\"comment/2157\",[]],[\"name/2158\",[115,30.961]],[\"comment/2158\",[]],[\"name/2159\",[770,77.243]],[\"comment/2159\",[]],[\"name/2160\",[1,24.344]],[\"comment/2160\",[]],[\"name/2161\",[234,58.785]],[\"comment/2161\",[]],[\"name/2162\",[263,55.271]],[\"comment/2162\",[]],[\"name/2163\",[261,56.04]],[\"comment/2163\",[]],[\"name/2164\",[264,56.04]],[\"comment/2164\",[]],[\"name/2165\",[53,56.04]],[\"comment/2165\",[]],[\"name/2166\",[670,55.271]],[\"comment/2166\",[]],[\"name/2167\",[627,66.257]],[\"comment/2167\",[]],[\"name/2168\",[115,30.961]],[\"comment/2168\",[]],[\"name/2169\",[627,66.257]],[\"comment/2169\",[]],[\"name/2170\",[771,72.135]],[\"comment/2170\",[]],[\"name/2171\",[772,77.243]],[\"comment/2171\",[]],[\"name/2172\",[1,24.344]],[\"comment/2172\",[]],[\"name/2173\",[2,36.696]],[\"comment/2173\",[]],[\"name/2174\",[39,47.799]],[\"comment/2174\",[]],[\"name/2175\",[773,77.243]],[\"comment/2175\",[]],[\"name/2176\",[263,55.271]],[\"comment/2176\",[]],[\"name/2177\",[261,56.04]],[\"comment/2177\",[]],[\"name/2178\",[264,56.04]],[\"comment/2178\",[]],[\"name/2179\",[53,56.04]],[\"comment/2179\",[]],[\"name/2180\",[670,55.271]],[\"comment/2180\",[]],[\"name/2181\",[774,77.243]],[\"comment/2181\",[]],[\"name/2182\",[775,77.243]],[\"comment/2182\",[]],[\"name/2183\",[776,77.243]],[\"comment/2183\",[]],[\"name/2184\",[777,77.243]],[\"comment/2184\",[]],[\"name/2185\",[778,77.243]],[\"comment/2185\",[]],[\"name/2186\",[115,30.961]],[\"comment/2186\",[]],[\"name/2187\",[627,66.257]],[\"comment/2187\",[]],[\"name/2188\",[771,72.135]],[\"comment/2188\",[]],[\"name/2189\",[462,64.25]],[\"comment/2189\",[]],[\"name/2190\",[779,77.243]],[\"comment/2190\",[]],[\"name/2191\",[1,24.344]],[\"comment/2191\",[]],[\"name/2192\",[2,36.696]],[\"comment/2192\",[]],[\"name/2193\",[780,66.257]],[\"comment/2193\",[]],[\"name/2194\",[781,64.25]],[\"comment/2194\",[]],[\"name/2195\",[782,66.257]],[\"comment/2195\",[]],[\"name/2196\",[783,64.25]],[\"comment/2196\",[]],[\"name/2197\",[784,66.257]],[\"comment/2197\",[]],[\"name/2198\",[785,66.257]],[\"comment/2198\",[]],[\"name/2199\",[786,66.257]],[\"comment/2199\",[]],[\"name/2200\",[787,64.25]],[\"comment/2200\",[]],[\"name/2201\",[788,66.257]],[\"comment/2201\",[]],[\"name/2202\",[789,66.257]],[\"comment/2202\",[]],[\"name/2203\",[790,66.257]],[\"comment/2203\",[]],[\"name/2204\",[791,66.257]],[\"comment/2204\",[]],[\"name/2205\",[792,66.257]],[\"comment/2205\",[]],[\"name/2206\",[793,66.257]],[\"comment/2206\",[]],[\"name/2207\",[794,66.257]],[\"comment/2207\",[]],[\"name/2208\",[795,77.243]],[\"comment/2208\",[]],[\"name/2209\",[1,24.344]],[\"comment/2209\",[]],[\"name/2210\",[796,77.243]],[\"comment/2210\",[]],[\"name/2211\",[797,77.243]],[\"comment/2211\",[]],[\"name/2212\",[785,66.257]],[\"comment/2212\",[]],[\"name/2213\",[789,66.257]],[\"comment/2213\",[]],[\"name/2214\",[790,66.257]],[\"comment/2214\",[]],[\"name/2215\",[798,72.135]],[\"comment/2215\",[]],[\"name/2216\",[2,36.696]],[\"comment/2216\",[]],[\"name/2217\",[780,66.257]],[\"comment/2217\",[]],[\"name/2218\",[781,64.25]],[\"comment/2218\",[]],[\"name/2219\",[782,66.257]],[\"comment/2219\",[]],[\"name/2220\",[783,64.25]],[\"comment/2220\",[]],[\"name/2221\",[784,66.257]],[\"comment/2221\",[]],[\"name/2222\",[786,66.257]],[\"comment/2222\",[]],[\"name/2223\",[787,64.25]],[\"comment/2223\",[]],[\"name/2224\",[788,66.257]],[\"comment/2224\",[]],[\"name/2225\",[791,66.257]],[\"comment/2225\",[]],[\"name/2226\",[792,66.257]],[\"comment/2226\",[]],[\"name/2227\",[793,66.257]],[\"comment/2227\",[]],[\"name/2228\",[794,66.257]],[\"comment/2228\",[]],[\"name/2229\",[799,77.243]],[\"comment/2229\",[]],[\"name/2230\",[1,24.344]],[\"comment/2230\",[]],[\"name/2231\",[52,62.58]],[\"comment/2231\",[]],[\"name/2232\",[800,77.243]],[\"comment/2232\",[]],[\"name/2233\",[140,59.897]],[\"comment/2233\",[]],[\"name/2234\",[715,68.77]],[\"comment/2234\",[]],[\"name/2235\",[268,59.897]],[\"comment/2235\",[]],[\"name/2236\",[801,77.243]],[\"comment/2236\",[]],[\"name/2237\",[802,72.135]],[\"comment/2237\",[]],[\"name/2238\",[787,64.25]],[\"comment/2238\",[]],[\"name/2239\",[115,30.961]],[\"comment/2239\",[]],[\"name/2240\",[783,64.25]],[\"comment/2240\",[]],[\"name/2241\",[115,30.961]],[\"comment/2241\",[]],[\"name/2242\",[803,77.243]],[\"comment/2242\",[]],[\"name/2243\",[52,62.58]],[\"comment/2243\",[]],[\"name/2244\",[115,30.961]],[\"comment/2244\",[]],[\"name/2245\",[804,77.243]],[\"comment/2245\",[]],[\"name/2246\",[1,24.344]],[\"comment/2246\",[]],[\"name/2247\",[268,59.897]],[\"comment/2247\",[]],[\"name/2248\",[805,77.243]],[\"comment/2248\",[]],[\"name/2249\",[806,77.243]],[\"comment/2249\",[]],[\"name/2250\",[786,66.257]],[\"comment/2250\",[]],[\"name/2251\",[790,66.257]],[\"comment/2251\",[]],[\"name/2252\",[785,66.257]],[\"comment/2252\",[]],[\"name/2253\",[789,66.257]],[\"comment/2253\",[]],[\"name/2254\",[2,36.696]],[\"comment/2254\",[]],[\"name/2255\",[780,66.257]],[\"comment/2255\",[]],[\"name/2256\",[781,64.25]],[\"comment/2256\",[]],[\"name/2257\",[782,66.257]],[\"comment/2257\",[]],[\"name/2258\",[783,64.25]],[\"comment/2258\",[]],[\"name/2259\",[784,66.257]],[\"comment/2259\",[]],[\"name/2260\",[787,64.25]],[\"comment/2260\",[]],[\"name/2261\",[788,66.257]],[\"comment/2261\",[]],[\"name/2262\",[791,66.257]],[\"comment/2262\",[]],[\"name/2263\",[792,66.257]],[\"comment/2263\",[]],[\"name/2264\",[793,66.257]],[\"comment/2264\",[]],[\"name/2265\",[794,66.257]],[\"comment/2265\",[]],[\"name/2266\",[807,77.243]],[\"comment/2266\",[]],[\"name/2267\",[1,24.344]],[\"comment/2267\",[]],[\"name/2268\",[808,77.243]],[\"comment/2268\",[]],[\"name/2269\",[809,68.77]],[\"comment/2269\",[]],[\"name/2270\",[576,72.135]],[\"comment/2270\",[]],[\"name/2271\",[115,30.961]],[\"comment/2271\",[]],[\"name/2272\",[577,68.77]],[\"comment/2272\",[]],[\"name/2273\",[578,68.77]],[\"comment/2273\",[]],[\"name/2274\",[788,66.257]],[\"comment/2274\",[]],[\"name/2275\",[789,66.257]],[\"comment/2275\",[]],[\"name/2276\",[810,77.243]],[\"comment/2276\",[]],[\"name/2277\",[792,66.257]],[\"comment/2277\",[]],[\"name/2278\",[785,66.257]],[\"comment/2278\",[]],[\"name/2279\",[790,66.257]],[\"comment/2279\",[]],[\"name/2280\",[798,72.135]],[\"comment/2280\",[]],[\"name/2281\",[2,36.696]],[\"comment/2281\",[]],[\"name/2282\",[780,66.257]],[\"comment/2282\",[]],[\"name/2283\",[781,64.25]],[\"comment/2283\",[]],[\"name/2284\",[782,66.257]],[\"comment/2284\",[]],[\"name/2285\",[783,64.25]],[\"comment/2285\",[]],[\"name/2286\",[784,66.257]],[\"comment/2286\",[]],[\"name/2287\",[786,66.257]],[\"comment/2287\",[]],[\"name/2288\",[787,64.25]],[\"comment/2288\",[]],[\"name/2289\",[791,66.257]],[\"comment/2289\",[]],[\"name/2290\",[793,66.257]],[\"comment/2290\",[]],[\"name/2291\",[794,66.257]],[\"comment/2291\",[]],[\"name/2292\",[811,77.243]],[\"comment/2292\",[]],[\"name/2293\",[1,24.344]],[\"comment/2293\",[]],[\"name/2294\",[2,36.696]],[\"comment/2294\",[]],[\"name/2295\",[812,66.257]],[\"comment/2295\",[]],[\"name/2296\",[131,57.784]],[\"comment/2296\",[]],[\"name/2297\",[813,77.243]],[\"comment/2297\",[]],[\"name/2298\",[814,77.243]],[\"comment/2298\",[]],[\"name/2299\",[4,28.801]],[\"comment/2299\",[]],[\"name/2300\",[5,29.285]],[\"comment/2300\",[]],[\"name/2301\",[6,29.285]],[\"comment/2301\",[]],[\"name/2302\",[815,77.243]],[\"comment/2302\",[]],[\"name/2303\",[1,24.344]],[\"comment/2303\",[]],[\"name/2304\",[2,36.696]],[\"comment/2304\",[]],[\"name/2305\",[812,66.257]],[\"comment/2305\",[]],[\"name/2306\",[194,62.58]],[\"comment/2306\",[]],[\"name/2307\",[816,77.243]],[\"comment/2307\",[]],[\"name/2308\",[4,28.801]],[\"comment/2308\",[]],[\"name/2309\",[5,29.285]],[\"comment/2309\",[]],[\"name/2310\",[6,29.285]],[\"comment/2310\",[]],[\"name/2311\",[817,77.243]],[\"comment/2311\",[]],[\"name/2312\",[1,24.344]],[\"comment/2312\",[]],[\"name/2313\",[2,36.696]],[\"comment/2313\",[]],[\"name/2314\",[818,72.135]],[\"comment/2314\",[]],[\"name/2315\",[518,66.257]],[\"comment/2315\",[]],[\"name/2316\",[4,28.801]],[\"comment/2316\",[]],[\"name/2317\",[5,29.285]],[\"comment/2317\",[]],[\"name/2318\",[208,61.149]],[\"comment/2318\",[]],[\"name/2319\",[819,77.243]],[\"comment/2319\",[]],[\"name/2320\",[6,29.285]],[\"comment/2320\",[]],[\"name/2321\",[820,77.243]],[\"comment/2321\",[]],[\"name/2322\",[115,30.961]],[\"comment/2322\",[]],[\"name/2323\",[39,47.799]],[\"comment/2323\",[]],[\"name/2324\",[140,59.897]],[\"comment/2324\",[]],[\"name/2325\",[208,61.149]],[\"comment/2325\",[]],[\"name/2326\",[821,72.135]],[\"comment/2326\",[]],[\"name/2327\",[1,24.344]],[\"comment/2327\",[]],[\"name/2328\",[4,28.801]],[\"comment/2328\",[]],[\"name/2329\",[5,29.285]],[\"comment/2329\",[]],[\"name/2330\",[6,29.285]],[\"comment/2330\",[]],[\"name/2331\",[822,77.243]],[\"comment/2331\",[]],[\"name/2332\",[1,24.344]],[\"comment/2332\",[]],[\"name/2333\",[2,36.696]],[\"comment/2333\",[]],[\"name/2334\",[812,66.257]],[\"comment/2334\",[]],[\"name/2335\",[4,28.801]],[\"comment/2335\",[]],[\"name/2336\",[5,29.285]],[\"comment/2336\",[]],[\"name/2337\",[6,29.285]],[\"comment/2337\",[]],[\"name/2338\",[823,77.243]],[\"comment/2338\",[]],[\"name/2339\",[140,59.897]],[\"comment/2339\",[]],[\"name/2340\",[208,61.149]],[\"comment/2340\",[]],[\"name/2341\",[186,52.676]],[\"comment/2341\",[]],[\"name/2342\",[824,77.243]],[\"comment/2342\",[]],[\"name/2343\",[1,24.344]],[\"comment/2343\",[]],[\"name/2344\",[4,28.801]],[\"comment/2344\",[]],[\"name/2345\",[5,29.285]],[\"comment/2345\",[]],[\"name/2346\",[6,29.285]],[\"comment/2346\",[]],[\"name/2347\",[825,77.243]],[\"comment/2347\",[]],[\"name/2348\",[140,59.897]],[\"comment/2348\",[]],[\"name/2349\",[208,61.149]],[\"comment/2349\",[]],[\"name/2350\",[139,64.25]],[\"comment/2350\",[]],[\"name/2351\",[826,77.243]],[\"comment/2351\",[]],[\"name/2352\",[1,24.344]],[\"comment/2352\",[]],[\"name/2353\",[4,28.801]],[\"comment/2353\",[]],[\"name/2354\",[5,29.285]],[\"comment/2354\",[]],[\"name/2355\",[6,29.285]],[\"comment/2355\",[]],[\"name/2356\",[827,77.243]],[\"comment/2356\",[]],[\"name/2357\",[1,24.344]],[\"comment/2357\",[]],[\"name/2358\",[2,36.696]],[\"comment/2358\",[]],[\"name/2359\",[812,66.257]],[\"comment/2359\",[]],[\"name/2360\",[5,29.285]],[\"comment/2360\",[]],[\"name/2361\",[4,28.801]],[\"comment/2361\",[]],[\"name/2362\",[6,29.285]],[\"comment/2362\",[]],[\"name/2363\",[828,77.243]],[\"comment/2363\",[]],[\"name/2364\",[1,24.344]],[\"comment/2364\",[]],[\"name/2365\",[2,36.696]],[\"comment/2365\",[]],[\"name/2366\",[818,72.135]],[\"comment/2366\",[]],[\"name/2367\",[4,28.801]],[\"comment/2367\",[]],[\"name/2368\",[5,29.285]],[\"comment/2368\",[]],[\"name/2369\",[829,77.243]],[\"comment/2369\",[]],[\"name/2370\",[61,72.135]],[\"comment/2370\",[]],[\"name/2371\",[830,77.243]],[\"comment/2371\",[]],[\"name/2372\",[831,77.243]],[\"comment/2372\",[]],[\"name/2373\",[832,77.243]],[\"comment/2373\",[]],[\"name/2374\",[833,77.243]],[\"comment/2374\",[]],[\"name/2375\",[208,61.149]],[\"comment/2375\",[]],[\"name/2376\",[6,29.285]],[\"comment/2376\",[]],[\"name/2377\",[834,77.243]],[\"comment/2377\",[]],[\"name/2378\",[1,24.344]],[\"comment/2378\",[]],[\"name/2379\",[580,68.77]],[\"comment/2379\",[]],[\"name/2380\",[835,68.77]],[\"comment/2380\",[]],[\"name/2381\",[836,68.77]],[\"comment/2381\",[]],[\"name/2382\",[837,68.77]],[\"comment/2382\",[]],[\"name/2383\",[838,68.77]],[\"comment/2383\",[]],[\"name/2384\",[839,64.25]],[\"comment/2384\",[]],[\"name/2385\",[840,68.77]],[\"comment/2385\",[]],[\"name/2386\",[841,77.243]],[\"comment/2386\",[]],[\"name/2387\",[1,24.344]],[\"comment/2387\",[]],[\"name/2388\",[42,54.556]],[\"comment/2388\",[]],[\"name/2389\",[668,64.25]],[\"comment/2389\",[]],[\"name/2390\",[835,68.77]],[\"comment/2390\",[]],[\"name/2391\",[842,77.243]],[\"comment/2391\",[]],[\"name/2392\",[836,68.77]],[\"comment/2392\",[]],[\"name/2393\",[837,68.77]],[\"comment/2393\",[]],[\"name/2394\",[838,68.77]],[\"comment/2394\",[]],[\"name/2395\",[839,64.25]],[\"comment/2395\",[]],[\"name/2396\",[840,68.77]],[\"comment/2396\",[]],[\"name/2397\",[843,77.243]],[\"comment/2397\",[]],[\"name/2398\",[1,24.344]],[\"comment/2398\",[]],[\"name/2399\",[836,68.77]],[\"comment/2399\",[]],[\"name/2400\",[837,68.77]],[\"comment/2400\",[]],[\"name/2401\",[838,68.77]],[\"comment/2401\",[]],[\"name/2402\",[835,68.77]],[\"comment/2402\",[]],[\"name/2403\",[839,64.25]],[\"comment/2403\",[]],[\"name/2404\",[840,68.77]],[\"comment/2404\",[]],[\"name/2405\",[844,77.243]],[\"comment/2405\",[]],[\"name/2406\",[1,24.344]],[\"comment/2406\",[]],[\"name/2407\",[845,77.243]],[\"comment/2407\",[]],[\"name/2408\",[846,77.243]],[\"comment/2408\",[]],[\"name/2409\",[5,29.285]],[\"comment/2409\",[]],[\"name/2410\",[847,72.135]],[\"comment/2410\",[]],[\"name/2411\",[4,28.801]],[\"comment/2411\",[]],[\"name/2412\",[6,29.285]],[\"comment/2412\",[]],[\"name/2413\",[848,77.243]],[\"comment/2413\",[]],[\"name/2414\",[186,52.676]],[\"comment/2414\",[]],[\"name/2415\",[849,77.243]],[\"comment/2415\",[]],[\"name/2416\",[850,77.243]],[\"comment/2416\",[]],[\"name/2417\",[1,24.344]],[\"comment/2417\",[]],[\"name/2418\",[851,77.243]],[\"comment/2418\",[]],[\"name/2419\",[852,77.243]],[\"comment/2419\",[]],[\"name/2420\",[5,29.285]],[\"comment/2420\",[]],[\"name/2421\",[847,72.135]],[\"comment/2421\",[]],[\"name/2422\",[4,28.801]],[\"comment/2422\",[]],[\"name/2423\",[6,29.285]],[\"comment/2423\",[]],[\"name/2424\",[853,77.243]],[\"comment/2424\",[]],[\"name/2425\",[1,24.344]],[\"comment/2425\",[]],[\"name/2426\",[287,68.77]],[\"comment/2426\",[]],[\"name/2427\",[131,57.784]],[\"comment/2427\",[]],[\"name/2428\",[854,77.243]],[\"comment/2428\",[]],[\"name/2429\",[855,77.243]],[\"comment/2429\",[]],[\"name/2430\",[1,24.344]],[\"comment/2430\",[]],[\"name/2431\",[809,68.77]],[\"comment/2431\",[]],[\"name/2432\",[186,52.676]],[\"comment/2432\",[]],[\"name/2433\",[856,77.243]],[\"comment/2433\",[]],[\"name/2434\",[1,24.344]],[\"comment/2434\",[]],[\"name/2435\",[580,68.77]],[\"comment/2435\",[]],[\"name/2436\",[857,77.243]],[\"comment/2436\",[]],[\"name/2437\",[4,28.801]],[\"comment/2437\",[]],[\"name/2438\",[5,29.285]],[\"comment/2438\",[]],[\"name/2439\",[858,77.243]],[\"comment/2439\",[]],[\"name/2440\",[859,77.243]],[\"comment/2440\",[]],[\"name/2441\",[6,29.285]],[\"comment/2441\",[]],[\"name/2442\",[860,77.243]],[\"comment/2442\",[]],[\"name/2443\",[1,24.344]],[\"comment/2443\",[]],[\"name/2444\",[4,28.801]],[\"comment/2444\",[]],[\"name/2445\",[5,29.285]],[\"comment/2445\",[]],[\"name/2446\",[6,29.285]],[\"comment/2446\",[]],[\"name/2447\",[861,77.243]],[\"comment/2447\",[]],[\"name/2448\",[1,24.344]],[\"comment/2448\",[]],[\"name/2449\",[802,72.135]],[\"comment/2449\",[]],[\"name/2450\",[862,77.243]],[\"comment/2450\",[]],[\"name/2451\",[781,64.25]],[\"comment/2451\",[]],[\"name/2452\",[863,72.135]],[\"comment/2452\",[]],[\"name/2453\",[864,72.135]],[\"comment/2453\",[]],[\"name/2454\",[865,72.135]],[\"comment/2454\",[]],[\"name/2455\",[839,64.25]],[\"comment/2455\",[]],[\"name/2456\",[866,77.243]],[\"comment/2456\",[]],[\"name/2457\",[867,64.25]],[\"comment/2457\",[]],[\"name/2458\",[868,77.243]],[\"comment/2458\",[]],[\"name/2459\",[869,77.243]],[\"comment/2459\",[]],[\"name/2460\",[870,77.243]],[\"comment/2460\",[]],[\"name/2461\",[871,77.243]],[\"comment/2461\",[]],[\"name/2462\",[863,72.135]],[\"comment/2462\",[]],[\"name/2463\",[115,30.961]],[\"comment/2463\",[]],[\"name/2464\",[864,72.135]],[\"comment/2464\",[]],[\"name/2465\",[115,30.961]],[\"comment/2465\",[]],[\"name/2466\",[865,72.135]],[\"comment/2466\",[]],[\"name/2467\",[115,30.961]],[\"comment/2467\",[]],[\"name/2468\",[839,64.25]],[\"comment/2468\",[]],[\"name/2469\",[115,30.961]],[\"comment/2469\",[]],[\"name/2470\",[872,77.243]],[\"comment/2470\",[]],[\"name/2471\",[1,24.344]],[\"comment/2471\",[]],[\"name/2472\",[44,72.135]],[\"comment/2472\",[]],[\"name/2473\",[5,29.285]],[\"comment/2473\",[]],[\"name/2474\",[4,28.801]],[\"comment/2474\",[]],[\"name/2475\",[6,29.285]],[\"comment/2475\",[]],[\"name/2476\",[873,77.243]],[\"comment/2476\",[]],[\"name/2477\",[874,56.04]],[\"comment/2477\",[]],[\"name/2478\",[115,30.961]],[\"comment/2478\",[]],[\"name/2479\",[875,56.04]],[\"comment/2479\",[]],[\"name/2480\",[115,30.961]],[\"comment/2480\",[]],[\"name/2481\",[876,56.04]],[\"comment/2481\",[]],[\"name/2482\",[115,30.961]],[\"comment/2482\",[]],[\"name/2483\",[649,50.617]],[\"comment/2483\",[]],[\"name/2484\",[115,30.961]],[\"comment/2484\",[]],[\"name/2485\",[877,56.04]],[\"comment/2485\",[]],[\"name/2486\",[115,30.961]],[\"comment/2486\",[]],[\"name/2487\",[878,54.556]],[\"comment/2487\",[]],[\"name/2488\",[115,30.961]],[\"comment/2488\",[]],[\"name/2489\",[879,77.243]],[\"comment/2489\",[]],[\"name/2490\",[1,24.344]],[\"comment/2490\",[]],[\"name/2491\",[878,54.556]],[\"comment/2491\",[]],[\"name/2492\",[874,56.04]],[\"comment/2492\",[]],[\"name/2493\",[875,56.04]],[\"comment/2493\",[]],[\"name/2494\",[876,56.04]],[\"comment/2494\",[]],[\"name/2495\",[649,50.617]],[\"comment/2495\",[]],[\"name/2496\",[877,56.04]],[\"comment/2496\",[]],[\"name/2497\",[880,77.243]],[\"comment/2497\",[]],[\"name/2498\",[881,68.77]],[\"comment/2498\",[]],[\"name/2499\",[882,68.77]],[\"comment/2499\",[]],[\"name/2500\",[883,68.77]],[\"comment/2500\",[]],[\"name/2501\",[884,68.77]],[\"comment/2501\",[]],[\"name/2502\",[885,77.243]],[\"comment/2502\",[]],[\"name/2503\",[1,24.344]],[\"comment/2503\",[]],[\"name/2504\",[881,68.77]],[\"comment/2504\",[]],[\"name/2505\",[882,68.77]],[\"comment/2505\",[]],[\"name/2506\",[883,68.77]],[\"comment/2506\",[]],[\"name/2507\",[884,68.77]],[\"comment/2507\",[]],[\"name/2508\",[886,72.135]],[\"comment/2508\",[]],[\"name/2509\",[887,72.135]],[\"comment/2509\",[]],[\"name/2510\",[888,77.243]],[\"comment/2510\",[]],[\"name/2511\",[1,24.344]],[\"comment/2511\",[]],[\"name/2512\",[39,47.799]],[\"comment/2512\",[]],[\"name/2513\",[31,72.135]],[\"comment/2513\",[]],[\"name/2514\",[878,54.556]],[\"comment/2514\",[]],[\"name/2515\",[889,77.243]],[\"comment/2515\",[]],[\"name/2516\",[149,68.77]],[\"comment/2516\",[]],[\"name/2517\",[881,68.77]],[\"comment/2517\",[]],[\"name/2518\",[882,68.77]],[\"comment/2518\",[]],[\"name/2519\",[883,68.77]],[\"comment/2519\",[]],[\"name/2520\",[884,68.77]],[\"comment/2520\",[]],[\"name/2521\",[886,72.135]],[\"comment/2521\",[]],[\"name/2522\",[115,30.961]],[\"comment/2522\",[]],[\"name/2523\",[887,72.135]],[\"comment/2523\",[]],[\"name/2524\",[115,30.961]],[\"comment/2524\",[]],[\"name/2525\",[890,77.243]],[\"comment/2525\",[]],[\"name/2526\",[1,24.344]],[\"comment/2526\",[]],[\"name/2527\",[2,36.696]],[\"comment/2527\",[]],[\"name/2528\",[668,64.25]],[\"comment/2528\",[]],[\"name/2529\",[42,54.556]],[\"comment/2529\",[]],[\"name/2530\",[75,64.25]],[\"comment/2530\",[]],[\"name/2531\",[194,62.58]],[\"comment/2531\",[]],[\"name/2532\",[878,54.556]],[\"comment/2532\",[]],[\"name/2533\",[874,56.04]],[\"comment/2533\",[]],[\"name/2534\",[876,56.04]],[\"comment/2534\",[]],[\"name/2535\",[875,56.04]],[\"comment/2535\",[]],[\"name/2536\",[877,56.04]],[\"comment/2536\",[]],[\"name/2537\",[649,50.617]],[\"comment/2537\",[]],[\"name/2538\",[891,77.243]],[\"comment/2538\",[]],[\"name/2539\",[892,77.243]],[\"comment/2539\",[]],[\"name/2540\",[893,77.243]],[\"comment/2540\",[]],[\"name/2541\",[894,77.243]],[\"comment/2541\",[]],[\"name/2542\",[648,57.784]],[\"comment/2542\",[]],[\"name/2543\",[895,77.243]],[\"comment/2543\",[]],[\"name/2544\",[896,77.243]],[\"comment/2544\",[]],[\"name/2545\",[897,77.243]],[\"comment/2545\",[]],[\"name/2546\",[898,77.243]],[\"comment/2546\",[]],[\"name/2547\",[899,77.243]],[\"comment/2547\",[]],[\"name/2548\",[900,77.243]],[\"comment/2548\",[]],[\"name/2549\",[901,77.243]],[\"comment/2549\",[]],[\"name/2550\",[902,77.243]],[\"comment/2550\",[]],[\"name/2551\",[903,77.243]],[\"comment/2551\",[]],[\"name/2552\",[904,77.243]],[\"comment/2552\",[]],[\"name/2553\",[905,77.243]],[\"comment/2553\",[]],[\"name/2554\",[906,77.243]],[\"comment/2554\",[]],[\"name/2555\",[907,77.243]],[\"comment/2555\",[]],[\"name/2556\",[908,77.243]],[\"comment/2556\",[]],[\"name/2557\",[909,77.243]],[\"comment/2557\",[]],[\"name/2558\",[910,77.243]],[\"comment/2558\",[]],[\"name/2559\",[1,24.344]],[\"comment/2559\",[]],[\"name/2560\",[911,77.243]],[\"comment/2560\",[]],[\"name/2561\",[912,77.243]],[\"comment/2561\",[]],[\"name/2562\",[874,56.04]],[\"comment/2562\",[]],[\"name/2563\",[913,77.243]],[\"comment/2563\",[]],[\"name/2564\",[39,47.799]],[\"comment/2564\",[]],[\"name/2565\",[878,54.556]],[\"comment/2565\",[]],[\"name/2566\",[876,56.04]],[\"comment/2566\",[]],[\"name/2567\",[649,50.617]],[\"comment/2567\",[]],[\"name/2568\",[877,56.04]],[\"comment/2568\",[]],[\"name/2569\",[875,56.04]],[\"comment/2569\",[]],[\"name/2570\",[914,77.243]],[\"comment/2570\",[]],[\"name/2571\",[1,24.344]],[\"comment/2571\",[]],[\"name/2572\",[2,36.696]],[\"comment/2572\",[]],[\"name/2573\",[39,47.799]],[\"comment/2573\",[]],[\"name/2574\",[915,77.243]],[\"comment/2574\",[]],[\"name/2575\",[75,64.25]],[\"comment/2575\",[]],[\"name/2576\",[878,54.556]],[\"comment/2576\",[]],[\"name/2577\",[874,56.04]],[\"comment/2577\",[]],[\"name/2578\",[876,56.04]],[\"comment/2578\",[]],[\"name/2579\",[875,56.04]],[\"comment/2579\",[]],[\"name/2580\",[649,50.617]],[\"comment/2580\",[]],[\"name/2581\",[877,56.04]],[\"comment/2581\",[]],[\"name/2582\",[916,77.243]],[\"comment/2582\",[]],[\"name/2583\",[917,77.243]],[\"comment/2583\",[]],[\"name/2584\",[918,77.243]],[\"comment/2584\",[]],[\"name/2585\",[919,77.243]],[\"comment/2585\",[]],[\"name/2586\",[920,77.243]],[\"comment/2586\",[]],[\"name/2587\",[1,24.344]],[\"comment/2587\",[]],[\"name/2588\",[39,47.799]],[\"comment/2588\",[]],[\"name/2589\",[878,54.556]],[\"comment/2589\",[]],[\"name/2590\",[874,56.04]],[\"comment/2590\",[]],[\"name/2591\",[876,56.04]],[\"comment/2591\",[]],[\"name/2592\",[649,50.617]],[\"comment/2592\",[]],[\"name/2593\",[875,56.04]],[\"comment/2593\",[]],[\"name/2594\",[877,56.04]],[\"comment/2594\",[]],[\"name/2595\",[921,77.243]],[\"comment/2595\",[]],[\"name/2596\",[922,77.243]],[\"comment/2596\",[]],[\"name/2597\",[1,24.344]],[\"comment/2597\",[]],[\"name/2598\",[39,47.799]],[\"comment/2598\",[]],[\"name/2599\",[878,54.556]],[\"comment/2599\",[]],[\"name/2600\",[874,56.04]],[\"comment/2600\",[]],[\"name/2601\",[876,56.04]],[\"comment/2601\",[]],[\"name/2602\",[649,50.617]],[\"comment/2602\",[]],[\"name/2603\",[877,56.04]],[\"comment/2603\",[]],[\"name/2604\",[875,56.04]],[\"comment/2604\",[]],[\"name/2605\",[923,77.243]],[\"comment/2605\",[]],[\"name/2606\",[1,24.344]],[\"comment/2606\",[]],[\"name/2607\",[821,72.135]],[\"comment/2607\",[]],[\"name/2608\",[877,56.04]],[\"comment/2608\",[]],[\"name/2609\",[39,47.799]],[\"comment/2609\",[]],[\"name/2610\",[878,54.556]],[\"comment/2610\",[]],[\"name/2611\",[874,56.04]],[\"comment/2611\",[]],[\"name/2612\",[876,56.04]],[\"comment/2612\",[]],[\"name/2613\",[649,50.617]],[\"comment/2613\",[]],[\"name/2614\",[875,56.04]],[\"comment/2614\",[]],[\"name/2615\",[924,77.243]],[\"comment/2615\",[]],[\"name/2616\",[1,24.344]],[\"comment/2616\",[]],[\"name/2617\",[876,56.04]],[\"comment/2617\",[]],[\"name/2618\",[649,50.617]],[\"comment/2618\",[]],[\"name/2619\",[877,56.04]],[\"comment/2619\",[]],[\"name/2620\",[875,56.04]],[\"comment/2620\",[]],[\"name/2621\",[39,47.799]],[\"comment/2621\",[]],[\"name/2622\",[878,54.556]],[\"comment/2622\",[]],[\"name/2623\",[874,56.04]],[\"comment/2623\",[]],[\"name/2624\",[925,77.243]],[\"comment/2624\",[]],[\"name/2625\",[1,24.344]],[\"comment/2625\",[]],[\"name/2626\",[2,36.696]],[\"comment/2626\",[]],[\"name/2627\",[194,62.58]],[\"comment/2627\",[]],[\"name/2628\",[926,77.243]],[\"comment/2628\",[]],[\"name/2629\",[927,77.243]],[\"comment/2629\",[]],[\"name/2630\",[928,77.243]],[\"comment/2630\",[]],[\"name/2631\",[874,56.04]],[\"comment/2631\",[]],[\"name/2632\",[876,56.04]],[\"comment/2632\",[]],[\"name/2633\",[875,56.04]],[\"comment/2633\",[]],[\"name/2634\",[39,47.799]],[\"comment/2634\",[]],[\"name/2635\",[878,54.556]],[\"comment/2635\",[]],[\"name/2636\",[649,50.617]],[\"comment/2636\",[]],[\"name/2637\",[877,56.04]],[\"comment/2637\",[]],[\"name/2638\",[40,58.785]],[\"comment/2638\",[]],[\"name/2639\",[878,54.556]],[\"comment/2639\",[]],[\"name/2640\",[115,30.961]],[\"comment/2640\",[]],[\"name/2641\",[929,77.243]],[\"comment/2641\",[]],[\"name/2642\",[930,77.243]],[\"comment/2642\",[]],[\"name/2643\",[874,56.04]],[\"comment/2643\",[]],[\"name/2644\",[115,30.961]],[\"comment/2644\",[]],[\"name/2645\",[875,56.04]],[\"comment/2645\",[]],[\"name/2646\",[115,30.961]],[\"comment/2646\",[]],[\"name/2647\",[876,56.04]],[\"comment/2647\",[]],[\"name/2648\",[115,30.961]],[\"comment/2648\",[]],[\"name/2649\",[649,50.617]],[\"comment/2649\",[]],[\"name/2650\",[115,30.961]],[\"comment/2650\",[]],[\"name/2651\",[877,56.04]],[\"comment/2651\",[]],[\"name/2652\",[115,30.961]],[\"comment/2652\",[]],[\"name/2653\",[878,54.556]],[\"comment/2653\",[]],[\"name/2654\",[115,30.961]],[\"comment/2654\",[]],[\"name/2655\",[931,77.243]],[\"comment/2655\",[]],[\"name/2656\",[1,24.344]],[\"comment/2656\",[]],[\"name/2657\",[27,72.135]],[\"comment/2657\",[]],[\"name/2658\",[878,54.556]],[\"comment/2658\",[]],[\"name/2659\",[874,56.04]],[\"comment/2659\",[]],[\"name/2660\",[876,56.04]],[\"comment/2660\",[]],[\"name/2661\",[875,56.04]],[\"comment/2661\",[]],[\"name/2662\",[649,50.617]],[\"comment/2662\",[]],[\"name/2663\",[877,56.04]],[\"comment/2663\",[]],[\"name/2664\",[932,77.243]],[\"comment/2664\",[]],[\"name/2665\",[933,77.243]],[\"comment/2665\",[]],[\"name/2666\",[233,46.485]],[\"comment/2666\",[]],[\"name/2667\",[934,54.556]],[\"comment/2667\",[]],[\"name/2668\",[935,53.264]],[\"comment/2668\",[]],[\"name/2669\",[115,30.961]],[\"comment/2669\",[]],[\"name/2670\",[1,24.344]],[\"comment/2670\",[]],[\"name/2671\",[233,46.485]],[\"comment/2671\",[]],[\"name/2672\",[936,53.889]],[\"comment/2672\",[]],[\"name/2673\",[937,53.889]],[\"comment/2673\",[]],[\"name/2674\",[938,53.889]],[\"comment/2674\",[]],[\"name/2675\",[591,53.889]],[\"comment/2675\",[]],[\"name/2676\",[939,77.243]],[\"comment/2676\",[]],[\"name/2677\",[233,46.485]],[\"comment/2677\",[]],[\"name/2678\",[934,54.556]],[\"comment/2678\",[]],[\"name/2679\",[935,53.264]],[\"comment/2679\",[]],[\"name/2680\",[115,30.961]],[\"comment/2680\",[]],[\"name/2681\",[1,24.344]],[\"comment/2681\",[]],[\"name/2682\",[233,46.485]],[\"comment/2682\",[]],[\"name/2683\",[936,53.889]],[\"comment/2683\",[]],[\"name/2684\",[937,53.889]],[\"comment/2684\",[]],[\"name/2685\",[938,53.889]],[\"comment/2685\",[]],[\"name/2686\",[591,53.889]],[\"comment/2686\",[]],[\"name/2687\",[940,77.243]],[\"comment/2687\",[]],[\"name/2688\",[941,77.243]],[\"comment/2688\",[]],[\"name/2689\",[942,77.243]],[\"comment/2689\",[]],[\"name/2690\",[943,77.243]],[\"comment/2690\",[]],[\"name/2691\",[233,46.485]],[\"comment/2691\",[]],[\"name/2692\",[934,54.556]],[\"comment/2692\",[]],[\"name/2693\",[935,53.264]],[\"comment/2693\",[]],[\"name/2694\",[115,30.961]],[\"comment/2694\",[]],[\"name/2695\",[1,24.344]],[\"comment/2695\",[]],[\"name/2696\",[233,46.485]],[\"comment/2696\",[]],[\"name/2697\",[936,53.889]],[\"comment/2697\",[]],[\"name/2698\",[937,53.889]],[\"comment/2698\",[]],[\"name/2699\",[938,53.889]],[\"comment/2699\",[]],[\"name/2700\",[591,53.889]],[\"comment/2700\",[]],[\"name/2701\",[944,77.243]],[\"comment/2701\",[]],[\"name/2702\",[233,46.485]],[\"comment/2702\",[]],[\"name/2703\",[934,54.556]],[\"comment/2703\",[]],[\"name/2704\",[935,53.264]],[\"comment/2704\",[]],[\"name/2705\",[115,30.961]],[\"comment/2705\",[]],[\"name/2706\",[1,24.344]],[\"comment/2706\",[]],[\"name/2707\",[945,68.77]],[\"comment/2707\",[]],[\"name/2708\",[233,46.485]],[\"comment/2708\",[]],[\"name/2709\",[936,53.889]],[\"comment/2709\",[]],[\"name/2710\",[937,53.889]],[\"comment/2710\",[]],[\"name/2711\",[938,53.889]],[\"comment/2711\",[]],[\"name/2712\",[591,53.889]],[\"comment/2712\",[]],[\"name/2713\",[946,77.243]],[\"comment/2713\",[]],[\"name/2714\",[947,77.243]],[\"comment/2714\",[]],[\"name/2715\",[948,77.243]],[\"comment/2715\",[]],[\"name/2716\",[936,53.889]],[\"comment/2716\",[]],[\"name/2717\",[937,53.889]],[\"comment/2717\",[]],[\"name/2718\",[938,53.889]],[\"comment/2718\",[]],[\"name/2719\",[949,77.243]],[\"comment/2719\",[]],[\"name/2720\",[935,53.264]],[\"comment/2720\",[]],[\"name/2721\",[115,30.961]],[\"comment/2721\",[]],[\"name/2722\",[1,24.344]],[\"comment/2722\",[]],[\"name/2723\",[233,46.485]],[\"comment/2723\",[]],[\"name/2724\",[936,53.889]],[\"comment/2724\",[]],[\"name/2725\",[937,53.889]],[\"comment/2725\",[]],[\"name/2726\",[938,53.889]],[\"comment/2726\",[]],[\"name/2727\",[591,53.889]],[\"comment/2727\",[]],[\"name/2728\",[950,77.243]],[\"comment/2728\",[]],[\"name/2729\",[233,46.485]],[\"comment/2729\",[]],[\"name/2730\",[934,54.556]],[\"comment/2730\",[]],[\"name/2731\",[935,53.264]],[\"comment/2731\",[]],[\"name/2732\",[115,30.961]],[\"comment/2732\",[]],[\"name/2733\",[1,24.344]],[\"comment/2733\",[]],[\"name/2734\",[951,77.243]],[\"comment/2734\",[]],[\"name/2735\",[952,77.243]],[\"comment/2735\",[]],[\"name/2736\",[953,77.243]],[\"comment/2736\",[]],[\"name/2737\",[233,46.485]],[\"comment/2737\",[]],[\"name/2738\",[934,54.556]],[\"comment/2738\",[]],[\"name/2739\",[935,53.264]],[\"comment/2739\",[]],[\"name/2740\",[115,30.961]],[\"comment/2740\",[]],[\"name/2741\",[1,24.344]],[\"comment/2741\",[]],[\"name/2742\",[233,46.485]],[\"comment/2742\",[]],[\"name/2743\",[936,53.889]],[\"comment/2743\",[]],[\"name/2744\",[937,53.889]],[\"comment/2744\",[]],[\"name/2745\",[938,53.889]],[\"comment/2745\",[]],[\"name/2746\",[591,53.889]],[\"comment/2746\",[]],[\"name/2747\",[954,77.243]],[\"comment/2747\",[]],[\"name/2748\",[233,46.485]],[\"comment/2748\",[]],[\"name/2749\",[934,54.556]],[\"comment/2749\",[]],[\"name/2750\",[935,53.264]],[\"comment/2750\",[]],[\"name/2751\",[115,30.961]],[\"comment/2751\",[]],[\"name/2752\",[1,24.344]],[\"comment/2752\",[]],[\"name/2753\",[955,72.135]],[\"comment/2753\",[]],[\"name/2754\",[591,53.889]],[\"comment/2754\",[]],[\"name/2755\",[233,46.485]],[\"comment/2755\",[]],[\"name/2756\",[936,53.889]],[\"comment/2756\",[]],[\"name/2757\",[937,53.889]],[\"comment/2757\",[]],[\"name/2758\",[938,53.889]],[\"comment/2758\",[]],[\"name/2759\",[956,77.243]],[\"comment/2759\",[]],[\"name/2760\",[233,46.485]],[\"comment/2760\",[]],[\"name/2761\",[934,54.556]],[\"comment/2761\",[]],[\"name/2762\",[935,53.264]],[\"comment/2762\",[]],[\"name/2763\",[115,30.961]],[\"comment/2763\",[]],[\"name/2764\",[1,24.344]],[\"comment/2764\",[]],[\"name/2765\",[945,68.77]],[\"comment/2765\",[]],[\"name/2766\",[233,46.485]],[\"comment/2766\",[]],[\"name/2767\",[936,53.889]],[\"comment/2767\",[]],[\"name/2768\",[937,53.889]],[\"comment/2768\",[]],[\"name/2769\",[938,53.889]],[\"comment/2769\",[]],[\"name/2770\",[591,53.889]],[\"comment/2770\",[]],[\"name/2771\",[957,77.243]],[\"comment/2771\",[]],[\"name/2772\",[233,46.485]],[\"comment/2772\",[]],[\"name/2773\",[934,54.556]],[\"comment/2773\",[]],[\"name/2774\",[935,53.264]],[\"comment/2774\",[]],[\"name/2775\",[115,30.961]],[\"comment/2775\",[]],[\"name/2776\",[1,24.344]],[\"comment/2776\",[]],[\"name/2777\",[233,46.485]],[\"comment/2777\",[]],[\"name/2778\",[936,53.889]],[\"comment/2778\",[]],[\"name/2779\",[937,53.889]],[\"comment/2779\",[]],[\"name/2780\",[938,53.889]],[\"comment/2780\",[]],[\"name/2781\",[591,53.889]],[\"comment/2781\",[]],[\"name/2782\",[958,77.243]],[\"comment/2782\",[]],[\"name/2783\",[233,46.485]],[\"comment/2783\",[]],[\"name/2784\",[934,54.556]],[\"comment/2784\",[]],[\"name/2785\",[935,53.264]],[\"comment/2785\",[]],[\"name/2786\",[115,30.961]],[\"comment/2786\",[]],[\"name/2787\",[1,24.344]],[\"comment/2787\",[]],[\"name/2788\",[233,46.485]],[\"comment/2788\",[]],[\"name/2789\",[936,53.889]],[\"comment/2789\",[]],[\"name/2790\",[937,53.889]],[\"comment/2790\",[]],[\"name/2791\",[938,53.889]],[\"comment/2791\",[]],[\"name/2792\",[591,53.889]],[\"comment/2792\",[]],[\"name/2793\",[959,77.243]],[\"comment/2793\",[]],[\"name/2794\",[233,46.485]],[\"comment/2794\",[]],[\"name/2795\",[934,54.556]],[\"comment/2795\",[]],[\"name/2796\",[935,53.264]],[\"comment/2796\",[]],[\"name/2797\",[115,30.961]],[\"comment/2797\",[]],[\"name/2798\",[1,24.344]],[\"comment/2798\",[]],[\"name/2799\",[233,46.485]],[\"comment/2799\",[]],[\"name/2800\",[936,53.889]],[\"comment/2800\",[]],[\"name/2801\",[937,53.889]],[\"comment/2801\",[]],[\"name/2802\",[938,53.889]],[\"comment/2802\",[]],[\"name/2803\",[591,53.889]],[\"comment/2803\",[]],[\"name/2804\",[960,77.243]],[\"comment/2804\",[]],[\"name/2805\",[961,77.243]],[\"comment/2805\",[]],[\"name/2806\",[935,53.264]],[\"comment/2806\",[]],[\"name/2807\",[115,30.961]],[\"comment/2807\",[]],[\"name/2808\",[1,24.344]],[\"comment/2808\",[]],[\"name/2809\",[945,68.77]],[\"comment/2809\",[]],[\"name/2810\",[233,46.485]],[\"comment/2810\",[]],[\"name/2811\",[936,53.889]],[\"comment/2811\",[]],[\"name/2812\",[937,53.889]],[\"comment/2812\",[]],[\"name/2813\",[938,53.889]],[\"comment/2813\",[]],[\"name/2814\",[591,53.889]],[\"comment/2814\",[]],[\"name/2815\",[962,77.243]],[\"comment/2815\",[]],[\"name/2816\",[233,46.485]],[\"comment/2816\",[]],[\"name/2817\",[934,54.556]],[\"comment/2817\",[]],[\"name/2818\",[935,53.264]],[\"comment/2818\",[]],[\"name/2819\",[115,30.961]],[\"comment/2819\",[]],[\"name/2820\",[1,24.344]],[\"comment/2820\",[]],[\"name/2821\",[963,77.243]],[\"comment/2821\",[]],[\"name/2822\",[964,77.243]],[\"comment/2822\",[]],[\"name/2823\",[965,77.243]],[\"comment/2823\",[]],[\"name/2824\",[966,77.243]],[\"comment/2824\",[]],[\"name/2825\",[967,77.243]],[\"comment/2825\",[]],[\"name/2826\",[968,77.243]],[\"comment/2826\",[]],[\"name/2827\",[539,62.58]],[\"comment/2827\",[]],[\"name/2828\",[282,66.257]],[\"comment/2828\",[]],[\"name/2829\",[376,68.77]],[\"comment/2829\",[]],[\"name/2830\",[969,77.243]],[\"comment/2830\",[]],[\"name/2831\",[970,77.243]],[\"comment/2831\",[]],[\"name/2832\",[233,46.485]],[\"comment/2832\",[]],[\"name/2833\",[934,54.556]],[\"comment/2833\",[]],[\"name/2834\",[935,53.264]],[\"comment/2834\",[]],[\"name/2835\",[115,30.961]],[\"comment/2835\",[]],[\"name/2836\",[1,24.344]],[\"comment/2836\",[]],[\"name/2837\",[233,46.485]],[\"comment/2837\",[]],[\"name/2838\",[936,53.889]],[\"comment/2838\",[]],[\"name/2839\",[937,53.889]],[\"comment/2839\",[]],[\"name/2840\",[938,53.889]],[\"comment/2840\",[]],[\"name/2841\",[591,53.889]],[\"comment/2841\",[]],[\"name/2842\",[971,77.243]],[\"comment/2842\",[]],[\"name/2843\",[233,46.485]],[\"comment/2843\",[]],[\"name/2844\",[934,54.556]],[\"comment/2844\",[]],[\"name/2845\",[935,53.264]],[\"comment/2845\",[]],[\"name/2846\",[115,30.961]],[\"comment/2846\",[]],[\"name/2847\",[1,24.344]],[\"comment/2847\",[]],[\"name/2848\",[233,46.485]],[\"comment/2848\",[]],[\"name/2849\",[936,53.889]],[\"comment/2849\",[]],[\"name/2850\",[937,53.889]],[\"comment/2850\",[]],[\"name/2851\",[938,53.889]],[\"comment/2851\",[]],[\"name/2852\",[591,53.889]],[\"comment/2852\",[]],[\"name/2853\",[972,77.243]],[\"comment/2853\",[]],[\"name/2854\",[1,24.344]],[\"comment/2854\",[]],[\"name/2855\",[4,28.801]],[\"comment/2855\",[]],[\"name/2856\",[5,29.285]],[\"comment/2856\",[]],[\"name/2857\",[6,29.285]],[\"comment/2857\",[]],[\"name/2858\",[973,77.243]],[\"comment/2858\",[]],[\"name/2859\",[1,24.344]],[\"comment/2859\",[]],[\"name/2860\",[2,36.696]],[\"comment/2860\",[]],[\"name/2861\",[19,61.149]],[\"comment/2861\",[]],[\"name/2862\",[4,28.801]],[\"comment/2862\",[]],[\"name/2863\",[6,29.285]],[\"comment/2863\",[]],[\"name/2864\",[5,29.285]],[\"comment/2864\",[]],[\"name/2865\",[974,77.243]],[\"comment/2865\",[]],[\"name/2866\",[1,24.344]],[\"comment/2866\",[]],[\"name/2867\",[39,47.799]],[\"comment/2867\",[]],[\"name/2868\",[297,53.264]],[\"comment/2868\",[]],[\"name/2869\",[470,61.149]],[\"comment/2869\",[]],[\"name/2870\",[975,77.243]],[\"comment/2870\",[]],[\"name/2871\",[976,77.243]],[\"comment/2871\",[]],[\"name/2872\",[4,28.801]],[\"comment/2872\",[]],[\"name/2873\",[6,29.285]],[\"comment/2873\",[]],[\"name/2874\",[5,29.285]],[\"comment/2874\",[]],[\"name/2875\",[977,77.243]],[\"comment/2875\",[]],[\"name/2876\",[978,77.243]],[\"comment/2876\",[]],[\"name/2877\",[979,77.243]],[\"comment/2877\",[]],[\"name/2878\",[980,77.243]],[\"comment/2878\",[]],[\"name/2879\",[1,24.344]],[\"comment/2879\",[]],[\"name/2880\",[955,72.135]],[\"comment/2880\",[]],[\"name/2881\",[39,47.799]],[\"comment/2881\",[]],[\"name/2882\",[4,28.801]],[\"comment/2882\",[]],[\"name/2883\",[5,29.285]],[\"comment/2883\",[]],[\"name/2884\",[981,77.243]],[\"comment/2884\",[]],[\"name/2885\",[6,29.285]],[\"comment/2885\",[]],[\"name/2886\",[982,77.243]],[\"comment/2886\",[]],[\"name/2887\",[1,24.344]],[\"comment/2887\",[]],[\"name/2888\",[19,61.149]],[\"comment/2888\",[]],[\"name/2889\",[4,28.801]],[\"comment/2889\",[]],[\"name/2890\",[5,29.285]],[\"comment/2890\",[]],[\"name/2891\",[6,29.285]],[\"comment/2891\",[]],[\"name/2892\",[983,77.243]],[\"comment/2892\",[]],[\"name/2893\",[1,24.344]],[\"comment/2893\",[]],[\"name/2894\",[450,66.257]],[\"comment/2894\",[]],[\"name/2895\",[39,47.799]],[\"comment/2895\",[]],[\"name/2896\",[984,77.243]],[\"comment/2896\",[]],[\"name/2897\",[4,28.801]],[\"comment/2897\",[]],[\"name/2898\",[5,29.285]],[\"comment/2898\",[]],[\"name/2899\",[985,77.243]],[\"comment/2899\",[]],[\"name/2900\",[6,29.285]],[\"comment/2900\",[]],[\"name/2901\",[986,77.243]],[\"comment/2901\",[]],[\"name/2902\",[1,24.344]],[\"comment/2902\",[]],[\"name/2903\",[19,61.149]],[\"comment/2903\",[]],[\"name/2904\",[5,29.285]],[\"comment/2904\",[]],[\"name/2905\",[4,28.801]],[\"comment/2905\",[]],[\"name/2906\",[6,29.285]],[\"comment/2906\",[]],[\"name/2907\",[987,77.243]],[\"comment/2907\",[]],[\"name/2908\",[1,24.344]],[\"comment/2908\",[]],[\"name/2909\",[167,64.25]],[\"comment/2909\",[]],[\"name/2910\",[5,29.285]],[\"comment/2910\",[]],[\"name/2911\",[4,28.801]],[\"comment/2911\",[]],[\"name/2912\",[6,29.285]],[\"comment/2912\",[]],[\"name/2913\",[988,77.243]],[\"comment/2913\",[]],[\"name/2914\",[1,24.344]],[\"comment/2914\",[]],[\"name/2915\",[201,61.149]],[\"comment/2915\",[]],[\"name/2916\",[5,29.285]],[\"comment/2916\",[]],[\"name/2917\",[4,28.801]],[\"comment/2917\",[]],[\"name/2918\",[6,29.285]],[\"comment/2918\",[]],[\"name/2919\",[989,77.243]],[\"comment/2919\",[]],[\"name/2920\",[1,24.344]],[\"comment/2920\",[]],[\"name/2921\",[19,61.149]],[\"comment/2921\",[]],[\"name/2922\",[990,77.243]],[\"comment/2922\",[]],[\"name/2923\",[991,77.243]],[\"comment/2923\",[]],[\"name/2924\",[4,28.801]],[\"comment/2924\",[]],[\"name/2925\",[5,29.285]],[\"comment/2925\",[]],[\"name/2926\",[20,68.77]],[\"comment/2926\",[]],[\"name/2927\",[18,68.77]],[\"comment/2927\",[]],[\"name/2928\",[6,29.285]],[\"comment/2928\",[]],[\"name/2929\",[992,77.243]],[\"comment/2929\",[]],[\"name/2930\",[1,24.344]],[\"comment/2930\",[]],[\"name/2931\",[993,77.243]],[\"comment/2931\",[]],[\"name/2932\",[4,28.801]],[\"comment/2932\",[]],[\"name/2933\",[5,29.285]],[\"comment/2933\",[]],[\"name/2934\",[6,29.285]],[\"comment/2934\",[]],[\"name/2935\",[994,77.243]],[\"comment/2935\",[]],[\"name/2936\",[1,24.344]],[\"comment/2936\",[]],[\"name/2937\",[2,36.696]],[\"comment/2937\",[]],[\"name/2938\",[19,61.149]],[\"comment/2938\",[]],[\"name/2939\",[4,28.801]],[\"comment/2939\",[]],[\"name/2940\",[5,29.285]],[\"comment/2940\",[]],[\"name/2941\",[6,29.285]],[\"comment/2941\",[]],[\"name/2942\",[995,77.243]],[\"comment/2942\",[]],[\"name/2943\",[1,24.344]],[\"comment/2943\",[]],[\"name/2944\",[996,66.257]],[\"comment/2944\",[]],[\"name/2945\",[997,66.257]],[\"comment/2945\",[]],[\"name/2946\",[998,66.257]],[\"comment/2946\",[]],[\"name/2947\",[999,66.257]],[\"comment/2947\",[]],[\"name/2948\",[42,54.556]],[\"comment/2948\",[]],[\"name/2949\",[996,66.257]],[\"comment/2949\",[]],[\"name/2950\",[115,30.961]],[\"comment/2950\",[]],[\"name/2951\",[997,66.257]],[\"comment/2951\",[]],[\"name/2952\",[115,30.961]],[\"comment/2952\",[]],[\"name/2953\",[998,66.257]],[\"comment/2953\",[]],[\"name/2954\",[115,30.961]],[\"comment/2954\",[]],[\"name/2955\",[999,66.257]],[\"comment/2955\",[]],[\"name/2956\",[115,30.961]],[\"comment/2956\",[]],[\"name/2957\",[1000,77.243]],[\"comment/2957\",[]],[\"name/2958\",[1,24.344]],[\"comment/2958\",[]],[\"name/2959\",[88,54.556]],[\"comment/2959\",[]],[\"name/2960\",[2,36.696]],[\"comment/2960\",[]],[\"name/2961\",[996,66.257]],[\"comment/2961\",[]],[\"name/2962\",[998,66.257]],[\"comment/2962\",[]],[\"name/2963\",[997,66.257]],[\"comment/2963\",[]],[\"name/2964\",[999,66.257]],[\"comment/2964\",[]],[\"name/2965\",[1001,77.243]],[\"comment/2965\",[]],[\"name/2966\",[1,24.344]],[\"comment/2966\",[]],[\"name/2967\",[88,54.556]],[\"comment/2967\",[]],[\"name/2968\",[809,68.77]],[\"comment/2968\",[]],[\"name/2969\",[2,36.696]],[\"comment/2969\",[]],[\"name/2970\",[996,66.257]],[\"comment/2970\",[]],[\"name/2971\",[998,66.257]],[\"comment/2971\",[]],[\"name/2972\",[997,66.257]],[\"comment/2972\",[]],[\"name/2973\",[999,66.257]],[\"comment/2973\",[]],[\"name/2974\",[1002,77.243]],[\"comment/2974\",[]],[\"name/2975\",[1003,61.149]],[\"comment/2975\",[]],[\"name/2976\",[115,30.961]],[\"comment/2976\",[]],[\"name/2977\",[1004,61.149]],[\"comment/2977\",[]],[\"name/2978\",[115,30.961]],[\"comment/2978\",[]],[\"name/2979\",[1005,77.243]],[\"comment/2979\",[]],[\"name/2980\",[1,24.344]],[\"comment/2980\",[]],[\"name/2981\",[758,64.25]],[\"comment/2981\",[]],[\"name/2982\",[1003,61.149]],[\"comment/2982\",[]],[\"name/2983\",[1004,61.149]],[\"comment/2983\",[]],[\"name/2984\",[1006,77.243]],[\"comment/2984\",[]],[\"name/2985\",[1007,77.243]],[\"comment/2985\",[]],[\"name/2986\",[1,24.344]],[\"comment/2986\",[]],[\"name/2987\",[2,36.696]],[\"comment/2987\",[]],[\"name/2988\",[1008,72.135]],[\"comment/2988\",[]],[\"name/2989\",[1009,77.243]],[\"comment/2989\",[]],[\"name/2990\",[1010,77.243]],[\"comment/2990\",[]],[\"name/2991\",[1011,72.135]],[\"comment/2991\",[]],[\"name/2992\",[1012,77.243]],[\"comment/2992\",[]],[\"name/2993\",[115,30.961]],[\"comment/2993\",[]],[\"name/2994\",[1013,66.257]],[\"comment/2994\",[]],[\"name/2995\",[1014,66.257]],[\"comment/2995\",[]],[\"name/2996\",[1015,77.243]],[\"comment/2996\",[]],[\"name/2997\",[1016,77.243]],[\"comment/2997\",[]],[\"name/2998\",[468,66.257]],[\"comment/2998\",[]],[\"name/2999\",[462,64.25]],[\"comment/2999\",[]],[\"name/3000\",[1017,77.243]],[\"comment/3000\",[]],[\"name/3001\",[1018,77.243]],[\"comment/3001\",[]],[\"name/3002\",[1019,72.135]],[\"comment/3002\",[]],[\"name/3003\",[49,72.135]],[\"comment/3003\",[]],[\"name/3004\",[51,72.135]],[\"comment/3004\",[]],[\"name/3005\",[1020,77.243]],[\"comment/3005\",[]],[\"name/3006\",[1,24.344]],[\"comment/3006\",[]],[\"name/3007\",[758,64.25]],[\"comment/3007\",[]],[\"name/3008\",[297,53.264]],[\"comment/3008\",[]],[\"name/3009\",[1021,77.243]],[\"comment/3009\",[]],[\"name/3010\",[1003,61.149]],[\"comment/3010\",[]],[\"name/3011\",[1004,61.149]],[\"comment/3011\",[]],[\"name/3012\",[1022,77.243]],[\"comment/3012\",[]],[\"name/3013\",[1023,77.243]],[\"comment/3013\",[]],[\"name/3014\",[1024,77.243]],[\"comment/3014\",[]],[\"name/3015\",[1025,77.243]],[\"comment/3015\",[]],[\"name/3016\",[1026,77.243]],[\"comment/3016\",[]],[\"name/3017\",[1027,77.243]],[\"comment/3017\",[]],[\"name/3018\",[1028,77.243]],[\"comment/3018\",[]],[\"name/3019\",[1029,77.243]],[\"comment/3019\",[]],[\"name/3020\",[1,24.344]],[\"comment/3020\",[]],[\"name/3021\",[2,36.696]],[\"comment/3021\",[]],[\"name/3022\",[758,64.25]],[\"comment/3022\",[]],[\"name/3023\",[1030,77.243]],[\"comment/3023\",[]],[\"name/3024\",[1013,66.257]],[\"comment/3024\",[]],[\"name/3025\",[1014,66.257]],[\"comment/3025\",[]],[\"name/3026\",[1031,77.243]],[\"comment/3026\",[]],[\"name/3027\",[1032,77.243]],[\"comment/3027\",[]],[\"name/3028\",[1003,61.149]],[\"comment/3028\",[]],[\"name/3029\",[115,30.961]],[\"comment/3029\",[]],[\"name/3030\",[1004,61.149]],[\"comment/3030\",[]],[\"name/3031\",[115,30.961]],[\"comment/3031\",[]],[\"name/3032\",[1033,77.243]],[\"comment/3032\",[]],[\"name/3033\",[1034,72.135]],[\"comment/3033\",[]],[\"name/3034\",[1035,77.243]],[\"comment/3034\",[]],[\"name/3035\",[361,68.77]],[\"comment/3035\",[]],[\"name/3036\",[1036,77.243]],[\"comment/3036\",[]],[\"name/3037\",[1037,77.243]],[\"comment/3037\",[]],[\"name/3038\",[1,24.344]],[\"comment/3038\",[]],[\"name/3039\",[2,36.696]],[\"comment/3039\",[]],[\"name/3040\",[1038,77.243]],[\"comment/3040\",[]],[\"name/3041\",[1039,77.243]],[\"comment/3041\",[]],[\"name/3042\",[1040,77.243]],[\"comment/3042\",[]],[\"name/3043\",[1008,72.135]],[\"comment/3043\",[]],[\"name/3044\",[1034,72.135]],[\"comment/3044\",[]],[\"name/3045\",[1011,72.135]],[\"comment/3045\",[]],[\"name/3046\",[1041,77.243]],[\"comment/3046\",[]],[\"name/3047\",[1042,77.243]],[\"comment/3047\",[]],[\"name/3048\",[1043,77.243]],[\"comment/3048\",[]],[\"name/3049\",[1044,77.243]],[\"comment/3049\",[]],[\"name/3050\",[115,30.961]],[\"comment/3050\",[]],[\"name/3051\",[1003,61.149]],[\"comment/3051\",[]],[\"name/3052\",[1004,61.149]],[\"comment/3052\",[]],[\"name/3053\",[1013,66.257]],[\"comment/3053\",[]],[\"name/3054\",[1014,66.257]],[\"comment/3054\",[]],[\"name/3055\",[468,66.257]],[\"comment/3055\",[]],[\"name/3056\",[462,64.25]],[\"comment/3056\",[]],[\"name/3057\",[1045,77.243]],[\"comment/3057\",[]],[\"name/3058\",[1046,77.243]],[\"comment/3058\",[]],[\"name/3059\",[1013,66.257]],[\"comment/3059\",[]],[\"name/3060\",[115,30.961]],[\"comment/3060\",[]],[\"name/3061\",[1014,66.257]],[\"comment/3061\",[]],[\"name/3062\",[115,30.961]],[\"comment/3062\",[]],[\"name/3063\",[1047,77.243]],[\"comment/3063\",[]],[\"name/3064\",[1,24.344]],[\"comment/3064\",[]],[\"name/3065\",[2,36.696]],[\"comment/3065\",[]],[\"name/3066\",[758,64.25]],[\"comment/3066\",[]],[\"name/3067\",[32,68.77]],[\"comment/3067\",[]],[\"name/3068\",[1003,61.149]],[\"comment/3068\",[]],[\"name/3069\",[1004,61.149]],[\"comment/3069\",[]],[\"name/3070\",[1048,77.243]],[\"comment/3070\",[]],[\"name/3071\",[1049,77.243]],[\"comment/3071\",[]],[\"name/3072\",[1,24.344]],[\"comment/3072\",[]],[\"name/3073\",[2,36.696]],[\"comment/3073\",[]],[\"name/3074\",[1003,61.149]],[\"comment/3074\",[]],[\"name/3075\",[1004,61.149]],[\"comment/3075\",[]],[\"name/3076\",[1050,72.135]],[\"comment/3076\",[]],[\"name/3077\",[1,24.344]],[\"comment/3077\",[]],[\"name/3078\",[1050,72.135]],[\"comment/3078\",[]],[\"name/3079\",[1051,77.243]],[\"comment/3079\",[]],[\"name/3080\",[115,30.961]],[\"comment/3080\",[]],[\"name/3081\",[261,56.04]],[\"comment/3081\",[]],[\"name/3082\",[263,55.271]],[\"comment/3082\",[]],[\"name/3083\",[264,56.04]],[\"comment/3083\",[]],[\"name/3084\",[53,56.04]],[\"comment/3084\",[]],[\"name/3085\",[1052,66.257]],[\"comment/3085\",[]],[\"name/3086\",[670,55.271]],[\"comment/3086\",[]],[\"name/3087\",[1053,66.257]],[\"comment/3087\",[]],[\"name/3088\",[1054,64.25]],[\"comment/3088\",[]],[\"name/3089\",[1055,64.25]],[\"comment/3089\",[]],[\"name/3090\",[867,64.25]],[\"comment/3090\",[]],[\"name/3091\",[1056,64.25]],[\"comment/3091\",[]],[\"name/3092\",[1057,66.257]],[\"comment/3092\",[]],[\"name/3093\",[1058,77.243]],[\"comment/3093\",[]],[\"name/3094\",[1059,77.243]],[\"comment/3094\",[]],[\"name/3095\",[1,24.344]],[\"comment/3095\",[]],[\"name/3096\",[261,56.04]],[\"comment/3096\",[]],[\"name/3097\",[263,55.271]],[\"comment/3097\",[]],[\"name/3098\",[264,56.04]],[\"comment/3098\",[]],[\"name/3099\",[53,56.04]],[\"comment/3099\",[]],[\"name/3100\",[1052,66.257]],[\"comment/3100\",[]],[\"name/3101\",[670,55.271]],[\"comment/3101\",[]],[\"name/3102\",[1053,66.257]],[\"comment/3102\",[]],[\"name/3103\",[1054,64.25]],[\"comment/3103\",[]],[\"name/3104\",[1055,64.25]],[\"comment/3104\",[]],[\"name/3105\",[867,64.25]],[\"comment/3105\",[]],[\"name/3106\",[1056,64.25]],[\"comment/3106\",[]],[\"name/3107\",[1057,66.257]],[\"comment/3107\",[]],[\"name/3108\",[1060,77.243]],[\"comment/3108\",[]],[\"name/3109\",[1,24.344]],[\"comment/3109\",[]],[\"name/3110\",[261,56.04]],[\"comment/3110\",[]],[\"name/3111\",[1061,68.77]],[\"comment/3111\",[]],[\"name/3112\",[263,55.271]],[\"comment/3112\",[]],[\"name/3113\",[264,56.04]],[\"comment/3113\",[]],[\"name/3114\",[257,64.25]],[\"comment/3114\",[]],[\"name/3115\",[53,56.04]],[\"comment/3115\",[]],[\"name/3116\",[1062,68.77]],[\"comment/3116\",[]],[\"name/3117\",[1052,66.257]],[\"comment/3117\",[]],[\"name/3118\",[1063,68.77]],[\"comment/3118\",[]],[\"name/3119\",[670,55.271]],[\"comment/3119\",[]],[\"name/3120\",[1064,68.77]],[\"comment/3120\",[]],[\"name/3121\",[1053,66.257]],[\"comment/3121\",[]],[\"name/3122\",[1065,68.77]],[\"comment/3122\",[]],[\"name/3123\",[1054,64.25]],[\"comment/3123\",[]],[\"name/3124\",[1066,68.77]],[\"comment/3124\",[]],[\"name/3125\",[1055,64.25]],[\"comment/3125\",[]],[\"name/3126\",[867,64.25]],[\"comment/3126\",[]],[\"name/3127\",[1056,64.25]],[\"comment/3127\",[]],[\"name/3128\",[1057,66.257]],[\"comment/3128\",[]],[\"name/3129\",[1067,77.243]],[\"comment/3129\",[]],[\"name/3130\",[1068,77.243]],[\"comment/3130\",[]],[\"name/3131\",[1069,77.243]],[\"comment/3131\",[]],[\"name/3132\",[1070,77.243]],[\"comment/3132\",[]],[\"name/3133\",[1071,77.243]],[\"comment/3133\",[]],[\"name/3134\",[1072,77.243]],[\"comment/3134\",[]],[\"name/3135\",[115,30.961]],[\"comment/3135\",[]],[\"name/3136\",[1073,77.243]],[\"comment/3136\",[]],[\"name/3137\",[115,30.961]],[\"comment/3137\",[]],[\"name/3138\",[257,64.25]],[\"comment/3138\",[]],[\"name/3139\",[258,72.135]],[\"comment/3139\",[]],[\"name/3140\",[1074,77.243]],[\"comment/3140\",[]],[\"name/3141\",[263,55.271]],[\"comment/3141\",[]],[\"name/3142\",[115,30.961]],[\"comment/3142\",[]],[\"name/3143\",[1061,68.77]],[\"comment/3143\",[]],[\"name/3144\",[115,30.961]],[\"comment/3144\",[]],[\"name/3145\",[257,64.25]],[\"comment/3145\",[]],[\"name/3146\",[115,30.961]],[\"comment/3146\",[]],[\"name/3147\",[1062,68.77]],[\"comment/3147\",[]],[\"name/3148\",[115,30.961]],[\"comment/3148\",[]],[\"name/3149\",[1063,68.77]],[\"comment/3149\",[]],[\"name/3150\",[115,30.961]],[\"comment/3150\",[]],[\"name/3151\",[670,55.271]],[\"comment/3151\",[]],[\"name/3152\",[115,30.961]],[\"comment/3152\",[]],[\"name/3153\",[1064,68.77]],[\"comment/3153\",[]],[\"name/3154\",[115,30.961]],[\"comment/3154\",[]],[\"name/3155\",[1065,68.77]],[\"comment/3155\",[]],[\"name/3156\",[115,30.961]],[\"comment/3156\",[]],[\"name/3157\",[1054,64.25]],[\"comment/3157\",[]],[\"name/3158\",[115,30.961]],[\"comment/3158\",[]],[\"name/3159\",[1066,68.77]],[\"comment/3159\",[]],[\"name/3160\",[115,30.961]],[\"comment/3160\",[]],[\"name/3161\",[1055,64.25]],[\"comment/3161\",[]],[\"name/3162\",[115,30.961]],[\"comment/3162\",[]],[\"name/3163\",[1056,64.25]],[\"comment/3163\",[]],[\"name/3164\",[115,30.961]],[\"comment/3164\",[]],[\"name/3165\",[1075,77.243]],[\"comment/3165\",[]],[\"name/3166\",[1,24.344]],[\"comment/3166\",[]],[\"name/3167\",[1019,72.135]],[\"comment/3167\",[]],[\"name/3168\",[1076,72.135]],[\"comment/3168\",[]],[\"name/3169\",[261,56.04]],[\"comment/3169\",[]],[\"name/3170\",[1061,68.77]],[\"comment/3170\",[]],[\"name/3171\",[263,55.271]],[\"comment/3171\",[]],[\"name/3172\",[264,56.04]],[\"comment/3172\",[]],[\"name/3173\",[257,64.25]],[\"comment/3173\",[]],[\"name/3174\",[53,56.04]],[\"comment/3174\",[]],[\"name/3175\",[1062,68.77]],[\"comment/3175\",[]],[\"name/3176\",[1052,66.257]],[\"comment/3176\",[]],[\"name/3177\",[1063,68.77]],[\"comment/3177\",[]],[\"name/3178\",[670,55.271]],[\"comment/3178\",[]],[\"name/3179\",[1064,68.77]],[\"comment/3179\",[]],[\"name/3180\",[1053,66.257]],[\"comment/3180\",[]],[\"name/3181\",[1065,68.77]],[\"comment/3181\",[]],[\"name/3182\",[1054,64.25]],[\"comment/3182\",[]],[\"name/3183\",[1066,68.77]],[\"comment/3183\",[]],[\"name/3184\",[1055,64.25]],[\"comment/3184\",[]],[\"name/3185\",[867,64.25]],[\"comment/3185\",[]],[\"name/3186\",[1056,64.25]],[\"comment/3186\",[]],[\"name/3187\",[1057,66.257]],[\"comment/3187\",[]],[\"name/3188\",[1077,77.243]],[\"comment/3188\",[]],[\"name/3189\",[1,24.344]],[\"comment/3189\",[]],[\"name/3190\",[1078,77.243]],[\"comment/3190\",[]],[\"name/3191\",[1079,77.243]],[\"comment/3191\",[]],[\"name/3192\",[1080,77.243]],[\"comment/3192\",[]],[\"name/3193\",[1081,66.257]],[\"comment/3193\",[]],[\"name/3194\",[1082,77.243]],[\"comment/3194\",[]],[\"name/3195\",[1,24.344]],[\"comment/3195\",[]],[\"name/3196\",[1083,72.135]],[\"comment/3196\",[]],[\"name/3197\",[88,54.556]],[\"comment/3197\",[]],[\"name/3198\",[1081,66.257]],[\"comment/3198\",[]],[\"name/3199\",[1084,77.243]],[\"comment/3199\",[]],[\"name/3200\",[1,24.344]],[\"comment/3200\",[]],[\"name/3201\",[1083,72.135]],[\"comment/3201\",[]],[\"name/3202\",[88,54.556]],[\"comment/3202\",[]],[\"name/3203\",[1081,66.257]],[\"comment/3203\",[]],[\"name/3204\",[1085,77.243]],[\"comment/3204\",[]],[\"name/3205\",[1086,77.243]],[\"comment/3205\",[]],[\"name/3206\",[394,66.257]],[\"comment/3206\",[]],[\"name/3207\",[1087,77.243]],[\"comment/3207\",[]],[\"name/3208\",[1088,72.135]],[\"comment/3208\",[]],[\"name/3209\",[1088,72.135]],[\"comment/3209\",[]],[\"name/3210\",[1089,72.135]],[\"comment/3210\",[]],[\"name/3211\",[1090,77.243]],[\"comment/3211\",[]],[\"name/3212\",[1089,72.135]],[\"comment/3212\",[]],[\"name/3213\",[336,56.04]],[\"comment/3213\",[]],[\"name/3214\",[1081,66.257]],[\"comment/3214\",[]],[\"name/3215\",[1091,77.243]],[\"comment/3215\",[]],[\"name/3216\",[1092,77.243]],[\"comment/3216\",[]],[\"name/3217\",[1093,77.243]],[\"comment/3217\",[]],[\"name/3218\",[1094,77.243]],[\"comment/3218\",[]],[\"name/3219\",[1095,77.243]],[\"comment/3219\",[]],[\"name/3220\",[1096,77.243]],[\"comment/3220\",[]],[\"name/3221\",[1097,77.243]],[\"comment/3221\",[]],[\"name/3222\",[1098,77.243]],[\"comment/3222\",[]],[\"name/3223\",[1099,77.243]],[\"comment/3223\",[]],[\"name/3224\",[1100,77.243]],[\"comment/3224\",[]],[\"name/3225\",[1101,77.243]],[\"comment/3225\",[]],[\"name/3226\",[1102,77.243]],[\"comment/3226\",[]],[\"name/3227\",[115,30.961]],[\"comment/3227\",[]],[\"name/3228\",[26,68.77]],[\"comment/3228\",[]],[\"name/3229\",[1103,77.243]],[\"comment/3229\",[]],[\"name/3230\",[1104,77.243]],[\"comment/3230\",[]],[\"name/3231\",[1105,77.243]],[\"comment/3231\",[]],[\"name/3232\",[1106,77.243]],[\"comment/3232\",[]],[\"name/3233\",[1107,77.243]],[\"comment/3233\",[]],[\"name/3234\",[1108,77.243]],[\"comment/3234\",[]],[\"name/3235\",[1109,77.243]],[\"comment/3235\",[]],[\"name/3236\",[115,30.961]],[\"comment/3236\",[]],[\"name/3237\",[1110,77.243]],[\"comment/3237\",[]],[\"name/3238\",[1111,77.243]],[\"comment/3238\",[]],[\"name/3239\",[1112,77.243]],[\"comment/3239\",[]],[\"name/3240\",[1113,77.243]],[\"comment/3240\",[]],[\"name/3241\",[1114,77.243]],[\"comment/3241\",[]],[\"name/3242\",[1115,77.243]],[\"comment/3242\",[]],[\"name/3243\",[1116,77.243]],[\"comment/3243\",[]],[\"name/3244\",[1117,77.243]],[\"comment/3244\",[]],[\"name/3245\",[1118,77.243]],[\"comment/3245\",[]],[\"name/3246\",[1119,77.243]],[\"comment/3246\",[]],[\"name/3247\",[1120,77.243]],[\"comment/3247\",[]],[\"name/3248\",[1121,77.243]],[\"comment/3248\",[]],[\"name/3249\",[1122,77.243]],[\"comment/3249\",[]],[\"name/3250\",[1123,77.243]],[\"comment/3250\",[]],[\"name/3251\",[1124,77.243]],[\"comment/3251\",[]],[\"name/3252\",[1125,77.243]],[\"comment/3252\",[]],[\"name/3253\",[1126,62.58]],[\"comment/3253\",[]],[\"name/3254\",[273,61.149]],[\"comment/3254\",[]],[\"name/3255\",[1127,77.243]],[\"comment/3255\",[]],[\"name/3256\",[1128,68.77]],[\"comment/3256\",[]],[\"name/3257\",[115,30.961]],[\"comment/3257\",[]],[\"name/3258\",[1129,77.243]],[\"comment/3258\",[]],[\"name/3259\",[740,68.77]],[\"comment/3259\",[]],[\"name/3260\",[1126,62.58]],[\"comment/3260\",[]],[\"name/3261\",[273,61.149]],[\"comment/3261\",[]],[\"name/3262\",[1130,77.243]],[\"comment/3262\",[]],[\"name/3263\",[1126,62.58]],[\"comment/3263\",[]],[\"name/3264\",[273,61.149]],[\"comment/3264\",[]],[\"name/3265\",[1131,77.243]],[\"comment/3265\",[]],[\"name/3266\",[1126,62.58]],[\"comment/3266\",[]],[\"name/3267\",[273,61.149]],[\"comment/3267\",[]],[\"name/3268\",[1132,77.243]],[\"comment/3268\",[]],[\"name/3269\",[1126,62.58]],[\"comment/3269\",[]],[\"name/3270\",[273,61.149]],[\"comment/3270\",[]],[\"name/3271\",[1133,77.243]],[\"comment/3271\",[]],[\"name/3272\",[1126,62.58]],[\"comment/3272\",[]],[\"name/3273\",[273,61.149]],[\"comment/3273\",[]],[\"name/3274\",[268,59.897]],[\"comment/3274\",[]],[\"name/3275\",[1,24.344]],[\"comment/3275\",[]],[\"name/3276\",[167,64.25]],[\"comment/3276\",[]],[\"name/3277\",[1128,68.77]],[\"comment/3277\",[]],[\"name/3278\",[1134,77.243]],[\"comment/3278\",[]],[\"name/3279\",[1135,77.243]],[\"comment/3279\",[]],[\"name/3280\",[1136,77.243]],[\"comment/3280\",[]],[\"name/3281\",[1137,77.243]],[\"comment/3281\",[]],[\"name/3282\",[286,72.135]],[\"comment/3282\",[]],[\"name/3283\",[1128,68.77]],[\"comment/3283\",[]],[\"name/3284\",[1138,77.243]],[\"comment/3284\",[]],[\"name/3285\",[1139,77.243]],[\"comment/3285\",[]],[\"name/3286\",[1140,77.243]],[\"comment/3286\",[]],[\"name/3287\",[375,72.135]],[\"comment/3287\",[]],[\"name/3288\",[1141,77.243]],[\"comment/3288\",[]],[\"name/3289\",[1076,72.135]],[\"comment/3289\",[]],[\"name/3290\",[1142,77.243]],[\"comment/3290\",[]],[\"name/3291\",[1143,77.243]],[\"comment/3291\",[]],[\"name/3292\",[317,64.25]],[\"comment/3292\",[]],[\"name/3293\",[1144,77.243]],[\"comment/3293\",[]],[\"name/3294\",[1145,77.243]],[\"comment/3294\",[]],[\"name/3295\",[1146,77.243]],[\"comment/3295\",[]],[\"name/3296\",[1147,77.243]],[\"comment/3296\",[]],[\"name/3297\",[1148,77.243]],[\"comment/3297\",[]],[\"name/3298\",[1149,77.243]],[\"comment/3298\",[]],[\"name/3299\",[1150,77.243]],[\"comment/3299\",[]],[\"name/3300\",[1151,77.243]],[\"comment/3300\",[]],[\"name/3301\",[1152,77.243]],[\"comment/3301\",[]],[\"name/3302\",[1153,77.243]],[\"comment/3302\",[]],[\"name/3303\",[1154,77.243]],[\"comment/3303\",[]],[\"name/3304\",[1155,77.243]],[\"comment/3304\",[]],[\"name/3305\",[1156,77.243]],[\"comment/3305\",[]],[\"name/3306\",[1157,77.243]],[\"comment/3306\",[]],[\"name/3307\",[1158,77.243]],[\"comment/3307\",[]],[\"name/3308\",[115,30.961]],[\"comment/3308\",[]],[\"name/3309\",[577,68.77]],[\"comment/3309\",[]],[\"name/3310\",[578,68.77]],[\"comment/3310\",[]],[\"name/3311\",[1159,77.243]],[\"comment/3311\",[]],[\"name/3312\",[1160,77.243]],[\"comment/3312\",[]],[\"name/3313\",[1161,77.243]],[\"comment/3313\",[]],[\"name/3314\",[1162,77.243]],[\"comment/3314\",[]],[\"name/3315\",[1163,77.243]],[\"comment/3315\",[]],[\"name/3316\",[1164,77.243]],[\"comment/3316\",[]],[\"name/3317\",[1165,77.243]],[\"comment/3317\",[]],[\"name/3318\",[1166,77.243]],[\"comment/3318\",[]],[\"name/3319\",[1167,77.243]],[\"comment/3319\",[]],[\"name/3320\",[1168,77.243]],[\"comment/3320\",[]],[\"name/3321\",[1169,77.243]],[\"comment/3321\",[]],[\"name/3322\",[1170,77.243]],[\"comment/3322\",[]],[\"name/3323\",[1171,77.243]],[\"comment/3323\",[]],[\"name/3324\",[1172,77.243]],[\"comment/3324\",[]],[\"name/3325\",[1173,77.243]],[\"comment/3325\",[]],[\"name/3326\",[1,24.344]],[\"comment/3326\",[]],[\"name/3327\",[384,72.135]],[\"comment/3327\",[]],[\"name/3328\",[1174,77.243]],[\"comment/3328\",[]],[\"name/3329\",[1175,77.243]],[\"comment/3329\",[]],[\"name/3330\",[1176,77.243]],[\"comment/3330\",[]],[\"name/3331\",[1,24.344]],[\"comment/3331\",[]],[\"name/3332\",[1177,77.243]],[\"comment/3332\",[]],[\"name/3333\",[1178,77.243]],[\"comment/3333\",[]],[\"name/3334\",[1179,77.243]],[\"comment/3334\",[]],[\"name/3335\",[1180,77.243]],[\"comment/3335\",[]],[\"name/3336\",[1181,77.243]],[\"comment/3336\",[]],[\"name/3337\",[1182,77.243]],[\"comment/3337\",[]],[\"name/3338\",[1183,77.243]],[\"comment/3338\",[]],[\"name/3339\",[1184,77.243]],[\"comment/3339\",[]],[\"name/3340\",[1185,77.243]],[\"comment/3340\",[]],[\"name/3341\",[1186,77.243]],[\"comment/3341\",[]],[\"name/3342\",[1187,77.243]],[\"comment/3342\",[]],[\"name/3343\",[1188,77.243]],[\"comment/3343\",[]],[\"name/3344\",[1189,77.243]],[\"comment/3344\",[]],[\"name/3345\",[1190,77.243]],[\"comment/3345\",[]],[\"name/3346\",[115,30.961]],[\"comment/3346\",[]],[\"name/3347\",[1191,77.243]],[\"comment/3347\",[]],[\"name/3348\",[115,30.961]],[\"comment/3348\",[]],[\"name/3349\",[1192,77.243]],[\"comment/3349\",[]],[\"name/3350\",[1193,77.243]],[\"comment/3350\",[]],[\"name/3351\",[1194,77.243]],[\"comment/3351\",[]],[\"name/3352\",[1195,77.243]],[\"comment/3352\",[]],[\"name/3353\",[1196,77.243]],[\"comment/3353\",[]],[\"name/3354\",[1197,77.243]],[\"comment/3354\",[]],[\"name/3355\",[1198,77.243]],[\"comment/3355\",[]],[\"name/3356\",[1199,77.243]],[\"comment/3356\",[]],[\"name/3357\",[1200,77.243]],[\"comment/3357\",[]],[\"name/3358\",[1201,77.243]],[\"comment/3358\",[]],[\"name/3359\",[1202,77.243]],[\"comment/3359\",[]],[\"name/3360\",[1203,77.243]],[\"comment/3360\",[]],[\"name/3361\",[1204,77.243]],[\"comment/3361\",[]],[\"name/3362\",[1205,77.243]],[\"comment/3362\",[]],[\"name/3363\",[26,68.77]],[\"comment/3363\",[]],[\"name/3364\",[1206,77.243]],[\"comment/3364\",[]],[\"name/3365\",[231,68.77]],[\"comment/3365\",[]],[\"name/3366\",[1207,77.243]],[\"comment/3366\",[]],[\"name/3367\",[1208,77.243]],[\"comment/3367\",[]],[\"name/3368\",[1209,77.243]],[\"comment/3368\",[]],[\"name/3369\",[1210,77.243]],[\"comment/3369\",[]],[\"name/3370\",[1211,77.243]],[\"comment/3370\",[]],[\"name/3371\",[1212,77.243]],[\"comment/3371\",[]],[\"name/3372\",[1213,77.243]],[\"comment/3372\",[]],[\"name/3373\",[1214,77.243]],[\"comment/3373\",[]],[\"name/3374\",[1215,77.243]],[\"comment/3374\",[]],[\"name/3375\",[1216,77.243]],[\"comment/3375\",[]],[\"name/3376\",[1217,77.243]],[\"comment/3376\",[]],[\"name/3377\",[1218,77.243]],[\"comment/3377\",[]],[\"name/3378\",[1219,77.243]],[\"comment/3378\",[]],[\"name/3379\",[1220,77.243]],[\"comment/3379\",[]],[\"name/3380\",[1221,77.243]],[\"comment/3380\",[]],[\"name/3381\",[1222,77.243]],[\"comment/3381\",[]],[\"name/3382\",[1223,77.243]],[\"comment/3382\",[]],[\"name/3383\",[1224,77.243]],[\"comment/3383\",[]],[\"name/3384\",[1225,77.243]],[\"comment/3384\",[]],[\"name/3385\",[1226,77.243]],[\"comment/3385\",[]],[\"name/3386\",[1227,77.243]],[\"comment/3386\",[]],[\"name/3387\",[1228,77.243]],[\"comment/3387\",[]],[\"name/3388\",[1229,77.243]],[\"comment/3388\",[]],[\"name/3389\",[1230,77.243]],[\"comment/3389\",[]],[\"name/3390\",[1231,77.243]],[\"comment/3390\",[]],[\"name/3391\",[1232,77.243]],[\"comment/3391\",[]],[\"name/3392\",[1233,77.243]],[\"comment/3392\",[]]],\"invertedIndex\":[[\"__type\",{\"_index\":115,\"name\":{\"262\":{},\"264\":{},\"266\":{},\"268\":{},\"271\":{},\"273\":{},\"275\":{},\"277\":{},\"279\":{},\"281\":{},\"283\":{},\"285\":{},\"347\":{},\"368\":{},\"586\":{},\"735\":{},\"737\":{},\"808\":{},\"921\":{},\"923\":{},\"925\":{},\"927\":{},\"929\":{},\"931\":{},\"933\":{},\"935\":{},\"937\":{},\"939\":{},\"970\":{},\"974\":{},\"1039\":{},\"1136\":{},\"1231\":{},\"1400\":{},\"1452\":{},\"1455\":{},\"1457\":{},\"1459\":{},\"1461\":{},\"1463\":{},\"1465\":{},\"1467\":{},\"1490\":{},\"1559\":{},\"1563\":{},\"1566\":{},\"1572\":{},\"1576\":{},\"1637\":{},\"1682\":{},\"1724\":{},\"1779\":{},\"1781\":{},\"1783\":{},\"1785\":{},\"1787\":{},\"1789\":{},\"1791\":{},\"1793\":{},\"1813\":{},\"1815\":{},\"1817\":{},\"1819\":{},\"1821\":{},\"1823\":{},\"1825\":{},\"1827\":{},\"1867\":{},\"1908\":{},\"2114\":{},\"2116\":{},\"2118\":{},\"2120\":{},\"2150\":{},\"2152\":{},\"2154\":{},\"2156\":{},\"2158\":{},\"2168\":{},\"2186\":{},\"2239\":{},\"2241\":{},\"2244\":{},\"2271\":{},\"2322\":{},\"2463\":{},\"2465\":{},\"2467\":{},\"2469\":{},\"2478\":{},\"2480\":{},\"2482\":{},\"2484\":{},\"2486\":{},\"2488\":{},\"2522\":{},\"2524\":{},\"2640\":{},\"2644\":{},\"2646\":{},\"2648\":{},\"2650\":{},\"2652\":{},\"2654\":{},\"2669\":{},\"2680\":{},\"2694\":{},\"2705\":{},\"2721\":{},\"2732\":{},\"2740\":{},\"2751\":{},\"2763\":{},\"2775\":{},\"2786\":{},\"2797\":{},\"2807\":{},\"2819\":{},\"2835\":{},\"2846\":{},\"2950\":{},\"2952\":{},\"2954\":{},\"2956\":{},\"2976\":{},\"2978\":{},\"2993\":{},\"3029\":{},\"3031\":{},\"3050\":{},\"3060\":{},\"3062\":{},\"3080\":{},\"3135\":{},\"3137\":{},\"3142\":{},\"3144\":{},\"3146\":{},\"3148\":{},\"3150\":{},\"3152\":{},\"3154\":{},\"3156\":{},\"3158\":{},\"3160\":{},\"3162\":{},\"3164\":{},\"3227\":{},\"3236\":{},\"3257\":{},\"3308\":{},\"3346\":{},\"3348\":{}},\"comment\":{}}],[\"absolutefilepath\",{\"_index\":1147,\"name\":{\"3296\":{}},\"comment\":{}}],[\"absolutepathinteractionroute\",{\"_index\":404,\"name\":{\"1033\":{}},\"comment\":{}}],[\"accept\",{\"_index\":1127,\"name\":{\"3255\":{}},\"comment\":{}}],[\"acceptcharset\",{\"_index\":1130,\"name\":{\"3262\":{}},\"comment\":{}}],[\"acceptdatetime\",{\"_index\":1133,\"name\":{\"3271\":{}},\"comment\":{}}],[\"acceptencoding\",{\"_index\":1131,\"name\":{\"3265\":{}},\"comment\":{}}],[\"acceptheader\",{\"_index\":1125,\"name\":{\"3252\":{}},\"comment\":{}}],[\"acceptlanguage\",{\"_index\":1132,\"name\":{\"3268\":{}},\"comment\":{}}],[\"acceptpreferenceparser\",{\"_index\":176,\"name\":{\"459\":{}},\"comment\":{}}],[\"accepttypes\",{\"_index\":207,\"name\":{\"585\":{}},\"comment\":{}}],[\"accesschecker\",{\"_index\":24,\"name\":{\"52\":{},\"250\":{}},\"comment\":{}}],[\"accesscheckerargs\",{\"_index\":25,\"name\":{\"57\":{}},\"comment\":{}}],[\"accessmap\",{\"_index\":54,\"name\":{\"129\":{}},\"comment\":{}}],[\"accessmode\",{\"_index\":48,\"name\":{\"123\":{}},\"comment\":{}}],[\"accessor\",{\"_index\":668,\"name\":{\"1856\":{},\"1883\":{},\"1927\":{},\"2389\":{},\"2528\":{}},\"comment\":{}}],[\"accountpayload\",{\"_index\":360,\"name\":{\"940\":{}},\"comment\":{}}],[\"accountsettings\",{\"_index\":349,\"name\":{\"915\":{}},\"comment\":{}}],[\"accountstore\",{\"_index\":79,\"name\":{\"175\":{},\"831\":{},\"838\":{},\"856\":{},\"863\":{},\"868\":{},\"875\":{},\"889\":{},\"908\":{},\"919\":{},\"1000\":{},\"1027\":{}},\"comment\":{}}],[\"acl\",{\"_index\":26,\"name\":{\"58\":{},\"3228\":{},\"3363\":{}},\"comment\":{}}],[\"aclmode\",{\"_index\":35,\"name\":{\"80\":{}},\"comment\":{}}],[\"aclpermission\",{\"_index\":37,\"name\":{\"82\":{}},\"comment\":{}}],[\"aclstore\",{\"_index\":106,\"name\":{\"248\":{}},\"comment\":{}}],[\"aclstrategy\",{\"_index\":80,\"name\":{\"176\":{},\"237\":{},\"246\":{}},\"comment\":{}}],[\"acltopermission\",{\"_index\":228,\"name\":{\"644\":{}},\"comment\":{}}],[\"acquire\",{\"_index\":1013,\"name\":{\"2994\":{},\"3024\":{},\"3053\":{},\"3059\":{}},\"comment\":{}}],[\"adapterfactory\",{\"_index\":293,\"name\":{\"771\":{},\"784\":{},\"1134\":{}},\"comment\":{}}],[\"add\",{\"_index\":257,\"name\":{\"720\":{},\"3114\":{},\"3138\":{},\"3145\":{},\"3173\":{}},\"comment\":{}}],[\"addactivitymetadata\",{\"_index\":909,\"name\":{\"2557\":{}},\"comment\":{}}],[\"addcontainerpermissions\",{\"_index\":85,\"name\":{\"190\":{}},\"comment\":{}}],[\"addgeneratedresources\",{\"_index\":571,\"name\":{\"1560\":{}},\"comment\":{}}],[\"addheader\",{\"_index\":1119,\"name\":{\"3246\":{}},\"comment\":{}}],[\"addmetadata\",{\"_index\":121,\"name\":{\"274\":{},\"299\":{},\"332\":{}},\"comment\":{}}],[\"addposixmetadata\",{\"_index\":664,\"name\":{\"1847\":{}},\"comment\":{}}],[\"addquad\",{\"_index\":253,\"name\":{\"716\":{}},\"comment\":{}}],[\"addquads\",{\"_index\":254,\"name\":{\"717\":{}},\"comment\":{}}],[\"addresource\",{\"_index\":876,\"name\":{\"2481\":{},\"2494\":{},\"2534\":{},\"2566\":{},\"2578\":{},\"2591\":{},\"2601\":{},\"2612\":{},\"2617\":{},\"2632\":{},\"2647\":{},\"2660\":{}},\"comment\":{}}],[\"addresourcemetadata\",{\"_index\":1177,\"name\":{\"3332\":{}},\"comment\":{}}],[\"address\",{\"_index\":965,\"name\":{\"2823\":{}},\"comment\":{}}],[\"addtemplatemetadata\",{\"_index\":1179,\"name\":{\"3334\":{}},\"comment\":{}}],[\"addtometadata\",{\"_index\":171,\"name\":{\"440\":{}},\"comment\":{}}],[\"agent\",{\"_index\":11,\"name\":{\"11\":{}},\"comment\":{}}],[\"agentaccesschecker\",{\"_index\":28,\"name\":{\"61\":{}},\"comment\":{}}],[\"agentclassaccesschecker\",{\"_index\":29,\"name\":{\"66\":{}},\"comment\":{}}],[\"agentgroupaccesschecker\",{\"_index\":30,\"name\":{\"71\":{}},\"comment\":{}}],[\"algebra\",{\"_index\":284,\"name\":{\"750\":{}},\"comment\":{}}],[\"allcanhandle\",{\"_index\":20,\"name\":{\"37\":{},\"231\":{},\"2926\":{}},\"comment\":{}}],[\"allfulfilled\",{\"_index\":1169,\"name\":{\"3321\":{}},\"comment\":{}}],[\"allmethods\",{\"_index\":640,\"name\":{\"1772\":{}},\"comment\":{}}],[\"allowacceptheaderwriter\",{\"_index\":205,\"name\":{\"582\":{}},\"comment\":{}}],[\"allowedmethods\",{\"_index\":637,\"name\":{\"1764\":{},\"1771\":{}},\"comment\":{}}],[\"allowedpathnames\",{\"_index\":638,\"name\":{\"1765\":{}},\"comment\":{}}],[\"allowedpathnamesregex\",{\"_index\":641,\"name\":{\"1773\":{}},\"comment\":{}}],[\"allowlist\",{\"_index\":169,\"name\":{\"438\":{}},\"comment\":{}}],[\"allstaticreader\",{\"_index\":66,\"name\":{\"146\":{}},\"comment\":{}}],[\"amount\",{\"_index\":869,\"name\":{\"2459\":{}},\"comment\":{}}],[\"app\",{\"_index\":496,\"name\":{\"1336\":{}},\"comment\":{}}],[\"append\",{\"_index\":50,\"name\":{\"125\":{}},\"comment\":{}}],[\"application_json\",{\"_index\":1091,\"name\":{\"3215\":{}},\"comment\":{}}],[\"application_octet_stream\",{\"_index\":1092,\"name\":{\"3216\":{}},\"comment\":{}}],[\"application_sparql_update\",{\"_index\":1093,\"name\":{\"3217\":{}},\"comment\":{}}],[\"application_x_www_form_urlencoded\",{\"_index\":1094,\"name\":{\"3218\":{}},\"comment\":{}}],[\"applyconditions\",{\"_index\":819,\"name\":{\"2319\":{}},\"comment\":{}}],[\"applyfilters\",{\"_index\":667,\"name\":{\"1855\":{}},\"comment\":{}}],[\"applyhash\",{\"_index\":768,\"name\":{\"2147\":{}},\"comment\":{}}],[\"applytemplate\",{\"_index\":1083,\"name\":{\"3196\":{},\"3201\":{}},\"comment\":{}}],[\"apprunner\",{\"_index\":499,\"name\":{\"1343\":{}},\"comment\":{}}],[\"as\",{\"_index\":1206,\"name\":{\"3364\":{}},\"comment\":{}}],[\"asmap\",{\"_index\":1063,\"name\":{\"3118\":{},\"3149\":{},\"3177\":{}},\"comment\":{}}],[\"asserterror\",{\"_index\":941,\"name\":{\"2688\":{}},\"comment\":{}}],[\"assertpassword\",{\"_index\":403,\"name\":{\"1032\":{}},\"comment\":{}}],[\"assetpathextractor\",{\"_index\":488,\"name\":{\"1307\":{}},\"comment\":{}}],[\"asynchandler\",{\"_index\":972,\"name\":{\"2853\":{}},\"comment\":{}}],[\"asynctransformoptions\",{\"_index\":1189,\"name\":{\"3344\":{}},\"comment\":{}}],[\"atomicdataaccessor\",{\"_index\":642,\"name\":{\"1777\":{}},\"comment\":{}}],[\"atomicfiledataaccessor\",{\"_index\":650,\"name\":{\"1794\":{}},\"comment\":{}}],[\"atomicresourcestore\",{\"_index\":873,\"name\":{\"2476\":{}},\"comment\":{}}],[\"attemptsettings\",{\"_index\":1008,\"name\":{\"2988\":{},\"3043\":{}},\"comment\":{}}],[\"auth\",{\"_index\":231,\"name\":{\"650\":{},\"973\":{},\"3365\":{}},\"comment\":{}}],[\"authenticate\",{\"_index\":352,\"name\":{\"920\":{},\"958\":{}},\"comment\":{}}],[\"authorizer\",{\"_index\":72,\"name\":{\"157\":{},\"1642\":{},\"1650\":{}},\"comment\":{}}],[\"authorizerinput\",{\"_index\":69,\"name\":{\"153\":{}},\"comment\":{}}],[\"authorizinghttphandler\",{\"_index\":597,\"name\":{\"1644\":{}},\"comment\":{}}],[\"authorizinghttphandlerargs\",{\"_index\":596,\"name\":{\"1638\":{}},\"comment\":{}}],[\"auxiliaryidentifierstrategy\",{\"_index\":113,\"name\":{\"260\":{}},\"comment\":{}}],[\"auxiliarylinkmetadatawriter\",{\"_index\":216,\"name\":{\"598\":{}},\"comment\":{}}],[\"auxiliaryreader\",{\"_index\":73,\"name\":{\"162\":{}},\"comment\":{}}],[\"auxiliarystrategy\",{\"_index\":75,\"name\":{\"166\":{},\"269\":{},\"601\":{},\"2530\":{},\"2575\":{}},\"comment\":{}}],[\"availablepermissions\",{\"_index\":71,\"name\":{\"156\":{},\"760\":{}},\"comment\":{}}],[\"badrequesthttperror\",{\"_index\":933,\"name\":{\"2665\":{}},\"comment\":{}}],[\"base\",{\"_index\":580,\"name\":{\"1582\":{},\"2379\":{},\"2435\":{}},\"comment\":{}}],[\"baseaccountstore\",{\"_index\":366,\"name\":{\"949\":{}},\"comment\":{}}],[\"basecomponentsjsfactory\",{\"_index\":567,\"name\":{\"1552\":{}},\"comment\":{}}],[\"baseemailsender\",{\"_index\":380,\"name\":{\"978\":{}},\"comment\":{}}],[\"basefileidentifiermapper\",{\"_index\":779,\"name\":{\"2190\":{}},\"comment\":{}}],[\"basehttpserverfactory\",{\"_index\":603,\"name\":{\"1662\":{}},\"comment\":{}}],[\"basehttpserveroptions\",{\"_index\":598,\"name\":{\"1655\":{}},\"comment\":{}}],[\"baseidentifierstrategy\",{\"_index\":995,\"name\":{\"2942\":{}},\"comment\":{}}],[\"baseinteractionhandler\",{\"_index\":410,\"name\":{\"1050\":{}},\"comment\":{}}],[\"baselogger\",{\"_index\":543,\"name\":{\"1468\":{}},\"comment\":{}}],[\"baseparts\",{\"_index\":576,\"name\":{\"1575\":{},\"2270\":{}},\"comment\":{}}],[\"basepath\",{\"_index\":753,\"name\":{\"2102\":{}},\"comment\":{}}],[\"baserequesturi\",{\"_index\":780,\"name\":{\"2193\":{},\"2217\":{},\"2255\":{},\"2282\":{}},\"comment\":{}}],[\"baseresourcestore\",{\"_index\":879,\"name\":{\"2489\":{}},\"comment\":{}}],[\"baseserverfactory\",{\"_index\":621,\"name\":{\"1718\":{}},\"comment\":{}}],[\"basestore\",{\"_index\":845,\"name\":{\"2407\":{}},\"comment\":{}}],[\"basesubdomain\",{\"_index\":808,\"name\":{\"2268\":{}},\"comment\":{}}],[\"basetypedrepresentationconverter\",{\"_index\":693,\"name\":{\"1934\":{}},\"comment\":{}}],[\"baseurl\",{\"_index\":88,\"name\":{\"197\":{},\"772\":{},\"785\":{},\"996\":{},\"1023\":{},\"1360\":{},\"1381\":{},\"1591\":{},\"1761\":{},\"1768\":{},\"2959\":{},\"2967\":{},\"3197\":{},\"3202\":{}},\"comment\":{}}],[\"baseurlextractor\",{\"_index\":490,\"name\":{\"1314\":{}},\"comment\":{}}],[\"baseurlhandler\",{\"_index\":558,\"name\":{\"1525\":{}},\"comment\":{}}],[\"baseurlrouterrule\",{\"_index\":844,\"name\":{\"2405\":{}},\"comment\":{}}],[\"baseurlverifier\",{\"_index\":511,\"name\":{\"1358\":{}},\"comment\":{}}],[\"basicconditions\",{\"_index\":885,\"name\":{\"2502\":{}},\"comment\":{}}],[\"basicconditionsoptions\",{\"_index\":880,\"name\":{\"2497\":{}},\"comment\":{}}],[\"basicconditionsparser\",{\"_index\":155,\"name\":{\"388\":{}},\"comment\":{}}],[\"basicrepresentation\",{\"_index\":240,\"name\":{\"686\":{}},\"comment\":{}}],[\"basicrequestparser\",{\"_index\":179,\"name\":{\"475\":{}},\"comment\":{}}],[\"basicrequestparserargs\",{\"_index\":178,\"name\":{\"469\":{}},\"comment\":{}}],[\"basicresponsewriter\",{\"_index\":238,\"name\":{\"674\":{}},\"comment\":{}}],[\"bearerwebidextractor\",{\"_index\":0,\"name\":{\"0\":{}},\"comment\":{}}],[\"binary\",{\"_index\":241,\"name\":{\"690\":{},\"695\":{},\"700\":{},\"753\":{}},\"comment\":{}}],[\"body\",{\"_index\":288,\"name\":{\"761\":{},\"848\":{}},\"comment\":{}}],[\"bodyparser\",{\"_index\":144,\"name\":{\"358\":{},\"474\":{},\"481\":{}},\"comment\":{}}],[\"bodyparserargs\",{\"_index\":141,\"name\":{\"355\":{}},\"comment\":{}}],[\"booleanhandler\",{\"_index\":973,\"name\":{\"2858\":{}},\"comment\":{}}],[\"buildmanager\",{\"_index\":568,\"name\":{\"1555\":{}},\"comment\":{}}],[\"by\",{\"_index\":1139,\"name\":{\"3285\":{}},\"comment\":{}}],[\"cache\",{\"_index\":31,\"name\":{\"73\":{},\"2513\":{}},\"comment\":{}}],[\"cachedresourceset\",{\"_index\":888,\"name\":{\"2510\":{}},\"comment\":{}}],[\"calculatechunksize\",{\"_index\":865,\"name\":{\"2454\":{},\"2466\":{}},\"comment\":{}}],[\"canexecute\",{\"_index\":985,\"name\":{\"2899\":{}},\"comment\":{}}],[\"canhandle\",{\"_index\":4,\"name\":{\"4\":{},\"15\":{},\"23\":{},\"29\":{},\"35\":{},\"44\":{},\"49\":{},\"54\":{},\"64\":{},\"69\":{},\"78\":{},\"87\":{},\"95\":{},\"103\":{},\"108\":{},\"114\":{},\"120\":{},\"136\":{},\"151\":{},\"159\":{},\"170\":{},\"180\":{},\"192\":{},\"202\":{},\"213\":{},\"220\":{},\"229\":{},\"241\":{},\"258\":{},\"306\":{},\"310\":{},\"317\":{},\"352\":{},\"360\":{},\"365\":{},\"380\":{},\"385\":{},\"394\":{},\"398\":{},\"409\":{},\"413\":{},\"420\":{},\"425\":{},\"432\":{},\"443\":{},\"451\":{},\"457\":{},\"462\":{},\"466\":{},\"483\":{},\"487\":{},\"495\":{},\"501\":{},\"506\":{},\"512\":{},\"518\":{},\"525\":{},\"532\":{},\"539\":{},\"547\":{},\"555\":{},\"566\":{},\"571\":{},\"580\":{},\"596\":{},\"605\":{},\"611\":{},\"616\":{},\"623\":{},\"629\":{},\"633\":{},\"639\":{},\"646\":{},\"652\":{},\"678\":{},\"683\":{},\"768\":{},\"834\":{},\"840\":{},\"851\":{},\"858\":{},\"865\":{},\"882\":{},\"890\":{},\"901\":{},\"911\":{},\"983\":{},\"992\":{},\"1044\":{},\"1053\":{},\"1061\":{},\"1073\":{},\"1080\":{},\"1087\":{},\"1096\":{},\"1102\":{},\"1109\":{},\"1115\":{},\"1119\":{},\"1132\":{},\"1202\":{},\"1209\":{},\"1227\":{},\"1236\":{},\"1240\":{},\"1254\":{},\"1275\":{},\"1279\":{},\"1298\":{},\"1305\":{},\"1312\":{},\"1318\":{},\"1322\":{},\"1329\":{},\"1333\":{},\"1365\":{},\"1378\":{},\"1396\":{},\"1405\":{},\"1409\":{},\"1416\":{},\"1423\":{},\"1431\":{},\"1440\":{},\"1528\":{},\"1534\":{},\"1538\":{},\"1550\":{},\"1653\":{},\"1674\":{},\"1689\":{},\"1709\":{},\"1713\":{},\"1726\":{},\"1732\":{},\"1742\":{},\"1750\":{},\"1756\":{},\"1774\":{},\"1778\":{},\"1800\":{},\"1812\":{},\"1832\":{},\"1857\":{},\"1869\":{},\"1886\":{},\"1899\":{},\"1928\":{},\"1939\":{},\"1946\":{},\"1969\":{},\"1977\":{},\"1990\":{},\"2006\":{},\"2017\":{},\"2025\":{},\"2043\":{},\"2051\":{},\"2060\":{},\"2065\":{},\"2074\":{},\"2083\":{},\"2091\":{},\"2097\":{},\"2299\":{},\"2308\":{},\"2316\":{},\"2328\":{},\"2335\":{},\"2344\":{},\"2353\":{},\"2361\":{},\"2367\":{},\"2411\":{},\"2422\":{},\"2437\":{},\"2444\":{},\"2474\":{},\"2855\":{},\"2862\":{},\"2872\":{},\"2882\":{},\"2889\":{},\"2897\":{},\"2905\":{},\"2911\":{},\"2917\":{},\"2924\":{},\"2932\":{},\"2939\":{}},\"comment\":{}}],[\"captureerrorresponses\",{\"_index\":304,\"name\":{\"797\":{}},\"comment\":{}}],[\"cause\",{\"_index\":936,\"name\":{\"2672\":{},\"2683\":{},\"2697\":{},\"2709\":{},\"2716\":{},\"2724\":{},\"2743\":{},\"2756\":{},\"2767\":{},\"2778\":{},\"2789\":{},\"2800\":{},\"2811\":{},\"2838\":{},\"2849\":{}},\"comment\":{}}],[\"cert\",{\"_index\":600,\"name\":{\"1659\":{}},\"comment\":{}}],[\"chainedconverter\",{\"_index\":697,\"name\":{\"1942\":{}},\"comment\":{}}],[\"chainedengines\",{\"_index\":1079,\"name\":{\"3191\":{}},\"comment\":{}}],[\"chainedtemplateengine\",{\"_index\":1077,\"name\":{\"3188\":{}},\"comment\":{}}],[\"changemap\",{\"_index\":929,\"name\":{\"2641\":{}},\"comment\":{}}],[\"changepassword\",{\"_index\":353,\"name\":{\"926\":{},\"961\":{}},\"comment\":{}}],[\"charset\",{\"_index\":276,\"name\":{\"742\":{}},\"comment\":{}}],[\"checkcondition\",{\"_index\":977,\"name\":{\"2875\":{}},\"comment\":{}}],[\"cleanpreferences\",{\"_index\":723,\"name\":{\"1994\":{}},\"comment\":{}}],[\"cleanslug\",{\"_index\":901,\"name\":{\"2549\":{}},\"comment\":{}}],[\"clear\",{\"_index\":1052,\"name\":{\"3085\":{},\"3100\":{},\"3117\":{},\"3176\":{}},\"comment\":{}}],[\"clearlocks\",{\"_index\":1045,\"name\":{\"3057\":{}},\"comment\":{}}],[\"clientcredentials\",{\"_index\":314,\"name\":{\"809\":{},\"918\":{}},\"comment\":{}}],[\"clientcredentialsadapter\",{\"_index\":316,\"name\":{\"812\":{}},\"comment\":{}}],[\"clientcredentialsadapterfactory\",{\"_index\":325,\"name\":{\"824\":{}},\"comment\":{}}],[\"cliextractor\",{\"_index\":472,\"name\":{\"1277\":{},\"1369\":{}},\"comment\":{}}],[\"clioptions\",{\"_index\":476,\"name\":{\"1287\":{}},\"comment\":{}}],[\"cliresolver\",{\"_index\":512,\"name\":{\"1367\":{}},\"comment\":{}}],[\"clitovariables\",{\"_index\":505,\"name\":{\"1352\":{}},\"comment\":{}}],[\"clonerepresentation\",{\"_index\":1180,\"name\":{\"3335\":{}},\"comment\":{}}],[\"clusterinfo\",{\"_index\":556,\"name\":{\"1522\":{}},\"comment\":{}}],[\"clustermanager\",{\"_index\":450,\"name\":{\"1211\":{},\"1225\":{},\"1340\":{},\"2894\":{}},\"comment\":{}}],[\"clustermode\",{\"_index\":452,\"name\":{\"1215\":{}},\"comment\":{}}],[\"code\",{\"_index\":966,\"name\":{\"2824\":{}},\"comment\":{}}],[\"codetemplatespath\",{\"_index\":739,\"name\":{\"2029\":{},\"2036\":{}},\"comment\":{}}],[\"combine\",{\"_index\":18,\"name\":{\"33\":{},\"225\":{},\"2927\":{}},\"comment\":{}}],[\"combinedshorthandresolver\",{\"_index\":493,\"name\":{\"1325\":{}},\"comment\":{}}],[\"componentsjsfactory\",{\"_index\":570,\"name\":{\"1557\":{}},\"comment\":{}}],[\"composedauxiliarystrategy\",{\"_index\":123,\"name\":{\"286\":{}},\"comment\":{}}],[\"concat\",{\"_index\":1143,\"name\":{\"3291\":{}},\"comment\":{}}],[\"conditionalhandler\",{\"_index\":974,\"name\":{\"2865\":{}},\"comment\":{}}],[\"conditions\",{\"_index\":149,\"name\":{\"371\":{},\"759\":{},\"2516\":{}},\"comment\":{}}],[\"conditionsparser\",{\"_index\":158,\"name\":{\"396\":{},\"473\":{},\"480\":{}},\"comment\":{}}],[\"config\",{\"_index\":299,\"name\":{\"783\":{}},\"comment\":{}}],[\"configfilepath\",{\"_index\":527,\"name\":{\"1429\":{}},\"comment\":{}}],[\"configpodinitializer\",{\"_index\":513,\"name\":{\"1371\":{}},\"comment\":{}}],[\"configpodmanager\",{\"_index\":594,\"name\":{\"1621\":{}},\"comment\":{}}],[\"configstorage\",{\"_index\":515,\"name\":{\"1375\":{},\"1589\":{}},\"comment\":{}}],[\"configtemplatepath\",{\"_index\":582,\"name\":{\"1590\":{}},\"comment\":{}}],[\"configureclaims\",{\"_index\":309,\"name\":{\"802\":{}},\"comment\":{}}],[\"configureerrors\",{\"_index\":312,\"name\":{\"805\":{}},\"comment\":{}}],[\"configureroutes\",{\"_index\":311,\"name\":{\"804\":{}},\"comment\":{}}],[\"conflicthttperror\",{\"_index\":939,\"name\":{\"2676\":{}},\"comment\":{}}],[\"consenthandler\",{\"_index\":412,\"name\":{\"1058\":{}},\"comment\":{}}],[\"constantconverter\",{\"_index\":714,\"name\":{\"1964\":{}},\"comment\":{}}],[\"constantconverteroptions\",{\"_index\":708,\"name\":{\"1958\":{}},\"comment\":{}}],[\"constantmetadatawriter\",{\"_index\":219,\"name\":{\"607\":{}},\"comment\":{}}],[\"constructor\",{\"_index\":1,\"name\":{\"1\":{},\"14\":{},\"19\":{},\"27\":{},\"32\":{},\"40\":{},\"47\":{},\"53\":{},\"62\":{},\"67\":{},\"72\":{},\"84\":{},\"91\":{},\"99\":{},\"107\":{},\"112\":{},\"118\":{},\"134\":{},\"147\":{},\"158\":{},\"163\":{},\"173\":{},\"183\":{},\"195\":{},\"205\":{},\"219\":{},\"224\":{},\"234\":{},\"244\":{},\"287\":{},\"302\":{},\"309\":{},\"314\":{},\"320\":{},\"328\":{},\"340\":{},\"351\":{},\"359\":{},\"364\":{},\"377\":{},\"383\":{},\"389\":{},\"397\":{},\"405\":{},\"412\":{},\"417\":{},\"423\":{},\"428\":{},\"435\":{},\"442\":{},\"447\":{},\"454\":{},\"460\":{},\"465\":{},\"476\":{},\"486\":{},\"494\":{},\"499\":{},\"504\":{},\"510\":{},\"516\":{},\"524\":{},\"529\":{},\"536\":{},\"543\":{},\"551\":{},\"565\":{},\"570\":{},\"575\":{},\"583\":{},\"599\":{},\"608\":{},\"614\":{},\"619\":{},\"626\":{},\"632\":{},\"637\":{},\"642\":{},\"649\":{},\"655\":{},\"660\":{},\"665\":{},\"670\":{},\"675\":{},\"682\":{},\"687\":{},\"708\":{},\"763\":{},\"781\":{},\"813\":{},\"825\":{},\"830\":{},\"837\":{},\"850\":{},\"855\":{},\"862\":{},\"873\":{},\"887\":{},\"897\":{},\"906\":{},\"950\":{},\"979\":{},\"991\":{},\"1021\":{},\"1034\":{},\"1041\":{},\"1048\":{},\"1051\":{},\"1059\":{},\"1070\":{},\"1077\":{},\"1083\":{},\"1095\":{},\"1100\":{},\"1106\":{},\"1112\":{},\"1118\":{},\"1123\":{},\"1138\":{},\"1154\":{},\"1158\":{},\"1169\":{},\"1173\":{},\"1187\":{},\"1196\":{},\"1205\":{},\"1212\":{},\"1224\":{},\"1233\":{},\"1239\":{},\"1247\":{},\"1265\":{},\"1278\":{},\"1284\":{},\"1293\":{},\"1301\":{},\"1308\":{},\"1315\":{},\"1321\":{},\"1326\":{},\"1332\":{},\"1337\":{},\"1344\":{},\"1359\":{},\"1368\":{},\"1372\":{},\"1388\":{},\"1402\":{},\"1408\":{},\"1413\":{},\"1419\":{},\"1426\":{},\"1434\":{},\"1443\":{},\"1469\":{},\"1479\":{},\"1497\":{},\"1506\":{},\"1510\":{},\"1520\":{},\"1526\":{},\"1531\":{},\"1537\":{},\"1545\":{},\"1553\":{},\"1574\":{},\"1581\":{},\"1585\":{},\"1601\":{},\"1622\":{},\"1630\":{},\"1645\":{},\"1663\":{},\"1673\":{},\"1688\":{},\"1699\":{},\"1712\":{},\"1717\":{},\"1722\":{},\"1729\":{},\"1735\":{},\"1747\":{},\"1753\":{},\"1767\":{},\"1795\":{},\"1829\":{},\"1851\":{},\"1864\":{},\"1882\":{},\"1893\":{},\"1923\":{},\"1935\":{},\"1943\":{},\"1965\":{},\"1973\":{},\"1987\":{},\"2004\":{},\"2012\":{},\"2020\":{},\"2033\":{},\"2046\":{},\"2054\":{},\"2063\":{},\"2068\":{},\"2077\":{},\"2090\":{},\"2095\":{},\"2101\":{},\"2122\":{},\"2135\":{},\"2160\":{},\"2172\":{},\"2191\":{},\"2209\":{},\"2230\":{},\"2246\":{},\"2267\":{},\"2293\":{},\"2303\":{},\"2312\":{},\"2327\":{},\"2332\":{},\"2343\":{},\"2352\":{},\"2357\":{},\"2364\":{},\"2378\":{},\"2387\":{},\"2398\":{},\"2406\":{},\"2417\":{},\"2425\":{},\"2430\":{},\"2434\":{},\"2443\":{},\"2448\":{},\"2471\":{},\"2490\":{},\"2503\":{},\"2511\":{},\"2526\":{},\"2559\":{},\"2571\":{},\"2587\":{},\"2597\":{},\"2606\":{},\"2616\":{},\"2625\":{},\"2656\":{},\"2670\":{},\"2681\":{},\"2695\":{},\"2706\":{},\"2722\":{},\"2733\":{},\"2741\":{},\"2752\":{},\"2764\":{},\"2776\":{},\"2787\":{},\"2798\":{},\"2808\":{},\"2820\":{},\"2836\":{},\"2847\":{},\"2854\":{},\"2859\":{},\"2866\":{},\"2879\":{},\"2887\":{},\"2893\":{},\"2902\":{},\"2908\":{},\"2914\":{},\"2920\":{},\"2930\":{},\"2936\":{},\"2943\":{},\"2958\":{},\"2966\":{},\"2980\":{},\"2986\":{},\"3006\":{},\"3020\":{},\"3038\":{},\"3064\":{},\"3072\":{},\"3077\":{},\"3095\":{},\"3109\":{},\"3166\":{},\"3189\":{},\"3195\":{},\"3200\":{},\"3275\":{},\"3326\":{},\"3331\":{}},\"comment\":{}}],[\"constructtypemap\",{\"_index\":733,\"name\":{\"2008\":{}},\"comment\":{}}],[\"consume\",{\"_index\":322,\"name\":{\"821\":{},\"1152\":{},\"1165\":{},\"1183\":{}},\"comment\":{}}],[\"container\",{\"_index\":709,\"name\":{\"1959\":{},\"2137\":{}},\"comment\":{}}],[\"containerid\",{\"_index\":520,\"name\":{\"1391\":{}},\"comment\":{}}],[\"containerinitializer\",{\"_index\":519,\"name\":{\"1387\":{}},\"comment\":{}}],[\"containerinitializerargs\",{\"_index\":517,\"name\":{\"1380\":{}},\"comment\":{}}],[\"containertotemplateconverter\",{\"_index\":716,\"name\":{\"1972\":{}},\"comment\":{}}],[\"contains\",{\"_index\":999,\"name\":{\"2947\":{},\"2955\":{},\"2964\":{},\"2973\":{}},\"comment\":{}}],[\"content_length\",{\"_index\":1228,\"name\":{\"3387\":{}},\"comment\":{}}],[\"content_length_term\",{\"_index\":1229,\"name\":{\"3388\":{}},\"comment\":{}}],[\"content_type\",{\"_index\":1230,\"name\":{\"3389\":{}},\"comment\":{}}],[\"content_type_term\",{\"_index\":1231,\"name\":{\"3390\":{}},\"comment\":{}}],[\"contentlength\",{\"_index\":270,\"name\":{\"733\":{}},\"comment\":{}}],[\"contentlengthparser\",{\"_index\":162,\"name\":{\"416\":{}},\"comment\":{}}],[\"contenttype\",{\"_index\":268,\"name\":{\"731\":{},\"1967\":{},\"1976\":{},\"2031\":{},\"2038\":{},\"2235\":{},\"2247\":{},\"3274\":{}},\"comment\":{}}],[\"contenttypemap\",{\"_index\":721,\"name\":{\"1988\":{}},\"comment\":{}}],[\"contenttypemetadatawriter\",{\"_index\":221,\"name\":{\"613\":{}},\"comment\":{}}],[\"contenttypeobject\",{\"_index\":269,\"name\":{\"732\":{}},\"comment\":{}}],[\"contenttypeparser\",{\"_index\":163,\"name\":{\"422\":{}},\"comment\":{}}],[\"contenttypereplacer\",{\"_index\":720,\"name\":{\"1986\":{}},\"comment\":{}}],[\"control\",{\"_index\":36,\"name\":{\"81\":{}},\"comment\":{}}],[\"controlhandler\",{\"_index\":416,\"name\":{\"1069\":{}},\"comment\":{}}],[\"controls\",{\"_index\":417,\"name\":{\"1072\":{}},\"comment\":{}}],[\"converter\",{\"_index\":131,\"name\":{\"315\":{},\"552\":{},\"1175\":{},\"1188\":{},\"1193\":{},\"1199\":{},\"1259\":{},\"1268\":{},\"2296\":{},\"2427\":{}},\"comment\":{}}],[\"converters\",{\"_index\":698,\"name\":{\"1945\":{}},\"comment\":{}}],[\"convertingerrorhandler\",{\"_index\":195,\"name\":{\"550\":{}},\"comment\":{}}],[\"convertingpatcher\",{\"_index\":811,\"name\":{\"2292\":{}},\"comment\":{}}],[\"convertingrouterrule\",{\"_index\":850,\"name\":{\"2416\":{}},\"comment\":{}}],[\"convertingstoreentry\",{\"_index\":848,\"name\":{\"2413\":{}},\"comment\":{}}],[\"corshandler\",{\"_index\":622,\"name\":{\"1721\":{},\"1723\":{}},\"comment\":{}}],[\"count\",{\"_index\":1019,\"name\":{\"3002\":{},\"3167\":{}},\"comment\":{}}],[\"create\",{\"_index\":52,\"name\":{\"127\":{},\"922\":{},\"959\":{},\"1347\":{},\"2231\":{},\"2243\":{}},\"comment\":{}}],[\"createaccessparam\",{\"_index\":229,\"name\":{\"645\":{}},\"comment\":{}}],[\"createaggregateerror\",{\"_index\":952,\"name\":{\"2735\":{}},\"comment\":{}}],[\"createapp\",{\"_index\":509,\"name\":{\"1356\":{}},\"comment\":{}}],[\"createcli\",{\"_index\":503,\"name\":{\"1350\":{}},\"comment\":{}}],[\"createcliresolver\",{\"_index\":506,\"name\":{\"1353\":{}},\"comment\":{}}],[\"createcomponentsmanager\",{\"_index\":504,\"name\":{\"1351\":{}},\"comment\":{}}],[\"createcredentialshandler\",{\"_index\":328,\"name\":{\"836\":{}},\"comment\":{}}],[\"createdresponsedescription\",{\"_index\":232,\"name\":{\"654\":{}},\"comment\":{}}],[\"createerrormessage\",{\"_index\":942,\"name\":{\"2689\":{}},\"comment\":{}}],[\"createexpiringrepresentation\",{\"_index\":918,\"name\":{\"2584\":{}},\"comment\":{}}],[\"createlogger\",{\"_index\":533,\"name\":{\"1446\":{},\"1489\":{},\"1508\":{},\"1523\":{}},\"comment\":{}}],[\"createmodesextractor\",{\"_index\":38,\"name\":{\"83\":{}},\"comment\":{}}],[\"createnamespace\",{\"_index\":1201,\"name\":{\"3358\":{}},\"comment\":{}}],[\"createpathmatcher\",{\"_index\":628,\"name\":{\"1740\":{}},\"comment\":{}}],[\"createpermissions\",{\"_index\":68,\"name\":{\"150\":{}},\"comment\":{}}],[\"createpod\",{\"_index\":397,\"name\":{\"1010\":{},\"1019\":{},\"1628\":{},\"1634\":{},\"1636\":{}},\"comment\":{}}],[\"createprovider\",{\"_index\":303,\"name\":{\"796\":{}},\"comment\":{}}],[\"createquotaguard\",{\"_index\":840,\"name\":{\"2385\":{},\"2396\":{},\"2404\":{}},\"comment\":{}}],[\"createrecursivecontainers\",{\"_index\":908,\"name\":{\"2556\":{}},\"comment\":{}}],[\"createredisclient\",{\"_index\":1041,\"name\":{\"3046\":{}},\"comment\":{}}],[\"createresponse\",{\"_index\":198,\"name\":{\"559\":{}},\"comment\":{}}],[\"createroute\",{\"_index\":310,\"name\":{\"803\":{}},\"comment\":{}}],[\"createsafeuri\",{\"_index\":902,\"name\":{\"2550\":{}},\"comment\":{}}],[\"createserveroptions\",{\"_index\":605,\"name\":{\"1668\":{}},\"comment\":{}}],[\"createstorageadapter\",{\"_index\":326,\"name\":{\"827\":{},\"1135\":{},\"1156\":{},\"1171\":{},\"1189\":{}},\"comment\":{}}],[\"createsubdomainregexp\",{\"_index\":1160,\"name\":{\"3312\":{}},\"comment\":{}}],[\"createtermnamespace\",{\"_index\":1203,\"name\":{\"3360\":{}},\"comment\":{}}],[\"createtransports\",{\"_index\":557,\"name\":{\"1524\":{}},\"comment\":{}}],[\"createuri\",{\"_index\":899,\"name\":{\"2547\":{}},\"comment\":{}}],[\"createuriandtermnamespace\",{\"_index\":1204,\"name\":{\"3361\":{}},\"comment\":{}}],[\"createurinamespace\",{\"_index\":1202,\"name\":{\"3359\":{}},\"comment\":{}}],[\"createwebid\",{\"_index\":395,\"name\":{\"1008\":{},\"1017\":{}},\"comment\":{}}],[\"createyargv\",{\"_index\":484,\"name\":{\"1297\":{}},\"comment\":{}}],[\"credential\",{\"_index\":7,\"name\":{\"7\":{},\"60\":{}},\"comment\":{}}],[\"credentialgroup\",{\"_index\":9,\"name\":{\"9\":{}},\"comment\":{}}],[\"credentials\",{\"_index\":22,\"name\":{\"41\":{},\"154\":{},\"216\":{}},\"comment\":{}}],[\"credentialset\",{\"_index\":12,\"name\":{\"12\":{}},\"comment\":{}}],[\"credentialsextractor\",{\"_index\":13,\"name\":{\"13\":{},\"1639\":{},\"1647\":{}},\"comment\":{}}],[\"credentialshandler\",{\"_index\":332,\"name\":{\"849\":{}},\"comment\":{}}],[\"credentialshandlerbody\",{\"_index\":329,\"name\":{\"843\":{}},\"comment\":{}}],[\"credentialshandlerinput\",{\"_index\":331,\"name\":{\"846\":{}},\"comment\":{}}],[\"credentialstorage\",{\"_index\":296,\"name\":{\"775\":{},\"788\":{},\"839\":{},\"857\":{}},\"comment\":{}}],[\"customextensions\",{\"_index\":797,\"name\":{\"2211\":{}},\"comment\":{}}],[\"customoncompromised\",{\"_index\":1017,\"name\":{\"3000\":{}},\"comment\":{}}],[\"customtypes\",{\"_index\":796,\"name\":{\"2210\":{}},\"comment\":{}}],[\"data\",{\"_index\":234,\"name\":{\"658\":{},\"663\":{},\"668\":{},\"673\":{},\"688\":{},\"694\":{},\"699\":{},\"752\":{},\"2161\":{}},\"comment\":{}}],[\"dataaccessor\",{\"_index\":657,\"name\":{\"1811\":{}},\"comment\":{}}],[\"dataaccessorbasedstore\",{\"_index\":890,\"name\":{\"2525\":{}},\"comment\":{}}],[\"datetime\",{\"_index\":277,\"name\":{\"743\":{}},\"comment\":{}}],[\"db\",{\"_index\":1036,\"name\":{\"3036\":{}},\"comment\":{}}],[\"dc\",{\"_index\":1207,\"name\":{\"3366\":{}},\"comment\":{}}],[\"debug\",{\"_index\":541,\"name\":{\"1464\":{},\"1476\":{},\"1486\":{},\"1503\":{},\"1517\":{}},\"comment\":{}}],[\"decodeuripathcomponents\",{\"_index\":1154,\"name\":{\"3303\":{}},\"comment\":{}}],[\"default_custom_types\",{\"_index\":1102,\"name\":{\"3226\":{}},\"comment\":{}}],[\"defaultpath\",{\"_index\":489,\"name\":{\"1310\":{}},\"comment\":{}}],[\"defaultport\",{\"_index\":491,\"name\":{\"1316\":{}},\"comment\":{}}],[\"defaultstore\",{\"_index\":852,\"name\":{\"2419\":{}},\"comment\":{}}],[\"defaulttype\",{\"_index\":814,\"name\":{\"2298\":{}},\"comment\":{}}],[\"defaultvalue\",{\"_index\":487,\"name\":{\"1303\":{}},\"comment\":{}}],[\"delete\",{\"_index\":53,\"name\":{\"128\":{},\"2107\":{},\"2117\":{},\"2129\":{},\"2141\":{},\"2155\":{},\"2165\":{},\"2179\":{},\"3084\":{},\"3099\":{},\"3115\":{},\"3174\":{}},\"comment\":{}}],[\"deleteaccount\",{\"_index\":356,\"name\":{\"932\":{},\"964\":{}},\"comment\":{}}],[\"deletecredentialshandler\",{\"_index\":333,\"name\":{\"854\":{}},\"comment\":{}}],[\"deleteentry\",{\"_index\":1062,\"name\":{\"3116\":{},\"3147\":{},\"3175\":{}},\"comment\":{}}],[\"deleteforgotpasswordrecord\",{\"_index\":359,\"name\":{\"938\":{},\"967\":{}},\"comment\":{}}],[\"deleteoperationhandler\",{\"_index\":185,\"name\":{\"503\":{}},\"comment\":{}}],[\"deleteparentextractor\",{\"_index\":41,\"name\":{\"90\":{}},\"comment\":{}}],[\"deleteresource\",{\"_index\":649,\"name\":{\"1792\":{},\"1806\":{},\"1826\":{},\"1839\":{},\"1862\":{},\"1876\":{},\"1891\":{},\"1906\":{},\"1933\":{},\"2483\":{},\"2495\":{},\"2537\":{},\"2567\":{},\"2580\":{},\"2592\":{},\"2602\":{},\"2613\":{},\"2618\":{},\"2636\":{},\"2649\":{},\"2662\":{}},\"comment\":{}}],[\"deletes\",{\"_index\":147,\"name\":{\"369\":{}},\"comment\":{}}],[\"dest\",{\"_index\":967,\"name\":{\"2825\":{}},\"comment\":{}}],[\"destroy\",{\"_index\":323,\"name\":{\"822\":{},\"1150\":{},\"1166\":{},\"1184\":{}},\"comment\":{}}],[\"details\",{\"_index\":938,\"name\":{\"2674\":{},\"2685\":{},\"2699\":{},\"2711\":{},\"2718\":{},\"2726\":{},\"2745\":{},\"2758\":{},\"2769\":{},\"2780\":{},\"2791\":{},\"2802\":{},\"2813\":{},\"2840\":{},\"2851\":{}},\"comment\":{}}],[\"determinepermissions\",{\"_index\":108,\"name\":{\"253\":{}},\"comment\":{}}],[\"disabledmediaranges\",{\"_index\":713,\"name\":{\"1963\":{}},\"comment\":{}}],[\"distinctkeys\",{\"_index\":1065,\"name\":{\"3122\":{},\"3155\":{},\"3181\":{}},\"comment\":{}}],[\"document\",{\"_index\":710,\"name\":{\"1960\":{}},\"comment\":{}}],[\"documentloader\",{\"_index\":748,\"name\":{\"2078\":{}},\"comment\":{}}],[\"dpopwebidextractor\",{\"_index\":14,\"name\":{\"18\":{}},\"comment\":{}}],[\"dynamicjsontotemplateconverter\",{\"_index\":732,\"name\":{\"2003\":{}},\"comment\":{}}],[\"ejstemplateengine\",{\"_index\":1082,\"name\":{\"3194\":{}},\"comment\":{}}],[\"email\",{\"_index\":330,\"name\":{\"844\":{},\"942\":{},\"946\":{},\"1003\":{},\"1013\":{},\"1619\":{}},\"comment\":{}}],[\"emailargs\",{\"_index\":382,\"name\":{\"985\":{}},\"comment\":{}}],[\"emailconfig\",{\"_index\":374,\"name\":{\"969\":{}},\"comment\":{}}],[\"emailpasswordauthorizer\",{\"_index\":327,\"name\":{\"829\":{}},\"comment\":{}}],[\"emailpassworddata\",{\"_index\":365,\"name\":{\"948\":{}},\"comment\":{}}],[\"emailsender\",{\"_index\":337,\"name\":{\"870\":{},\"877\":{},\"990\":{}},\"comment\":{}}],[\"emailsenderargs\",{\"_index\":373,\"name\":{\"968\":{}},\"comment\":{}}],[\"emitchanged\",{\"_index\":921,\"name\":{\"2595\":{}},\"comment\":{}}],[\"emptymapconstructor\",{\"_index\":1072,\"name\":{\"3134\":{}},\"comment\":{}}],[\"enabledmediaranges\",{\"_index\":712,\"name\":{\"1962\":{}},\"comment\":{}}],[\"encodeuripathcomponents\",{\"_index\":1155,\"name\":{\"3304\":{}},\"comment\":{}}],[\"encoding\",{\"_index\":278,\"name\":{\"744\":{}},\"comment\":{}}],[\"encodingpathstorage\",{\"_index\":752,\"name\":{\"2100\":{}},\"comment\":{}}],[\"endofstream\",{\"_index\":1188,\"name\":{\"3343\":{}},\"comment\":{}}],[\"endpoint\",{\"_index\":677,\"name\":{\"1895\":{}},\"comment\":{}}],[\"engine\",{\"_index\":818,\"name\":{\"2314\":{},\"2366\":{}},\"comment\":{}}],[\"ensureleadingslash\",{\"_index\":1150,\"name\":{\"3299\":{}},\"comment\":{}}],[\"ensuretrailingslash\",{\"_index\":1148,\"name\":{\"3297\":{}},\"comment\":{}}],[\"entries\",{\"_index\":670,\"name\":{\"1868\":{},\"2108\":{},\"2119\":{},\"2130\":{},\"2142\":{},\"2157\":{},\"2166\":{},\"2180\":{},\"3086\":{},\"3101\":{},\"3119\":{},\"3151\":{},\"3178\":{}},\"comment\":{}}],[\"entrysets\",{\"_index\":1064,\"name\":{\"3120\":{},\"3153\":{},\"3179\":{}},\"comment\":{}}],[\"envvarprefix\",{\"_index\":480,\"name\":{\"1291\":{}},\"comment\":{}}],[\"ephemeral\",{\"_index\":168,\"name\":{\"437\":{}},\"comment\":{}}],[\"equalreadwritelocker\",{\"_index\":1005,\"name\":{\"2979\":{}},\"comment\":{}}],[\"errno\",{\"_index\":968,\"name\":{\"2826\":{}},\"comment\":{}}],[\"error\",{\"_index\":201,\"name\":{\"562\":{},\"1456\":{},\"1472\":{},\"1482\":{},\"1499\":{},\"1513\":{},\"2915\":{}},\"comment\":{}}],[\"errorcode\",{\"_index\":937,\"name\":{\"2673\":{},\"2684\":{},\"2698\":{},\"2710\":{},\"2717\":{},\"2725\":{},\"2744\":{},\"2757\":{},\"2768\":{},\"2779\":{},\"2790\":{},\"2801\":{},\"2812\":{},\"2839\":{},\"2850\":{}},\"comment\":{}}],[\"errorhandler\",{\"_index\":202,\"name\":{\"564\":{},\"577\":{},\"778\":{},\"791\":{},\"1695\":{},\"1702\":{}},\"comment\":{}}],[\"errorhandlerargs\",{\"_index\":200,\"name\":{\"561\":{}},\"comment\":{}}],[\"errormessage\",{\"_index\":993,\"name\":{\"2931\":{}},\"comment\":{}}],[\"errortojsonconverter\",{\"_index\":735,\"name\":{\"2011\":{}},\"comment\":{}}],[\"errortoquadconverter\",{\"_index\":736,\"name\":{\"2019\":{}},\"comment\":{}}],[\"errortotemplateconverter\",{\"_index\":741,\"name\":{\"2032\":{}},\"comment\":{}}],[\"estimatesize\",{\"_index\":839,\"name\":{\"2384\":{},\"2395\":{},\"2403\":{},\"2455\":{},\"2468\":{}},\"comment\":{}}],[\"executeonprimary\",{\"_index\":984,\"name\":{\"2896\":{}},\"comment\":{}}],[\"expiration\",{\"_index\":32,\"name\":{\"74\":{},\"1126\":{},\"3067\":{}},\"comment\":{}}],[\"expires\",{\"_index\":627,\"name\":{\"1738\":{},\"2167\":{},\"2169\":{},\"2187\":{}},\"comment\":{}}],[\"expiringadapter\",{\"_index\":435,\"name\":{\"1137\":{}},\"comment\":{}}],[\"expiringadapterfactory\",{\"_index\":440,\"name\":{\"1153\":{}},\"comment\":{}}],[\"expiringpromise\",{\"_index\":1048,\"name\":{\"3070\":{}},\"comment\":{}}],[\"expiringreadwritelocker\",{\"_index\":1002,\"name\":{\"2974\":{}},\"comment\":{}}],[\"expiringstorage\",{\"_index\":756,\"name\":{\"2111\":{}},\"comment\":{}}],[\"extension\",{\"_index\":740,\"name\":{\"2030\":{},\"2037\":{},\"3259\":{}},\"comment\":{}}],[\"extensionbasedmapper\",{\"_index\":795,\"name\":{\"2208\":{}},\"comment\":{}}],[\"extensionbasedmapperfactory\",{\"_index\":799,\"name\":{\"2229\":{}},\"comment\":{}}],[\"extracterrordetails\",{\"_index\":197,\"name\":{\"558\":{}},\"comment\":{}}],[\"extractscheme\",{\"_index\":1158,\"name\":{\"3307\":{}},\"comment\":{}}],[\"extractshorthand\",{\"_index\":507,\"name\":{\"1354\":{}},\"comment\":{}}],[\"factory\",{\"_index\":532,\"name\":{\"1444\":{},\"1595\":{},\"1603\":{}},\"comment\":{}}],[\"fetchcachedquads\",{\"_index\":34,\"name\":{\"77\":{}},\"comment\":{}}],[\"fetchdataset\",{\"_index\":1104,\"name\":{\"3230\":{}},\"comment\":{}}],[\"fetcher\",{\"_index\":678,\"name\":{\"1897\":{}},\"comment\":{}}],[\"filedataaccessor\",{\"_index\":658,\"name\":{\"1828\":{}},\"comment\":{}}],[\"fileidentifiermapper\",{\"_index\":802,\"name\":{\"2237\":{},\"2449\":{}},\"comment\":{}}],[\"fileidentifiermapperfactory\",{\"_index\":803,\"name\":{\"2242\":{}},\"comment\":{}}],[\"filemapper\",{\"_index\":560,\"name\":{\"1532\":{}},\"comment\":{}}],[\"filepath\",{\"_index\":715,\"name\":{\"1966\":{},\"2123\":{},\"2234\":{}},\"comment\":{}}],[\"filesizereporter\",{\"_index\":861,\"name\":{\"2447\":{}},\"comment\":{}}],[\"filesystemresourcelocker\",{\"_index\":1007,\"name\":{\"2985\":{}},\"comment\":{}}],[\"filter\",{\"_index\":1142,\"name\":{\"3290\":{}},\"comment\":{}}],[\"filterallowedmethods\",{\"_index\":211,\"name\":{\"591\":{}},\"comment\":{}}],[\"filterhandlers\",{\"_index\":979,\"name\":{\"2877\":{}},\"comment\":{}}],[\"filtermetadatadataaccessor\",{\"_index\":665,\"name\":{\"1850\":{}},\"comment\":{}}],[\"filterpattern\",{\"_index\":1173,\"name\":{\"3325\":{}},\"comment\":{}}],[\"filters\",{\"_index\":666,\"name\":{\"1852\":{}},\"comment\":{}}],[\"filterstore\",{\"_index\":112,\"name\":{\"257\":{}},\"comment\":{}}],[\"finalizable\",{\"_index\":461,\"name\":{\"1229\":{},\"1234\":{}},\"comment\":{}}],[\"finalizablehandler\",{\"_index\":463,\"name\":{\"1232\":{}},\"comment\":{}}],[\"finalize\",{\"_index\":462,\"name\":{\"1230\":{},\"1439\":{},\"2189\":{},\"2999\":{},\"3056\":{}},\"comment\":{}}],[\"finalized\",{\"_index\":1011,\"name\":{\"2991\":{},\"3045\":{}},\"comment\":{}}],[\"finalizer\",{\"_index\":464,\"name\":{\"1238\":{},\"1339\":{}},\"comment\":{}}],[\"find\",{\"_index\":317,\"name\":{\"815\":{},\"1147\":{},\"1162\":{},\"1176\":{},\"3292\":{}},\"comment\":{}}],[\"findacl\",{\"_index\":103,\"name\":{\"239\":{}},\"comment\":{}}],[\"findauthorizationstatements\",{\"_index\":111,\"name\":{\"256\":{}},\"comment\":{}}],[\"findauxiliaries\",{\"_index\":76,\"name\":{\"168\":{}},\"comment\":{}}],[\"findbest\",{\"_index\":702,\"name\":{\"1951\":{}},\"comment\":{}}],[\"findbyuid\",{\"_index\":321,\"name\":{\"820\":{},\"1149\":{},\"1164\":{},\"1182\":{}},\"comment\":{}}],[\"findbyusercode\",{\"_index\":320,\"name\":{\"819\":{},\"1148\":{},\"1163\":{},\"1181\":{}},\"comment\":{}}],[\"findconverterpreference\",{\"_index\":707,\"name\":{\"1956\":{}},\"comment\":{}}],[\"findhandler\",{\"_index\":978,\"name\":{\"2876\":{}},\"comment\":{}}],[\"findmethod\",{\"_index\":981,\"name\":{\"2884\":{}},\"comment\":{}}],[\"findparents\",{\"_index\":83,\"name\":{\"188\":{}},\"comment\":{}}],[\"findpath\",{\"_index\":699,\"name\":{\"1948\":{}},\"comment\":{}}],[\"findpermissions\",{\"_index\":107,\"name\":{\"252\":{}},\"comment\":{}}],[\"findpodbaseurl\",{\"_index\":81,\"name\":{\"179\":{}},\"comment\":{}}],[\"findquads\",{\"_index\":150,\"name\":{\"372\":{}},\"comment\":{}}],[\"findreader\",{\"_index\":91,\"name\":{\"201\":{}},\"comment\":{}}],[\"findredirect\",{\"_index\":635,\"name\":{\"1758\":{}},\"comment\":{}}],[\"findstore\",{\"_index\":847,\"name\":{\"2410\":{},\"2421\":{}},\"comment\":{}}],[\"findtype\",{\"_index\":734,\"name\":{\"2009\":{}},\"comment\":{}}],[\"findvariables\",{\"_index\":151,\"name\":{\"373\":{}},\"comment\":{}}],[\"finished\",{\"_index\":976,\"name\":{\"2871\":{}},\"comment\":{}}],[\"firstengine\",{\"_index\":1078,\"name\":{\"3190\":{}},\"comment\":{}}],[\"fixedcontenttypemapper\",{\"_index\":804,\"name\":{\"2245\":{}},\"comment\":{}}],[\"fixedinteractionhandler\",{\"_index\":418,\"name\":{\"1076\":{}},\"comment\":{}}],[\"flush\",{\"_index\":1191,\"name\":{\"3347\":{}},\"comment\":{}}],[\"foaf\",{\"_index\":1208,\"name\":{\"3367\":{}},\"comment\":{}}],[\"for\",{\"_index\":1140,\"name\":{\"3286\":{}},\"comment\":{}}],[\"forbiddenhttperror\",{\"_index\":943,\"name\":{\"2690\":{}},\"comment\":{}}],[\"foreach\",{\"_index\":1055,\"name\":{\"3089\":{},\"3104\":{},\"3125\":{},\"3161\":{},\"3184\":{}},\"comment\":{}}],[\"forgotpasswordexpiration\",{\"_index\":369,\"name\":{\"954\":{}},\"comment\":{}}],[\"forgotpasswordhandler\",{\"_index\":339,\"name\":{\"872\":{}},\"comment\":{}}],[\"forgotpasswordhandlerargs\",{\"_index\":335,\"name\":{\"867\":{}},\"comment\":{}}],[\"forgotpasswordpayload\",{\"_index\":363,\"name\":{\"945\":{}},\"comment\":{}}],[\"forgotpasswordstorage\",{\"_index\":367,\"name\":{\"952\":{}},\"comment\":{}}],[\"formtojsonconverter\",{\"_index\":742,\"name\":{\"2045\":{}},\"comment\":{}}],[\"forquads\",{\"_index\":259,\"name\":{\"722\":{}},\"comment\":{}}],[\"forwarded\",{\"_index\":1138,\"name\":{\"3284\":{}},\"comment\":{}}],[\"foundhttperror\",{\"_index\":944,\"name\":{\"2701\":{}},\"comment\":{}}],[\"generate\",{\"_index\":569,\"name\":{\"1556\":{},\"1558\":{},\"1562\":{},\"1565\":{},\"1571\":{},\"1579\":{},\"1583\":{},\"1592\":{},\"1608\":{}},\"comment\":{}}],[\"generateaccept\",{\"_index\":215,\"name\":{\"595\":{}},\"comment\":{}}],[\"generateallow\",{\"_index\":214,\"name\":{\"594\":{}},\"comment\":{}}],[\"generatecookiekeys\",{\"_index\":307,\"name\":{\"800\":{}},\"comment\":{}}],[\"generatedpodmanager\",{\"_index\":595,\"name\":{\"1629\":{}},\"comment\":{}}],[\"generateforgotpasswordrecord\",{\"_index\":357,\"name\":{\"934\":{},\"965\":{}},\"comment\":{}}],[\"generatehttperrorclass\",{\"_index\":947,\"name\":{\"2714\":{}},\"comment\":{}}],[\"generatehttperroruri\",{\"_index\":946,\"name\":{\"2713\":{}},\"comment\":{}}],[\"generatejwks\",{\"_index\":306,\"name\":{\"799\":{}},\"comment\":{}}],[\"generatemetadata\",{\"_index\":591,\"name\":{\"1613\":{},\"2675\":{},\"2686\":{},\"2700\":{},\"2712\":{},\"2727\":{},\"2746\":{},\"2754\":{},\"2770\":{},\"2781\":{},\"2792\":{},\"2803\":{},\"2814\":{},\"2841\":{},\"2852\":{}},\"comment\":{}}],[\"generateoptions\",{\"_index\":1016,\"name\":{\"2997\":{}},\"comment\":{}}],[\"generatepath\",{\"_index\":700,\"name\":{\"1949\":{}},\"comment\":{}}],[\"generateredirecthttperrorclass\",{\"_index\":960,\"name\":{\"2804\":{}},\"comment\":{}}],[\"generateresource\",{\"_index\":590,\"name\":{\"1612\":{}},\"comment\":{}}],[\"generatetoken\",{\"_index\":432,\"name\":{\"1129\":{}},\"comment\":{}}],[\"generator\",{\"_index\":518,\"name\":{\"1384\":{},\"1392\":{},\"1898\":{},\"2315\":{}},\"comment\":{}}],[\"get\",{\"_index\":263,\"name\":{\"726\":{},\"2104\":{},\"2113\":{},\"2126\":{},\"2138\":{},\"2149\":{},\"2162\":{},\"2176\":{},\"3082\":{},\"3097\":{},\"3112\":{},\"3141\":{},\"3171\":{}},\"comment\":{}}],[\"getabsolutepath\",{\"_index\":791,\"name\":{\"2204\":{},\"2225\":{},\"2262\":{},\"2289\":{}},\"comment\":{}}],[\"getaccountpayload\",{\"_index\":372,\"name\":{\"957\":{}},\"comment\":{}}],[\"getaccountresourceidentifier\",{\"_index\":370,\"name\":{\"955\":{}},\"comment\":{}}],[\"getaclmatches\",{\"_index\":109,\"name\":{\"254\":{}},\"comment\":{}}],[\"getaclrecursive\",{\"_index\":110,\"name\":{\"255\":{}},\"comment\":{}}],[\"getall\",{\"_index\":262,\"name\":{\"725\":{}},\"comment\":{}}],[\"getauxiliaryidentifier\",{\"_index\":114,\"name\":{\"261\":{},\"278\":{},\"293\":{},\"322\":{},\"335\":{},\"342\":{}},\"comment\":{}}],[\"getauxiliaryidentifiers\",{\"_index\":116,\"name\":{\"263\":{},\"280\":{},\"294\":{},\"323\":{},\"336\":{},\"343\":{}},\"comment\":{}}],[\"getavailablespace\",{\"_index\":838,\"name\":{\"2383\":{},\"2394\":{},\"2401\":{}},\"comment\":{}}],[\"getbasemetadata\",{\"_index\":661,\"name\":{\"1844\":{}},\"comment\":{}}],[\"getbestpreference\",{\"_index\":726,\"name\":{\"1997\":{}},\"comment\":{}}],[\"getcacheheaders\",{\"_index\":630,\"name\":{\"1744\":{}},\"comment\":{}}],[\"getchildmetadata\",{\"_index\":663,\"name\":{\"1846\":{}},\"comment\":{}}],[\"getchildren\",{\"_index\":645,\"name\":{\"1784\":{},\"1803\":{},\"1818\":{},\"1835\":{},\"1861\":{},\"1872\":{},\"1890\":{},\"1902\":{},\"1932\":{}},\"comment\":{}}],[\"getchildresources\",{\"_index\":717,\"name\":{\"1979\":{}},\"comment\":{}}],[\"getcontainerurl\",{\"_index\":788,\"name\":{\"2201\":{},\"2224\":{},\"2261\":{},\"2274\":{}},\"comment\":{}}],[\"getcontenttype\",{\"_index\":266,\"name\":{\"729\":{}},\"comment\":{}}],[\"getcontenttypefrompath\",{\"_index\":790,\"name\":{\"2203\":{},\"2214\":{},\"2251\":{},\"2279\":{}},\"comment\":{}}],[\"getcontenttypefromurl\",{\"_index\":786,\"name\":{\"2199\":{},\"2222\":{},\"2250\":{},\"2287\":{}},\"comment\":{}}],[\"getconversiontarget\",{\"_index\":727,\"name\":{\"1998\":{}},\"comment\":{}}],[\"getcountkey\",{\"_index\":1022,\"name\":{\"3012\":{}},\"comment\":{}}],[\"getdata\",{\"_index\":643,\"name\":{\"1780\":{},\"1801\":{},\"1814\":{},\"1833\":{},\"1858\":{},\"1870\":{},\"1887\":{},\"1900\":{},\"1929\":{}},\"comment\":{}}],[\"getdefault\",{\"_index\":1068,\"name\":{\"3130\":{}},\"comment\":{}}],[\"getdirectorymetadata\",{\"_index\":660,\"name\":{\"1842\":{}},\"comment\":{}}],[\"getdocumenturl\",{\"_index\":789,\"name\":{\"2202\":{},\"2213\":{},\"2253\":{},\"2275\":{}},\"comment\":{}}],[\"getentry\",{\"_index\":674,\"name\":{\"1880\":{}},\"comment\":{}}],[\"getetag\",{\"_index\":889,\"name\":{\"2515\":{}},\"comment\":{}}],[\"getextension\",{\"_index\":1152,\"name\":{\"3301\":{}},\"comment\":{}}],[\"getfilemetadata\",{\"_index\":659,\"name\":{\"1841\":{}},\"comment\":{}}],[\"getfilepath\",{\"_index\":629,\"name\":{\"1741\":{}},\"comment\":{}}],[\"getforgotpasswordrecord\",{\"_index\":358,\"name\":{\"936\":{},\"966\":{}},\"comment\":{}}],[\"getforgotpasswordrecordresourceidentifier\",{\"_index\":371,\"name\":{\"956\":{}},\"comment\":{}}],[\"getgrant\",{\"_index\":413,\"name\":{\"1064\":{}},\"comment\":{}}],[\"gethierarchy\",{\"_index\":672,\"name\":{\"1878\":{}},\"comment\":{}}],[\"getjson\",{\"_index\":762,\"name\":{\"2133\":{}},\"comment\":{}}],[\"getjsonsafely\",{\"_index\":760,\"name\":{\"2131\":{}},\"comment\":{}}],[\"getlocalname\",{\"_index\":719,\"name\":{\"1981\":{}},\"comment\":{}}],[\"getlockcount\",{\"_index\":1031,\"name\":{\"3026\":{}},\"comment\":{}}],[\"getlockidentifier\",{\"_index\":916,\"name\":{\"2582\":{}},\"comment\":{}}],[\"getloggerfor\",{\"_index\":548,\"name\":{\"1493\":{}},\"comment\":{}}],[\"getmatchingsource\",{\"_index\":134,\"name\":{\"326\":{},\"334\":{}},\"comment\":{}}],[\"getmeta\",{\"_index\":544,\"name\":{\"1471\":{}},\"comment\":{}}],[\"getmetadata\",{\"_index\":644,\"name\":{\"1782\":{},\"1802\":{},\"1816\":{},\"1834\":{},\"1859\":{},\"1871\":{},\"1888\":{},\"1901\":{},\"1930\":{}},\"comment\":{}}],[\"getmetadatanode\",{\"_index\":681,\"name\":{\"1911\":{}},\"comment\":{}}],[\"getmoduleroot\",{\"_index\":1161,\"name\":{\"3313\":{}},\"comment\":{}}],[\"getnormalizedmetadata\",{\"_index\":893,\"name\":{\"2540\":{}},\"comment\":{}}],[\"getoperationhandler\",{\"_index\":187,\"name\":{\"509\":{}},\"comment\":{}}],[\"getoutputtypes\",{\"_index\":696,\"name\":{\"1938\":{},\"1984\":{},\"1989\":{},\"2016\":{},\"2024\":{},\"2042\":{},\"2050\":{},\"2059\":{},\"2073\":{},\"2082\":{},\"2096\":{}},\"comment\":{}}],[\"getparentcontainer\",{\"_index\":997,\"name\":{\"2945\":{},\"2951\":{},\"2963\":{},\"2972\":{}},\"comment\":{}}],[\"getparentcontainers\",{\"_index\":718,\"name\":{\"1980\":{}},\"comment\":{}}],[\"getparententry\",{\"_index\":673,\"name\":{\"1879\":{}},\"comment\":{}}],[\"getparentmodes\",{\"_index\":84,\"name\":{\"189\":{}},\"comment\":{}}],[\"getpath\",{\"_index\":405,\"name\":{\"1036\":{},\"1038\":{},\"1049\":{}},\"comment\":{}}],[\"getprovider\",{\"_index\":302,\"name\":{\"795\":{},\"807\":{}},\"comment\":{}}],[\"getrawmetadata\",{\"_index\":662,\"name\":{\"1845\":{}},\"comment\":{}}],[\"getreadlockkey\",{\"_index\":1023,\"name\":{\"3013\":{}},\"comment\":{}}],[\"getreadwritekey\",{\"_index\":1042,\"name\":{\"3047\":{}},\"comment\":{}}],[\"getrelatednames\",{\"_index\":679,\"name\":{\"1907\":{}},\"comment\":{}}],[\"getrelativepath\",{\"_index\":792,\"name\":{\"2205\":{},\"2226\":{},\"2263\":{},\"2277\":{}},\"comment\":{}}],[\"getrelativeurl\",{\"_index\":1159,\"name\":{\"3311\":{}},\"comment\":{}}],[\"getreplacementtype\",{\"_index\":722,\"name\":{\"1993\":{}},\"comment\":{}}],[\"getrepresentation\",{\"_index\":874,\"name\":{\"2477\":{},\"2492\":{},\"2533\":{},\"2562\":{},\"2577\":{},\"2590\":{},\"2600\":{},\"2611\":{},\"2623\":{},\"2631\":{},\"2643\":{},\"2659\":{}},\"comment\":{}}],[\"getresourceentries\",{\"_index\":764,\"name\":{\"2143\":{}},\"comment\":{}}],[\"getresourcekey\",{\"_index\":1043,\"name\":{\"3048\":{}},\"comment\":{}}],[\"getsafenormalizedmetadata\",{\"_index\":894,\"name\":{\"2541\":{}},\"comment\":{}}],[\"getsettings\",{\"_index\":354,\"name\":{\"928\":{},\"962\":{}},\"comment\":{}}],[\"getsingleitem\",{\"_index\":1184,\"name\":{\"3339\":{}},\"comment\":{}}],[\"getsize\",{\"_index\":864,\"name\":{\"2453\":{},\"2464\":{}},\"comment\":{}}],[\"getstats\",{\"_index\":653,\"name\":{\"1807\":{},\"1840\":{}},\"comment\":{}}],[\"getstatuscode\",{\"_index\":951,\"name\":{\"2734\":{}},\"comment\":{}}],[\"getstore\",{\"_index\":932,\"name\":{\"2664\":{}},\"comment\":{}}],[\"getsubjectidentifier\",{\"_index\":118,\"name\":{\"267\":{},\"284\":{},\"296\":{},\"325\":{},\"338\":{},\"345\":{}},\"comment\":{}}],[\"gettemplatefilepath\",{\"_index\":1085,\"name\":{\"3204\":{}},\"comment\":{}}],[\"gettokenkey\",{\"_index\":431,\"name\":{\"1128\":{}},\"comment\":{}}],[\"gettotalsize\",{\"_index\":866,\"name\":{\"2456\":{}},\"comment\":{}}],[\"gettotalspaceused\",{\"_index\":835,\"name\":{\"2380\":{},\"2390\":{},\"2402\":{}},\"comment\":{}}],[\"gettypeweight\",{\"_index\":724,\"name\":{\"1995\":{}},\"comment\":{}}],[\"getunexpired\",{\"_index\":775,\"name\":{\"2182\":{}},\"comment\":{}}],[\"getunit\",{\"_index\":863,\"name\":{\"2452\":{},\"2462\":{}},\"comment\":{}}],[\"getweightedpreferences\",{\"_index\":725,\"name\":{\"1996\":{}},\"comment\":{}}],[\"getwritelockkey\",{\"_index\":1024,\"name\":{\"3014\":{}},\"comment\":{}}],[\"globalquotastrategy\",{\"_index\":834,\"name\":{\"2377\":{}},\"comment\":{}}],[\"grantkeyfor\",{\"_index\":436,\"name\":{\"1142\":{}},\"comment\":{}}],[\"greedyreadwritelocker\",{\"_index\":1020,\"name\":{\"3005\":{}},\"comment\":{}}],[\"greedyreadwritesuffixes\",{\"_index\":1018,\"name\":{\"3001\":{}},\"comment\":{}}],[\"grouplinks\",{\"_index\":589,\"name\":{\"1611\":{}},\"comment\":{}}],[\"guarded\",{\"_index\":1108,\"name\":{\"3234\":{}},\"comment\":{}}],[\"guardedstreamfrom\",{\"_index\":1187,\"name\":{\"3342\":{}},\"comment\":{}}],[\"guardstream\",{\"_index\":1107,\"name\":{\"3233\":{}},\"comment\":{}}],[\"handle\",{\"_index\":5,\"name\":{\"5\":{},\"16\":{},\"24\":{},\"28\":{},\"36\":{},\"43\":{},\"50\":{},\"55\":{},\"63\":{},\"68\":{},\"75\":{},\"88\":{},\"96\":{},\"104\":{},\"109\":{},\"115\":{},\"121\":{},\"137\":{},\"149\":{},\"160\":{},\"167\":{},\"178\":{},\"187\":{},\"199\":{},\"208\":{},\"221\":{},\"230\":{},\"238\":{},\"251\":{},\"305\":{},\"311\":{},\"316\":{},\"353\":{},\"361\":{},\"366\":{},\"379\":{},\"386\":{},\"391\":{},\"399\":{},\"408\":{},\"414\":{},\"419\":{},\"424\":{},\"431\":{},\"444\":{},\"449\":{},\"456\":{},\"461\":{},\"467\":{},\"482\":{},\"488\":{},\"496\":{},\"500\":{},\"507\":{},\"513\":{},\"519\":{},\"526\":{},\"533\":{},\"540\":{},\"548\":{},\"556\":{},\"567\":{},\"572\":{},\"579\":{},\"590\":{},\"604\":{},\"610\":{},\"615\":{},\"622\":{},\"628\":{},\"634\":{},\"638\":{},\"643\":{},\"651\":{},\"679\":{},\"684\":{},\"766\":{},\"833\":{},\"841\":{},\"852\":{},\"859\":{},\"864\":{},\"883\":{},\"893\":{},\"902\":{},\"912\":{},\"982\":{},\"993\":{},\"1045\":{},\"1054\":{},\"1067\":{},\"1074\":{},\"1079\":{},\"1088\":{},\"1097\":{},\"1103\":{},\"1108\":{},\"1114\":{},\"1120\":{},\"1127\":{},\"1201\":{},\"1208\":{},\"1226\":{},\"1235\":{},\"1241\":{},\"1255\":{},\"1272\":{},\"1280\":{},\"1296\":{},\"1304\":{},\"1311\":{},\"1317\":{},\"1323\":{},\"1328\":{},\"1334\":{},\"1364\":{},\"1377\":{},\"1395\":{},\"1404\":{},\"1410\":{},\"1415\":{},\"1422\":{},\"1430\":{},\"1438\":{},\"1527\":{},\"1533\":{},\"1539\":{},\"1549\":{},\"1652\":{},\"1675\":{},\"1690\":{},\"1706\":{},\"1714\":{},\"1725\":{},\"1731\":{},\"1743\":{},\"1749\":{},\"1757\":{},\"1775\":{},\"1940\":{},\"1947\":{},\"1970\":{},\"1978\":{},\"1991\":{},\"2007\":{},\"2013\":{},\"2021\":{},\"2039\":{},\"2047\":{},\"2056\":{},\"2064\":{},\"2070\":{},\"2079\":{},\"2092\":{},\"2098\":{},\"2300\":{},\"2309\":{},\"2317\":{},\"2329\":{},\"2336\":{},\"2345\":{},\"2354\":{},\"2360\":{},\"2368\":{},\"2409\":{},\"2420\":{},\"2438\":{},\"2445\":{},\"2473\":{},\"2856\":{},\"2864\":{},\"2874\":{},\"2883\":{},\"2890\":{},\"2898\":{},\"2904\":{},\"2910\":{},\"2916\":{},\"2925\":{},\"2933\":{},\"2940\":{}},\"comment\":{}}],[\"handlebarstemplateengine\",{\"_index\":1084,\"name\":{\"3199\":{}},\"comment\":{}}],[\"handlecontainerdata\",{\"_index\":896,\"name\":{\"2544\":{}},\"comment\":{}}],[\"handleerror\",{\"_index\":618,\"name\":{\"1708\":{}},\"comment\":{}}],[\"handleget\",{\"_index\":343,\"name\":{\"884\":{},\"894\":{},\"903\":{},\"913\":{},\"1055\":{},\"1062\":{},\"1256\":{},\"1273\":{}},\"comment\":{}}],[\"handlepost\",{\"_index\":340,\"name\":{\"879\":{},\"891\":{},\"900\":{},\"909\":{},\"1056\":{},\"1063\":{},\"1251\":{},\"1274\":{}},\"comment\":{}}],[\"handler\",{\"_index\":447,\"name\":{\"1194\":{},\"1200\":{},\"1260\":{},\"1267\":{},\"1665\":{},\"1763\":{},\"1770\":{}},\"comment\":{}}],[\"handlerequest\",{\"_index\":617,\"name\":{\"1707\":{}},\"comment\":{}}],[\"handlers\",{\"_index\":19,\"name\":{\"34\":{},\"228\":{},\"2861\":{},\"2888\":{},\"2903\":{},\"2921\":{},\"2938\":{}},\"comment\":{}}],[\"handlesafe\",{\"_index\":6,\"name\":{\"6\":{},\"17\":{},\"25\":{},\"30\":{},\"38\":{},\"45\":{},\"51\":{},\"56\":{},\"65\":{},\"70\":{},\"79\":{},\"89\":{},\"97\":{},\"105\":{},\"110\":{},\"116\":{},\"122\":{},\"145\":{},\"152\":{},\"161\":{},\"171\":{},\"181\":{},\"193\":{},\"203\":{},\"214\":{},\"222\":{},\"232\":{},\"242\":{},\"259\":{},\"307\":{},\"312\":{},\"318\":{},\"354\":{},\"362\":{},\"375\":{},\"381\":{},\"387\":{},\"395\":{},\"400\":{},\"410\":{},\"415\":{},\"421\":{},\"426\":{},\"433\":{},\"445\":{},\"452\":{},\"458\":{},\"463\":{},\"468\":{},\"484\":{},\"489\":{},\"497\":{},\"502\":{},\"508\":{},\"514\":{},\"520\":{},\"527\":{},\"534\":{},\"541\":{},\"549\":{},\"557\":{},\"568\":{},\"573\":{},\"581\":{},\"597\":{},\"606\":{},\"612\":{},\"617\":{},\"624\":{},\"630\":{},\"635\":{},\"640\":{},\"647\":{},\"653\":{},\"680\":{},\"685\":{},\"769\":{},\"835\":{},\"842\":{},\"853\":{},\"860\":{},\"866\":{},\"885\":{},\"895\":{},\"904\":{},\"914\":{},\"984\":{},\"994\":{},\"1046\":{},\"1057\":{},\"1068\":{},\"1075\":{},\"1081\":{},\"1089\":{},\"1098\":{},\"1104\":{},\"1110\":{},\"1116\":{},\"1121\":{},\"1133\":{},\"1203\":{},\"1210\":{},\"1228\":{},\"1237\":{},\"1242\":{},\"1257\":{},\"1276\":{},\"1281\":{},\"1299\":{},\"1306\":{},\"1313\":{},\"1319\":{},\"1324\":{},\"1330\":{},\"1335\":{},\"1366\":{},\"1379\":{},\"1397\":{},\"1406\":{},\"1411\":{},\"1417\":{},\"1424\":{},\"1432\":{},\"1441\":{},\"1529\":{},\"1535\":{},\"1540\":{},\"1551\":{},\"1654\":{},\"1676\":{},\"1691\":{},\"1710\":{},\"1715\":{},\"1727\":{},\"1733\":{},\"1745\":{},\"1751\":{},\"1759\":{},\"1776\":{},\"1941\":{},\"1957\":{},\"1971\":{},\"1985\":{},\"1992\":{},\"2010\":{},\"2018\":{},\"2026\":{},\"2044\":{},\"2052\":{},\"2061\":{},\"2066\":{},\"2075\":{},\"2084\":{},\"2093\":{},\"2099\":{},\"2301\":{},\"2310\":{},\"2320\":{},\"2330\":{},\"2337\":{},\"2346\":{},\"2355\":{},\"2362\":{},\"2376\":{},\"2412\":{},\"2423\":{},\"2441\":{},\"2446\":{},\"2475\":{},\"2857\":{},\"2863\":{},\"2873\":{},\"2885\":{},\"2891\":{},\"2900\":{},\"2906\":{},\"2912\":{},\"2918\":{},\"2928\":{},\"2934\":{},\"2941\":{}},\"comment\":{}}],[\"has\",{\"_index\":261,\"name\":{\"724\":{},\"2105\":{},\"2115\":{},\"2127\":{},\"2139\":{},\"2151\":{},\"2163\":{},\"2177\":{},\"3081\":{},\"3096\":{},\"3110\":{},\"3169\":{}},\"comment\":{}}],[\"hasconditions\",{\"_index\":63,\"name\":{\"142\":{}},\"comment\":{}}],[\"hascontainertype\",{\"_index\":904,\"name\":{\"2552\":{}},\"comment\":{}}],[\"hasdeletes\",{\"_index\":65,\"name\":{\"144\":{}},\"comment\":{}}],[\"hasentry\",{\"_index\":1061,\"name\":{\"3111\":{},\"3143\":{},\"3170\":{}},\"comment\":{}}],[\"hashfn\",{\"_index\":1051,\"name\":{\"3079\":{}},\"comment\":{}}],[\"hashmap\",{\"_index\":1050,\"name\":{\"3076\":{},\"3078\":{}},\"comment\":{}}],[\"hasinserts\",{\"_index\":64,\"name\":{\"143\":{}},\"comment\":{}}],[\"hasmodepermission\",{\"_index\":95,\"name\":{\"211\":{}},\"comment\":{}}],[\"hasproperchildren\",{\"_index\":906,\"name\":{\"2554\":{}},\"comment\":{}}],[\"hasresource\",{\"_index\":878,\"name\":{\"2487\":{},\"2491\":{},\"2514\":{},\"2532\":{},\"2565\":{},\"2576\":{},\"2589\":{},\"2599\":{},\"2610\":{},\"2622\":{},\"2635\":{},\"2639\":{},\"2653\":{},\"2658\":{}},\"comment\":{}}],[\"hasscheme\",{\"_index\":1124,\"name\":{\"3251\":{}},\"comment\":{}}],[\"hastoken\",{\"_index\":433,\"name\":{\"1130\":{}},\"comment\":{}}],[\"headerhandler\",{\"_index\":623,\"name\":{\"1728\":{}},\"comment\":{}}],[\"headermap\",{\"_index\":224,\"name\":{\"627\":{}},\"comment\":{}}],[\"headers\",{\"_index\":220,\"name\":{\"609\":{},\"1730\":{}},\"comment\":{}}],[\"headoperationhandler\",{\"_index\":188,\"name\":{\"515\":{}},\"comment\":{}}],[\"hh\",{\"_index\":1209,\"name\":{\"3368\":{}},\"comment\":{}}],[\"host\",{\"_index\":375,\"name\":{\"971\":{},\"3287\":{}},\"comment\":{}}],[\"html\",{\"_index\":386,\"name\":{\"989\":{}},\"comment\":{}}],[\"htmlviewhandler\",{\"_index\":420,\"name\":{\"1082\":{}},\"comment\":{}}],[\"http\",{\"_index\":1210,\"name\":{\"3369\":{}},\"comment\":{}}],[\"httperror\",{\"_index\":949,\"name\":{\"2719\":{}},\"comment\":{}}],[\"httperrorclass\",{\"_index\":950,\"name\":{\"2728\":{}},\"comment\":{}}],[\"httperroroptions\",{\"_index\":948,\"name\":{\"2715\":{}},\"comment\":{}}],[\"httphandler\",{\"_index\":607,\"name\":{\"1672\":{}},\"comment\":{}}],[\"httphandlerinput\",{\"_index\":606,\"name\":{\"1669\":{}},\"comment\":{}}],[\"httprequest\",{\"_index\":609,\"name\":{\"1678\":{}},\"comment\":{}}],[\"httpresponse\",{\"_index\":610,\"name\":{\"1679\":{}},\"comment\":{}}],[\"https\",{\"_index\":599,\"name\":{\"1656\":{}},\"comment\":{}}],[\"httpserverfactory\",{\"_index\":611,\"name\":{\"1680\":{}},\"comment\":{}}],[\"iana\",{\"_index\":1211,\"name\":{\"3370\":{}},\"comment\":{}}],[\"id\",{\"_index\":249,\"name\":{\"711\":{}},\"comment\":{}}],[\"identifier\",{\"_index\":140,\"name\":{\"349\":{},\"714\":{},\"1568\":{},\"2086\":{},\"2233\":{},\"2324\":{},\"2339\":{},\"2348\":{}},\"comment\":{}}],[\"identifiergenerator\",{\"_index\":389,\"name\":{\"998\":{},\"1025\":{},\"1561\":{}},\"comment\":{}}],[\"identifierhashfn\",{\"_index\":1058,\"name\":{\"3093\":{}},\"comment\":{}}],[\"identifiermap\",{\"_index\":1059,\"name\":{\"3094\":{}},\"comment\":{}}],[\"identifiersetmultimap\",{\"_index\":1060,\"name\":{\"3108\":{}},\"comment\":{}}],[\"identifierstrategy\",{\"_index\":42,\"name\":{\"94\":{},\"177\":{},\"186\":{},\"249\":{},\"288\":{},\"304\":{},\"402\":{},\"406\":{},\"1865\":{},\"1896\":{},\"1974\":{},\"2388\":{},\"2529\":{},\"2948\":{}},\"comment\":{}}],[\"identifiertokey\",{\"_index\":767,\"name\":{\"2146\":{}},\"comment\":{}}],[\"identityproviderfactory\",{\"_index\":298,\"name\":{\"780\":{}},\"comment\":{}}],[\"identityproviderfactoryargs\",{\"_index\":292,\"name\":{\"770\":{}},\"comment\":{}}],[\"identityproviderhttphandler\",{\"_index\":448,\"name\":{\"1195\":{}},\"comment\":{}}],[\"identityproviderhttphandlerargs\",{\"_index\":446,\"name\":{\"1191\":{}},\"comment\":{}}],[\"idpindex\",{\"_index\":421,\"name\":{\"1084\":{}},\"comment\":{}}],[\"ignoreerrors\",{\"_index\":991,\"name\":{\"2923\":{}},\"comment\":{}}],[\"ignorefolders\",{\"_index\":862,\"name\":{\"2450\":{}},\"comment\":{}}],[\"immutablemetadatapatcher\",{\"_index\":815,\"name\":{\"2302\":{}},\"comment\":{}}],[\"immutablepatterns\",{\"_index\":816,\"name\":{\"2307\":{}},\"comment\":{}}],[\"includequerystring\",{\"_index\":160,\"name\":{\"403\":{},\"407\":{}},\"comment\":{}}],[\"inconverter\",{\"_index\":926,\"name\":{\"2628\":{}},\"comment\":{}}],[\"incrementcount\",{\"_index\":1028,\"name\":{\"3018\":{}},\"comment\":{}}],[\"indexname\",{\"_index\":911,\"name\":{\"2560\":{}},\"comment\":{}}],[\"indexrepresentationstore\",{\"_index\":910,\"name\":{\"2558\":{}},\"comment\":{}}],[\"info\",{\"_index\":539,\"name\":{\"1460\":{},\"1474\":{},\"1484\":{},\"1501\":{},\"1515\":{},\"2827\":{}},\"comment\":{}}],[\"initconfig\",{\"_index\":305,\"name\":{\"798\":{}},\"comment\":{}}],[\"initializable\",{\"_index\":521,\"name\":{\"1398\":{},\"1403\":{}},\"comment\":{}}],[\"initializablehandler\",{\"_index\":522,\"name\":{\"1401\":{}},\"comment\":{}}],[\"initialize\",{\"_index\":468,\"name\":{\"1252\":{},\"1399\":{},\"2998\":{},\"3055\":{}},\"comment\":{}}],[\"initializer\",{\"_index\":466,\"name\":{\"1245\":{},\"1250\":{},\"1338\":{},\"1407\":{}},\"comment\":{}}],[\"inmemorydataaccessor\",{\"_index\":669,\"name\":{\"1863\":{}},\"comment\":{}}],[\"inpreferences\",{\"_index\":928,\"name\":{\"2630\":{}},\"comment\":{}}],[\"inputtypes\",{\"_index\":694,\"name\":{\"1936\":{},\"1982\":{},\"2014\":{},\"2022\":{},\"2040\":{},\"2048\":{},\"2057\":{},\"2071\":{},\"2080\":{}},\"comment\":{}}],[\"inserts\",{\"_index\":148,\"name\":{\"370\":{}},\"comment\":{}}],[\"interaction\",{\"_index\":423,\"name\":{\"1090\":{}},\"comment\":{}}],[\"interactionhandler\",{\"_index\":295,\"name\":{\"774\":{},\"787\":{},\"1094\":{}},\"comment\":{}}],[\"interactionhandlerinput\",{\"_index\":424,\"name\":{\"1091\":{}},\"comment\":{}}],[\"interactionroute\",{\"_index\":406,\"name\":{\"1037\":{}},\"comment\":{}}],[\"interactionroutehandler\",{\"_index\":407,\"name\":{\"1040\":{}},\"comment\":{}}],[\"intermediatecreateextractor\",{\"_index\":43,\"name\":{\"98\":{}},\"comment\":{}}],[\"intermediatetype\",{\"_index\":813,\"name\":{\"2297\":{}},\"comment\":{}}],[\"internal_all\",{\"_index\":1099,\"name\":{\"3223\":{}},\"comment\":{}}],[\"internal_error\",{\"_index\":1101,\"name\":{\"3225\":{}},\"comment\":{}}],[\"internal_quads\",{\"_index\":1100,\"name\":{\"3224\":{}},\"comment\":{}}],[\"internalservererror\",{\"_index\":953,\"name\":{\"2736\":{}},\"comment\":{}}],[\"interpretcontainerpermission\",{\"_index\":86,\"name\":{\"191\":{}},\"comment\":{}}],[\"interpretcontrol\",{\"_index\":104,\"name\":{\"240\":{}},\"comment\":{}}],[\"isaccesstoken\",{\"_index\":308,\"name\":{\"801\":{}},\"comment\":{}}],[\"isauthenticated\",{\"_index\":96,\"name\":{\"212\":{}},\"comment\":{}}],[\"isauxiliaryidentifier\",{\"_index\":117,\"name\":{\"265\":{},\"282\":{},\"295\":{},\"324\":{},\"337\":{},\"344\":{}},\"comment\":{}}],[\"iscomposite\",{\"_index\":830,\"name\":{\"2371\":{}},\"comment\":{}}],[\"iscontaineridentifier\",{\"_index\":1157,\"name\":{\"3306\":{}},\"comment\":{}}],[\"iscontainerpath\",{\"_index\":1156,\"name\":{\"3305\":{}},\"comment\":{}}],[\"iscontainertype\",{\"_index\":903,\"name\":{\"2551\":{}},\"comment\":{}}],[\"isdataentry\",{\"_index\":671,\"name\":{\"1877\":{}},\"comment\":{}}],[\"isdeleteallowed\",{\"_index\":213,\"name\":{\"593\":{}},\"comment\":{}}],[\"isdeleteinsert\",{\"_index\":61,\"name\":{\"140\":{},\"2370\":{}},\"comment\":{}}],[\"isdependentauxiliary\",{\"_index\":77,\"name\":{\"169\":{}},\"comment\":{}}],[\"isempty\",{\"_index\":242,\"name\":{\"691\":{},\"696\":{},\"701\":{},\"754\":{}},\"comment\":{}}],[\"iserror\",{\"_index\":940,\"name\":{\"2687\":{}},\"comment\":{}}],[\"isexpired\",{\"_index\":776,\"name\":{\"2183\":{}},\"comment\":{}}],[\"isguarded\",{\"_index\":1106,\"name\":{\"3232\":{}},\"comment\":{}}],[\"ishttprequest\",{\"_index\":608,\"name\":{\"1677\":{}},\"comment\":{}}],[\"isinstance\",{\"_index\":935,\"name\":{\"2668\":{},\"2679\":{},\"2693\":{},\"2704\":{},\"2720\":{},\"2731\":{},\"2739\":{},\"2750\":{},\"2762\":{},\"2774\":{},\"2785\":{},\"2796\":{},\"2806\":{},\"2818\":{},\"2834\":{},\"2845\":{}},\"comment\":{}}],[\"isinternalcontenttype\",{\"_index\":730,\"name\":{\"2001\":{}},\"comment\":{}}],[\"ismemberofgroup\",{\"_index\":33,\"name\":{\"76\":{}},\"comment\":{}}],[\"ismetadata\",{\"_index\":801,\"name\":{\"2236\":{}},\"comment\":{}}],[\"ismetadataidentifier\",{\"_index\":682,\"name\":{\"1912\":{}},\"comment\":{}}],[\"ismetadatapath\",{\"_index\":794,\"name\":{\"2207\":{},\"2228\":{},\"2265\":{},\"2291\":{}},\"comment\":{}}],[\"isnop\",{\"_index\":62,\"name\":{\"141\":{}},\"comment\":{}}],[\"ispostallowed\",{\"_index\":212,\"name\":{\"592\":{}},\"comment\":{}}],[\"isprimary\",{\"_index\":455,\"name\":{\"1218\":{},\"1448\":{}},\"comment\":{}}],[\"isrepresentationmetadata\",{\"_index\":243,\"name\":{\"702\":{}},\"comment\":{}}],[\"isrequiredinroot\",{\"_index\":120,\"name\":{\"272\":{},\"298\":{},\"331\":{}},\"comment\":{}}],[\"isresourceidentifier\",{\"_index\":280,\"name\":{\"746\":{}},\"comment\":{}}],[\"isrootcontainer\",{\"_index\":998,\"name\":{\"2946\":{},\"2953\":{},\"2962\":{},\"2971\":{}},\"comment\":{}}],[\"isrootstorage\",{\"_index\":905,\"name\":{\"2553\":{}},\"comment\":{}}],[\"issinglethreaded\",{\"_index\":454,\"name\":{\"1217\":{}},\"comment\":{}}],[\"issparql\",{\"_index\":59,\"name\":{\"138\":{}},\"comment\":{}}],[\"issparqlupdate\",{\"_index\":829,\"name\":{\"2369\":{}},\"comment\":{}}],[\"issupported\",{\"_index\":60,\"name\":{\"139\":{}},\"comment\":{}}],[\"issystemerror\",{\"_index\":963,\"name\":{\"2821\":{}},\"comment\":{}}],[\"isterm\",{\"_index\":1195,\"name\":{\"3352\":{}},\"comment\":{}}],[\"isvalidfilename\",{\"_index\":1194,\"name\":{\"3351\":{}},\"comment\":{}}],[\"isvalidvariable\",{\"_index\":562,\"name\":{\"1541\":{}},\"comment\":{}}],[\"isworker\",{\"_index\":456,\"name\":{\"1219\":{}},\"comment\":{}}],[\"iterator\",{\"_index\":1056,\"name\":{\"3091\":{},\"3106\":{},\"3127\":{},\"3163\":{},\"3186\":{}},\"comment\":{}}],[\"joinfilepath\",{\"_index\":1146,\"name\":{\"3295\":{}},\"comment\":{}}],[\"joinurl\",{\"_index\":1167,\"name\":{\"3319\":{}},\"comment\":{}}],[\"json_ld\",{\"_index\":1212,\"name\":{\"3371\":{}},\"comment\":{}}],[\"jsonfilestorage\",{\"_index\":757,\"name\":{\"2121\":{}},\"comment\":{}}],[\"jsonresourcestorage\",{\"_index\":763,\"name\":{\"2134\":{}},\"comment\":{}}],[\"jwtalg\",{\"_index\":300,\"name\":{\"793\":{}},\"comment\":{}}],[\"key\",{\"_index\":486,\"name\":{\"1302\":{},\"1309\":{},\"1658\":{}},\"comment\":{}}],[\"keyextractor\",{\"_index\":485,\"name\":{\"1300\":{}},\"comment\":{}}],[\"keyfor\",{\"_index\":439,\"name\":{\"1145\":{}},\"comment\":{}}],[\"keys\",{\"_index\":1053,\"name\":{\"3087\":{},\"3102\":{},\"3121\":{},\"3180\":{}},\"comment\":{}}],[\"keytoidentifier\",{\"_index\":766,\"name\":{\"2145\":{}},\"comment\":{}}],[\"keytopath\",{\"_index\":754,\"name\":{\"2109\":{}},\"comment\":{}}],[\"keyvaluestorage\",{\"_index\":769,\"name\":{\"2148\":{}},\"comment\":{}}],[\"language\",{\"_index\":279,\"name\":{\"745\":{}},\"comment\":{}}],[\"lazyloggerfactory\",{\"_index\":531,\"name\":{\"1442\":{}},\"comment\":{}}],[\"ldp\",{\"_index\":1213,\"name\":{\"3372\":{}},\"comment\":{}}],[\"level\",{\"_index\":555,\"name\":{\"1521\":{}},\"comment\":{}}],[\"limit\",{\"_index\":837,\"name\":{\"2382\":{},\"2393\":{},\"2400\":{}},\"comment\":{}}],[\"link\",{\"_index\":129,\"name\":{\"303\":{}},\"comment\":{}}],[\"linkentry\",{\"_index\":1137,\"name\":{\"3281\":{}},\"comment\":{}}],[\"linkentryparameters\",{\"_index\":1135,\"name\":{\"3279\":{}},\"comment\":{}}],[\"linkhascontextrelation\",{\"_index\":174,\"name\":{\"450\":{}},\"comment\":{}}],[\"linkmetadatagenerator\",{\"_index\":128,\"name\":{\"301\":{}},\"comment\":{}}],[\"linkrelmap\",{\"_index\":165,\"name\":{\"430\":{},\"620\":{}},\"comment\":{}}],[\"linkrelmetadatawriter\",{\"_index\":222,\"name\":{\"618\":{}},\"comment\":{}}],[\"linkrelobject\",{\"_index\":166,\"name\":{\"434\":{}},\"comment\":{}}],[\"linkrelparser\",{\"_index\":164,\"name\":{\"427\":{}},\"comment\":{}}],[\"listcredentialshandler\",{\"_index\":334,\"name\":{\"861\":{}},\"comment\":{}}],[\"listeners\",{\"_index\":290,\"name\":{\"765\":{}},\"comment\":{}}],[\"listsinglethreadedcomponents\",{\"_index\":458,\"name\":{\"1221\":{}},\"comment\":{}}],[\"loadfromenv\",{\"_index\":479,\"name\":{\"1290\":{}},\"comment\":{}}],[\"location\",{\"_index\":945,\"name\":{\"2707\":{},\"2765\":{},\"2809\":{}},\"comment\":{}}],[\"locationinteractionhandler\",{\"_index\":426,\"name\":{\"1099\":{}},\"comment\":{}}],[\"lockedrepresentationrun\",{\"_index\":917,\"name\":{\"2583\":{}},\"comment\":{}}],[\"locker\",{\"_index\":758,\"name\":{\"2124\":{},\"2981\":{},\"3007\":{},\"3022\":{},\"3066\":{}},\"comment\":{}}],[\"lockfolder\",{\"_index\":1010,\"name\":{\"2990\":{}},\"comment\":{}}],[\"lockidentifier\",{\"_index\":759,\"name\":{\"2125\":{}},\"comment\":{}}],[\"lockingresourcestore\",{\"_index\":914,\"name\":{\"2570\":{}},\"comment\":{}}],[\"lockoptions\",{\"_index\":1009,\"name\":{\"2989\":{}},\"comment\":{}}],[\"locks\",{\"_index\":915,\"name\":{\"2574\":{}},\"comment\":{}}],[\"log\",{\"_index\":537,\"name\":{\"1451\":{},\"1454\":{},\"1470\":{},\"1481\":{},\"1498\":{},\"1512\":{}},\"comment\":{}}],[\"log_levels\",{\"_index\":546,\"name\":{\"1491\":{}},\"comment\":{}}],[\"logger\",{\"_index\":2,\"name\":{\"2\":{},\"22\":{},\"42\":{},\"48\":{},\"164\":{},\"174\":{},\"184\":{},\"196\":{},\"206\":{},\"235\":{},\"245\":{},\"378\":{},\"384\":{},\"390\":{},\"418\":{},\"429\":{},\"448\":{},\"455\":{},\"530\":{},\"537\":{},\"544\":{},\"576\":{},\"600\":{},\"621\":{},\"676\":{},\"709\":{},\"764\":{},\"782\":{},\"874\":{},\"888\":{},\"898\":{},\"907\":{},\"1022\":{},\"1113\":{},\"1124\":{},\"1139\":{},\"1174\":{},\"1197\":{},\"1206\":{},\"1213\":{},\"1248\":{},\"1266\":{},\"1345\":{},\"1363\":{},\"1373\":{},\"1389\":{},\"1427\":{},\"1453\":{},\"1480\":{},\"1507\":{},\"1511\":{},\"1586\":{},\"1623\":{},\"1631\":{},\"1646\":{},\"1664\":{},\"1700\":{},\"1739\":{},\"1754\":{},\"1798\":{},\"1830\":{},\"1894\":{},\"1944\":{},\"2173\":{},\"2192\":{},\"2216\":{},\"2254\":{},\"2281\":{},\"2294\":{},\"2304\":{},\"2313\":{},\"2333\":{},\"2358\":{},\"2365\":{},\"2527\":{},\"2572\":{},\"2626\":{},\"2860\":{},\"2937\":{},\"2960\":{},\"2969\":{},\"2987\":{},\"3021\":{},\"3039\":{},\"3065\":{},\"3073\":{}},\"comment\":{}}],[\"loggerfactory\",{\"_index\":524,\"name\":{\"1414\":{},\"1445\":{},\"1488\":{}},\"comment\":{}}],[\"loggerinitializer\",{\"_index\":523,\"name\":{\"1412\":{}},\"comment\":{}}],[\"loginhandler\",{\"_index\":344,\"name\":{\"886\":{}},\"comment\":{}}],[\"loglevel\",{\"_index\":547,\"name\":{\"1492\":{}},\"comment\":{}}],[\"logmetadata\",{\"_index\":534,\"name\":{\"1447\":{}},\"comment\":{}}],[\"ma\",{\"_index\":1214,\"name\":{\"3373\":{}},\"comment\":{}}],[\"mailtransporter\",{\"_index\":381,\"name\":{\"980\":{}},\"comment\":{}}],[\"maintemplatepath\",{\"_index\":738,\"name\":{\"2028\":{},\"2035\":{}},\"comment\":{}}],[\"map\",{\"_index\":1076,\"name\":{\"3168\":{},\"3289\":{}},\"comment\":{}}],[\"mapentry\",{\"_index\":1071,\"name\":{\"3133\":{}},\"comment\":{}}],[\"mapfilepathtourl\",{\"_index\":787,\"name\":{\"2200\":{},\"2223\":{},\"2238\":{},\"2260\":{},\"2288\":{}},\"comment\":{}}],[\"mapkey\",{\"_index\":1069,\"name\":{\"3131\":{}},\"comment\":{}}],[\"mappedmetadatawriter\",{\"_index\":223,\"name\":{\"625\":{}},\"comment\":{}}],[\"mappings\",{\"_index\":625,\"name\":{\"1736\":{}},\"comment\":{}}],[\"mapurltocontainerpath\",{\"_index\":784,\"name\":{\"2197\":{},\"2221\":{},\"2259\":{},\"2286\":{}},\"comment\":{}}],[\"mapurltodocumentpath\",{\"_index\":785,\"name\":{\"2198\":{},\"2212\":{},\"2252\":{},\"2278\":{}},\"comment\":{}}],[\"mapurltofilepath\",{\"_index\":783,\"name\":{\"2196\":{},\"2220\":{},\"2240\":{},\"2258\":{},\"2285\":{}},\"comment\":{}}],[\"mapvalue\",{\"_index\":1070,\"name\":{\"3132\":{}},\"comment\":{}}],[\"markdowntohtmlconverter\",{\"_index\":743,\"name\":{\"2053\":{}},\"comment\":{}}],[\"matches\",{\"_index\":887,\"name\":{\"2509\":{},\"2523\":{}},\"comment\":{}}],[\"matchesauthorizationscheme\",{\"_index\":1123,\"name\":{\"3250\":{}},\"comment\":{}}],[\"matchesetag\",{\"_index\":881,\"name\":{\"2498\":{},\"2504\":{},\"2517\":{}},\"comment\":{}}],[\"matchesmediapreferences\",{\"_index\":728,\"name\":{\"1999\":{}},\"comment\":{}}],[\"matchesmediatype\",{\"_index\":729,\"name\":{\"2000\":{}},\"comment\":{}}],[\"matchesmetadata\",{\"_index\":886,\"name\":{\"2508\":{},\"2521\":{}},\"comment\":{}}],[\"matchespreferences\",{\"_index\":913,\"name\":{\"2563\":{}},\"comment\":{}}],[\"matchreaders\",{\"_index\":90,\"name\":{\"200\":{}},\"comment\":{}}],[\"matchstore\",{\"_index\":858,\"name\":{\"2439\":{}},\"comment\":{}}],[\"mediarange\",{\"_index\":912,\"name\":{\"2561\":{}},\"comment\":{}}],[\"mediatype\",{\"_index\":1129,\"name\":{\"3258\":{}},\"comment\":{}}],[\"memorymapstorage\",{\"_index\":770,\"name\":{\"2159\":{}},\"comment\":{}}],[\"memoryresourcelocker\",{\"_index\":1029,\"name\":{\"3019\":{}},\"comment\":{}}],[\"mergepermissionmaps\",{\"_index\":100,\"name\":{\"226\":{}},\"comment\":{}}],[\"mergepermissions\",{\"_index\":101,\"name\":{\"227\":{}},\"comment\":{}}],[\"meta\",{\"_index\":1103,\"name\":{\"3229\":{}},\"comment\":{}}],[\"metadata\",{\"_index\":143,\"name\":{\"357\":{},\"491\":{},\"657\":{},\"662\":{},\"667\":{},\"672\":{},\"689\":{},\"693\":{},\"698\":{},\"751\":{}},\"comment\":{}}],[\"metadatacollector\",{\"_index\":615,\"name\":{\"1694\":{},\"1704\":{}},\"comment\":{}}],[\"metadatagenerator\",{\"_index\":124,\"name\":{\"289\":{},\"308\":{}},\"comment\":{}}],[\"metadatagraph\",{\"_index\":247,\"name\":{\"706\":{}},\"comment\":{}}],[\"metadataidentifier\",{\"_index\":244,\"name\":{\"703\":{}},\"comment\":{}}],[\"metadataparser\",{\"_index\":172,\"name\":{\"441\":{},\"472\":{},\"479\":{}},\"comment\":{}}],[\"metadatarecord\",{\"_index\":246,\"name\":{\"705\":{}},\"comment\":{}}],[\"metadatastrategy\",{\"_index\":194,\"name\":{\"546\":{},\"1598\":{},\"1606\":{},\"2306\":{},\"2531\":{},\"2627\":{}},\"comment\":{}}],[\"metadatavalue\",{\"_index\":245,\"name\":{\"704\":{}},\"comment\":{}}],[\"metadatawriter\",{\"_index\":225,\"name\":{\"631\":{},\"677\":{}},\"comment\":{}}],[\"method\",{\"_index\":285,\"name\":{\"756\":{}},\"comment\":{}}],[\"methodfilterhandler\",{\"_index\":980,\"name\":{\"2878\":{}},\"comment\":{}}],[\"methodmodesextractor\",{\"_index\":46,\"name\":{\"111\":{}},\"comment\":{}}],[\"methodnotallowedhttperror\",{\"_index\":954,\"name\":{\"2747\":{}},\"comment\":{}}],[\"methods\",{\"_index\":955,\"name\":{\"2753\":{},\"2880\":{}},\"comment\":{}}],[\"minquality\",{\"_index\":711,\"name\":{\"1961\":{}},\"comment\":{}}],[\"modesextractor\",{\"_index\":45,\"name\":{\"106\":{},\"1640\":{},\"1648\":{}},\"comment\":{}}],[\"modifiedmetadatawriter\",{\"_index\":226,\"name\":{\"636\":{}},\"comment\":{}}],[\"modifiedsince\",{\"_index\":883,\"name\":{\"2500\":{},\"2506\":{},\"2519\":{}},\"comment\":{}}],[\"modify\",{\"_index\":1067,\"name\":{\"3129\":{}},\"comment\":{}}],[\"modifyoptions\",{\"_index\":1073,\"name\":{\"3136\":{}},\"comment\":{}}],[\"modifyresource\",{\"_index\":877,\"name\":{\"2485\":{},\"2496\":{},\"2536\":{},\"2568\":{},\"2581\":{},\"2594\":{},\"2603\":{},\"2608\":{},\"2619\":{},\"2637\":{},\"2651\":{},\"2663\":{}},\"comment\":{}}],[\"modifytypeweights\",{\"_index\":705,\"name\":{\"1954\":{}},\"comment\":{}}],[\"modulepath\",{\"_index\":1162,\"name\":{\"3314\":{}},\"comment\":{}}],[\"modulepathplaceholder\",{\"_index\":1166,\"name\":{\"3318\":{}},\"comment\":{}}],[\"moduleversionverifier\",{\"_index\":525,\"name\":{\"1418\":{}},\"comment\":{}}],[\"monitoringstore\",{\"_index\":920,\"name\":{\"2586\":{}},\"comment\":{}}],[\"movedpermanentlyhttperror\",{\"_index\":956,\"name\":{\"2759\":{}},\"comment\":{}}],[\"n3patchbodyparser\",{\"_index\":145,\"name\":{\"363\":{}},\"comment\":{}}],[\"n3patcher\",{\"_index\":817,\"name\":{\"2311\":{}},\"comment\":{}}],[\"n3patchmodesextractor\",{\"_index\":47,\"name\":{\"117\":{}},\"comment\":{}}],[\"name\",{\"_index\":318,\"name\":{\"816\":{},\"1140\":{},\"1159\":{},\"1178\":{},\"1285\":{},\"1618\":{},\"1909\":{}},\"comment\":{}}],[\"namespace\",{\"_index\":1205,\"name\":{\"3362\":{}},\"comment\":{}}],[\"namespaceprefix\",{\"_index\":1034,\"name\":{\"3033\":{},\"3044\":{}},\"comment\":{}}],[\"nocheckownershipvalidator\",{\"_index\":429,\"name\":{\"1111\":{}},\"comment\":{}}],[\"normalizefilepath\",{\"_index\":1145,\"name\":{\"3294\":{}},\"comment\":{}}],[\"notfoundhttperror\",{\"_index\":957,\"name\":{\"2771\":{}},\"comment\":{}}],[\"notimplementedhttperror\",{\"_index\":958,\"name\":{\"2782\":{}},\"comment\":{}}],[\"notmatchesetag\",{\"_index\":882,\"name\":{\"2499\":{},\"2505\":{},\"2518\":{}},\"comment\":{}}],[\"object\",{\"_index\":1175,\"name\":{\"3329\":{}},\"comment\":{}}],[\"objectallowed\",{\"_index\":170,\"name\":{\"439\":{}},\"comment\":{}}],[\"oidc\",{\"_index\":1215,\"name\":{\"3374\":{}},\"comment\":{}}],[\"oidchttphandler\",{\"_index\":449,\"name\":{\"1204\":{}},\"comment\":{}}],[\"oidcinteraction\",{\"_index\":425,\"name\":{\"1093\":{}},\"comment\":{}}],[\"oidcissuer\",{\"_index\":400,\"name\":{\"1015\":{},\"1620\":{}},\"comment\":{}}],[\"oidcpath\",{\"_index\":294,\"name\":{\"773\":{},\"786\":{}},\"comment\":{}}],[\"okresponsedescription\",{\"_index\":235,\"name\":{\"659\":{}},\"comment\":{}}],[\"onresourcechanged\",{\"_index\":291,\"name\":{\"767\":{}},\"comment\":{}}],[\"operation\",{\"_index\":182,\"name\":{\"492\":{},\"522\":{},\"755\":{},\"847\":{},\"1092\":{},\"1684\":{}},\"comment\":{}}],[\"operationhandler\",{\"_index\":190,\"name\":{\"523\":{},\"1643\":{},\"1651\":{},\"1697\":{},\"1705\":{}},\"comment\":{}}],[\"operationhandlerinput\",{\"_index\":189,\"name\":{\"521\":{}},\"comment\":{}}],[\"operationhttphandler\",{\"_index\":613,\"name\":{\"1687\":{}},\"comment\":{}}],[\"operationhttphandlerinput\",{\"_index\":612,\"name\":{\"1683\":{}},\"comment\":{}}],[\"operationmetadatacollector\",{\"_index\":183,\"name\":{\"493\":{}},\"comment\":{}}],[\"operationmetadatacollectorinput\",{\"_index\":181,\"name\":{\"490\":{}},\"comment\":{}}],[\"options\",{\"_index\":475,\"name\":{\"1286\":{},\"1554\":{},\"1666\":{},\"1968\":{}},\"comment\":{}}],[\"originalurlextractor\",{\"_index\":15,\"name\":{\"20\":{},\"404\":{}},\"comment\":{}}],[\"originalurlextractorargs\",{\"_index\":159,\"name\":{\"401\":{}},\"comment\":{}}],[\"outconverter\",{\"_index\":927,\"name\":{\"2629\":{}},\"comment\":{}}],[\"outputpreferences\",{\"_index\":746,\"name\":{\"2069\":{}},\"comment\":{}}],[\"outputtypes\",{\"_index\":695,\"name\":{\"1937\":{},\"1983\":{},\"2015\":{},\"2023\":{},\"2041\":{},\"2049\":{},\"2058\":{},\"2072\":{},\"2081\":{}},\"comment\":{}}],[\"override\",{\"_index\":566,\"name\":{\"1548\":{}},\"comment\":{}}],[\"ownauthorization\",{\"_index\":126,\"name\":{\"291\":{}},\"comment\":{}}],[\"ownerpermissionreader\",{\"_index\":78,\"name\":{\"172\":{}},\"comment\":{}}],[\"ownershipvalidator\",{\"_index\":390,\"name\":{\"999\":{},\"1026\":{},\"1117\":{}},\"comment\":{}}],[\"parallelhandler\",{\"_index\":982,\"name\":{\"2886\":{}},\"comment\":{}}],[\"parameters\",{\"_index\":1128,\"name\":{\"3256\":{},\"3277\":{},\"3283\":{}},\"comment\":{}}],[\"parent\",{\"_index\":680,\"name\":{\"1910\":{}},\"comment\":{}}],[\"parentcontainerreader\",{\"_index\":82,\"name\":{\"182\":{}},\"comment\":{}}],[\"parseaccept\",{\"_index\":1114,\"name\":{\"3241\":{}},\"comment\":{}}],[\"parseacceptcharset\",{\"_index\":1115,\"name\":{\"3242\":{}},\"comment\":{}}],[\"parseacceptdatetime\",{\"_index\":1118,\"name\":{\"3245\":{}},\"comment\":{}}],[\"parseacceptencoding\",{\"_index\":1116,\"name\":{\"3243\":{}},\"comment\":{}}],[\"parseacceptlanguage\",{\"_index\":1117,\"name\":{\"3244\":{}},\"comment\":{}}],[\"parsecontenttype\",{\"_index\":1120,\"name\":{\"3247\":{}},\"comment\":{}}],[\"parsedateheader\",{\"_index\":156,\"name\":{\"392\":{}},\"comment\":{}}],[\"parseforwarded\",{\"_index\":1121,\"name\":{\"3248\":{}},\"comment\":{}}],[\"parseinput\",{\"_index\":345,\"name\":{\"892\":{}},\"comment\":{}}],[\"parselinkheader\",{\"_index\":1122,\"name\":{\"3249\":{}},\"comment\":{}}],[\"parseparameters\",{\"_index\":1113,\"name\":{\"3240\":{}},\"comment\":{}}],[\"parsepatch\",{\"_index\":146,\"name\":{\"367\":{}},\"comment\":{}}],[\"parsequads\",{\"_index\":1171,\"name\":{\"3323\":{}},\"comment\":{}}],[\"parserdfwebid\",{\"_index\":444,\"name\":{\"1177\":{}},\"comment\":{}}],[\"parsetagheader\",{\"_index\":157,\"name\":{\"393\":{}},\"comment\":{}}],[\"parsinghttphandler\",{\"_index\":616,\"name\":{\"1698\":{}},\"comment\":{}}],[\"parsinghttphandlerargs\",{\"_index\":614,\"name\":{\"1692\":{}},\"comment\":{}}],[\"pass\",{\"_index\":378,\"name\":{\"976\":{}},\"comment\":{}}],[\"passphrase\",{\"_index\":602,\"name\":{\"1661\":{}},\"comment\":{}}],[\"passthroughadapter\",{\"_index\":441,\"name\":{\"1157\":{}},\"comment\":{}}],[\"passthroughadapterfactory\",{\"_index\":442,\"name\":{\"1168\":{}},\"comment\":{}}],[\"passthroughconverter\",{\"_index\":744,\"name\":{\"2062\":{}},\"comment\":{}}],[\"passthroughdataaccessor\",{\"_index\":675,\"name\":{\"1881\":{}},\"comment\":{}}],[\"passthroughstore\",{\"_index\":922,\"name\":{\"2596\":{}},\"comment\":{}}],[\"password\",{\"_index\":361,\"name\":{\"943\":{},\"1005\":{},\"3035\":{}},\"comment\":{}}],[\"patch\",{\"_index\":208,\"name\":{\"587\":{},\"692\":{},\"2318\":{},\"2325\":{},\"2340\":{},\"2349\":{},\"2375\":{}},\"comment\":{}}],[\"patcher\",{\"_index\":812,\"name\":{\"2295\":{},\"2305\":{},\"2334\":{},\"2359\":{}},\"comment\":{}}],[\"patchhandler\",{\"_index\":821,\"name\":{\"2326\":{},\"2607\":{}},\"comment\":{}}],[\"patchhandlerinput\",{\"_index\":820,\"name\":{\"2321\":{}},\"comment\":{}}],[\"patchingstore\",{\"_index\":923,\"name\":{\"2605\":{}},\"comment\":{}}],[\"patchoperationhandler\",{\"_index\":191,\"name\":{\"528\":{}},\"comment\":{}}],[\"path\",{\"_index\":282,\"name\":{\"748\":{},\"1035\":{},\"1382\":{},\"2828\":{}},\"comment\":{}}],[\"pathbasedreader\",{\"_index\":87,\"name\":{\"194\":{}},\"comment\":{}}],[\"pathmatcher\",{\"_index\":626,\"name\":{\"1737\":{}},\"comment\":{}}],[\"paths\",{\"_index\":89,\"name\":{\"198\":{}},\"comment\":{}}],[\"pathsuffix\",{\"_index\":805,\"name\":{\"2248\":{}},\"comment\":{}}],[\"pathtokey\",{\"_index\":755,\"name\":{\"2110\":{}},\"comment\":{}}],[\"payload\",{\"_index\":771,\"name\":{\"2170\":{},\"2188\":{}},\"comment\":{}}],[\"permission\",{\"_index\":55,\"name\":{\"130\":{}},\"comment\":{}}],[\"permissionbasedauthorizer\",{\"_index\":92,\"name\":{\"204\":{}},\"comment\":{}}],[\"permissionmap\",{\"_index\":57,\"name\":{\"132\":{}},\"comment\":{}}],[\"permissionreader\",{\"_index\":98,\"name\":{\"218\":{},\"1641\":{},\"1649\":{}},\"comment\":{}}],[\"permissionreaderinput\",{\"_index\":97,\"name\":{\"215\":{}},\"comment\":{}}],[\"permissions\",{\"_index\":67,\"name\":{\"148\":{}},\"comment\":{}}],[\"permissionset\",{\"_index\":56,\"name\":{\"131\":{}},\"comment\":{}}],[\"pfx\",{\"_index\":601,\"name\":{\"1660\":{}},\"comment\":{}}],[\"pid\",{\"_index\":535,\"name\":{\"1449\":{}},\"comment\":{}}],[\"pim\",{\"_index\":1216,\"name\":{\"3375\":{}},\"comment\":{}}],[\"pipesafely\",{\"_index\":1185,\"name\":{\"3340\":{}},\"comment\":{}}],[\"plainjsonldfilter\",{\"_index\":173,\"name\":{\"446\":{}},\"comment\":{}}],[\"podbaseurl\",{\"_index\":351,\"name\":{\"917\":{},\"1016\":{}},\"comment\":{}}],[\"podgenerator\",{\"_index\":572,\"name\":{\"1564\":{},\"1624\":{}},\"comment\":{}}],[\"podmanager\",{\"_index\":391,\"name\":{\"1001\":{},\"1028\":{},\"1635\":{}},\"comment\":{}}],[\"podname\",{\"_index\":393,\"name\":{\"1006\":{}},\"comment\":{}}],[\"podquotastrategy\",{\"_index\":841,\"name\":{\"2386\":{}},\"comment\":{}}],[\"podsettings\",{\"_index\":593,\"name\":{\"1615\":{}},\"comment\":{}}],[\"port\",{\"_index\":376,\"name\":{\"972\":{},\"1436\":{},\"2829\":{}},\"comment\":{}}],[\"posix\",{\"_index\":1217,\"name\":{\"3376\":{}},\"comment\":{}}],[\"post\",{\"_index\":209,\"name\":{\"588\":{}},\"comment\":{}}],[\"postoperationhandler\",{\"_index\":192,\"name\":{\"535\":{}},\"comment\":{}}],[\"postreadcleanup\",{\"_index\":1026,\"name\":{\"3016\":{}},\"comment\":{}}],[\"preconditionfailedhttperror\",{\"_index\":959,\"name\":{\"2793\":{}},\"comment\":{}}],[\"predicate\",{\"_index\":1174,\"name\":{\"3328\":{}},\"comment\":{}}],[\"preferenceparser\",{\"_index\":177,\"name\":{\"464\":{},\"471\":{},\"478\":{},\"553\":{}},\"comment\":{}}],[\"preferences\",{\"_index\":287,\"name\":{\"758\":{},\"2088\":{},\"2426\":{}},\"comment\":{}}],[\"preferencestostring\",{\"_index\":731,\"name\":{\"2002\":{}},\"comment\":{}}],[\"preferencesupport\",{\"_index\":853,\"name\":{\"2424\":{}},\"comment\":{}}],[\"preferred_prefix\",{\"_index\":1232,\"name\":{\"3391\":{}},\"comment\":{}}],[\"preferred_prefix_term\",{\"_index\":1233,\"name\":{\"3392\":{}},\"comment\":{}}],[\"prereadsetup\",{\"_index\":1025,\"name\":{\"3015\":{}},\"comment\":{}}],[\"processfile\",{\"_index\":592,\"name\":{\"1614\":{}},\"comment\":{}}],[\"processfolder\",{\"_index\":587,\"name\":{\"1609\":{}},\"comment\":{}}],[\"processhandler\",{\"_index\":983,\"name\":{\"2892\":{}},\"comment\":{}}],[\"promisesome\",{\"_index\":1168,\"name\":{\"3320\":{}},\"comment\":{}}],[\"prompthandler\",{\"_index\":427,\"name\":{\"1105\":{}},\"comment\":{}}],[\"promptroutes\",{\"_index\":428,\"name\":{\"1107\":{}},\"comment\":{}}],[\"proto\",{\"_index\":1141,\"name\":{\"3288\":{}},\"comment\":{}}],[\"provider\",{\"_index\":301,\"name\":{\"794\":{}},\"comment\":{}}],[\"providerfactory\",{\"_index\":313,\"name\":{\"806\":{},\"1060\":{},\"1192\":{},\"1198\":{},\"1207\":{}},\"comment\":{}}],[\"public\",{\"_index\":10,\"name\":{\"10\":{}},\"comment\":{}}],[\"publiccredentialsextractor\",{\"_index\":16,\"name\":{\"26\":{}},\"comment\":{}}],[\"put\",{\"_index\":210,\"name\":{\"589\":{}},\"comment\":{}}],[\"putoperationhandler\",{\"_index\":193,\"name\":{\"542\":{}},\"comment\":{}}],[\"quads\",{\"_index\":251,\"name\":{\"713\":{}},\"comment\":{}}],[\"quadtordfconverter\",{\"_index\":745,\"name\":{\"2067\":{}},\"comment\":{}}],[\"quotastrategy\",{\"_index\":843,\"name\":{\"2397\":{}},\"comment\":{}}],[\"quotavalidator\",{\"_index\":872,\"name\":{\"2470\":{}},\"comment\":{}}],[\"range\",{\"_index\":1126,\"name\":{\"3253\":{},\"3260\":{},\"3263\":{},\"3266\":{},\"3269\":{},\"3272\":{}},\"comment\":{}}],[\"rawbodyparser\",{\"_index\":153,\"name\":{\"376\":{}},\"comment\":{}}],[\"rdf\",{\"_index\":1218,\"name\":{\"3377\":{}},\"comment\":{}}],[\"rdfpatcher\",{\"_index\":822,\"name\":{\"2331\":{}},\"comment\":{}}],[\"rdfs\",{\"_index\":1219,\"name\":{\"3378\":{}},\"comment\":{}}],[\"rdfstorepatcher\",{\"_index\":824,\"name\":{\"2342\":{}},\"comment\":{}}],[\"rdfstorepatcherinput\",{\"_index\":823,\"name\":{\"2338\":{}},\"comment\":{}}],[\"rdftoquadconverter\",{\"_index\":747,\"name\":{\"2076\":{}},\"comment\":{}}],[\"rdfvalidator\",{\"_index\":130,\"name\":{\"313\":{}},\"comment\":{}}],[\"read\",{\"_index\":49,\"name\":{\"124\":{},\"3003\":{}},\"comment\":{}}],[\"readabletoquads\",{\"_index\":1182,\"name\":{\"3337\":{}},\"comment\":{}}],[\"readabletostring\",{\"_index\":1181,\"name\":{\"3336\":{}},\"comment\":{}}],[\"reader\",{\"_index\":74,\"name\":{\"165\":{},\"185\":{},\"236\":{}},\"comment\":{}}],[\"readjsonstream\",{\"_index\":1183,\"name\":{\"3338\":{}},\"comment\":{}}],[\"readonlystore\",{\"_index\":924,\"name\":{\"2615\":{}},\"comment\":{}}],[\"readpackagejson\",{\"_index\":1165,\"name\":{\"3317\":{}},\"comment\":{}}],[\"readtemplate\",{\"_index\":1086,\"name\":{\"3205\":{}},\"comment\":{}}],[\"readwritelocker\",{\"_index\":1032,\"name\":{\"3027\":{}},\"comment\":{}}],[\"recipient\",{\"_index\":383,\"name\":{\"986\":{}},\"comment\":{}}],[\"recordid\",{\"_index\":364,\"name\":{\"947\":{}},\"comment\":{}}],[\"recordobject\",{\"_index\":1176,\"name\":{\"3330\":{}},\"comment\":{}}],[\"redirecthttperror\",{\"_index\":961,\"name\":{\"2805\":{}},\"comment\":{}}],[\"redirecthttperrorclass\",{\"_index\":962,\"name\":{\"2815\":{}},\"comment\":{}}],[\"redirectingerrorhandler\",{\"_index\":203,\"name\":{\"569\":{}},\"comment\":{}}],[\"redirectinghttphandler\",{\"_index\":633,\"name\":{\"1752\":{}},\"comment\":{}}],[\"redirects\",{\"_index\":634,\"name\":{\"1755\":{}},\"comment\":{}}],[\"redis\",{\"_index\":1038,\"name\":{\"3040\":{}},\"comment\":{}}],[\"redislock\",{\"_index\":1040,\"name\":{\"3042\":{}},\"comment\":{}}],[\"redislocker\",{\"_index\":1037,\"name\":{\"3037\":{}},\"comment\":{}}],[\"redisrw\",{\"_index\":1039,\"name\":{\"3041\":{}},\"comment\":{}}],[\"redissettings\",{\"_index\":1033,\"name\":{\"3032\":{}},\"comment\":{}}],[\"reduce\",{\"_index\":1144,\"name\":{\"3293\":{}},\"comment\":{}}],[\"regex\",{\"_index\":809,\"name\":{\"2269\":{},\"2431\":{},\"2968\":{}},\"comment\":{}}],[\"regexrouterrule\",{\"_index\":856,\"name\":{\"2433\":{}},\"comment\":{}}],[\"regexrule\",{\"_index\":855,\"name\":{\"2429\":{}},\"comment\":{}}],[\"register\",{\"_index\":396,\"name\":{\"1009\":{},\"1018\":{},\"1031\":{},\"1253\":{}},\"comment\":{}}],[\"registrationhandler\",{\"_index\":346,\"name\":{\"896\":{}},\"comment\":{}}],[\"registrationmanager\",{\"_index\":347,\"name\":{\"899\":{},\"1020\":{},\"1244\":{},\"1249\":{},\"1428\":{}},\"comment\":{}}],[\"registrationmanagerargs\",{\"_index\":387,\"name\":{\"995\":{}},\"comment\":{}}],[\"registrationparams\",{\"_index\":392,\"name\":{\"1002\":{}},\"comment\":{}}],[\"registrationresponse\",{\"_index\":399,\"name\":{\"1012\":{}},\"comment\":{}}],[\"rel\",{\"_index\":1136,\"name\":{\"3280\":{}},\"comment\":{}}],[\"relationtype\",{\"_index\":218,\"name\":{\"603\":{}},\"comment\":{}}],[\"relativepathinteractionroute\",{\"_index\":409,\"name\":{\"1047\":{}},\"comment\":{}}],[\"relativetourl\",{\"_index\":810,\"name\":{\"2276\":{}},\"comment\":{}}],[\"release\",{\"_index\":1014,\"name\":{\"2995\":{},\"3025\":{},\"3054\":{},\"3061\":{}},\"comment\":{}}],[\"remove\",{\"_index\":258,\"name\":{\"721\":{},\"3139\":{}},\"comment\":{}}],[\"removeall\",{\"_index\":260,\"name\":{\"723\":{}},\"comment\":{}}],[\"removebadpaths\",{\"_index\":703,\"name\":{\"1952\":{}},\"comment\":{}}],[\"removecontenttype\",{\"_index\":267,\"name\":{\"730\":{}},\"comment\":{}}],[\"removeexpiredentries\",{\"_index\":774,\"name\":{\"2181\":{}},\"comment\":{}}],[\"removequad\",{\"_index\":255,\"name\":{\"718\":{}},\"comment\":{}}],[\"removequads\",{\"_index\":256,\"name\":{\"719\":{}},\"comment\":{}}],[\"removeresponsemetadata\",{\"_index\":897,\"name\":{\"2545\":{}},\"comment\":{}}],[\"render\",{\"_index\":1081,\"name\":{\"3193\":{},\"3198\":{},\"3203\":{},\"3214\":{}},\"comment\":{}}],[\"renderedname\",{\"_index\":1080,\"name\":{\"3192\":{}},\"comment\":{}}],[\"replacements\",{\"_index\":1111,\"name\":{\"3238\":{}},\"comment\":{}}],[\"reportaccesserror\",{\"_index\":93,\"name\":{\"209\":{}},\"comment\":{}}],[\"reporter\",{\"_index\":836,\"name\":{\"2381\":{},\"2392\":{},\"2399\":{}},\"comment\":{}}],[\"representation\",{\"_index\":139,\"name\":{\"348\":{},\"697\":{},\"1569\":{},\"2087\":{},\"2350\":{}},\"comment\":{}}],[\"representationconverter\",{\"_index\":750,\"name\":{\"2089\":{}},\"comment\":{}}],[\"representationconverterargs\",{\"_index\":749,\"name\":{\"2085\":{}},\"comment\":{}}],[\"representationconvertingstore\",{\"_index\":925,\"name\":{\"2624\":{}},\"comment\":{}}],[\"representationmetadata\",{\"_index\":248,\"name\":{\"707\":{}},\"comment\":{}}],[\"representationpatcher\",{\"_index\":826,\"name\":{\"2351\":{}},\"comment\":{}}],[\"representationpatcherinput\",{\"_index\":825,\"name\":{\"2347\":{}},\"comment\":{}}],[\"representationpatchhandler\",{\"_index\":827,\"name\":{\"2356\":{}},\"comment\":{}}],[\"representationpreferences\",{\"_index\":274,\"name\":{\"740\":{}},\"comment\":{}}],[\"request\",{\"_index\":142,\"name\":{\"356\":{},\"563\":{},\"1670\":{},\"1685\":{}},\"comment\":{}}],[\"requestedmodes\",{\"_index\":70,\"name\":{\"155\":{},\"217\":{}},\"comment\":{}}],[\"requestparser\",{\"_index\":180,\"name\":{\"485\":{},\"1693\":{},\"1701\":{}},\"comment\":{}}],[\"requireall\",{\"_index\":990,\"name\":{\"2922\":{}},\"comment\":{}}],[\"requiredinroot\",{\"_index\":127,\"name\":{\"292\":{}},\"comment\":{}}],[\"requiremodepermission\",{\"_index\":94,\"name\":{\"210\":{}},\"comment\":{}}],[\"resetinternalloggerfactory\",{\"_index\":550,\"name\":{\"1495\":{}},\"comment\":{}}],[\"resetpassword\",{\"_index\":341,\"name\":{\"880\":{},\"910\":{}},\"comment\":{}}],[\"resetpasswordhandler\",{\"_index\":348,\"name\":{\"905\":{}},\"comment\":{}}],[\"resetresponsedescription\",{\"_index\":236,\"name\":{\"664\":{}},\"comment\":{}}],[\"resetroute\",{\"_index\":338,\"name\":{\"871\":{},\"878\":{}},\"comment\":{}}],[\"resolveassetpath\",{\"_index\":1164,\"name\":{\"3316\":{}},\"comment\":{}}],[\"resolveerror\",{\"_index\":510,\"name\":{\"1357\":{}},\"comment\":{}}],[\"resolvemodulepath\",{\"_index\":1163,\"name\":{\"3315\":{}},\"comment\":{}}],[\"resolvers\",{\"_index\":494,\"name\":{\"1327\":{}},\"comment\":{}}],[\"resolveshorthand\",{\"_index\":508,\"name\":{\"1355\":{}},\"comment\":{}}],[\"resource\",{\"_index\":573,\"name\":{\"1567\":{}},\"comment\":{}}],[\"resourceidentifier\",{\"_index\":281,\"name\":{\"747\":{}},\"comment\":{}}],[\"resourcelink\",{\"_index\":800,\"name\":{\"2232\":{}},\"comment\":{}}],[\"resourcelocker\",{\"_index\":1046,\"name\":{\"3058\":{}},\"comment\":{}}],[\"resourcemapper\",{\"_index\":652,\"name\":{\"1799\":{},\"1831\":{}},\"comment\":{}}],[\"resourceset\",{\"_index\":40,\"name\":{\"86\":{},\"93\":{},\"100\":{},\"113\":{},\"119\":{},\"135\":{},\"207\":{},\"247\":{},\"2638\":{}},\"comment\":{}}],[\"resourcesgenerator\",{\"_index\":574,\"name\":{\"1570\":{},\"1626\":{},\"1633\":{}},\"comment\":{}}],[\"resourcestore\",{\"_index\":930,\"name\":{\"2642\":{}},\"comment\":{}}],[\"response\",{\"_index\":419,\"name\":{\"1078\":{},\"1671\":{},\"1686\":{}},\"comment\":{}}],[\"responsedescription\",{\"_index\":237,\"name\":{\"669\":{}},\"comment\":{}}],[\"responsetodataset\",{\"_index\":1105,\"name\":{\"3231\":{}},\"comment\":{}}],[\"responsewriter\",{\"_index\":239,\"name\":{\"681\":{},\"779\":{},\"792\":{},\"1696\":{},\"1703\":{}},\"comment\":{}}],[\"rest\",{\"_index\":578,\"name\":{\"1578\":{},\"2273\":{},\"3310\":{}},\"comment\":{}}],[\"result\",{\"_index\":1110,\"name\":{\"3237\":{}},\"comment\":{}}],[\"revokebygrantid\",{\"_index\":324,\"name\":{\"823\":{},\"1151\":{},\"1167\":{},\"1185\":{}},\"comment\":{}}],[\"rootfilepath\",{\"_index\":781,\"name\":{\"2194\":{},\"2218\":{},\"2256\":{},\"2283\":{},\"2451\":{}},\"comment\":{}}],[\"rootfilepathhandler\",{\"_index\":559,\"name\":{\"1530\":{}},\"comment\":{}}],[\"rootpod\",{\"_index\":398,\"name\":{\"1011\":{}},\"comment\":{}}],[\"route\",{\"_index\":408,\"name\":{\"1042\":{}},\"comment\":{}}],[\"routerhandler\",{\"_index\":639,\"name\":{\"1766\":{}},\"comment\":{}}],[\"routerhandlerargs\",{\"_index\":636,\"name\":{\"1760\":{}},\"comment\":{}}],[\"routerrule\",{\"_index\":860,\"name\":{\"2442\":{}},\"comment\":{}}],[\"routingauxiliaryidentifierstrategy\",{\"_index\":132,\"name\":{\"319\":{}},\"comment\":{}}],[\"routingauxiliarystrategy\",{\"_index\":135,\"name\":{\"327\":{}},\"comment\":{}}],[\"routingresourcestore\",{\"_index\":931,\"name\":{\"2655\":{}},\"comment\":{}}],[\"routingstorage\",{\"_index\":516,\"name\":{\"1376\":{},\"1625\":{}},\"comment\":{}}],[\"rule\",{\"_index\":27,\"name\":{\"59\":{},\"2657\":{}},\"comment\":{}}],[\"rules\",{\"_index\":857,\"name\":{\"2436\":{}},\"comment\":{}}],[\"run\",{\"_index\":500,\"name\":{\"1346\":{}},\"comment\":{}}],[\"runcli\",{\"_index\":502,\"name\":{\"1349\":{}},\"comment\":{}}],[\"runclisync\",{\"_index\":501,\"name\":{\"1348\":{}},\"comment\":{}}],[\"safeerrorhandler\",{\"_index\":204,\"name\":{\"574\":{}},\"comment\":{}}],[\"safelydeleteauxiliaryresources\",{\"_index\":907,\"name\":{\"2555\":{}},\"comment\":{}}],[\"safelygetresource\",{\"_index\":765,\"name\":{\"2144\":{}},\"comment\":{}}],[\"saltrounds\",{\"_index\":368,\"name\":{\"953\":{}},\"comment\":{}}],[\"sanitizeurlpart\",{\"_index\":1193,\"name\":{\"3350\":{}},\"comment\":{}}],[\"scheme\",{\"_index\":577,\"name\":{\"1577\":{},\"2272\":{},\"3309\":{}},\"comment\":{}}],[\"searchpimstorage\",{\"_index\":842,\"name\":{\"2391\":{}},\"comment\":{}}],[\"secret\",{\"_index\":315,\"name\":{\"810\":{}},\"comment\":{}}],[\"seededpodinitializer\",{\"_index\":526,\"name\":{\"1425\":{}},\"comment\":{}}],[\"sendername\",{\"_index\":379,\"name\":{\"977\":{},\"981\":{}},\"comment\":{}}],[\"sendresetmail\",{\"_index\":342,\"name\":{\"881\":{}},\"comment\":{}}],[\"sendsparqlconstruct\",{\"_index\":690,\"name\":{\"1920\":{}},\"comment\":{}}],[\"sendsparqlupdate\",{\"_index\":691,\"name\":{\"1921\":{}},\"comment\":{}}],[\"sequencehandler\",{\"_index\":986,\"name\":{\"2901\":{}},\"comment\":{}}],[\"serializequads\",{\"_index\":1170,\"name\":{\"3322\":{}},\"comment\":{}}],[\"server\",{\"_index\":530,\"name\":{\"1437\":{}},\"comment\":{}}],[\"serverfactory\",{\"_index\":529,\"name\":{\"1435\":{}},\"comment\":{}}],[\"serverinitializer\",{\"_index\":528,\"name\":{\"1433\":{}},\"comment\":{}}],[\"set\",{\"_index\":264,\"name\":{\"727\":{},\"2106\":{},\"2112\":{},\"2128\":{},\"2140\":{},\"2153\":{},\"2164\":{},\"2178\":{},\"3083\":{},\"3098\":{},\"3113\":{},\"3172\":{}},\"comment\":{}}],[\"setcontenttype\",{\"_index\":265,\"name\":{\"728\":{}},\"comment\":{}}],[\"setgloballoggerfactory\",{\"_index\":549,\"name\":{\"1494\":{}},\"comment\":{}}],[\"setmetadata\",{\"_index\":252,\"name\":{\"715\":{}},\"comment\":{}}],[\"setmultimap\",{\"_index\":1074,\"name\":{\"3140\":{}},\"comment\":{}}],[\"setoverrides\",{\"_index\":250,\"name\":{\"712\":{}},\"comment\":{}}],[\"setrepresentation\",{\"_index\":875,\"name\":{\"2479\":{},\"2493\":{},\"2535\":{},\"2569\":{},\"2579\":{},\"2593\":{},\"2604\":{},\"2614\":{},\"2620\":{},\"2633\":{},\"2645\":{},\"2661\":{}},\"comment\":{}}],[\"setsafeinterval\",{\"_index\":1200,\"name\":{\"3357\":{}},\"comment\":{}}],[\"setuphandler\",{\"_index\":467,\"name\":{\"1246\":{}},\"comment\":{}}],[\"setuphandlerargs\",{\"_index\":465,\"name\":{\"1243\":{}},\"comment\":{}}],[\"setuphttphandler\",{\"_index\":471,\"name\":{\"1264\":{}},\"comment\":{}}],[\"setuphttphandlerargs\",{\"_index\":469,\"name\":{\"1258\":{}},\"comment\":{}}],[\"shorthandextractor\",{\"_index\":492,\"name\":{\"1320\":{}},\"comment\":{}}],[\"shorthandresolver\",{\"_index\":495,\"name\":{\"1331\":{},\"1370\":{}},\"comment\":{}}],[\"showstacktrace\",{\"_index\":196,\"name\":{\"554\":{},\"578\":{},\"777\":{},\"790\":{},\"1657\":{}},\"comment\":{}}],[\"silly\",{\"_index\":542,\"name\":{\"1466\":{},\"1477\":{},\"1487\":{},\"1504\":{},\"1518\":{}},\"comment\":{}}],[\"simplelogger\",{\"_index\":536,\"name\":{\"1450\":{}},\"comment\":{}}],[\"singlerootidentifierstrategy\",{\"_index\":1000,\"name\":{\"2957\":{}},\"comment\":{}}],[\"singlethreaded\",{\"_index\":459,\"name\":{\"1222\":{}},\"comment\":{}}],[\"size\",{\"_index\":867,\"name\":{\"2457\":{},\"3090\":{},\"3105\":{},\"3126\":{},\"3185\":{}},\"comment\":{}}],[\"sizereporter\",{\"_index\":871,\"name\":{\"2461\":{}},\"comment\":{}}],[\"slugparser\",{\"_index\":175,\"name\":{\"453\":{}},\"comment\":{}}],[\"socketurl\",{\"_index\":632,\"name\":{\"1748\":{}},\"comment\":{}}],[\"solid\",{\"_index\":1220,\"name\":{\"3379\":{}},\"comment\":{}}],[\"solid_as\",{\"_index\":1221,\"name\":{\"3380\":{}},\"comment\":{}}],[\"solid_error\",{\"_index\":1222,\"name\":{\"3381\":{}},\"comment\":{}}],[\"solid_http\",{\"_index\":1223,\"name\":{\"3382\":{}},\"comment\":{}}],[\"solid_meta\",{\"_index\":1224,\"name\":{\"3383\":{}},\"comment\":{}}],[\"source\",{\"_index\":39,\"name\":{\"85\":{},\"92\":{},\"102\":{},\"817\":{},\"828\":{},\"832\":{},\"1043\":{},\"1071\":{},\"1101\":{},\"1160\":{},\"1170\":{},\"1179\":{},\"1190\":{},\"2103\":{},\"2136\":{},\"2174\":{},\"2323\":{},\"2512\":{},\"2564\":{},\"2573\":{},\"2588\":{},\"2598\":{},\"2609\":{},\"2621\":{},\"2634\":{},\"2867\":{},\"2881\":{},\"2895\":{}},\"comment\":{}}],[\"sources\",{\"_index\":133,\"name\":{\"321\":{},\"329\":{}},\"comment\":{}}],[\"sparqlconstruct\",{\"_index\":683,\"name\":{\"1913\":{}},\"comment\":{}}],[\"sparqldataaccessor\",{\"_index\":676,\"name\":{\"1892\":{}},\"comment\":{}}],[\"sparqldelete\",{\"_index\":687,\"name\":{\"1917\":{}},\"comment\":{}}],[\"sparqlinsert\",{\"_index\":685,\"name\":{\"1915\":{}},\"comment\":{}}],[\"sparqlinsertmetadata\",{\"_index\":686,\"name\":{\"1916\":{}},\"comment\":{}}],[\"sparqlselectgraph\",{\"_index\":684,\"name\":{\"1914\":{}},\"comment\":{}}],[\"sparqlupdatebodyparser\",{\"_index\":154,\"name\":{\"382\":{}},\"comment\":{}}],[\"sparqlupdatedeleteall\",{\"_index\":688,\"name\":{\"1918\":{}},\"comment\":{}}],[\"sparqlupdategraph\",{\"_index\":689,\"name\":{\"1919\":{}},\"comment\":{}}],[\"sparqlupdatemodesextractor\",{\"_index\":58,\"name\":{\"133\":{}},\"comment\":{}}],[\"sparqlupdatepatch\",{\"_index\":283,\"name\":{\"749\":{}},\"comment\":{}}],[\"sparqlupdatepatcher\",{\"_index\":828,\"name\":{\"2363\":{}},\"comment\":{}}],[\"spawnworkers\",{\"_index\":453,\"name\":{\"1216\":{}},\"comment\":{}}],[\"specificstrategy\",{\"_index\":217,\"name\":{\"602\":{}},\"comment\":{}}],[\"splitandclean\",{\"_index\":1112,\"name\":{\"3239\":{}},\"comment\":{}}],[\"splitcommaseparated\",{\"_index\":1192,\"name\":{\"3349\":{}},\"comment\":{}}],[\"start\",{\"_index\":497,\"name\":{\"1341\":{}},\"comment\":{}}],[\"startserver\",{\"_index\":604,\"name\":{\"1667\":{},\"1681\":{},\"1720\":{}},\"comment\":{}}],[\"staticassethandler\",{\"_index\":624,\"name\":{\"1734\":{}},\"comment\":{}}],[\"statichandler\",{\"_index\":987,\"name\":{\"2907\":{}},\"comment\":{}}],[\"staticthrowhandler\",{\"_index\":988,\"name\":{\"2913\":{}},\"comment\":{}}],[\"statuscode\",{\"_index\":233,\"name\":{\"656\":{},\"661\":{},\"666\":{},\"671\":{},\"2666\":{},\"2671\":{},\"2677\":{},\"2682\":{},\"2691\":{},\"2696\":{},\"2702\":{},\"2708\":{},\"2723\":{},\"2729\":{},\"2737\":{},\"2742\":{},\"2748\":{},\"2755\":{},\"2760\":{},\"2766\":{},\"2772\":{},\"2777\":{},\"2783\":{},\"2788\":{},\"2794\":{},\"2799\":{},\"2810\":{},\"2816\":{},\"2832\":{},\"2837\":{},\"2843\":{},\"2848\":{}},\"comment\":{}}],[\"stop\",{\"_index\":498,\"name\":{\"1342\":{}},\"comment\":{}}],[\"storage\",{\"_index\":297,\"name\":{\"776\":{},\"789\":{},\"814\":{},\"826\":{},\"951\":{},\"1125\":{},\"1141\":{},\"1155\":{},\"1262\":{},\"1270\":{},\"1362\":{},\"1386\":{},\"1394\":{},\"1421\":{},\"2868\":{},\"3008\":{}},\"comment\":{}}],[\"storagekey\",{\"_index\":470,\"name\":{\"1261\":{},\"1269\":{},\"1361\":{},\"1385\":{},\"1393\":{},\"1420\":{},\"2869\":{}},\"comment\":{}}],[\"storagevalue\",{\"_index\":975,\"name\":{\"2870\":{}},\"comment\":{}}],[\"store\",{\"_index\":186,\"name\":{\"505\":{},\"511\":{},\"517\":{},\"531\":{},\"538\":{},\"545\":{},\"710\":{},\"1383\":{},\"1390\":{},\"1599\":{},\"1607\":{},\"1627\":{},\"1632\":{},\"1866\":{},\"2341\":{},\"2414\":{},\"2432\":{}},\"comment\":{}}],[\"storefactory\",{\"_index\":514,\"name\":{\"1374\":{},\"1587\":{}},\"comment\":{}}],[\"stores\",{\"_index\":846,\"name\":{\"2408\":{}},\"comment\":{}}],[\"strategy\",{\"_index\":44,\"name\":{\"101\":{},\"2472\":{}},\"comment\":{}}],[\"strictmode\",{\"_index\":478,\"name\":{\"1289\":{}},\"comment\":{}}],[\"stripextension\",{\"_index\":798,\"name\":{\"2215\":{},\"2280\":{}},\"comment\":{}}],[\"subdomainextensionbasedmapper\",{\"_index\":807,\"name\":{\"2266\":{}},\"comment\":{}}],[\"subdomainidentifiergenerator\",{\"_index\":575,\"name\":{\"1573\":{}},\"comment\":{}}],[\"subdomainidentifierstrategy\",{\"_index\":1001,\"name\":{\"2965\":{}},\"comment\":{}}],[\"subject\",{\"_index\":384,\"name\":{\"987\":{},\"3327\":{}},\"comment\":{}}],[\"suffix\",{\"_index\":137,\"name\":{\"341\":{}},\"comment\":{}}],[\"suffixauxiliaryidentifierstrategy\",{\"_index\":136,\"name\":{\"339\":{}},\"comment\":{}}],[\"suffixes\",{\"_index\":1021,\"name\":{\"3009\":{}},\"comment\":{}}],[\"suffixidentifiergenerator\",{\"_index\":579,\"name\":{\"1580\":{}},\"comment\":{}}],[\"supportchecker\",{\"_index\":849,\"name\":{\"2415\":{}},\"comment\":{}}],[\"supportedconverters\",{\"_index\":706,\"name\":{\"1955\":{}},\"comment\":{}}],[\"supportedmethods\",{\"_index\":206,\"name\":{\"584\":{}},\"comment\":{}}],[\"supports\",{\"_index\":854,\"name\":{\"2428\":{}},\"comment\":{}}],[\"supportsidentifier\",{\"_index\":996,\"name\":{\"2944\":{},\"2949\":{},\"2961\":{},\"2970\":{}},\"comment\":{}}],[\"swallowerrors\",{\"_index\":1012,\"name\":{\"2992\":{}},\"comment\":{}}],[\"swallowfalse\",{\"_index\":1044,\"name\":{\"3049\":{}},\"comment\":{}}],[\"syscall\",{\"_index\":969,\"name\":{\"2830\":{}},\"comment\":{}}],[\"systemerror\",{\"_index\":964,\"name\":{\"2822\":{}},\"comment\":{}}],[\"takestep\",{\"_index\":704,\"name\":{\"1953\":{}},\"comment\":{}}],[\"target\",{\"_index\":286,\"name\":{\"757\":{},\"3282\":{}},\"comment\":{}}],[\"targetextractor\",{\"_index\":161,\"name\":{\"411\":{},\"470\":{},\"477\":{},\"1762\":{},\"1769\":{}},\"comment\":{}}],[\"tempfilepath\",{\"_index\":651,\"name\":{\"1796\":{}},\"comment\":{}}],[\"template\",{\"_index\":394,\"name\":{\"1007\":{},\"1542\":{},\"1617\":{},\"3206\":{}},\"comment\":{}}],[\"template_variable\",{\"_index\":563,\"name\":{\"1543\":{}},\"comment\":{}}],[\"templatedpodgenerator\",{\"_index\":581,\"name\":{\"1584\":{}},\"comment\":{}}],[\"templatedresourcesgenerator\",{\"_index\":586,\"name\":{\"1600\":{}},\"comment\":{}}],[\"templatedresourcesgeneratorargs\",{\"_index\":583,\"name\":{\"1593\":{}},\"comment\":{}}],[\"templateengine\",{\"_index\":336,\"name\":{\"869\":{},\"876\":{},\"1085\":{},\"1263\":{},\"1271\":{},\"1596\":{},\"1604\":{},\"1975\":{},\"2005\":{},\"2034\":{},\"2055\":{},\"3213\":{}},\"comment\":{}}],[\"templateextension\",{\"_index\":585,\"name\":{\"1597\":{},\"1605\":{}},\"comment\":{}}],[\"templatefile\",{\"_index\":1090,\"name\":{\"3211\":{}},\"comment\":{}}],[\"templatefilename\",{\"_index\":1087,\"name\":{\"3207\":{}},\"comment\":{}}],[\"templatefolder\",{\"_index\":584,\"name\":{\"1594\":{},\"1602\":{}},\"comment\":{}}],[\"templateoptions\",{\"_index\":737,\"name\":{\"2027\":{}},\"comment\":{}}],[\"templatepath\",{\"_index\":1089,\"name\":{\"3210\":{},\"3212\":{}},\"comment\":{}}],[\"templates\",{\"_index\":422,\"name\":{\"1086\":{}},\"comment\":{}}],[\"templatestring\",{\"_index\":1088,\"name\":{\"3208\":{},\"3209\":{}},\"comment\":{}}],[\"text\",{\"_index\":385,\"name\":{\"988\":{}},\"comment\":{}}],[\"text_html\",{\"_index\":1095,\"name\":{\"3219\":{}},\"comment\":{}}],[\"text_markdown\",{\"_index\":1096,\"name\":{\"3220\":{}},\"comment\":{}}],[\"text_n3\",{\"_index\":1097,\"name\":{\"3221\":{}},\"comment\":{}}],[\"text_turtle\",{\"_index\":1098,\"name\":{\"3222\":{}},\"comment\":{}}],[\"throwerror\",{\"_index\":434,\"name\":{\"1131\":{}},\"comment\":{}}],[\"timer\",{\"_index\":773,\"name\":{\"2175\":{}},\"comment\":{}}],[\"tocanonicaluripath\",{\"_index\":1153,\"name\":{\"3302\":{}},\"comment\":{}}],[\"tocomponentsjstype\",{\"_index\":457,\"name\":{\"1220\":{}},\"comment\":{}}],[\"todata\",{\"_index\":778,\"name\":{\"2185\":{}},\"comment\":{}}],[\"toexpires\",{\"_index\":777,\"name\":{\"2184\":{}},\"comment\":{}}],[\"toheadervaluestring\",{\"_index\":1134,\"name\":{\"3278\":{}},\"comment\":{}}],[\"tokenownershipvalidator\",{\"_index\":430,\"name\":{\"1122\":{}},\"comment\":{}}],[\"toliteral\",{\"_index\":1198,\"name\":{\"3355\":{}},\"comment\":{}}],[\"tolockfilepath\",{\"_index\":1015,\"name\":{\"2996\":{}},\"comment\":{}}],[\"tonamedterm\",{\"_index\":1196,\"name\":{\"3353\":{}},\"comment\":{}}],[\"toobjectterm\",{\"_index\":1197,\"name\":{\"3354\":{}},\"comment\":{}}],[\"topredicateterm\",{\"_index\":1199,\"name\":{\"3356\":{}},\"comment\":{}}],[\"torelative\",{\"_index\":859,\"name\":{\"2440\":{}},\"comment\":{}}],[\"torepresentation\",{\"_index\":199,\"name\":{\"560\":{}},\"comment\":{}}],[\"tostringtag\",{\"_index\":1057,\"name\":{\"3092\":{},\"3107\":{},\"3128\":{},\"3187\":{}},\"comment\":{}}],[\"totemplatelink\",{\"_index\":588,\"name\":{\"1610\":{}},\"comment\":{}}],[\"transform\",{\"_index\":1190,\"name\":{\"3345\":{}},\"comment\":{}}],[\"transformquotedstrings\",{\"_index\":1109,\"name\":{\"3235\":{}},\"comment\":{}}],[\"transformsafely\",{\"_index\":1186,\"name\":{\"3341\":{}},\"comment\":{}}],[\"trimleadingslashes\",{\"_index\":1151,\"name\":{\"3300\":{}},\"comment\":{}}],[\"trimstring\",{\"_index\":401,\"name\":{\"1029\":{}},\"comment\":{}}],[\"trimtrailingslashes\",{\"_index\":1149,\"name\":{\"3298\":{}},\"comment\":{}}],[\"type\",{\"_index\":275,\"name\":{\"741\":{}},\"comment\":{}}],[\"typedrepresentationconverter\",{\"_index\":751,\"name\":{\"2094\":{}},\"comment\":{}}],[\"typedstores\",{\"_index\":851,\"name\":{\"2418\":{}},\"comment\":{}}],[\"uidkeyfor\",{\"_index\":438,\"name\":{\"1144\":{}},\"comment\":{}}],[\"unauthorizedhttperror\",{\"_index\":970,\"name\":{\"2831\":{}},\"comment\":{}}],[\"unioncredentialsextractor\",{\"_index\":17,\"name\":{\"31\":{}},\"comment\":{}}],[\"unionhandler\",{\"_index\":989,\"name\":{\"2919\":{}},\"comment\":{}}],[\"unionpermissionreader\",{\"_index\":99,\"name\":{\"223\":{}},\"comment\":{}}],[\"uniquequads\",{\"_index\":1172,\"name\":{\"3324\":{}},\"comment\":{}}],[\"unit\",{\"_index\":868,\"name\":{\"2458\":{}},\"comment\":{}}],[\"unit_bytes\",{\"_index\":870,\"name\":{\"2460\":{}},\"comment\":{}}],[\"unknownmediatypeextension\",{\"_index\":782,\"name\":{\"2195\":{},\"2219\":{},\"2257\":{},\"2284\":{}},\"comment\":{}}],[\"unlockcallbacks\",{\"_index\":1030,\"name\":{\"3023\":{}},\"comment\":{}}],[\"unmodifiedsince\",{\"_index\":884,\"name\":{\"2501\":{},\"2507\":{},\"2520\":{}},\"comment\":{}}],[\"unsecureconstantcredentialsextractor\",{\"_index\":21,\"name\":{\"39\":{}},\"comment\":{}}],[\"unsecurewebidextractor\",{\"_index\":23,\"name\":{\"46\":{}},\"comment\":{}}],[\"unsecurewebsocketsprotocol\",{\"_index\":289,\"name\":{\"762\":{}},\"comment\":{}}],[\"unsupportedasynchandler\",{\"_index\":992,\"name\":{\"2929\":{}},\"comment\":{}}],[\"unsupportedmediatypehttperror\",{\"_index\":971,\"name\":{\"2842\":{}},\"comment\":{}}],[\"updatecontainermodifieddate\",{\"_index\":898,\"name\":{\"2546\":{}},\"comment\":{}}],[\"updategrant\",{\"_index\":414,\"name\":{\"1065\":{}},\"comment\":{}}],[\"updateinteraction\",{\"_index\":415,\"name\":{\"1066\":{}},\"comment\":{}}],[\"updatejsonsafely\",{\"_index\":761,\"name\":{\"2132\":{}},\"comment\":{}}],[\"updatemodifieddate\",{\"_index\":1178,\"name\":{\"3333\":{}},\"comment\":{}}],[\"updatepathweights\",{\"_index\":701,\"name\":{\"1950\":{}},\"comment\":{}}],[\"updatesettings\",{\"_index\":355,\"name\":{\"930\":{},\"963\":{}},\"comment\":{}}],[\"upsert\",{\"_index\":319,\"name\":{\"818\":{},\"1146\":{},\"1161\":{},\"1180\":{}},\"comment\":{}}],[\"uri\",{\"_index\":934,\"name\":{\"2667\":{},\"2678\":{},\"2692\":{},\"2703\":{},\"2730\":{},\"2738\":{},\"2749\":{},\"2761\":{},\"2773\":{},\"2784\":{},\"2795\":{},\"2817\":{},\"2833\":{},\"2844\":{}},\"comment\":{}}],[\"urlsuffix\",{\"_index\":806,\"name\":{\"2249\":{}},\"comment\":{}}],[\"usage\",{\"_index\":477,\"name\":{\"1288\":{}},\"comment\":{}}],[\"useidp\",{\"_index\":350,\"name\":{\"916\":{}},\"comment\":{}}],[\"user\",{\"_index\":377,\"name\":{\"975\":{}},\"comment\":{}}],[\"usercodekeyfor\",{\"_index\":437,\"name\":{\"1143\":{}},\"comment\":{}}],[\"username\",{\"_index\":1035,\"name\":{\"3034\":{}},\"comment\":{}}],[\"usesownauthorization\",{\"_index\":119,\"name\":{\"270\":{},\"297\":{},\"330\":{}},\"comment\":{}}],[\"validate\",{\"_index\":122,\"name\":{\"276\":{},\"300\":{},\"333\":{}},\"comment\":{}}],[\"validatecomposite\",{\"_index\":833,\"name\":{\"2374\":{}},\"comment\":{}}],[\"validateconditions\",{\"_index\":892,\"name\":{\"2539\":{}},\"comment\":{}}],[\"validatedeleteinsert\",{\"_index\":832,\"name\":{\"2373\":{}},\"comment\":{}}],[\"validateidentifier\",{\"_index\":891,\"name\":{\"2538\":{}},\"comment\":{}}],[\"validateinput\",{\"_index\":402,\"name\":{\"1030\":{}},\"comment\":{}}],[\"validaterelativepath\",{\"_index\":793,\"name\":{\"2206\":{},\"2227\":{},\"2264\":{},\"2290\":{}},\"comment\":{}}],[\"validateslug\",{\"_index\":900,\"name\":{\"2548\":{}},\"comment\":{}}],[\"validateupdate\",{\"_index\":831,\"name\":{\"2372\":{}},\"comment\":{}}],[\"validatingdataaccessor\",{\"_index\":692,\"name\":{\"1922\":{}},\"comment\":{}}],[\"validator\",{\"_index\":125,\"name\":{\"290\":{},\"350\":{},\"1924\":{}},\"comment\":{}}],[\"validatorinput\",{\"_index\":138,\"name\":{\"346\":{}},\"comment\":{}}],[\"value\",{\"_index\":167,\"name\":{\"436\":{},\"738\":{},\"1547\":{},\"2909\":{},\"3276\":{}},\"comment\":{}}],[\"valuepreference\",{\"_index\":272,\"name\":{\"736\":{}},\"comment\":{}}],[\"valuepreferences\",{\"_index\":271,\"name\":{\"734\":{}},\"comment\":{}}],[\"values\",{\"_index\":1054,\"name\":{\"3088\":{},\"3103\":{},\"3123\":{},\"3157\":{},\"3182\":{}},\"comment\":{}}],[\"valuesets\",{\"_index\":1066,\"name\":{\"3124\":{},\"3159\":{},\"3183\":{}},\"comment\":{}}],[\"vann\",{\"_index\":1225,\"name\":{\"3384\":{}},\"comment\":{}}],[\"variable\",{\"_index\":565,\"name\":{\"1546\":{}},\"comment\":{}}],[\"variablehandler\",{\"_index\":561,\"name\":{\"1536\":{},\"1588\":{}},\"comment\":{}}],[\"variablesetter\",{\"_index\":564,\"name\":{\"1544\":{}},\"comment\":{}}],[\"vcard\",{\"_index\":1226,\"name\":{\"3385\":{}},\"comment\":{}}],[\"verbose\",{\"_index\":540,\"name\":{\"1462\":{},\"1475\":{},\"1485\":{},\"1502\":{},\"1516\":{}},\"comment\":{}}],[\"verified\",{\"_index\":362,\"name\":{\"944\":{}},\"comment\":{}}],[\"verify\",{\"_index\":3,\"name\":{\"3\":{},\"21\":{},\"924\":{},\"960\":{}},\"comment\":{}}],[\"verifyexistingextension\",{\"_index\":655,\"name\":{\"1809\":{},\"1848\":{}},\"comment\":{}}],[\"verifyquads\",{\"_index\":152,\"name\":{\"374\":{}},\"comment\":{}}],[\"view\",{\"_index\":411,\"name\":{\"1052\":{}},\"comment\":{}}],[\"voidlocker\",{\"_index\":1049,\"name\":{\"3071\":{}},\"comment\":{}}],[\"voidlogger\",{\"_index\":551,\"name\":{\"1496\":{}},\"comment\":{}}],[\"voidloggerfactory\",{\"_index\":552,\"name\":{\"1505\":{}},\"comment\":{}}],[\"wacallowmetadatawriter\",{\"_index\":227,\"name\":{\"641\":{}},\"comment\":{}}],[\"waitforstreamtoend\",{\"_index\":919,\"name\":{\"2585\":{}},\"comment\":{}}],[\"warn\",{\"_index\":538,\"name\":{\"1458\":{},\"1473\":{},\"1483\":{},\"1500\":{},\"1514\":{}},\"comment\":{}}],[\"waterfallhandler\",{\"_index\":994,\"name\":{\"2935\":{}},\"comment\":{}}],[\"webaclauxiliaryreader\",{\"_index\":102,\"name\":{\"233\":{}},\"comment\":{}}],[\"webaclmetadatacollector\",{\"_index\":184,\"name\":{\"498\":{}},\"comment\":{}}],[\"webaclreader\",{\"_index\":105,\"name\":{\"243\":{}},\"comment\":{}}],[\"webid\",{\"_index\":8,\"name\":{\"8\":{},\"811\":{},\"845\":{},\"941\":{},\"1004\":{},\"1014\":{},\"1616\":{}},\"comment\":{}}],[\"webidadapter\",{\"_index\":443,\"name\":{\"1172\":{}},\"comment\":{}}],[\"webidadapterfactory\",{\"_index\":445,\"name\":{\"1186\":{}},\"comment\":{}}],[\"webidsuffix\",{\"_index\":388,\"name\":{\"997\":{},\"1024\":{}},\"comment\":{}}],[\"websocketadvertiser\",{\"_index\":631,\"name\":{\"1746\":{}},\"comment\":{}}],[\"websockethandler\",{\"_index\":619,\"name\":{\"1711\":{},\"1719\":{}},\"comment\":{}}],[\"websocketserverfactory\",{\"_index\":620,\"name\":{\"1716\":{}},\"comment\":{}}],[\"weight\",{\"_index\":273,\"name\":{\"739\":{},\"3254\":{},\"3261\":{},\"3264\":{},\"3267\":{},\"3270\":{},\"3273\":{}},\"comment\":{}}],[\"winstonlogger\",{\"_index\":553,\"name\":{\"1509\":{}},\"comment\":{}}],[\"winstonloggerfactory\",{\"_index\":554,\"name\":{\"1519\":{}},\"comment\":{}}],[\"withinternalreadlock\",{\"_index\":1027,\"name\":{\"3017\":{}},\"comment\":{}}],[\"withlock\",{\"_index\":1006,\"name\":{\"2984\":{}},\"comment\":{}}],[\"withreadlock\",{\"_index\":1003,\"name\":{\"2975\":{},\"2982\":{},\"3010\":{},\"3028\":{},\"3051\":{},\"3068\":{},\"3074\":{}},\"comment\":{}}],[\"withwritelock\",{\"_index\":1004,\"name\":{\"2977\":{},\"2983\":{},\"3011\":{},\"3030\":{},\"3052\":{},\"3069\":{},\"3075\":{}},\"comment\":{}}],[\"workermanager\",{\"_index\":460,\"name\":{\"1223\":{}},\"comment\":{}}],[\"workers\",{\"_index\":451,\"name\":{\"1214\":{}},\"comment\":{}}],[\"wrappedexpiringreadwritelocker\",{\"_index\":1047,\"name\":{\"3063\":{}},\"comment\":{}}],[\"wrappedexpiringstorage\",{\"_index\":772,\"name\":{\"2171\":{}},\"comment\":{}}],[\"wrappedsetmultimap\",{\"_index\":1075,\"name\":{\"3165\":{}},\"comment\":{}}],[\"wrappinglogger\",{\"_index\":545,\"name\":{\"1478\":{}},\"comment\":{}}],[\"write\",{\"_index\":51,\"name\":{\"126\":{},\"3004\":{}},\"comment\":{}}],[\"writecontainer\",{\"_index\":647,\"name\":{\"1788\":{},\"1804\":{},\"1822\":{},\"1837\":{},\"1854\":{},\"1874\":{},\"1885\":{},\"1903\":{},\"1926\":{}},\"comment\":{}}],[\"writedata\",{\"_index\":895,\"name\":{\"2543\":{}},\"comment\":{}}],[\"writedatafile\",{\"_index\":656,\"name\":{\"1810\":{},\"1849\":{}},\"comment\":{}}],[\"writedocument\",{\"_index\":646,\"name\":{\"1786\":{},\"1797\":{},\"1820\":{},\"1836\":{},\"1853\":{},\"1873\":{},\"1884\":{},\"1904\":{},\"1925\":{}},\"comment\":{}}],[\"writemetadata\",{\"_index\":648,\"name\":{\"1790\":{},\"1805\":{},\"1824\":{},\"1838\":{},\"1860\":{},\"1875\":{},\"1889\":{},\"1905\":{},\"1931\":{},\"2542\":{}},\"comment\":{}}],[\"writemetadatafile\",{\"_index\":654,\"name\":{\"1808\":{},\"1843\":{}},\"comment\":{}}],[\"wwwauthmetadatawriter\",{\"_index\":230,\"name\":{\"648\":{}},\"comment\":{}}],[\"xsd\",{\"_index\":1227,\"name\":{\"3386\":{}},\"comment\":{}}],[\"yargsargoptions\",{\"_index\":482,\"name\":{\"1294\":{}},\"comment\":{}}],[\"yargscliextractor\",{\"_index\":481,\"name\":{\"1292\":{}},\"comment\":{}}],[\"yargsoptions\",{\"_index\":473,\"name\":{\"1282\":{}},\"comment\":{}}],[\"yargsparameter\",{\"_index\":474,\"name\":{\"1283\":{}},\"comment\":{}}],[\"yargvoptions\",{\"_index\":483,\"name\":{\"1295\":{}},\"comment\":{}}]],\"pipeline\":[]}}"); \ No newline at end of file diff --git a/5.x/docs/assets/style.css b/5.x/docs/assets/style.css deleted file mode 100644 index 8f6ed2c43..000000000 --- a/5.x/docs/assets/style.css +++ /dev/null @@ -1,1224 +0,0 @@ -:root { - /* Light */ - --light-color-background: #f2f4f8; - --light-color-background-secondary: #eff0f1; - --light-color-icon-background: var(--light-color-background); - --light-color-accent: #c5c7c9; - --light-color-text: #222; - --light-color-text-aside: #707070; - --light-color-link: #4da6ff; - --light-color-ts: #db1373; - --light-color-ts-interface: #139d2c; - --light-color-ts-enum: #9c891a; - --light-color-ts-class: #2484e5; - --light-color-ts-function: #572be7; - --light-color-ts-namespace: #b111c9; - --light-color-ts-private: #707070; - --light-color-ts-variable: #4d68ff; - --light-external-icon: url("data:image/svg+xml;utf8,"); - --light-color-scheme: light; - - /* Dark */ - --dark-color-background: #2b2e33; - --dark-color-background-secondary: #1e2024; - --dark-color-icon-background: var(--dark-color-background-secondary); - --dark-color-accent: #9096a2; - --dark-color-text: #f5f5f5; - --dark-color-text-aside: #dddddd; - --dark-color-link: #00aff4; - --dark-color-ts: #ff6492; - --dark-color-ts-interface: #6cff87; - --dark-color-ts-enum: #f4d93e; - --dark-color-ts-class: #61b0ff; - --dark-color-ts-function: #9772ff; - --dark-color-ts-namespace: #e14dff; - --dark-color-ts-private: #e2e2e2; - --dark-color-ts-variable: #4d68ff; - --dark-external-icon: url("data:image/svg+xml;utf8,"); - --dark-color-scheme: dark; -} - -@media (prefers-color-scheme: light) { - :root { - --color-background: var(--light-color-background); - --color-background-secondary: var(--light-color-background-secondary); - --color-icon-background: var(--light-color-icon-background); - --color-accent: var(--light-color-accent); - --color-text: var(--light-color-text); - --color-text-aside: var(--light-color-text-aside); - --color-link: var(--light-color-link); - --color-ts: var(--light-color-ts); - --color-ts-interface: var(--light-color-ts-interface); - --color-ts-enum: var(--light-color-ts-enum); - --color-ts-class: var(--light-color-ts-class); - --color-ts-function: var(--light-color-ts-function); - --color-ts-namespace: var(--light-color-ts-namespace); - --color-ts-private: var(--light-color-ts-private); - --color-ts-variable: var(--light-color-ts-variable); - --external-icon: var(--light-external-icon); - --color-scheme: var(--light-color-scheme); - } -} - -@media (prefers-color-scheme: dark) { - :root { - --color-background: var(--dark-color-background); - --color-background-secondary: var(--dark-color-background-secondary); - --color-icon-background: var(--dark-color-icon-background); - --color-accent: var(--dark-color-accent); - --color-text: var(--dark-color-text); - --color-text-aside: var(--dark-color-text-aside); - --color-link: var(--dark-color-link); - --color-ts: var(--dark-color-ts); - --color-ts-interface: var(--dark-color-ts-interface); - --color-ts-enum: var(--dark-color-ts-enum); - --color-ts-class: var(--dark-color-ts-class); - --color-ts-function: var(--dark-color-ts-function); - --color-ts-namespace: var(--dark-color-ts-namespace); - --color-ts-private: var(--dark-color-ts-private); - --color-ts-variable: var(--dark-color-ts-variable); - --external-icon: var(--dark-external-icon); - --color-scheme: var(--dark-color-scheme); - } -} - -html { - color-scheme: var(--color-scheme); -} - -body { - margin: 0; -} - -:root[data-theme="light"] { - --color-background: var(--light-color-background); - --color-background-secondary: var(--light-color-background-secondary); - --color-icon-background: var(--light-color-icon-background); - --color-accent: var(--light-color-accent); - --color-text: var(--light-color-text); - --color-text-aside: var(--light-color-text-aside); - --color-link: var(--light-color-link); - --color-ts: var(--light-color-ts); - --color-ts-interface: var(--light-color-ts-interface); - --color-ts-enum: var(--light-color-ts-enum); - --color-ts-class: var(--light-color-ts-class); - --color-ts-function: var(--light-color-ts-function); - --color-ts-namespace: var(--light-color-ts-namespace); - --color-ts-private: var(--light-color-ts-private); - --color-ts-variable: var(--light-color-ts-variable); - --external-icon: var(--light-external-icon); - --color-scheme: var(--light-color-scheme); -} - -:root[data-theme="dark"] { - --color-background: var(--dark-color-background); - --color-background-secondary: var(--dark-color-background-secondary); - --color-icon-background: var(--dark-color-icon-background); - --color-accent: var(--dark-color-accent); - --color-text: var(--dark-color-text); - --color-text-aside: var(--dark-color-text-aside); - --color-link: var(--dark-color-link); - --color-ts: var(--dark-color-ts); - --color-ts-interface: var(--dark-color-ts-interface); - --color-ts-enum: var(--dark-color-ts-enum); - --color-ts-class: var(--dark-color-ts-class); - --color-ts-function: var(--dark-color-ts-function); - --color-ts-namespace: var(--dark-color-ts-namespace); - --color-ts-private: var(--dark-color-ts-private); - --color-ts-variable: var(--dark-color-ts-variable); - --external-icon: var(--dark-external-icon); - --color-scheme: var(--dark-color-scheme); -} - -h1, -h2, -h3, -h4, -h5, -h6 { - line-height: 1.2; -} - -h1 { - font-size: 1.875rem; - margin: 0.67rem 0; -} - -h2 { - font-size: 1.5rem; - margin: 0.83rem 0; -} - -h3 { - font-size: 1.25rem; - margin: 1rem 0; -} - -h4 { - font-size: 1.05rem; - margin: 1.33rem 0; -} - -h5 { - font-size: 1rem; - margin: 1.5rem 0; -} - -h6 { - font-size: 0.875rem; - margin: 2.33rem 0; -} - -.uppercase { - text-transform: uppercase; -} - -pre { - white-space: pre; - white-space: pre-wrap; - word-wrap: break-word; -} - -dl, -menu, -ol, -ul { - margin: 1em 0; -} - -dd { - margin: 0 0 0 40px; -} - -.container { - max-width: 1600px; - padding: 0 2rem; -} - -@media (min-width: 640px) { - .container { - padding: 0 4rem; - } -} -@media (min-width: 1200px) { - .container { - padding: 0 8rem; - } -} -@media (min-width: 1600px) { - .container { - padding: 0 12rem; - } -} - -/* Footer */ -.tsd-generator { - border-top: 1px solid var(--color-accent); - padding-top: 1rem; - padding-bottom: 1rem; - max-height: 3.5rem; -} - -.tsd-generator > p { - margin-top: 0; - margin-bottom: 0; - padding: 0 1rem; -} - -.container-main { - display: flex; - justify-content: space-between; - position: relative; - margin: 0 auto; -} - -.col-4, -.col-8 { - box-sizing: border-box; - float: left; - padding: 2rem 1rem; -} - -.col-4 { - flex: 0 0 25%; -} -.col-8 { - flex: 1 0; - flex-wrap: wrap; - padding-left: 0; -} - -@keyframes fade-in { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -@keyframes fade-out { - from { - opacity: 1; - visibility: visible; - } - to { - opacity: 0; - } -} -@keyframes fade-in-delayed { - 0% { - opacity: 0; - } - 33% { - opacity: 0; - } - 100% { - opacity: 1; - } -} -@keyframes fade-out-delayed { - 0% { - opacity: 1; - visibility: visible; - } - 66% { - opacity: 0; - } - 100% { - opacity: 0; - } -} -@keyframes shift-to-left { - from { - transform: translate(0, 0); - } - to { - transform: translate(-25%, 0); - } -} -@keyframes unshift-to-left { - from { - transform: translate(-25%, 0); - } - to { - transform: translate(0, 0); - } -} -@keyframes pop-in-from-right { - from { - transform: translate(100%, 0); - } - to { - transform: translate(0, 0); - } -} -@keyframes pop-out-to-right { - from { - transform: translate(0, 0); - visibility: visible; - } - to { - transform: translate(100%, 0); - } -} -body { - background: var(--color-background); - font-family: "Segoe UI", sans-serif; - font-size: 16px; - color: var(--color-text); -} - -a { - color: var(--color-link); - text-decoration: none; -} -a:hover { - text-decoration: underline; -} -a.external[target="_blank"] { - background-image: var(--external-icon); - background-position: top 3px right; - background-repeat: no-repeat; - padding-right: 13px; -} - -code, -pre { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; - padding: 0.2em; - margin: 0; - font-size: 0.875rem; - border-radius: 0.8em; -} - -pre { - padding: 10px; - border: 0.1em solid var(--color-accent); -} -pre code { - padding: 0; - font-size: 100%; -} - -blockquote { - margin: 1em 0; - padding-left: 1em; - border-left: 4px solid gray; -} - -.tsd-typography { - line-height: 1.333em; -} -.tsd-typography ul { - list-style: square; - padding: 0 0 0 20px; - margin: 0; -} -.tsd-typography h4, -.tsd-typography .tsd-index-panel h3, -.tsd-index-panel .tsd-typography h3, -.tsd-typography h5, -.tsd-typography h6 { - font-size: 1em; - margin: 0; -} -.tsd-typography h5, -.tsd-typography h6 { - font-weight: normal; -} -.tsd-typography p, -.tsd-typography ul, -.tsd-typography ol { - margin: 1em 0; -} - -@media (max-width: 1024px) { - html .col-content { - float: none; - max-width: 100%; - width: 100%; - padding-top: 3rem; - } - html .col-menu { - position: fixed !important; - overflow-y: auto; - -webkit-overflow-scrolling: touch; - z-index: 1024; - top: 0 !important; - bottom: 0 !important; - left: auto !important; - right: 0 !important; - padding: 1.5rem 1.5rem 0 0; - max-width: 25rem; - visibility: hidden; - background-color: var(--color-background); - transform: translate(100%, 0); - } - html .col-menu > *:last-child { - padding-bottom: 20px; - } - html .overlay { - content: ""; - display: block; - position: fixed; - z-index: 1023; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: rgba(0, 0, 0, 0.75); - visibility: hidden; - } - - .to-has-menu .overlay { - animation: fade-in 0.4s; - } - - .to-has-menu :is(header, footer, .col-content) { - animation: shift-to-left 0.4s; - } - - .to-has-menu .col-menu { - animation: pop-in-from-right 0.4s; - } - - .from-has-menu .overlay { - animation: fade-out 0.4s; - } - - .from-has-menu :is(header, footer, .col-content) { - animation: unshift-to-left 0.4s; - } - - .from-has-menu .col-menu { - animation: pop-out-to-right 0.4s; - } - - .has-menu body { - overflow: hidden; - } - .has-menu .overlay { - visibility: visible; - } - .has-menu :is(header, footer, .col-content) { - transform: translate(-25%, 0); - } - .has-menu .col-menu { - visibility: visible; - transform: translate(0, 0); - display: grid; - align-items: center; - grid-template-rows: auto 1fr; - grid-gap: 1.5rem; - max-height: 100vh; - padding: 1rem 2rem; - } - .has-menu .tsd-navigation { - max-height: 100%; - } -} - -.tsd-breadcrumb { - margin: 0; - padding: 0; - color: var(--color-text-aside); -} -.tsd-breadcrumb a { - color: var(--color-text-aside); - text-decoration: none; -} -.tsd-breadcrumb a:hover { - text-decoration: underline; -} -.tsd-breadcrumb li { - display: inline; -} -.tsd-breadcrumb li:after { - content: " / "; -} - -.tsd-comment-tags { - display: flex; - flex-direction: column; -} -dl.tsd-comment-tag-group { - display: flex; - align-items: center; - overflow: hidden; - margin: 0.5em 0; -} -dl.tsd-comment-tag-group dt { - display: flex; - margin-right: 0.5em; - font-size: 0.875em; - font-weight: normal; -} -dl.tsd-comment-tag-group dd { - margin: 0; -} -code.tsd-tag { - padding: 0.25em 0.4em; - border: 0.1em solid var(--color-accent); - margin-right: 0.25em; - font-size: 70%; -} -h1 code.tsd-tag:first-of-type { - margin-left: 0.25em; -} - -dl.tsd-comment-tag-group dd:before, -dl.tsd-comment-tag-group dd:after { - content: " "; -} -dl.tsd-comment-tag-group dd pre, -dl.tsd-comment-tag-group dd:after { - clear: both; -} -dl.tsd-comment-tag-group p { - margin: 0; -} - -.tsd-panel.tsd-comment .lead { - font-size: 1.1em; - line-height: 1.333em; - margin-bottom: 2em; -} -.tsd-panel.tsd-comment .lead:last-child { - margin-bottom: 0; -} - -.tsd-filter-visibility h4 { - font-size: 1rem; - padding-top: 0.75rem; - padding-bottom: 0.5rem; - margin: 0; -} -.tsd-filter-item:not(:last-child) { - margin-bottom: 0.5rem; -} -.tsd-filter-input { - display: flex; - width: fit-content; - width: -moz-fit-content; - align-items: center; - user-select: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - cursor: pointer; -} -.tsd-filter-input input[type="checkbox"] { - cursor: pointer; - position: absolute; - width: 1.5em; - height: 1.5em; - opacity: 0; -} -.tsd-filter-input input[type="checkbox"]:disabled { - pointer-events: none; -} -.tsd-filter-input svg { - cursor: pointer; - width: 1.5em; - height: 1.5em; - margin-right: 0.5em; - border-radius: 0.33em; - /* Leaving this at full opacity breaks event listeners on Firefox. - Don't remove unless you know what you're doing. */ - opacity: 0.99; -} -.tsd-filter-input input[type="checkbox"]:focus + svg { - transform: scale(0.95); -} -.tsd-filter-input input[type="checkbox"]:focus:not(:focus-visible) + svg { - transform: scale(1); -} -.tsd-checkbox-background { - fill: var(--color-accent); -} -input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { - stroke: var(--color-text); -} -.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { - fill: var(--color-background); - stroke: var(--color-accent); - stroke-width: 0.25rem; -} -.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark { - stroke: var(--color-accent); -} - -.tsd-theme-toggle { - padding-top: 0.75rem; -} -.tsd-theme-toggle > h4 { - display: inline; - vertical-align: middle; - margin-right: 0.75rem; -} - -.tsd-hierarchy { - list-style: square; - margin: 0; -} -.tsd-hierarchy .target { - font-weight: bold; -} - -.tsd-panel-group.tsd-index-group { - margin-bottom: 0; -} -.tsd-index-panel .tsd-index-list { - list-style: none; - line-height: 1.333em; - margin: 0; - padding: 0.25rem 0 0 0; - overflow: hidden; - display: grid; - grid-template-columns: repeat(3, 1fr); - column-gap: 1rem; - grid-template-rows: auto; -} -@media (max-width: 1024px) { - .tsd-index-panel .tsd-index-list { - grid-template-columns: repeat(2, 1fr); - } -} -@media (max-width: 768px) { - .tsd-index-panel .tsd-index-list { - grid-template-columns: repeat(1, 1fr); - } -} -.tsd-index-panel .tsd-index-list li { - -webkit-page-break-inside: avoid; - -moz-page-break-inside: avoid; - -ms-page-break-inside: avoid; - -o-page-break-inside: avoid; - page-break-inside: avoid; -} -.tsd-index-panel a, -.tsd-index-panel a.tsd-parent-kind-module { - color: var(--color-ts); -} -.tsd-index-panel a.tsd-parent-kind-interface { - color: var(--color-ts-interface); -} -.tsd-index-panel a.tsd-parent-kind-enum { - color: var(--color-ts-enum); -} -.tsd-index-panel a.tsd-parent-kind-class { - color: var(--color-ts-class); -} -.tsd-index-panel a.tsd-kind-module { - color: var(--color-ts-namespace); -} -.tsd-index-panel a.tsd-kind-interface { - color: var(--color-ts-interface); -} -.tsd-index-panel a.tsd-kind-enum { - color: var(--color-ts-enum); -} -.tsd-index-panel a.tsd-kind-class { - color: var(--color-ts-class); -} -.tsd-index-panel a.tsd-kind-function { - color: var(--color-ts-function); -} -.tsd-index-panel a.tsd-kind-namespace { - color: var(--color-ts-namespace); -} -.tsd-index-panel a.tsd-kind-variable { - color: var(--color-ts-variable); -} -.tsd-index-panel a.tsd-is-private { - color: var(--color-ts-private); -} - -.tsd-flag { - display: inline-block; - padding: 0.25em 0.4em; - border-radius: 4px; - color: var(--color-comment-tag-text); - background-color: var(--color-comment-tag); - text-indent: 0; - font-size: 75%; - line-height: 1; - font-weight: normal; -} - -.tsd-anchor { - position: absolute; - top: -100px; -} - -.tsd-member { - position: relative; -} -.tsd-member .tsd-anchor + h3 { - display: flex; - align-items: center; - margin-top: 0; - margin-bottom: 0; - border-bottom: none; -} -.tsd-member [data-tsd-kind] { - color: var(--color-ts); -} -.tsd-member [data-tsd-kind="Interface"] { - color: var(--color-ts-interface); -} -.tsd-member [data-tsd-kind="Enum"] { - color: var(--color-ts-enum); -} -.tsd-member [data-tsd-kind="Class"] { - color: var(--color-ts-class); -} -.tsd-member [data-tsd-kind="Private"] { - color: var(--color-ts-private); -} - -.tsd-navigation a { - display: block; - margin: 0.4rem 0; - border-left: 2px solid transparent; - color: var(--color-text); - text-decoration: none; - transition: border-left-color 0.1s; -} -.tsd-navigation a:hover { - text-decoration: underline; -} -.tsd-navigation ul { - margin: 0; - padding: 0; - list-style: none; -} -.tsd-navigation li { - padding: 0; -} - -.tsd-navigation.primary .tsd-accordion-details > ul { - margin-top: 0.75rem; -} -.tsd-navigation.primary a { - padding: 0.75rem 0.5rem; - margin: 0; -} -.tsd-navigation.primary ul li a { - margin-left: 0.5rem; -} -.tsd-navigation.primary ul li li a { - margin-left: 1.5rem; -} -.tsd-navigation.primary ul li li li a { - margin-left: 2.5rem; -} -.tsd-navigation.primary ul li li li li a { - margin-left: 3.5rem; -} -.tsd-navigation.primary ul li li li li li a { - margin-left: 4.5rem; -} -.tsd-navigation.primary ul li li li li li li a { - margin-left: 5.5rem; -} -.tsd-navigation.primary li.current > a { - border-left: 0.15rem var(--color-text) solid; -} -.tsd-navigation.primary li.selected > a { - font-weight: bold; - border-left: 0.2rem var(--color-text) solid; -} -.tsd-navigation.primary ul li a:hover { - border-left: 0.2rem var(--color-text-aside) solid; -} -.tsd-navigation.primary li.globals + li > span, -.tsd-navigation.primary li.globals + li > a { - padding-top: 20px; -} - -.tsd-navigation.secondary.tsd-navigation--toolbar-hide { - max-height: calc(100vh - 1rem); - top: 0.5rem; -} -.tsd-navigation.secondary > ul { - display: inline; - padding-right: 0.5rem; - transition: opacity 0.2s; -} -.tsd-navigation.secondary ul li a { - padding-left: 0; -} -.tsd-navigation.secondary ul li li a { - padding-left: 1.1rem; -} -.tsd-navigation.secondary ul li li li a { - padding-left: 2.2rem; -} -.tsd-navigation.secondary ul li li li li a { - padding-left: 3.3rem; -} -.tsd-navigation.secondary ul li li li li li a { - padding-left: 4.4rem; -} -.tsd-navigation.secondary ul li li li li li li a { - padding-left: 5.5rem; -} - -a.tsd-index-link { - margin: 0.25rem 0; - font-size: 1rem; - line-height: 1.25rem; - display: inline-flex; - align-items: center; -} -.tsd-accordion-summary > h1, -.tsd-accordion-summary > h2, -.tsd-accordion-summary > h3, -.tsd-accordion-summary > h4, -.tsd-accordion-summary > h5 { - display: inline-flex; - align-items: center; - vertical-align: middle; - margin-bottom: 0; - user-select: none; - -moz-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; -} -.tsd-accordion-summary { - display: block; - cursor: pointer; -} -.tsd-accordion-summary > * { - margin-top: 0; - margin-bottom: 0; - padding-top: 0; - padding-bottom: 0; -} -.tsd-accordion-summary::-webkit-details-marker { - display: none; -} -.tsd-index-accordion .tsd-accordion-summary svg { - margin-right: 0.25rem; -} -.tsd-index-content > :not(:first-child) { - margin-top: 0.75rem; -} -.tsd-index-heading { - margin-top: 1.5rem; - margin-bottom: 0.75rem; -} - -.tsd-kind-icon { - margin-right: 0.5rem; - width: 1.25rem; - height: 1.25rem; - min-width: 1.25rem; - min-height: 1.25rem; -} -.tsd-kind-icon path { - transform-origin: center; - transform: scale(1.1); -} -.tsd-signature > .tsd-kind-icon { - margin-right: 0.8rem; -} - -@media (min-width: 1024px) { - .col-content { - margin: 2rem auto; - } - - .menu-sticky-wrap { - position: sticky; - height: calc(100vh - 2rem); - top: 4rem; - right: 0; - padding: 0 1.5rem; - padding-top: 1rem; - margin-top: 3rem; - transition: 0.3s ease-in-out; - transition-property: top, padding-top, padding, height; - overflow-y: auto; - } - .col-menu { - border-left: 1px solid var(--color-accent); - } - .col-menu--hide { - top: 1rem; - } - .col-menu .tsd-navigation:not(:last-child) { - padding-bottom: 1.75rem; - } -} - -.tsd-panel { - margin-bottom: 2.5rem; -} -.tsd-panel.tsd-member { - margin-bottom: 4rem; -} -.tsd-panel:empty { - display: none; -} -.tsd-panel > h1, -.tsd-panel > h2, -.tsd-panel > h3 { - margin: 1.5rem -1.5rem 0.75rem -1.5rem; - padding: 0 1.5rem 0.75rem 1.5rem; -} -.tsd-panel > h1.tsd-before-signature, -.tsd-panel > h2.tsd-before-signature, -.tsd-panel > h3.tsd-before-signature { - margin-bottom: 0; - border-bottom: none; -} - -.tsd-panel-group { - margin: 4rem 0; -} -.tsd-panel-group.tsd-index-group { - margin: 2rem 0; -} -.tsd-panel-group.tsd-index-group details { - margin: 2rem 0; -} - -#tsd-search { - transition: background-color 0.2s; -} -#tsd-search .title { - position: relative; - z-index: 2; -} -#tsd-search .field { - position: absolute; - left: 0; - top: 0; - right: 2.5rem; - height: 100%; -} -#tsd-search .field input { - box-sizing: border-box; - position: relative; - top: -50px; - z-index: 1; - width: 100%; - padding: 0 10px; - opacity: 0; - outline: 0; - border: 0; - background: transparent; - color: var(--color-text); -} -#tsd-search .field label { - position: absolute; - overflow: hidden; - right: -40px; -} -#tsd-search .field input, -#tsd-search .title { - transition: opacity 0.2s; -} -#tsd-search .results { - position: absolute; - visibility: hidden; - top: 40px; - width: 100%; - margin: 0; - padding: 0; - list-style: none; - box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); -} -#tsd-search .results li { - padding: 0 10px; - background-color: var(--color-background); -} -#tsd-search .results li:nth-child(even) { - background-color: var(--color-background-secondary); -} -#tsd-search .results li.state { - display: none; -} -#tsd-search .results li.current, -#tsd-search .results li:hover { - background-color: var(--color-accent); -} -#tsd-search .results a { - display: block; -} -#tsd-search .results a:before { - top: 10px; -} -#tsd-search .results span.parent { - color: var(--color-text-aside); - font-weight: normal; -} -#tsd-search.has-focus { - background-color: var(--color-accent); -} -#tsd-search.has-focus .field input { - top: 0; - opacity: 1; -} -#tsd-search.has-focus .title { - z-index: 0; - opacity: 0; -} -#tsd-search.has-focus .results { - visibility: visible; -} -#tsd-search.loading .results li.state.loading { - display: block; -} -#tsd-search.failure .results li.state.failure { - display: block; -} - -.tsd-signature { - margin: 0 0 1rem 0; - padding: 1rem 0.5rem; - border: 1px solid var(--color-accent); - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; - font-size: 14px; - overflow-x: auto; -} - -.tsd-signature-symbol { - color: var(--color-text-aside); - font-weight: normal; -} - -.tsd-signature-type { - font-style: italic; - font-weight: normal; -} - -.tsd-signatures { - padding: 0; - margin: 0 0 1em 0; - list-style-type: none; -} -.tsd-signatures .tsd-signature { - margin: 0; - border-color: var(--color-accent); - border-width: 1px 0; - transition: background-color 0.1s; -} -.tsd-description .tsd-signatures .tsd-signature { - border-width: 1px; -} - -ul.tsd-parameter-list, -ul.tsd-type-parameter-list { - list-style: square; - margin: 0; - padding-left: 20px; -} -ul.tsd-parameter-list > li.tsd-parameter-signature, -ul.tsd-type-parameter-list > li.tsd-parameter-signature { - list-style: none; - margin-left: -20px; -} -ul.tsd-parameter-list h5, -ul.tsd-type-parameter-list h5 { - font-size: 16px; - margin: 1em 0 0.5em 0; -} -.tsd-sources { - margin-top: 1rem; - font-size: 0.875em; -} -.tsd-sources a { - color: var(--color-text-aside); - text-decoration: underline; -} -.tsd-sources ul { - list-style: none; - padding: 0; -} - -.tsd-page-toolbar { - position: fixed; - z-index: 1; - top: 0; - left: 0; - width: 100%; - color: var(--color-text); - background: var(--color-background-secondary); - border-bottom: 1px var(--color-accent) solid; - transition: transform 0.3s ease-in-out; -} -.tsd-page-toolbar a { - color: var(--color-text); - text-decoration: none; -} -.tsd-page-toolbar a.title { - font-weight: bold; -} -.tsd-page-toolbar a.title:hover { - text-decoration: underline; -} -.tsd-page-toolbar .tsd-toolbar-contents { - display: flex; - justify-content: space-between; - height: 2.5rem; -} -.tsd-page-toolbar .table-cell { - position: relative; - white-space: nowrap; - line-height: 40px; -} -.tsd-page-toolbar .table-cell:first-child { - width: 100%; -} - -.tsd-page-toolbar--hide { - transform: translateY(-100%); -} - -.tsd-widget { - display: inline-block; - overflow: hidden; - opacity: 0.8; - height: 40px; - transition: opacity 0.1s, background-color 0.2s; - vertical-align: bottom; - cursor: pointer; -} -.tsd-widget:hover { - opacity: 0.9; -} -.tsd-widget.active { - opacity: 1; - background-color: var(--color-accent); -} -.tsd-widget.no-caption { - width: 40px; -} -.tsd-widget.no-caption:before { - margin: 0; -} - -.tsd-widget.options, -.tsd-widget.menu { - display: none; -} -@media (max-width: 1024px) { - .tsd-widget.options, - .tsd-widget.menu { - display: inline-block; - } -} -input[type="checkbox"] + .tsd-widget:before { - background-position: -120px 0; -} -input[type="checkbox"]:checked + .tsd-widget:before { - background-position: -160px 0; -} - -img { - max-width: 100%; -} - -.tsd-anchor-icon { - display: inline-flex; - align-items: center; - margin-left: 0.5rem; - vertical-align: middle; - color: var(--color-text); -} - -.tsd-anchor-icon svg { - width: 1em; - height: 1em; - visibility: hidden; -} - -.tsd-anchor-link:hover > .tsd-anchor-icon svg { - visibility: visible; -} - -.deprecated { - text-decoration: line-through; -} - -* { - scrollbar-width: thin; - scrollbar-color: var(--color-accent) var(--color-icon-background); -} - -*::-webkit-scrollbar { - width: 0.75rem; -} - -*::-webkit-scrollbar-track { - background: var(--color-icon-background); -} - -*::-webkit-scrollbar-thumb { - background-color: var(--color-accent); - border-radius: 999rem; - border: 0.25rem solid var(--color-icon-background); -} diff --git a/5.x/docs/assets/widgets.png b/5.x/docs/assets/widgets.png deleted file mode 100644 index c7380532a..000000000 Binary files a/5.x/docs/assets/widgets.png and /dev/null differ diff --git a/5.x/docs/assets/widgets@2x.png b/5.x/docs/assets/widgets@2x.png deleted file mode 100644 index 4bbbd5727..000000000 Binary files a/5.x/docs/assets/widgets@2x.png and /dev/null differ diff --git a/5.x/docs/classes/AbsolutePathInteractionRoute.html b/5.x/docs/classes/AbsolutePathInteractionRoute.html deleted file mode 100644 index c748a7e8f..000000000 --- a/5.x/docs/classes/AbsolutePathInteractionRoute.html +++ /dev/null @@ -1,112 +0,0 @@ -AbsolutePathInteractionRoute | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class AbsolutePathInteractionRoute

    -
    -

    A route that returns the input string as path.

    -
    -
    -

    Hierarchy

    -
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    path: string
    -
    -

    Methods

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/AcceptPreferenceParser.html b/5.x/docs/classes/AcceptPreferenceParser.html deleted file mode 100644 index 631a70eb6..000000000 --- a/5.x/docs/classes/AcceptPreferenceParser.html +++ /dev/null @@ -1,156 +0,0 @@ -AcceptPreferenceParser | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class AcceptPreferenceParser

    -
    -

    Extracts preferences from the Accept-* headers from an incoming HttpRequest. -Supports Accept, Accept-Charset, Accept-Encoding, Accept-Language and Accept-DateTime.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/AccessChecker.html b/5.x/docs/classes/AccessChecker.html deleted file mode 100644 index 5ebeca02c..000000000 --- a/5.x/docs/classes/AccessChecker.html +++ /dev/null @@ -1,150 +0,0 @@ -AccessChecker | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class AccessCheckerAbstract

    -
    -

    Performs an authorization check against the given acl resource.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/AgentAccessChecker.html b/5.x/docs/classes/AgentAccessChecker.html deleted file mode 100644 index f1469eedc..000000000 --- a/5.x/docs/classes/AgentAccessChecker.html +++ /dev/null @@ -1,146 +0,0 @@ -AgentAccessChecker | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Checks if the given WebID has been given access.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/AgentClassAccessChecker.html b/5.x/docs/classes/AgentClassAccessChecker.html deleted file mode 100644 index fe38085d3..000000000 --- a/5.x/docs/classes/AgentClassAccessChecker.html +++ /dev/null @@ -1,146 +0,0 @@ -AgentClassAccessChecker | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class AgentClassAccessChecker

    -
    -

    Checks access based on the agent class.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/AgentGroupAccessChecker.html b/5.x/docs/classes/AgentGroupAccessChecker.html deleted file mode 100644 index 8bc48bace..000000000 --- a/5.x/docs/classes/AgentGroupAccessChecker.html +++ /dev/null @@ -1,221 +0,0 @@ -AgentGroupAccessChecker | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class AgentGroupAccessChecker

    -
    -

    Checks if the given WebID belongs to a group that has access. -Implements the behaviour of groups from the WAC specification.

    -

    Fetched results will be stored in an ExpiringStorage.

    -

    Requires a storage that can store JS objects. -expiration parameter is how long entries in the cache should be stored in seconds, defaults to 3600.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    cache: ExpiringStorage<string, Promise<Store<Quad, Quad, Quad, Quad>>>
    -
    - -
    expiration: number
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Fetches quads from the given URL. -Will cache the values for later re-use.

      -
      -
      -

      Parameters

      -
        -
      • -
        url: string
      -

      Returns Promise<Store<Quad, Quad, Quad, Quad>>

    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Checks if the given agent is member of a given vCard group.

      - -

      Returns

      If the agent is member of the given vCard group.

      -
      -
      -

      Parameters

      -
        -
      • -
        webId: string
        -

        WebID of the agent that needs access.

        -
      • -
      • -
        group: Term
        -

        URL of the vCard group that needs to be checked.

        -
      -

      Returns Promise<boolean>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/AllStaticReader.html b/5.x/docs/classes/AllStaticReader.html deleted file mode 100644 index b426c4749..000000000 --- a/5.x/docs/classes/AllStaticReader.html +++ /dev/null @@ -1,181 +0,0 @@ -AllStaticReader | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    PermissionReader which sets all permissions to true or false -independently of the identifier and requested permissions.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    permissions: Partial<Record<AccessMode, boolean>>
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/AllowAcceptHeaderWriter.html b/5.x/docs/classes/AllowAcceptHeaderWriter.html deleted file mode 100644 index 8bbe6e6a9..000000000 --- a/5.x/docs/classes/AllowAcceptHeaderWriter.html +++ /dev/null @@ -1,314 +0,0 @@ -AllowAcceptHeaderWriter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class AllowAcceptHeaderWriter

    -
    -

    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.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    acceptTypes: { patch: string[]; post: string[]; put: string[] }
    -
    -

    Type declaration

    -
      -
    • -
      patch: string[]
    • -
    • -
      post: string[]
    • -
    • -
      put: string[]
    -
    - -
    supportedMethods: string[]
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
      - -
    • -

      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 methods set.

      -
      -
      -

      Parameters

      -
        -
      • -
        methods: Set<string>
      • -
      • -
        generateAllow: boolean
      • -
      • -
        response: ServerResponse
      • -
      • -
        metadata: RepresentationMetadata
      -

      Returns void

    -
    - -
      - -
    • -

      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't deduce what the request method was, -so we do not add the header as we don't have enough information.

      -
      -
      -

      Parameters

      -
      -

      Returns boolean

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/App.html b/5.x/docs/classes/App.html deleted file mode 100644 index fb7197047..000000000 --- a/5.x/docs/classes/App.html +++ /dev/null @@ -1,134 +0,0 @@ -App | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Entry point for the entire Solid server.

    -
    -
    -

    Hierarchy

    -
      -
    • App
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    clusterManager: ClusterManager
    -
    - -
    finalizer: Finalizer
    -
    - -
    initializer: Initializer
    -
    -

    Methods

    -
    - -
      - -
    • -

      Initializes and starts the application.

      -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Stops the application and handles cleanup.

      -
      -

      Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/AppRunner.html b/5.x/docs/classes/AppRunner.html deleted file mode 100644 index b639383cb..000000000 --- a/5.x/docs/classes/AppRunner.html +++ /dev/null @@ -1,365 +0,0 @@ -AppRunner | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    A class that can be used to instantiate and start a server based on a Component.js configuration.

    -
    -
    -

    Hierarchy

    -
      -
    • AppRunner
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
      - -
    • -

      Handles the first Components.js instantiation. -Uses it to extract the CLI shorthand values and use those to create variable bindings.

      -
      -
      -

      Parameters

      -
        -
      • -
        componentsManager: ComponentsManager<CliResolver>
      • -
      • -
        argv: CliArgv
      -

      Returns Promise<VariableBindings>

    -
    - -
      - -
    • -

      Returns an App object, created with the given config, that can start and stop the Solid server.

      -

      Keys of the variableBindings object should be Components.js variables. -E.g.: { 'urn:solid-server:default:variable:rootFilePath': '.data' }.

      -

      shorthand are CLI argument names and their corresponding values. -E.g.: { rootFilePath: '.data' }. -Abbreviated parameter names can not be used, so { f: '.data' } would not work.

      -

      The values in variableBindings take priority over those in shorthand.

      -
      -
      -

      Parameters

      -
        -
      • -
        loaderProperties: IComponentsManagerBuilderOptions<App>
        -

        Components.js loader properties.

        -
      • -
      • -
        configFile: string | string[]
        -

        Path to the server config file(s).

        -
      • -
      • -
        Optional variableBindings: VariableBindings
        -

        Bindings of Components.js variables.

        -
      • -
      • -
        Optional shorthand: Shorthand
        -

        Shorthand values that need to be resolved.

        -
      -

      Returns Promise<App>

    -
    - -
      - -
    • -

      The second Components.js instantiation, -where the App is created and started using the variable mappings.

      -
      -
      -

      Parameters

      -
        -
      • -
        componentsManager: ComponentsManager<App>
      • -
      • -
        variables: Record<string, unknown>
      -

      Returns Promise<App>

    -
    - -
      - -
    • -

      Returns an App object, created by parsing the Command line arguments, that can start and stop the Solid server. -Will exit the process on failure.

      -
      -
      -

      Parameters

      -
        -
      • -
        argv: CliArgv = process.argv
        -

        Command line arguments.

        -
      -

      Returns Promise<App>

    -
    - -
    -
    - -
      - -
    • -

      Creates the Components Manager that will be used for instantiating.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T

      -
      -

      Parameters

      -
        -
      • -
        loaderProperties: IComponentsManagerBuilderOptions<T>
      • -
      • -
        configFile: string | string[]
      -

      Returns Promise<ComponentsManager<T>>

    -
    - -
    -
    - -
      - -
    • -

      Throws a new error that provides additional information through the extra message. -Also appends the stack trace to the message. -This is needed for errors that are thrown before the logger is created as we can't log those the standard way.

      -
      -
      -

      Parameters

      -
        -
      • -
        message: string
      • -
      • -
        error: unknown
      -

      Returns never

    -
    - -
    -
    - -
      - -
    • -

      Starts the server with a given config. -This method can be used to start the server from within another JavaScript application.

      -

      Keys of the variableBindings object should be Components.js variables. -E.g.: { 'urn:solid-server:default:variable:rootFilePath': '.data' }.

      -

      shorthand are CLI argument names and their corresponding values. -E.g.: { rootFilePath: '.data' }. -Abbreviated parameter names can not be used, so { f: '.data' } would not work.

      -

      The values in variableBindings take priority over those in shorthand.

      -
      -
      -

      Parameters

      -
        -
      • -
        loaderProperties: IComponentsManagerBuilderOptions<App>
        -

        Components.js loader properties.

        -
      • -
      • -
        configFile: string | string[]
        -

        Path to the server config file(s).

        -
      • -
      • -
        Optional variableBindings: VariableBindings
        -

        Bindings of Components.js variables.

        -
      • -
      • -
        Optional shorthand: Shorthand
        -

        Shorthand values that need to be resolved.

        -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Starts the server as a command-line application.

      -
      -
      -

      Parameters

      -
        -
      • -
        Optional argv: CliArgv
        -

        Command line arguments.

        -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Starts the server as a command-line application. -Will exit the process on failure.

      -

      Made non-async to lower the risk of unhandled promise rejections. -This is only relevant when this is used to start as a Node.js application on its own, -if you use this as part of your code you probably want to use the async version.

      -
      -
      -

      Parameters

      -
        -
      • -
        __namedParameters: { argv?: CliArgv; stderr?: WriteStream }
        -
          -
        • -
          Optional argv?: CliArgv
        • -
        • -
          Optional stderr?: WriteStream
      -

      Returns void

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/AssetPathExtractor.html b/5.x/docs/classes/AssetPathExtractor.html deleted file mode 100644 index 9a0d0d117..000000000 --- a/5.x/docs/classes/AssetPathExtractor.html +++ /dev/null @@ -1,176 +0,0 @@ -AssetPathExtractor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    A ShorthandExtractor that converts a path value to an absolute asset path -by making use of resolveAssetPath. -Returns the default path in case it is defined and no path was found in the map.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    defaultPath?: string
    -
    - -
    key: string
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: Shorthand
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: Shorthand
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<unknown>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/AsyncHandler.html b/5.x/docs/classes/AsyncHandler.html deleted file mode 100644 index eaeb86077..000000000 --- a/5.x/docs/classes/AsyncHandler.html +++ /dev/null @@ -1,205 +0,0 @@ -AsyncHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class AsyncHandler<TIn, TOut>Abstract

    -
    -

    Simple interface for classes that can potentially handle a specific kind of data asynchronously.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      TIn = void

    • -
    • -

      TOut = void

    -
    -

    Hierarchy

    -
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
      - -
    • -
      -

      Type Parameters

      -
        -
      • -

        TIn = void

      • -
      • -

        TOut = void

      -

      Returns AsyncHandler<TIn, TOut>

    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: TIn
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: TIn
        -

        Input that needs to be handled.

        -
      -

      Returns Promise<TOut>

    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: TIn
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<TOut>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/AtomicFileDataAccessor.html b/5.x/docs/classes/AtomicFileDataAccessor.html deleted file mode 100644 index 721243f7a..000000000 --- a/5.x/docs/classes/AtomicFileDataAccessor.html +++ /dev/null @@ -1,396 +0,0 @@ -AtomicFileDataAccessor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class AtomicFileDataAccessor

    -
    -

    AtomicDataAccessor that uses the file system to store documents as files and containers as folders. -Data will first be written to a temporary location and only if no errors occur -will the data be written to the desired location.

    -
    -
    -

    Hierarchy

    -
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    - -
    resourceMapper: FileIdentifierMapper
    -
    - -
    tempFilePath: string
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Returns metadata for all resources in the requested container. -This should not be all metadata of those resources (but it can be), -but instead the main metadata you want to show in situations -where all these resources are presented simultaneously. -Generally this would be metadata that is present for all of these resources, -such as resource type or last modified date.

      -

      It can be safely assumed that the incoming identifier will always correspond to a container.

      -
      -
      -

      Parameters

      -
      -

      Returns AsyncIterableIterator<RepresentationMetadata>

    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Gets the Stats object corresponding to the given file path, -resolving symbolic links.

      - -

      Throws

      NotFoundHttpError -If the file/folder doesn't exist.

      -
      -
      -

      Parameters

      -
        -
      • -
        path: string
        -

        File path to get info from.

        -
      -

      Returns Promise<Stats>

    -
    - -
      - -
    • -

      Verifies if there already is a file corresponding to the given resource. -If yes, that file is removed if it does not match the path given in the input ResourceLink. -This can happen if the content-type differs from the one that was stored.

      -
      -
      -

      Parameters

      -
        -
      • -
        link: ResourceLink
        -

        ResourceLink corresponding to the new resource data.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
      - -
    • -

      Helper function without extra validation checking to create a data file.

      -
      -
      -

      Parameters

      -
        -
      • -
        path: string
        -

        The filepath of the file to be created.

        -
      • -
      • -
        data: Readable
        -

        The data to be put in the file.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/Authorizer.html b/5.x/docs/classes/Authorizer.html deleted file mode 100644 index a6b90d0f7..000000000 --- a/5.x/docs/classes/Authorizer.html +++ /dev/null @@ -1,149 +0,0 @@ -Authorizer | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class AuthorizerAbstract

    -
    -

    Verifies if the credentials provide access with the given permissions on the resource. -An Error with the necessary explanation will be thrown when permissions are not granted.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/AuthorizingHttpHandler.html b/5.x/docs/classes/AuthorizingHttpHandler.html deleted file mode 100644 index 52628c50c..000000000 --- a/5.x/docs/classes/AuthorizingHttpHandler.html +++ /dev/null @@ -1,208 +0,0 @@ -AuthorizingHttpHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class AuthorizingHttpHandler

    -
    -

    Handles all the necessary steps for an authorization. -Errors if authorization fails, otherwise passes the parameter to the operationHandler handler. -The following steps are executed:

    -
      -
    • Extracting credentials from the request.
    • -
    • Extracting the required permissions.
    • -
    • Reading the allowed permissions for the credentials.
    • -
    • Validating if this operation is allowed.
    • -
    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    authorizer: Authorizer
    -
    - -
    credentialsExtractor: CredentialsExtractor
    -
    - -
    logger: Logger = ...
    -
    - -
    modesExtractor: ModesExtractor
    -
    - -
    operationHandler: OperationHttpHandler
    -
    - -
    permissionReader: PermissionReader
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/AuxiliaryLinkMetadataWriter.html b/5.x/docs/classes/AuxiliaryLinkMetadataWriter.html deleted file mode 100644 index 37084d44a..000000000 --- a/5.x/docs/classes/AuxiliaryLinkMetadataWriter.html +++ /dev/null @@ -1,212 +0,0 @@ -AuxiliaryLinkMetadataWriter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class AuxiliaryLinkMetadataWriter

    -
    -

    A MetadataWriter that takes a specific auxiliaryStrategy and relation type as input and -creates a Link header with the strategy identifier and the relation type as "rel" value.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    auxiliaryStrategy: AuxiliaryStrategy
    -
    - -
    logger: Logger = ...
    -
    - -
    relationType: string
    -
    - -
    specificStrategy: AuxiliaryStrategy
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/AuxiliaryReader.html b/5.x/docs/classes/AuxiliaryReader.html deleted file mode 100644 index addcc85cd..000000000 --- a/5.x/docs/classes/AuxiliaryReader.html +++ /dev/null @@ -1,215 +0,0 @@ -AuxiliaryReader | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Determines the permissions of auxiliary resources by finding those of the corresponding subject resources.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    auxiliaryStrategy: AuxiliaryStrategy
    -
    - -
    logger: Logger = ...
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/BadRequestHttpError.html b/5.x/docs/classes/BadRequestHttpError.html deleted file mode 100644 index 3a4ef6165..000000000 --- a/5.x/docs/classes/BadRequestHttpError.html +++ /dev/null @@ -1,214 +0,0 @@ -BadRequestHttpError | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    An error thrown when incoming data is not supported. -Probably because an AsyncHandler returns false on the canHandle call.

    -
    -
    -

    Hierarchy

    -
      -
    • BaseHttpError -
        -
      • BadRequestHttpError
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    cause?: unknown
    -
    - -
    details?: Dict<unknown>
    -
    - -
    errorCode: string
    -
    - -
    message: string
    -
    - -
    name: string
    -
    - -
    stack?: string
    -
    - -
    statusCode: 400
    -
    - -
    isInstance: ((error: any) => error is HttpError<400>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (error: any): error is HttpError<400>
      • -
      • -

        Checks if the given error is an instance of this class.

        -
        -
        -

        Parameters

        -
          -
        • -
          error: any
        -

        Returns error is HttpError<400>

    -
    - -
    statusCode: 400
    -

    The status code corresponding to this error class.

    -
    -
    - -
    uri: NamedNode<string>
    -

    A unique URI identifying this error class.

    -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Returns quads representing metadata relevant to this error.

      -
      -
      -

      Parameters

      -
        -
      • -
        subject: string | Quad_Subject
      -

      Returns Quad[]

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/BaseAccountStore.html b/5.x/docs/classes/BaseAccountStore.html deleted file mode 100644 index b4206f616..000000000 --- a/5.x/docs/classes/BaseAccountStore.html +++ /dev/null @@ -1,430 +0,0 @@ -BaseAccountStore | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    A EmailPasswordStore that uses a KeyValueStorage to persist its information and an -ExpiringStorage to persist ForgotPassword records.

    -

    forgotPasswordExpiration parameter is how long the ForgotPassword record should be - stored in minutes. (defaults to 15 minutes)

    -
    -
    -

    Hierarchy

    -
      -
    • BaseAccountStore
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    forgotPasswordExpiration: number
    -
    - -
    forgotPasswordStorage: ExpiringStorage<string, EmailPasswordData>
    -
    - -
    saltRounds: number
    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Authenticate if the username and password are correct and return the WebID -if it is. Throw an error if it is not.

      - -

      Returns

      The user's WebID.

      -
      -
      -

      Parameters

      -
        -
      • -
        email: string
        -

        The user's email.

        -
      • -
      • -
        password: string
        -

        This user's password.

        -
      -

      Returns Promise<string>

    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Deletes the Forgot Password Confirmation Record

      -
      -
      -

      Parameters

      -
        -
      • -
        recordId: string
        -

        The record id of the forgot password confirmation record.

        -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Creates a Forgot Password Confirmation Record. This will be to remember that -a user has made a request to reset a password. Throws an error if the email doesn't -exist

      - -

      Returns

      The record id. This should be included in the reset password link.

      -
      -
      -

      Parameters

      -
        -
      • -
        email: string
        -

        The user's email.

        -
      -

      Returns Promise<string>

    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Gets the email associated with the forgot password confirmation record or undefined -if it's not present

      - -

      Returns

      The user's email.

      -
      -
      -

      Parameters

      -
        -
      • -
        recordId: string
        -

        The record id retrieved from the link.

        -
      -

      Returns Promise<undefined | string>

    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Verifies the account creation. This can be used with, for example, e-mail verification. -The account can only be used after it is verified. -In case verification is not required, this should be called immediately after the create call.

      -
      -
      -

      Parameters

      -
        -
      • -
        email: string
        -

        The account email.

        -
      -

      Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/BaseComponentsJsFactory.html b/5.x/docs/classes/BaseComponentsJsFactory.html deleted file mode 100644 index 977655cae..000000000 --- a/5.x/docs/classes/BaseComponentsJsFactory.html +++ /dev/null @@ -1,146 +0,0 @@ -BaseComponentsJsFactory | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class BaseComponentsJsFactory

    -
    -

    Can be used to instantiate objects using Components.js. -Default main module path is the root folder of the project. -For every generate call a new manager will be made, -but moduleState will be stored in between calls.

    -
    -
    -

    Hierarchy

    -
      -
    • BaseComponentsJsFactory
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    options: IComponentsManagerBuilderOptions<any>
    -
    -

    Methods

    -
    - -
    -
    - -
      - -
    • -

      Calls Components.js to instantiate a new object.

      - -

      Returns

      The resulting object, corresponding to the given component IRI.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T

      -
      -

      Parameters

      -
        -
      • -
        configPath: string
        -

        Location of the config to instantiate.

        -
      • -
      • -
        componentIri: string
        -

        Iri of the object in the config that will be the result.

        -
      • -
      • -
        variables: Record<string, any>
        -

        Variables to send to Components.js

        -
      -

      Returns Promise<T>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/BaseEmailSender.html b/5.x/docs/classes/BaseEmailSender.html deleted file mode 100644 index 2c60cdb6b..000000000 --- a/5.x/docs/classes/BaseEmailSender.html +++ /dev/null @@ -1,172 +0,0 @@ -BaseEmailSender | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Sends e-mails using nodemailer.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    mailTransporter: Mail<any>
    -
    - -
    senderName: string
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: EmailArgs
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/BaseFileIdentifierMapper.html b/5.x/docs/classes/BaseFileIdentifierMapper.html deleted file mode 100644 index cbc43cf64..000000000 --- a/5.x/docs/classes/BaseFileIdentifierMapper.html +++ /dev/null @@ -1,414 +0,0 @@ -BaseFileIdentifierMapper | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class BaseFileIdentifierMapper

    -
    -

    Base class for FileIdentifierMapper implementations.

    -
    -
    -

    Hierarchy

    -
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    baseRequestURI: string
    -
    - -
    logger: Logger = ...
    -
    - -
    rootFilepath: string
    -
    - -
    unknownMediaTypeExtension: "unknown" = 'unknown'
    -
    -

    Methods

    -
    - -
      - -
    • -

      Get the absolute file path based on the rootFilepath.

      - -

      Returns

      Absolute path of the file.

      -
      -
      -

      Parameters

      -
        -
      • -
        path: string
        -

        The relative file path.

        -
      -

      Returns string

    -
    - -
      - -
    • -

      Maps the given container path to a URL and determines its content type.

      - -

      Returns

      A ResourceLink with all the necessary metadata.

      -
      -
      -

      Parameters

      -
        -
      • -
        relative: string
        -

        The relative container path.

        -
      -

      Returns Promise<string>

    -
    - -
      - -
    • -

      Determines the content type from the relative path.

      - -

      Returns

      The content type of the document.

      -
      -
      -

      Parameters

      -
        -
      • -
        filePath: string
        -

        The file path of the document.

        -
      -

      Returns Promise<string>

    -
    - -
      - -
    • -

      Determines the content type from the document identifier.

      - -

      Returns

      The content type of the document.

      -
      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
        -

        The input identifier.

        -
      • -
      • -
        Optional contentType: string
        -

        The content-type provided with the request.

        -
      -

      Returns Promise<string>

    -
    - -
      - -
    • -

      Maps the given document path to a URL and determines its content type.

      - -

      Returns

      A ResourceLink with all the necessary metadata.

      -
      -
      -

      Parameters

      -
        -
      • -
        relative: string
        -

        The relative document path.

        -
      -

      Returns Promise<string>

    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Maps the given file path to a URL and determines its content type.

      - -

      Returns

      A ResourceLink with all the necessary metadata.

      -
      -
      -

      Parameters

      -
        -
      • -
        filePath: string
        -

        The input file path.

        -
      • -
      • -
        isContainer: boolean
        -

        If the path corresponds to a file.

        -
      -

      Returns Promise<ResourceLink>

    -
    - -
    -
    - -
      - -
    • -

      Maps the given document identifier to a file path, -possibly making alterations to the direct translation -(for instance, based on its content type)). -Determines the content type if none was provided.

      - -

      Returns

      A ResourceLink with all the necessary metadata.

      -
      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
        -

        The input identifier.

        -
      • -
      • -
        filePath: string
        -

        The direct translation of the identifier onto the file path.

        -
      • -
      • -
        Optional contentType: string
        -

        The content-type provided with the request.

        -
      -

      Returns Promise<ResourceLink>

    -
    - -
      - -
    • -

      Maps the given resource identifier / URL to a file path. -Determines the content type if none was provided. -For containers the content-type input is ignored.

      - -

      Returns

      A ResourceLink with all the necessary metadata.

      -
      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
        -

        The input identifier.

        -
      • -
      • -
        isMetadata: boolean
        -

        If we need the data or metadata file path.

        -
      • -
      • -
        Optional contentType: string
        -

        The content-type provided with the request.

        -
      -

      Returns Promise<ResourceLink>

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/BaseHttpServerFactory.html b/5.x/docs/classes/BaseHttpServerFactory.html deleted file mode 100644 index 0e9e4f03d..000000000 --- a/5.x/docs/classes/BaseHttpServerFactory.html +++ /dev/null @@ -1,144 +0,0 @@ -BaseHttpServerFactory | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class BaseHttpServerFactory

    -
    -

    HttpServerFactory based on the native Node.js http module

    -
    -
    -

    Hierarchy

    -
      -
    • BaseHttpServerFactory
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    handler: HttpHandler
    -

    The main HttpHandler

    -
    -
    - -
    logger: Logger = ...
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
      - -
    • -

      Creates and starts an HTTP(S) server

      -
      -
      -

      Parameters

      -
        -
      • -
        port: number
        -

        Port on which the server listens

        -
      -

      Returns Server

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/BaseIdentifierStrategy.html b/5.x/docs/classes/BaseIdentifierStrategy.html deleted file mode 100644 index 30360e35a..000000000 --- a/5.x/docs/classes/BaseIdentifierStrategy.html +++ /dev/null @@ -1,169 +0,0 @@ -BaseIdentifierStrategy | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class BaseIdentifierStrategyAbstract

    -
    -

    Provides a default implementation for getParentContainer -which checks if the identifier is supported and not a root container. -If not, the last part before the first relevant slash will be removed to find the parent.

    -

    Provides a default implementation for contains -which does standard slash-semantics based string comparison.

    -
    -
    -

    Hierarchy

    -
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/BaseInteractionHandler.html b/5.x/docs/classes/BaseInteractionHandler.html deleted file mode 100644 index 6387ef43c..000000000 --- a/5.x/docs/classes/BaseInteractionHandler.html +++ /dev/null @@ -1,213 +0,0 @@ -BaseInteractionHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class BaseInteractionHandlerAbstract

    -
    -

    Abstract implementation for handlers that always return a fixed JSON view on a GET. -POST requests are passed to an abstract function. -Other methods will be rejected.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    view: string
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/BaseLogger.html b/5.x/docs/classes/BaseLogger.html deleted file mode 100644 index c05cd8a77..000000000 --- a/5.x/docs/classes/BaseLogger.html +++ /dev/null @@ -1,241 +0,0 @@ -BaseLogger | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class BaseLoggerAbstract

    -
    -

    Base class that implements all additional BaseLogger methods, -leaving only the implementation of SimpleLogger.

    -
    -
    -

    Hierarchy

    -
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Log a message at the 'debug' level.

      -
      -
      -

      Parameters

      -
        -
      • -
        message: string
        -

        The message to log.

        -
      -

      Returns Logger

    -
    - -
      - -
    • -

      Log a message at the 'error' level.

      -
      -
      -

      Parameters

      -
        -
      • -
        message: string
        -

        The message to log.

        -
      -

      Returns Logger

    -
    - -
    -
    - -
      - -
    • -

      Log a message at the 'info' level.

      -
      -
      -

      Parameters

      -
        -
      • -
        message: string
        -

        The message to log.

        -
      -

      Returns Logger

    -
    - -
      - -
    • -

      Log the given message at the given level. -If the internal level is higher than the given level, the message may be voided.

      -
      -
      -

      Parameters

      -
        -
      • -
        level: "error" | "warn" | "info" | "verbose" | "debug" | "silly"
        -

        The level to log at.

        -
      • -
      • -
        message: string
        -

        The message to log.

        -
      • -
      • -
        Optional meta: LogMetadata
        -

        Optional metadata to include in the log message.

        -
      -

      Returns Logger

    -
    - -
      - -
    • -

      Log a message at the 'silly' level.

      -
      -
      -

      Parameters

      -
        -
      • -
        message: string
        -

        The message to log.

        -
      -

      Returns Logger

    -
    - -
      - -
    • -

      Log a message at the 'verbose' level.

      -
      -
      -

      Parameters

      -
        -
      • -
        message: string
        -

        The message to log.

        -
      -

      Returns Logger

    -
    - -
      - -
    • -

      Log a message at the 'warn' level.

      -
      -
      -

      Parameters

      -
        -
      • -
        message: string
        -

        The message to log.

        -
      -

      Returns Logger

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/BaseResourceStore.html b/5.x/docs/classes/BaseResourceStore.html deleted file mode 100644 index cd5e09363..000000000 --- a/5.x/docs/classes/BaseResourceStore.html +++ /dev/null @@ -1,247 +0,0 @@ -BaseResourceStore | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Base implementation of ResourceStore for implementers of custom stores.

    -
    -
    -

    Hierarchy

    -
      -
    • BaseResourceStore
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Check if a resource exists in this ResourceSet.

      - -

      Returns

      A promise resolving if the resource already exists.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<boolean>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/BaseTypedRepresentationConverter.html b/5.x/docs/classes/BaseTypedRepresentationConverter.html deleted file mode 100644 index 0ff8b026d..000000000 --- a/5.x/docs/classes/BaseTypedRepresentationConverter.html +++ /dev/null @@ -1,207 +0,0 @@ -BaseTypedRepresentationConverter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class BaseTypedRepresentationConverterAbstract

    -
    -

    A base TypedRepresentationConverter implementation for converters -that can convert from all its input types to all its output types.

    -

    This base class handles the canHandle call by comparing the input content type to the stored input types -and the output preferences to the stored output types.

    -

    Output weights are determined by multiplying all stored output weights with the weight of the input type.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    inputTypes: Promise<ValuePreferences>
    -
    - -
    outputTypes: Promise<ValuePreferences>
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/BaseUrlExtractor.html b/5.x/docs/classes/BaseUrlExtractor.html deleted file mode 100644 index 2bcd4073a..000000000 --- a/5.x/docs/classes/BaseUrlExtractor.html +++ /dev/null @@ -1,166 +0,0 @@ -BaseUrlExtractor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    A ShorthandExtractor that that generates the base URL based on the input baseUrl value, -or by using the port if the first isn't provided.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    defaultPort: number
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: Shorthand
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: Shorthand
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<unknown>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/BaseUrlHandler.html b/5.x/docs/classes/BaseUrlHandler.html deleted file mode 100644 index cfeefff57..000000000 --- a/5.x/docs/classes/BaseUrlHandler.html +++ /dev/null @@ -1,163 +0,0 @@ -BaseUrlHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Adds the pod identifier as base url variable to the agent. -This allows for config templates that require a value for TEMPLATE_BASE_URL_URN, -which should equal the pod identifier.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/BaseUrlRouterRule.html b/5.x/docs/classes/BaseUrlRouterRule.html deleted file mode 100644 index bcd579493..000000000 --- a/5.x/docs/classes/BaseUrlRouterRule.html +++ /dev/null @@ -1,210 +0,0 @@ -BaseUrlRouterRule | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Routes requests based on their base url. -Checks if any of the stored base URLs match the request identifier. -If there are no matches the base store will be returned if one was configured.

    -

    Part of the dynamic pod creation. -Uses the identifiers that were added to the routing storage.

    - -

    See

    TemplatedPodGenerator, ConfigPodInitializer, ConfigPodManager

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    baseStore?: ResourceStore
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/BaseUrlVerifier.html b/5.x/docs/classes/BaseUrlVerifier.html deleted file mode 100644 index f95ab2f9c..000000000 --- a/5.x/docs/classes/BaseUrlVerifier.html +++ /dev/null @@ -1,184 +0,0 @@ -BaseUrlVerifier | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Stores the baseUrl value that was used to start the server -and warns the user in case it differs from the previous one.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    baseUrl: string
    -
    - -
    logger: Logger = ...
    -
    - -
    storage: KeyValueStorage<string, string>
    -
    - -
    storageKey: string
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/BasicConditions.html b/5.x/docs/classes/BasicConditions.html deleted file mode 100644 index ed1509795..000000000 --- a/5.x/docs/classes/BasicConditions.html +++ /dev/null @@ -1,175 +0,0 @@ -BasicConditions | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Stores all the relevant Conditions values and matches them based on RFC7232.

    -
    -
    -

    Hierarchy

    -
      -
    • BasicConditions
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    matchesETag?: string[]
    -

    Valid if matching any of the given ETags.

    -
    -
    - -
    modifiedSince?: Date
    -

    Valid if modified since the given date.

    -
    -
    - -
    notMatchesETag?: string[]
    -

    Valid if not matching any of the given ETags.

    -
    -
    - -
    unmodifiedSince?: Date
    -

    Valid if not modified since the given date.

    -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks validity based on the given ETag and/or date. -This function assumes the resource being checked exists. -If not, the matchesMetadata function should be used.

      -
      -
      -

      Parameters

      -
        -
      • -
        Optional eTag: string
        -

        Condition based on ETag.

        -
      • -
      • -
        Optional lastModified: Date
        -

        Condition based on last modified date.

        -
      -

      Returns boolean

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/BasicConditionsParser.html b/5.x/docs/classes/BasicConditionsParser.html deleted file mode 100644 index 86c228d0b..000000000 --- a/5.x/docs/classes/BasicConditionsParser.html +++ /dev/null @@ -1,205 +0,0 @@ -BasicConditionsParser | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class BasicConditionsParser

    -
    -

    Creates a Conditions object based on the the following headers:

    -
      -
    • If-Modified-Since
    • -
    • If-Unmodified-Since
    • -
    • If-Match
    • -
    • If-None-Match
    • -
    -

    Implementation based on RFC7232

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: HttpRequest
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Converts a request header containing a datetime string to an actual Date object. -Undefined if there is no value for the given header name.

      -
      -
      -

      Parameters

      -
        -
      • -
        request: HttpRequest
      • -
      • -
        header: "if-modified-since" | "if-unmodified-since"
      -

      Returns undefined | Date

    -
    - -
      - -
    • -

      Converts a request header containing ETags to an array of ETags. -Undefined if there is no value for the given header name.

      -
      -
      -

      Parameters

      -
        -
      • -
        request: HttpRequest
      • -
      • -
        header: "if-match" | "if-none-match"
      -

      Returns undefined | string[]

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/BasicRepresentation.html b/5.x/docs/classes/BasicRepresentation.html deleted file mode 100644 index 04ff9cd09..000000000 --- a/5.x/docs/classes/BasicRepresentation.html +++ /dev/null @@ -1,251 +0,0 @@ -BasicRepresentation | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Class with various constructors to facilitate creating a representation.

    -

    A representation consists of 1) data, 2) metadata, and 3) a binary flag -to indicate whether the data is a binary stream or an object stream.

    -
      -
    1. The data can be given as a stream, array, or string.
    2. -
    3. The metadata can be specified as one or two parameters -that will be passed to the RepresentationMetadata constructor.
    4. -
    5. The binary field is optional, and if not specified, -is determined from the content type inside the metadata.
    6. -
    -
    -
    -

    Hierarchy

    -
      -
    • BasicRepresentation
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Accessors

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    binary: boolean
    -

    Whether the data stream consists of binary/string chunks -(as opposed to complex objects).

    -
    -
    - -
    data: Guarded<Readable>
    -

    The raw data stream for this representation.

    -
    -
    - - -

    The corresponding metadata.

    -
    -
    -

    Accessors

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/BasicRequestParser.html b/5.x/docs/classes/BasicRequestParser.html deleted file mode 100644 index ab36e9bb4..000000000 --- a/5.x/docs/classes/BasicRequestParser.html +++ /dev/null @@ -1,195 +0,0 @@ -BasicRequestParser | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Creates an Operation from an incoming HttpRequest by aggregating the results -of a TargetExtractor, MetadataParser, -ConditionsParser and BodyParser.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    bodyParser: BodyParser
    -
    - -
    conditionsParser: ConditionsParser
    -
    - -
    metadataParser: MetadataParser
    -
    - -
    preferenceParser: PreferenceParser
    -
    - -
    targetExtractor: TargetExtractor
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: HttpRequest
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/BasicResponseWriter.html b/5.x/docs/classes/BasicResponseWriter.html deleted file mode 100644 index 4fbf45458..000000000 --- a/5.x/docs/classes/BasicResponseWriter.html +++ /dev/null @@ -1,187 +0,0 @@ -BasicResponseWriter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Writes to an HttpResponse based on the incoming ResponseDescription.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    - -
    metadataWriter: MetadataWriter
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/BearerWebIdExtractor.html b/5.x/docs/classes/BearerWebIdExtractor.html deleted file mode 100644 index b13dcaa72..000000000 --- a/5.x/docs/classes/BearerWebIdExtractor.html +++ /dev/null @@ -1,167 +0,0 @@ -BearerWebIdExtractor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class BearerWebIdExtractor

    -
    -

    Responsible for extracting credentials from an incoming request.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    - -
    verify: SolidTokenVerifierFunction
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        __namedParameters: HttpRequest
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/BodyParser.html b/5.x/docs/classes/BodyParser.html deleted file mode 100644 index e311cf628..000000000 --- a/5.x/docs/classes/BodyParser.html +++ /dev/null @@ -1,150 +0,0 @@ -BodyParser | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class BodyParserAbstract

    -
    -

    Parses the body of an incoming HttpRequest and converts it to a Representation.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/BooleanHandler.html b/5.x/docs/classes/BooleanHandler.html deleted file mode 100644 index b48dc95cf..000000000 --- a/5.x/docs/classes/BooleanHandler.html +++ /dev/null @@ -1,187 +0,0 @@ -BooleanHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class BooleanHandler<TIn>

    -
    -

    A composite handler that returns true if any of its handlers can handle the input and return true. -Handler errors are interpreted as false results.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      TIn

    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    handlers: AsyncHandler<TIn, boolean>[]
    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: TIn
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: TIn
        -

        Input that needs to be handled.

        -
      -

      Returns Promise<boolean>

    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: TIn
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<boolean>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/CachedResourceSet.html b/5.x/docs/classes/CachedResourceSet.html deleted file mode 100644 index 34fda5495..000000000 --- a/5.x/docs/classes/CachedResourceSet.html +++ /dev/null @@ -1,125 +0,0 @@ -CachedResourceSet | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Caches resource existence in a WeakMap tied to the ResourceIdentifier object.

    -
    -
    -

    Hierarchy

    -
      -
    • CachedResourceSet
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    cache: WeakMap<ResourceIdentifier, boolean>
    -
    - -
    source: ResourceSet
    -
    -

    Methods

    -
    - -
      - -
    • -

      Check if a resource exists in this ResourceSet.

      - -

      Returns

      A promise resolving if the resource already exists.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<boolean>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ChainedConverter.html b/5.x/docs/classes/ChainedConverter.html deleted file mode 100644 index 6d77f8333..000000000 --- a/5.x/docs/classes/ChainedConverter.html +++ /dev/null @@ -1,382 +0,0 @@ -ChainedConverter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    A meta converter that takes an array of other converters as input. -It chains these converters by finding a path of converters -that can go from the given content-type to the given type preferences. -In case there are multiple paths, the one with the highest weight gets found. -Will error in case no path can be found.

    -

    This is not a TypedRepresentationConverter since the supported output types -might depend on what is the input content-type.

    -

    This converter should be the last in a WaterfallHandler if there are multiple, -since it will try to convert any representation with a content-type.

    -

    Some suggestions on how this class can be even more optimized should this ever be needed in the future. -Most of these decrease computation time at the cost of more memory.

    -
      -
    • The algorithm could start on both ends of a possible path and work towards the middle.
    • -
    • When creating a path, store the list of unused converters instead of checking every step.
    • -
    • Caching: https://github.com/CommunitySolidServer/CommunitySolidServer/issues/832
    • -
    • Making sure each intermediate type is only used once.
    • -
    • The TypedRepresentationConverter interface could potentially be updated -so paths only differing in intermediate types can be combined.
    • -
    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
    -
    - -
      - -
    • -

      Finds the path from the given list that can convert to the given preferences. -If there are multiple matches the one with the highest result weight gets chosen. -Will return undefined if there are no matches.

      -
      -
      -

      Parameters

      -
        -
      • -
        paths: ConversionPath[]
      -

      Returns undefined | ConversionPath

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Filter out paths that can no longer be better than the current best solution. -This depends on a valid path already being found, if not all the input paths will be returned.

      -
      -
      -

      Parameters

      -
        -
      • -
        paths: ConversionPath[]
        -

        Paths to filter.

        -
      • -
      • -
        maxWeight: number
        -

        The maximum weight in the output preferences.

        -
      • -
      • -
        Optional bestMatch: ConversionPath
        -

        The current best path.

        -
      -

      Returns ConversionPath[]

    -
    - -
    -
    - -
      - -
    • -

      Finds all converters that could take the output of the given path as input. -For each of these converters a new path gets created which is the input path appended by the converter.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<ConversionPath[]>

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ChainedTemplateEngine.html b/5.x/docs/classes/ChainedTemplateEngine.html deleted file mode 100644 index c71e939c6..000000000 --- a/5.x/docs/classes/ChainedTemplateEngine.html +++ /dev/null @@ -1,170 +0,0 @@ -ChainedTemplateEngine | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ChainedTemplateEngine<T>

    -
    -

    Calls the given array of TemplateEngines in the order they appear, -feeding the output of one into the input of the next.

    -

    The first engine will be called with the provided contents and template parameters. -All subsequent engines will be called with no template parameter. -Contents will still be passed along and another entry will be added for the body of the previous output.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      T extends Dict<any> = Dict<any>

    -
    -

    Hierarchy

    -
      -
    • ChainedTemplateEngine
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    chainedEngines: TemplateEngine<Dict<any>>[]
    -
    - -
    firstEngine: TemplateEngine<T>
    -
    - -
    renderedName: string
    -
    -

    Methods

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/CliExtractor.html b/5.x/docs/classes/CliExtractor.html deleted file mode 100644 index 67ada818a..000000000 --- a/5.x/docs/classes/CliExtractor.html +++ /dev/null @@ -1,159 +0,0 @@ -CliExtractor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class CliExtractorAbstract

    -
    -

    Converts the input CLI arguments into an easily parseable key/value object.

    -

    Due to how the application is built, there are certain CLI parameters -that need to be parsed before this class can be instantiated. -These can be ignored by this class as they will have been handled before it is called, -but that does mean that this class should not error if they are present, -e.g., by being strict throwing an error on these unexpected parameters.

    -

    In case strict mode is preferred, the following should be added to the list of known parameters:

    -
      -
    • -c / --config
    • -
    • -m / --mainModulePath
    • -
    • -l / --loggingLevel
    • -
    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: CliArgv
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: CliArgv
        -

        Input that needs to be handled.

        -
      -

      Returns Promise<Shorthand>

    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: CliArgv
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<Shorthand>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/CliResolver.html b/5.x/docs/classes/CliResolver.html deleted file mode 100644 index 6df0d122d..000000000 --- a/5.x/docs/classes/CliResolver.html +++ /dev/null @@ -1,97 +0,0 @@ -CliResolver | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    A class that combines a CliExtractor and a ShorthandResolver. -Mainly exists so both such classes can be generated in a single Components.js instance.

    -
    -
    -

    Hierarchy

    -
      -
    • CliResolver
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    cliExtractor: CliExtractor
    -
    - -
    shorthandResolver: ShorthandResolver
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ClientCredentialsAdapter.html b/5.x/docs/classes/ClientCredentialsAdapter.html deleted file mode 100644 index fd158b56b..000000000 --- a/5.x/docs/classes/ClientCredentialsAdapter.html +++ /dev/null @@ -1,233 +0,0 @@ -ClientCredentialsAdapter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ClientCredentialsAdapter

    -
    -

    A PassthroughAdapter that overrides the find function -by checking if there are stored client credentials for the given ID -if no payload is found in the source.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    name: string
    -
    - -
    source: Adapter
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ClientCredentialsAdapterFactory.html b/5.x/docs/classes/ClientCredentialsAdapterFactory.html deleted file mode 100644 index 889b88d39..000000000 --- a/5.x/docs/classes/ClientCredentialsAdapterFactory.html +++ /dev/null @@ -1,124 +0,0 @@ -ClientCredentialsAdapterFactory | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ClientCredentialsAdapterFactory

    -
    -

    A factory that generates an Adapter to be used by the IDP to persist information.

    -

    The oidc-provider library will call the relevant functions when it needs to find/create/delete metadata. -For a full explanation of how these functions work and what is expected, -have a look at https://github.com/panva/node-oidc-provider/blob/main/example/my_adapter.js

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ClusterManager.html b/5.x/docs/classes/ClusterManager.html deleted file mode 100644 index 1363c0a99..000000000 --- a/5.x/docs/classes/ClusterManager.html +++ /dev/null @@ -1,190 +0,0 @@ -ClusterManager | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    This class is responsible for deciding how many affective workers are needed. -It also contains the logic for respawning workers when they are killed by the os.

    -

    The workers values are interpreted as follows:

    - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    valueactual workers
    -mnum_cores - m workers (autoscale) (m < num_cores)
    -1num_cores - 1 workers (autoscale)
    0num_cores workers (autoscale)
    1single threaded mode (default)
    nn workers
    -
    -
    -

    Hierarchy

    -
      -
    • ClusterManager
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    clusterMode: ClusterMode
    -
    - -
    logger: Logger = ...
    -
    - -
    workers: number
    -
    -

    Methods

    -
    - -
    -
    - -
      - -
    • -

      Check whether the CSS server was booted in single threaded mode.

      - -

      Returns

      True is single threaded.

      -
      -

      Returns boolean

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/CombinedShorthandResolver.html b/5.x/docs/classes/CombinedShorthandResolver.html deleted file mode 100644 index 7c6e7e130..000000000 --- a/5.x/docs/classes/CombinedShorthandResolver.html +++ /dev/null @@ -1,165 +0,0 @@ -CombinedShorthandResolver | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class CombinedShorthandResolver

    -
    -

    Generates variable values by running a set of ShorthandExtractors on the input.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    resolvers: Record<string, ShorthandExtractor>
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: Shorthand
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: Record<string, unknown>
        -

        Input that needs to be handled.

        -
      -

      Returns Promise<Record<string, unknown>>

    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: Shorthand
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<VariableBindings>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ComposedAuxiliaryStrategy.html b/5.x/docs/classes/ComposedAuxiliaryStrategy.html deleted file mode 100644 index ebf2f0413..000000000 --- a/5.x/docs/classes/ComposedAuxiliaryStrategy.html +++ /dev/null @@ -1,304 +0,0 @@ -ComposedAuxiliaryStrategy | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ComposedAuxiliaryStrategy

    -
    -

    An AuxiliaryStrategy that provides its functionality through the combination of -an AuxiliaryIdentifierStrategy, MetadataGenerator and Validator.

    -
    -
    -

    Hierarchy

    -
      -
    • ComposedAuxiliaryStrategy
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    identifierStrategy: AuxiliaryIdentifierStrategy
    -
    - -
    metadataGenerator?: MetadataGenerator
    -
    - -
    ownAuthorization: boolean
    -
    - -
    requiredInRoot: boolean
    -
    - -
    validator?: Validator
    -
    -

    Methods

    -
    - -
      - -
    • -

      Adds metadata related to this auxiliary resource, -in case this is required for this type of auxiliary resource. -The metadata that is added depends on the given identifier being an auxiliary or subject resource: -the metadata will be used to link to the other one, and potentially add extra typing info.

      -

      Used for: -Solid, §4.3.1: "For any defined auxiliary resource available for a given Solid resource, all representations of -that resource MUST include an HTTP Link header pointing to the location of each auxiliary resource." -https://solid.github.io/specification/protocol#auxiliary-resources-server

      -

      The above is an example of how that metadata would only be added in case the input is the subject identifier.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Checks if the input identifier corresponds to an auxiliary resource. -This does not check if that auxiliary resource exists, -only if the identifier indicates that there could be an auxiliary resource there.

      - -

      Returns

      true if the input identifier points to an auxiliary resource.

      -
      -
      -

      Parameters

      -
      -

      Returns boolean

    -
    - -
      - -
    • -

      Whether the root storage container requires this auxiliary resource to be present. -If yes, this means they can't be deleted individually from such a container.

      -
      -

      Returns boolean

    -
    - -
      - -
    • -

      Whether this auxiliary resources uses its own authorization instead of the subject resource authorization.

      -
      -

      Returns boolean

    -
    - -
      - -
    • -

      Validates if the representation contains valid data for an auxiliary resource. -Should throw an error in case the data is invalid.

      -
      -
      -

      Parameters

      -
        -
      • -
        representation: Representation
        -

        Representation of the auxiliary resource.

        -
      -

      Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ConditionalHandler.html b/5.x/docs/classes/ConditionalHandler.html deleted file mode 100644 index 12b554105..000000000 --- a/5.x/docs/classes/ConditionalHandler.html +++ /dev/null @@ -1,229 +0,0 @@ -ConditionalHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ConditionalHandler<TIn, TOut>

    -
    -

    This handler will pass all requests to the wrapped handler, -until a specific value has been set in the given storage. -After that all input will be rejected. -Once the value has been matched this behaviour will be cached, -so changing the value again afterwards will not enable this handler again.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      TIn

    • -
    • -

      TOut

    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    finished: boolean
    -
    - -
    source: AsyncHandler<TIn, TOut>
    -
    - -
    storage: KeyValueStorage<string, unknown>
    -
    - -
    storageKey: string
    -
    - -
    storageValue: unknown
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: TIn
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: TIn
        -

        Input that needs to be handled.

        -
      -

      Returns Promise<TOut>

    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: TIn
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<TOut>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ConditionsParser.html b/5.x/docs/classes/ConditionsParser.html deleted file mode 100644 index aaf802561..000000000 --- a/5.x/docs/classes/ConditionsParser.html +++ /dev/null @@ -1,148 +0,0 @@ -ConditionsParser | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ConditionsParserAbstract

    -
    -

    Creates a Conditions object based on the input HttpRequest.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: HttpRequest
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ConfigPodInitializer.html b/5.x/docs/classes/ConfigPodInitializer.html deleted file mode 100644 index 0d6833e47..000000000 --- a/5.x/docs/classes/ConfigPodInitializer.html +++ /dev/null @@ -1,191 +0,0 @@ -ConfigPodInitializer | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ConfigPodInitializer

    -
    -

    Initializes all pods that have been stored and loads them in memory. -This reads the pod settings from a permanent storage and uses those -to create the corresponding ResourceStores in memory, -so this is required every time the server starts.

    -

    Part of the dynamic pod creation. -Reads the contents from the configuration storage, uses those values to instantiate ResourceStores, -and then adds them to the routing storage.

    - -

    See

    ConfigPodManager, TemplatedPodGenerator, BaseUrlRouterRule

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    configStorage: KeyValueStorage<string, unknown>
    -
    - -
    logger: Logger = ...
    -
    - -
    routingStorage: KeyValueStorage<string, ResourceStore>
    -
    - -
    storeFactory: ComponentsJsFactory
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ConfigPodManager.html b/5.x/docs/classes/ConfigPodManager.html deleted file mode 100644 index 7e2cb0feb..000000000 --- a/5.x/docs/classes/ConfigPodManager.html +++ /dev/null @@ -1,171 +0,0 @@ -ConfigPodManager | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Pod manager that creates a store for the pod with a PodGenerator -and fills it with resources from a ResourcesGenerator.

    -

    Part of the dynamic pod creation.

    -
      -
    1. Calls a PodGenerator to instantiate a new resource store for the pod.
    2. -
    3. Generates the pod resources based on the templates as usual.
    4. -
    5. Adds the created pod to the routing storage, which is used for linking pod identifiers to their resource stores.
    6. -
    - -

    See

    TemplatedPodGenerator, ConfigPodInitializer, BaseUrlRouterRule

    -
    -
    -

    Hierarchy

    -
      -
    • ConfigPodManager
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    - -
    podGenerator: PodGenerator
    -
    - -
    resourcesGenerator: ResourcesGenerator
    -
    - -
    routingStorage: KeyValueStorage<string, ResourceStore>
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ConflictHttpError.html b/5.x/docs/classes/ConflictHttpError.html deleted file mode 100644 index e449d9369..000000000 --- a/5.x/docs/classes/ConflictHttpError.html +++ /dev/null @@ -1,207 +0,0 @@ -ConflictHttpError | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    An error thrown when a request conflict with current state of the server.

    -
    -
    -

    Hierarchy

    -
      -
    • BaseHttpError -
        -
      • ConflictHttpError
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    cause?: unknown
    -
    - -
    details?: Dict<unknown>
    -
    - -
    errorCode: string
    -
    - -
    message: string
    -
    - -
    name: string
    -
    - -
    stack?: string
    -
    - -
    statusCode: 409
    -
    - -
    isInstance: ((error: any) => error is HttpError<409>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (error: any): error is HttpError<409>
      • -
      • -

        Checks if the given error is an instance of this class.

        -
        -
        -

        Parameters

        -
          -
        • -
          error: any
        -

        Returns error is HttpError<409>

    -
    - -
    statusCode: 409
    -

    The status code corresponding to this error class.

    -
    -
    - -
    uri: NamedNode<string>
    -

    A unique URI identifying this error class.

    -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Returns quads representing metadata relevant to this error.

      -
      -
      -

      Parameters

      -
        -
      • -
        subject: string | Quad_Subject
      -

      Returns Quad[]

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ConsentHandler.html b/5.x/docs/classes/ConsentHandler.html deleted file mode 100644 index 0040ef93a..000000000 --- a/5.x/docs/classes/ConsentHandler.html +++ /dev/null @@ -1,265 +0,0 @@ -ConsentHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Handles the OIDC consent prompts where the user confirms they want to log in for the given client.

    -

    Returns all the relevant Client metadata on GET requests.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    providerFactory: ProviderFactory
    -
    -

    Methods

    -
    - -
    -
    - -
      - -
    • -

      Either returns the grant associated with the given interaction or creates a new one if it does not exist yet.

      -
      -
      -

      Parameters

      -
        -
      • -
        oidcInteraction: Interaction
      -

      Returns Promise<Grant>

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Updates the grant with all the missing scopes and claims requested by the interaction.

      -

      Will reject the offline_access scope if remember is false.

      -
      -
      -

      Parameters

      -
        -
      • -
        grant: Grant
      • -
      • -
        details: UnknownObject
      • -
      • -
        remember: boolean
      -

      Returns void

    -
    - -
      - -
    • -

      Updates the interaction with the new grant and returns the resulting redirect URL.

      -
      -
      -

      Parameters

      -
        -
      • -
        oidcInteraction: Interaction
      • -
      • -
        grant: Grant
      -

      Returns Promise<string>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ConstantConverter.html b/5.x/docs/classes/ConstantConverter.html deleted file mode 100644 index 8acc0934c..000000000 --- a/5.x/docs/classes/ConstantConverter.html +++ /dev/null @@ -1,197 +0,0 @@ -ConstantConverter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    A RepresentationConverter that ensures -a representation for a certain content type is available.

    -

    Representations of the same content type are served as is; -others are replaced by a constant document.

    -

    This can for example be used to serve an index.html file, -which could then interactively load another representation.

    -

    Options default to the most permissive values when not defined.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    contentType: string
    -
    - -
    filePath: string
    -
    - -
    options: Required<ConstantConverterOptions>
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ConstantMetadataWriter.html b/5.x/docs/classes/ConstantMetadataWriter.html deleted file mode 100644 index e34707ab1..000000000 --- a/5.x/docs/classes/ConstantMetadataWriter.html +++ /dev/null @@ -1,178 +0,0 @@ -ConstantMetadataWriter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ConstantMetadataWriter

    -
    -

    A MetadataWriter that takes a constant map of header names and values.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    headers: [string, string][]
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -
      -

      Parameters

      -
        -
      • -
        __namedParameters: { response: ServerResponse }
        -

        Input that needs to be handled.

        -
        -
          -
        • -
          response: ServerResponse
      -

      Returns Promise<void>

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ContainerInitializer.html b/5.x/docs/classes/ContainerInitializer.html deleted file mode 100644 index cca409fd3..000000000 --- a/5.x/docs/classes/ContainerInitializer.html +++ /dev/null @@ -1,194 +0,0 @@ -ContainerInitializer | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ContainerInitializer

    -
    -

    Initializer that sets up a container. -Will copy all the files and folders in the given path to the corresponding documents and containers.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    containerId: ResourceIdentifier
    -
    - -
    -
    - -
    logger: Logger = ...
    -
    - -
    storage: KeyValueStorage<string, boolean>
    -
    - -
    storageKey: string
    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ContainerToTemplateConverter.html b/5.x/docs/classes/ContainerToTemplateConverter.html deleted file mode 100644 index 55236a5ee..000000000 --- a/5.x/docs/classes/ContainerToTemplateConverter.html +++ /dev/null @@ -1,272 +0,0 @@ -ContainerToTemplateConverter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ContainerToTemplateConverter

    -
    -

    A RepresentationConverter that creates a templated representation of a container.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    contentType: string
    -
    - -
    identifierStrategy: IdentifierStrategy
    -
    - -
    inputTypes: Promise<ValuePreferences>
    -
    - -
    outputTypes: Promise<ValuePreferences>
    -
    - -
    templateEngine: TemplateEngine<Dict<any>>
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ContentLengthParser.html b/5.x/docs/classes/ContentLengthParser.html deleted file mode 100644 index f9af43434..000000000 --- a/5.x/docs/classes/ContentLengthParser.html +++ /dev/null @@ -1,173 +0,0 @@ -ContentLengthParser | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Parser for the content-length header.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ContentType.html b/5.x/docs/classes/ContentType.html deleted file mode 100644 index db6017f1e..000000000 --- a/5.x/docs/classes/ContentType.html +++ /dev/null @@ -1,116 +0,0 @@ -ContentType | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Contents of a HTTP Content-Type Header. -Optional parameters Record is included.

    -
    -
    -

    Hierarchy

    -
      -
    • ContentType
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    parameters: Record<string, string> = {}
    -
    - -
    value: string
    -
    -

    Methods

    -
    - -
      - -
    • -

      Serialize this ContentType object to a ContentType header appropriate value string.

      - -

      Returns

      The value string, including parameters, if present.

      -
      -

      Returns string

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ContentTypeMetadataWriter.html b/5.x/docs/classes/ContentTypeMetadataWriter.html deleted file mode 100644 index 9a4058129..000000000 --- a/5.x/docs/classes/ContentTypeMetadataWriter.html +++ /dev/null @@ -1,161 +0,0 @@ -ContentTypeMetadataWriter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ContentTypeMetadataWriter

    -
    -

    Adds the Content-Type header containing value and parameters (if available).

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ContentTypeParser.html b/5.x/docs/classes/ContentTypeParser.html deleted file mode 100644 index e9fff3514..000000000 --- a/5.x/docs/classes/ContentTypeParser.html +++ /dev/null @@ -1,161 +0,0 @@ -ContentTypeParser | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Parser for the content-type header.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ContentTypeReplacer.html b/5.x/docs/classes/ContentTypeReplacer.html deleted file mode 100644 index 6c679461d..000000000 --- a/5.x/docs/classes/ContentTypeReplacer.html +++ /dev/null @@ -1,214 +0,0 @@ -ContentTypeReplacer | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    A RepresentationConverter that changes the content type -but does not alter the representation.

    -

    Useful for when a content type is binary-compatible with another one; -for instance, all JSON-LD files are valid JSON files.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    contentTypeMap: Record<string, ValuePreferences> = {}
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ControlHandler.html b/5.x/docs/classes/ControlHandler.html deleted file mode 100644 index 49991e157..000000000 --- a/5.x/docs/classes/ControlHandler.html +++ /dev/null @@ -1,176 +0,0 @@ -ControlHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Adds controls and apiVersion fields to the output of its source handler, -such that clients can predictably find their way to other resources. -Control paths are determined by the input routes.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    controls: Record<string, string>
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ConvertingErrorHandler.html b/5.x/docs/classes/ConvertingErrorHandler.html deleted file mode 100644 index 55b528bc0..000000000 --- a/5.x/docs/classes/ConvertingErrorHandler.html +++ /dev/null @@ -1,241 +0,0 @@ -ConvertingErrorHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ConvertingErrorHandler

    -
    -

    Converts an error into a Representation of content type internal/error. -Then feeds that representation into its converter to create a representation based on the given preferences.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    - -
    preferenceParser: PreferenceParser
    -
    - -
    showStackTrace: boolean
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ConvertingPatcher.html b/5.x/docs/classes/ConvertingPatcher.html deleted file mode 100644 index 1235c2a23..000000000 --- a/5.x/docs/classes/ConvertingPatcher.html +++ /dev/null @@ -1,212 +0,0 @@ -ConvertingPatcher | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    A ConvertingPatcher converts a document to its intermediateType, -sends the result to the wrapped patcher, and then converts back to its original type. -No changes will take place if no intermediateType is provided.

    -

    In case there is no resource yet and a new one needs to be created, -the result of the wrapped patcher will be converted to the provided defaultType. -In case no defaultType is provided, the patcher output will be returned directly.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    - -
    defaultType?: string
    -
    - -
    intermediateType?: string
    -
    - -
    logger: Logger = ...
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ConvertingRouterRule.html b/5.x/docs/classes/ConvertingRouterRule.html deleted file mode 100644 index 21fce641e..000000000 --- a/5.x/docs/classes/ConvertingRouterRule.html +++ /dev/null @@ -1,225 +0,0 @@ -ConvertingRouterRule | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ConvertingRouterRule

    -
    -

    Rule that directs requests based on how the data would need to be converted. -In case the given converter can convert the data to the requested type, -it will be directed to the convertStore. -Otherwise the defaultStore will be chosen.

    -

    In case there is no data and only an identifier the defaultStore will be checked -if it contains the given identifier. -If not, the convertStore will be returned.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    defaultStore: ResourceStore
    -
    - -
    typedStores: ConvertingStoreEntry[]
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/CorsHandler.html b/5.x/docs/classes/CorsHandler.html deleted file mode 100644 index 9f0922e1d..000000000 --- a/5.x/docs/classes/CorsHandler.html +++ /dev/null @@ -1,225 +0,0 @@ -CorsHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Handler that sets CORS options on the response. -In case of an OPTIONS request this handler will close the connection after adding its headers -if preflightContinue is set to false.

    -

    Solid, §8.1: "A server MUST implement the CORS protocol [FETCH] such that, to the extent possible, -the browser allows Solid apps to send any request and combination of request headers to the server, -and the Solid app can read any response and response headers received from the server." -Full details: https://solidproject.org/TR/2021/protocol-20211217#cors-server

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    corsHandler: ((req: CorsRequest, res: { end: (() => any); setHeader: ((key: string, value: string) => any); statusCode?: number }, next: ((err?: any) => any)) => void)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (req: CorsRequest, res: { end: (() => any); setHeader: ((key: string, value: string) => any); statusCode?: number }, next: ((err?: any) => any)): void
      • -
      • -
        -

        Parameters

        -
          -
        • -
          req: CorsRequest
        • -
        • -
          res: { end: (() => any); setHeader: ((key: string, value: string) => any); statusCode?: number }
          -
            -
          • -
            end: (() => any)
            -
              -
            • -
                -
              • (): any
              • -
              • -

                Returns any

          • -
          • -
            setHeader: ((key: string, value: string) => any)
            -
              -
            • -
                -
              • (key: string, value: string): any
              • -
              • -
                -

                Parameters

                -
                  -
                • -
                  key: string
                • -
                • -
                  value: string
                -

                Returns any

          • -
          • -
            Optional statusCode?: number
        • -
        • -
          next: ((err?: any) => any)
          -
            -
          • -
              -
            • (err?: any): any
            • -
            • -
              -

              Parameters

              -
                -
              • -
                Optional err: any
              -

              Returns any

        -

        Returns void

    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/CreateCredentialsHandler.html b/5.x/docs/classes/CreateCredentialsHandler.html deleted file mode 100644 index 3a33cb57c..000000000 --- a/5.x/docs/classes/CreateCredentialsHandler.html +++ /dev/null @@ -1,176 +0,0 @@ -CreateCredentialsHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class CreateCredentialsHandler

    -
    -

    Handles the creation of credential tokens. -Requires a name field in the input JSON body, -that will be used to generate the ID token.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    accountStore: AccountStore
    -
    - -
    credentialStorage: KeyValueStorage<string, ClientCredentials>
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/CreateModesExtractor.html b/5.x/docs/classes/CreateModesExtractor.html deleted file mode 100644 index c693d83fb..000000000 --- a/5.x/docs/classes/CreateModesExtractor.html +++ /dev/null @@ -1,174 +0,0 @@ -CreateModesExtractor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class CreateModesExtractor

    -
    -

    Adds the create access mode to the result of the source in case the target resource does not exist.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    resourceSet: ResourceSet
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/CreatedResponseDescription.html b/5.x/docs/classes/CreatedResponseDescription.html deleted file mode 100644 index 6a22f4cf1..000000000 --- a/5.x/docs/classes/CreatedResponseDescription.html +++ /dev/null @@ -1,107 +0,0 @@ -CreatedResponseDescription | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class CreatedResponseDescription

    -
    -

    Corresponds to a 201 response, containing the relevant location metadata.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    data?: Guarded<Readable>
    -
    - -
    -
    - -
    statusCode: number
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/CredentialsExtractor.html b/5.x/docs/classes/CredentialsExtractor.html deleted file mode 100644 index 44b786607..000000000 --- a/5.x/docs/classes/CredentialsExtractor.html +++ /dev/null @@ -1,152 +0,0 @@ -CredentialsExtractor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class CredentialsExtractorAbstract

    -
    -

    Responsible for extracting credentials from an incoming request.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: HttpRequest
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/CredentialsHandler.html b/5.x/docs/classes/CredentialsHandler.html deleted file mode 100644 index 5c073ca2b..000000000 --- a/5.x/docs/classes/CredentialsHandler.html +++ /dev/null @@ -1,151 +0,0 @@ -CredentialsHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class CredentialsHandlerAbstract

    -
    -

    Handles a request after the user has been authenticated -by providing a valid email/password combination in the JSON body.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/DPoPWebIdExtractor.html b/5.x/docs/classes/DPoPWebIdExtractor.html deleted file mode 100644 index c4bd7f9d2..000000000 --- a/5.x/docs/classes/DPoPWebIdExtractor.html +++ /dev/null @@ -1,181 +0,0 @@ -DPoPWebIdExtractor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Credentials extractor that extracts a WebID from a DPoP-bound access token.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    - -
    originalUrlExtractor: TargetExtractor
    -
    - -
    verify: SolidTokenVerifierFunction = ...
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        __namedParameters: HttpRequest
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/DataAccessorBasedStore.html b/5.x/docs/classes/DataAccessorBasedStore.html deleted file mode 100644 index 7ad81c8a1..000000000 --- a/5.x/docs/classes/DataAccessorBasedStore.html +++ /dev/null @@ -1,740 +0,0 @@ -DataAccessorBasedStore | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class DataAccessorBasedStore

    -
    -

    ResourceStore which uses a DataAccessor for backend access.

    -

    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:

    -
      -
    • Converting container metadata to data
    • -
    • Converting slug to URI
    • -
    • Checking if addResource target is a container
    • -
    • Checking if no containment triples are written to a container
    • -
    • etc.
    • -
    -

    Currently "metadata" 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).

    -

    The one thing this store does not take care of (yet?) are containment triples for containers

    -

    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.

    -
    -
    -

    Hierarchy

    -
      -
    • DataAccessorBasedStore
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    accessor: DataAccessor
    -
    - -
    auxiliaryStrategy: AuxiliaryStrategy
    -
    - -
    identifierStrategy: IdentifierStrategy
    -
    - -
    logger: Logger = ...
    -
    - -
    metadataStrategy: AuxiliaryStrategy
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Clean http Slug to be compatible with the server. Makes sure there are no unwanted characters -e.g.: cleanslug('&%26') returns '%26%26'

      -
      -
      -

      Parameters

      -
        -
      • -
        slug: string
        -

        the slug to clean

        -
      -

      Returns string

    -
    - -
      - -
    • -

      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 "container" corresponds to an existing document.

      -
      -
      -

      Parameters

      -
        -
      • -
        container: ResourceIdentifier
        -

        Identifier of the container which will need to exist.

        -
      -

      Returns Promise<ChangeMap>

    -
    - -
    -
    - -
      - -
    • -

      Generates a new URI for a resource in the given container, potentially using the given slug.

      -

      Solid, §5.3: "Servers MUST allow creating new resources with a POST request to URI path ending /. -Servers MUST create a resource with URI path ending /{id} in container /. -Servers MUST create a container with URI path ending /{id}/ in container / for requests -including the HTTP Link header with rel="type" targeting a valid LDP container type." -https://solid.github.io/specification/protocol#writing-resources

      -
      -
      -

      Parameters

      -
        -
      • -
        container: ResourceIdentifier
        -

        Parent container of the new URI.

        -
      • -
      • -
        isContainer: boolean
        -

        Does the new URI represent a container?

        -
      • -
      • -
        Optional slug: string
        -

        Slug to use for the new URI.

        -
      -

      Returns ResourceIdentifier

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Checks in a list of types if any of them match a Container type.

      -
      -
      -

      Parameters

      -
        -
      • -
        rdfTypes: Term[]
      -

      Returns boolean

    -
    - -
    -
    - -
      - -
    • -

      Check if a resource exists in this ResourceSet.

      - -

      Returns

      A promise resolving if the resource already exists.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<boolean>

    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Sets or updates the representation of a resource, -creating a new resource and intermediary containers as needed.

      - -

      Returns

      A ChangeMap.

      -
      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
        -

        Identifier of resource to update.

        -
      • -
      • -
        patch: Patch
        -

        Description of which parts to update.

        -
      • -
      • -
        Optional conditions: Conditions
        -

        Optional conditions under which to proceed.

        -
      -

      Returns Promise<never>

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Validates if the slug and headers are valid. -Errors if slug exists, ends on slash, but ContainerType Link header is NOT present

      -
      -
      -

      Parameters

      -
        -
      • -
        isContainer: boolean
        -

        Is the slug supposed to represent a container?

        -
      • -
      • -
        Optional slug: string
        -

        Is the requested slug (if any).

        -
      -

      Returns void

    -
    - -
      - -
    • -

      Write the given resource to the DataAccessor. Metadata will be updated with necessary triples. -In case of containers handleContainerData will be used to verify the data.

      - -

      Returns

      Identifiers of resources that were possibly modified.

      -
      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
        -

        Identifier of the resource.

        -
      • -
      • -
        representation: Representation
        -

        Corresponding Representation.

        -
      • -
      • -
        isContainer: boolean
        -

        Is the incoming resource a container?

        -
      • -
      • -
        createContainers: boolean
        -

        Should parent containers (potentially) be created?

        -
      • -
      • -
        exists: boolean
        -

        If the resource already exists.

        -
      -

      Returns Promise<ChangeMap>

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/DeleteCredentialsHandler.html b/5.x/docs/classes/DeleteCredentialsHandler.html deleted file mode 100644 index c2cc32434..000000000 --- a/5.x/docs/classes/DeleteCredentialsHandler.html +++ /dev/null @@ -1,176 +0,0 @@ -DeleteCredentialsHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class DeleteCredentialsHandler

    -
    -

    Handles the deletion of credential tokens. -Expects the JSON body to have a delete field with as value the ID of the token to be deleted. -This should be replaced to be an actual DELETE request once the API supports it.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    accountStore: AccountStore
    -
    - -
    credentialStorage: KeyValueStorage<string, ClientCredentials>
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/DeleteOperationHandler.html b/5.x/docs/classes/DeleteOperationHandler.html deleted file mode 100644 index d711ce192..000000000 --- a/5.x/docs/classes/DeleteOperationHandler.html +++ /dev/null @@ -1,166 +0,0 @@ -DeleteOperationHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class DeleteOperationHandler

    -
    -

    Handles DELETE Operations. -Calls the deleteResource function from a ResourceStore.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/DeleteParentExtractor.html b/5.x/docs/classes/DeleteParentExtractor.html deleted file mode 100644 index ade9f8065..000000000 --- a/5.x/docs/classes/DeleteParentExtractor.html +++ /dev/null @@ -1,188 +0,0 @@ -DeleteParentExtractor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class DeleteParentExtractor

    -
    -

    In case a resource is being deleted but does not exist, -the server response code depends on the access modes the agent has on the parent container. -In case the agent has read access on the parent container, a 404 should be returned, -otherwise it should be 401/403.

    -

    This class adds support for this by requiring read access on the parent container -in case the target resource does not exist.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    identifierStrategy: IdentifierStrategy
    -
    - -
    resourceSet: ResourceSet
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/DynamicJsonToTemplateConverter.html b/5.x/docs/classes/DynamicJsonToTemplateConverter.html deleted file mode 100644 index efde711cb..000000000 --- a/5.x/docs/classes/DynamicJsonToTemplateConverter.html +++ /dev/null @@ -1,213 +0,0 @@ -DynamicJsonToTemplateConverter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class DynamicJsonToTemplateConverter

    -
    -

    Converts JSON data by using it as input parameters for rendering a template. -The extension field can be used to only support a specific type of templates, -such as ".ejs" for EJS templates.

    -

    To find the templates it expects the Representation metadata to contain SOLID_META.template triples, -with the objects being the template paths. -For each of those templates there also needs to be a CONTENT_TYPE triple -describing the content-type of that template.

    -

    The output of the result depends on the content-type matched with the template. -In case JSON is the most preferred output type, -the input representation will be returned unless a JSON template is defined.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    templateEngine: TemplateEngine<Dict<any>>
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/EjsTemplateEngine.html b/5.x/docs/classes/EjsTemplateEngine.html deleted file mode 100644 index f353d65be..000000000 --- a/5.x/docs/classes/EjsTemplateEngine.html +++ /dev/null @@ -1,161 +0,0 @@ -EjsTemplateEngine | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class EjsTemplateEngine<T>

    -
    -

    Fills in EJS templates.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      T extends Dict<any> = Dict<any>

    -
    -

    Hierarchy

    -
      -
    • EjsTemplateEngine
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    applyTemplate: Promise<TemplateFunction>
    -
    - -
    baseUrl: string
    -
    -

    Methods

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/EmailPasswordAuthorizer.html b/5.x/docs/classes/EmailPasswordAuthorizer.html deleted file mode 100644 index be3395c5b..000000000 --- a/5.x/docs/classes/EmailPasswordAuthorizer.html +++ /dev/null @@ -1,175 +0,0 @@ -EmailPasswordAuthorizer | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class EmailPasswordAuthorizer

    -
    -

    Authenticates a user by the email/password in a JSON POST body. -Passes the body and the WebID associated with that account to the source handler.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    accountStore: AccountStore
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/EmailSender.html b/5.x/docs/classes/EmailSender.html deleted file mode 100644 index aae0f0e73..000000000 --- a/5.x/docs/classes/EmailSender.html +++ /dev/null @@ -1,148 +0,0 @@ -EmailSender | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class EmailSenderAbstract

    -
    -

    A class that can send an e-mail.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: EmailArgs
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/EncodingPathStorage.html b/5.x/docs/classes/EncodingPathStorage.html deleted file mode 100644 index dc1b8cb83..000000000 --- a/5.x/docs/classes/EncodingPathStorage.html +++ /dev/null @@ -1,252 +0,0 @@ -EncodingPathStorage | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class EncodingPathStorage<T>

    -
    -

    Transforms the keys into relative paths, to be used by the source storage. -Encodes the input key with base64 encoding, -to make sure there are no invalid or special path characters, -and prepends it with the stored relative path. -This can be useful to eventually generate URLs in specific containers -without having to worry about cleaning the input keys.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      T

    -
    -

    Hierarchy

    -
      -
    • EncodingPathStorage
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    basePath: string
    -
    - -
    source: KeyValueStorage<string, T>
    -
    -

    Methods

    -
    - -
      - -
    • -

      Deletes the value stored for the given key.

      - -

      Returns

      If there was a value to delete.

      -
      -
      -

      Parameters

      -
        -
      • -
        key: string
        -

        Key to delete.

        -
      -

      Returns Promise<boolean>

    -
    - -
      - -
    • -

      An iterable of entries in the storage.

      -
      -

      Returns AsyncIterableIterator<[string, T]>

    -
    - -
      - -
    • -

      Returns the value stored for the given identifier. -undefined if no value is stored.

      -
      -
      -

      Parameters

      -
        -
      • -
        key: string
      -

      Returns Promise<undefined | T>

    -
    - -
      - -
    • -

      Checks if there is a value stored for the given key.

      -
      -
      -

      Parameters

      -
        -
      • -
        key: string
      -

      Returns Promise<boolean>

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/EqualReadWriteLocker.html b/5.x/docs/classes/EqualReadWriteLocker.html deleted file mode 100644 index a45099131..000000000 --- a/5.x/docs/classes/EqualReadWriteLocker.html +++ /dev/null @@ -1,209 +0,0 @@ -EqualReadWriteLocker | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class EqualReadWriteLocker

    -
    -

    A ReadWriteLocker that gives no priority to read or write operations: both use the same lock.

    -
    -
    -

    Hierarchy

    -
      -
    • EqualReadWriteLocker
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Acquires a new lock for the requested identifier. -Will resolve when the input function resolves.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T

      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
        -

        Identifier of resource that needs to be locked.

        -
      • -
      • -
        whileLocked: (() => T | Promise<T>)
        -

        Function to resolve while the resource is locked.

        -
        -
          -
        • -
            -
          • (): T | Promise<T>
          • -
          • -

            Returns T | Promise<T>

      -

      Returns Promise<T>

    -
    - -
      - -
    • -

      Run the given function while the resource is locked. -The lock will be released when the (async) input function resolves. -This function should be used for operations that only require reading the resource.

      - -

      Returns

      A promise resolving when the lock is released.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T

      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
        -

        Identifier of the resource that needs to be locked.

        -
      • -
      • -
        whileLocked: (() => T | Promise<T>)
        -

        A function to execute while the resource is locked.

        -
        -
          -
        • -
            -
          • (): T | Promise<T>
          • -
          • -

            Returns T | Promise<T>

      -

      Returns Promise<T>

    -
    - -
      - -
    • -

      Run the given function while the resource is locked. -The lock will be released when the (async) input function resolves. -This function should be used for operations that could modify the resource.

      - -

      Returns

      A promise resolving when the lock is released.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T

      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
        -

        Identifier of the resource that needs to be locked.

        -
      • -
      • -
        whileLocked: (() => T | Promise<T>)
        -

        A function to execute while the resource is locked.

        -
        -
          -
        • -
            -
          • (): T | Promise<T>
          • -
          • -

            Returns T | Promise<T>

      -

      Returns Promise<T>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ErrorHandler.html b/5.x/docs/classes/ErrorHandler.html deleted file mode 100644 index 4e12f8f44..000000000 --- a/5.x/docs/classes/ErrorHandler.html +++ /dev/null @@ -1,150 +0,0 @@ -ErrorHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ErrorHandlerAbstract

    -
    -

    Converts an error into a ResponseDescription based on the request preferences.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ErrorToJsonConverter.html b/5.x/docs/classes/ErrorToJsonConverter.html deleted file mode 100644 index aff6186c6..000000000 --- a/5.x/docs/classes/ErrorToJsonConverter.html +++ /dev/null @@ -1,189 +0,0 @@ -ErrorToJsonConverter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ErrorToJsonConverter

    -
    -

    Converts an Error object to JSON by copying its fields.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    inputTypes: Promise<ValuePreferences>
    -
    - -
    outputTypes: Promise<ValuePreferences>
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ErrorToQuadConverter.html b/5.x/docs/classes/ErrorToQuadConverter.html deleted file mode 100644 index 96e4871cf..000000000 --- a/5.x/docs/classes/ErrorToQuadConverter.html +++ /dev/null @@ -1,189 +0,0 @@ -ErrorToQuadConverter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ErrorToQuadConverter

    -
    -

    Converts an error object into quads by creating a triple for each of name/message/stack.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    inputTypes: Promise<ValuePreferences>
    -
    - -
    outputTypes: Promise<ValuePreferences>
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ErrorToTemplateConverter.html b/5.x/docs/classes/ErrorToTemplateConverter.html deleted file mode 100644 index b752d2660..000000000 --- a/5.x/docs/classes/ErrorToTemplateConverter.html +++ /dev/null @@ -1,238 +0,0 @@ -ErrorToTemplateConverter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ErrorToTemplateConverter

    -
    -

    Serializes an Error by filling in the provided template. -Content-type is based on the constructor parameter.

    -

    In case the input Error has an errorCode value, -the converter will look in the descriptions for a file -with the exact same name as that error code + extension. -The templating engine will then be applied to that file. -That result will be passed as an additional parameter to the main templating call, -using the variable codeMessage.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    codeTemplatesPath: string
    -
    - -
    contentType: string
    -
    - -
    extension: string
    -
    - -
    inputTypes: Promise<ValuePreferences>
    -
    - -
    mainTemplatePath: string
    -
    - -
    outputTypes: Promise<ValuePreferences>
    -
    - -
    templateEngine: TemplateEngine<Dict<any>>
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ExpiringAdapter.html b/5.x/docs/classes/ExpiringAdapter.html deleted file mode 100644 index 1dce534ed..000000000 --- a/5.x/docs/classes/ExpiringAdapter.html +++ /dev/null @@ -1,289 +0,0 @@ -ExpiringAdapter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    An IDP storage adapter that uses an ExpiringStorage -to persist data.

    -
    -
    -

    Hierarchy

    -
      -
    • ExpiringAdapter
    -
    -

    Implements

    -
      -
    • Adapter
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    - -
    name: string
    -
    - -
    storage: ExpiringStorage<string, unknown>
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        userCode: string
      -

      Returns Promise<void | AdapterPayload>

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        id: string
      • -
      • -
        payload: AdapterPayload
      • -
      • -
        Optional expiresIn: number
      -

      Returns Promise<void>

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ExpiringAdapterFactory.html b/5.x/docs/classes/ExpiringAdapterFactory.html deleted file mode 100644 index 569834149..000000000 --- a/5.x/docs/classes/ExpiringAdapterFactory.html +++ /dev/null @@ -1,112 +0,0 @@ -ExpiringAdapterFactory | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ExpiringAdapterFactory

    -
    -

    The factory for a ExpiringStorageAdapter

    -
    -
    -

    Hierarchy

    -
      -
    • ExpiringAdapterFactory
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    storage: ExpiringStorage<string, unknown>
    -
    -

    Methods

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ExtensionBasedMapper.html b/5.x/docs/classes/ExtensionBasedMapper.html deleted file mode 100644 index c9e923996..000000000 --- a/5.x/docs/classes/ExtensionBasedMapper.html +++ /dev/null @@ -1,463 +0,0 @@ -ExtensionBasedMapper | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ExtensionBasedMapper

    -
    -

    Supports the behaviour described in https://www.w3.org/DesignIssues/HTTPFilenameMapping.html -Determines content-type based on the file extension. -In case an identifier does not end on an extension matching its content-type, -the corresponding file will be appended with the correct extension, preceded by $.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    baseRequestURI: string
    -
    - -
    customExtensions: Record<string, string>
    -
    - -
    customTypes: Record<string, string>
    -
    - -
    logger: Logger = ...
    -
    - -
    rootFilepath: string
    -
    - -
    unknownMediaTypeExtension: "unknown" = 'unknown'
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Maps the given document identifier to a file path, -possibly making alterations to the direct translation -(for instance, based on its content type)). -Determines the content type if none was provided.

      - -

      Returns

      A ResourceLink with all the necessary metadata.

      -
      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
        -

        The input identifier.

        -
      • -
      • -
        filePath: string
        -

        The direct translation of the identifier onto the file path.

        -
      • -
      • -
        Optional contentType: string
        -

        The content-type provided with the request.

        -
      -

      Returns Promise<ResourceLink>

    -
    - -
    -
    - -
      - -
    • -

      Helper function that removes the internal extension, one starting with $., from the given path. -Nothing happens if no such extension is present.

      -
      -
      -

      Parameters

      -
        -
      • -
        path: string
      -

      Returns string

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ExtensionBasedMapperFactory.html b/5.x/docs/classes/ExtensionBasedMapperFactory.html deleted file mode 100644 index f80511a6f..000000000 --- a/5.x/docs/classes/ExtensionBasedMapperFactory.html +++ /dev/null @@ -1,96 +0,0 @@ -ExtensionBasedMapperFactory | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ExtensionBasedMapperFactory

    -
    -

    Factory that can create FileIdentifierMappers so the base and rootFilePath can be set dynamically. -Specifically used when identifiers need to be generated for a new pod (since pod identifiers are generated).

    -
    -
    -

    Hierarchy

    -
      -
    • ExtensionBasedMapperFactory
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/FileDataAccessor.html b/5.x/docs/classes/FileDataAccessor.html deleted file mode 100644 index 5e8645cdb..000000000 --- a/5.x/docs/classes/FileDataAccessor.html +++ /dev/null @@ -1,502 +0,0 @@ -FileDataAccessor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    DataAccessor that uses the file system to store documents as files and containers as folders.

    -
    -
    -

    Hierarchy

    -
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    - -
    resourceMapper: FileIdentifierMapper
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Returns metadata for all resources in the requested container. -This should not be all metadata of those resources (but it can be), -but instead the main metadata you want to show in situations -where all these resources are presented simultaneously. -Generally this would be metadata that is present for all of these resources, -such as resource type or last modified date.

      -

      It can be safely assumed that the incoming identifier will always correspond to a container.

      -
      -
      -

      Parameters

      -
      -

      Returns AsyncIterableIterator<RepresentationMetadata>

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Gets the Stats object corresponding to the given file path, -resolving symbolic links.

      - -

      Throws

      NotFoundHttpError -If the file/folder doesn't exist.

      -
      -
      -

      Parameters

      -
        -
      • -
        path: string
        -

        File path to get info from.

        -
      -

      Returns Promise<Stats>

    -
    - -
      - -
    • -

      Verifies if there already is a file corresponding to the given resource. -If yes, that file is removed if it does not match the path given in the input ResourceLink. -This can happen if the content-type differs from the one that was stored.

      -
      -
      -

      Parameters

      -
        -
      • -
        link: ResourceLink
        -

        ResourceLink corresponding to the new resource data.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
      - -
    • -

      Helper function without extra validation checking to create a data file.

      -
      -
      -

      Parameters

      -
        -
      • -
        path: string
        -

        The filepath of the file to be created.

        -
      • -
      • -
        data: Readable
        -

        The data to be put in the file.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/FileSizeReporter.html b/5.x/docs/classes/FileSizeReporter.html deleted file mode 100644 index e8f32dc46..000000000 --- a/5.x/docs/classes/FileSizeReporter.html +++ /dev/null @@ -1,206 +0,0 @@ -FileSizeReporter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    SizeReporter that is used to calculate sizes of resources for a file based system.

    -
    -
    -

    Hierarchy

    -
      -
    • FileSizeReporter
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    fileIdentifierMapper: FileIdentifierMapper
    -
    - -
    ignoreFolders: RegExp[]
    -
    - -
    rootFilePath: string
    -
    -

    Methods

    -
    - -
      - -
    • -

      Calculate the size of a chunk based on which SizeReporter is being used

      - -

      Returns

      the size of the passed chunk as a number

      -
      -
      -

      Parameters

      -
        -
      • -
        chunk: string
        -

        the chunk of which you want the size

        -
      -

      Returns Promise<number>

    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Get the total size of a resource and its children if present

      - -

      Returns

      a number specifying how many bytes are used by the resource

      -
      -
      -

      Parameters

      -
        -
      • -
        fileLocation: string
        -

        the resource of which you want the total size of ( on disk )

        -
      -

      Returns Promise<number>

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/FileSystemResourceLocker.html b/5.x/docs/classes/FileSystemResourceLocker.html deleted file mode 100644 index e74d2089f..000000000 --- a/5.x/docs/classes/FileSystemResourceLocker.html +++ /dev/null @@ -1,318 +0,0 @@ -FileSystemResourceLocker | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class FileSystemResourceLocker

    -
    -

    A resource locker making use of the proper-lockfile library. -Note that no locks are kept in memory, thus this is considered thread- and process-safe.

    -

    This proper-lockfile library has its own retry mechanism for the operations, since a lock/unlock call will -either resolve successfully or reject immediately with the causing error. The retry function of the library -however will be ignored and replaced by our own LockUtils' retryFunction function.

    -
    -
    -

    Hierarchy

    -
      -
    • FileSystemResourceLocker
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    attemptSettings: Required<AttemptSettings>
    -
    - -
    finalized: boolean = false
    -
    - -
    lockFolder: string
    -

    Folder that stores the locks

    -
    -
    - -
    lockOptions: LockOptions
    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
    -
    - -
      - -
    • -

      This function is used to override the proper-lock onCompromised function. -Once the locker was finalized, it will log the provided error instead of throwing it -This allows for a clean shutdown procedure.

      -
      -
      -

      Parameters

      -
        -
      • -
        err: any
      -

      Returns void

    -
    - -
    -
    - -
      - -
    • -

      Generate LockOptions or UnlockOptions depending on the type of defauls given. -A custom lockFilePath mapping strategy will be used.

      - -

      Returns

      LockOptions or UnlockOptions

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T

      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
        -

        ResourceIdentifier to generate (Un)LockOptions for

        -
      • -
      • -
        defaults: T
        -

        The default options. (lockFilePath will get overwritten)

        -
      -

      Returns T

    -
    - -
    -
    - -
      - -
    • -

      Releases a lock on the requested identifier. -The promise will resolve when the lock has been released. -In case there is no lock on the resource an error should be thrown.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Wrapper function for all (un)lock operations. Any errors coming from the fn() will be swallowed. -Only ENOTACQUIRED errors wills be thrown (trying to release lock that didn't exist). -This wrapper returns undefined because retryFunction expects that when a retry needs to happen.

      - -

      Returns

      Boolean or undefined.

      -
      -
      -

      Parameters

      -
        -
      • -
        fn: (() => Promise<unknown>)
        -

        The function reference to swallow errors from.

        -
        -
          -
        • -
            -
          • (): Promise<unknown>
          • -
          • -

            Returns Promise<unknown>

      -

      Returns (() => Promise<unknown>)

      -
        -
      • -
          -
        • (): Promise<unknown>
        • -
        • -

          Wrapper function for all (un)lock operations. Any errors coming from the fn() will be swallowed. -Only ENOTACQUIRED errors wills be thrown (trying to release lock that didn't exist). -This wrapper returns undefined because retryFunction expects that when a retry needs to happen.

          - -

          Returns

          Boolean or undefined.

          -
          -

          Returns Promise<unknown>

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/FilterMetadataDataAccessor.html b/5.x/docs/classes/FilterMetadataDataAccessor.html deleted file mode 100644 index 13b4bbebd..000000000 --- a/5.x/docs/classes/FilterMetadataDataAccessor.html +++ /dev/null @@ -1,325 +0,0 @@ -FilterMetadataDataAccessor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class FilterMetadataDataAccessor

    -
    -

    A FilterMetadataDataAccessor wraps a DataAccessor such that specific metadata properties -can be filtered before passing on the call to the wrapped DataAccessor.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    - -
    filters: FilterPattern[]
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Returns metadata for all resources in the requested container. -This should not be all metadata of those resources (but it can be), -but instead the main metadata you want to show in situations -where all these resources are presented simultaneously. -Generally this would be metadata that is present for all of these resources, -such as resource type or last modified date.

      -

      It can be safely assumed that the incoming identifier will always correspond to a container.

      -
      -
      -

      Parameters

      -
      -

      Returns AsyncIterableIterator<RepresentationMetadata>

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/FilterPattern.html b/5.x/docs/classes/FilterPattern.html deleted file mode 100644 index e7a0c7cd7..000000000 --- a/5.x/docs/classes/FilterPattern.html +++ /dev/null @@ -1,111 +0,0 @@ -FilterPattern | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Represents a triple pattern to be used as a filter.

    -
    -
    -

    Hierarchy

    -
      -
    • FilterPattern
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Constructors

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        Optional subject: string
        -

        Optionally filter based on a specific subject.

        -
      • -
      • -
        Optional predicate: string
        -

        Optionally filter based on a predicate.

        -
      • -
      • -
        Optional object: string
        -

        Optionally filter based on a specific object.

        -
      -

      Returns FilterPattern

    -
    -

    Properties

    -
    - -
    object: null | NamedNode<string>
    -
    - -
    predicate: null | NamedNode<string>
    -
    - -
    subject: null | NamedNode<string>
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/FinalizableHandler.html b/5.x/docs/classes/FinalizableHandler.html deleted file mode 100644 index ce8c7ce39..000000000 --- a/5.x/docs/classes/FinalizableHandler.html +++ /dev/null @@ -1,158 +0,0 @@ -FinalizableHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Allows using a Finalizable as a Finalizer Handler.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    finalizable: Finalizable
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/Finalizer.html b/5.x/docs/classes/Finalizer.html deleted file mode 100644 index 7bb2dea28..000000000 --- a/5.x/docs/classes/Finalizer.html +++ /dev/null @@ -1,148 +0,0 @@ -Finalizer | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class FinalizerAbstract

    -
    -

    Finalizer is used to indicate an AsyncHandler that performs finalization logic.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input that needs to be handled.

        -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/FixedContentTypeMapper.html b/5.x/docs/classes/FixedContentTypeMapper.html deleted file mode 100644 index 9aa64fe5c..000000000 --- a/5.x/docs/classes/FixedContentTypeMapper.html +++ /dev/null @@ -1,456 +0,0 @@ -FixedContentTypeMapper | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class FixedContentTypeMapper

    -
    -

    A mapper that always returns a fixed content type for files.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        base: string
        -

        Base URL.

        -
      • -
      • -
        rootFilepath: string
        -

        Base file path.

        -
      • -
      • -
        contentType: string
        -

        Fixed content type that will be used for all resources.

        -
      • -
      • -
        pathSuffix: string = ''
        -

        An optional suffix that will be appended to all file paths. - Requested file paths without this suffix will be rejected.

        -
      • -
      • -
        urlSuffix: string = ''
        -

        An optional suffix that will be appended to all URL. - Requested URLs without this suffix will be rejected.

        -
      -

      Returns FixedContentTypeMapper

    -
    -

    Properties

    -
    - -
    baseRequestURI: string
    -
    - -
    contentType: string
    -
    - -
    logger: Logger = ...
    -
    - -
    pathSuffix: string
    -
    - -
    rootFilepath: string
    -
    - -
    unknownMediaTypeExtension: "unknown" = 'unknown'
    -
    - -
    urlSuffix: string
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Maps the given document identifier to a file path, -possibly making alterations to the direct translation -(for instance, based on its content type)). -Determines the content type if none was provided.

      - -

      Returns

      A ResourceLink with all the necessary metadata.

      -
      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
        -

        The input identifier.

        -
      • -
      • -
        filePath: string
        -

        The direct translation of the identifier onto the file path.

        -
      • -
      • -
        Optional contentType: string
        -

        The content-type provided with the request.

        -
      -

      Returns Promise<ResourceLink>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/FixedInteractionHandler.html b/5.x/docs/classes/FixedInteractionHandler.html deleted file mode 100644 index a3d255caf..000000000 --- a/5.x/docs/classes/FixedInteractionHandler.html +++ /dev/null @@ -1,167 +0,0 @@ -FixedInteractionHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class FixedInteractionHandler

    -
    -

    An InteractionHandler that always returns the same JSON response on all requests.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    response: string
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ForbiddenHttpError.html b/5.x/docs/classes/ForbiddenHttpError.html deleted file mode 100644 index b0b88e90f..000000000 --- a/5.x/docs/classes/ForbiddenHttpError.html +++ /dev/null @@ -1,207 +0,0 @@ -ForbiddenHttpError | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    An error thrown when an agent is not allowed to access data.

    -
    -
    -

    Hierarchy

    -
      -
    • BaseHttpError -
        -
      • ForbiddenHttpError
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    cause?: unknown
    -
    - -
    details?: Dict<unknown>
    -
    - -
    errorCode: string
    -
    - -
    message: string
    -
    - -
    name: string
    -
    - -
    stack?: string
    -
    - -
    statusCode: 403
    -
    - -
    isInstance: ((error: any) => error is HttpError<403>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (error: any): error is HttpError<403>
      • -
      • -

        Checks if the given error is an instance of this class.

        -
        -
        -

        Parameters

        -
          -
        • -
          error: any
        -

        Returns error is HttpError<403>

    -
    - -
    statusCode: 403
    -

    The status code corresponding to this error class.

    -
    -
    - -
    uri: NamedNode<string>
    -

    A unique URI identifying this error class.

    -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Returns quads representing metadata relevant to this error.

      -
      -
      -

      Parameters

      -
        -
      • -
        subject: string | Quad_Subject
      -

      Returns Quad[]

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ForgotPasswordHandler.html b/5.x/docs/classes/ForgotPasswordHandler.html deleted file mode 100644 index e0b192ade..000000000 --- a/5.x/docs/classes/ForgotPasswordHandler.html +++ /dev/null @@ -1,272 +0,0 @@ -ForgotPasswordHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ForgotPasswordHandler

    -
    -

    Handles the submission of the ForgotPassword form

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    accountStore: AccountStore
    -
    - -
    emailSender: EmailSender
    -
    - -
    logger: Logger = ...
    -
    - -
    resetRoute: InteractionRoute
    -
    - -
    templateEngine: TemplateEngine<{ resetLink: string }>
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Generates a record to reset the password for the given email address and then mails it. -In case there is no account, no error wil be thrown for privacy reasons. -Instead nothing will happen instead.

      -
      -
      -

      Parameters

      -
        -
      • -
        email: string
      -

      Returns Promise<void>

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/FormToJsonConverter.html b/5.x/docs/classes/FormToJsonConverter.html deleted file mode 100644 index 55c0e3d19..000000000 --- a/5.x/docs/classes/FormToJsonConverter.html +++ /dev/null @@ -1,190 +0,0 @@ -FormToJsonConverter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Converts application/x-www-form-urlencoded data to application/json. -Due to the nature of form data, the result will be a simple key/value JSON object.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    inputTypes: Promise<ValuePreferences>
    -
    - -
    outputTypes: Promise<ValuePreferences>
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/FoundHttpError.html b/5.x/docs/classes/FoundHttpError.html deleted file mode 100644 index 5385ef26c..000000000 --- a/5.x/docs/classes/FoundHttpError.html +++ /dev/null @@ -1,218 +0,0 @@ -FoundHttpError | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Error used for resources that have been moved temporarily. -Methods other than GET may or may not be changed to GET in subsequent requests.

    -
    -
    -

    Hierarchy

    -
      -
    • BaseHttpError -
        -
      • FoundHttpError
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    cause?: unknown
    -
    - -
    details?: Dict<unknown>
    -
    - -
    errorCode: string
    -
    - -
    location: string
    -
    - -
    message: string
    -
    - -
    name: string
    -
    - -
    stack?: string
    -
    - -
    statusCode: 302
    -
    - -
    isInstance: ((error: any) => error is HttpError<302>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (error: any): error is HttpError<302>
      • -
      • -

        Checks if the given error is an instance of this class.

        -
        -
        -

        Parameters

        -
          -
        • -
          error: any
        -

        Returns error is HttpError<302>

    -
    - -
    statusCode: 302
    -

    The status code corresponding to this error class.

    -
    -
    - -
    uri: NamedNode<string>
    -

    A unique URI identifying this error class.

    -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Returns quads representing metadata relevant to this error.

      -
      -
      -

      Parameters

      -
        -
      • -
        subject: string | Quad_Subject
      -

      Returns Quad[]

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/GeneratedPodManager.html b/5.x/docs/classes/GeneratedPodManager.html deleted file mode 100644 index ccd804e69..000000000 --- a/5.x/docs/classes/GeneratedPodManager.html +++ /dev/null @@ -1,136 +0,0 @@ -GeneratedPodManager | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Pod manager that uses an IdentifierGenerator and ResourcesGenerator -to create the default resources and identifier for a new pod.

    -
    -
    -

    Hierarchy

    -
      -
    • GeneratedPodManager
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    - -
    resourcesGenerator: ResourcesGenerator
    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Creates a new pod, pre-populating it with the resources created by the data generator. -Will throw an error if the given identifier already has a resource.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/GetOperationHandler.html b/5.x/docs/classes/GetOperationHandler.html deleted file mode 100644 index 7a592f9fb..000000000 --- a/5.x/docs/classes/GetOperationHandler.html +++ /dev/null @@ -1,166 +0,0 @@ -GetOperationHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Handles GET Operations. -Calls the getRepresentation function from a ResourceStore.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/GlobalQuotaStrategy.html b/5.x/docs/classes/GlobalQuotaStrategy.html deleted file mode 100644 index e63912ff2..000000000 --- a/5.x/docs/classes/GlobalQuotaStrategy.html +++ /dev/null @@ -1,202 +0,0 @@ -GlobalQuotaStrategy | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    The GlobalQuotaStrategy sets a limit on the amount of data stored on the server globally.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    base: string
    -
    - -
    limit: Size
    -
    - -
    reporter: SizeReporter<any>
    -
    -

    Methods

    -
    - -
      - -
    • -

      Get a Passthrough stream that will keep track of the available space. -If the quota is exceeded the stream will emit an error and destroy itself. -Like other Passthrough instances this will simply pass on the chunks, when the quota isn't exceeded.

      - -

      Returns

      a Passthrough instance that errors when quota is exceeded

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<Guarded<PassThrough>>

    -
    - -
    -
    - -
      - -
    • -

      Get the available space when writing data to the given identifier. -If the given resource already exists it will deduct the already taken up -space by that resource since it is going to be overwritten and thus counts -as available space.

      - -

      Returns

      the available space and the unit of the space as a Size object

      -
      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
        -

        the identifier of the resource of which you want the available space

        -
      -

      Returns Promise<Size>

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/GreedyReadWriteLocker.html b/5.x/docs/classes/GreedyReadWriteLocker.html deleted file mode 100644 index f17a09669..000000000 --- a/5.x/docs/classes/GreedyReadWriteLocker.html +++ /dev/null @@ -1,345 +0,0 @@ -GreedyReadWriteLocker | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class GreedyReadWriteLocker

    -
    -

    A ReadWriteLocker that allows for multiple simultaneous read operations. -Write operations will be blocked as long as read operations are not finished. -New read operations are allowed while this is going on, which will cause write operations to wait longer.

    -

    Based on https://en.wikipedia.org/wiki/Readers%E2%80%93writer_lock#Using_two_mutexes . -As soon as 1 read lock request is made, the write lock is locked. -Internally a counter keeps track of the amount of active read locks. -Only when this number reaches 0 will the write lock be released again. -The internal read lock is only locked to increase/decrease this counter and is released afterwards. -This allows for multiple read operations, although only 1 at the time can update the counter, -which means there can still be a small waiting period if there are multiple simultaneous read operations.

    -
    -
    -

    Hierarchy

    -
      -
    • GreedyReadWriteLocker
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    - -
    storage: KeyValueStorage<string, number>
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Run the given function while the resource is locked. -The lock will be released when the (async) input function resolves. -This function should be used for operations that only require reading the resource.

      - -

      Returns

      A promise resolving when the lock is released.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T

      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
        -

        Identifier of the resource that needs to be locked.

        -
      • -
      • -
        whileLocked: (() => T | Promise<T>)
        -

        A function to execute while the resource is locked.

        -
        -
          -
        • -
            -
          • (): T | Promise<T>
          • -
          • -

            Returns T | Promise<T>

      -

      Returns Promise<T>

    -
    - -
      - -
    • -

      Run the given function while the resource is locked. -The lock will be released when the (async) input function resolves. -This function should be used for operations that could modify the resource.

      - -

      Returns

      A promise resolving when the lock is released.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T

      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
        -

        Identifier of the resource that needs to be locked.

        -
      • -
      • -
        whileLocked: (() => T | Promise<T>)
        -

        A function to execute while the resource is locked.

        -
        -
          -
        • -
            -
          • (): T | Promise<T>
          • -
          • -

            Returns T | Promise<T>

      -

      Returns Promise<T>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/HandlebarsTemplateEngine.html b/5.x/docs/classes/HandlebarsTemplateEngine.html deleted file mode 100644 index 9d2870369..000000000 --- a/5.x/docs/classes/HandlebarsTemplateEngine.html +++ /dev/null @@ -1,161 +0,0 @@ -HandlebarsTemplateEngine | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class HandlebarsTemplateEngine<T>

    -
    -

    Fills in Handlebars templates.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      T extends Dict<any> = Dict<any>

    -
    -

    Hierarchy

    -
      -
    • HandlebarsTemplateEngine
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    applyTemplate: Promise<TemplateDelegate<any>>
    -
    - -
    baseUrl: string
    -
    -

    Methods

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/HashMap.html b/5.x/docs/classes/HashMap.html deleted file mode 100644 index c6748cace..000000000 --- a/5.x/docs/classes/HashMap.html +++ /dev/null @@ -1,324 +0,0 @@ -HashMap | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class HashMap<TKey, TVal>

    -
    -

    A Map implementation that maps the Key object to a string using the provided hash function. -This ensures that equal objects that are not the same instance are mapped to the same value.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      TKey = any

    • -
    • -

      TVal = any

    -
    -

    Hierarchy

    -
    -
    -

    Implements

    -
      -
    • Map<TKey, TVal>
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Accessors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
      - -
    • -
      -

      Type Parameters

      -
        -
      • -

        TKey = any

      • -
      • -

        TVal = any

      -
      -

      Parameters

      -
        -
      • -
        hashFn: ((key: TKey) => string)
        -
          -
        • -
            -
          • (key: TKey): string
          • -
          • -
            -

            Parameters

            -
              -
            • -
              key: TKey
            -

            Returns string

      • -
      • -
        Optional iterable: Iterable<readonly [TKey, TVal]>
      -

      Returns HashMap<TKey, TVal>

    -
    -

    Properties

    -
    - -
    [toStringTag]: "HashMap" = 'HashMap'
    -
    - -
    hashFn: ((key: TKey) => string)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (key: TKey): string
      • -
      • -
        -

        Parameters

        -
          -
        • -
          key: TKey
        -

        Returns string

    -
    - -
    hashMap: Map<string, Entry<TKey, TVal>>
    -
    -

    Accessors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Returns IterableIterator<[TKey, TVal]>

    -
    - -
    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        key: TKey
      -

      Returns boolean

    -
    - -
      - -
    • -

      Returns IterableIterator<[TKey, TVal]>

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        callbackfn: ((value: TVal, key: TKey, map: Map<TKey, TVal>) => void)
        -
          -
        • -
            -
          • (value: TVal, key: TKey, map: Map<TKey, TVal>): void
          • -
          • -
            -

            Parameters

            -
              -
            • -
              value: TVal
            • -
            • -
              key: TKey
            • -
            • -
              map: Map<TKey, TVal>
            -

            Returns void

      • -
      • -
        Optional thisArg: any
      -

      Returns void

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        key: TKey
      -

      Returns undefined | TVal

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        key: TKey
      -

      Returns boolean

    -
    - -
      - -
    • -

      Returns IterableIterator<TKey>

    -
    - -
    -
    - -
      - -
    • -

      Returns IterableIterator<TVal>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/HeadOperationHandler.html b/5.x/docs/classes/HeadOperationHandler.html deleted file mode 100644 index 3ed631e63..000000000 --- a/5.x/docs/classes/HeadOperationHandler.html +++ /dev/null @@ -1,166 +0,0 @@ -HeadOperationHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class HeadOperationHandler

    -
    -

    Handles HEAD Operations. -Calls the getRepresentation function from a ResourceStore.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/HeaderHandler.html b/5.x/docs/classes/HeaderHandler.html deleted file mode 100644 index f2ec6e057..000000000 --- a/5.x/docs/classes/HeaderHandler.html +++ /dev/null @@ -1,168 +0,0 @@ -HeaderHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Handler that sets custom headers on the response.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    headers: Record<string, string>
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -
      -

      Parameters

      -
        -
      • -
        __namedParameters: { response: ServerResponse }
        -

        Input that needs to be handled.

        -
        -
          -
        • -
          response: ServerResponse
      -

      Returns Promise<void>

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/HtmlViewHandler.html b/5.x/docs/classes/HtmlViewHandler.html deleted file mode 100644 index c60bd7487..000000000 --- a/5.x/docs/classes/HtmlViewHandler.html +++ /dev/null @@ -1,190 +0,0 @@ -HtmlViewHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Stores the HTML templates associated with specific InteractionRoutes. -Template keys should be file paths to the templates, -values should be the corresponding routes.

    -

    Will only handle GET operations for which there is a matching template if HTML is more preferred than JSON. -Reason for doing it like this instead of a standard content negotiation flow -is because we only want to return the HTML pages on GET requests. *

    -

    Templates will receive the parameter idpIndex in their context pointing to the root index URL of the IDP API -and an authenticating parameter indicating if this is an active OIDC interaction.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    idpIndex: string
    -
    - -
    templateEngine: TemplateEngine<Dict<any>>
    -
    - -
    templates: Record<string, string>
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/HttpError.html b/5.x/docs/classes/HttpError.html deleted file mode 100644 index ca8c8058b..000000000 --- a/5.x/docs/classes/HttpError.html +++ /dev/null @@ -1,263 +0,0 @@ -HttpError | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    A class for all errors that could be thrown by Solid. -All errors inheriting from this should fix the status code thereby hiding the HTTP internals from other components.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      T extends number = number

    -
    -

    Hierarchy

    -
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
      - -
    • -

      Creates a new HTTP error. Subclasses should call this with their fixed status code.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T extends number = number

      -
      -

      Parameters

      -
        -
      • -
        statusCode: T
        -

        HTTP status code needed for the HTTP response.

        -
      • -
      • -
        name: string
        -

        Error name. Useful for logging and stack tracing.

        -
      • -
      • -
        Optional message: string
        -

        Error message.

        -
      • -
      • -
        options: HttpErrorOptions = {}
        -

        Optional options.

        -
      -

      Returns HttpError<T>

    -
    -

    Properties

    -
    - -
    cause?: unknown
    -
    - -
    details?: Dict<unknown>
    -
    - -
    errorCode: string
    -
    - -
    message: string
    -
    - -
    name: string
    -
    - -
    stack?: string
    -
    - -
    statusCode: T
    -
    - -
    prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)
    -
    -

    Type declaration

    -
    -
    - -
    stackTraceLimit: number
    -
    -

    Methods

    -
    - -
      - -
    • -

      Returns quads representing metadata relevant to this error.

      -
      -
      -

      Parameters

      -
        -
      • -
        subject: string | Quad_Subject
      -

      Returns Quad[]

    -
    - -
      - -
    • -

      Create .stack property on a target object

      -
      -
      -

      Parameters

      -
        -
      • -
        targetObject: object
      • -
      • -
        Optional constructorOpt: Function
      -

      Returns void

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/HttpHandler.html b/5.x/docs/classes/HttpHandler.html deleted file mode 100644 index 6e17f5cdb..000000000 --- a/5.x/docs/classes/HttpHandler.html +++ /dev/null @@ -1,155 +0,0 @@ -HttpHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class HttpHandlerAbstract

    -
    -

    An HTTP request handler.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/IdentifierMap.html b/5.x/docs/classes/IdentifierMap.html deleted file mode 100644 index c76fa158d..000000000 --- a/5.x/docs/classes/IdentifierMap.html +++ /dev/null @@ -1,276 +0,0 @@ -IdentifierMap | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class IdentifierMap<T>

    -
    -

    A specific implementation of HashMap where the key type is ResourceIdentifier.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      T

    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Accessors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    [toStringTag]: "HashMap" = 'HashMap'
    -
    -

    Accessors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/IdentifierSetMultiMap.html b/5.x/docs/classes/IdentifierSetMultiMap.html deleted file mode 100644 index 34e678834..000000000 --- a/5.x/docs/classes/IdentifierSetMultiMap.html +++ /dev/null @@ -1,401 +0,0 @@ -IdentifierSetMultiMap | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class IdentifierSetMultiMap<T>

    -
    -

    A specific implementation of WrappedSetMultiMap where the key type is ResourceIdentifier.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      T

    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Accessors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    [toStringTag]: "WrappedSetMultiMap" = 'WrappedSetMultiMap'
    -
    -

    Accessors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/IdentityProviderFactory.html b/5.x/docs/classes/IdentityProviderFactory.html deleted file mode 100644 index 8478547f6..000000000 --- a/5.x/docs/classes/IdentityProviderFactory.html +++ /dev/null @@ -1,374 +0,0 @@ -IdentityProviderFactory | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class IdentityProviderFactory

    -
    -

    Creates an OIDC Provider based on the provided configuration and parameters. -The provider will be cached and returned on subsequent calls. -Cookie and JWT keys will be stored in an internal storage so they can be re-used over multiple threads. -Necessary claims for Solid OIDC interactions will be added. -Routes will be updated based on the baseUrl and oidcPath.

    -
    -
    -

    Hierarchy

    -
      -
    • IdentityProviderFactory
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    adapterFactory: AdapterFactory
    -
    - -
    baseUrl: string
    -
    - -
    config: Configuration
    -
    - -
    credentialStorage: KeyValueStorage<string, ClientCredentials>
    -
    - -
    errorHandler: ErrorHandler
    -
    - -
    interactionHandler: InteractionHandler
    -
    - -
    jwtAlg: "ES256" = 'ES256'
    -
    - -
    logger: Logger = ...
    -
    - -
    oidcPath: string
    -
    - -
    provider?: Provider
    -
    - -
    responseWriter: ResponseWriter
    -
    - -
    showStackTrace: boolean
    -
    - -
    storage: KeyValueStorage<string, unknown>
    -
    -

    Methods

    -
    - -
      - -
    • -

      In the configureErrors function below, we configure the renderError function of the provider configuration. -This function is called by the OIDC provider library to render errors, -but only does this if the accept header is HTML. -Otherwise, it just returns the error object iself as a JSON object. -See https://github.com/panva/node-oidc-provider/blob/0fcc112e0a95b3b2dae4eba6da812253277567c9/lib/shared/error_handler.js#L48-L52.

      -

      In this function we override the ctx.accepts function -to make the above code think HTML is always requested there. -This way we have full control over error representation as configured in configureErrors. -We still check the accept headers ourselves so there still is content negotiation on the output, -the client will not simply always receive HTML.

      -

      Should this part of the OIDC library code ever change, our function will break, -at which point behaviour will simply revert to what it was before.

      -
      -
      -

      Parameters

      -
        -
      • -
        provider: Provider
      -

      Returns void

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Creates the route string as required by the oidc-provider library. -In case base URL is http://test.com/foo/, oidcPath is /idp and relative is device/auth, -this would result in /foo/idp/device/auth.

      -
      -
      -

      Parameters

      -
        -
      • -
        relative: string
      -

      Returns string

    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Gets a provider from the factory. -Multiple calls to this function should return providers that produce the same results. -This is mostly relevant for signing keys.

      -
      -

      Returns Promise<Provider>

    -
    - -
    -
    - -
      - -
    • -

      Checks if the given token is an access token. -The AccessToken interface is not exported so we have to access it like this.

      -
      -
      -

      Parameters

      -
        -
      • -
        token: any
      -

      Returns token is undefined | AccessToken

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/IdentityProviderHttpHandler.html b/5.x/docs/classes/IdentityProviderHttpHandler.html deleted file mode 100644 index 66dce31ed..000000000 --- a/5.x/docs/classes/IdentityProviderHttpHandler.html +++ /dev/null @@ -1,189 +0,0 @@ -IdentityProviderHttpHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class IdentityProviderHttpHandler

    -
    -

    Generates the active Interaction object if there is an ongoing OIDC interaction -and sends it to the InteractionHandler.

    -

    Input data will first be converted to JSON.

    -

    Only GET and POST methods are accepted.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    - -
    -
    - -
    logger: Logger = ...
    -
    - -
    providerFactory: ProviderFactory
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ImmutableMetadataPatcher.html b/5.x/docs/classes/ImmutableMetadataPatcher.html deleted file mode 100644 index a87380216..000000000 --- a/5.x/docs/classes/ImmutableMetadataPatcher.html +++ /dev/null @@ -1,193 +0,0 @@ -ImmutableMetadataPatcher | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ImmutableMetadataPatcher

    -
    -

    Guarantees that certain PATCH operations MUST NOT update certain triples in metadata resources. -Furthermore, this class also handles the patching for metadata resources. -List of triples that must not be updated are given during instantiation with the ImmutableTriple class. -When there is a change to an Immutable Triple, then a ConflictError will be thrown.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    immutablePatterns: FilterPattern[]
    -
    - -
    logger: Logger = ...
    -
    - -
    metadataStrategy: AuxiliaryStrategy
    -
    - -
    patcher: RepresentationPatcher<RdfDatasetRepresentation>
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/InMemoryDataAccessor.html b/5.x/docs/classes/InMemoryDataAccessor.html deleted file mode 100644 index cdd4c8978..000000000 --- a/5.x/docs/classes/InMemoryDataAccessor.html +++ /dev/null @@ -1,372 +0,0 @@ -InMemoryDataAccessor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class InMemoryDataAccessor

    -
    -

    A DataAccessor is the building block closest to the actual data storage. -It should not worry about most Solid logic, most of that will be handled before it is called. -There are a few things it still needs to do, and it is very important every implementation does this:

    -
      -
    • If the input identifier ends with a slash, it should be assumed the identifier is targeting a container.
    • -
    • Similarly, if there is no trailing slash it should assume a document.
    • -
    • It should always throw a NotFoundHttpError if it does not have data matching the input identifier.
    • -
    • DataAccessors should not generate containment triples. This will be done externally using getChildren.
    • -
    -
    -
    -

    Hierarchy

    -
      -
    • InMemoryDataAccessor
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    identifierStrategy: IdentifierStrategy
    -
    - -
    store: { entries: Record<string, ContainerEntry> }
    -
    -

    Type declaration

    -
      -
    • -
      entries: Record<string, ContainerEntry>
    -
    -

    Methods

    -
    - -
      - -
    • -

      Should throw a NotImplementedHttpError if the DataAccessor does not support storing the given Representation.

      - -

      Throws

      BadRequestHttpError -If it does not support the incoming data.

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
      - -
    • -

      Returns metadata for all resources in the requested container. -This should not be all metadata of those resources (but it can be), -but instead the main metadata you want to show in situations -where all these resources are presented simultaneously. -Generally this would be metadata that is present for all of these resources, -such as resource type or last modified date.

      -

      It can be safely assumed that the incoming identifier will always correspond to a container.

      -
      -
      -

      Parameters

      -
      -

      Returns AsyncIterableIterator<RepresentationMetadata>

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/IndexRepresentationStore.html b/5.x/docs/classes/IndexRepresentationStore.html deleted file mode 100644 index a2ef2eb28..000000000 --- a/5.x/docs/classes/IndexRepresentationStore.html +++ /dev/null @@ -1,317 +0,0 @@ -IndexRepresentationStore | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class IndexRepresentationStore

    -
    -

    Allow containers to have a custom representation. -The index representation will be returned when the following conditions are fulfilled:

    -
      -
    • The request targets a container.
    • -
    • A resource with the given indexName exists in the container. (default: "index.html")
    • -
    • The highest weighted preference matches the mediaRange (default: "text/html") -Otherwise the request will be passed on to the source store. -In case the index representation should always be returned when it exists, -the mediaRange should be set to "*∕*".
    • -
    -

    Note: this functionality is not yet part of the specification. Relevant issues are:

    - -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    indexName: string
    -
    - -
    mediaRange: string
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/InitializableHandler.html b/5.x/docs/classes/InitializableHandler.html deleted file mode 100644 index 795ede549..000000000 --- a/5.x/docs/classes/InitializableHandler.html +++ /dev/null @@ -1,158 +0,0 @@ -InitializableHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class InitializableHandler

    -
    -

    Allows using an Initializable as an Initializer Handler.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    initializable: Initializable
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/Initializer.html b/5.x/docs/classes/Initializer.html deleted file mode 100644 index db81e32cb..000000000 --- a/5.x/docs/classes/Initializer.html +++ /dev/null @@ -1,156 +0,0 @@ -Initializer | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class InitializerAbstract

    -
    -

    Initializer is used to indicate an AsyncHandler that performs initialization logic.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input that needs to be handled.

        -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/InteractionHandler.html b/5.x/docs/classes/InteractionHandler.html deleted file mode 100644 index 11923379a..000000000 --- a/5.x/docs/classes/InteractionHandler.html +++ /dev/null @@ -1,156 +0,0 @@ -InteractionHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class InteractionHandlerAbstract

    -
    -

    Handler used for IDP interactions. -Only supports JSON data.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/InteractionRouteHandler.html b/5.x/docs/classes/InteractionRouteHandler.html deleted file mode 100644 index ff146327e..000000000 --- a/5.x/docs/classes/InteractionRouteHandler.html +++ /dev/null @@ -1,176 +0,0 @@ -InteractionRouteHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class InteractionRouteHandler

    -
    -

    InteractionHandler that only accepts operations with an expected path.

    -

    Rejects operations that target a different path, -otherwise the input parameters are passed to the source handler.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/IntermediateCreateExtractor.html b/5.x/docs/classes/IntermediateCreateExtractor.html deleted file mode 100644 index 6124506a3..000000000 --- a/5.x/docs/classes/IntermediateCreateExtractor.html +++ /dev/null @@ -1,195 +0,0 @@ -IntermediateCreateExtractor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class IntermediateCreateExtractor

    -
    -

    Returns the required access modes from the source ModesExtractor. -In case create permissions are required, -verifies if any of the containers permissions also need to be created -and adds the corresponding identifier/mode combinations.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    resourceSet: ResourceSet
    -
    - -
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/InternalServerError.html b/5.x/docs/classes/InternalServerError.html deleted file mode 100644 index 1c9df89b9..000000000 --- a/5.x/docs/classes/InternalServerError.html +++ /dev/null @@ -1,207 +0,0 @@ -InternalServerError | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    A generic error message, given when an unexpected condition was encountered and no more specific message is suitable.

    -
    -
    -

    Hierarchy

    -
      -
    • BaseHttpError -
        -
      • InternalServerError
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    cause?: unknown
    -
    - -
    details?: Dict<unknown>
    -
    - -
    errorCode: string
    -
    - -
    message: string
    -
    - -
    name: string
    -
    - -
    stack?: string
    -
    - -
    statusCode: 500
    -
    - -
    isInstance: ((error: any) => error is HttpError<500>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (error: any): error is HttpError<500>
      • -
      • -

        Checks if the given error is an instance of this class.

        -
        -
        -

        Parameters

        -
          -
        • -
          error: any
        -

        Returns error is HttpError<500>

    -
    - -
    statusCode: 500
    -

    The status code corresponding to this error class.

    -
    -
    - -
    uri: NamedNode<string>
    -

    A unique URI identifying this error class.

    -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Returns quads representing metadata relevant to this error.

      -
      -
      -

      Parameters

      -
        -
      • -
        subject: string | Quad_Subject
      -

      Returns Quad[]

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/JsonFileStorage.html b/5.x/docs/classes/JsonFileStorage.html deleted file mode 100644 index 5a21e97cc..000000000 --- a/5.x/docs/classes/JsonFileStorage.html +++ /dev/null @@ -1,271 +0,0 @@ -JsonFileStorage | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Uses a JSON file to store key/value pairs.

    -
    -
    -

    Hierarchy

    -
      -
    • JsonFileStorage
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    filePath: string
    -
    - -
    lockIdentifier: ResourceIdentifier
    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Deletes the value stored for the given key.

      - -

      Returns

      If there was a value to delete.

      -
      -
      -

      Parameters

      -
        -
      • -
        key: string
        -

        Key to delete.

        -
      -

      Returns Promise<boolean>

    -
    - -
      - -
    • -

      An iterable of entries in the storage.

      -
      -

      Returns AsyncIterableIterator<[string, unknown]>

    -
    - -
      - -
    • -

      Returns the value stored for the given identifier. -undefined if no value is stored.

      -
      -
      -

      Parameters

      -
        -
      • -
        key: string
      -

      Returns Promise<unknown>

    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Checks if there is a value stored for the given key.

      -
      -
      -

      Parameters

      -
        -
      • -
        key: string
      -

      Returns Promise<boolean>

    -
    - -
    -
    - -
      - -
    • -

      Updates the data in the JSON file while using a write lock.

      - -

      Returns

      The return value of updateFn.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T

      -
      -

      Parameters

      -
        -
      • -
        updateFn: ((json: Dict<unknown>) => T)
        -

        A function that updates the JSON object.

        -
        -
          -
        • -
            -
          • (json: Dict<unknown>): T
          • -
          • -
            -

            Parameters

            -
              -
            • -
              json: Dict<unknown>
            -

            Returns T

      -

      Returns Promise<T>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/JsonResourceStorage.html b/5.x/docs/classes/JsonResourceStorage.html deleted file mode 100644 index 1f4b589f7..000000000 --- a/5.x/docs/classes/JsonResourceStorage.html +++ /dev/null @@ -1,306 +0,0 @@ -JsonResourceStorage | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class JsonResourceStorage<T>

    -
    -

    A KeyValueStorage for JSON-like objects using a ResourceStore as backend.

    -

    Creates a base URL by joining the input base URL with the container string. -The storage assumes it has ownership over all entries in the target container -so no other classes should access resources there to prevent issues.

    -

    Assumes the input keys can be safely used to generate identifiers, -which will be appended to the stored base URL.

    -

    All non-404 errors will be re-thrown.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      T

    -
    -

    Hierarchy

    -
      -
    • JsonResourceStorage
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    container: string
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
      - -
    • -

      Deletes the value stored for the given key.

      - -

      Returns

      If there was a value to delete.

      -
      -
      -

      Parameters

      -
        -
      • -
        key: string
        -

        Key to delete.

        -
      -

      Returns Promise<boolean>

    -
    - -
      - -
    • -

      An iterable of entries in the storage.

      -
      -

      Returns AsyncIterableIterator<[string, T]>

    -
    - -
      - -
    • -

      Returns the value stored for the given identifier. -undefined if no value is stored.

      -
      -
      -

      Parameters

      -
        -
      • -
        key: string
      -

      Returns Promise<undefined | T>

    -
    - -
    -
    - -
      - -
    • -

      Checks if there is a value stored for the given key.

      -
      -
      -

      Parameters

      -
        -
      • -
        key: string
      -

      Returns Promise<boolean>

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/KeyExtractor.html b/5.x/docs/classes/KeyExtractor.html deleted file mode 100644 index 8be9452f4..000000000 --- a/5.x/docs/classes/KeyExtractor.html +++ /dev/null @@ -1,175 +0,0 @@ -KeyExtractor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    A simple ShorthandExtractor that extracts a single value from the input map. -Returns the default value if it was defined in case no value was found in the map.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    defaultValue: unknown
    -
    - -
    key: string
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: Shorthand
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -
      -

      Parameters

      -
        -
      • -
        args: Shorthand
        -

        Input that needs to be handled.

        -
      -

      Returns Promise<unknown>

    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: Shorthand
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<unknown>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/LazyLoggerFactory.html b/5.x/docs/classes/LazyLoggerFactory.html deleted file mode 100644 index 98ebac3b9..000000000 --- a/5.x/docs/classes/LazyLoggerFactory.html +++ /dev/null @@ -1,149 +0,0 @@ -LazyLoggerFactory | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Wraps around another LoggerFactory that can be set lazily. -This is useful when objects are instantiated (and when they create loggers) -before the logging system has been fully instantiated, -as is the case when using a dependency injection framework such as Components.js.

    -

    Loggers can be created even before a LoggerFactory is set; -any log messages will be buffered and re-emitted.

    -
    -
    -

    Hierarchy

    -
      -
    • LazyLoggerFactory
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Accessors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    factory: LoggerFactory
    -
    -

    Accessors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Create a logger instance for the given label.

      -
      -
      -

      Parameters

      -
        -
      • -
        label: string
        -

        A label that is used to identify the given logger.

        -
      -

      Returns Logger

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/LinkMetadataGenerator.html b/5.x/docs/classes/LinkMetadataGenerator.html deleted file mode 100644 index e1f094d28..000000000 --- a/5.x/docs/classes/LinkMetadataGenerator.html +++ /dev/null @@ -1,176 +0,0 @@ -LinkMetadataGenerator | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class LinkMetadataGenerator

    -
    -

    Adds a link to the auxiliary resource when called on the subject resource. -Specifically: will be added.

    -

    In case the input is metadata of an auxiliary resource no metadata will be added

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    identifierStrategy: AuxiliaryIdentifierStrategy
    -
    - -
    link: NamedNode<string>
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/LinkRelMetadataWriter.html b/5.x/docs/classes/LinkRelMetadataWriter.html deleted file mode 100644 index b27bd2616..000000000 --- a/5.x/docs/classes/LinkRelMetadataWriter.html +++ /dev/null @@ -1,188 +0,0 @@ -LinkRelMetadataWriter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class LinkRelMetadataWriter

    -
    -

    A MetadataWriter that takes a linking metadata predicates to Link header "rel" values. -The values of the objects will be put in a Link header with the corresponding "rel" value.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    linkRelMap: Map<NamedNode<string>, string>
    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/LinkRelObject.html b/5.x/docs/classes/LinkRelObject.html deleted file mode 100644 index 354bc0bfd..000000000 --- a/5.x/docs/classes/LinkRelObject.html +++ /dev/null @@ -1,164 +0,0 @@ -LinkRelObject | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Represents the values that are parsed as metadata

    -
    -
    -

    Hierarchy

    -
      -
    • LinkRelObject
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        value: string
        -

        The value corresponding to the rel value that will be used as predicate in the metadata.

        -
      • -
      • -
        Optional ephemeral: boolean
        -

        (Optional) Indicates whether it will be stored by the server.

        -
      • -
      • -
        Optional allowList: string[]
        -

        (Optional) Contains the objects that are allowed to be used with the given predicate.

        -
      -

      Returns LinkRelObject

    -
    -

    Properties

    -
    - -
    allowList: undefined | string[]
    -
    - -
    ephemeral: boolean
    -
    - -
    value: NamedNode<string>
    -
    -

    Methods

    -
    - -
    -
    - -
      - -
    • -

      Checks whether the object can be added to the metadata

      - -

      Returns

      a boolean to indicate whether it can be added to the metadata or not

      -
      -
      -

      Parameters

      -
        -
      • -
        object: string
        -

        The link target.

        -
      -

      Returns boolean

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/LinkRelParser.html b/5.x/docs/classes/LinkRelParser.html deleted file mode 100644 index 4462beaf1..000000000 --- a/5.x/docs/classes/LinkRelParser.html +++ /dev/null @@ -1,187 +0,0 @@ -LinkRelParser | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Parses Link headers with a specific rel value and adds them as metadata with the given predicate.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    linkRelMap: Record<string, LinkRelObject>
    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ListCredentialsHandler.html b/5.x/docs/classes/ListCredentialsHandler.html deleted file mode 100644 index e2e50bb6c..000000000 --- a/5.x/docs/classes/ListCredentialsHandler.html +++ /dev/null @@ -1,166 +0,0 @@ -ListCredentialsHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ListCredentialsHandler

    -
    -

    Returns a list of all credential tokens associated with this account. -Note that this only returns the ID tokens, not the associated secrets.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    accountStore: AccountStore
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/LocationInteractionHandler.html b/5.x/docs/classes/LocationInteractionHandler.html deleted file mode 100644 index 2e6b0f685..000000000 --- a/5.x/docs/classes/LocationInteractionHandler.html +++ /dev/null @@ -1,178 +0,0 @@ -LocationInteractionHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class LocationInteractionHandler

    -
    -

    Transforms an HTTP redirect into a hypermedia document with a redirection link, -such that scripts running in a browser can redirect the user to the next page.

    -

    This handler addresses the situation where:

    -
      -
    • the user visits a first page
    • -
    • this first page contains a script that performs interactions with a JSON API
    • -
    • as a result of a certain interaction, the user needs to be redirected to a second page
    • -
    -

    Regular HTTP redirects are performed via responses with 3xx status codes. -However, since the consumer of the API in this case is a browser script, -a 3xx response would only reach that script and not move the page for the user.

    -

    Therefore, this handler changes a 3xx response into a 200 response -with an explicit link to the next page, -enabling the script to move the user to the next page.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/LockingResourceStore.html b/5.x/docs/classes/LockingResourceStore.html deleted file mode 100644 index b57871e7a..000000000 --- a/5.x/docs/classes/LockingResourceStore.html +++ /dev/null @@ -1,395 +0,0 @@ -LockingResourceStore | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class LockingResourceStore

    -
    -

    Store that for every call acquires a lock before executing it on the requested resource, -and releases it afterwards. -In case the request returns a Representation the lock will only be released when the data stream is finished.

    -

    For auxiliary resources the lock will be applied to the subject resource. -The actual operation is still executed on the auxiliary resource.

    -
    -
    -

    Hierarchy

    -
      -
    • LockingResourceStore
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    auxiliaryStrategy: AuxiliaryIdentifierStrategy
    -
    - -
    -
    - -
    logger: Logger = ...
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Check if a resource exists in this ResourceSet.

      - -

      Returns

      A promise resolving if the resource already exists.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<boolean>

    -
    - -
      - -
    • -

      Acquires a lock that is only released when all data of the resulting representation data has been read, -an error occurs, or the timeout has been triggered. -The resulting data stream will be adapted to reset the timer every time data is read.

      -

      In case the data of the resulting stream is not needed it should be closed to prevent a timeout error.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<Representation>

    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Returns a promise that resolve when the source stream is finished, -either by ending or emitting an error. -In the case of an error the stream will be destroyed if it hasn't been already.

      -
      -
      -

      Parameters

      -
        -
      • -
        source: Readable
        -

        The input stream.

        -
      -

      Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/LoggerInitializer.html b/5.x/docs/classes/LoggerInitializer.html deleted file mode 100644 index c8e936d0d..000000000 --- a/5.x/docs/classes/LoggerInitializer.html +++ /dev/null @@ -1,158 +0,0 @@ -LoggerInitializer | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Sets up the global logger factory.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    loggerFactory: LoggerFactory
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/LoginHandler.html b/5.x/docs/classes/LoginHandler.html deleted file mode 100644 index 82dd1fc41..000000000 --- a/5.x/docs/classes/LoginHandler.html +++ /dev/null @@ -1,232 +0,0 @@ -LoginHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Handles the submission of the Login Form and logs the user in. -Will throw a RedirectHttpError on success.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    accountStore: AccountStore
    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/MappedMetadataWriter.html b/5.x/docs/classes/MappedMetadataWriter.html deleted file mode 100644 index 68dd02cfe..000000000 --- a/5.x/docs/classes/MappedMetadataWriter.html +++ /dev/null @@ -1,181 +0,0 @@ -MappedMetadataWriter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class MappedMetadataWriter

    -
    -

    A MetadataWriter that takes a map directly converting metadata predicates to headers. -The header value(s) will be the same as the corresponding object value(s).

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    headerMap: Map<NamedNode<string>, string>
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/MarkdownToHtmlConverter.html b/5.x/docs/classes/MarkdownToHtmlConverter.html deleted file mode 100644 index ffba251f2..000000000 --- a/5.x/docs/classes/MarkdownToHtmlConverter.html +++ /dev/null @@ -1,204 +0,0 @@ -MarkdownToHtmlConverter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class MarkdownToHtmlConverter

    -
    -

    Converts Markdown data to HTML. -The generated HTML will be injected into the given template using the parameter htmlBody. -A standard Markdown string will be converted to a

    tag, so html and body tags should be part of the template. -In case the Markdown body starts with a header (#), that value will also be used as title parameter.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    inputTypes: Promise<ValuePreferences>
    -
    - -
    outputTypes: Promise<ValuePreferences>
    -
    - -
    templateEngine: TemplateEngine<Dict<any>>
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/MemoryMapStorage.html b/5.x/docs/classes/MemoryMapStorage.html deleted file mode 100644 index b99c60fcf..000000000 --- a/5.x/docs/classes/MemoryMapStorage.html +++ /dev/null @@ -1,199 +0,0 @@ -MemoryMapStorage | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class MemoryMapStorage<TValue>

    -
    -

    A KeyValueStorage which uses a JavaScript Map for internal storage.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      TValue

    -
    -

    Hierarchy

    -
      -
    • MemoryMapStorage
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    data: Map<string, TValue>
    -
    -

    Methods

    -
    - -
      - -
    • -

      Deletes the value stored for the given key.

      - -

      Returns

      If there was a value to delete.

      -
      -
      -

      Parameters

      -
        -
      • -
        key: string
        -

        Key to delete.

        -
      -

      Returns Promise<boolean>

    -
    - -
      - -
    • -

      An iterable of entries in the storage.

      -
      -

      Returns AsyncIterableIterator<[string, TValue]>

    -
    - -
      - -
    • -

      Returns the value stored for the given identifier. -undefined if no value is stored.

      -
      -
      -

      Parameters

      -
        -
      • -
        key: string
      -

      Returns Promise<undefined | TValue>

    -
    - -
      - -
    • -

      Checks if there is a value stored for the given key.

      -
      -
      -

      Parameters

      -
        -
      • -
        key: string
      -

      Returns Promise<boolean>

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/MemoryResourceLocker.html b/5.x/docs/classes/MemoryResourceLocker.html deleted file mode 100644 index 1f5dae6d9..000000000 --- a/5.x/docs/classes/MemoryResourceLocker.html +++ /dev/null @@ -1,164 +0,0 @@ -MemoryResourceLocker | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class MemoryResourceLocker

    -
    -

    A resource locker making use of the async-lock library. -Note that all locks are kept in memory until they are unlocked which could potentially result -in a memory leak if locks are never unlocked, so make sure this is covered with expiring locks for example, -and/or proper finally handles.

    -
    -
    -

    Hierarchy

    -
      -
    • MemoryResourceLocker
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    locker: AsyncLock
    -
    - -
    logger: Logger = ...
    -
    - -
    unlockCallbacks: Record<string, (() => void)>
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Releases a lock on the requested identifier. -The promise will resolve when the lock has been released. -In case there is no lock on the resource an error should be thrown.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/MetadataGenerator.html b/5.x/docs/classes/MetadataGenerator.html deleted file mode 100644 index 9ab94e748..000000000 --- a/5.x/docs/classes/MetadataGenerator.html +++ /dev/null @@ -1,148 +0,0 @@ -MetadataGenerator | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class MetadataGeneratorAbstract

    -
    -

    Generic interface for classes that add metadata to a RepresentationMetadata.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/MetadataParser.html b/5.x/docs/classes/MetadataParser.html deleted file mode 100644 index c17f0bf50..000000000 --- a/5.x/docs/classes/MetadataParser.html +++ /dev/null @@ -1,168 +0,0 @@ -MetadataParser | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class MetadataParserAbstract

    -
    -

    A parser that takes a specific part of an HttpRequest and converts it into metadata, -such as the value of a header entry.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/MetadataWriter.html b/5.x/docs/classes/MetadataWriter.html deleted file mode 100644 index ade169f75..000000000 --- a/5.x/docs/classes/MetadataWriter.html +++ /dev/null @@ -1,171 +0,0 @@ -MetadataWriter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class MetadataWriterAbstract

    -
    -

    A serializer that converts metadata to headers for an HttpResponse.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/MethodFilterHandler.html b/5.x/docs/classes/MethodFilterHandler.html deleted file mode 100644 index 1daff4a2c..000000000 --- a/5.x/docs/classes/MethodFilterHandler.html +++ /dev/null @@ -1,207 +0,0 @@ -MethodFilterHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class MethodFilterHandler<TIn, TOut>

    -
    -

    Only accepts requests where the input has a (possibly nested) method field -that matches any one of the given methods. -In case of a match, the input will be sent to the source handler.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      TIn extends InType

    • -
    • -

      TOut

    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    methods: string[]
    -
    - -
    source: AsyncHandler<TIn, TOut>
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: TIn
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: TIn
        -

        Input that needs to be handled.

        -
      -

      Returns Promise<TOut>

    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: TIn
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<TOut>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/MethodModesExtractor.html b/5.x/docs/classes/MethodModesExtractor.html deleted file mode 100644 index 66c192bca..000000000 --- a/5.x/docs/classes/MethodModesExtractor.html +++ /dev/null @@ -1,171 +0,0 @@ -MethodModesExtractor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class MethodModesExtractor

    -
    -

    Generates permissions for the base set of methods that always require the same permissions. -Specifically: GET, HEAD, POST, PUT and DELETE.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    resourceSet: ResourceSet
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        __namedParameters: Operation
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/MethodNotAllowedHttpError.html b/5.x/docs/classes/MethodNotAllowedHttpError.html deleted file mode 100644 index e14be54c7..000000000 --- a/5.x/docs/classes/MethodNotAllowedHttpError.html +++ /dev/null @@ -1,215 +0,0 @@ -MethodNotAllowedHttpError | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class MethodNotAllowedHttpError

    -
    -

    An error thrown when data was found for the requested identifier, but is not supported by the target resource. -Can keep track of the methods that are not allowed.

    -
    -
    -

    Hierarchy

    -
      -
    • BaseHttpError -
        -
      • MethodNotAllowedHttpError
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    cause?: unknown
    -
    - -
    details?: Dict<unknown>
    -
    - -
    errorCode: string
    -
    - -
    message: string
    -
    - -
    methods: readonly string[]
    -
    - -
    name: string
    -
    - -
    stack?: string
    -
    - -
    statusCode: 405
    -
    - -
    isInstance: ((error: any) => error is HttpError<405>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (error: any): error is HttpError<405>
      • -
      • -

        Checks if the given error is an instance of this class.

        -
        -
        -

        Parameters

        -
          -
        • -
          error: any
        -

        Returns error is HttpError<405>

    -
    - -
    statusCode: 405
    -

    The status code corresponding to this error class.

    -
    -
    - -
    uri: NamedNode<string>
    -

    A unique URI identifying this error class.

    -
    -
    -

    Methods

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ModesExtractor.html b/5.x/docs/classes/ModesExtractor.html deleted file mode 100644 index 8fbdc5f0d..000000000 --- a/5.x/docs/classes/ModesExtractor.html +++ /dev/null @@ -1,153 +0,0 @@ -ModesExtractor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ModesExtractorAbstract

    -
    -

    Extracts all AccessModes that are necessary to execute the given Operation.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: Operation
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ModifiedMetadataWriter.html b/5.x/docs/classes/ModifiedMetadataWriter.html deleted file mode 100644 index 6d6ee255d..000000000 --- a/5.x/docs/classes/ModifiedMetadataWriter.html +++ /dev/null @@ -1,161 +0,0 @@ -ModifiedMetadataWriter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ModifiedMetadataWriter

    -
    -

    A MetadataWriter that generates all the necessary headers related to the modification date of a resource.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ModuleVersionVerifier.html b/5.x/docs/classes/ModuleVersionVerifier.html deleted file mode 100644 index 9353c515a..000000000 --- a/5.x/docs/classes/ModuleVersionVerifier.html +++ /dev/null @@ -1,169 +0,0 @@ -ModuleVersionVerifier | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ModuleVersionVerifier

    -
    -

    This initializer simply writes the version number of the server to the storage. -This will be relevant in the future when we look into migration initializers.

    -

    It automatically parses the version number from the package.json.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    storage: KeyValueStorage<string, string>
    -
    - -
    storageKey: string
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/MonitoringStore.html b/5.x/docs/classes/MonitoringStore.html deleted file mode 100644 index 6b6c34846..000000000 --- a/5.x/docs/classes/MonitoringStore.html +++ /dev/null @@ -1,729 +0,0 @@ -MonitoringStore | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class MonitoringStore<T>

    -
    -

    Store that notifies listeners of changes to its source -by emitting a changed event.

    -
    -
    -

    Type Parameters

    -
    -
    -

    Hierarchy

    -
      -
    • EventEmitter -
        -
      • MonitoringStore
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    source: T
    -
    - -
    captureRejectionSymbol: typeof captureRejectionSymbol
    -
    - -
    captureRejections: boolean
    -

    Sets or gets the default captureRejection value for all emitters.

    -
    -
    - -
    defaultMaxListeners: number
    -
    - -
    errorMonitor: typeof errorMonitor
    -

    This symbol shall be used to install a listener for only monitoring 'error' -events. Listeners installed using this symbol are called before the regular -'error' listeners are called.

    -

    Installing a listener using this symbol does not change the behavior once an -'error' event is emitted, therefore the process will still crash if no -regular 'error' listener is installed.

    -
    -
    -

    Methods

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        event: string | symbol
      • -
      • -
        listener: ((...args: any[]) => void)
        -
          -
        • -
            -
          • (...args: any[]): void
          • -
          • -
            -

            Parameters

            -
              -
            • -
              Rest ...args: any[]
            -

            Returns void

      -

      Returns MonitoringStore<T>

    -
    - -
    -
    - -
    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        event: string | symbol
      • -
      • -
        Rest ...args: any[]
      -

      Returns boolean

    -
    - -
    -
    - -
      - -
    • -

      Returns (string | symbol)[]

    -
    - -
      - -
    • -

      Returns number

    -
    - -
    -
    - -
      - -
    • -

      Check if a resource exists in this ResourceSet.

      - -

      Returns

      A promise resolving if the resource already exists.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<boolean>

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        event: string | symbol
      -

      Returns number

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        event: string | symbol
      -

      Returns Function[]

    -
    - -
    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        event: string | symbol
      • -
      • -
        listener: ((...args: any[]) => void)
        -
          -
        • -
            -
          • (...args: any[]): void
          • -
          • -
            -

            Parameters

            -
              -
            • -
              Rest ...args: any[]
            -

            Returns void

      -

      Returns MonitoringStore<T>

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        event: string | symbol
      • -
      • -
        listener: ((...args: any[]) => void)
        -
          -
        • -
            -
          • (...args: any[]): void
          • -
          • -
            -

            Parameters

            -
              -
            • -
              Rest ...args: any[]
            -

            Returns void

      -

      Returns MonitoringStore<T>

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        event: string | symbol
      • -
      • -
        listener: ((...args: any[]) => void)
        -
          -
        • -
            -
          • (...args: any[]): void
          • -
          • -
            -

            Parameters

            -
              -
            • -
              Rest ...args: any[]
            -

            Returns void

      -

      Returns MonitoringStore<T>

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        event: string | symbol
      • -
      • -
        listener: ((...args: any[]) => void)
        -
          -
        • -
            -
          • (...args: any[]): void
          • -
          • -
            -

            Parameters

            -
              -
            • -
              Rest ...args: any[]
            -

            Returns void

      -

      Returns MonitoringStore<T>

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        event: string | symbol
      • -
      • -
        listener: ((...args: any[]) => void)
        -
          -
        • -
            -
          • (...args: any[]): void
          • -
          • -
            -

            Parameters

            -
              -
            • -
              Rest ...args: any[]
            -

            Returns void

      -

      Returns MonitoringStore<T>

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        event: string | symbol
      -

      Returns Function[]

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        Optional event: string | symbol
      -

      Returns MonitoringStore<T>

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        event: string | symbol
      • -
      • -
        listener: ((...args: any[]) => void)
        -
          -
        • -
            -
          • (...args: any[]): void
          • -
          • -
            -

            Parameters

            -
              -
            • -
              Rest ...args: any[]
            -

            Returns void

      -

      Returns MonitoringStore<T>

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        n: number
      -

      Returns MonitoringStore<T>

    -
    - -
    -
    - -
      - -
    • -
      -

      Deprecated

      since v4.0.0

      -
      -
      -

      Parameters

      -
        -
      • -
        emitter: EventEmitter
      • -
      • -
        event: string | symbol
      -

      Returns number

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        emitter: EventEmitter
      • -
      • -
        event: string
      -

      Returns AsyncIterableIterator<any>

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        emitter: NodeEventTarget
      • -
      • -
        event: string | symbol
      -

      Returns Promise<any[]>

    • - -
    • -
      -

      Parameters

      -
        -
      • -
        emitter: DOMEventTarget
      • -
      • -
        event: string
      -

      Returns Promise<any[]>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/MovedPermanentlyHttpError.html b/5.x/docs/classes/MovedPermanentlyHttpError.html deleted file mode 100644 index 0592d9bde..000000000 --- a/5.x/docs/classes/MovedPermanentlyHttpError.html +++ /dev/null @@ -1,218 +0,0 @@ -MovedPermanentlyHttpError | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class MovedPermanentlyHttpError

    -
    -

    Error used for resources that have been moved permanently. -Methods other than GET may or may not be changed to GET in subsequent requests.

    -
    -
    -

    Hierarchy

    -
      -
    • BaseHttpError -
        -
      • MovedPermanentlyHttpError
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    cause?: unknown
    -
    - -
    details?: Dict<unknown>
    -
    - -
    errorCode: string
    -
    - -
    location: string
    -
    - -
    message: string
    -
    - -
    name: string
    -
    - -
    stack?: string
    -
    - -
    statusCode: 301
    -
    - -
    isInstance: ((error: any) => error is HttpError<301>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (error: any): error is HttpError<301>
      • -
      • -

        Checks if the given error is an instance of this class.

        -
        -
        -

        Parameters

        -
          -
        • -
          error: any
        -

        Returns error is HttpError<301>

    -
    - -
    statusCode: 301
    -

    The status code corresponding to this error class.

    -
    -
    - -
    uri: NamedNode<string>
    -

    A unique URI identifying this error class.

    -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Returns quads representing metadata relevant to this error.

      -
      -
      -

      Parameters

      -
        -
      • -
        subject: string | Quad_Subject
      -

      Returns Quad[]

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/N3PatchBodyParser.html b/5.x/docs/classes/N3PatchBodyParser.html deleted file mode 100644 index a7fd59e15..000000000 --- a/5.x/docs/classes/N3PatchBodyParser.html +++ /dev/null @@ -1,236 +0,0 @@ -N3PatchBodyParser | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Parses an N3 Patch document and makes sure it conforms to the specification requirements. -Requirements can be found at Solid Protocol, §5.3.1: https://solid.github.io/specification/protocol#n3-patch

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        __namedParameters: BodyParserArgs
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Finds all quads in a where/deletes/inserts formula. -The returned quads will be updated so their graph is the default graph instead of the N3 reference to the formula. -Will error in case there are multiple instances of the subject/predicate combination.

      -
      -
      -

      Parameters

      -
        -
      • -
        store: Store<Quad, Quad, Quad, Quad>
      • -
      • -
        subject: Quad_Subject
      • -
      • -
        predicate: NamedNode<string>
      -

      Returns Quad[]

    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Extracts the deletes/inserts/conditions from a solid:InsertDeletePatch entry.

      -
      -
      -

      Parameters

      -
        -
      • -
        patch: Quad_Subject
      • -
      • -
        store: Store<Quad, Quad, Quad, Quad>
      -

      Returns { conditions: Quad[]; deletes: Quad[]; inserts: Quad[] }

      -
        -
      • -
        conditions: Quad[]
      • -
      • -
        deletes: Quad[]
      • -
      • -
        inserts: Quad[]
    -
    - -
      - -
    • -

      Verifies if the delete/insert triples conform to the specification requirements:

      -
        -
      • They should not contain blank nodes.
      • -
      • They should not contain variables that do not occur in the conditions.
      • -
      -
      -
      -

      Parameters

      -
        -
      • -
        otherQuads: Quad[]
      • -
      • -
        conditionVars: Set<string>
      -

      Returns void

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/N3PatchModesExtractor.html b/5.x/docs/classes/N3PatchModesExtractor.html deleted file mode 100644 index 3a83308d9..000000000 --- a/5.x/docs/classes/N3PatchModesExtractor.html +++ /dev/null @@ -1,174 +0,0 @@ -N3PatchModesExtractor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class N3PatchModesExtractor

    -
    -

    Extracts the required access modes from an N3 Patch.

    -

    Solid, §5.3.1: "When ?conditions is non-empty, servers MUST treat the request as a Read operation. -When ?insertions is non-empty, servers MUST (also) treat the request as an Append operation. -When ?deletions is non-empty, servers MUST treat the request as a Read and Write operation." -https://solid.github.io/specification/protocol#n3-patch

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    resourceSet: ResourceSet
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        __namedParameters: Operation
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/N3Patcher.html b/5.x/docs/classes/N3Patcher.html deleted file mode 100644 index 10b17ebdf..000000000 --- a/5.x/docs/classes/N3Patcher.html +++ /dev/null @@ -1,217 +0,0 @@ -N3Patcher | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Applies an N3 Patch to a representation, or creates a new one if required. -Follows all the steps from Solid, §5.3.1: https://solid.github.io/specification/protocol#n3-patch

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    engine: QueryEngine
    -
    - -
    generator: SparqlGenerator
    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
      - -
    • -

      Creates a new N3Patch where the conditions of the provided patch parameter are applied to its deletes and inserts. -Also does the necessary checks to make sure the conditions are valid for the given dataset.

      -
      -
      -

      Parameters

      -
        -
      • -
        patch: N3Patch
      • -
      • -
        identifier: ResourceIdentifier
      • -
      • -
        source: Store<Quad, Quad, Quad, Quad>
      -

      Returns Promise<N3Patch>

    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Applies the given N3Patch to the store. -First the conditions are applied to find the necessary bindings, -which are then applied to generate the triples that need to be deleted and inserted. -After that the delete and insert operations are applied.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<Store<Quad, Quad, Quad, Quad>>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/NoCheckOwnershipValidator.html b/5.x/docs/classes/NoCheckOwnershipValidator.html deleted file mode 100644 index a23a277be..000000000 --- a/5.x/docs/classes/NoCheckOwnershipValidator.html +++ /dev/null @@ -1,168 +0,0 @@ -NoCheckOwnershipValidator | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class NoCheckOwnershipValidator

    -
    -

    Does not do any checks to verify if the agent doing the request is actually the owner of the WebID. -This should only be used for debugging.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: { webId: string }
        -

        Input that could potentially be handled.

        -
        -
          -
        • -
          webId: string
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -
      -

      Parameters

      -
        -
      • -
        __namedParameters: { webId: string }
        -

        Input that needs to be handled.

        -
        -
          -
        • -
          webId: string
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: { webId: string }
        -

        Input data that will be handled if it can be handled.

        -
        -
          -
        • -
          webId: string
      -

      Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/NotFoundHttpError.html b/5.x/docs/classes/NotFoundHttpError.html deleted file mode 100644 index 3c342e9d5..000000000 --- a/5.x/docs/classes/NotFoundHttpError.html +++ /dev/null @@ -1,207 +0,0 @@ -NotFoundHttpError | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    An error thrown when no data was found for the requested identifier.

    -
    -
    -

    Hierarchy

    -
      -
    • BaseHttpError -
        -
      • NotFoundHttpError
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    cause?: unknown
    -
    - -
    details?: Dict<unknown>
    -
    - -
    errorCode: string
    -
    - -
    message: string
    -
    - -
    name: string
    -
    - -
    stack?: string
    -
    - -
    statusCode: 404
    -
    - -
    isInstance: ((error: any) => error is HttpError<404>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (error: any): error is HttpError<404>
      • -
      • -

        Checks if the given error is an instance of this class.

        -
        -
        -

        Parameters

        -
          -
        • -
          error: any
        -

        Returns error is HttpError<404>

    -
    - -
    statusCode: 404
    -

    The status code corresponding to this error class.

    -
    -
    - -
    uri: NamedNode<string>
    -

    A unique URI identifying this error class.

    -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Returns quads representing metadata relevant to this error.

      -
      -
      -

      Parameters

      -
        -
      • -
        subject: string | Quad_Subject
      -

      Returns Quad[]

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/NotImplementedHttpError.html b/5.x/docs/classes/NotImplementedHttpError.html deleted file mode 100644 index 499b31b53..000000000 --- a/5.x/docs/classes/NotImplementedHttpError.html +++ /dev/null @@ -1,208 +0,0 @@ -NotImplementedHttpError | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class NotImplementedHttpError

    -
    -

    The server either does not recognize the request method, or it lacks the ability to fulfil the request. -Usually this implies future availability (e.g., a new feature of a web-service API).

    -
    -
    -

    Hierarchy

    -
      -
    • BaseHttpError -
        -
      • NotImplementedHttpError
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    cause?: unknown
    -
    - -
    details?: Dict<unknown>
    -
    - -
    errorCode: string
    -
    - -
    message: string
    -
    - -
    name: string
    -
    - -
    stack?: string
    -
    - -
    statusCode: 501
    -
    - -
    isInstance: ((error: any) => error is HttpError<501>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (error: any): error is HttpError<501>
      • -
      • -

        Checks if the given error is an instance of this class.

        -
        -
        -

        Parameters

        -
          -
        • -
          error: any
        -

        Returns error is HttpError<501>

    -
    - -
    statusCode: 501
    -

    The status code corresponding to this error class.

    -
    -
    - -
    uri: NamedNode<string>
    -

    A unique URI identifying this error class.

    -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Returns quads representing metadata relevant to this error.

      -
      -
      -

      Parameters

      -
        -
      • -
        subject: string | Quad_Subject
      -

      Returns Quad[]

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/OidcHttpHandler.html b/5.x/docs/classes/OidcHttpHandler.html deleted file mode 100644 index fa55622e3..000000000 --- a/5.x/docs/classes/OidcHttpHandler.html +++ /dev/null @@ -1,172 +0,0 @@ -OidcHttpHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    HTTP handler that redirects all requests to the OIDC library.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    - -
    providerFactory: ProviderFactory
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/OkResponseDescription.html b/5.x/docs/classes/OkResponseDescription.html deleted file mode 100644 index 7e0bb4036..000000000 --- a/5.x/docs/classes/OkResponseDescription.html +++ /dev/null @@ -1,113 +0,0 @@ -OkResponseDescription | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class OkResponseDescription

    -
    -

    Corresponds to a 200 response, containing relevant metadata and potentially data.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    data?: Guarded<Readable>
    -
    - -
    -
    - -
    statusCode: number
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/OperationHandler.html b/5.x/docs/classes/OperationHandler.html deleted file mode 100644 index 6d6051278..000000000 --- a/5.x/docs/classes/OperationHandler.html +++ /dev/null @@ -1,153 +0,0 @@ -OperationHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class OperationHandlerAbstract

    -
    -

    Handler for a specific operation type.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/OperationHttpHandler.html b/5.x/docs/classes/OperationHttpHandler.html deleted file mode 100644 index 096fb0f23..000000000 --- a/5.x/docs/classes/OperationHttpHandler.html +++ /dev/null @@ -1,150 +0,0 @@ -OperationHttpHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class OperationHttpHandlerAbstract

    -
    -

    An HTTP handler that makes use of an already parsed Operation.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/OperationMetadataCollector.html b/5.x/docs/classes/OperationMetadataCollector.html deleted file mode 100644 index dd2c2a6cc..000000000 --- a/5.x/docs/classes/OperationMetadataCollector.html +++ /dev/null @@ -1,148 +0,0 @@ -OperationMetadataCollector | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class OperationMetadataCollectorAbstract

    -
    -

    Adds metadata about the operation to the provided metadata object.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/OriginalUrlExtractor.html b/5.x/docs/classes/OriginalUrlExtractor.html deleted file mode 100644 index 0ecabf521..000000000 --- a/5.x/docs/classes/OriginalUrlExtractor.html +++ /dev/null @@ -1,181 +0,0 @@ -OriginalUrlExtractor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class OriginalUrlExtractor

    -
    -

    Reconstructs the original URL of an incoming HttpRequest.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    identifierStrategy: IdentifierStrategy
    -
    - -
    includeQueryString: boolean
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/OwnerPermissionReader.html b/5.x/docs/classes/OwnerPermissionReader.html deleted file mode 100644 index 9f01133d0..000000000 --- a/5.x/docs/classes/OwnerPermissionReader.html +++ /dev/null @@ -1,208 +0,0 @@ -OwnerPermissionReader | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class OwnerPermissionReader

    -
    -

    Allows control access if the request is being made by the owner of the pod containing the resource.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    accountStore: AccountStore
    -
    - -
    -
    - -
    identifierStrategy: IdentifierStrategy
    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/OwnershipValidator.html b/5.x/docs/classes/OwnershipValidator.html deleted file mode 100644 index 2b2f993af..000000000 --- a/5.x/docs/classes/OwnershipValidator.html +++ /dev/null @@ -1,160 +0,0 @@ -OwnershipValidator | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class OwnershipValidatorAbstract

    -
    -

    A class that validates if a someone owns a WebId. -Will throw an error if the WebId is not valid or ownership could not be validated. -The error message should contain a description of what is wrong and how it can be resolved.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: { webId: string }
        -

        Input that could potentially be handled.

        -
        -
          -
        • -
          webId: string
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: { webId: string }
        -

        Input that needs to be handled.

        -
        -
          -
        • -
          webId: string
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: { webId: string }
        -

        Input data that will be handled if it can be handled.

        -
        -
          -
        • -
          webId: string
      -

      Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ParallelHandler.html b/5.x/docs/classes/ParallelHandler.html deleted file mode 100644 index d7bf5760a..000000000 --- a/5.x/docs/classes/ParallelHandler.html +++ /dev/null @@ -1,179 +0,0 @@ -ParallelHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ParallelHandler<TIn, TOut>

    -
    -

    A composite handler that executes handlers in parallel.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      TIn = void

    • -
    • -

      TOut = void

    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    handlers: AsyncHandler<TIn, TOut>[]
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: TIn
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: TIn
        -

        Input that needs to be handled.

        -
      -

      Returns Promise<TOut[]>

    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: TIn
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<TOut[]>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ParentContainerReader.html b/5.x/docs/classes/ParentContainerReader.html deleted file mode 100644 index 6762fb87d..000000000 --- a/5.x/docs/classes/ParentContainerReader.html +++ /dev/null @@ -1,259 +0,0 @@ -ParentContainerReader | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ParentContainerReader

    -
    -

    Determines delete and create permissions for those resources that need it -by making sure the parent container has the required permissions.

    -

    Create requires append permissions on the parent container. -Delete requires write permissions on both the parent container and the resource itself.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    identifierStrategy: IdentifierStrategy
    -
    - -
    logger: Logger = ...
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Determines the create and delete permissions for the given resource permissions -based on those of its parent container.

      -
      -
      -

      Parameters

      -
        -
      • -
        resourcePermission: Partial<Record<AccessMode, boolean>>
      • -
      • -
        containerPermission: Partial<Record<AccessMode, boolean>>
      -

      Returns Partial<Record<AccessMode, boolean>>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ParsingHttpHandler.html b/5.x/docs/classes/ParsingHttpHandler.html deleted file mode 100644 index da099163b..000000000 --- a/5.x/docs/classes/ParsingHttpHandler.html +++ /dev/null @@ -1,240 +0,0 @@ -ParsingHttpHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Parses requests and sends the resulting Operation to the wrapped OperationHttpHandler. -Errors are caught and handled by the ErrorHandler. -In case the OperationHttpHandler returns a result it will be sent to the ResponseWriter.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    errorHandler: ErrorHandler
    -
    - -
    logger: Logger = ...
    -
    - -
    metadataCollector: OperationMetadataCollector
    -
    - -
    operationHandler: OperationHttpHandler
    -
    - -
    requestParser: RequestParser
    -
    - -
    responseWriter: ResponseWriter
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/PassthroughAdapter.html b/5.x/docs/classes/PassthroughAdapter.html deleted file mode 100644 index ea06187a8..000000000 --- a/5.x/docs/classes/PassthroughAdapter.html +++ /dev/null @@ -1,226 +0,0 @@ -PassthroughAdapter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    OIDC Adapter that calls the corresponding functions of the source Adapter. -Can be extended by adapters that do not want to override all functions -by implementing a decorator pattern.

    -
    -
    -

    Hierarchy

    -
    -
    -

    Implements

    -
      -
    • Adapter
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    name: string
    -
    - -
    source: Adapter
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        userCode: string
      -

      Returns Promise<undefined | void | AdapterPayload>

    -
    - -
    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        id: string
      • -
      • -
        payload: AdapterPayload
      • -
      • -
        expiresIn: number
      -

      Returns Promise<undefined | void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/PassthroughAdapterFactory.html b/5.x/docs/classes/PassthroughAdapterFactory.html deleted file mode 100644 index 3dc32e323..000000000 --- a/5.x/docs/classes/PassthroughAdapterFactory.html +++ /dev/null @@ -1,118 +0,0 @@ -PassthroughAdapterFactory | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class PassthroughAdapterFactory

    -
    -

    A factory that generates an Adapter to be used by the IDP to persist information.

    -

    The oidc-provider library will call the relevant functions when it needs to find/create/delete metadata. -For a full explanation of how these functions work and what is expected, -have a look at https://github.com/panva/node-oidc-provider/blob/main/example/my_adapter.js

    -
    -
    -

    Hierarchy

    -
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/PassthroughConverter.html b/5.x/docs/classes/PassthroughConverter.html deleted file mode 100644 index 56b5914ee..000000000 --- a/5.x/docs/classes/PassthroughConverter.html +++ /dev/null @@ -1,146 +0,0 @@ -PassthroughConverter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class PassthroughConverter

    -
    -

    A RepresentationConverter that does not perform any conversion.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/PassthroughDataAccessor.html b/5.x/docs/classes/PassthroughDataAccessor.html deleted file mode 100644 index c826c0f9a..000000000 --- a/5.x/docs/classes/PassthroughDataAccessor.html +++ /dev/null @@ -1,294 +0,0 @@ -PassthroughDataAccessor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class PassthroughDataAccessor

    -
    -

    DataAccessor that calls the corresponding functions of the source DataAccessor. -Can be extended by data accessors that do not want to override all functions -by implementing a decorator pattern.

    -
    -
    -

    Hierarchy

    -
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Should throw a NotImplementedHttpError if the DataAccessor does not support storing the given Representation.

      - -

      Throws

      BadRequestHttpError -If it does not support the incoming data.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
      - -
    • -

      Returns metadata for all resources in the requested container. -This should not be all metadata of those resources (but it can be), -but instead the main metadata you want to show in situations -where all these resources are presented simultaneously. -Generally this would be metadata that is present for all of these resources, -such as resource type or last modified date.

      -

      It can be safely assumed that the incoming identifier will always correspond to a container.

      -
      -
      -

      Parameters

      -
      -

      Returns AsyncIterableIterator<RepresentationMetadata>

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/PassthroughStore.html b/5.x/docs/classes/PassthroughStore.html deleted file mode 100644 index c7ae6e308..000000000 --- a/5.x/docs/classes/PassthroughStore.html +++ /dev/null @@ -1,283 +0,0 @@ -PassthroughStore | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class PassthroughStore<T>

    -
    -

    Store that calls the corresponding functions of the source Store. -Can be extended by stores that do not want to override all functions -by implementing a decorator pattern.

    -
    -
    -

    Type Parameters

    -
    -
    -

    Hierarchy

    -
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    source: T
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Check if a resource exists in this ResourceSet.

      - -

      Returns

      A promise resolving if the resource already exists.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<boolean>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/PatchHandler.html b/5.x/docs/classes/PatchHandler.html deleted file mode 100644 index 8c6d9fc0a..000000000 --- a/5.x/docs/classes/PatchHandler.html +++ /dev/null @@ -1,158 +0,0 @@ -PatchHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class PatchHandler<T>Abstract

    -
    -

    Executes the given Patch.

    -
    -
    -

    Type Parameters

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/PatchOperationHandler.html b/5.x/docs/classes/PatchOperationHandler.html deleted file mode 100644 index 1a5ca50e3..000000000 --- a/5.x/docs/classes/PatchOperationHandler.html +++ /dev/null @@ -1,173 +0,0 @@ -PatchOperationHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class PatchOperationHandler

    -
    -

    Handles PATCH Operations. -Calls the modifyResource function from a ResourceStore.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/PatchingStore.html b/5.x/docs/classes/PatchingStore.html deleted file mode 100644 index ef605c355..000000000 --- a/5.x/docs/classes/PatchingStore.html +++ /dev/null @@ -1,287 +0,0 @@ -PatchingStore | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class PatchingStore<T>

    -
    -

    ResourceStore using decorator pattern for the modifyResource function. -If the original store supports the Patch, behaviour will be identical, -otherwise the PatchHandler will be called instead.

    -
    -
    -

    Type Parameters

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    - -
    source: T
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/PathBasedReader.html b/5.x/docs/classes/PathBasedReader.html deleted file mode 100644 index 773cfae87..000000000 --- a/5.x/docs/classes/PathBasedReader.html +++ /dev/null @@ -1,219 +0,0 @@ -PathBasedReader | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Redirects requests to specific PermissionReaders based on their identifier. -The keys are regular expression strings. -The regular expressions should all start with a slash -and will be evaluated relative to the base URL.

    -

    Will error if no match is found.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    baseUrl: string
    -
    - -
    logger: Logger = ...
    -
    - -
    paths: Map<RegExp, PermissionReader>
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/PermissionBasedAuthorizer.html b/5.x/docs/classes/PermissionBasedAuthorizer.html deleted file mode 100644 index e65ea1511..000000000 --- a/5.x/docs/classes/PermissionBasedAuthorizer.html +++ /dev/null @@ -1,273 +0,0 @@ -PermissionBasedAuthorizer | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class PermissionBasedAuthorizer

    -
    -

    Authorizer that bases its decision on the output it gets from its PermissionReader. -For each permission it checks if the reader allows that for at least one credential type, -if yes authorization is granted. -undefined values for reader results are interpreted as false.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    - -
    resourceSet: ResourceSet
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      If we know the operation will return a 404 regardless (= resource does not exist and is not being created), -and the agent is allowed to know about its existence (= the agent has Read permissions), -then immediately send the 404 here, as it makes any other agent permissions irrelevant.

      -

      Otherwise, deny access based on existing grounds.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<never>

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/PermissionReader.html b/5.x/docs/classes/PermissionReader.html deleted file mode 100644 index b1af610e1..000000000 --- a/5.x/docs/classes/PermissionReader.html +++ /dev/null @@ -1,156 +0,0 @@ -PermissionReader | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class PermissionReaderAbstract

    -
    -

    Discovers the permissions of the given credentials on the given identifier. -In case the reader finds no permission for the requested identifiers and credentials -it can return an empty or incomplete map.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/PlainJsonLdFilter.html b/5.x/docs/classes/PlainJsonLdFilter.html deleted file mode 100644 index e9b320bc4..000000000 --- a/5.x/docs/classes/PlainJsonLdFilter.html +++ /dev/null @@ -1,191 +0,0 @@ -PlainJsonLdFilter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Filter that errors on JSON-LD with a plain application/json content-type. -This will not store metadata, only throw errors if necessary.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/PodQuotaStrategy.html b/5.x/docs/classes/PodQuotaStrategy.html deleted file mode 100644 index c5dbf1e8f..000000000 --- a/5.x/docs/classes/PodQuotaStrategy.html +++ /dev/null @@ -1,235 +0,0 @@ -PodQuotaStrategy | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    The PodQuotaStrategy sets a limit on the amount of data stored on a per pod basis

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    accessor: DataAccessor
    -
    - -
    identifierStrategy: IdentifierStrategy
    -
    - -
    limit: Size
    -
    - -
    reporter: SizeReporter<any>
    -
    -

    Methods

    -
    - -
      - -
    • -

      Get a Passthrough stream that will keep track of the available space. -If the quota is exceeded the stream will emit an error and destroy itself. -Like other Passthrough instances this will simply pass on the chunks, when the quota isn't exceeded.

      - -

      Returns

      a Passthrough instance that errors when quota is exceeded

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<Guarded<PassThrough>>

    -
    - -
    -
    - -
      - -
    • -

      Get the available space when writing data to the given identifier. -If the given resource already exists it will deduct the already taken up -space by that resource since it is going to be overwritten and thus counts -as available space.

      - -

      Returns

      the available space and the unit of the space as a Size object

      -
      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
        -

        the identifier of the resource of which you want the available space

        -
      -

      Returns Promise<Size>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/PostOperationHandler.html b/5.x/docs/classes/PostOperationHandler.html deleted file mode 100644 index 34c380325..000000000 --- a/5.x/docs/classes/PostOperationHandler.html +++ /dev/null @@ -1,173 +0,0 @@ -PostOperationHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class PostOperationHandler

    -
    -

    Handles POST Operations. -Calls the addResource function from a ResourceStore.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/PreconditionFailedHttpError.html b/5.x/docs/classes/PreconditionFailedHttpError.html deleted file mode 100644 index b02dbca83..000000000 --- a/5.x/docs/classes/PreconditionFailedHttpError.html +++ /dev/null @@ -1,207 +0,0 @@ -PreconditionFailedHttpError | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class PreconditionFailedHttpError

    -
    -

    An error thrown when access was denied due to the conditions on the request.

    -
    -
    -

    Hierarchy

    -
      -
    • BaseHttpError -
        -
      • PreconditionFailedHttpError
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    cause?: unknown
    -
    - -
    details?: Dict<unknown>
    -
    - -
    errorCode: string
    -
    - -
    message: string
    -
    - -
    name: string
    -
    - -
    stack?: string
    -
    - -
    statusCode: 412
    -
    - -
    isInstance: ((error: any) => error is HttpError<412>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (error: any): error is HttpError<412>
      • -
      • -

        Checks if the given error is an instance of this class.

        -
        -
        -

        Parameters

        -
          -
        • -
          error: any
        -

        Returns error is HttpError<412>

    -
    - -
    statusCode: 412
    -

    The status code corresponding to this error class.

    -
    -
    - -
    uri: NamedNode<string>
    -

    A unique URI identifying this error class.

    -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Returns quads representing metadata relevant to this error.

      -
      -
      -

      Parameters

      -
        -
      • -
        subject: string | Quad_Subject
      -

      Returns Quad[]

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/PreferenceParser.html b/5.x/docs/classes/PreferenceParser.html deleted file mode 100644 index f8d6e8ac3..000000000 --- a/5.x/docs/classes/PreferenceParser.html +++ /dev/null @@ -1,157 +0,0 @@ -PreferenceParser | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class PreferenceParserAbstract

    -
    -

    Creates RepresentationPreferences based on the incoming HTTP headers in a HttpRequest.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/PreferenceSupport.html b/5.x/docs/classes/PreferenceSupport.html deleted file mode 100644 index e0b659bc9..000000000 --- a/5.x/docs/classes/PreferenceSupport.html +++ /dev/null @@ -1,124 +0,0 @@ -PreferenceSupport | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Helper class that checks if the stored RepresentationConverter and RepresentationPreferences -support the given input RepresentationPreferences and Representation.

    -

    Creates a new object by combining the input arguments together with the stored preferences and checks -if the converter can handle that object.

    -
    -
    -

    Hierarchy

    -
      -
    • PreferenceSupport
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ProcessHandler.html b/5.x/docs/classes/ProcessHandler.html deleted file mode 100644 index 7739ac4b8..000000000 --- a/5.x/docs/classes/ProcessHandler.html +++ /dev/null @@ -1,221 +0,0 @@ -ProcessHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ProcessHandler<TIn, TOut>

    -
    -

    A wrapper handler that will only run the wrapped handler if it is executed from:

    -
      -
    • when running multithreaded: either the primary or a worker process
    • -
    • when running singlethreaded: the only process (i.e. always)
    • -
    -
    -
    -

    Type Parameters

    -
      -
    • -

      TIn

    • -
    • -

      TOut

    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    clusterManager: ClusterManager
    -
    - -
    executeOnPrimary: boolean
    -
    - -
    source: AsyncHandler<TIn, TOut>
    -
    -

    Methods

    -
    - -
    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: TIn
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: TIn
        -

        Input that needs to be handled.

        -
      -

      Returns Promise<TOut>

    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: TIn
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<TOut>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/PromptHandler.html b/5.x/docs/classes/PromptHandler.html deleted file mode 100644 index e63150c98..000000000 --- a/5.x/docs/classes/PromptHandler.html +++ /dev/null @@ -1,166 +0,0 @@ -PromptHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Redirects requests based on the OIDC Interaction prompt. -Errors in case no match was found.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    promptRoutes: Record<string, InteractionRoute>
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/PublicCredentialsExtractor.html b/5.x/docs/classes/PublicCredentialsExtractor.html deleted file mode 100644 index adcc0a69a..000000000 --- a/5.x/docs/classes/PublicCredentialsExtractor.html +++ /dev/null @@ -1,139 +0,0 @@ -PublicCredentialsExtractor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class PublicCredentialsExtractor

    -
    -

    Extracts the public credentials, to be used for data everyone has access to.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: HttpRequest
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/PutOperationHandler.html b/5.x/docs/classes/PutOperationHandler.html deleted file mode 100644 index fcff8f1c7..000000000 --- a/5.x/docs/classes/PutOperationHandler.html +++ /dev/null @@ -1,182 +0,0 @@ -PutOperationHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Handles PUT Operations. -Calls the setRepresentation function from a ResourceStore.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    - -
    metadataStrategy: AuxiliaryStrategy
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/QuadToRdfConverter.html b/5.x/docs/classes/QuadToRdfConverter.html deleted file mode 100644 index e9e492b8c..000000000 --- a/5.x/docs/classes/QuadToRdfConverter.html +++ /dev/null @@ -1,204 +0,0 @@ -QuadToRdfConverter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Converts internal/quads to most major RDF serializations.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    inputTypes: Promise<ValuePreferences>
    -
    - -
    outputPreferences?: ValuePreferences
    -
    - -
    outputTypes: Promise<ValuePreferences>
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/QuotaStrategy.html b/5.x/docs/classes/QuotaStrategy.html deleted file mode 100644 index cd3ee4e8c..000000000 --- a/5.x/docs/classes/QuotaStrategy.html +++ /dev/null @@ -1,198 +0,0 @@ -QuotaStrategy | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class QuotaStrategyAbstract

    -
    -

    A QuotaStrategy is used when we want to set a limit to the amount of data that can be -stored on the server. -This can range from a limit for the whole server to a limit on a per pod basis. -The way the size of a resource is calculated is implemented by the implementing classes. -This can be bytes, quads, file count, ...

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    limit: Size
    -
    - -
    reporter: SizeReporter<any>
    -
    -

    Methods

    -
    - -
      - -
    • -

      Get a Passthrough stream that will keep track of the available space. -If the quota is exceeded the stream will emit an error and destroy itself. -Like other Passthrough instances this will simply pass on the chunks, when the quota isn't exceeded.

      - -

      Returns

      a Passthrough instance that errors when quota is exceeded

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<Guarded<PassThrough>>

    -
    - -
    -
    - -
      - -
    • -

      Get the available space when writing data to the given identifier. -If the given resource already exists it will deduct the already taken up -space by that resource since it is going to be overwritten and thus counts -as available space.

      - -

      Returns

      the available space and the unit of the space as a Size object

      -
      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
        -

        the identifier of the resource of which you want the available space

        -
      -

      Returns Promise<Size>

    -
    - -
      - -
    • -

      Get the currently used/occupied space.

      - -

      Returns

      a Size object containing the requested value. -If quota is not relevant for this identifier, Size.amount should be Number.MAX_SAFE_INTEGER

      -
      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
        -

        the identifier that should be used to calculate the total

        -
      -

      Returns Promise<Size>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/QuotaValidator.html b/5.x/docs/classes/QuotaValidator.html deleted file mode 100644 index 273904a32..000000000 --- a/5.x/docs/classes/QuotaValidator.html +++ /dev/null @@ -1,165 +0,0 @@ -QuotaValidator | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    The QuotaValidator validates data streams by making sure they would not exceed the limits of a QuotaStrategy.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    strategy: QuotaStrategy
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RawBodyParser.html b/5.x/docs/classes/RawBodyParser.html deleted file mode 100644 index 07ff737f4..000000000 --- a/5.x/docs/classes/RawBodyParser.html +++ /dev/null @@ -1,158 +0,0 @@ -RawBodyParser | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Converts incoming HttpRequest to a Representation without any further parsing.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RdfPatcher.html b/5.x/docs/classes/RdfPatcher.html deleted file mode 100644 index 284d7d779..000000000 --- a/5.x/docs/classes/RdfPatcher.html +++ /dev/null @@ -1,173 +0,0 @@ -RdfPatcher | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Patcher that converts the representation data to a representation with an N3 store, does the patch using this store -and then converts the representation with store back to a representation with data which gets returned

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    - -
    patcher: RepresentationPatcher<RdfDatasetRepresentation>
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RdfStorePatcher.html b/5.x/docs/classes/RdfStorePatcher.html deleted file mode 100644 index 3c27b328e..000000000 --- a/5.x/docs/classes/RdfStorePatcher.html +++ /dev/null @@ -1,146 +0,0 @@ -RdfStorePatcher | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class RdfStorePatcherAbstract

    -
    -

    Applies a Patch on an N3.js Store.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RdfToQuadConverter.html b/5.x/docs/classes/RdfToQuadConverter.html deleted file mode 100644 index 9a3e23ee6..000000000 --- a/5.x/docs/classes/RdfToQuadConverter.html +++ /dev/null @@ -1,205 +0,0 @@ -RdfToQuadConverter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Converts most major RDF serializations to internal/quads.

    -

    Custom contexts can be defined to be used when parsing JSON-LD. -The keys of the object should be the URL of the context, -and the values the file path of the contexts to use when the JSON-LD parser would fetch the given context. -We use filepaths because embedding them directly into the configurations breaks Components.js.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    documentLoader: ContextDocumentLoader
    -
    - -
    inputTypes: Promise<ValuePreferences>
    -
    - -
    outputTypes: Promise<ValuePreferences>
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RdfValidator.html b/5.x/docs/classes/RdfValidator.html deleted file mode 100644 index 7573be1f0..000000000 --- a/5.x/docs/classes/RdfValidator.html +++ /dev/null @@ -1,166 +0,0 @@ -RdfValidator | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Validates a Representation by verifying if the data stream contains valid RDF data. -It does this by letting the stored RepresentationConverter convert the data.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ReadOnlyStore.html b/5.x/docs/classes/ReadOnlyStore.html deleted file mode 100644 index df872ea35..000000000 --- a/5.x/docs/classes/ReadOnlyStore.html +++ /dev/null @@ -1,276 +0,0 @@ -ReadOnlyStore | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ReadOnlyStore<T>

    -
    -

    Store that only allow read operations on the underlying source.

    -
    -
    -

    Type Parameters

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    source: T
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RecordObject.html b/5.x/docs/classes/RecordObject.html deleted file mode 100644 index d5e284388..000000000 --- a/5.x/docs/classes/RecordObject.html +++ /dev/null @@ -1,80 +0,0 @@ -RecordObject | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Helper class for instantiating multiple objects with Components.js. -See https://github.com/LinkedSoftwareDependencies/Components.js/issues/26

    -
    -
    -

    Hierarchy

    -
      -
    • RecordObject
    -
    -

    Implements

    -
      -
    • Record<string, any>
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Constructors

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RedirectHttpError.html b/5.x/docs/classes/RedirectHttpError.html deleted file mode 100644 index 6c3b086d8..000000000 --- a/5.x/docs/classes/RedirectHttpError.html +++ /dev/null @@ -1,259 +0,0 @@ -RedirectHttpError | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class RedirectHttpError<TCode>

    -
    -

    An error corresponding to a 3xx status code. -Includes the location it redirects to.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      TCode extends number = number

    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    cause?: unknown
    -
    - -
    details?: Dict<unknown>
    -
    - -
    errorCode: string
    -
    - -
    location: string
    -
    - -
    message: string
    -
    - -
    name: string
    -
    - -
    stack?: string
    -
    - -
    statusCode: TCode
    -
    - -
    prepareStackTrace?: ((err: Error, stackTraces: CallSite[]) => any)
    -
    -

    Type declaration

    -
    -
    - -
    stackTraceLimit: number
    -
    -

    Methods

    -
    - -
    -
    - -
      - -
    • -

      Create .stack property on a target object

      -
      -
      -

      Parameters

      -
        -
      • -
        targetObject: object
      • -
      • -
        Optional constructorOpt: Function
      -

      Returns void

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RedirectingErrorHandler.html b/5.x/docs/classes/RedirectingErrorHandler.html deleted file mode 100644 index 3f1578c0d..000000000 --- a/5.x/docs/classes/RedirectingErrorHandler.html +++ /dev/null @@ -1,147 +0,0 @@ -RedirectingErrorHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class RedirectingErrorHandler

    -
    -

    Internally we create redirects by throwing specific RedirectHttpErrors. -This Error handler converts those to RedirectResponseDescriptions that are used for output.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RedirectingHttpHandler.html b/5.x/docs/classes/RedirectingHttpHandler.html deleted file mode 100644 index 1fc6fe9c3..000000000 --- a/5.x/docs/classes/RedirectingHttpHandler.html +++ /dev/null @@ -1,206 +0,0 @@ -RedirectingHttpHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class RedirectingHttpHandler

    -
    -

    Handler that redirects paths matching given patterns -to their corresponding URL, substituting selected groups.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    - -
    redirects: { redirectPattern: string; regex: RegExp }[]
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        __namedParameters: HttpHandlerInput
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RedisLocker.html b/5.x/docs/classes/RedisLocker.html deleted file mode 100644 index 6031ce33d..000000000 --- a/5.x/docs/classes/RedisLocker.html +++ /dev/null @@ -1,446 +0,0 @@ -RedisLocker | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    A Redis Locker that can be used as both:

    -
      -
    • a Read Write Locker that uses a (single) Redis server to store the locks and counts.
    • -
    • a Resource Locker that uses a (single) Redis server to store the lock. -This solution should be process-safe. The only references to locks are string keys -derived from identifier paths.
    • -
    -

    The Read Write algorithm roughly goes as follows:

    -
      -
    • Acquire a read lock: allowed as long as there is no write lock. On acquiring the read counter goes up.
    • -
    • Acquire a write lock: allowed as long as there is no other write lock AND the read counter is 0.
    • -
    • Release a read lock: decreases the read counter with 1
    • -
    • Release a write lock: unlocks the write lock
    • -
    -

    The Resource locking algorithm uses a single mutex/lock.

    -

    All operations, such as checking for a write lock AND read count, are executed in a single Lua script. -These scripts are used by Redis as a single new command. -Redis executes its operations in a single thread, as such, each such operation can be considered atomic.

    -

    The operation to (un)lock will always resolve with either 1/OK/true if succeeded or 0/false if not succeeded. -Rejection with errors will be happen on actual failures. Retrying the (un)lock operations will be done by making -use of the LockUtils' retryFunctionUntil function.

    -
      -
    • -
    - -

    See

    - -
    -
    -

    Hierarchy

    -
      -
    • RedisLocker
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
      - -
    • -

      Creates a new RedisClient

      -
      -
      -

      Parameters

      -
        -
      • -
        redisClient: string = '127.0.0.1:6379'
        -

        Redis connection string of a standalone Redis node

        -
      • -
      • -
        attemptSettings: AttemptSettings = {}
        -

        Override default AttemptSettings

        -
      • -
      • -
        redisSettings: RedisSettings = ...
        -

        Addition settings used to create the Redis client or to interact with the Redis server

        -
      -

      Returns RedisLocker

    -
    -

    Properties

    -
    - -
    attemptSettings: Required<AttemptSettings>
    -
    - -
    finalized: boolean = false
    -
    - -
    logger: Logger = ...
    -
    - -
    namespacePrefix: string
    -
    - -
    redis: Redis
    -
    - -
    redisLock: RedisResourceLock
    -
    - -
    redisRw: RedisReadWriteLock
    -
    -

    Methods

    -
    - -
      - -
    • -

      Acquires a lock on the requested identifier. -The promise will resolve when the lock has been acquired.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
      - -
    • -

      Generate and return a RedisClient based on the provided string

      -
      -
      -

      Parameters

      -
        -
      • -
        redisClientString: string
        -

        A string that contains either a host address and a - port number like '127.0.0.1:6379' or just a port number like '6379'.

        -
      • -
      • -
        options: Omit<RedisSettings, "namespacePrefix">
      -

      Returns Redis

    -
    - -
    -
    - -
      - -
    • -

      Create a scoped Redis key for Read-Write locking.

      - -

      Returns

      A scoped Redis key that allows cleanup afterwards without affecting other keys.

      -
      -
      -

      Parameters

      -
      -

      Returns string

    -
    - -
      - -
    • -

      Create a scoped Redis key for Resource locking.

      - -

      Returns

      A scoped Redis key that allows cleanup afterwards without affecting other keys.

      -
      -
      -

      Parameters

      -
      -

      Returns string

    -
    - -
    -
    - -
      - -
    • -

      Releases a lock on the requested identifier. -The promise will resolve when the lock has been released. -In case there is no lock on the resource an error should be thrown.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Wrapper function for all (un)lock operations. If the fn() resolves to false (after applying -fromResp2ToBool, the result will be swallowed. When fn() resolves to true, this wrapper -will return true. Any error coming from fn() will be thrown.

      -
      -
      -

      Parameters

      -
        -
      • -
        fn: (() => Promise<RedisAnswer>)
        -

        The function reference to swallow false from.

        -
        -
          -
        • -
            -
          • (): Promise<RedisAnswer>
          • -
          • -

            Returns Promise<RedisAnswer>

      -

      Returns (() => Promise<unknown>)

      -
        -
      • -
          -
        • (): Promise<unknown>
        • -
        • -

          Wrapper function for all (un)lock operations. If the fn() resolves to false (after applying -fromResp2ToBool, the result will be swallowed. When fn() resolves to true, this wrapper -will return true. Any error coming from fn() will be thrown.

          -
          -

          Returns Promise<unknown>

    -
    - -
      - -
    • -

      Run the given function while the resource is locked. -The lock will be released when the (async) input function resolves. -This function should be used for operations that only require reading the resource.

      - -

      Returns

      A promise resolving when the lock is released.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T

      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
        -

        Identifier of the resource that needs to be locked.

        -
      • -
      • -
        whileLocked: (() => T | Promise<T>)
        -

        A function to execute while the resource is locked.

        -
        -
          -
        • -
            -
          • (): T | Promise<T>
          • -
          • -

            Returns T | Promise<T>

      -

      Returns Promise<T>

    -
    - -
      - -
    • -

      Run the given function while the resource is locked. -The lock will be released when the (async) input function resolves. -This function should be used for operations that could modify the resource.

      - -

      Returns

      A promise resolving when the lock is released.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T

      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
        -

        Identifier of the resource that needs to be locked.

        -
      • -
      • -
        whileLocked: (() => T | Promise<T>)
        -

        A function to execute while the resource is locked.

        -
        -
          -
        • -
            -
          • (): T | Promise<T>
          • -
          • -

            Returns T | Promise<T>

      -

      Returns Promise<T>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RegexRouterRule.html b/5.x/docs/classes/RegexRouterRule.html deleted file mode 100644 index 6156bda48..000000000 --- a/5.x/docs/classes/RegexRouterRule.html +++ /dev/null @@ -1,228 +0,0 @@ -RegexRouterRule | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Routes requests to a store based on the path of the identifier. -The identifier will be stripped of the base URI after which regexes will be used to find the correct store. -The trailing slash of the base URI will still be present so the first character a regex can match would be that /. -This way regexes such as /container/ can match containers in any position.

    -

    In case none of the regexes match an error will be thrown.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    base: string
    -
    - -
    rules: RegexRule[]
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RegexRule.html b/5.x/docs/classes/RegexRule.html deleted file mode 100644 index ab67f873a..000000000 --- a/5.x/docs/classes/RegexRule.html +++ /dev/null @@ -1,96 +0,0 @@ -RegexRule | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Utility class to easily configure Regex to ResourceStore mappings in the config files.

    -
    -
    -

    Hierarchy

    -
      -
    • RegexRule
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    regex: RegExp
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RegistrationHandler.html b/5.x/docs/classes/RegistrationHandler.html deleted file mode 100644 index 42db4381e..000000000 --- a/5.x/docs/classes/RegistrationHandler.html +++ /dev/null @@ -1,213 +0,0 @@ -RegistrationHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Supports registration based on the RegistrationManager behaviour.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    - -
    registrationManager: RegistrationManager
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RegistrationManager.html b/5.x/docs/classes/RegistrationManager.html deleted file mode 100644 index 47a535324..000000000 --- a/5.x/docs/classes/RegistrationManager.html +++ /dev/null @@ -1,216 +0,0 @@ -RegistrationManager | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Supports IDP registration and pod creation based on input parameters.

    -

    The above behaviour is combined in the two class functions. -validateInput will make sure all incoming data is correct and makes sense. -register will call all the correct handlers based on the requirements of the validated parameters.

    -
    -
    -

    Hierarchy

    -
      -
    • RegistrationManager
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    accountStore: AccountStore
    -
    - -
    baseUrl: string
    -
    - -
    identifierGenerator: IdentifierGenerator
    -
    - -
    logger: Logger = ...
    -
    - -
    ownershipValidator: OwnershipValidator
    -
    - -
    podManager: PodManager
    -
    - -
    webIdSuffix: string
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Makes sure the input conforms to the following requirements when relevant:

      -
        -
      • At least one option needs to be chosen.
      • -
      • In case a new WebID needs to be created, the other 2 steps will be set to true.
      • -
      • Valid email/WebID/password/podName when required.
      • -
      • Only create a root pod when allowed.
      • -
      - -

      Returns

      A cleaned up version of the input parameters. -Only (trimmed) parameters that are relevant to the registration procedure will be retained.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: Dict<unknown>
        -

        Input parameters for the registration procedure.

        -
      • -
      • -
        allowRoot: boolean = false
        -

        If creating a pod in the root container should be allowed.

        -
      -

      Returns RegistrationParams

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RelativePathInteractionRoute.html b/5.x/docs/classes/RelativePathInteractionRoute.html deleted file mode 100644 index fc6f9189f..000000000 --- a/5.x/docs/classes/RelativePathInteractionRoute.html +++ /dev/null @@ -1,101 +0,0 @@ -RelativePathInteractionRoute | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class RelativePathInteractionRoute

    -
    -

    A route that is relative to another route. -The relative path will be joined to the input base, -which can either be an absolute URL or an InteractionRoute of which the path will be used.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RepresentationConverter.html b/5.x/docs/classes/RepresentationConverter.html deleted file mode 100644 index 9bbe2a61a..000000000 --- a/5.x/docs/classes/RepresentationConverter.html +++ /dev/null @@ -1,152 +0,0 @@ -RepresentationConverter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class RepresentationConverterAbstract

    -
    -

    Converts a Representation from one media type to another, based on the given preferences.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RepresentationConvertingStore.html b/5.x/docs/classes/RepresentationConvertingStore.html deleted file mode 100644 index c583b10b1..000000000 --- a/5.x/docs/classes/RepresentationConvertingStore.html +++ /dev/null @@ -1,324 +0,0 @@ -RepresentationConvertingStore | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class RepresentationConvertingStore<T>

    -
    -

    Store that provides (optional) conversion of incoming and outgoing Representations.

    -
    -
    -

    Type Parameters

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    - -
    -
    - -
    logger: Logger = ...
    -
    - -
    metadataStrategy: AuxiliaryStrategy
    -
    - -
    -
    - -
    source: T
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RepresentationMetadata.html b/5.x/docs/classes/RepresentationMetadata.html deleted file mode 100644 index d9f24c4d7..000000000 --- a/5.x/docs/classes/RepresentationMetadata.html +++ /dev/null @@ -1,687 +0,0 @@ -RepresentationMetadata | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class RepresentationMetadata

    -
    -

    Stores the metadata triples and provides methods for easy access. -Most functions return the metadata object to allow for chaining.

    -
    -
    -

    Hierarchy

    -
      -
    • RepresentationMetadata
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    id: BlankNode | NamedNode<string>
    -
    - -
    logger: Logger = ...
    -
    - -
    store: Store<Quad, Quad, Quad, Quad>
    -
    -

    Accessors

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Helper function to simplify add/remove -Runs the given function on all predicate/object pairs, but only converts the predicate to a named node once.

      -
      -
      -

      Parameters

      -
        -
      • -
        predicate: NamedNode<string>
      • -
      • -
        object: MetadataValue
      • -
      • -
        forFn: ((pred: NamedNode<string>, obj: Literal | NamedNode<string>) => void)
        -
          -
        • -
            -
          • (pred: NamedNode<string>, obj: Literal | NamedNode<string>): void
          • -
          • -
            -

            Parameters

            -
              -
            • -
              pred: NamedNode<string>
            • -
            • -
              obj: Literal | NamedNode<string>
            -

            Returns void

      -

      Returns RepresentationMetadata

    -
    - -
      - -
    • -
      -

      Throws

      Error -If there are multiple matching values.

      - -

      Returns

      The corresponding value. Undefined if there is no match

      -
      -
      -

      Parameters

      -
        -
      • -
        predicate: NamedNode<string>
        -

        Predicate to get the value for.

        -
      • -
      • -
        Optional graph: MetadataGraph
        -

        Optional graph where the triple should be found.

        -
      -

      Returns undefined | Term

    -
    - -
      - -
    • -

      Finds all object values matching the given predicate and/or graph.

      - -

      Returns

      An array with all matches.

      -
      -
      -

      Parameters

      -
        -
      • -
        predicate: NamedNode<string>
        -

        Optional predicate to get the values for.

        -
      • -
      • -
        Optional graph: MetadataGraph
        -

        Optional graph where to get from.

        -
      -

      Returns Term[]

    -
    - -
    -
    - -
      - -
    • -

      Verifies if a specific triple can be found in the metadata. -Undefined parameters are interpreted as wildcards.

      -
      -
      -

      Parameters

      -
        -
      • -
        predicate: null | string | NamedNode<string> = null
      • -
      • -
        object: null | string | BlankNode | Literal | NamedNode<string> = null
      • -
      • -
        graph: null | MetadataGraph = null
      -

      Returns boolean

    -
    - -
      - -
    • -
      -

      Returns

      All matching metadata quads.

      -
      -
      -

      Parameters

      -
        -
      • -
        subject: null | string | BlankNode | NamedNode<string> = null
      • -
      • -
        predicate: null | NamedNode<string> = null
      • -
      • -
        object: null | string | BlankNode | Literal | NamedNode<string> = null
      • -
      • -
        graph: null | MetadataGraph = null
      -

      Returns Quad[]

    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        subject: string | BlankNode | NamedNode<string>
        -

        Subject of quad to remove.

        -
      • -
      • -
        predicate: NamedNode<string>
        -

        Predicate of quad to remove.

        -
      • -
      • -
        object: string | BlankNode | Literal | NamedNode<string>
        -

        Object of quad to remove.

        -
      • -
      • -
        Optional graph: MetadataGraph
        -

        Optional graph of quad to remove.

        -
      -

      Returns RepresentationMetadata

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RepresentationPatchHandler.html b/5.x/docs/classes/RepresentationPatchHandler.html deleted file mode 100644 index ffdf2b537..000000000 --- a/5.x/docs/classes/RepresentationPatchHandler.html +++ /dev/null @@ -1,175 +0,0 @@ -RepresentationPatchHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class RepresentationPatchHandler

    -
    -

    Handles a patch operation by getting the representation from the store, applying a RepresentationPatcher, -and then writing the result back to the store.

    -

    In case there is no original representation (the store throws a NotFoundHttpError), -the patcher is expected to create a new one.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RepresentationPatcher.html b/5.x/docs/classes/RepresentationPatcher.html deleted file mode 100644 index e88c966d3..000000000 --- a/5.x/docs/classes/RepresentationPatcher.html +++ /dev/null @@ -1,162 +0,0 @@ -RepresentationPatcher | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class RepresentationPatcher<T>Abstract

    -
    -

    Handles the patching of a specific Representation.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      T

    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RequestParser.html b/5.x/docs/classes/RequestParser.html deleted file mode 100644 index 380052dd6..000000000 --- a/5.x/docs/classes/RequestParser.html +++ /dev/null @@ -1,148 +0,0 @@ -RequestParser | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class RequestParserAbstract

    -
    -

    Converts an incoming HttpRequest to an Operation.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: HttpRequest
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ResetPasswordHandler.html b/5.x/docs/classes/ResetPasswordHandler.html deleted file mode 100644 index dcc86972d..000000000 --- a/5.x/docs/classes/ResetPasswordHandler.html +++ /dev/null @@ -1,233 +0,0 @@ -ResetPasswordHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ResetPasswordHandler

    -
    -

    Resets a password if a valid recordId is provided, -which should have been generated by a different handler.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    accountStore: AccountStore
    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ResetResponseDescription.html b/5.x/docs/classes/ResetResponseDescription.html deleted file mode 100644 index 6ab61e959..000000000 --- a/5.x/docs/classes/ResetResponseDescription.html +++ /dev/null @@ -1,102 +0,0 @@ -ResetResponseDescription | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ResetResponseDescription

    -
    -

    Corresponds to a 205 response.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    data?: Guarded<Readable>
    -
    - -
    -
    - -
    statusCode: number
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ResponseDescription.html b/5.x/docs/classes/ResponseDescription.html deleted file mode 100644 index 616659f89..000000000 --- a/5.x/docs/classes/ResponseDescription.html +++ /dev/null @@ -1,115 +0,0 @@ -ResponseDescription | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    The result of executing an operation.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    data?: Guarded<Readable>
    -
    - -
    -
    - -
    statusCode: number
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ResponseWriter.html b/5.x/docs/classes/ResponseWriter.html deleted file mode 100644 index 66a039843..000000000 --- a/5.x/docs/classes/ResponseWriter.html +++ /dev/null @@ -1,163 +0,0 @@ -ResponseWriter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ResponseWriterAbstract

    -
    -

    Writes the ResponseDescription to the HttpResponse.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RootFilePathHandler.html b/5.x/docs/classes/RootFilePathHandler.html deleted file mode 100644 index 20fab2a87..000000000 --- a/5.x/docs/classes/RootFilePathHandler.html +++ /dev/null @@ -1,181 +0,0 @@ -RootFilePathHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Uses a FileIdentifierMapper to generate a root file path variable based on the identifier. -Will throw an error if the resulting file path already exists.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RouterHandler.html b/5.x/docs/classes/RouterHandler.html deleted file mode 100644 index e0b820bdb..000000000 --- a/5.x/docs/classes/RouterHandler.html +++ /dev/null @@ -1,202 +0,0 @@ -RouterHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    An HttpHandler that checks if a given method and path are satisfied -and allows its handler to be executed if so.

    -

    If allowedMethods contains '*' it will match all methods.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    allMethods: boolean
    -
    - -
    allowedMethods: string[]
    -
    - -
    allowedPathNamesRegEx: RegExp[]
    -
    - -
    baseUrl: string
    -
    - -
    handler: HttpHandler
    -
    - -
    targetExtractor: TargetExtractor
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RouterRule.html b/5.x/docs/classes/RouterRule.html deleted file mode 100644 index e71a51832..000000000 --- a/5.x/docs/classes/RouterRule.html +++ /dev/null @@ -1,166 +0,0 @@ -RouterRule | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class RouterRuleAbstract

    -
    -

    Finds which store needs to be accessed for the given resource, -potentially based on the Representation of incoming data.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RoutingAuxiliaryIdentifierStrategy.html b/5.x/docs/classes/RoutingAuxiliaryIdentifierStrategy.html deleted file mode 100644 index 7d88bbce2..000000000 --- a/5.x/docs/classes/RoutingAuxiliaryIdentifierStrategy.html +++ /dev/null @@ -1,202 +0,0 @@ -RoutingAuxiliaryIdentifierStrategy | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class RoutingAuxiliaryIdentifierStrategy

    -
    -

    An AuxiliaryIdentifierStrategy that combines multiple AuxiliaryIdentifierStrategies into one. -Uses isAuxiliaryIdentifier to know which strategy to route to.

    -
    -
    -

    Hierarchy

    -
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Returns the identifier of the auxiliary resource corresponding to the given resource. -This does not guarantee that this auxiliary resource exists.

      -

      Should error if there are multiple results: see getAuxiliaryIdentifiers.

      - -

      Returns

      The ResourceIdentifier of the corresponding auxiliary resource.

      -
      -

      Returns never

    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Checks if the input identifier corresponds to an auxiliary resource. -This does not check if that auxiliary resource exists, -only if the identifier indicates that there could be an auxiliary resource there.

      - -

      Returns

      true if the input identifier points to an auxiliary resource.

      -
      -
      -

      Parameters

      -
      -

      Returns boolean

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RoutingAuxiliaryStrategy.html b/5.x/docs/classes/RoutingAuxiliaryStrategy.html deleted file mode 100644 index f664169c2..000000000 --- a/5.x/docs/classes/RoutingAuxiliaryStrategy.html +++ /dev/null @@ -1,301 +0,0 @@ -RoutingAuxiliaryStrategy | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class RoutingAuxiliaryStrategy

    -
    -

    An AuxiliaryStrategy that combines multiple AuxiliaryStrategies into one. -Uses isAuxiliaryIdentifier to know which strategy to call for which call.

    -

    addMetadata will either call all strategies if the input is the subject identifier, -or only the matching strategy if the input is an auxiliary identifier.

    -
    -
    -

    Hierarchy

    -
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Adds metadata related to this auxiliary resource, -in case this is required for this type of auxiliary resource. -The metadata that is added depends on the given identifier being an auxiliary or subject resource: -the metadata will be used to link to the other one, and potentially add extra typing info.

      -

      Used for: -Solid, §4.3.1: "For any defined auxiliary resource available for a given Solid resource, all representations of -that resource MUST include an HTTP Link header pointing to the location of each auxiliary resource." -https://solid.github.io/specification/protocol#auxiliary-resources-server

      -

      The above is an example of how that metadata would only be added in case the input is the subject identifier.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Whether the root storage container requires this auxiliary resource to be present. -If yes, this means they can't be deleted individually from such a container.

      -
      -
      -

      Parameters

      -
      -

      Returns boolean

    -
    - -
    -
    - -
      - -
    • -

      Validates if the representation contains valid data for an auxiliary resource. -Should throw an error in case the data is invalid.

      -
      -
      -

      Parameters

      -
        -
      • -
        representation: Representation
        -

        Representation of the auxiliary resource.

        -
      -

      Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/RoutingResourceStore.html b/5.x/docs/classes/RoutingResourceStore.html deleted file mode 100644 index 344163590..000000000 --- a/5.x/docs/classes/RoutingResourceStore.html +++ /dev/null @@ -1,285 +0,0 @@ -RoutingResourceStore | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class RoutingResourceStore

    -
    -

    Store that routes the incoming request to a specific store based on the stored ResourceRouter. -In case no store was found for one of the functions that take no data (GET/PATCH/DELETE), -a 404 will be thrown. In the other cases the error of the router will be thrown (which would probably be 400).

    -
    -
    -

    Hierarchy

    -
      -
    • RoutingResourceStore
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Check if a resource exists in this ResourceSet.

      - -

      Returns

      A promise resolving if the resource already exists.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<boolean>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/SafeErrorHandler.html b/5.x/docs/classes/SafeErrorHandler.html deleted file mode 100644 index f9106cf4c..000000000 --- a/5.x/docs/classes/SafeErrorHandler.html +++ /dev/null @@ -1,182 +0,0 @@ -SafeErrorHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Returns a simple text description of an error. -This class is a failsafe in case the wrapped error handler fails.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    errorHandler: ErrorHandler
    -
    - -
    logger: Logger = ...
    -
    - -
    showStackTrace: boolean
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/SeededPodInitializer.html b/5.x/docs/classes/SeededPodInitializer.html deleted file mode 100644 index c9e5d72d1..000000000 --- a/5.x/docs/classes/SeededPodInitializer.html +++ /dev/null @@ -1,175 +0,0 @@ -SeededPodInitializer | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class SeededPodInitializer

    -
    -

    Uses a RegistrationManager to initialize accounts and pods -for all seeded pods. Reads the pod settings from seededPodConfigJson.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    configFilePath: null | string
    -
    - -
    logger: Logger = ...
    -
    - -
    registrationManager: RegistrationManager
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/SequenceHandler.html b/5.x/docs/classes/SequenceHandler.html deleted file mode 100644 index d144acb82..000000000 --- a/5.x/docs/classes/SequenceHandler.html +++ /dev/null @@ -1,181 +0,0 @@ -SequenceHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class SequenceHandler<TIn, TOut>

    -
    -

    A composite handler that will try to run all supporting handlers sequentially -and return the value of the last supported handler. -The canHandle check of this handler will always succeed.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      TIn = void

    • -
    • -

      TOut = void

    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    handlers: AsyncHandler<TIn, TOut>[]
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: TIn
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: TIn
        -

        Input that needs to be handled.

        -
      -

      Returns Promise<undefined | TOut>

    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: TIn
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<undefined | TOut>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ServerInitializer.html b/5.x/docs/classes/ServerInitializer.html deleted file mode 100644 index adf2371b7..000000000 --- a/5.x/docs/classes/ServerInitializer.html +++ /dev/null @@ -1,189 +0,0 @@ -ServerInitializer | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Creates and starts an HTTP server.

    -
    -
    -

    Hierarchy

    -
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    port: number
    -
    - -
    server?: Server
    -
    - -
    serverFactory: HttpServerFactory
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/SetupHandler.html b/5.x/docs/classes/SetupHandler.html deleted file mode 100644 index 1791d2ba3..000000000 --- a/5.x/docs/classes/SetupHandler.html +++ /dev/null @@ -1,251 +0,0 @@ -SetupHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    On POST requests, runs an initializer and/or performs a registration step, both optional.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    initializer?: Initializer
    -
    - -
    logger: Logger = ...
    -
    - -
    registrationManager?: RegistrationManager
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Call the initializer. -Errors if no initializer was defined.

      -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Register a user based on the given input. -Errors if no registration manager is defined.

      -
      -
      -

      Parameters

      -
        -
      • -
        json: Dict<any>
      -

      Returns Promise<Record<string, any>>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/SetupHttpHandler.html b/5.x/docs/classes/SetupHttpHandler.html deleted file mode 100644 index 910ee3589..000000000 --- a/5.x/docs/classes/SetupHttpHandler.html +++ /dev/null @@ -1,241 +0,0 @@ -SetupHttpHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Handles the initial setup of a server. -Will capture all requests until setup is finished, -this to prevent accidentally running unsafe servers.

    -

    GET requests will return the view template which should contain the setup information for the user. -POST requests will be sent to the InteractionHandler. -After successfully completing a POST request this handler will disable itself and become unreachable. -All other methods will be rejected.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    - -
    -
    - -
    logger: Logger = ...
    -
    - -
    storage: KeyValueStorage<string, boolean>
    -
    - -
    storageKey: string
    -
    - -
    templateEngine: TemplateEngine<Dict<any>>
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ShorthandExtractor.html b/5.x/docs/classes/ShorthandExtractor.html deleted file mode 100644 index 929ffbaab..000000000 --- a/5.x/docs/classes/ShorthandExtractor.html +++ /dev/null @@ -1,150 +0,0 @@ -ShorthandExtractor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ShorthandExtractorAbstract

    -
    -

    A handler that computes a specific value from a given map of values.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: Shorthand
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: Shorthand
        -

        Input that needs to be handled.

        -
      -

      Returns Promise<unknown>

    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: Shorthand
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<unknown>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ShorthandResolver.html b/5.x/docs/classes/ShorthandResolver.html deleted file mode 100644 index dbc047694..000000000 --- a/5.x/docs/classes/ShorthandResolver.html +++ /dev/null @@ -1,150 +0,0 @@ -ShorthandResolver | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ShorthandResolverAbstract

    -
    -

    Converts a key/value object, extracted from the CLI or passed as a parameter, -into a new key/value object where the keys are variables defined in the Components.js configuration. -The resulting values are the values that should be assigned to those variables.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: Shorthand
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: Shorthand
        -

        Input that needs to be handled.

        -
      -

      Returns Promise<VariableBindings>

    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: Shorthand
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<VariableBindings>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/SingleRootIdentifierStrategy.html b/5.x/docs/classes/SingleRootIdentifierStrategy.html deleted file mode 100644 index 7d493a2d4..000000000 --- a/5.x/docs/classes/SingleRootIdentifierStrategy.html +++ /dev/null @@ -1,187 +0,0 @@ -SingleRootIdentifierStrategy | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class SingleRootIdentifierStrategy

    -
    -

    An IdentifierStrategy that assumes there is only 1 root and all other identifiers are made by appending to that root.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    baseUrl: string
    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/SlugParser.html b/5.x/docs/classes/SlugParser.html deleted file mode 100644 index af6a0b65c..000000000 --- a/5.x/docs/classes/SlugParser.html +++ /dev/null @@ -1,173 +0,0 @@ -SlugParser | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Converts the contents of the slug header to metadata.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/SparqlDataAccessor.html b/5.x/docs/classes/SparqlDataAccessor.html deleted file mode 100644 index 51885d753..000000000 --- a/5.x/docs/classes/SparqlDataAccessor.html +++ /dev/null @@ -1,550 +0,0 @@ -SparqlDataAccessor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Stores all data and metadata of resources in a SPARQL backend. -Communication is done by sending SPARQL queries. -Queries are constructed in such a way to keep everything consistent, -such as updating containment triples and deleting old data when it is overwritten.

    -

    Since metadata is hidden, no containment triples are stored for metadata files.

    -

    All input container metadata is stored in its metadata identifier. -The containment triples are stored in the graph corresponding to the actual identifier -so those don't get overwritten.

    -
    -
    -

    Hierarchy

    -
      -
    • SparqlDataAccessor
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    endpoint: string
    -
    - -
    fetcher: SparqlEndpointFetcher
    -
    - -
    generator: SparqlGenerator
    -
    - -
    identifierStrategy: IdentifierStrategy
    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Returns metadata for all resources in the requested container. -This should not be all metadata of those resources (but it can be), -but instead the main metadata you want to show in situations -where all these resources are presented simultaneously. -Generally this would be metadata that is present for all of these resources, -such as resource type or last modified date.

      -

      It can be safely assumed that the incoming identifier will always correspond to a container.

      -
      -
      -

      Parameters

      -
      -

      Returns AsyncIterableIterator<RepresentationMetadata>

    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Creates the name for the metadata of a resource.

      -
      -
      -

      Parameters

      -
        -
      • -
        name: NamedNode<string>
        -

        Name of the (non-metadata) resource.

        -
      -

      Returns NamedNode<string>

    -
    - -
      - -
    • -

      Helper function to get named nodes corresponding to the identifier and its parent container. -In case of a root container only the name will be returned.

      -
      -
      -

      Parameters

      -
      -

      Returns { name: NamedNode<string>; parent?: NamedNode<string> }

      -
        -
      • -
        name: NamedNode<string>
      • -
      • -
        Optional parent?: NamedNode<string>
    -
    - -
    -
    - -
      - -
    • -

      Sends a SPARQL CONSTRUCT query to the endpoint and returns a stream of quads.

      -
      -
      -

      Parameters

      -
        -
      • -
        sparqlQuery: ConstructQuery
        -

        Query to execute.

        -
      -

      Returns Promise<Guarded<Readable>>

    -
    - -
      - -
    • -

      Sends a SPARQL update query to the stored endpoint.

      -
      -
      -

      Parameters

      -
        -
      • -
        sparqlQuery: Update
        -

        Query to send.

        -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Creates a CONSTRUCT query that returns all quads contained within a single resource.

      -
      -
      -

      Parameters

      -
        -
      • -
        name: NamedNode<string>
        -

        Name of the resource to query.

        -
      -

      Returns ConstructQuery

    -
    - -
      - -
    • -

      Creates a query that deletes everything related to the given name.

      -
      -
      -

      Parameters

      -
        -
      • -
        name: NamedNode<string>
        -

        Name of resource to delete.

        -
      • -
      • -
        Optional parent: NamedNode<string>
        -

        Parent of the resource to delete so the containment triple can be removed (unless root).

        -
      -

      Returns Update

    -
    - -
      - -
    • -

      Creates an update query that overwrites the data and metadata of a resource. -If there are no triples we assume it's a container (so don't overwrite the main graph with containment triples).

      -
      -
      -

      Parameters

      -
        -
      • -
        name: NamedNode<string>
        -

        Name of the resource to update.

        -
      • -
      • -
        metadata: RepresentationMetadata
        -

        New metadata of the resource.

        -
      • -
      • -
        Optional parent: NamedNode<string>
        -

        Name of the parent to update the containment triples.

        -
      • -
      • -
        Optional triples: Quad[]
        -

        New data of the resource.

        -
      -

      Returns Update

    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Helper function for creating SPARQL update queries. -Creates an operation for deleting all triples in a graph.

      -
      -
      -

      Parameters

      -
        -
      • -
        name: NamedNode<string>
        -

        Name of the graph to delete.

        -
      -

      Returns InsertDeleteOperation

    -
    - -
      - -
    • -

      Helper function for creating SPARQL update queries. -Creates a Graph selector with the given triples.

      -
      -
      -

      Parameters

      -
        -
      • -
        name: NamedNode<string>
        -

        Name of the graph.

        -
      • -
      • -
        triples: Quad[]
        -

        Triples/triple patterns to select.

        -
      -

      Returns GraphQuads

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/SparqlUpdateBodyParser.html b/5.x/docs/classes/SparqlUpdateBodyParser.html deleted file mode 100644 index 6f886d333..000000000 --- a/5.x/docs/classes/SparqlUpdateBodyParser.html +++ /dev/null @@ -1,159 +0,0 @@ -SparqlUpdateBodyParser | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class SparqlUpdateBodyParser

    -
    -

    BodyParser that supports application/sparql-update content. -Will convert the incoming update string to algebra in a SparqlUpdatePatch.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        __namedParameters: BodyParserArgs
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/SparqlUpdateModesExtractor.html b/5.x/docs/classes/SparqlUpdateModesExtractor.html deleted file mode 100644 index a3530a4f0..000000000 --- a/5.x/docs/classes/SparqlUpdateModesExtractor.html +++ /dev/null @@ -1,277 +0,0 @@ -SparqlUpdateModesExtractor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class SparqlUpdateModesExtractor

    -
    -

    Generates permissions for a SPARQL DELETE/INSERT body. -Updates with only an INSERT can be done with just append permissions, -while DELETEs require write permissions as well.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    resourceSet: ResourceSet
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/SparqlUpdatePatcher.html b/5.x/docs/classes/SparqlUpdatePatcher.html deleted file mode 100644 index 803f117b2..000000000 --- a/5.x/docs/classes/SparqlUpdatePatcher.html +++ /dev/null @@ -1,282 +0,0 @@ -SparqlUpdatePatcher | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Supports application/sparql-update PATCH requests on RDF resources.

    -

    Only DELETE/INSERT updates without variables are supported.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    engine: QueryEngine
    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Checks if the composite update only contains supported update components.

      -
      -
      -

      Parameters

      -
        -
      • -
        op: CompositeUpdate
      -

      Returns void

    -
    - -
      - -
    • -

      Checks if the input DELETE/INSERT is supported. -This means: no GRAPH statements, no DELETE WHERE containing terms of type Variable.

      -
      -
      -

      Parameters

      -
        -
      • -
        op: DeleteInsert
      -

      Returns void

    -
    - -
      - -
    • -

      Checks if the input operation is of a supported type (DELETE/INSERT or composite of those)

      -
      -
      -

      Parameters

      -
        -
      • -
        op: Operation
      -

      Returns void

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/StaticAssetHandler.html b/5.x/docs/classes/StaticAssetHandler.html deleted file mode 100644 index d59a5edf3..000000000 --- a/5.x/docs/classes/StaticAssetHandler.html +++ /dev/null @@ -1,247 +0,0 @@ -StaticAssetHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Handler that serves static resources on specific paths. -Relative file paths are assumed to be relative to cwd. -Relative file paths can be preceded by @css:, e.g. @css:foo/bar, -in case they need to be relative to the module root.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
      - -
    • -

      Creates a handler for the provided static resources.

      -
      -
      -

      Parameters

      -
        -
      • -
        assets: Record<string, string>
        -

        A mapping from URL paths to paths, - where URL paths ending in a slash are interpreted as entire folders.

        -
      • -
      • -
        baseUrl: string
      • -
      • -
        options: { expires?: number } = {}
        -

        Cache expiration time in seconds.

        -
        -
          -
        • -
          Optional expires?: number
      -

      Returns StaticAssetHandler

    -
    -

    Properties

    -
    - -
    expires: number
    -
    - -
    logger: Logger = ...
    -
    - -
    mappings: Record<string, string>
    -
    - -
    pathMatcher: RegExp
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        __namedParameters: HttpHandlerInput
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/StaticHandler.html b/5.x/docs/classes/StaticHandler.html deleted file mode 100644 index e1cce27b6..000000000 --- a/5.x/docs/classes/StaticHandler.html +++ /dev/null @@ -1,170 +0,0 @@ -StaticHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class StaticHandler<T>

    -
    -

    A handler that always resolves and always returns the stored value. -Will return undefined if no value is stored.

    -

    The generic type extends any due to Components.js requirements.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      T extends any = void

    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    value?: T
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: any
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: any
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<T>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/StaticThrowHandler.html b/5.x/docs/classes/StaticThrowHandler.html deleted file mode 100644 index 164e6874d..000000000 --- a/5.x/docs/classes/StaticThrowHandler.html +++ /dev/null @@ -1,158 +0,0 @@ -StaticThrowHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Utility handler that can handle all input and always throws the given error.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    error: HttpError<number>
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: any
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: any
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<never>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/SubdomainExtensionBasedMapper.html b/5.x/docs/classes/SubdomainExtensionBasedMapper.html deleted file mode 100644 index a03977a54..000000000 --- a/5.x/docs/classes/SubdomainExtensionBasedMapper.html +++ /dev/null @@ -1,506 +0,0 @@ -SubdomainExtensionBasedMapper | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class SubdomainExtensionBasedMapper

    -
    -

    Extends the functionality of an ExtensionBasedMapper to support identifiers containing subdomains. -This is mostly only relevant in case you want to support multiple pods with subdomain identifiers -in a single ResourceStore.

    -

    When converting to/from file paths, the subdomain is interpreted as a folder in the rootFilePath. -The rest of the path is then interpreted relative to that folder. -E.g. http://alice.test.com/foo results in the relative path /alice/foo.

    -

    In case there is no subdomain in the URL, the baseSubdomain parameter is used instead. -E.g., if the baseSubdomain is "www", http://test.com/foo would result in the relative path /www/foo. -This means that there is no identifier that maps to the rootFilePath itself. -To prevent the possibility of 2 identifiers linking to the same file, -identifiers containing the default subdomain are rejected. -E.g., http://www.test.com/foo would result in a 403, even if http://test.com/foo exists.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    baseParts: { rest: string; scheme: string }
    -
    -

    Type declaration

    -
      -
    • -
      rest: string
    • -
    • -
      scheme: string
    -
    - -
    baseRequestURI: string
    -
    - -
    baseSubdomain: string
    -
    - -
    logger: Logger = ...
    -
    - -
    regex: RegExp
    -
    - -
    rootFilepath: string
    -
    - -
    unknownMediaTypeExtension: "unknown" = 'unknown'
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Maps the given document identifier to a file path, -possibly making alterations to the direct translation -(for instance, based on its content type)). -Determines the content type if none was provided.

      - -

      Returns

      A ResourceLink with all the necessary metadata.

      -
      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
        -

        The input identifier.

        -
      • -
      • -
        filePath: string
        -

        The direct translation of the identifier onto the file path.

        -
      • -
      • -
        Optional contentType: string
        -

        The content-type provided with the request.

        -
      -

      Returns Promise<ResourceLink>

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/SubdomainIdentifierGenerator.html b/5.x/docs/classes/SubdomainIdentifierGenerator.html deleted file mode 100644 index 56157b84a..000000000 --- a/5.x/docs/classes/SubdomainIdentifierGenerator.html +++ /dev/null @@ -1,123 +0,0 @@ -SubdomainIdentifierGenerator | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class SubdomainIdentifierGenerator

    -
    -

    Generates identifiers by using the name as a subdomain on the base URL. -Non-alphanumeric characters will be replaced with -.

    -
    -
    -

    Hierarchy

    -
      -
    • SubdomainIdentifierGenerator
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    baseParts: { rest: string; scheme: string }
    -
    -

    Type declaration

    -
      -
    • -
      rest: string
    • -
    • -
      scheme: string
    -
    -

    Methods

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/SubdomainIdentifierStrategy.html b/5.x/docs/classes/SubdomainIdentifierStrategy.html deleted file mode 100644 index 55547b04d..000000000 --- a/5.x/docs/classes/SubdomainIdentifierStrategy.html +++ /dev/null @@ -1,194 +0,0 @@ -SubdomainIdentifierStrategy | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class SubdomainIdentifierStrategy

    -
    -

    An IdentifierStrategy that interprets all subdomains of the given base URL as roots.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    baseUrl: string
    -
    - -
    logger: Logger = ...
    -
    - -
    regex: RegExp
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/SuffixAuxiliaryIdentifierStrategy.html b/5.x/docs/classes/SuffixAuxiliaryIdentifierStrategy.html deleted file mode 100644 index e7aa8ab14..000000000 --- a/5.x/docs/classes/SuffixAuxiliaryIdentifierStrategy.html +++ /dev/null @@ -1,192 +0,0 @@ -SuffixAuxiliaryIdentifierStrategy | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class SuffixAuxiliaryIdentifierStrategy

    -
    -

    Helper class that uses a suffix to determine if a resource is an auxiliary resource or not. -Simple string matching is used, so the dot needs to be included if needed, e.g. ".acl".

    -
    -
    -

    Hierarchy

    -
      -
    • SuffixAuxiliaryIdentifierStrategy
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    suffix: string
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Checks if the input identifier corresponds to an auxiliary resource. -This does not check if that auxiliary resource exists, -only if the identifier indicates that there could be an auxiliary resource there.

      - -

      Returns

      true if the input identifier points to an auxiliary resource.

      -
      -
      -

      Parameters

      -
      -

      Returns boolean

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/SuffixIdentifierGenerator.html b/5.x/docs/classes/SuffixIdentifierGenerator.html deleted file mode 100644 index 8d903e73c..000000000 --- a/5.x/docs/classes/SuffixIdentifierGenerator.html +++ /dev/null @@ -1,116 +0,0 @@ -SuffixIdentifierGenerator | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class SuffixIdentifierGenerator

    -
    -

    Generates identifiers by appending the name to a stored base identifier. -Non-alphanumeric characters will be replaced with -.

    -
    -
    -

    Hierarchy

    -
      -
    • SuffixIdentifierGenerator
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    base: string
    -
    -

    Methods

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/TargetExtractor.html b/5.x/docs/classes/TargetExtractor.html deleted file mode 100644 index bbc4836d2..000000000 --- a/5.x/docs/classes/TargetExtractor.html +++ /dev/null @@ -1,157 +0,0 @@ -TargetExtractor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class TargetExtractorAbstract

    -
    -

    Extracts a ResourceIdentifier from an incoming HttpRequest.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/TemplatedPodGenerator.html b/5.x/docs/classes/TemplatedPodGenerator.html deleted file mode 100644 index c6c80ef16..000000000 --- a/5.x/docs/classes/TemplatedPodGenerator.html +++ /dev/null @@ -1,184 +0,0 @@ -TemplatedPodGenerator | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class TemplatedPodGenerator

    -
    -

    Creates a new ResourceStore when creating a pod based on a Components.js configuration.

    -

    Part of the dynamic pod creation.

    -
      -
    1. It calls a VariableHandler to add necessary variable values. -E.g. setting the base url variable for components.js to the pod identifier.
    2. -
    3. It filters/cleans the input agent values using VariableHandlers
    4. -
    5. It calls a ComponentsJsFactory with the variables and template location to instantiate a new ResourceStore.
    6. -
    7. It stores these values in the configuration storage, which is used as a permanent storage for pod configurations.
    8. -
    - -

    See

    ConfigPodManager, ConfigPodInitializer, BaseUrlRouterRule

    -
    -
    -

    Hierarchy

    -
      -
    • TemplatedPodGenerator
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    baseUrl: string
    -
    - -
    configStorage: KeyValueStorage<string, unknown>
    -
    - -
    configTemplatePath: string
    -
    - -
    logger: Logger = ...
    -
    - -
    storeFactory: ComponentsJsFactory
    -
    - -
    variableHandler: VariableHandler
    -
    -

    Methods

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/TemplatedResourcesGenerator.html b/5.x/docs/classes/TemplatedResourcesGenerator.html deleted file mode 100644 index 90394ec0d..000000000 --- a/5.x/docs/classes/TemplatedResourcesGenerator.html +++ /dev/null @@ -1,290 +0,0 @@ -TemplatedResourcesGenerator | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class TemplatedResourcesGenerator

    -
    -

    Generates resources by making use of a template engine. -The template folder structure will be kept. -Folders will be interpreted as containers and files as documents. -A FileIdentifierMapper will be used to generate identifiers that correspond to the relative structure.

    -

    A relative templateFolder is resolved relative to cwd, -unless it's preceded by @css:, e.g. @css:foo/bar.

    -
    -
    -

    Hierarchy

    -
      -
    • TemplatedResourcesGenerator
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    - -
    metadataStrategy: AuxiliaryStrategy
    -
    - -
    -
    - -
    templateEngine: TemplateEngine<Dict<any>>
    -
    - -
    templateExtension: string
    -
    - -
    templateFolder: string
    -
    -

    Methods

    -
    - -
      - -
    • -

      Generates resources with the given options. -The output Map should be sorted so that containers always appear before their contents.

      - -

      Returns

      A map where the keys are the identifiers and the values the corresponding representations to store.

      -
      -
      -

      Parameters

      -
        -
      • -
        location: ResourceIdentifier
        -

        Base identifier.

        -
      • -
      • -
        options: Dict<string>
        -

        Options that can be used when generating resources.

        -
      -

      Returns AsyncIterable<Resource>

    -
    - -
    -
    - -
      - -
    • -

      Generates a Resource object for the given ResourceLink. -In the case of documents the corresponding template will be used. -If a ResourceLink of metadata is provided the corresponding data will be added as metadata.

      -
      -
      -

      Parameters

      -
        -
      • -
        link: TemplateResourceLink
      • -
      • -
        options: Dict<string>
      • -
      • -
        Optional metaLink: TemplateResourceLink
      -

      Returns AsyncIterable<Resource>

    -
    - -
      - -
    • -

      Generates TemplateResourceLinks for each entry in the given folder -and combines the results so resources and their metadata are grouped together.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<Record<string, { link: TemplateResourceLink; meta?: TemplateResourceLink }>>

    -
    - -
      - -
    • -

      Creates a read stream from the file and applies the template if necessary.

      -
      -
      -

      Parameters

      -
        -
      • -
        link: TemplateResourceLink
      • -
      • -
        options: Dict<string>
      -

      Returns Promise<Guarded<Readable>>

    -
    - -
    -
    - -
      - -
    • -

      Creates a TemplateResourceLink for the given filePath. -The identifier will be based on the file path stripped from the template extension, -but the filePath parameter will still point to the original file.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<TemplateResourceLink>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/TokenOwnershipValidator.html b/5.x/docs/classes/TokenOwnershipValidator.html deleted file mode 100644 index 9d0bd915b..000000000 --- a/5.x/docs/classes/TokenOwnershipValidator.html +++ /dev/null @@ -1,258 +0,0 @@ -TokenOwnershipValidator | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class TokenOwnershipValidator

    -
    -

    Validates ownership of a WebId by seeing if a specific triple can be added. -expiration parameter is how long the token should be valid in minutes.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    expiration: number
    -
    - -
    logger: Logger = ...
    -
    - -
    storage: ExpiringStorage<string, string>
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: { webId: string }
        -

        Input that could potentially be handled.

        -
        -
          -
        • -
          webId: string
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -
      -

      Parameters

      -
        -
      • -
        __namedParameters: { webId: string }
        -

        Input that needs to be handled.

        -
        -
          -
        • -
          webId: string
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: { webId: string }
        -

        Input data that will be handled if it can be handled.

        -
        -
          -
        • -
          webId: string
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Fetches data from the WebID to determine if the token is present.

      -
      -
      -

      Parameters

      -
        -
      • -
        webId: string
      • -
      • -
        token: string
      -

      Returns Promise<boolean>

    -
    - -
      - -
    • -

      Throws an error containing the description of which triple is needed for verification.

      -
      -
      -

      Parameters

      -
        -
      • -
        webId: string
      • -
      • -
        token: string
      -

      Returns never

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/TypedRepresentationConverter.html b/5.x/docs/classes/TypedRepresentationConverter.html deleted file mode 100644 index 99a6a069e..000000000 --- a/5.x/docs/classes/TypedRepresentationConverter.html +++ /dev/null @@ -1,166 +0,0 @@ -TypedRepresentationConverter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class TypedRepresentationConverterAbstract

    -
    -

    A RepresentationConverter that allows requesting the supported types.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/UnauthorizedHttpError.html b/5.x/docs/classes/UnauthorizedHttpError.html deleted file mode 100644 index 2b39569cc..000000000 --- a/5.x/docs/classes/UnauthorizedHttpError.html +++ /dev/null @@ -1,207 +0,0 @@ -UnauthorizedHttpError | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class UnauthorizedHttpError

    -
    -

    An error thrown when an agent is not authorized.

    -
    -
    -

    Hierarchy

    -
      -
    • BaseHttpError -
        -
      • UnauthorizedHttpError
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    cause?: unknown
    -
    - -
    details?: Dict<unknown>
    -
    - -
    errorCode: string
    -
    - -
    message: string
    -
    - -
    name: string
    -
    - -
    stack?: string
    -
    - -
    statusCode: 401
    -
    - -
    isInstance: ((error: any) => error is HttpError<401>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (error: any): error is HttpError<401>
      • -
      • -

        Checks if the given error is an instance of this class.

        -
        -
        -

        Parameters

        -
          -
        • -
          error: any
        -

        Returns error is HttpError<401>

    -
    - -
    statusCode: 401
    -

    The status code corresponding to this error class.

    -
    -
    - -
    uri: NamedNode<string>
    -

    A unique URI identifying this error class.

    -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Returns quads representing metadata relevant to this error.

      -
      -
      -

      Parameters

      -
        -
      • -
        subject: string | Quad_Subject
      -

      Returns Quad[]

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/UnionCredentialsExtractor.html b/5.x/docs/classes/UnionCredentialsExtractor.html deleted file mode 100644 index f5d1c5c3b..000000000 --- a/5.x/docs/classes/UnionCredentialsExtractor.html +++ /dev/null @@ -1,205 +0,0 @@ -UnionCredentialsExtractor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class UnionCredentialsExtractor

    -
    -

    Combines the results of several CredentialsExtractors into one. -If multiple of these extractors return a value for the same key, -the last result will be used.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: HttpRequest
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/UnionHandler.html b/5.x/docs/classes/UnionHandler.html deleted file mode 100644 index 36931f8fe..000000000 --- a/5.x/docs/classes/UnionHandler.html +++ /dev/null @@ -1,247 +0,0 @@ -UnionHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class UnionHandler<T>Abstract

    -
    -

    Utility handler that allows combining the results of multiple handlers into one. -Will run the handlers and then call the abstract combine function with the results, -which then generates the handler's output.

    -
    -
    -

    Type Parameters

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
      - -
    • -

      Creates a new UnionHandler.

      -

      When requireAll is false or ignoreErrors is true, -the length of the input to combine can vary; -otherwise, it is exactly the number of handlers.

      -
      -
      -

      Type Parameters

      -
      -
      -

      Parameters

      -
        -
      • -
        handlers: T[]
        -

        The handlers whose output is to be combined.

        -
      • -
      • -
        requireAll: boolean = false
        -

        If true, will fail if any of the handlers do not support the input. - If false, only the handlers that support the input will be called; - will fail only if none of the handlers can handle the input.

        -
      • -
      • -
        ignoreErrors: boolean = !requireAll
        -

        If true, ignores handlers that fail by omitting their output; - if false, fails when any handlers fail.

        -
      -

      Returns UnionHandler<T>

    -
    -

    Properties

    -
    - -
    handlers: T[]
    -
    - -
    ignoreErrors: boolean
    -
    - -
    requireAll: boolean
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if all handlers can handle the input. -If not, throw an error based on the errors of the failed handlers.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: InType<T>
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: InType<T>
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Combines the results of the handlers into a single output.

      -
      -
      -

      Parameters

      -
        -
      • -
        results: Awaited<ReturnType<T["handle"]>>[]
      -

      Returns Promise<Awaited<ReturnType<T["handle"]>>>

    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: InType<T>
        -

        Input that needs to be handled.

        -
      -

      Returns Promise<Awaited<ReturnType<T["handle"]>>>

    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: InType<T>
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<Awaited<ReturnType<T["handle"]>>>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/UnionPermissionReader.html b/5.x/docs/classes/UnionPermissionReader.html deleted file mode 100644 index c7a16b6e0..000000000 --- a/5.x/docs/classes/UnionPermissionReader.html +++ /dev/null @@ -1,242 +0,0 @@ -UnionPermissionReader | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class UnionPermissionReader

    -
    -

    Combines the results of multiple PermissionReaders. -Every permission in every credential type is handled according to the rule false > true > undefined.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    handlers: PermissionReader[]
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/UnsecureConstantCredentialsExtractor.html b/5.x/docs/classes/UnsecureConstantCredentialsExtractor.html deleted file mode 100644 index a4942573b..000000000 --- a/5.x/docs/classes/UnsecureConstantCredentialsExtractor.html +++ /dev/null @@ -1,177 +0,0 @@ -UnsecureConstantCredentialsExtractor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class UnsecureConstantCredentialsExtractor

    -
    -

    Credentials extractor that authenticates a constant agent -(useful for development or debugging purposes).

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    credentials: Partial<Record<CredentialGroup, Credential>>
    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: HttpRequest
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/UnsecureWebIdExtractor.html b/5.x/docs/classes/UnsecureWebIdExtractor.html deleted file mode 100644 index 3f09ee065..000000000 --- a/5.x/docs/classes/UnsecureWebIdExtractor.html +++ /dev/null @@ -1,158 +0,0 @@ -UnsecureWebIdExtractor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class UnsecureWebIdExtractor

    -
    -

    Credentials extractor which simply interprets the contents of the Authorization header as a WebID.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        __namedParameters: HttpRequest
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/UnsecureWebSocketsProtocol.html b/5.x/docs/classes/UnsecureWebSocketsProtocol.html deleted file mode 100644 index 48da1d091..000000000 --- a/5.x/docs/classes/UnsecureWebSocketsProtocol.html +++ /dev/null @@ -1,207 +0,0 @@ -UnsecureWebSocketsProtocol | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class UnsecureWebSocketsProtocol

    -
    -

    Provides live update functionality following -the Solid WebSockets API Spec solid-0.1

    -
    -
    -

    Hierarchy

    -
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    listeners: Set<WebSocketListener> = ...
    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: { upgradeRequest: HttpRequest; webSocket: WebSocket }
        -

        Input that could potentially be handled.

        -
        -
          -
        • -
          upgradeRequest: HttpRequest
        • -
        • -
          webSocket: WebSocket
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: { upgradeRequest: HttpRequest; webSocket: WebSocket }
        -

        Input that needs to be handled.

        -
        -
          -
        • -
          upgradeRequest: HttpRequest
        • -
        • -
          webSocket: WebSocket
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: { upgradeRequest: HttpRequest; webSocket: WebSocket }
        -

        Input data that will be handled if it can be handled.

        -
        -
          -
        • -
          upgradeRequest: HttpRequest
        • -
        • -
          webSocket: WebSocket
      -

      Returns Promise<void>

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/UnsupportedAsyncHandler.html b/5.x/docs/classes/UnsupportedAsyncHandler.html deleted file mode 100644 index 0665eae5a..000000000 --- a/5.x/docs/classes/UnsupportedAsyncHandler.html +++ /dev/null @@ -1,151 +0,0 @@ -UnsupportedAsyncHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class UnsupportedAsyncHandler

    -
    -

    Handler that does not support any input and will always throw an error.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    errorMessage?: string
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -

      Returns Promise<never>

    -
    - -
    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: any
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<never>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/UnsupportedMediaTypeHttpError.html b/5.x/docs/classes/UnsupportedMediaTypeHttpError.html deleted file mode 100644 index f2f957f31..000000000 --- a/5.x/docs/classes/UnsupportedMediaTypeHttpError.html +++ /dev/null @@ -1,207 +0,0 @@ -UnsupportedMediaTypeHttpError | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class UnsupportedMediaTypeHttpError

    -
    -

    An error thrown when the media type of incoming data is not supported by a parser.

    -
    -
    -

    Hierarchy

    -
      -
    • BaseHttpError -
        -
      • UnsupportedMediaTypeHttpError
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    cause?: unknown
    -
    - -
    details?: Dict<unknown>
    -
    - -
    errorCode: string
    -
    - -
    message: string
    -
    - -
    name: string
    -
    - -
    stack?: string
    -
    - -
    statusCode: 415
    -
    - -
    isInstance: ((error: any) => error is HttpError<415>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (error: any): error is HttpError<415>
      • -
      • -

        Checks if the given error is an instance of this class.

        -
        -
        -

        Parameters

        -
          -
        • -
          error: any
        -

        Returns error is HttpError<415>

    -
    - -
    statusCode: 415
    -

    The status code corresponding to this error class.

    -
    -
    - -
    uri: NamedNode<string>
    -

    A unique URI identifying this error class.

    -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Returns quads representing metadata relevant to this error.

      -
      -
      -

      Parameters

      -
        -
      • -
        subject: string | Quad_Subject
      -

      Returns Quad[]

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/ValidatingDataAccessor.html b/5.x/docs/classes/ValidatingDataAccessor.html deleted file mode 100644 index dbc785666..000000000 --- a/5.x/docs/classes/ValidatingDataAccessor.html +++ /dev/null @@ -1,299 +0,0 @@ -ValidatingDataAccessor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ValidatingDataAccessor

    -
    -

    A ValidatingDataAccessor wraps a DataAccessor such that the data stream is validated while being written. -An AtomicDataAccessor can be used to prevent data being written in case validation fails.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    - -
    validator: Validator
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Returns metadata for all resources in the requested container. -This should not be all metadata of those resources (but it can be), -but instead the main metadata you want to show in situations -where all these resources are presented simultaneously. -Generally this would be metadata that is present for all of these resources, -such as resource type or last modified date.

      -

      It can be safely assumed that the incoming identifier will always correspond to a container.

      -
      -
      -

      Parameters

      -
      -

      Returns AsyncIterableIterator<RepresentationMetadata>

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/Validator.html b/5.x/docs/classes/Validator.html deleted file mode 100644 index 2c53cbcd4..000000000 --- a/5.x/docs/classes/Validator.html +++ /dev/null @@ -1,149 +0,0 @@ -Validator | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class ValidatorAbstract

    -
    -

    Generic interface for classes that validate Representations in some way.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/VariableHandler.html b/5.x/docs/classes/VariableHandler.html deleted file mode 100644 index f8bee9f07..000000000 --- a/5.x/docs/classes/VariableHandler.html +++ /dev/null @@ -1,168 +0,0 @@ -VariableHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class VariableHandlerAbstract

    -
    -

    Updates the variables stored in the given agent. -Can be used to set variables that are required for the Components.js instantiation -but which should not be provided by the request. -E.g.: The exact file path (when required) should be determined by the server to prevent abuse.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/VariableSetter.html b/5.x/docs/classes/VariableSetter.html deleted file mode 100644 index 8cd2be5f8..000000000 --- a/5.x/docs/classes/VariableSetter.html +++ /dev/null @@ -1,197 +0,0 @@ -VariableSetter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    A VariableHandler that will set the given variable to the given value, -unless there already is a value for the variable and override is false.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    override: boolean
    -
    - -
    value: string
    -
    - -
    variable: string
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/VoidLocker.html b/5.x/docs/classes/VoidLocker.html deleted file mode 100644 index c9b77c468..000000000 --- a/5.x/docs/classes/VoidLocker.html +++ /dev/null @@ -1,189 +0,0 @@ -VoidLocker | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    A ReadWriteLocker where the locks expire after a given time.

    -
    -
    -

    Hierarchy

    -
      -
    • VoidLocker
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
      - -
    • -

      As withReadLock but the locked function gets called with a maintainLock callback function -to reset the lock expiration every time it is called. -The resulting promise will reject once the lock expires.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T

      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
        -

        Identifier of the resource that needs to be locked.

        -
      • -
      • -
        whileLocked: ((maintainLock: (() => void)) => T | Promise<T>)
        -

        A function to execute while the resource is locked. -Receives a callback as input parameter to maintain the lock.

        -
        -
          -
        • -
            -
          • (maintainLock: (() => void)): T | Promise<T>
          • -
          • -
            -

            Parameters

            -
              -
            • -
              maintainLock: (() => void)
              -
                -
              • -
                  -
                • (): void
                • -
                • -

                  Returns void

            -

            Returns T | Promise<T>

      -

      Returns Promise<T>

    -
    - -
      - -
    • -

      As withWriteLock but the locked function gets called with a maintainLock -callback function to reset the lock expiration every time it is called. -The resulting promise will reject once the lock expires.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T

      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
        -

        Identifier of the resource that needs to be locked.

        -
      • -
      • -
        whileLocked: ((maintainLock: (() => void)) => T | Promise<T>)
        -

        A function to execute while the resource is locked. -Receives a callback as input parameter to maintain the lock.

        -
        -
          -
        • -
            -
          • (maintainLock: (() => void)): T | Promise<T>
          • -
          • -
            -

            Parameters

            -
              -
            • -
              maintainLock: (() => void)
              -
                -
              • -
                  -
                • (): void
                • -
                • -

                  Returns void

            -

            Returns T | Promise<T>

      -

      Returns Promise<T>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/VoidLogger.html b/5.x/docs/classes/VoidLogger.html deleted file mode 100644 index f41ab4038..000000000 --- a/5.x/docs/classes/VoidLogger.html +++ /dev/null @@ -1,225 +0,0 @@ -VoidLogger | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    A logger that does nothing on a log message.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Log the given message at the given level. -If the internal level is higher than the given level, the message may be voided.

      -
      -
      -

      Parameters

      -
        -
      • -
        level: "error" | "warn" | "info" | "verbose" | "debug" | "silly"
        -

        The level to log at.

        -
      • -
      • -
        message: string
        -

        The message to log.

        -
      • -
      • -
        Optional meta: any
        -

        Optional metadata to include in the log message.

        -
      -

      Returns VoidLogger

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/VoidLoggerFactory.html b/5.x/docs/classes/VoidLoggerFactory.html deleted file mode 100644 index b7263db0a..000000000 --- a/5.x/docs/classes/VoidLoggerFactory.html +++ /dev/null @@ -1,109 +0,0 @@ -VoidLoggerFactory | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    A factory that always returns VoidLogger, which does nothing on log messages.

    -
    -
    -

    Hierarchy

    -
      -
    • VoidLoggerFactory
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: VoidLogger = ...
    -
    -

    Methods

    -
    - -
      - -
    • -

      Create a logger instance for the given label.

      -
      -
      -

      Parameters

      -
        -
      • -
        label: string
        -

        A label that is used to identify the given logger.

        -
      -

      Returns VoidLogger

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/WacAllowMetadataWriter.html b/5.x/docs/classes/WacAllowMetadataWriter.html deleted file mode 100644 index 84f1494aa..000000000 --- a/5.x/docs/classes/WacAllowMetadataWriter.html +++ /dev/null @@ -1,196 +0,0 @@ -WacAllowMetadataWriter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class WacAllowMetadataWriter

    -
    -

    Add the necessary WAC-Allow header values. -Solid, §10.1: "Servers exposing client’s access privileges on a resource URL MUST advertise -by including the WAC-Allow HTTP header in the response of HTTP HEAD and GET requests." -https://solid.github.io/specification/protocol#web-access-control

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/WaterfallHandler.html b/5.x/docs/classes/WaterfallHandler.html deleted file mode 100644 index 8e8ca4efb..000000000 --- a/5.x/docs/classes/WaterfallHandler.html +++ /dev/null @@ -1,193 +0,0 @@ -WaterfallHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class WaterfallHandler<TIn, TOut>

    -
    -

    A composite handler that tries multiple handlers one by one -until it finds a handler that supports the input. -The handlers will be checked in the order they appear in the input array, -allowing for more fine-grained handlers to check before catch-all handlers.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      TIn

    • -
    • -

      TOut

    -
    -

    Hierarchy

    -
      -
    • WaterfallHandler
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    handlers: AsyncHandler<TIn, TOut>[]
    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if any of the stored handlers can handle the given input.

      - -

      Returns

      A promise resolving if at least 1 handler supports to input, or rejecting if none do.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: TIn
        -

        The data that would need to be handled.

        -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Finds a handler that supports the given input and then lets it handle the given data.

      - -

      Returns

      A promise corresponding to the handle call of a handler that supports the input. -It rejects if no handlers support the given data.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: TIn
        -

        The data that needs to be handled.

        -
      -

      Returns Promise<TOut>

    -
    - -
      - -
    • -

      Identical to handleSafe but optimized for composite -by only needing 1 canHandle call on members.

      - -

      Returns

      A promise corresponding to the handle call of a handler that supports the input. -It rejects if no handlers support the given data.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: TIn
        -

        The input data.

        -
      -

      Returns Promise<TOut>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/WebAclAuxiliaryReader.html b/5.x/docs/classes/WebAclAuxiliaryReader.html deleted file mode 100644 index dac656190..000000000 --- a/5.x/docs/classes/WebAclAuxiliaryReader.html +++ /dev/null @@ -1,218 +0,0 @@ -WebAclAuxiliaryReader | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class WebAclAuxiliaryReader

    -
    -

    Determines the permission for ACL auxiliary resources. -This is done by looking for control permissions on the subject resource.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    aclStrategy: AuxiliaryStrategy
    -
    - -
    logger: Logger = ...
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/WebAclMetadataCollector.html b/5.x/docs/classes/WebAclMetadataCollector.html deleted file mode 100644 index a0ec211ad..000000000 --- a/5.x/docs/classes/WebAclMetadataCollector.html +++ /dev/null @@ -1,147 +0,0 @@ -WebAclMetadataCollector | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class WebAclMetadataCollector

    -
    -

    Indicates which acl permissions are available on the requested resource. -Only adds public and agent permissions for HEAD/GET requests.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/WebAclReader.html b/5.x/docs/classes/WebAclReader.html deleted file mode 100644 index 5fea9f64c..000000000 --- a/5.x/docs/classes/WebAclReader.html +++ /dev/null @@ -1,354 +0,0 @@ -WebAclReader | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Finds the permissions of a resource as defined in the corresponding ACL resource. -Does not make any deductions such as checking parent containers for create permissions -or applying control permissions for ACL resources.

    -

    Specific access checks are done by the provided AccessChecker.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    accessChecker: AccessChecker
    -
    - -
    aclStore: ResourceStore
    -
    - -
    -
    - -
    identifierStrategy: IdentifierStrategy
    -
    - -
    logger: Logger = ...
    -
    - -
    resourceSet: ResourceSet
    -
    -

    Methods

    -
    - -
    -
    - -
      - -
    • -

      Determines the available permissions for the given credentials. -Will deny all permissions if credentials are not defined

      -
      -
      -

      Parameters

      -
        -
      • -
        acl: Store<Quad, Quad, Quad, Quad>
        -

        Store containing all relevant authorization triples.

        -
      • -
      • -
        Optional credential: Credential
        -

        Credentials to find the permissions for.

        -
      -

      Returns Promise<AclPermission>

    -
    - -
      - -
    • -

      Extracts all rules from the store that are relevant for the given target, -based on either the acl:accessTo or acl:default predicates.

      - -

      Returns

      A store containing the relevant triples for the given target.

      -
      -
      -

      Parameters

      -
        -
      • -
        store: Store<Quad, Quad, Quad, Quad>
        -

        Store to filter.

        -
      • -
      • -
        target: string
        -

        The identifier of which the acl rules need to be known.

        -
      • -
      • -
        directAcl: boolean
        -

        If the store contains triples from the direct acl resource of the target or not. - Determines if acl:accessTo or acl:default are used.

        -
      -

      Returns Promise<Store<Quad, Quad, Quad, Quad>>

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/WebIdAdapter.html b/5.x/docs/classes/WebIdAdapter.html deleted file mode 100644 index a237ccd61..000000000 --- a/5.x/docs/classes/WebIdAdapter.html +++ /dev/null @@ -1,269 +0,0 @@ -WebIdAdapter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    This Adapter redirects the find call to its source adapter. -In case no client data was found in the source for the given WebId, -this class will do an HTTP GET request to that WebId. -If a valid solid:oidcRegistration triple is found there, -that data will be returned instead.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    - -
    logger: Logger = ...
    -
    - -
    name: string
    -
    - -
    source: Adapter
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Parses RDF data found at a client WebID.

      -
      -
      -

      Parameters

      -
        -
      • -
        data: string
        -

        Raw data from the WebID.

        -
      • -
      • -
        id: string
        -

        The actual WebID.

        -
      • -
      • -
        response: Response
        -

        Response object from the request.

        -
      -

      Returns Promise<AdapterPayload>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/WebIdAdapterFactory.html b/5.x/docs/classes/WebIdAdapterFactory.html deleted file mode 100644 index 7ec2ac0f3..000000000 --- a/5.x/docs/classes/WebIdAdapterFactory.html +++ /dev/null @@ -1,124 +0,0 @@ -WebIdAdapterFactory | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    A factory that generates an Adapter to be used by the IDP to persist information.

    -

    The oidc-provider library will call the relevant functions when it needs to find/create/delete metadata. -For a full explanation of how these functions work and what is expected, -have a look at https://github.com/panva/node-oidc-provider/blob/main/example/my_adapter.js

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    -
    - -
    -
    -

    Methods

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/WebSocketAdvertiser.html b/5.x/docs/classes/WebSocketAdvertiser.html deleted file mode 100644 index 703cfa2e2..000000000 --- a/5.x/docs/classes/WebSocketAdvertiser.html +++ /dev/null @@ -1,168 +0,0 @@ -WebSocketAdvertiser | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Handler that advertises a WebSocket through the Updates-Via header.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    socketUrl: string
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -
      -

      Parameters

      -
        -
      • -
        __namedParameters: { response: ServerResponse }
        -

        Input that needs to be handled.

        -
        -
          -
        • -
          response: ServerResponse
      -

      Returns Promise<void>

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/WebSocketHandler.html b/5.x/docs/classes/WebSocketHandler.html deleted file mode 100644 index feef5b0a6..000000000 --- a/5.x/docs/classes/WebSocketHandler.html +++ /dev/null @@ -1,163 +0,0 @@ -WebSocketHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class WebSocketHandlerAbstract

    -
    -

    A WebSocketHandler handles the communication with multiple WebSockets

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: { upgradeRequest: HttpRequest; webSocket: WebSocket }
        -

        Input that could potentially be handled.

        -
        -
          -
        • -
          upgradeRequest: HttpRequest
        • -
        • -
          webSocket: WebSocket
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: { upgradeRequest: HttpRequest; webSocket: WebSocket }
        -

        Input that needs to be handled.

        -
        -
          -
        • -
          upgradeRequest: HttpRequest
        • -
        • -
          webSocket: WebSocket
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: { upgradeRequest: HttpRequest; webSocket: WebSocket }
        -

        Input data that will be handled if it can be handled.

        -
        -
          -
        • -
          upgradeRequest: HttpRequest
        • -
        • -
          webSocket: WebSocket
      -

      Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/WebSocketServerFactory.html b/5.x/docs/classes/WebSocketServerFactory.html deleted file mode 100644 index 60592844e..000000000 --- a/5.x/docs/classes/WebSocketServerFactory.html +++ /dev/null @@ -1,121 +0,0 @@ -WebSocketServerFactory | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class WebSocketServerFactory

    -
    -

    Factory that adds WebSocket functionality to an existing server

    -
    -
    -

    Hierarchy

    -
      -
    • WebSocketServerFactory
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    baseServerFactory: HttpServerFactory
    -
    - -
    webSocketHandler: WebSocketHandler
    -
    -

    Methods

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/WinstonLogger.html b/5.x/docs/classes/WinstonLogger.html deleted file mode 100644 index 4c2375fe4..000000000 --- a/5.x/docs/classes/WinstonLogger.html +++ /dev/null @@ -1,244 +0,0 @@ -WinstonLogger | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    A WinstonLogger implements the Logger interface using a given winston logger.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Log the given message at the given level. -If the internal level is higher than the given level, the message may be voided.

      -
      -
      -

      Parameters

      -
        -
      • -
        level: "error" | "warn" | "info" | "verbose" | "debug" | "silly"
        -

        The level to log at.

        -
      • -
      • -
        message: string
        -

        The message to log.

        -
      • -
      • -
        Optional meta: any
        -

        Optional metadata to include in the log message.

        -
      -

      Returns WinstonLogger

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/WinstonLoggerFactory.html b/5.x/docs/classes/WinstonLoggerFactory.html deleted file mode 100644 index 3a3c01393..000000000 --- a/5.x/docs/classes/WinstonLoggerFactory.html +++ /dev/null @@ -1,143 +0,0 @@ -WinstonLoggerFactory | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class WinstonLoggerFactory

    -
    -

    Uses the winston library to create loggers for the given logging level. -By default, it will print to the console with colorized logging levels.

    -

    This creates instances of WinstonLogger.

    -
    -
    -

    Hierarchy

    -
      -
    • WinstonLoggerFactory
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    level: string
    -
    -

    Methods

    -
    - -
    -
    - -
      - -
    • -

      Create a logger instance for the given label.

      -
      -
      -

      Parameters

      -
        -
      • -
        label: string
        -

        A label that is used to identify the given logger.

        -
      -

      Returns Logger

    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/WorkerManager.html b/5.x/docs/classes/WorkerManager.html deleted file mode 100644 index f17d0284e..000000000 --- a/5.x/docs/classes/WorkerManager.html +++ /dev/null @@ -1,158 +0,0 @@ -WorkerManager | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Spawns the necessary workers when starting in multithreaded mode.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    clusterManager: ClusterManager
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: void
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/WrappedExpiringReadWriteLocker.html b/5.x/docs/classes/WrappedExpiringReadWriteLocker.html deleted file mode 100644 index 25e8469f1..000000000 --- a/5.x/docs/classes/WrappedExpiringReadWriteLocker.html +++ /dev/null @@ -1,257 +0,0 @@ -WrappedExpiringReadWriteLocker | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class WrappedExpiringReadWriteLocker

    -
    -

    Wraps around an existing ReadWriteLocker and adds expiration logic to prevent locks from getting stuck.

    -
    -
    -

    Hierarchy

    -
      -
    • WrappedExpiringReadWriteLocker
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    expiration: number
    -
    - -
    -
    - -
    logger: Logger = ...
    -
    -

    Methods

    -
    - -
      - -
    • -

      Creates a Promise that either resolves the given input function or rejects if time runs out, -whichever happens first. The input function can reset the timer by calling the maintainLock function -it receives. The ResourceIdentifier is only used for logging.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T

      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
      • -
      • -
        whileLocked: ((maintainLock: (() => void)) => T | Promise<T>)
        -
          -
        • -
            -
          • (maintainLock: (() => void)): T | Promise<T>
          • -
          • -
            -

            Parameters

            -
              -
            • -
              maintainLock: (() => void)
              -
                -
              • -
                  -
                • (): void
                • -
                • -

                  Returns void

            -

            Returns T | Promise<T>

      -

      Returns Promise<T>

    -
    - -
      - -
    • -

      As withReadLock but the locked function gets called with a maintainLock callback function -to reset the lock expiration every time it is called. -The resulting promise will reject once the lock expires.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T

      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
        -

        Identifier of the resource that needs to be locked.

        -
      • -
      • -
        whileLocked: ((maintainLock: (() => void)) => T | Promise<T>)
        -

        A function to execute while the resource is locked. -Receives a callback as input parameter to maintain the lock.

        -
        -
          -
        • -
            -
          • (maintainLock: (() => void)): T | Promise<T>
          • -
          • -
            -

            Parameters

            -
              -
            • -
              maintainLock: (() => void)
              -
                -
              • -
                  -
                • (): void
                • -
                • -

                  Returns void

            -

            Returns T | Promise<T>

      -

      Returns Promise<T>

    -
    - -
      - -
    • -

      As withWriteLock but the locked function gets called with a maintainLock -callback function to reset the lock expiration every time it is called. -The resulting promise will reject once the lock expires.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T

      -
      -

      Parameters

      -
        -
      • -
        identifier: ResourceIdentifier
        -

        Identifier of the resource that needs to be locked.

        -
      • -
      • -
        whileLocked: ((maintainLock: (() => void)) => T | Promise<T>)
        -

        A function to execute while the resource is locked. -Receives a callback as input parameter to maintain the lock.

        -
        -
          -
        • -
            -
          • (maintainLock: (() => void)): T | Promise<T>
          • -
          • -
            -

            Parameters

            -
              -
            • -
              maintainLock: (() => void)
              -
                -
              • -
                  -
                • (): void
                • -
                • -

                  Returns void

            -

            Returns T | Promise<T>

      -

      Returns Promise<T>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/WrappedExpiringStorage.html b/5.x/docs/classes/WrappedExpiringStorage.html deleted file mode 100644 index 9d004ca18..000000000 --- a/5.x/docs/classes/WrappedExpiringStorage.html +++ /dev/null @@ -1,364 +0,0 @@ -WrappedExpiringStorage | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class WrappedExpiringStorage<TKey, TValue>

    -
    -

    A storage that wraps around another storage and expires resources based on the given (optional) expiry date. -Will delete expired entries when trying to get their value. -Has a timer that will delete all expired data every hour (default value).

    -
    -
    -

    Type Parameters

    -
      -
    • -

      TKey

    • -
    • -

      TValue

    -
    -

    Hierarchy

    -
      -
    • WrappedExpiringStorage
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: Logger = ...
    -
    - -
    source: KeyValueStorage<TKey, Expires<TValue>>
    -
    - -
    timer: Timeout
    -
    -

    Methods

    -
    - -
      - -
    • -

      Deletes the value stored for the given key.

      - -

      Returns

      If there was a value to delete.

      -
      -
      -

      Parameters

      -
        -
      • -
        key: TKey
        -

        Key to delete.

        -
      -

      Returns Promise<boolean>

    -
    - -
      - -
    • -

      An iterable of entries in the storage.

      -
      -

      Returns AsyncIterableIterator<[TKey, TValue]>

    -
    - -
    -
    - -
      - -
    • -

      Returns the value stored for the given identifier. -undefined if no value is stored.

      -
      -
      -

      Parameters

      -
        -
      • -
        key: TKey
      -

      Returns Promise<undefined | TValue>

    -
    - -
      - -
    • -

      Tries to get the data for the given key. -In case the data exists but has expired, -it will be deleted and undefined will be returned instead.

      -
      -
      -

      Parameters

      -
        -
      • -
        key: TKey
      -

      Returns Promise<undefined | TValue>

    -
    - -
      - -
    • -

      Checks if there is a value stored for the given key.

      -
      -
      -

      Parameters

      -
        -
      • -
        key: TKey
      -

      Returns Promise<boolean>

    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Creates a new object where the expires field is a Date instead of a string.

      -
      -
      -

      Parameters

      -
      -

      Returns { expires?: Date; payload: TValue }

      -
        -
      • -
        Optional expires?: Date
      • -
      • -
        payload: TValue
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/WrappedSetMultiMap.html b/5.x/docs/classes/WrappedSetMultiMap.html deleted file mode 100644 index f85f04bae..000000000 --- a/5.x/docs/classes/WrappedSetMultiMap.html +++ /dev/null @@ -1,437 +0,0 @@ -WrappedSetMultiMap | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class WrappedSetMultiMap<TKey, TVal>

    -
    -

    A SetMultiMap that uses an internal Map based on the provided constructor.

    -

    In case no input constructor is provided, the default Map implementation will be used.

    -

    It is required that the value type of this map is not Set or any extension of Set, -otherwise the set and add functions wil break.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      TKey

    • -
    • -

      TVal

    -
    -

    Hierarchy

    -
    -
    -

    Implements

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Accessors

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
      - -
    • -
      -

      Type Parameters

      -
        -
      • -

        TKey

      • -
      • -

        TVal

      -
      -

      Parameters

      -
        -
      • -
        mapConstructor: (new () => Map<any, any>) = Map
        -

        Will be used to instantiate the internal Map.

        -
        -
          -
        • -
            -
          • new (): Map<any, any>
          • -
          • -

            Returns Map<any, any>

      • -
      • -
        Optional iterable: Iterable<readonly [TKey, TVal | ReadonlySet<TVal>]>
        -

        Entries to add to the map.

        -
      -

      Returns WrappedSetMultiMap<TKey, TVal>

    -
    -

    Properties

    -
    - -
    [toStringTag]: "WrappedSetMultiMap" = 'WrappedSetMultiMap'
    -
    - -
    count: number
    -
    - -
    map: Map<TKey, Set<TVal>>
    -
    -

    Accessors

    -
    - -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Iterates over all key/value bindings in this Map.

      -
      -

      Returns IterableIterator<[TKey, TVal]>

    -
    - -
    -
    - -
      - -
    • -

      Returns a Readonly Map representation of this Map.

      -
      -

      Returns ReadonlyMap<TKey, ReadonlySet<TVal>>

    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Deletes the given key/value binding from the Map.

      -
      -
      -

      Parameters

      -
        -
      • -
        key: TKey
      • -
      • -
        value: TVal
      -

      Returns boolean

    -
    - -
      - -
    • -

      Iterates over all distinct keys in this Map.

      -
      -

      Returns IterableIterator<TKey>

    -
    - -
      - -
    • -

      Iterates over all key/value bindings in this Map.

      -
      -

      Returns IterableIterator<[TKey, TVal]>

    -
    - -
      - -
    • -

      Iterates over all distinct keys in this Map, together with a Set of their values.

      -
      -

      Returns IterableIterator<[TKey, ReadonlySet<TVal>]>

    -
    - -
      - -
    • -

      Loops over all key/value bindings.

      -
      -
      -

      Parameters

      -
        -
      • -
        callbackfn: ((value: TVal, key: TKey, map: SetMultiMap<TKey, TVal>) => void)
        -
          -
        • -
            -
          • (value: TVal, key: TKey, map: SetMultiMap<TKey, TVal>): void
          • -
          • -
            -

            Parameters

            -
              -
            • -
              value: TVal
            • -
            • -
              key: TKey
            • -
            • -
              map: SetMultiMap<TKey, TVal>
            -

            Returns void

      • -
      • -
        Optional thisArg: any
      -

      Returns void

    -
    - -
      - -
    • -

      Returns all values stored for the given key. -Returns undefined if there are no values for this key.

      -
      -
      -

      Parameters

      -
        -
      • -
        key: TKey
      -

      Returns undefined | ReadonlySet<TVal>

    -
    - -
    -
    - -
      - -
    • -

      Returns true if this key/value binding exists in the Map.

      -
      -
      -

      Parameters

      -
        -
      • -
        key: TKey
      • -
      • -
        value: TVal
      -

      Returns boolean

    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Iterates over all distinct keys and returns their Set of values.

      -
      -

      Returns IterableIterator<ReadonlySet<TVal>>

    -
    - -
      - -
    • -

      Iterates over all values in this Map.

      -
      -

      Returns IterableIterator<TVal>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/WrappingLogger.html b/5.x/docs/classes/WrappingLogger.html deleted file mode 100644 index a740ac04b..000000000 --- a/5.x/docs/classes/WrappingLogger.html +++ /dev/null @@ -1,245 +0,0 @@ -WrappingLogger | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Implements BaseLogger around a SimpleLogger, -which can be swapped out a runtime.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    logger: SimpleLogger
    -
    -

    Methods

    -
    - -
    -
    - -
    -
    - -
    -
    - -
      - -
    • -

      Log the given message at the given level. -If the internal level is higher than the given level, the message may be voided.

      -
      -
      -

      Parameters

      -
        -
      • -
        level: "error" | "warn" | "info" | "verbose" | "debug" | "silly"
        -

        The level to log at.

        -
      • -
      • -
        message: string
        -

        The message to log.

        -
      • -
      • -
        Optional meta: LogMetadata
        -

        Optional metadata to include in the log message.

        -
      -

      Returns WrappingLogger

    -
    - -
    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/WwwAuthMetadataWriter.html b/5.x/docs/classes/WwwAuthMetadataWriter.html deleted file mode 100644 index b7e37aca2..000000000 --- a/5.x/docs/classes/WwwAuthMetadataWriter.html +++ /dev/null @@ -1,180 +0,0 @@ -WwwAuthMetadataWriter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Class WwwAuthMetadataWriter

    -
    -

    Adds the WWW-Authenticate header with the injected value in case the response status code is 401.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    auth: string
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<void>

    -
    - -
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/YargsCliExtractor.html b/5.x/docs/classes/YargsCliExtractor.html deleted file mode 100644 index b034bcea2..000000000 --- a/5.x/docs/classes/YargsCliExtractor.html +++ /dev/null @@ -1,199 +0,0 @@ -YargsCliExtractor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Parses CLI args using the yargs library. -Specific settings can be enabled through the provided options.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    yargsArgOptions: Record<string, Options>
    -
    - -
    yargvOptions: CliOptions
    -
    -

    Methods

    -
    - -
      - -
    • -

      Checks if the input can be handled by this class. -If it cannot handle the input, rejects with an error explaining why.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: CliArgv
        -

        Input that could potentially be handled.

        -
      -

      Returns Promise<void>

    -
    - -
      - -
    • -

      Creates the yargs Argv object based on the input CLI argv.

      -
      -
      -

      Parameters

      -
        -
      • -
        argv: readonly string[]
      -

      Returns Argv<{}>

    -
    - -
      - -
    • -

      Handles the given input. This may only be called if canHandle did not reject. -When unconditionally calling both in sequence, consider handleSafe instead.

      - -

      Returns

      A promise resolving when handling is finished.

      -
      -
      -

      Parameters

      -
        -
      • -
        argv: readonly string[]
        -

        Input that needs to be handled.

        -
      -

      Returns Promise<{ $0: string; _: (string | number)[]; [argName: string]: unknown }>

    -
    - -
      - -
    • -

      Helper function that first runs canHandle followed by handle. -Throws the error of canHandle if the data cannot be handled, -or returns the result of handle otherwise.

      - -

      Returns

      A promise resolving if the input can be handled, rejecting with an Error if not.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: CliArgv
        -

        Input data that will be handled if it can be handled.

        -
      -

      Returns Promise<Shorthand>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/classes/YargsParameter.html b/5.x/docs/classes/YargsParameter.html deleted file mode 100644 index 742b6e7f6..000000000 --- a/5.x/docs/classes/YargsParameter.html +++ /dev/null @@ -1,104 +0,0 @@ -YargsParameter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    This class exists as wrapper around a yargs Options object, -thereby allowing us to create these in a Components.js configuration.

    -

    Format details can be found at https://yargs.js.org/docs/#api-reference-optionskey-opt

    -
    -
    -

    Hierarchy

    -
      -
    • YargsParameter
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Constructors

    -
    - -
      - -
    • -
      -

      Range

      -
      -

      Parameters

      -
        -
      • -
        name: string
        -

        Name of the parameter. Corresponds to the first parameter passed to the yargs.options function.

        -
      • -
      • -
        options: Record<string, any>
        -

        Options for a single parameter that should be parsed.

        -
      -

      Returns YargsParameter

    -
    -

    Properties

    -
    - -
    name: string
    -
    - -
    options: Options
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/enums/AccessMode.html b/5.x/docs/enums/AccessMode.html deleted file mode 100644 index 0c801861f..000000000 --- a/5.x/docs/enums/AccessMode.html +++ /dev/null @@ -1,91 +0,0 @@ -AccessMode | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Enumeration AccessMode

    -
    -

    Different modes that require permission.

    -
    -
    -
    -
    - -
    -
    -

    Enumeration Members

    -
    -
    -

    Enumeration Members

    -
    - -
    append: "append"
    -
    - -
    create: "create"
    -
    - -
    delete: "delete"
    -
    - -
    read: "read"
    -
    - -
    write: "write"
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/enums/AclMode.html b/5.x/docs/enums/AclMode.html deleted file mode 100644 index b8c99f253..000000000 --- a/5.x/docs/enums/AclMode.html +++ /dev/null @@ -1,60 +0,0 @@ -AclMode | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Enumeration AclMode

    -
    -
    -
    - -
    -
    -

    Enumeration Members

    -
    -
    -

    Enumeration Members

    -
    - -
    control: "control"
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/enums/CredentialGroup.html b/5.x/docs/enums/CredentialGroup.html deleted file mode 100644 index 36d2b3c84..000000000 --- a/5.x/docs/enums/CredentialGroup.html +++ /dev/null @@ -1,70 +0,0 @@ -CredentialGroup | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Enumeration CredentialGroup

    -
    -

    Specific groups that can have credentials.

    -
    -
    -
    -
    - -
    -
    -

    Enumeration Members

    -
    -
    -

    Enumeration Members

    -
    - -
    agent: "agent"
    -
    - -
    public: "public"
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/absoluteFilePath.html b/5.x/docs/functions/absoluteFilePath.html deleted file mode 100644 index b7eeb87f9..000000000 --- a/5.x/docs/functions/absoluteFilePath.html +++ /dev/null @@ -1,654 +0,0 @@ -absoluteFilePath | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function absoluteFilePath

    -
    -
      - -
    • -

      Resolves a path to its absolute form. -Absolute inputs will not be changed (except changing Windows to POSIX). -Relative inputs will be interpreted relative to process.cwd().

      - -

      Returns

      The potentially changed path (POSIX).

      -
      -
      -

      Parameters

      -
        -
      • -
        path: string
        -

        Path to check (POSIX or Windows).

        -
      -

      Returns string

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/addGeneratedResources.html b/5.x/docs/functions/addGeneratedResources.html deleted file mode 100644 index 9ae2a27bb..000000000 --- a/5.x/docs/functions/addGeneratedResources.html +++ /dev/null @@ -1,664 +0,0 @@ -addGeneratedResources | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function addGeneratedResources

    -
    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/addHeader.html b/5.x/docs/functions/addHeader.html deleted file mode 100644 index 1ccd7a7d7..000000000 --- a/5.x/docs/functions/addHeader.html +++ /dev/null @@ -1,652 +0,0 @@ -addHeader | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -
      - -
    • -

      Adds a header value without overriding previous values.

      -
      -
      -

      Parameters

      -
        -
      • -
        response: ServerResponse
      • -
      • -
        name: string
      • -
      • -
        value: string | string[]
      -

      Returns void

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/addResourceMetadata.html b/5.x/docs/functions/addResourceMetadata.html deleted file mode 100644 index 1973dd3e8..000000000 --- a/5.x/docs/functions/addResourceMetadata.html +++ /dev/null @@ -1,656 +0,0 @@ -addResourceMetadata | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function addResourceMetadata

    -
    -
      - -
    • -

      Helper function to generate type quads for a Container or Resource.

      - -

      Returns

      The generated quads.

      -
      -
      -

      Parameters

      -
        -
      • -
        metadata: RepresentationMetadata
        -

        Metadata to add to.

        -
      • -
      • -
        isContainer: boolean
        -

        If the identifier corresponds to a container.

        -
      -

      Returns void

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/addTemplateMetadata.html b/5.x/docs/functions/addTemplateMetadata.html deleted file mode 100644 index f0eca129d..000000000 --- a/5.x/docs/functions/addTemplateMetadata.html +++ /dev/null @@ -1,658 +0,0 @@ -addTemplateMetadata | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function addTemplateMetadata

    -
    -
      - -
    • -

      Links a template file with a given content-type to the metadata using the SOLID_META.template predicate.

      -
      -
      -

      Parameters

      -
        -
      • -
        metadata: RepresentationMetadata
        -

        Metadata to update.

        -
      • -
      • -
        templateFile: string
        -

        Path to the template.

        -
      • -
      • -
        contentType: string
        -

        Content-type of the template after it is rendered.

        -
      -

      Returns void

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/allFulfilled.html b/5.x/docs/functions/allFulfilled.html deleted file mode 100644 index 57c7c359e..000000000 --- a/5.x/docs/functions/allFulfilled.html +++ /dev/null @@ -1,656 +0,0 @@ -allFulfilled | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function allFulfilled

    -
    -
      - -
    • -

      Obtains the values of all fulfilled promises. -If there are rejections (and ignoreErrors is false), throws a combined error of all rejected promises.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T

      -
      -

      Parameters

      -
        -
      • -
        promises: Promise<T>[]
      • -
      • -
        ignoreErrors: boolean = false
      -

      Returns Promise<T[]>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/assertError.html b/5.x/docs/functions/assertError.html deleted file mode 100644 index 22c3f2b98..000000000 --- a/5.x/docs/functions/assertError.html +++ /dev/null @@ -1,649 +0,0 @@ -assertError | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function assertError

    -
    -
      - -
    • -

      Asserts that the input is a native error. -If not the input will be re-thrown.

      -
      -
      -

      Parameters

      -
        -
      • -
        error: unknown
      -

      Returns asserts error is Error

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/assertPassword.html b/5.x/docs/functions/assertPassword.html deleted file mode 100644 index c67d865cf..000000000 --- a/5.x/docs/functions/assertPassword.html +++ /dev/null @@ -1,655 +0,0 @@ -assertPassword | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function assertPassword

    -
    -
      - -
    • -

      Asserts that password is a string that matches confirmPassword. -Will throw an Error otherwise.

      -
      -
      -

      Parameters

      -
        -
      • -
        password: any
        -

        Password to assert.

        -
      • -
      • -
        confirmPassword: any
        -

        Confirmation of password to match.

        -
      -

      Returns asserts password is string

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/cleanPreferences.html b/5.x/docs/functions/cleanPreferences.html deleted file mode 100644 index 66c1aed47..000000000 --- a/5.x/docs/functions/cleanPreferences.html +++ /dev/null @@ -1,654 +0,0 @@ -cleanPreferences | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function cleanPreferences

    -
    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/cloneRepresentation.html b/5.x/docs/functions/cloneRepresentation.html deleted file mode 100644 index 458d56efc..000000000 --- a/5.x/docs/functions/cloneRepresentation.html +++ /dev/null @@ -1,653 +0,0 @@ -cloneRepresentation | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function cloneRepresentation

    -
    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/concat.html b/5.x/docs/functions/concat.html deleted file mode 100644 index f6f778133..000000000 --- a/5.x/docs/functions/concat.html +++ /dev/null @@ -1,655 +0,0 @@ -concat | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -
      - -
    • -

      Creates a new iterable that is a concatenation of all the iterables in the input.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T

      -
      -

      Parameters

      -
        -
      • -
        iterables: Iterable<Iterable<T>>
        -

        An iterable of which the contents will be concatenated into a new iterable.

        -
      -

      Returns Iterable<T>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/createAggregateError.html b/5.x/docs/functions/createAggregateError.html deleted file mode 100644 index cf17e531b..000000000 --- a/5.x/docs/functions/createAggregateError.html +++ /dev/null @@ -1,656 +0,0 @@ -createAggregateError | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function createAggregateError

    -
    -
      - -
    • -

      Combines a list of errors into a single HttpErrors. -Status code depends on the input errors. If they all share the same status code that code will be re-used. -If they are all within the 4xx range, 400 will be used, otherwise 500.

      -
      -
      -

      Parameters

      -
        -
      • -
        errors: Error[]
        -

        Errors to combine.

        -
      • -
      • -
        messagePrefix: string = 'No handler supports the given input:'
        -

        Prefix for the aggregate error message. Will be followed with an array of all the messages.

        -
      -

      Returns HttpError

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/createErrorMessage.html b/5.x/docs/functions/createErrorMessage.html deleted file mode 100644 index 587f3c3da..000000000 --- a/5.x/docs/functions/createErrorMessage.html +++ /dev/null @@ -1,646 +0,0 @@ -createErrorMessage | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function createErrorMessage

    -
    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/createNamespace.html b/5.x/docs/functions/createNamespace.html deleted file mode 100644 index fc9fb26ea..000000000 --- a/5.x/docs/functions/createNamespace.html +++ /dev/null @@ -1,671 +0,0 @@ -createNamespace | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function createNamespace

    -
    -
      - -
    • -

      Creates a function that expands local names from the given base URI, -and exports the given local names as properties on the returned object.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        TKey extends string

      • -
      • -

        TValue

      -
      -

      Parameters

      -
        -
      • -
        baseUri: string
      • -
      • -
        toValue: ((expanded: string) => TValue)
        -
          -
        • -
            -
          • (expanded: string): TValue
          • -
          • -
            -

            Parameters

            -
              -
            • -
              expanded: string
            -

            Returns TValue

      • -
      • -
        Rest ...localNames: TKey[]
      -

      Returns Namespace<typeof localNames, TValue>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/createSubdomainRegexp.html b/5.x/docs/functions/createSubdomainRegexp.html deleted file mode 100644 index 3798f795e..000000000 --- a/5.x/docs/functions/createSubdomainRegexp.html +++ /dev/null @@ -1,659 +0,0 @@ -createSubdomainRegexp | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function createSubdomainRegexp

    -
    -
      - -
    • -

      Creates a regular expression that matches URLs containing the given baseUrl, or a subdomain of the given baseUrl. -In case there is a subdomain, the first match of the regular expression will be that subdomain.

      -

      Examples with baseUrl http://test.com/foo/:

      -
        -
      • Will match http://test.com/foo/
      • -
      • Will match http://test.com/foo/bar/baz
      • -
      • Will match http://alice.bob.test.com/foo/bar/baz, first match result will be alice.bob
      • -
      • Will not match http://test.com/
      • -
      • Will not match http://alicetest.com/foo/
      • -
      -
      -
      -

      Parameters

      -
        -
      • -
        baseUrl: string
        -

        Base URL for the regular expression.

        -
      -

      Returns RegExp

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/createTermNamespace.html b/5.x/docs/functions/createTermNamespace.html deleted file mode 100644 index 18ee6831a..000000000 --- a/5.x/docs/functions/createTermNamespace.html +++ /dev/null @@ -1,656 +0,0 @@ -createTermNamespace | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function createTermNamespace

    -
    -
      - -
    • -

      Creates a function that expands local names from the given base URI into named nodes, -and exports the given local names as properties on the returned object.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T extends string

      -
      -

      Parameters

      -
        -
      • -
        baseUri: string
      • -
      • -
        Rest ...localNames: T[]
      -

      Returns Namespace<typeof localNames, NamedNode>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/createUriAndTermNamespace.html b/5.x/docs/functions/createUriAndTermNamespace.html deleted file mode 100644 index 2d0600688..000000000 --- a/5.x/docs/functions/createUriAndTermNamespace.html +++ /dev/null @@ -1,657 +0,0 @@ -createUriAndTermNamespace | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function createUriAndTermNamespace

    -
    -
      - -
    • -

      Creates a function that expands local names from the given base URI into string, -and exports the given local names as properties on the returned object. -Under the terms property, it exposes the expanded local names as named nodes.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T extends string

      -
      -

      Parameters

      -
        -
      • -
        baseUri: string
      • -
      • -
        Rest ...localNames: T[]
      -

      Returns Namespace<typeof localNames, string> & { terms: Namespace<typeof localNames, NamedNode> }

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/createUriNamespace.html b/5.x/docs/functions/createUriNamespace.html deleted file mode 100644 index be381668b..000000000 --- a/5.x/docs/functions/createUriNamespace.html +++ /dev/null @@ -1,656 +0,0 @@ -createUriNamespace | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function createUriNamespace

    -
    -
      - -
    • -

      Creates a function that expands local names from the given base URI into strings, -and exports the given local names as properties on the returned object.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T extends string

      -
      -

      Parameters

      -
        -
      • -
        baseUri: string
      • -
      • -
        Rest ...localNames: T[]
      -

      Returns Namespace<typeof localNames, string>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/decodeUriPathComponents.html b/5.x/docs/functions/decodeUriPathComponents.html deleted file mode 100644 index af299a4a7..000000000 --- a/5.x/docs/functions/decodeUriPathComponents.html +++ /dev/null @@ -1,654 +0,0 @@ -decodeUriPathComponents | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function decodeUriPathComponents

    -
    -
      - -
    • -

      This function is used when converting a URI to a file path. Decodes all components of a URI path, -with the exception of encoded slash characters, as this would lead to unexpected file locations -being targeted (resulting in erroneous behaviour of the file based backend).

      - -

      Returns

      A decoded copy of the provided URI path (ignoring encoded slash characters).

      -
      -
      -

      Parameters

      -
        -
      • -
        path: string
        -

        The path to decode the URI path components of.

        -
      -

      Returns string

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/encodeUriPathComponents.html b/5.x/docs/functions/encodeUriPathComponents.html deleted file mode 100644 index 7410dec79..000000000 --- a/5.x/docs/functions/encodeUriPathComponents.html +++ /dev/null @@ -1,654 +0,0 @@ -encodeUriPathComponents | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function encodeUriPathComponents

    -
    -
      - -
    • -

      This function is used in the process of converting a file path to a URI. Encodes all (non-slash) -special characters in a URI path, with the exception of encoded slash characters, as this would -lead to unnecessary double encoding, resulting in a URI that differs from the expected result.

      - -

      Returns

      An encoded copy of the provided URI path (ignoring encoded slash characters).

      -
      -
      -

      Parameters

      -
        -
      • -
        path: string
        -

        The path to encode the URI path components of.

        -
      -

      Returns string

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/endOfStream.html b/5.x/docs/functions/endOfStream.html deleted file mode 100644 index c760385f6..000000000 --- a/5.x/docs/functions/endOfStream.html +++ /dev/null @@ -1,646 +0,0 @@ -endOfStream | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function endOfStream

    -
    -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        arg1: Stream
      -

      Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/ensureLeadingSlash.html b/5.x/docs/functions/ensureLeadingSlash.html deleted file mode 100644 index d96d7e238..000000000 --- a/5.x/docs/functions/ensureLeadingSlash.html +++ /dev/null @@ -1,654 +0,0 @@ -ensureLeadingSlash | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function ensureLeadingSlash

    -
    -
      - -
    • -

      Makes sure the input path has exactly 1 slash at the beginning. -Multiple slashes will get merged into one. -If there is no slash it will be added.

      - -

      Returns

      The potentially changed path.

      -
      -
      -

      Parameters

      -
        -
      • -
        path: string
        -

        Path to check.

        -
      -

      Returns string

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/ensureTrailingSlash.html b/5.x/docs/functions/ensureTrailingSlash.html deleted file mode 100644 index 38d952cfd..000000000 --- a/5.x/docs/functions/ensureTrailingSlash.html +++ /dev/null @@ -1,654 +0,0 @@ -ensureTrailingSlash | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function ensureTrailingSlash

    -
    -
      - -
    • -

      Makes sure the input path has exactly 1 slash at the end. -Multiple slashes will get merged into one. -If there is no slash it will be added.

      - -

      Returns

      The potentially changed path.

      -
      -
      -

      Parameters

      -
        -
      • -
        path: string
        -

        Path to check.

        -
      -

      Returns string

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/extractScheme.html b/5.x/docs/functions/extractScheme.html deleted file mode 100644 index 19f4a2dd7..000000000 --- a/5.x/docs/functions/extractScheme.html +++ /dev/null @@ -1,656 +0,0 @@ -extractScheme | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function extractScheme

    -
    -
      - -
    • -

      Splits a URL (or similar) string into a part containing its scheme and one containing the rest. -E.g., http://test.com/ results in { scheme: 'http://', rest: 'test.com/' }.

      -
      -
      -

      Parameters

      -
        -
      • -
        url: string
        -

        String to parse.

        -
      -

      Returns { rest: string; scheme: string }

      -
        -
      • -
        rest: string
      • -
      • -
        scheme: string
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/fetchDataset.html b/5.x/docs/functions/fetchDataset.html deleted file mode 100644 index a60ff9442..000000000 --- a/5.x/docs/functions/fetchDataset.html +++ /dev/null @@ -1,649 +0,0 @@ -fetchDataset | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function fetchDataset

    -
    -
      - -
    • -

      Fetches an RDF dataset from the given URL.

      -

      Response will be a Representation with content-type internal/quads.

      -
      -
      -

      Parameters

      -
        -
      • -
        url: string
      -

      Returns Promise<Representation>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/filter.html b/5.x/docs/functions/filter.html deleted file mode 100644 index 8895a98eb..000000000 --- a/5.x/docs/functions/filter.html +++ /dev/null @@ -1,678 +0,0 @@ -filter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -
      - -
    • -

      Creates a new iterable with all elements that pass the test implemented by the provided function. -Similar to the Array.prototype.filter function. -See the documentation of the above function for more details.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T

      -
      -

      Parameters

      -
        -
      • -
        iterable: Iterable<T>
        -

        Iterable on which to call the map function.

        -
      • -
      • -
        callbackFn: ((element: T, index: number) => boolean)
        -

        Function that is called to test every element.

        -
        -
          -
        • -
            -
          • (element: T, index: number): boolean
          • -
          • -
            -

            Parameters

            -
              -
            • -
              element: T
            • -
            • -
              index: number
            -

            Returns boolean

      • -
      • -
        Optional thisArg: any
        -

        Value to use as this when executing callbackFn.

        -
      -

      Returns Iterable<T>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/filterHandlers.html b/5.x/docs/functions/filterHandlers.html deleted file mode 100644 index b1c8dcbf7..000000000 --- a/5.x/docs/functions/filterHandlers.html +++ /dev/null @@ -1,662 +0,0 @@ -filterHandlers | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function filterHandlers

    -
    -
      - -
    • -

      Filters a list of handlers to only keep those that can handle the input. -Will error if no matching handlers are found.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        TIn

      • -
      • -

        TOut

      -
      -

      Parameters

      -
        -
      • -
        handlers: AsyncHandler<TIn, TOut>[]
        -

        Handlers to filter.

        -
      • -
      • -
        input: TIn
        -

        Input that needs to be supported.

        -
      -

      Returns Promise<AsyncHandler<TIn, TOut>[]>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/find.html b/5.x/docs/functions/find.html deleted file mode 100644 index 6bb566994..000000000 --- a/5.x/docs/functions/find.html +++ /dev/null @@ -1,679 +0,0 @@ -find | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -
      - -
    • -

      Returns the first element in the provided iterable that satisfies the provided testing function. -If no values satisfy the testing function, undefined is returned. -Similar to the Array.prototype.find function. -See the documentation of the above function for more details.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T

      -
      -

      Parameters

      -
        -
      • -
        iterable: Iterable<T>
        -

        Iterable on which to call the map function.

        -
      • -
      • -
        callbackFn: ((element: T, index: number) => boolean)
        -

        Function that is called to test every element.

        -
        -
          -
        • -
            -
          • (element: T, index: number): boolean
          • -
          • -
            -

            Parameters

            -
              -
            • -
              element: T
            • -
            • -
              index: number
            -

            Returns boolean

      • -
      • -
        Optional thisArg: any
        -

        Value to use as this when executing callbackFn.

        -
      -

      Returns T | undefined

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/findHandler.html b/5.x/docs/functions/findHandler.html deleted file mode 100644 index c26008b6b..000000000 --- a/5.x/docs/functions/findHandler.html +++ /dev/null @@ -1,664 +0,0 @@ -findHandler | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function findHandler

    -
    -
      - -
    • -

      Finds a handler that can handle the given input data. -Otherwise an error gets thrown.

      - -

      Returns

      A promise resolving to a handler that supports the data or otherwise rejecting.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        TIn

      • -
      • -

        TOut

      -
      -

      Parameters

      -
        -
      • -
        handlers: AsyncHandler<TIn, TOut>[]
        -

        List of handlers to search in.

        -
      • -
      • -
        input: TIn
        -

        The input data.

        -
      -

      Returns Promise<AsyncHandler<TIn, TOut>>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/generateHttpErrorClass.html b/5.x/docs/functions/generateHttpErrorClass.html deleted file mode 100644 index 5d69fe67b..000000000 --- a/5.x/docs/functions/generateHttpErrorClass.html +++ /dev/null @@ -1,661 +0,0 @@ -generateHttpErrorClass | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function generateHttpErrorClass

    -
    -
      - -
    • -

      Generates a new HttpError class with the given status code and name. -In general, status codes are used to uniquely identify error types, -so there should be no 2 classes with the same value there.

      -

      To make sure Components.js can work with these newly generated classes, -the generated class should be called BaseHttpError as that name is an entry in .componentsignore. -The actual class should then extend BaseHttpError and have a correct constructor, -so the Components.js generator can generate the correct components JSON-LD file during build.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        TCode extends number

      -
      -

      Parameters

      -
        -
      • -
        statusCode: TCode
      • -
      • -
        name: string
      -

      Returns HttpErrorClass<TCode>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/generateHttpErrorUri.html b/5.x/docs/functions/generateHttpErrorUri.html deleted file mode 100644 index bdefcb8e7..000000000 --- a/5.x/docs/functions/generateHttpErrorUri.html +++ /dev/null @@ -1,648 +0,0 @@ -generateHttpErrorUri | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function generateHttpErrorUri

    -
    -
      - -
    • -

      Returns a URI that is unique for the given status code.

      -
      -
      -

      Parameters

      -
        -
      • -
        statusCode: number
      -

      Returns NamedNode

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/generateRedirectHttpErrorClass.html b/5.x/docs/functions/generateRedirectHttpErrorClass.html deleted file mode 100644 index 2cf46edb9..000000000 --- a/5.x/docs/functions/generateRedirectHttpErrorClass.html +++ /dev/null @@ -1,657 +0,0 @@ -generateRedirectHttpErrorClass | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function generateRedirectHttpErrorClass

    -
    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/getBestPreference.html b/5.x/docs/functions/getBestPreference.html deleted file mode 100644 index caa03af15..000000000 --- a/5.x/docs/functions/getBestPreference.html +++ /dev/null @@ -1,658 +0,0 @@ -getBestPreference | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function getBestPreference

    -
    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/getConversionTarget.html b/5.x/docs/functions/getConversionTarget.html deleted file mode 100644 index 2ab4383e7..000000000 --- a/5.x/docs/functions/getConversionTarget.html +++ /dev/null @@ -1,662 +0,0 @@ -getConversionTarget | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function getConversionTarget

    -
    -
      - -
    • -

      For a media type converter that can generate the given types, -this function tries to find the type that best matches the given preferences.

      -

      This function combines several other conversion utility functions -to determine what output a converter should generate: -it cleans the preferences with cleanPreferences to support empty preferences -and to prevent the accidental generation of internal types, -after which the best match gets found based on the weights.

      - -

      Returns

      The best match. Undefined if there is no match.

      -
      -
      -

      Parameters

      -
      -

      Returns string | undefined

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/getDefault.html b/5.x/docs/functions/getDefault.html deleted file mode 100644 index 90e913f2e..000000000 --- a/5.x/docs/functions/getDefault.html +++ /dev/null @@ -1,667 +0,0 @@ -getDefault | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -
      - -
    • -

      Finds the result of calling map.get(key). -If there is no result, it instead returns the default value. -The Map will also be updated to assign that default value to the given key.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        TKey

      • -
      • -

        TValue

      -
      -

      Parameters

      -
        -
      • -
        map: Map<TKey, TValue>
        -

        Map to use.

        -
      • -
      • -
        key: TKey
        -

        Key to find the value for.

        -
      • -
      • -
        defaultValue: TValue
        -

        Value to insert and return if no result was found.

        -
      -

      Returns TValue

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/getETag.html b/5.x/docs/functions/getETag.html deleted file mode 100644 index ceb1099e0..000000000 --- a/5.x/docs/functions/getETag.html +++ /dev/null @@ -1,652 +0,0 @@ -getETag | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -
      - -
    • -

      Generates an ETag based on the last modified date of a resource.

      - -

      Returns

      the generated ETag. Undefined if no last modified date was found.

      -
      -
      -

      Parameters

      -
      -

      Returns string | undefined

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/getExtension.html b/5.x/docs/functions/getExtension.html deleted file mode 100644 index a85589584..000000000 --- a/5.x/docs/functions/getExtension.html +++ /dev/null @@ -1,651 +0,0 @@ -getExtension | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function getExtension

    -
    -
      - -
    • -

      Extracts the extension (without dot) from a path. -Custom function since path.extname does not work on all cases (e.g. ".acl")

      -
      -
      -

      Parameters

      -
        -
      • -
        path: string
        -

        Input path to parse.

        -
      -

      Returns string

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/getLoggerFor.html b/5.x/docs/functions/getLoggerFor.html deleted file mode 100644 index 8361ca1cb..000000000 --- a/5.x/docs/functions/getLoggerFor.html +++ /dev/null @@ -1,656 +0,0 @@ -getLoggerFor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function getLoggerFor

    -
    -
      - -
    • -

      Gets a logger instance for the given class instance.

      -

      The following shows a typical pattern on how to create loggers:

      -
      class MyClass {
      protected readonly logger = getLoggerFor(this);
      } -
      -

      If no class is applicable, a logger can also be created as follows:

      -
      const logger = getLoggerFor('MyFunction');
      -
      -
      -
      -

      Parameters

      -
        -
      • -
        loggable: string | Instance
        -

        A class instance or a class string name.

        -
      -

      Returns Logger

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/getModuleRoot.html b/5.x/docs/functions/getModuleRoot.html deleted file mode 100644 index 19c83ff55..000000000 --- a/5.x/docs/functions/getModuleRoot.html +++ /dev/null @@ -1,643 +0,0 @@ -getModuleRoot | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function getModuleRoot

    -
    -
      - -
    • -

      Returns the folder corresponding to the root of the Community Solid Server module

      -
      -

      Returns string

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/getRelativeUrl.html b/5.x/docs/functions/getRelativeUrl.html deleted file mode 100644 index b447db9aa..000000000 --- a/5.x/docs/functions/getRelativeUrl.html +++ /dev/null @@ -1,659 +0,0 @@ -getRelativeUrl | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function getRelativeUrl

    -
    -
      - -
    • -

      Creates a relative URL by removing the base URL. -Will throw an error in case the resulting target is not withing the base URL scope.

      -
      -
      -

      Parameters

      -
        -
      • -
        baseUrl: string
        -

        Base URL.

        -
      • -
      • -
        request: HttpRequest
        -

        Incoming request of which the target needs to be extracted.

        -
      • -
      • -
        targetExtractor: TargetExtractor
        -

        Will extract the target from the request.

        -
      -

      Returns Promise<string>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/getSingleItem.html b/5.x/docs/functions/getSingleItem.html deleted file mode 100644 index 6cf9ee47b..000000000 --- a/5.x/docs/functions/getSingleItem.html +++ /dev/null @@ -1,652 +0,0 @@ -getSingleItem | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function getSingleItem

    -
    -
      - -
    • -

      Converts the stream to a single object. -This assumes the stream is in object mode and only contains a single element, -otherwise an error will be thrown.

      -
      -
      -

      Parameters

      -
        -
      • -
        stream: Readable
        -

        Object stream with single entry.

        -
      -

      Returns Promise<unknown>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/getStatusCode.html b/5.x/docs/functions/getStatusCode.html deleted file mode 100644 index 5394877c3..000000000 --- a/5.x/docs/functions/getStatusCode.html +++ /dev/null @@ -1,648 +0,0 @@ -getStatusCode | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function getStatusCode

    -
    -
      - -
    • -

      Returns the HTTP status code corresponding to the error.

      -
      -
      -

      Parameters

      -
        -
      • -
        error: Error
      -

      Returns number

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/getTemplateFilePath.html b/5.x/docs/functions/getTemplateFilePath.html deleted file mode 100644 index 6429ca3b3..000000000 --- a/5.x/docs/functions/getTemplateFilePath.html +++ /dev/null @@ -1,649 +0,0 @@ -getTemplateFilePath | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function getTemplateFilePath

    -
    -
      - -
    • -

      Returns the absolute path to the template. -Returns undefined if the input does not contain a file path.

      -
      -
      -

      Parameters

      -
      -

      Returns string | undefined

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/getTypeWeight.html b/5.x/docs/functions/getTypeWeight.html deleted file mode 100644 index 391d487c5..000000000 --- a/5.x/docs/functions/getTypeWeight.html +++ /dev/null @@ -1,657 +0,0 @@ -getTypeWeight | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function getTypeWeight

    -
    -
      - -
    • -

      Tries to match the given type to the given preferences. -In case there are multiple matches the most specific one will be chosen as per RFC 7231.

      - -

      Returns

      The corresponding weight from the preferences or 0 if there is no match.

      -
      -
      -

      Parameters

      -
        -
      • -
        type: string
        -

        Type for which the matching weight is needed.

        -
      • -
      • -
        preferred: ValuePreferences
        -

        Preferences to match the type to.

        -
      -

      Returns number

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/getWeightedPreferences.html b/5.x/docs/functions/getWeightedPreferences.html deleted file mode 100644 index 61d937eae..000000000 --- a/5.x/docs/functions/getWeightedPreferences.html +++ /dev/null @@ -1,658 +0,0 @@ -getWeightedPreferences | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function getWeightedPreferences

    -
    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/guardStream.html b/5.x/docs/functions/guardStream.html deleted file mode 100644 index 2c85b28f4..000000000 --- a/5.x/docs/functions/guardStream.html +++ /dev/null @@ -1,662 +0,0 @@ -guardStream | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function guardStream

    -
    -
      - -
    • -

      Makes sure that listeners always receive the error event of a stream, -even if it was thrown before the listener was attached.

      -

      When guarding a stream it is assumed that error listeners already attached should be ignored, -only error listeners attached after the stream is guarded will prevent an error from being logged.

      -

      If the input is already guarded the guard will be reset, -which means ignoring error listeners already attached.

      - -

      Returns

      The stream.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T extends EventEmitter<T>

      -
      -

      Parameters

      -
        -
      • -
        stream: T
        -

        Stream that can potentially throw an error.

        -
      -

      Returns Guarded<T>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/guardedStreamFrom.html b/5.x/docs/functions/guardedStreamFrom.html deleted file mode 100644 index 65ddb163b..000000000 --- a/5.x/docs/functions/guardedStreamFrom.html +++ /dev/null @@ -1,654 +0,0 @@ -guardedStreamFrom | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function guardedStreamFrom

    -
    -
      - -
    • -

      Converts a string or array to a stream and applies an error guard so that it is Guarded.

      -
      -
      -

      Parameters

      -
        -
      • -
        contents: string | Iterable<any>
        -

        Data to stream.

        -
      • -
      • -
        Optional options: ReadableOptions
        -

        Options to pass to the Readable constructor. See Readable.from.

        -
      -

      Returns Guarded<Readable>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/hasScheme.html b/5.x/docs/functions/hasScheme.html deleted file mode 100644 index 622519f5f..000000000 --- a/5.x/docs/functions/hasScheme.html +++ /dev/null @@ -1,656 +0,0 @@ -hasScheme | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -
      - -
    • -

      Checks if the scheme part of the specified url matches at least one of the provided options.

      - -

      Returns

      True if the URL scheme matches at least one of the provided options, false otherwise.

      -
      -
      -

      Parameters

      -
        -
      • -
        url: string
        -

        A string representing the URL.

        -
      • -
      • -
        Rest ...schemes: string[]
        -

        Scheme value options (the function will check if at least one matches the URL scheme).

        -
      -

      Returns boolean

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/identifierHashFn.html b/5.x/docs/functions/identifierHashFn.html deleted file mode 100644 index 78c3b54d4..000000000 --- a/5.x/docs/functions/identifierHashFn.html +++ /dev/null @@ -1,648 +0,0 @@ -identifierHashFn | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function identifierHashFn

    -
    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/isContainerIdentifier.html b/5.x/docs/functions/isContainerIdentifier.html deleted file mode 100644 index 1db85bd76..000000000 --- a/5.x/docs/functions/isContainerIdentifier.html +++ /dev/null @@ -1,650 +0,0 @@ -isContainerIdentifier | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function isContainerIdentifier

    -
    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/isContainerPath.html b/5.x/docs/functions/isContainerPath.html deleted file mode 100644 index 1764ec16f..000000000 --- a/5.x/docs/functions/isContainerPath.html +++ /dev/null @@ -1,650 +0,0 @@ -isContainerPath | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function isContainerPath

    -
    -
      - -
    • -

      Checks if the path corresponds to a container path (ending in a /).

      -
      -
      -

      Parameters

      -
        -
      • -
        path: string
        -

        Path to check.

        -
      -

      Returns boolean

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/isError.html b/5.x/docs/functions/isError.html deleted file mode 100644 index 78676a962..000000000 --- a/5.x/docs/functions/isError.html +++ /dev/null @@ -1,648 +0,0 @@ -isError | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -
      - -
    • -

      Checks if the input is an Error.

      -
      -
      -

      Parameters

      -
        -
      • -
        error: any
      -

      Returns error is Error

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/isGuarded.html b/5.x/docs/functions/isGuarded.html deleted file mode 100644 index 1f062c797..000000000 --- a/5.x/docs/functions/isGuarded.html +++ /dev/null @@ -1,653 +0,0 @@ -isGuarded | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -
      - -
    • -

      Determines whether the stream is guarded against emitting errors.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T extends EventEmitter<T>

      -
      -

      Parameters

      -
        -
      • -
        stream: T
      -

      Returns stream is Guarded<T>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/isHttpRequest.html b/5.x/docs/functions/isHttpRequest.html deleted file mode 100644 index 82a34825b..000000000 --- a/5.x/docs/functions/isHttpRequest.html +++ /dev/null @@ -1,648 +0,0 @@ -isHttpRequest | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function isHttpRequest

    -
    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/isInternalContentType.html b/5.x/docs/functions/isInternalContentType.html deleted file mode 100644 index 4ea7271fc..000000000 --- a/5.x/docs/functions/isInternalContentType.html +++ /dev/null @@ -1,652 +0,0 @@ -isInternalContentType | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function isInternalContentType

    -
    -
      - -
    • -

      Checks if the given content type is an internal content type such as internal/quads. -Response will be false if the input type is undefined.

      -

      Do not use this for media ranges.

      -
      -
      -

      Parameters

      -
        -
      • -
        Optional contentType: string
        -

        Type to check.

        -
      -

      Returns boolean

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/isRepresentationMetadata.html b/5.x/docs/functions/isRepresentationMetadata.html deleted file mode 100644 index 745044852..000000000 --- a/5.x/docs/functions/isRepresentationMetadata.html +++ /dev/null @@ -1,648 +0,0 @@ -isRepresentationMetadata | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function isRepresentationMetadata

    -
    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/isResourceIdentifier.html b/5.x/docs/functions/isResourceIdentifier.html deleted file mode 100644 index 8c58a728b..000000000 --- a/5.x/docs/functions/isResourceIdentifier.html +++ /dev/null @@ -1,648 +0,0 @@ -isResourceIdentifier | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function isResourceIdentifier

    -
    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/isSystemError.html b/5.x/docs/functions/isSystemError.html deleted file mode 100644 index 0588799c1..000000000 --- a/5.x/docs/functions/isSystemError.html +++ /dev/null @@ -1,646 +0,0 @@ -isSystemError | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function isSystemError

    -
    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/isTerm.html b/5.x/docs/functions/isTerm.html deleted file mode 100644 index 06e07395e..000000000 --- a/5.x/docs/functions/isTerm.html +++ /dev/null @@ -1,648 +0,0 @@ -isTerm | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        Optional input: any
        -

        Checks if this is a Term.

        -
      -

      Returns input is Term

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/isValidFileName.html b/5.x/docs/functions/isValidFileName.html deleted file mode 100644 index b63135ba5..000000000 --- a/5.x/docs/functions/isValidFileName.html +++ /dev/null @@ -1,652 +0,0 @@ -isValidFileName | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function isValidFileName

    -
    -
      - -
    • -

      Checks the validity of a file name. A valid name consists of word characters, '-' or '.'.

      - -

      Returns

      True if the filename is valid, false otherwise.

      -
      -
      -

      Parameters

      -
        -
      • -
        name: string
        -

        The name of the file to validate.

        -
      -

      Returns boolean

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/isValidVariable.html b/5.x/docs/functions/isValidVariable.html deleted file mode 100644 index 222aa6135..000000000 --- a/5.x/docs/functions/isValidVariable.html +++ /dev/null @@ -1,649 +0,0 @@ -isValidVariable | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function isValidVariable

    -
    -
      - -
    • -

      Checks if the given variable is one that is supported. -This can be used to weed out irrelevant parameters in an object.

      -
      -
      -

      Parameters

      -
        -
      • -
        variable: string
      -

      Returns boolean

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/joinFilePath.html b/5.x/docs/functions/joinFilePath.html deleted file mode 100644 index 8bae83c59..000000000 --- a/5.x/docs/functions/joinFilePath.html +++ /dev/null @@ -1,656 +0,0 @@ -joinFilePath | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function joinFilePath

    -
    -
      - -
    • -

      Adds the paths to the base path.

      - -

      Returns

      The potentially changed path (POSIX).

      -
      -
      -

      Parameters

      -
        -
      • -
        basePath: string
        -

        The base path (POSIX or Windows).

        -
      • -
      • -
        Rest ...paths: string[]
        -

        Subpaths to attach (POSIX).

        -
      -

      Returns string

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/joinUrl.html b/5.x/docs/functions/joinUrl.html deleted file mode 100644 index e3b0e5489..000000000 --- a/5.x/docs/functions/joinUrl.html +++ /dev/null @@ -1,663 +0,0 @@ -joinUrl | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -
      - -
    • -

      Join all arguments together and normalize the resulting url. -This works similar to path.join but you shouldn't use path.join for urls since it works -differently depending on the operating system and also doesn't work for some cases.

      -
      -
      -

      Parameters

      -
        -
      • -
        Rest ...parts: string[]
      -

      Returns string

    • - -
    • -

      Concatenates all the given strings into a normalized URL. -Will place slashes between input strings if necessary.

      -
      -
      -

      Parameters

      -
        -
      • -
        parts: string[]
      -

      Returns string

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/listSingleThreadedComponents.html b/5.x/docs/functions/listSingleThreadedComponents.html deleted file mode 100644 index 0d240b013..000000000 --- a/5.x/docs/functions/listSingleThreadedComponents.html +++ /dev/null @@ -1,656 +0,0 @@ -listSingleThreadedComponents | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function listSingleThreadedComponents

    -
    -
      - -
    • -

      Will list class names of components instantiated implementing the SingleThreaded -interface while the application is being run in multithreaded mode.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T

      -
      -

      Parameters

      -
        -
      • -
        componentsManager: ComponentsManager<T>
        -

        The componentsManager being used to set up the application

        -
      -

      Returns Promise<string[]>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/map.html b/5.x/docs/functions/map.html deleted file mode 100644 index 10edc15a0..000000000 --- a/5.x/docs/functions/map.html +++ /dev/null @@ -1,680 +0,0 @@ -map | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -
      - -
    • -

      Creates a new iterable with the results of calling a provided function on every element in the calling array. -Similar to the Array.prototype.map function. -See the documentation of the above function for more details.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        TIn

      • -
      • -

        TOut

      -
      -

      Parameters

      -
        -
      • -
        iterable: Iterable<TIn>
        -

        Iterable on which to call the map function.

        -
      • -
      • -
        callbackFn: ((element: TIn, index: number) => TOut)
        -

        Function that is called for every element.

        -
        -
          -
        • -
            -
          • (element: TIn, index: number): TOut
          • -
          • -
            -

            Parameters

            -
              -
            • -
              element: TIn
            • -
            • -
              index: number
            -

            Returns TOut

      • -
      • -
        Optional thisArg: any
        -

        Value to use as this when executing callbackFn.

        -
      -

      Returns Iterable<TOut>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/matchesAuthorizationScheme.html b/5.x/docs/functions/matchesAuthorizationScheme.html deleted file mode 100644 index f7e8933b5..000000000 --- a/5.x/docs/functions/matchesAuthorizationScheme.html +++ /dev/null @@ -1,656 +0,0 @@ -matchesAuthorizationScheme | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function matchesAuthorizationScheme

    -
    -
      - -
    • -

      Checks if the value of an HTTP Authorization header matches a specific scheme (e.g. Basic, Bearer, etc).

      - -

      Returns

      True if the Authorization header uses the specified scheme, false otherwise.

      -
      -
      -

      Parameters

      -
        -
      • -
        scheme: string
        -

        Name of the authorization scheme (case insensitive).

        -
      • -
      • -
        Optional authorization: string
        -

        The value of the Authorization header (may be undefined).

        -
      -

      Returns boolean

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/matchesMediaPreferences.html b/5.x/docs/functions/matchesMediaPreferences.html deleted file mode 100644 index ef219daa1..000000000 --- a/5.x/docs/functions/matchesMediaPreferences.html +++ /dev/null @@ -1,654 +0,0 @@ -matchesMediaPreferences | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function matchesMediaPreferences

    -
    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/matchesMediaType.html b/5.x/docs/functions/matchesMediaType.html deleted file mode 100644 index 9499f8ff2..000000000 --- a/5.x/docs/functions/matchesMediaType.html +++ /dev/null @@ -1,657 +0,0 @@ -matchesMediaType | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function matchesMediaType

    -
    -
      - -
    • -

      Checks if the given two media types/ranges match each other. -Takes wildcards into account.

      - -

      Returns

      True if the media type patterns can match each other.

      -
      -
      -

      Parameters

      -
        -
      • -
        mediaA: string
        -

        Media type to match.

        -
      • -
      • -
        mediaB: string
        -

        Media type to match.

        -
      -

      Returns boolean

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/modify.html b/5.x/docs/functions/modify.html deleted file mode 100644 index 92b778525..000000000 --- a/5.x/docs/functions/modify.html +++ /dev/null @@ -1,660 +0,0 @@ -modify | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/modulePath.html b/5.x/docs/functions/modulePath.html deleted file mode 100644 index f1f8e4372..000000000 --- a/5.x/docs/functions/modulePath.html +++ /dev/null @@ -1,649 +0,0 @@ -modulePath | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -
      - -
    • -

      Creates a path starting from the @solid/community-server module root, -to be resolved by the resolveAssetPath function.

      -
      -
      -

      Parameters

      -
        -
      • -
        relativePath: string = ''
      -

      Returns string

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/normalizeFilePath.html b/5.x/docs/functions/normalizeFilePath.html deleted file mode 100644 index 05ea46901..000000000 --- a/5.x/docs/functions/normalizeFilePath.html +++ /dev/null @@ -1,652 +0,0 @@ -normalizeFilePath | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function normalizeFilePath

    -
    -
      - -
    • -

      Resolves relative segments in the path.

      - -

      Returns

      The potentially changed path (POSIX).

      -
      -
      -

      Parameters

      -
        -
      • -
        path: string
        -

        Path to check (POSIX or Windows).

        -
      -

      Returns string

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/parseAccept.html b/5.x/docs/functions/parseAccept.html deleted file mode 100644 index 2b68c99a1..000000000 --- a/5.x/docs/functions/parseAccept.html +++ /dev/null @@ -1,655 +0,0 @@ -parseAccept | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function parseAccept

    -
    -
      - -
    • -

      Parses an Accept header string.

      - -

      Throws

      BadRequestHttpError -Thrown on invalid header syntax.

      - -

      Returns

      An array of Accept objects, sorted by weight.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: string
        -

        The Accept header string.

        -
      -

      Returns Accept[]

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/parseAcceptCharset.html b/5.x/docs/functions/parseAcceptCharset.html deleted file mode 100644 index e23ac40ac..000000000 --- a/5.x/docs/functions/parseAcceptCharset.html +++ /dev/null @@ -1,655 +0,0 @@ -parseAcceptCharset | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function parseAcceptCharset

    -
    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/parseAcceptDateTime.html b/5.x/docs/functions/parseAcceptDateTime.html deleted file mode 100644 index a094448b9..000000000 --- a/5.x/docs/functions/parseAcceptDateTime.html +++ /dev/null @@ -1,652 +0,0 @@ -parseAcceptDateTime | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function parseAcceptDateTime

    -
    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/parseAcceptEncoding.html b/5.x/docs/functions/parseAcceptEncoding.html deleted file mode 100644 index bea06c273..000000000 --- a/5.x/docs/functions/parseAcceptEncoding.html +++ /dev/null @@ -1,655 +0,0 @@ -parseAcceptEncoding | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function parseAcceptEncoding

    -
    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/parseAcceptLanguage.html b/5.x/docs/functions/parseAcceptLanguage.html deleted file mode 100644 index 5e038780c..000000000 --- a/5.x/docs/functions/parseAcceptLanguage.html +++ /dev/null @@ -1,655 +0,0 @@ -parseAcceptLanguage | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function parseAcceptLanguage

    -
    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/parseContentType.html b/5.x/docs/functions/parseContentType.html deleted file mode 100644 index ba55405e2..000000000 --- a/5.x/docs/functions/parseContentType.html +++ /dev/null @@ -1,655 +0,0 @@ -parseContentType | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function parseContentType

    -
    -
      - -
    • -

      Parses the Content-Type header and also parses any parameters in the header.

      - -

      Throws

      BadRequestHttpError -Thrown on invalid header syntax.

      - -

      Returns

      A ContentType object containing the value and optional parameters.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: string
        -

        The Content-Type header string.

        -
      -

      Returns ContentType

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/parseForwarded.html b/5.x/docs/functions/parseForwarded.html deleted file mode 100644 index 5655c3d11..000000000 --- a/5.x/docs/functions/parseForwarded.html +++ /dev/null @@ -1,652 +0,0 @@ -parseForwarded | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function parseForwarded

    -
    -
      - -
    • -

      Parses a Forwarded header value and will fall back to X-Forwarded-* headers.

      - -

      Returns

      The parsed Forwarded header.

      -
      -
      -

      Parameters

      -
        -
      • -
        headers: IncomingHttpHeaders
        -

        The incoming HTTP headers.

        -
      -

      Returns Forwarded

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/parseLinkHeader.html b/5.x/docs/functions/parseLinkHeader.html deleted file mode 100644 index 4c44643f7..000000000 --- a/5.x/docs/functions/parseLinkHeader.html +++ /dev/null @@ -1,652 +0,0 @@ -parseLinkHeader | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function parseLinkHeader

    -
    -
      - -
    • -

      Parses the link header(s) and returns an array of LinkEntry objects.

      - -

      Returns

      A LinkEntry array, LinkEntry contains a link and a params Record<string,string>

      -
      -
      -

      Parameters

      -
        -
      • -
        link: string | string[] = []
        -

        A single link header or an array of link headers

        -
      -

      Returns LinkEntry[]

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/parseParameters.html b/5.x/docs/functions/parseParameters.html deleted file mode 100644 index a46662c5b..000000000 --- a/5.x/docs/functions/parseParameters.html +++ /dev/null @@ -1,659 +0,0 @@ -parseParameters | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function parseParameters

    -
    -
      - -
    • -

      Parses a list of split parameters and checks their validity.

      - -

      Throws

      BadRequestHttpError -Thrown on invalid parameter syntax.

      - -

      Returns

      An array of name/value objects corresponding to the parameters.

      -
      -
      -

      Parameters

      -
        -
      • -
        parameters: string[]
        -

        A list of split parameters (token [ "=" ( token / quoted-string ) ])

        -
      • -
      • -
        replacements: Record<string, string>
        -

        The double quoted strings that need to be replaced.

        -
      -

      Returns { name: string; value: string }[]

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/parseQuads.html b/5.x/docs/functions/parseQuads.html deleted file mode 100644 index a52ace258..000000000 --- a/5.x/docs/functions/parseQuads.html +++ /dev/null @@ -1,656 +0,0 @@ -parseQuads | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -
      - -
    • -

      Helper function to convert a Readable into an array of quads.

      - -

      Returns

      A promise containing the array of quads.

      -
      -
      -

      Parameters

      -
        -
      • -
        readable: Guarded<Readable>
        -

        The readable object.

        -
      • -
      • -
        options: ParserOptions = {}
        -

        Options for the parser.

        -
      -

      Returns Promise<Quad[]>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/pipeSafely.html b/5.x/docs/functions/pipeSafely.html deleted file mode 100644 index c1ff28b1c..000000000 --- a/5.x/docs/functions/pipeSafely.html +++ /dev/null @@ -1,678 +0,0 @@ -pipeSafely | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -
      - -
    • -

      Pipes one stream into another and emits errors of the first stream with the second. -In case of an error in the first stream the second one will be destroyed with the given error. -This will also make the stream Guarded.

      - -

      Returns

      The destination stream.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T extends Writable<T>

      -
      -

      Parameters

      -
        -
      • -
        readable: ReadableStream
        -

        Initial readable stream.

        -
      • -
      • -
        destination: T
        -

        The destination for writing data.

        -
      • -
      • -
        Optional mapError: ((error: Error) => Error)
        -

        Optional function that takes the error and converts it to a new error.

        -
        -
          -
        • -
            -
          • (error: Error): Error
          • -
          • -
            -

            Parameters

            -
              -
            • -
              error: Error
            -

            Returns Error

      -

      Returns Guarded<T>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/preferencesToString.html b/5.x/docs/functions/preferencesToString.html deleted file mode 100644 index c0d999227..000000000 --- a/5.x/docs/functions/preferencesToString.html +++ /dev/null @@ -1,650 +0,0 @@ -preferencesToString | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function preferencesToString

    -
    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/promiseSome.html b/5.x/docs/functions/promiseSome.html deleted file mode 100644 index 905d75a16..000000000 --- a/5.x/docs/functions/promiseSome.html +++ /dev/null @@ -1,657 +0,0 @@ -promiseSome | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function promiseSome

    -
    -
      - -
    • -

      A function that simulates the Array.some behaviour but on an array of Promises. -Returns true if at least one promise returns true. -Returns false if all promises return false or error.

      - -

      Remarks

      Predicates provided as input must be implemented considering -the following points:

      -
        -
      1. if they throw an error, it won't be propagated;
      2. -
      3. throwing an error should be logically equivalent to returning false.
      4. -
      -
      -
      -

      Parameters

      -
        -
      • -
        predicates: Promise<boolean>[]
      -

      Returns Promise<boolean>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/readJsonStream.html b/5.x/docs/functions/readJsonStream.html deleted file mode 100644 index 6895886d8..000000000 --- a/5.x/docs/functions/readJsonStream.html +++ /dev/null @@ -1,652 +0,0 @@ -readJsonStream | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function readJsonStream

    -
    -
      - -
    • -

      Interprets the stream as JSON and converts it to a Dict.

      - -

      Returns

      The parsed object.

      -
      -
      -

      Parameters

      -
        -
      • -
        stream: Readable
        -

        Stream of JSON data.

        -
      -

      Returns Promise<NodeJS.Dict<any>>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/readPackageJson.html b/5.x/docs/functions/readPackageJson.html deleted file mode 100644 index 0c31845e8..000000000 --- a/5.x/docs/functions/readPackageJson.html +++ /dev/null @@ -1,643 +0,0 @@ -readPackageJson | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function readPackageJson

    -
    -
      - -
    • -

      Reads the project package.json and returns it.

      -
      -

      Returns Promise<Record<string, any>>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/readTemplate.html b/5.x/docs/functions/readTemplate.html deleted file mode 100644 index 3a0f63e35..000000000 --- a/5.x/docs/functions/readTemplate.html +++ /dev/null @@ -1,648 +0,0 @@ -readTemplate | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function readTemplate

    -
    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/readableToQuads.html b/5.x/docs/functions/readableToQuads.html deleted file mode 100644 index 3c4068631..000000000 --- a/5.x/docs/functions/readableToQuads.html +++ /dev/null @@ -1,652 +0,0 @@ -readableToQuads | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function readableToQuads

    -
    -
      - -
    • -

      Imports quads from a stream into a Store.

      - -

      Returns

      A Store containing all the quads.

      -
      -
      -

      Parameters

      -
        -
      • -
        stream: Readable
        -

        Stream of quads.

        -
      -

      Returns Promise<Store>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/readableToString.html b/5.x/docs/functions/readableToString.html deleted file mode 100644 index 1868dbd9f..000000000 --- a/5.x/docs/functions/readableToString.html +++ /dev/null @@ -1,652 +0,0 @@ -readableToString | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function readableToString

    -
    -
      - -
    • -

      Joins all strings of a stream.

      - -

      Returns

      The joined string.

      -
      -
      -

      Parameters

      -
        -
      • -
        stream: Readable
        -

        Stream of strings.

        -
      -

      Returns Promise<string>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/reduce.html b/5.x/docs/functions/reduce.html deleted file mode 100644 index aacbe6ee2..000000000 --- a/5.x/docs/functions/reduce.html +++ /dev/null @@ -1,721 +0,0 @@ -reduce | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -
      - -
    • -

      Similar to the Array.prototype.reduce function, but for an iterable. -See the documentation of the above function for more details. -The first element will be used as the initial value.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        TIn

      -
      -

      Parameters

      -
        -
      • -
        iterable: Iterable<TIn>
        -

        Iterable of which to reduce the elements.

        -
      • -
      • -
        callbackFn: ((previousValue: TIn, currentValue: TIn, currentIndex: number) => TIn)
        -

        A reducer function.

        -
        -
          -
        • -
            -
          • (previousValue: TIn, currentValue: TIn, currentIndex: number): TIn
          • -
          • -
            -

            Parameters

            -
              -
            • -
              previousValue: TIn
            • -
            • -
              currentValue: TIn
            • -
            • -
              currentIndex: number
            -

            Returns TIn

      -

      Returns TIn

    • - -
    • -

      Similar to the Array.prototype.reduce function, but for an iterable. -See the documentation of the above function for more details.

      -
      -
      -

      Type Parameters

      -
        -
      • -

        TIn

      • -
      • -

        TOut

      -
      -

      Parameters

      -
        -
      • -
        iterable: Iterable<TIn>
        -

        Iterable of which to reduce the elements.

        -
      • -
      • -
        callbackFn: ((previousValue: TOut, currentValue: TIn, currentIndex: number) => TOut)
        -

        A reducer function.

        -
        -
          -
        • -
            -
          • (previousValue: TOut, currentValue: TIn, currentIndex: number): TOut
          • -
          • -
            -

            Parameters

            -
              -
            • -
              previousValue: TOut
            • -
            • -
              currentValue: TIn
            • -
            • -
              currentIndex: number
            -

            Returns TOut

      • -
      • -
        initialValue: TOut
        -

        The value to start from.

        -
      -

      Returns TOut

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/resetInternalLoggerFactory.html b/5.x/docs/functions/resetInternalLoggerFactory.html deleted file mode 100644 index 5a62bcddc..000000000 --- a/5.x/docs/functions/resetInternalLoggerFactory.html +++ /dev/null @@ -1,649 +0,0 @@ -resetInternalLoggerFactory | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function resetInternalLoggerFactory

    -
    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/resolveAssetPath.html b/5.x/docs/functions/resolveAssetPath.html deleted file mode 100644 index 32f9c504a..000000000 --- a/5.x/docs/functions/resolveAssetPath.html +++ /dev/null @@ -1,650 +0,0 @@ -resolveAssetPath | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function resolveAssetPath

    -
    -
      - -
    • -

      Converts file path inputs into absolute paths. -Works similar to absoluteFilePath but paths that start with the modulePathPlaceholder -will be relative to the module directory instead of the cwd.

      -
      -
      -

      Parameters

      -
        -
      • -
        path: string = modulePathPlaceholder
      -

      Returns string

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/resolveModulePath.html b/5.x/docs/functions/resolveModulePath.html deleted file mode 100644 index 6c3354318..000000000 --- a/5.x/docs/functions/resolveModulePath.html +++ /dev/null @@ -1,648 +0,0 @@ -resolveModulePath | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function resolveModulePath

    -
    -
      - -
    • -

      Creates an absolute path starting from the @solid/community-server module root.

      -
      -
      -

      Parameters

      -
        -
      • -
        relativePath: string = ''
      -

      Returns string

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/responseToDataset.html b/5.x/docs/functions/responseToDataset.html deleted file mode 100644 index 797b70f74..000000000 --- a/5.x/docs/functions/responseToDataset.html +++ /dev/null @@ -1,655 +0,0 @@ -responseToDataset | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function responseToDataset

    -
    -
      - -
    • -

      Converts a given Response (from a request that was already made) to an RDF dataset. -In case the given Response object was already parsed its body can be passed along as a string.

      -

      The converter will be used to convert the response body to RDF.

      -

      Response will be a Representation with content-type internal/quads.

      -
      -
      -

      Parameters

      -
      -

      Returns Promise<Representation>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/sanitizeUrlPart.html b/5.x/docs/functions/sanitizeUrlPart.html deleted file mode 100644 index 914daffc5..000000000 --- a/5.x/docs/functions/sanitizeUrlPart.html +++ /dev/null @@ -1,652 +0,0 @@ -sanitizeUrlPart | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function sanitizeUrlPart

    -
    -
      - -
    • -

      Sanitizes part of a URL by replacing non-word content with a '-'.

      - -

      Returns

      The sanitized output.

      -
      -
      -

      Parameters

      -
        -
      • -
        urlPart: string
        -

        The URL part to sanitize.

        -
      -

      Returns string

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/serializeQuads.html b/5.x/docs/functions/serializeQuads.html deleted file mode 100644 index d208663b2..000000000 --- a/5.x/docs/functions/serializeQuads.html +++ /dev/null @@ -1,656 +0,0 @@ -serializeQuads | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function serializeQuads

    -
    -
      - -
    • -

      Helper function for serializing an array of quads, with as result a Readable object.

      - -

      Returns

      The Readable object.

      -
      -
      -

      Parameters

      -
        -
      • -
        quads: Quad[]
        -

        The array of quads.

        -
      • -
      • -
        Optional contentType: string
        -

        The content-type to serialize to.

        -
      -

      Returns Guarded<Readable>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/setGlobalLoggerFactory.html b/5.x/docs/functions/setGlobalLoggerFactory.html deleted file mode 100644 index fc0b4bb5f..000000000 --- a/5.x/docs/functions/setGlobalLoggerFactory.html +++ /dev/null @@ -1,651 +0,0 @@ -setGlobalLoggerFactory | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function setGlobalLoggerFactory

    -
    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/setSafeInterval.html b/5.x/docs/functions/setSafeInterval.html deleted file mode 100644 index 6a9c4e8da..000000000 --- a/5.x/docs/functions/setSafeInterval.html +++ /dev/null @@ -1,670 +0,0 @@ -setSafeInterval | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function setSafeInterval

    -
    -
      - -
    • -

      Wraps the callback for setInterval so errors get caught and logged. -Parameters are identical to the setInterval parameters starting from the 3rd argument. -The logger and message will be used when the callback throws an error. -Supports asynchronous callback functions.

      -
      -
      -

      Parameters

      -
        -
      • -
        logger: Logger
      • -
      • -
        message: string
      • -
      • -
        callback: ((...cbArgs: any[]) => void)
        -
          -
        • -
            -
          • (...cbArgs: any[]): void
          • -
          • -
            -

            Parameters

            -
              -
            • -
              Rest ...cbArgs: any[]
            -

            Returns void

      • -
      • -
        Optional ms: number
      • -
      • -
        Rest ...args: any[]
      -

      Returns NodeJS.Timeout

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/splitAndClean.html b/5.x/docs/functions/splitAndClean.html deleted file mode 100644 index b15c1cd4c..000000000 --- a/5.x/docs/functions/splitAndClean.html +++ /dev/null @@ -1,650 +0,0 @@ -splitAndClean | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function splitAndClean

    -
    -
      - -
    • -

      Splits the input string on commas, trims all parts and filters out empty ones.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: string
        -

        Input header string.

        -
      -

      Returns string[]

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/splitCommaSeparated.html b/5.x/docs/functions/splitCommaSeparated.html deleted file mode 100644 index 5d1a3c0b7..000000000 --- a/5.x/docs/functions/splitCommaSeparated.html +++ /dev/null @@ -1,652 +0,0 @@ -splitCommaSeparated | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function splitCommaSeparated

    -
    -
      - -
    • -

      Splits a string by comma.

      - -

      Returns

      A String array containining the split parts.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: string
        -

        String instance to split.

        -
      -

      Returns string[]

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/toCanonicalUriPath.html b/5.x/docs/functions/toCanonicalUriPath.html deleted file mode 100644 index ad3922183..000000000 --- a/5.x/docs/functions/toCanonicalUriPath.html +++ /dev/null @@ -1,655 +0,0 @@ -toCanonicalUriPath | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function toCanonicalUriPath

    -
    -
      - -
    • -

      Converts a URI path to the canonical version by splitting on slashes, -decoding any percent-based encodings, and then encoding any special characters. -This function is used to clean unwanted characters in the components of -the provided path.

      - -

      Returns

      The canonical URI path form of the provided path.

      -
      -
      -

      Parameters

      -
        -
      • -
        path: string
        -

        The path to convert to its canonical URI path form.

        -
      -

      Returns string

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/toComponentsJsType.html b/5.x/docs/functions/toComponentsJsType.html deleted file mode 100644 index 75e370441..000000000 --- a/5.x/docs/functions/toComponentsJsType.html +++ /dev/null @@ -1,661 +0,0 @@ -toComponentsJsType | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function toComponentsJsType

    -
    -
      - -
    • -

      Convert an exported interface name to the properly expected Components.js type URI.

      - -

      Returns

      A Components.js type URI

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T

      -
      -

      Parameters

      -
        -
      • -
        componentsManager: ComponentsManager<T>
        -

        The currently used ComponentsManager

        -
      • -
      • -
        interfaceName: string
        -

        An interface name

        -
      -

      Returns Promise<string>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/toLiteral.html b/5.x/docs/functions/toLiteral.html deleted file mode 100644 index 0114c8bb6..000000000 --- a/5.x/docs/functions/toLiteral.html +++ /dev/null @@ -1,654 +0,0 @@ -toLiteral | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -
      - -
    • -

      Creates a literal by first converting the dataType string to a named node.

      -
      -
      -

      Parameters

      -
        -
      • -
        object: string | number
        -

        Object value.

        -
      • -
      • -
        dataType: NamedNode<string>
        -

        Object data type (as string).

        -
      -

      Returns Literal

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/toNamedTerm.html b/5.x/docs/functions/toNamedTerm.html deleted file mode 100644 index beb1a95fc..000000000 --- a/5.x/docs/functions/toNamedTerm.html +++ /dev/null @@ -1,680 +0,0 @@ -toNamedTerm | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function toNamedTerm

    -
    -
      - -
    • -

      Converts a string to a named node when needed.

      -
      -
      -

      Parameters

      -
        -
      • -
        subject: string
        -

        Subject to potentially transform.

        -
      -

      Returns NamedNode

    • - -
    • -
      -

      Type Parameters

      -
        -
      • -

        T extends Term

      -
      -

      Parameters

      -
        -
      • -
        subject: T
      -

      Returns T

    • - -
    • -
      -

      Type Parameters

      -
        -
      • -

        T extends Term

      -
      -

      Parameters

      -
        -
      • -
        subject: string | T
      -

      Returns T | NamedNode

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/toObjectTerm.html b/5.x/docs/functions/toObjectTerm.html deleted file mode 100644 index 4ab0be12f..000000000 --- a/5.x/docs/functions/toObjectTerm.html +++ /dev/null @@ -1,688 +0,0 @@ -toObjectTerm | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function toObjectTerm

    -
    -
      - -
    • -

      Converts an object term when needed.

      -
      -
      -

      Parameters

      -
        -
      • -
        object: string
        -

        Object to potentially transform.

        -
      • -
      • -
        Optional preferLiteral: boolean
        -

        Whether strings are converted to literals or named nodes.

        -
      -

      Returns NamedNode

    • - -
    • -
      -

      Type Parameters

      -
        -
      • -

        T extends Term

      -
      -

      Parameters

      -
        -
      • -
        object: T
      • -
      • -
        Optional preferLiteral: boolean
      -

      Returns T

    • - -
    • -
      -

      Type Parameters

      -
        -
      • -

        T extends Term

      -
      -

      Parameters

      -
        -
      • -
        object: string | T
      • -
      • -
        Optional preferLiteral: boolean
      -

      Returns T | NamedNode

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/toPredicateTerm.html b/5.x/docs/functions/toPredicateTerm.html deleted file mode 100644 index 1063b4ffc..000000000 --- a/5.x/docs/functions/toPredicateTerm.html +++ /dev/null @@ -1,680 +0,0 @@ -toPredicateTerm | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function toPredicateTerm

    -
    -
      - -
    • -

      Converts a string to a named node when needed.

      -
      -
      -

      Parameters

      -
        -
      • -
        subject: string
        -

        Subject to potentially transform.

        -
      -

      Returns NamedNode

    • - -
    • -
      -

      Type Parameters

      -
        -
      • -

        T extends Term

      -
      -

      Parameters

      -
        -
      • -
        subject: T
      -

      Returns T

    • - -
    • -
      -

      Type Parameters

      -
        -
      • -

        T extends Term

      -
      -

      Parameters

      -
        -
      • -
        subject: string | T
      -

      Returns T | NamedNode

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/transformQuotedStrings.html b/5.x/docs/functions/transformQuotedStrings.html deleted file mode 100644 index e96eb70ad..000000000 --- a/5.x/docs/functions/transformQuotedStrings.html +++ /dev/null @@ -1,657 +0,0 @@ -transformQuotedStrings | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function transformQuotedStrings

    -
    -
      - -
    • -

      Replaces all double quoted strings in the input string with "0", "1", etc.

      - -

      Returns

      The transformed string and a map with keys "0", etc. and values the original string that was there.

      -
      -
      -

      Parameters

      -
        -
      • -
        input: string
        -

        The Accept header string.

        -
      -

      Returns { replacements: Record<string, string>; result: string }

      -
        -
      • -
        replacements: Record<string, string>
      • -
      • -
        result: string
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/transformSafely.html b/5.x/docs/functions/transformSafely.html deleted file mode 100644 index ddec7ba07..000000000 --- a/5.x/docs/functions/transformSafely.html +++ /dev/null @@ -1,661 +0,0 @@ -transformSafely | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function transformSafely

    -
    -
      - -
    • -

      Transforms a stream, ensuring that all errors are forwarded.

      - -

      Returns

      The transformed stream

      -
      -
      -

      Type Parameters

      -
        -
      • -

        T = any

      -
      -

      Parameters

      -
        -
      • -
        source: ReadableStream
        -

        The stream to be transformed

        -
      • -
      • -
        options: AsyncTransformOptions<T> = {}
        -

        The transformation options

        -
      -

      Returns Guarded<Transform>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/trimLeadingSlashes.html b/5.x/docs/functions/trimLeadingSlashes.html deleted file mode 100644 index bfc9d01ab..000000000 --- a/5.x/docs/functions/trimLeadingSlashes.html +++ /dev/null @@ -1,652 +0,0 @@ -trimLeadingSlashes | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function trimLeadingSlashes

    -
    -
      - -
    • -

      Makes sure the input path has no slashes at the beginning.

      - -

      Returns

      The potentially changed path.

      -
      -
      -

      Parameters

      -
        -
      • -
        path: string
        -

        Path to check.

        -
      -

      Returns string

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/trimTrailingSlashes.html b/5.x/docs/functions/trimTrailingSlashes.html deleted file mode 100644 index adedd9c5b..000000000 --- a/5.x/docs/functions/trimTrailingSlashes.html +++ /dev/null @@ -1,652 +0,0 @@ -trimTrailingSlashes | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function trimTrailingSlashes

    -
    -
      - -
    • -

      Makes sure the input path has no slashes at the end.

      - -

      Returns

      The potentially changed path.

      -
      -
      -

      Parameters

      -
        -
      • -
        path: string
        -

        Path to check.

        -
      -

      Returns string

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/uniqueQuads.html b/5.x/docs/functions/uniqueQuads.html deleted file mode 100644 index 6044a632e..000000000 --- a/5.x/docs/functions/uniqueQuads.html +++ /dev/null @@ -1,652 +0,0 @@ -uniqueQuads | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function uniqueQuads

    -
    -
      - -
    • -

      Filter out duplicate quads from an array.

      - -

      Returns

      A new array containing the unique quads.

      -
      -
      -

      Parameters

      -
        -
      • -
        quads: Quad[]
        -

        Quads to filter.

        -
      -

      Returns Quad[]

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/functions/updateModifiedDate.html b/5.x/docs/functions/updateModifiedDate.html deleted file mode 100644 index a41b03b00..000000000 --- a/5.x/docs/functions/updateModifiedDate.html +++ /dev/null @@ -1,654 +0,0 @@ -updateModifiedDate | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Function updateModifiedDate

    -
    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/index.html b/5.x/docs/index.html deleted file mode 100644 index 7c598be89..000000000 --- a/5.x/docs/index.html +++ /dev/null @@ -1,859 +0,0 @@ -Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    -

    Community Solid Server - v5.1.0

    -
    - -

    Community Solid Server

    -
    -

    [Solid logo]

    -

    MIT license -npm version -Node.js version -Build Status -Coverage Status -GitHub discussions -Chat on Gitter

    -

    The Community Solid Server is open software -that provides you with a Solid Pod and identity. -This Pod acts as your own personal storage space -so you can share data with people and Solid applications.

    -

    As an open and modular implementation of the -Solid specifications, -the Community Solid Server is a great companion:

    -
      -
    • 🧑🏽 for people who want to try out having their own Pod

      -
    • -
    • 👨🏿‍💻 for developers who want to create and test Solid apps

      -
    • -
    • 👩🏻‍🔬 for researchers who want to design new features for Solid

      -
    • -
    -

    And, of course, for many others who like to experience Solid.

    -

    You can install the software locally or on your server -and get started with Solid immediately.

    - - -

    ⚡ Running the server

    -
    -

    To run the server, you will need Node.js. -We support versions 14.2 and up.

    -

    If you do not use Node.js, -you can run a Docker version instead.

    - - -

    💻 Installing and running locally

    -
    -

    After installing Node.js, -install the latest server version -from the npm package repository:

    -
    npm install -g @solid/community-server
    -
    -

    To run the server with in-memory storage, use:

    -
    community-solid-server # add parameters if needed
    -
    -

    To run the server with your current folder as storage, use:

    -
    community-solid-server -c @css:config/file.json
    -
    - - -

    📃 Installing and running from source

    -
    -

    If you rather prefer to run the latest source code version, -or if you want to try a specific branch of the code, -you can use:

    -
    git clone https://github.com/CommunitySolidServer/CommunitySolidServer.git
    cd CommunitySolidServer
    npm ci
    npm start -- # add parameters if needed -
    - - -

    📦 Running via Docker

    -
    -

    Docker allows you to run the server without having Node.js installed. Images are built on each tagged version and hosted -on Docker Hub.

    -
    # Clone the repo to get access to the configs
    git clone https://github.com/CommunitySolidServer/CommunitySolidServer.git
    cd CommunitySolidServer
    # Run the image, serving your `~/Solid` directory on `http://localhost:3000`
    docker run --rm -v ~/Solid:/data -p 3000:3000 -it solidproject/community-server:latest
    # Or use one of the built-in configurations
    docker run --rm -p 3000:3000 -it solidproject/community-server -c config/default.json
    # Or use your own configuration mapped to the right directory
    docker run --rm -v ~/solid-config:/config -p 3000:3000 -it solidproject/community-server -c /config/my-config.json
    # Or use environment variables to configure your css instance
    docker run --rm -v ~/Solid:/data -p 3000:3000 -it -e CSS_CONFIG=config/file-no-setup.json -e CSS_LOGGING_LEVEL=debug solidproject/community-server -
    - - -

    🗃️ Helm Chart

    -
    -

    The official Helm Chart for Kubernetes deployment is maintained at -CommunitySolidServer/css-helm-chart and published on -ArtifactHUB. -There you will find complete installation instructions.

    -
    # Summary
    helm repo add community-solid-server https://communitysolidserver.github.io/css-helm-chart/charts/
    helm install my-css community-solid-server/community-solid-server -
    - - -

    🔧 Configuring the server

    -
    -

    The Community Solid Server is designed to be flexible -such that people can easily run different configurations. -This is useful for customizing the server with plugins, -testing applications in different setups, -or developing new parts for the server -without needing to change its base code.

    - - -

    ⏱️ Parameters

    -
    -

    An easy way to customize the server is -by passing parameters to the server command. -These parameters give you direct access -to some commonly used settings:

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    parameter namedefault valuedescription
    --port, -p3000The TCP port on which the server should listen.
    --baseUrl, -bhttp://localhost:$PORT/The base URL used internally to generate URLs. Change this if your server does not run on http://localhost:$PORT/.
    --loggingLevel, -linfoThe detail level of logging; useful for debugging problems. Use debug for full information.
    --config, -c@css:config/default.jsonThe configuration(s) for the server. The default only stores data in memory; to persist to your filesystem, use @css:config/file.json
    --rootFilePath, -f./Root folder where the server stores data, when using a file-based configuration.
    --sparqlEndpoint, -sURL of the SPARQL endpoint, when using a quadstore-based configuration.
    --showStackTrace, -tfalseEnables detailed logging on error output.
    --podConfigJson./pod-config.jsonPath to the file that keeps track of dynamic Pod configurations. Only relevant when using @css:config/dynamic.json.
    --seededPodConfigJsonPath to the file that keeps track of seeded Pod configurations.
    --mainModulePath, -mPath from where Components.js will start its lookup when initializing configurations.
    --workers, -w1Run in multithreaded mode using workers. Special values are -1 (scale to num_cores-1), 0 (scale to num_cores) and 1 (singlethreaded).
    - - -

    🔀 Multithreading

    -
    -

    The Community Solid Server can be started in multithreaded mode with any config. The config must only contain components -that are threadsafe though. If a non-threadsafe component is used in multithreaded mode, the server will describe with -an error which class is the culprit.

    -
    # Running multithreaded with autoscaling to number of logical cores minus 1
    -npm start -- -c config/file.json -w -1
    -
    - - -

    🖥️ Environment variables

    -
    -

    Parameters can also be passed through environment variables.

    -

    They are prefixed with CSS_ and converted from camelCase to CAMEL_CASE

    -
    -

    eg. --showStackTrace => CSS_SHOW_STACK_TRACE

    -
    -

    Note: command-line arguments will always override environment variables!

    - - -

    🧶 Custom configurations

    -
    -

    More substantial changes to server behavior can be achieved -by writing new configuration files in JSON-LD. -The Community Solid Server uses Components.js -to specify how modules and components need to be wired together at runtime.

    -

    Examples and guidance on configurations -are available in the config folder.

    -

    Recipes for configuring the server can be found at CommunitySolidServer/recipes.

    - - -

    👩🏽‍💻 Developing server code

    -
    -

    The server allows writing and plugging in custom modules -without altering its base source code.

    -

    The 📗 API documentation and -the 📐 architectural diagram -can help you find your way.

    -

    If you want to help out with server development, -have a look at the 📓 user documentation and -🛠️ good first issues.

    - - -

    📜 License

    -
    -

    The Solid Community Server code -is copyrighted by Inrupt Inc. -and imec -and available under the MIT License.

    -

    Core contributors are -Joachim Van Herwegen, -Ruben Verborgh, -Ruben Taelman, -and -Matthieu Bosquet.

    - - -

    🎤 Feedback and questions

    -
    -

    Don't hesitate to start a discussion -or report a bug.

    -

    Learn more about Solid at solidproject.org.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/Accept.html b/5.x/docs/interfaces/Accept.html deleted file mode 100644 index 5dd583517..000000000 --- a/5.x/docs/interfaces/Accept.html +++ /dev/null @@ -1,102 +0,0 @@ -Accept | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Contents of an HTTP Accept header. -Range is type/subtype. Both can be *.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    parameters: { extension: Record<string, string>; mediaType: Record<string, string> }
    -
    -

    Type declaration

    -
      -
    • -
      extension: Record<string, string>
      -

      Extension parameters. These are the parameters that came after the q value. -Value will be an empty string if there was none.

      -
    • -
    • -
      mediaType: Record<string, string>
      -

      Media type parameters. These are the parameters that came before the q value.

      -
    -
    - -
    range: string
    -

    Requested range. Can be a specific value or *, matching all.

    -
    -
    - -
    weight: number
    -

    Weight of the preference [0, 1].

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/AcceptCharset.html b/5.x/docs/interfaces/AcceptCharset.html deleted file mode 100644 index d85d46c60..000000000 --- a/5.x/docs/interfaces/AcceptCharset.html +++ /dev/null @@ -1,82 +0,0 @@ -AcceptCharset | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface AcceptCharset

    -
    -

    Contents of an HTTP Accept-Charset header.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    range: string
    -

    Requested range. Can be a specific value or *, matching all.

    -
    -
    - -
    weight: number
    -

    Weight of the preference [0, 1].

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/AcceptDatetime.html b/5.x/docs/interfaces/AcceptDatetime.html deleted file mode 100644 index c55dd75a8..000000000 --- a/5.x/docs/interfaces/AcceptDatetime.html +++ /dev/null @@ -1,82 +0,0 @@ -AcceptDatetime | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface AcceptDatetime

    -
    -

    Contents of an HTTP Accept-Datetime header.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    range: string
    -

    Requested range. Can be a specific value or *, matching all.

    -
    -
    - -
    weight: number
    -

    Weight of the preference [0, 1].

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/AcceptEncoding.html b/5.x/docs/interfaces/AcceptEncoding.html deleted file mode 100644 index 249b748be..000000000 --- a/5.x/docs/interfaces/AcceptEncoding.html +++ /dev/null @@ -1,82 +0,0 @@ -AcceptEncoding | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface AcceptEncoding

    -
    -

    Contents of an HTTP Accept-Encoding header.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    range: string
    -

    Requested range. Can be a specific value or *, matching all.

    -
    -
    - -
    weight: number
    -

    Weight of the preference [0, 1].

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/AcceptHeader.html b/5.x/docs/interfaces/AcceptHeader.html deleted file mode 100644 index b05b166e6..000000000 --- a/5.x/docs/interfaces/AcceptHeader.html +++ /dev/null @@ -1,84 +0,0 @@ -AcceptHeader | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface AcceptHeader

    -
    -

    General interface for all Accept* headers.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    range: string
    -

    Requested range. Can be a specific value or *, matching all.

    -
    -
    - -
    weight: number
    -

    Weight of the preference [0, 1].

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/AcceptLanguage.html b/5.x/docs/interfaces/AcceptLanguage.html deleted file mode 100644 index d993c64a4..000000000 --- a/5.x/docs/interfaces/AcceptLanguage.html +++ /dev/null @@ -1,82 +0,0 @@ -AcceptLanguage | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface AcceptLanguage

    -
    -

    Contents of an HTTP Accept-Language header.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    range: string
    -

    Requested range. Can be a specific value or *, matching all.

    -
    -
    - -
    weight: number
    -

    Weight of the preference [0, 1].

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/AccessCheckerArgs.html b/5.x/docs/interfaces/AccessCheckerArgs.html deleted file mode 100644 index 8fe68c59f..000000000 --- a/5.x/docs/interfaces/AccessCheckerArgs.html +++ /dev/null @@ -1,84 +0,0 @@ -AccessCheckerArgs | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface AccessCheckerArgs

    -
    -

    Hierarchy

    -
      -
    • AccessCheckerArgs
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    acl: Store<Quad, Quad, Quad, Quad>
    -

    A store containing the relevant triples of the authorization.

    -
    -
    - -
    credential: Credential
    -

    Credential of the entity that wants to use the resource.

    -
    -
    - -
    rule: Term
    -

    Authorization rule to be processed.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/AccountPayload.html b/5.x/docs/interfaces/AccountPayload.html deleted file mode 100644 index 63a7051d5..000000000 --- a/5.x/docs/interfaces/AccountPayload.html +++ /dev/null @@ -1,88 +0,0 @@ -AccountPayload | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface AccountPayload

    -
    -

    A payload to persist a user account

    -
    -
    -

    Hierarchy

    -
      -
    • AccountPayload
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    email: string
    -
    - -
    password: string
    -
    - -
    verified: boolean
    -
    - -
    webId: string
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/AccountSettings.html b/5.x/docs/interfaces/AccountSettings.html deleted file mode 100644 index 527e2aeda..000000000 --- a/5.x/docs/interfaces/AccountSettings.html +++ /dev/null @@ -1,87 +0,0 @@ -AccountSettings | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface AccountSettings

    -
    -

    Options that can be set on an account.

    -
    -
    -

    Hierarchy

    -
      -
    • AccountSettings
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    clientCredentials?: string[]
    -

    All credential tokens associated with this account.

    -
    -
    - -
    podBaseUrl?: string
    -

    The base URL of the pod associated with this account, if there is one.

    -
    -
    - -
    useIdp: boolean
    -

    If this account can be used to identify as the corresponding WebID in the IDP.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/AccountStore.html b/5.x/docs/interfaces/AccountStore.html deleted file mode 100644 index 525c98fe4..000000000 --- a/5.x/docs/interfaces/AccountStore.html +++ /dev/null @@ -1,341 +0,0 @@ -AccountStore | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface AccountStore

    -
    -

    Storage needed for the email-password interaction

    -
    -
    -

    Hierarchy

    -
      -
    • AccountStore
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    authenticate: ((email: string, password: string) => Promise<string>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (email: string, password: string): Promise<string>
      • -
      • -

        Authenticate if the username and password are correct and return the WebID -if it is. Throw an error if it is not.

        - -

        Returns

        The user's WebID.

        -
        -
        -

        Parameters

        -
          -
        • -
          email: string
          -

          The user's email.

          -
        • -
        • -
          password: string
          -

          This user's password.

          -
        -

        Returns Promise<string>

    -
    - -
    changePassword: ((email: string, password: string) => Promise<void>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (email: string, password: string): Promise<void>
      • -
      • -

        Changes the password.

        -
        -
        -

        Parameters

        -
          -
        • -
          email: string
          -

          The user's email.

          -
        • -
        • -
          password: string
          -

          The user's password.

          -
        -

        Returns Promise<void>

    -
    - -
    create: ((email: string, webId: string, password: string, settings: AccountSettings) => Promise<void>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (email: string, webId: string, password: string, settings: AccountSettings): Promise<void>
      • -
      • -

        Creates a new account.

        -
        -
        -

        Parameters

        -
          -
        • -
          email: string
          -

          Account email.

          -
        • -
        • -
          webId: string
          -

          Account WebID.

          -
        • -
        • -
          password: string
          -

          Account password.

          -
        • -
        • -
          settings: AccountSettings
          -

          Specific settings for the account.

          -
        -

        Returns Promise<void>

    -
    - -
    deleteAccount: ((email: string) => Promise<void>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (email: string): Promise<void>
      • -
      • -

        Delete the account.

        -
        -
        -

        Parameters

        -
          -
        • -
          email: string
          -

          The user's email.

          -
        -

        Returns Promise<void>

    -
    - -
    deleteForgotPasswordRecord: ((recordId: string) => Promise<void>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (recordId: string): Promise<void>
      • -
      • -

        Deletes the Forgot Password Confirmation Record

        -
        -
        -

        Parameters

        -
          -
        • -
          recordId: string
          -

          The record id of the forgot password confirmation record.

          -
        -

        Returns Promise<void>

    -
    - -
    generateForgotPasswordRecord: ((email: string) => Promise<string>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (email: string): Promise<string>
      • -
      • -

        Creates a Forgot Password Confirmation Record. This will be to remember that -a user has made a request to reset a password. Throws an error if the email doesn't -exist

        - -

        Returns

        The record id. This should be included in the reset password link.

        -
        -
        -

        Parameters

        -
          -
        • -
          email: string
          -

          The user's email.

          -
        -

        Returns Promise<string>

    -
    - -
    getForgotPasswordRecord: ((recordId: string) => Promise<undefined | string>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (recordId: string): Promise<undefined | string>
      • -
      • -

        Gets the email associated with the forgot password confirmation record or undefined -if it's not present

        - -

        Returns

        The user's email.

        -
        -
        -

        Parameters

        -
          -
        • -
          recordId: string
          -

          The record id retrieved from the link.

          -
        -

        Returns Promise<undefined | string>

    -
    - -
    getSettings: ((webId: string) => Promise<AccountSettings>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (webId: string): Promise<AccountSettings>
      • -
      • -

        Gets the settings associated with this account. -Errors if there is no matching account.

        -
        -
        -

        Parameters

        -
          -
        • -
          webId: string
          -

          The account WebID.

          -
        -

        Returns Promise<AccountSettings>

    -
    - -
    updateSettings: ((webId: string, settings: AccountSettings) => Promise<void>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (webId: string, settings: AccountSettings): Promise<void>
      • -
      • -

        Updates the settings associated with this account.

        -
        -
        -

        Parameters

        -
          -
        • -
          webId: string
          -

          The account WebID.

          -
        • -
        • -
          settings: AccountSettings
          -

          New settings for the account.

          -
        -

        Returns Promise<void>

    -
    - -
    verify: ((email: string) => Promise<void>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (email: string): Promise<void>
      • -
      • -

        Verifies the account creation. This can be used with, for example, e-mail verification. -The account can only be used after it is verified. -In case verification is not required, this should be called immediately after the create call.

        -
        -
        -

        Parameters

        -
          -
        • -
          email: string
          -

          The account email.

          -
        -

        Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/AdapterFactory.html b/5.x/docs/interfaces/AdapterFactory.html deleted file mode 100644 index 9ae3c3ec4..000000000 --- a/5.x/docs/interfaces/AdapterFactory.html +++ /dev/null @@ -1,88 +0,0 @@ -AdapterFactory | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface AdapterFactory

    -
    -

    A factory that generates an Adapter to be used by the IDP to persist information.

    -

    The oidc-provider library will call the relevant functions when it needs to find/create/delete metadata. -For a full explanation of how these functions work and what is expected, -have a look at https://github.com/panva/node-oidc-provider/blob/main/example/my_adapter.js

    -
    -
    -

    Hierarchy

    -
      -
    • AdapterFactory
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    createStorageAdapter: ((name: string) => Adapter)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (name: string): Adapter
      • -
      • -
        -

        Parameters

        -
          -
        • -
          name: string
        -

        Returns Adapter

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/AsyncTransformOptions.html b/5.x/docs/interfaces/AsyncTransformOptions.html deleted file mode 100644 index e826a4d80..000000000 --- a/5.x/docs/interfaces/AsyncTransformOptions.html +++ /dev/null @@ -1,363 +0,0 @@ -AsyncTransformOptions | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface AsyncTransformOptions<T>

    -
    -

    Type Parameters

    -
      -
    • -

      T = any

    -
    -

    Hierarchy

    -
      -
    • DuplexOptions -
        -
      • AsyncTransformOptions
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    allowHalfOpen?: boolean
    -
    - -
    autoDestroy?: boolean
    -
    - -
    decodeStrings?: boolean
    -
    - -
    defaultEncoding?: BufferEncoding
    -
    - -
    emitClose?: boolean
    -
    - -
    encoding?: BufferEncoding
    -
    - -
    flush?: ((this: Transform) => any)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (this: Transform): any
      • -
      • -

        Performs any final actions after the source has ended

        -
        -
        -

        Parameters

        -
          -
        • -
          this: Transform
        -

        Returns any

    -
    - -
    highWaterMark?: number
    -
    - -
    objectMode?: boolean
    -
    - -
    readableHighWaterMark?: number
    -
    - -
    readableObjectMode?: boolean
    -
    - -
    transform?: ((this: Transform, data: T, encoding: string) => any)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (this: Transform, data: T, encoding: string): any
      • -
      • -

        Transforms data from the source by calling the push method

        -
        -
        -

        Parameters

        -
          -
        • -
          this: Transform
        • -
        • -
          data: T
        • -
        • -
          encoding: string
        -

        Returns any

    -
    - -
    writableCorked?: number
    -
    - -
    writableHighWaterMark?: number
    -
    - -
    writableObjectMode?: boolean
    -
    -

    Methods

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        this: Duplex
      • -
      • -
        error: null | Error
      • -
      • -
        callback: ((error: null | Error) => void)
        -
          -
        • -
            -
          • (error: null | Error): void
          • -
          • -
            -

            Parameters

            -
              -
            • -
              error: null | Error
            -

            Returns void

      -

      Returns void

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        this: Duplex
      • -
      • -
        callback: ((error?: null | Error) => void)
        -
          -
        • -
            -
          • (error?: null | Error): void
          • -
          • -
            -

            Parameters

            -
              -
            • -
              Optional error: null | Error
            -

            Returns void

      -

      Returns void

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        this: Duplex
      • -
      • -
        size: number
      -

      Returns void

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        this: Duplex
      • -
      • -
        chunk: any
      • -
      • -
        encoding: BufferEncoding
      • -
      • -
        callback: ((error?: null | Error) => void)
        -
          -
        • -
            -
          • (error?: null | Error): void
          • -
          • -
            -

            Parameters

            -
              -
            • -
              Optional error: null | Error
            -

            Returns void

      -

      Returns void

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        this: Duplex
      • -
      • -
        chunks: { chunk: any; encoding: BufferEncoding }[]
      • -
      • -
        callback: ((error?: null | Error) => void)
        -
          -
        • -
            -
          • (error?: null | Error): void
          • -
          • -
            -

            Parameters

            -
              -
            • -
              Optional error: null | Error
            -

            Returns void

      -

      Returns void

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/AtomicDataAccessor.html b/5.x/docs/interfaces/AtomicDataAccessor.html deleted file mode 100644 index d04c71e65..000000000 --- a/5.x/docs/interfaces/AtomicDataAccessor.html +++ /dev/null @@ -1,303 +0,0 @@ -AtomicDataAccessor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface AtomicDataAccessor

    -
    -

    The AtomicDataAccessor interface has identical function signatures as -the DataAccessor, with the additional constraint that every function call -must be atomic in its effect: either the call fully succeeds, reaching the -desired new state; or it fails, upon which the resulting state remains -identical to the one before the call.

    -
    -
    -

    Hierarchy

    -
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    canHandle: ((representation: Representation) => Promise<void>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (representation: Representation): Promise<void>
      • -
      • -

        Should throw a NotImplementedHttpError if the DataAccessor does not support storing the given Representation.

        - -

        Throws

        BadRequestHttpError -If it does not support the incoming data.

        -
        -
        -

        Parameters

        -
        -

        Returns Promise<void>

    -
    - -
    deleteResource: ((identifier: ResourceIdentifier) => Promise<void>)
    -
    -

    Type declaration

    -
    -
    - -
    getChildren: ((identifier: ResourceIdentifier) => AsyncIterableIterator<RepresentationMetadata>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier): AsyncIterableIterator<RepresentationMetadata>
      • -
      • -

        Returns metadata for all resources in the requested container. -This should not be all metadata of those resources (but it can be), -but instead the main metadata you want to show in situations -where all these resources are presented simultaneously. -Generally this would be metadata that is present for all of these resources, -such as resource type or last modified date.

        -

        It can be safely assumed that the incoming identifier will always correspond to a container.

        -
        -
        -

        Parameters

        -
        -

        Returns AsyncIterableIterator<RepresentationMetadata>

    -
    - -
    getData: ((identifier: ResourceIdentifier) => Promise<Guarded<Readable>>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier): Promise<Guarded<Readable>>
      • -
      • -

        Returns a data stream stored for the given identifier. -It can be assumed that the incoming identifier will always correspond to a document.

        -
        -
        -

        Parameters

        -
        -

        Returns Promise<Guarded<Readable>>

    -
    - -
    getMetadata: ((identifier: ResourceIdentifier) => Promise<RepresentationMetadata>)
    -
    -

    Type declaration

    -
    -
    - -
    writeContainer: ((identifier: ResourceIdentifier, metadata: RepresentationMetadata) => Promise<void>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier, metadata: RepresentationMetadata): Promise<void>
      • -
      • -

        Writes metadata for a container. -If the container does not exist yet it should be created, -if it does its metadata should be overwritten, except for the containment triples.

        -
        -
        -

        Parameters

        -
        -

        Returns Promise<void>

    -
    - -
    writeDocument: ((identifier: ResourceIdentifier, data: Guarded<Readable>, metadata: RepresentationMetadata) => Promise<void>)
    -
    -

    Type declaration

    -
    -
    - -
    writeMetadata: ((identifier: ResourceIdentifier, metadata: RepresentationMetadata) => Promise<void>)
    -
    -

    Type declaration

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/AtomicResourceStore.html b/5.x/docs/interfaces/AtomicResourceStore.html deleted file mode 100644 index 883c0d660..000000000 --- a/5.x/docs/interfaces/AtomicResourceStore.html +++ /dev/null @@ -1,266 +0,0 @@ -AtomicResourceStore | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface AtomicResourceStore

    -
    -

    A ResourceStore of which all operations are atomic.

    -
    -
    -

    Hierarchy

    -
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    addResource: ((container: ResourceIdentifier, representation: Representation, conditions?: Conditions) => Promise<ChangeMap>)
    -
    -

    Type declaration

    -
    -
    - -
    deleteResource: ((identifier: ResourceIdentifier, conditions?: Conditions) => Promise<ChangeMap>)
    -
    -

    Type declaration

    -
    -
    - -
    getRepresentation: ((identifier: ResourceIdentifier, preferences: RepresentationPreferences, conditions?: Conditions) => Promise<Representation>)
    -
    -

    Type declaration

    -
    -
    - -
    hasResource: ((identifier: ResourceIdentifier) => Promise<boolean>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier): Promise<boolean>
      • -
      • -

        Check if a resource exists in this ResourceSet.

        - -

        Returns

        A promise resolving if the resource already exists.

        -
        -
        -

        Parameters

        -
        -

        Returns Promise<boolean>

    -
    - -
    modifyResource: ((identifier: ResourceIdentifier, patch: Patch, conditions?: Conditions) => Promise<ChangeMap>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier, patch: Patch, conditions?: Conditions): Promise<ChangeMap>
      • -
      • -

        Sets or updates the representation of a resource, -creating a new resource and intermediary containers as needed.

        - -

        Returns

        A ChangeMap.

        -
        -
        -

        Parameters

        -
          -
        • -
          identifier: ResourceIdentifier
          -

          Identifier of resource to update.

          -
        • -
        • -
          patch: Patch
          -

          Description of which parts to update.

          -
        • -
        • -
          Optional conditions: Conditions
          -

          Optional conditions under which to proceed.

          -
        -

        Returns Promise<ChangeMap>

    -
    - -
    setRepresentation: ((identifier: ResourceIdentifier, representation: Representation, conditions?: Conditions) => Promise<ChangeMap>)
    -
    -

    Type declaration

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/AuthorizerInput.html b/5.x/docs/interfaces/AuthorizerInput.html deleted file mode 100644 index 4fc5930dc..000000000 --- a/5.x/docs/interfaces/AuthorizerInput.html +++ /dev/null @@ -1,84 +0,0 @@ -AuthorizerInput | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface AuthorizerInput

    -
    -

    Hierarchy

    -
      -
    • AuthorizerInput
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    availablePermissions: PermissionMap
    -

    Actual permissions available per resource and per credential group.

    -
    -
    - -
    credentials: Partial<Record<CredentialGroup, Credential>>
    -

    Credentials of the entity that wants to use the resource.

    -
    -
    - -
    requestedModes: AccessMap
    -

    Requested access modes per resource.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/AuthorizingHttpHandlerArgs.html b/5.x/docs/interfaces/AuthorizingHttpHandlerArgs.html deleted file mode 100644 index 5e74dd279..000000000 --- a/5.x/docs/interfaces/AuthorizingHttpHandlerArgs.html +++ /dev/null @@ -1,102 +0,0 @@ -AuthorizingHttpHandlerArgs | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface AuthorizingHttpHandlerArgs

    -
    -

    Hierarchy

    -
      -
    • AuthorizingHttpHandlerArgs
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    authorizer: Authorizer
    -

    Verifies if the requested operation is allowed.

    -
    -
    - -
    credentialsExtractor: CredentialsExtractor
    -

    Extracts the credentials from the incoming request.

    -
    -
    - -
    modesExtractor: ModesExtractor
    -

    Extracts the required modes from the generated Operation.

    -
    -
    - -
    operationHandler: OperationHttpHandler
    -

    Handler to call if the operation is authorized.

    -
    -
    - -
    permissionReader: PermissionReader
    -

    Reads the permissions available for the Operation.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/AuxiliaryIdentifierStrategy.html b/5.x/docs/interfaces/AuxiliaryIdentifierStrategy.html deleted file mode 100644 index 587da1949..000000000 --- a/5.x/docs/interfaces/AuxiliaryIdentifierStrategy.html +++ /dev/null @@ -1,178 +0,0 @@ -AuxiliaryIdentifierStrategy | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface AuxiliaryIdentifierStrategy

    -
    -

    A strategy for handling auxiliary related ResourceIdentifiers.

    -
    -
    -

    Hierarchy

    -
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    getAuxiliaryIdentifier: ((identifier: ResourceIdentifier) => ResourceIdentifier)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier): ResourceIdentifier
      • -
      • -

        Returns the identifier of the auxiliary resource corresponding to the given resource. -This does not guarantee that this auxiliary resource exists.

        -

        Should error if there are multiple results: see getAuxiliaryIdentifiers.

        - -

        Returns

        The ResourceIdentifier of the corresponding auxiliary resource.

        -
        -
        -

        Parameters

        -
          -
        • -
          identifier: ResourceIdentifier
          -

          The ResourceIdentifier of which we need the corresponding auxiliary resource.

          -
        -

        Returns ResourceIdentifier

    -
    - -
    getAuxiliaryIdentifiers: ((identifier: ResourceIdentifier) => ResourceIdentifier[])
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier): ResourceIdentifier[]
      • -
      • -

        Returns all the identifiers of corresponding auxiliary resources. -This can be used when there are potentially multiple results. -In the case of a single result this should be an array containing the result of getAuxiliaryIdentifier.

        - -

        Returns

        The ResourceIdentifiers of the corresponding auxiliary resources.

        -
        -
        -

        Parameters

        -
          -
        • -
          identifier: ResourceIdentifier
          -

          The ResourceIdentifier of which we need the corresponding auxiliary resources.

          -
        -

        Returns ResourceIdentifier[]

    -
    - -
    getSubjectIdentifier: ((identifier: ResourceIdentifier) => ResourceIdentifier)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier): ResourceIdentifier
      • -
      • -

        Returns the identifier of the resource which this auxiliary resource is referring to. -This does not guarantee that this resource exists.

        - -

        Returns

        The ResourceIdentifier of the subject resource.

        -
        -
        -

        Parameters

        -
        -

        Returns ResourceIdentifier

    -
    - -
    isAuxiliaryIdentifier: ((identifier: ResourceIdentifier) => boolean)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier): boolean
      • -
      • -

        Checks if the input identifier corresponds to an auxiliary resource. -This does not check if that auxiliary resource exists, -only if the identifier indicates that there could be an auxiliary resource there.

        - -

        Returns

        true if the input identifier points to an auxiliary resource.

        -
        -
        -

        Parameters

        -
        -

        Returns boolean

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/AuxiliaryStrategy.html b/5.x/docs/interfaces/AuxiliaryStrategy.html deleted file mode 100644 index cdee4459b..000000000 --- a/5.x/docs/interfaces/AuxiliaryStrategy.html +++ /dev/null @@ -1,290 +0,0 @@ -AuxiliaryStrategy | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface AuxiliaryStrategy

    -
    -

    A strategy for handling one or more types of auxiliary resources. -References to "an auxiliary resource" implicitly imply a specific type of auxiliary resources -supported by this strategy.

    -
    -
    -

    Hierarchy

    -
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    addMetadata: ((metadata: RepresentationMetadata) => Promise<void>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (metadata: RepresentationMetadata): Promise<void>
      • -
      • -

        Adds metadata related to this auxiliary resource, -in case this is required for this type of auxiliary resource. -The metadata that is added depends on the given identifier being an auxiliary or subject resource: -the metadata will be used to link to the other one, and potentially add extra typing info.

        -

        Used for: -Solid, §4.3.1: "For any defined auxiliary resource available for a given Solid resource, all representations of -that resource MUST include an HTTP Link header pointing to the location of each auxiliary resource." -https://solid.github.io/specification/protocol#auxiliary-resources-server

        -

        The above is an example of how that metadata would only be added in case the input is the subject identifier.

        -
        -
        -

        Parameters

        -
        -

        Returns Promise<void>

    -
    - -
    getAuxiliaryIdentifier: ((identifier: ResourceIdentifier) => ResourceIdentifier)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier): ResourceIdentifier
      • -
      • -

        Returns the identifier of the auxiliary resource corresponding to the given resource. -This does not guarantee that this auxiliary resource exists.

        -

        Should error if there are multiple results: see getAuxiliaryIdentifiers.

        - -

        Returns

        The ResourceIdentifier of the corresponding auxiliary resource.

        -
        -
        -

        Parameters

        -
          -
        • -
          identifier: ResourceIdentifier
          -

          The ResourceIdentifier of which we need the corresponding auxiliary resource.

          -
        -

        Returns ResourceIdentifier

    -
    - -
    getAuxiliaryIdentifiers: ((identifier: ResourceIdentifier) => ResourceIdentifier[])
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier): ResourceIdentifier[]
      • -
      • -

        Returns all the identifiers of corresponding auxiliary resources. -This can be used when there are potentially multiple results. -In the case of a single result this should be an array containing the result of getAuxiliaryIdentifier.

        - -

        Returns

        The ResourceIdentifiers of the corresponding auxiliary resources.

        -
        -
        -

        Parameters

        -
          -
        • -
          identifier: ResourceIdentifier
          -

          The ResourceIdentifier of which we need the corresponding auxiliary resources.

          -
        -

        Returns ResourceIdentifier[]

    -
    - -
    getSubjectIdentifier: ((identifier: ResourceIdentifier) => ResourceIdentifier)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier): ResourceIdentifier
      • -
      • -

        Returns the identifier of the resource which this auxiliary resource is referring to. -This does not guarantee that this resource exists.

        - -

        Returns

        The ResourceIdentifier of the subject resource.

        -
        -
        -

        Parameters

        -
        -

        Returns ResourceIdentifier

    -
    - -
    isAuxiliaryIdentifier: ((identifier: ResourceIdentifier) => boolean)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier): boolean
      • -
      • -

        Checks if the input identifier corresponds to an auxiliary resource. -This does not check if that auxiliary resource exists, -only if the identifier indicates that there could be an auxiliary resource there.

        - -

        Returns

        true if the input identifier points to an auxiliary resource.

        -
        -
        -

        Parameters

        -
        -

        Returns boolean

    -
    - -
    isRequiredInRoot: ((identifier: ResourceIdentifier) => boolean)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier): boolean
      • -
      • -

        Whether the root storage container requires this auxiliary resource to be present. -If yes, this means they can't be deleted individually from such a container.

        -
        -
        -

        Parameters

        -
        -

        Returns boolean

    -
    - -
    usesOwnAuthorization: ((identifier: ResourceIdentifier) => boolean)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier): boolean
      • -
      • -

        Whether this auxiliary resources uses its own authorization instead of the subject resource authorization.

        -
        -
        -

        Parameters

        -
        -

        Returns boolean

    -
    - -
    validate: ((representation: Representation) => Promise<void>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (representation: Representation): Promise<void>
      • -
      • -

        Validates if the representation contains valid data for an auxiliary resource. -Should throw an error in case the data is invalid.

        -
        -
        -

        Parameters

        -
          -
        • -
          representation: Representation
          -

          Representation of the auxiliary resource.

          -
        -

        Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/BaseHttpServerOptions.html b/5.x/docs/interfaces/BaseHttpServerOptions.html deleted file mode 100644 index f223be0d7..000000000 --- a/5.x/docs/interfaces/BaseHttpServerOptions.html +++ /dev/null @@ -1,109 +0,0 @@ -BaseHttpServerOptions | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface BaseHttpServerOptions

    -
    -

    Options to be used when creating the server. -Due to Components.js not supporting external types, this has been simplified (for now?). -The common https keys here (key/cert/pfx) will be interpreted as file paths that need to be read -before passing the options to the createServer function.

    -
    -
    -

    Hierarchy

    -
      -
    • BaseHttpServerOptions
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    cert?: string
    -
    - -
    https?: boolean
    -

    If the server should start as an http or https server.

    -
    -
    - -
    key?: string
    -
    - -
    passphrase?: string
    -
    - -
    pfx?: string
    -
    - -
    showStackTrace?: boolean
    -

    If the error stack traces should be shown in case the HttpHandler throws one.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/BasicConditionsOptions.html b/5.x/docs/interfaces/BasicConditionsOptions.html deleted file mode 100644 index c183565ed..000000000 --- a/5.x/docs/interfaces/BasicConditionsOptions.html +++ /dev/null @@ -1,85 +0,0 @@ -BasicConditionsOptions | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface BasicConditionsOptions

    -
    -

    Hierarchy

    -
      -
    • BasicConditionsOptions
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    matchesETag?: string[]
    -
    - -
    modifiedSince?: Date
    -
    - -
    notMatchesETag?: string[]
    -
    - -
    unmodifiedSince?: Date
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/BasicRequestParserArgs.html b/5.x/docs/interfaces/BasicRequestParserArgs.html deleted file mode 100644 index 8d2ea5d82..000000000 --- a/5.x/docs/interfaces/BasicRequestParserArgs.html +++ /dev/null @@ -1,95 +0,0 @@ -BasicRequestParserArgs | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface BasicRequestParserArgs

    -
    -

    Input parsers required for a BasicRequestParser.

    -
    -
    -

    Hierarchy

    -
      -
    • BasicRequestParserArgs
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    bodyParser: BodyParser
    -
    - -
    conditionsParser: ConditionsParser
    -
    - -
    metadataParser: MetadataParser
    -
    - -
    preferenceParser: PreferenceParser
    -
    - -
    targetExtractor: TargetExtractor
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/BodyParserArgs.html b/5.x/docs/interfaces/BodyParserArgs.html deleted file mode 100644 index fd759ae36..000000000 --- a/5.x/docs/interfaces/BodyParserArgs.html +++ /dev/null @@ -1,76 +0,0 @@ -BodyParserArgs | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface BodyParserArgs

    -
    -

    Hierarchy

    -
      -
    • BodyParserArgs
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - - -

    Metadata that has already been parsed from the request. -Can be updated by the BodyParser with extra metadata.

    -
    -
    - -
    request: HttpRequest
    -

    Request that contains the (potential) body.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/CliOptions.html b/5.x/docs/interfaces/CliOptions.html deleted file mode 100644 index d314c7268..000000000 --- a/5.x/docs/interfaces/CliOptions.html +++ /dev/null @@ -1,85 +0,0 @@ -CliOptions | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface CliOptions

    -
    -

    Hierarchy

    -
      -
    • CliOptions
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    envVarPrefix?: string
    -
    - -
    loadFromEnv?: boolean
    -
    - -
    strictMode?: boolean
    -
    - -
    usage?: string
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/ClientCredentials.html b/5.x/docs/interfaces/ClientCredentials.html deleted file mode 100644 index d16fe02c9..000000000 --- a/5.x/docs/interfaces/ClientCredentials.html +++ /dev/null @@ -1,71 +0,0 @@ -ClientCredentials | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface ClientCredentials

    -
    -

    Hierarchy

    -
      -
    • ClientCredentials
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    secret: string
    -
    - -
    webId: string
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/ComponentsJsFactory.html b/5.x/docs/interfaces/ComponentsJsFactory.html deleted file mode 100644 index d56ae5962..000000000 --- a/5.x/docs/interfaces/ComponentsJsFactory.html +++ /dev/null @@ -1,103 +0,0 @@ -ComponentsJsFactory | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface ComponentsJsFactory

    -
    -

    Used for instantiating new object using Components.js configurations.

    -
    -
    -

    Hierarchy

    -
      -
    • ComponentsJsFactory
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    generate: (<T>(configPath: string, componentIri: string, variables: Record<string, any>) => Promise<T>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • <T>(configPath: string, componentIri: string, variables: Record<string, any>): Promise<T>
      • -
      • -

        Instantiates a new object using Components.js.

        - -

        Returns

        The resulting object, corresponding to the given component IRI.

        -
        -
        -

        Type Parameters

        -
          -
        • -

          T

        -
        -

        Parameters

        -
          -
        • -
          configPath: string
          -

          Location of the config to instantiate.

          -
        • -
        • -
          componentIri: string
          -

          Iri of the object in the config that will be the result.

          -
        • -
        • -
          variables: Record<string, any>
          -

          Variables to send to Components.js

          -
        -

        Returns Promise<T>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/Conditions.html b/5.x/docs/interfaces/Conditions.html deleted file mode 100644 index acd4aec09..000000000 --- a/5.x/docs/interfaces/Conditions.html +++ /dev/null @@ -1,154 +0,0 @@ -Conditions | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface Conditions

    -
    -

    The conditions of an HTTP conditional request.

    -
    -
    -

    Hierarchy

    -
      -
    • Conditions
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    matches: ((eTag?: string, lastModified?: Date) => boolean)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (eTag?: string, lastModified?: Date): boolean
      • -
      • -

        Checks validity based on the given ETag and/or date. -This function assumes the resource being checked exists. -If not, the matchesMetadata function should be used.

        -
        -
        -

        Parameters

        -
          -
        • -
          Optional eTag: string
          -

          Condition based on ETag.

          -
        • -
        • -
          Optional lastModified: Date
          -

          Condition based on last modified date.

          -
        -

        Returns boolean

    -
    - -
    matchesETag?: string[]
    -

    Valid if matching any of the given ETags.

    -
    -
    - -
    matchesMetadata: ((metadata?: RepresentationMetadata) => boolean)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (metadata?: RepresentationMetadata): boolean
      • -
      • -

        Checks validity based on the given metadata.

        -
        -
        -

        Parameters

        -
          -
        • -
          Optional metadata: RepresentationMetadata
          -

          Metadata of the representation. Undefined if the resource does not exist.

          -
        -

        Returns boolean

    -
    - -
    modifiedSince?: Date
    -

    Valid if modified since the given date.

    -
    -
    - -
    notMatchesETag?: string[]
    -

    Valid if not matching any of the given ETags.

    -
    -
    - -
    unmodifiedSince?: Date
    -

    Valid if not modified since the given date.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/ConstantConverterOptions.html b/5.x/docs/interfaces/ConstantConverterOptions.html deleted file mode 100644 index f1bed5ea1..000000000 --- a/5.x/docs/interfaces/ConstantConverterOptions.html +++ /dev/null @@ -1,105 +0,0 @@ -ConstantConverterOptions | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface ConstantConverterOptions

    -
    -

    Extra options for the ConstantConverter.

    -
    -
    -

    Hierarchy

    -
      -
    • ConstantConverterOptions
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    container?: boolean
    -

    Whether this should trigger on containers.

    -
    -
    - -
    disabledMediaRanges?: string[]
    -

    Media ranges for which the conversion should not happen.

    -
    -
    - -
    document?: boolean
    -

    Whether this should trigger on documents.

    -
    -
    - -
    enabledMediaRanges?: string[]
    -

    Media ranges for which the conversion should happen.

    -
    -
    - -
    minQuality?: number
    -

    The minimum requested quality/preference before this should trigger.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/ContainerInitializerArgs.html b/5.x/docs/interfaces/ContainerInitializerArgs.html deleted file mode 100644 index 6b912990e..000000000 --- a/5.x/docs/interfaces/ContainerInitializerArgs.html +++ /dev/null @@ -1,111 +0,0 @@ -ContainerInitializerArgs | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface ContainerInitializerArgs

    -
    -

    Hierarchy

    -
      -
    • ContainerInitializerArgs
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    baseUrl: string
    -

    Base URL of the server.

    -
    -
    - - -

    Generator that should be used to generate container contents.

    -
    -
    - -
    path: string
    -

    Relative path of the container.

    -
    -
    - -
    storage: KeyValueStorage<string, boolean>
    -

    Used to store initialization status.

    -
    -
    - -
    storageKey: string
    -

    Key that is used to store the boolean in the storage indicating the container is initialized.

    -
    -
    - - -

    ResourceStore where the container should be stored.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/ConvertingStoreEntry.html b/5.x/docs/interfaces/ConvertingStoreEntry.html deleted file mode 100644 index 2ed741230..000000000 --- a/5.x/docs/interfaces/ConvertingStoreEntry.html +++ /dev/null @@ -1,71 +0,0 @@ -ConvertingStoreEntry | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface ConvertingStoreEntry

    -
    -

    Hierarchy

    -
      -
    • ConvertingStoreEntry
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    -
    - -
    supportChecker: PreferenceSupport
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/Credential.html b/5.x/docs/interfaces/Credential.html deleted file mode 100644 index 9d7ccb7dc..000000000 --- a/5.x/docs/interfaces/Credential.html +++ /dev/null @@ -1,67 +0,0 @@ -Credential | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface Credential

    -
    -

    Credentials identifying an entity accessing or owning data.

    -
    -
    -

    Hierarchy

    -
      -
    • Credential
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    webId?: string
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/CredentialsHandlerBody.html b/5.x/docs/interfaces/CredentialsHandlerBody.html deleted file mode 100644 index aa4c75545..000000000 --- a/5.x/docs/interfaces/CredentialsHandlerBody.html +++ /dev/null @@ -1,73 +0,0 @@ -CredentialsHandlerBody | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface CredentialsHandlerBody

    -
    -

    Hierarchy

    -
      -
    • Record<string, unknown> -
        -
      • CredentialsHandlerBody
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    email: string
    -
    - -
    webId: string
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/CredentialsHandlerInput.html b/5.x/docs/interfaces/CredentialsHandlerInput.html deleted file mode 100644 index f134d0f36..000000000 --- a/5.x/docs/interfaces/CredentialsHandlerInput.html +++ /dev/null @@ -1,75 +0,0 @@ -CredentialsHandlerInput | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface CredentialsHandlerInput

    -
    -

    body is the parsed JSON from operation.body.data with the WebID of the account having been added. -This means that the data stream in the Operation can not be read again.

    -
    -
    -

    Hierarchy

    -
      -
    • CredentialsHandlerInput
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    -
    - -
    operation: Operation
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/DataAccessor.html b/5.x/docs/interfaces/DataAccessor.html deleted file mode 100644 index ed6fb8d78..000000000 --- a/5.x/docs/interfaces/DataAccessor.html +++ /dev/null @@ -1,302 +0,0 @@ -DataAccessor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface DataAccessor

    -
    -

    A DataAccessor is the building block closest to the actual data storage. -It should not worry about most Solid logic, most of that will be handled before it is called. -There are a few things it still needs to do, and it is very important every implementation does this:

    -
      -
    • If the input identifier ends with a slash, it should be assumed the identifier is targeting a container.
    • -
    • Similarly, if there is no trailing slash it should assume a document.
    • -
    • It should always throw a NotFoundHttpError if it does not have data matching the input identifier.
    • -
    • DataAccessors should not generate containment triples. This will be done externally using getChildren.
    • -
    -
    -
    -

    Hierarchy

    -
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    canHandle: ((representation: Representation) => Promise<void>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (representation: Representation): Promise<void>
      • -
      • -

        Should throw a NotImplementedHttpError if the DataAccessor does not support storing the given Representation.

        - -

        Throws

        BadRequestHttpError -If it does not support the incoming data.

        -
        -
        -

        Parameters

        -
        -

        Returns Promise<void>

    -
    - -
    deleteResource: ((identifier: ResourceIdentifier) => Promise<void>)
    -
    -

    Type declaration

    -
    -
    - -
    getChildren: ((identifier: ResourceIdentifier) => AsyncIterableIterator<RepresentationMetadata>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier): AsyncIterableIterator<RepresentationMetadata>
      • -
      • -

        Returns metadata for all resources in the requested container. -This should not be all metadata of those resources (but it can be), -but instead the main metadata you want to show in situations -where all these resources are presented simultaneously. -Generally this would be metadata that is present for all of these resources, -such as resource type or last modified date.

        -

        It can be safely assumed that the incoming identifier will always correspond to a container.

        -
        -
        -

        Parameters

        -
        -

        Returns AsyncIterableIterator<RepresentationMetadata>

    -
    - -
    getData: ((identifier: ResourceIdentifier) => Promise<Guarded<Readable>>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier): Promise<Guarded<Readable>>
      • -
      • -

        Returns a data stream stored for the given identifier. -It can be assumed that the incoming identifier will always correspond to a document.

        -
        -
        -

        Parameters

        -
        -

        Returns Promise<Guarded<Readable>>

    -
    - -
    getMetadata: ((identifier: ResourceIdentifier) => Promise<RepresentationMetadata>)
    -
    -

    Type declaration

    -
    -
    - -
    writeContainer: ((identifier: ResourceIdentifier, metadata: RepresentationMetadata) => Promise<void>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier, metadata: RepresentationMetadata): Promise<void>
      • -
      • -

        Writes metadata for a container. -If the container does not exist yet it should be created, -if it does its metadata should be overwritten, except for the containment triples.

        -
        -
        -

        Parameters

        -
        -

        Returns Promise<void>

    -
    - -
    writeDocument: ((identifier: ResourceIdentifier, data: Guarded<Readable>, metadata: RepresentationMetadata) => Promise<void>)
    -
    -

    Type declaration

    -
    -
    - -
    writeMetadata: ((identifier: ResourceIdentifier, metadata: RepresentationMetadata) => Promise<void>)
    -
    -

    Type declaration

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/EmailArgs.html b/5.x/docs/interfaces/EmailArgs.html deleted file mode 100644 index f3e37697c..000000000 --- a/5.x/docs/interfaces/EmailArgs.html +++ /dev/null @@ -1,85 +0,0 @@ -EmailArgs | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface EmailArgs

    -
    -

    Hierarchy

    -
      -
    • EmailArgs
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    html: string
    -
    - -
    recipient: string
    -
    - -
    subject: string
    -
    - -
    text: string
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/EmailSenderArgs.html b/5.x/docs/interfaces/EmailSenderArgs.html deleted file mode 100644 index d4e4520d1..000000000 --- a/5.x/docs/interfaces/EmailSenderArgs.html +++ /dev/null @@ -1,85 +0,0 @@ -EmailSenderArgs | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface EmailSenderArgs

    -
    -

    Hierarchy

    -
      -
    • EmailSenderArgs
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    emailConfig: { auth: { pass: string; user: string }; host: string; port: number }
    -
    -

    Type declaration

    -
      -
    • -
      auth: { pass: string; user: string }
      -
        -
      • -
        pass: string
      • -
      • -
        user: string
    • -
    • -
      host: string
    • -
    • -
      port: number
    -
    - -
    senderName?: string
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/ErrorHandlerArgs.html b/5.x/docs/interfaces/ErrorHandlerArgs.html deleted file mode 100644 index 1d5bbe4dd..000000000 --- a/5.x/docs/interfaces/ErrorHandlerArgs.html +++ /dev/null @@ -1,71 +0,0 @@ -ErrorHandlerArgs | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface ErrorHandlerArgs

    -
    -

    Hierarchy

    -
      -
    • ErrorHandlerArgs
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    error: Error
    -
    - -
    request: HttpRequest
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/ExpiringReadWriteLocker.html b/5.x/docs/interfaces/ExpiringReadWriteLocker.html deleted file mode 100644 index fd1f563dd..000000000 --- a/5.x/docs/interfaces/ExpiringReadWriteLocker.html +++ /dev/null @@ -1,175 +0,0 @@ -ExpiringReadWriteLocker | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface ExpiringReadWriteLocker

    -
    -

    A ReadWriteLocker where the locks expire after a given time.

    -
    -
    -

    Hierarchy

    -
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    withReadLock: (<T>(identifier: ResourceIdentifier, whileLocked: ((maintainLock: (() => void)) => T | Promise<T>)) => Promise<T>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • <T>(identifier: ResourceIdentifier, whileLocked: ((maintainLock: (() => void)) => T | Promise<T>)): Promise<T>
      • -
      • -

        As withReadLock but the locked function gets called with a maintainLock callback function -to reset the lock expiration every time it is called. -The resulting promise will reject once the lock expires.

        -
        -
        -

        Type Parameters

        -
          -
        • -

          T

        -
        -

        Parameters

        -
          -
        • -
          identifier: ResourceIdentifier
          -

          Identifier of the resource that needs to be locked.

          -
        • -
        • -
          whileLocked: ((maintainLock: (() => void)) => T | Promise<T>)
          -

          A function to execute while the resource is locked. -Receives a callback as input parameter to maintain the lock.

          -
          -
            -
          • -
              -
            • (maintainLock: (() => void)): T | Promise<T>
            • -
            • -
              -

              Parameters

              -
                -
              • -
                maintainLock: (() => void)
                -
                  -
                • -
                    -
                  • (): void
                  • -
                  • -

                    Returns void

              -

              Returns T | Promise<T>

        -

        Returns Promise<T>

    -
    - -
    withWriteLock: (<T>(identifier: ResourceIdentifier, whileLocked: ((maintainLock: (() => void)) => T | Promise<T>)) => Promise<T>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • <T>(identifier: ResourceIdentifier, whileLocked: ((maintainLock: (() => void)) => T | Promise<T>)): Promise<T>
      • -
      • -

        As withWriteLock but the locked function gets called with a maintainLock -callback function to reset the lock expiration every time it is called. -The resulting promise will reject once the lock expires.

        -
        -
        -

        Type Parameters

        -
          -
        • -

          T

        -
        -

        Parameters

        -
          -
        • -
          identifier: ResourceIdentifier
          -

          Identifier of the resource that needs to be locked.

          -
        • -
        • -
          whileLocked: ((maintainLock: (() => void)) => T | Promise<T>)
          -

          A function to execute while the resource is locked. -Receives a callback as input parameter to maintain the lock.

          -
          -
            -
          • -
              -
            • (maintainLock: (() => void)): T | Promise<T>
            • -
            • -
              -

              Parameters

              -
                -
              • -
                maintainLock: (() => void)
                -
                  -
                • -
                    -
                  • (): void
                  • -
                  • -

                    Returns void

              -

              Returns T | Promise<T>

        -

        Returns Promise<T>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/ExpiringStorage.html b/5.x/docs/interfaces/ExpiringStorage.html deleted file mode 100644 index d71f727d7..000000000 --- a/5.x/docs/interfaces/ExpiringStorage.html +++ /dev/null @@ -1,228 +0,0 @@ -ExpiringStorage | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface ExpiringStorage<TKey, TValue>

    -
    -

    A KeyValueStorage in which the values can expire. -Entries with no expiration date never expire.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      TKey

    • -
    • -

      TValue

    -
    -

    Hierarchy

    -
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    set -
    -
    -

    Properties

    -
    - -
    delete: ((key: TKey) => Promise<boolean>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (key: TKey): Promise<boolean>
      • -
      • -

        Deletes the value stored for the given key.

        - -

        Returns

        If there was a value to delete.

        -
        -
        -

        Parameters

        -
          -
        • -
          key: TKey
          -

          Key to delete.

          -
        -

        Returns Promise<boolean>

    -
    - -
    entries: (() => AsyncIterableIterator<[TKey, TValue]>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (): AsyncIterableIterator<[TKey, TValue]>
      • -
      • -

        An iterable of entries in the storage.

        -
        -

        Returns AsyncIterableIterator<[TKey, TValue]>

    -
    - -
    get: ((key: TKey) => Promise<undefined | TValue>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (key: TKey): Promise<undefined | TValue>
      • -
      • -

        Returns the value stored for the given identifier. -undefined if no value is stored.

        -
        -
        -

        Parameters

        -
          -
        • -
          key: TKey
        -

        Returns Promise<undefined | TValue>

    -
    - -
    has: ((key: TKey) => Promise<boolean>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (key: TKey): Promise<boolean>
      • -
      • -

        Checks if there is a value stored for the given key.

        -
        -
        -

        Parameters

        -
          -
        • -
          key: TKey
        -

        Returns Promise<boolean>

    -
    -

    Methods

    -
    - -
      - -
    • -

      Sets the value for the given key. -Should error if the data is already expired.

      - -

      Returns

      The storage.

      -
      -
      -

      Parameters

      -
        -
      • -
        key: TKey
        -

        Key to set/update.

        -
      • -
      • -
        value: TValue
        -

        Value to store.

        -
      • -
      • -
        Optional expiration: number
        -

        How long this data should stay valid in milliseconds.

        -
      -

      Returns Promise<ExpiringStorage<TKey, TValue>>

    • - -
    • -

      Sets the value for the given key. -Should error if the data is already expired.

      - -

      Returns

      The storage.

      -
      -
      -

      Parameters

      -
        -
      • -
        key: TKey
        -

        Key to set/update.

        -
      • -
      • -
        value: TValue
        -

        Value to store.

        -
      • -
      • -
        Optional expires: Date
        -

        When this value expires. Never if undefined.

        -
      -

      Returns Promise<ExpiringStorage<TKey, TValue>>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/FileIdentifierMapper.html b/5.x/docs/interfaces/FileIdentifierMapper.html deleted file mode 100644 index cc551ccb5..000000000 --- a/5.x/docs/interfaces/FileIdentifierMapper.html +++ /dev/null @@ -1,131 +0,0 @@ -FileIdentifierMapper | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface FileIdentifierMapper

    -
    -

    Supports mapping a file to an URL and back.

    -
    -
    -

    Hierarchy

    -
      -
    • FileIdentifierMapper
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    mapFilePathToUrl: ((filePath: string, isContainer: boolean) => Promise<ResourceLink>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (filePath: string, isContainer: boolean): Promise<ResourceLink>
      • -
      • -

        Maps the given file path to an URL and determines the content-type

        - -

        Returns

        A ResourceLink with all the necessary metadata.

        -
        -
        -

        Parameters

        -
          -
        • -
          filePath: string
          -

          The input file path.

          -
        • -
        • -
          isContainer: boolean
          -

          If the path corresponds to a file.

          -
        -

        Returns Promise<ResourceLink>

    -
    - -
    mapUrlToFilePath: ((identifier: ResourceIdentifier, isMetadata: boolean, contentType?: string) => Promise<ResourceLink>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier, isMetadata: boolean, contentType?: string): Promise<ResourceLink>
      • -
      • -

        Maps the given resource identifier / URL to a file path. -Determines the content-type if no content-type was provided by finding the corresponding file. -If there is no corresponding file a file path will be generated. -For containers the content-type input gets ignored.

        - -

        Returns

        A ResourceLink with all the necessary metadata.

        -
        -
        -

        Parameters

        -
          -
        • -
          identifier: ResourceIdentifier
          -

          The input identifier.

          -
        • -
        • -
          isMetadata: boolean
          -

          If we are mapping the metadata of the resource instead of its data.

          -
        • -
        • -
          Optional contentType: string
          -

          The (optional) content-type of the resource.

          -
        -

        Returns Promise<ResourceLink>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/FileIdentifierMapperFactory.html b/5.x/docs/interfaces/FileIdentifierMapperFactory.html deleted file mode 100644 index 0f31c56b4..000000000 --- a/5.x/docs/interfaces/FileIdentifierMapperFactory.html +++ /dev/null @@ -1,92 +0,0 @@ -FileIdentifierMapperFactory | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface FileIdentifierMapperFactory<T>

    -
    -

    Factory that can create FileIdentifierMappers so the base and rootFilePath can be set dynamically. -Specifically used when identifiers need to be generated for a new pod (since pod identifiers are generated).

    -
    -
    -

    Type Parameters

    -
    -
    -

    Hierarchy

    -
      -
    • FileIdentifierMapperFactory
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    create: ((base: string, rootFilePath: string) => Promise<T>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (base: string, rootFilePath: string): Promise<T>
      • -
      • -
        -

        Parameters

        -
          -
        • -
          base: string
        • -
        • -
          rootFilePath: string
        -

        Returns Promise<T>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/Finalizable.html b/5.x/docs/interfaces/Finalizable.html deleted file mode 100644 index 42e81b965..000000000 --- a/5.x/docs/interfaces/Finalizable.html +++ /dev/null @@ -1,84 +0,0 @@ -Finalizable | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface Finalizable

    -
    -

    Allows for cleaning up an object and stopping relevant loops when the application needs to be stopped. -Use this interface to add finalization logic to classes that already extend some other type. -NOTE: classes without an existing extends-relation should extend from Finalizer instead!

    -
    -
    -

    Hierarchy

    -
      -
    • Finalizable
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    finalize: (() => Promise<void>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (): Promise<void>
      • -
      • -

        Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/ForgotPasswordHandlerArgs.html b/5.x/docs/interfaces/ForgotPasswordHandlerArgs.html deleted file mode 100644 index ba8e74148..000000000 --- a/5.x/docs/interfaces/ForgotPasswordHandlerArgs.html +++ /dev/null @@ -1,85 +0,0 @@ -ForgotPasswordHandlerArgs | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface ForgotPasswordHandlerArgs

    -
    -

    Hierarchy

    -
      -
    • ForgotPasswordHandlerArgs
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    accountStore: AccountStore
    -
    - -
    emailSender: EmailSender
    -
    - -
    resetRoute: InteractionRoute
    -
    - -
    templateEngine: TemplateEngine<{ resetLink: string }>
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/ForgotPasswordPayload.html b/5.x/docs/interfaces/ForgotPasswordPayload.html deleted file mode 100644 index 53d6808a3..000000000 --- a/5.x/docs/interfaces/ForgotPasswordPayload.html +++ /dev/null @@ -1,75 +0,0 @@ -ForgotPasswordPayload | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface ForgotPasswordPayload

    -
    -

    A payload to persist the fact that a user -has requested to reset their password

    -
    -
    -

    Hierarchy

    -
      -
    • ForgotPasswordPayload
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    email: string
    -
    - -
    recordId: string
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/Forwarded.html b/5.x/docs/interfaces/Forwarded.html deleted file mode 100644 index fb18ea589..000000000 --- a/5.x/docs/interfaces/Forwarded.html +++ /dev/null @@ -1,96 +0,0 @@ -Forwarded | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface Forwarded

    -
    -

    The Forwarded header from RFC7239

    -
    -
    -

    Hierarchy

    -
      -
    • Forwarded
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    by?: string
    -

    The user-agent facing interface of the proxy

    -
    -
    - -
    for?: string
    -

    The node making the request to the proxy

    -
    -
    - -
    host?: string
    -

    The host request header field as received by the proxy

    -
    -
    - -
    proto?: string
    -

    The protocol used to make the request

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/GreedyReadWriteSuffixes.html b/5.x/docs/interfaces/GreedyReadWriteSuffixes.html deleted file mode 100644 index 0b5945ee6..000000000 --- a/5.x/docs/interfaces/GreedyReadWriteSuffixes.html +++ /dev/null @@ -1,78 +0,0 @@ -GreedyReadWriteSuffixes | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface GreedyReadWriteSuffixes

    -
    -

    Hierarchy

    -
      -
    • GreedyReadWriteSuffixes
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    count: string
    -
    - -
    read: string
    -
    - -
    write: string
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/HttpErrorClass.html b/5.x/docs/interfaces/HttpErrorClass.html deleted file mode 100644 index 8c4af1219..000000000 --- a/5.x/docs/interfaces/HttpErrorClass.html +++ /dev/null @@ -1,128 +0,0 @@ -HttpErrorClass | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface HttpErrorClass<TCode>

    -
    -

    Interface describing what an HttpError class should look like. -This helps us make sure all HttpError classes have the same utility static functions.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      TCode extends number = number

    -
    -

    Hierarchy

    -
      -
    • HttpErrorClass
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    isInstance: ((error: any) => error is HttpError<TCode>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (error: any): error is HttpError<TCode>
      • -
      • -

        Checks if the given error is an instance of this class.

        -
        -
        -

        Parameters

        -
          -
        • -
          error: any
        -

        Returns error is HttpError<TCode>

    -
    - -
    statusCode: TCode
    -

    The status code corresponding to this error class.

    -
    -
    - -
    uri: NamedNode<string>
    -

    A unique URI identifying this error class.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/HttpErrorOptions.html b/5.x/docs/interfaces/HttpErrorOptions.html deleted file mode 100644 index 416b1b959..000000000 --- a/5.x/docs/interfaces/HttpErrorOptions.html +++ /dev/null @@ -1,82 +0,0 @@ -HttpErrorOptions | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface HttpErrorOptions

    -
    -

    Hierarchy

    -
      -
    • HttpErrorOptions
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    cause?: unknown
    -
    - -
    details?: Dict<unknown>
    -
    - -
    errorCode?: string
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/HttpHandlerInput.html b/5.x/docs/interfaces/HttpHandlerInput.html deleted file mode 100644 index 4009764bc..000000000 --- a/5.x/docs/interfaces/HttpHandlerInput.html +++ /dev/null @@ -1,73 +0,0 @@ -HttpHandlerInput | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface HttpHandlerInput

    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    request: HttpRequest
    -
    - -
    response: ServerResponse
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/HttpServerFactory.html b/5.x/docs/interfaces/HttpServerFactory.html deleted file mode 100644 index 37313758e..000000000 --- a/5.x/docs/interfaces/HttpServerFactory.html +++ /dev/null @@ -1,85 +0,0 @@ -HttpServerFactory | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface HttpServerFactory

    -
    -

    A factory for HTTP servers

    -
    -
    -

    Hierarchy

    -
      -
    • HttpServerFactory
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    startServer: ((port: number) => Server)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (port: number): Server
      • -
      • -
        -

        Parameters

        -
          -
        • -
          port: number
        -

        Returns Server

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/IdentifierGenerator.html b/5.x/docs/interfaces/IdentifierGenerator.html deleted file mode 100644 index 86c89955b..000000000 --- a/5.x/docs/interfaces/IdentifierGenerator.html +++ /dev/null @@ -1,88 +0,0 @@ -IdentifierGenerator | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface IdentifierGenerator

    -
    -

    Utility class for generating container identifiers.

    -
    -
    -

    Hierarchy

    -
      -
    • IdentifierGenerator
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    generate: ((name: string) => ResourceIdentifier)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (name: string): ResourceIdentifier
      • -
      • -

        Generates container identifiers based on an input name. -This is simply string generation, no resource-related checks are run.

        -
        -
        -

        Parameters

        -
          -
        • -
          name: string
        -

        Returns ResourceIdentifier

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/IdentifierStrategy.html b/5.x/docs/interfaces/IdentifierStrategy.html deleted file mode 100644 index 165ed8ad0..000000000 --- a/5.x/docs/interfaces/IdentifierStrategy.html +++ /dev/null @@ -1,165 +0,0 @@ -IdentifierStrategy | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface IdentifierStrategy

    -
    -

    Captures the behavior of container identifiers in a certain storage configuration.

    -
    -
    -

    Hierarchy

    -
      -
    • IdentifierStrategy
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    contains: ((container: ResourceIdentifier, identifier: ResourceIdentifier, transitive: boolean) => boolean)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (container: ResourceIdentifier, identifier: ResourceIdentifier, transitive: boolean): boolean
      • -
      • -

        Checks if the given container would contain the given identifier. -This does not check that either of these identifiers actually exist. -This is similar to calling getParentContainer on an identifier -and comparing the result.

        -

        If transitive is false this only checks if container is the direct parent container of identifier.

        -
        -
        -

        Parameters

        -
        -

        Returns boolean

    -
    - -
    getParentContainer: ((identifier: ResourceIdentifier) => ResourceIdentifier)
    -
    -

    Type declaration

    -
      -
    • -
    -
    - -
    isRootContainer: ((identifier: ResourceIdentifier) => boolean)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier): boolean
      • -
      • -

        Checks if the input corresponds to the identifier of a root container. -This does not check if this identifier actually exists.

        -
        -
        -

        Parameters

        -
        -

        Returns boolean

    -
    - -
    supportsIdentifier: ((identifier: ResourceIdentifier) => boolean)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier): boolean
      • -
      • -

        Verifies if this identifier is supported. -This does not check if this identifier actually exists, -but checks if the identifier is in scope for this class.

        -
        -
        -

        Parameters

        -
        -

        Returns boolean

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/IdentityProviderFactoryArgs.html b/5.x/docs/interfaces/IdentityProviderFactoryArgs.html deleted file mode 100644 index aed9daff8..000000000 --- a/5.x/docs/interfaces/IdentityProviderFactoryArgs.html +++ /dev/null @@ -1,138 +0,0 @@ -IdentityProviderFactoryArgs | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface IdentityProviderFactoryArgs

    -
    -

    Hierarchy

    -
      -
    • IdentityProviderFactoryArgs
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    adapterFactory: AdapterFactory
    -

    Factory that creates the adapter used for OIDC data storage.

    -
    -
    - -
    baseUrl: string
    -

    Base URL of the server.

    -
    -
    - -
    credentialStorage: KeyValueStorage<string, ClientCredentials>
    -

    Storage containing the generated client credentials with their associated WebID.

    -
    -
    - -
    errorHandler: ErrorHandler
    -

    Used to convert errors thrown by the OIDC library.

    -
    -
    - -
    interactionHandler: InteractionHandler
    -

    The handler responsible for redirecting interaction requests to the correct URL.

    -
    -
    - -
    oidcPath: string
    -

    Path for all requests targeting the OIDC library.

    -
    -
    - -
    responseWriter: ResponseWriter
    -

    Used to write out errors thrown by the OIDC library.

    -
    -
    - -
    showStackTrace: boolean
    -

    Extra information will be added to the error output if this is true.

    -
    -
    - -
    storage: KeyValueStorage<string, unknown>
    -

    Storage used to store cookie and JWT keys so they can be re-used in case of multithreading.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/IdentityProviderHttpHandlerArgs.html b/5.x/docs/interfaces/IdentityProviderHttpHandlerArgs.html deleted file mode 100644 index 3cb154e05..000000000 --- a/5.x/docs/interfaces/IdentityProviderHttpHandlerArgs.html +++ /dev/null @@ -1,84 +0,0 @@ -IdentityProviderHttpHandlerArgs | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface IdentityProviderHttpHandlerArgs

    -
    -

    Hierarchy

    -
      -
    • IdentityProviderHttpHandlerArgs
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - - -

    Used for converting the input data.

    -
    -
    - - -

    Handles the requests.

    -
    -
    - -
    providerFactory: ProviderFactory
    -

    Used to generate the OIDC provider.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/Initializable.html b/5.x/docs/interfaces/Initializable.html deleted file mode 100644 index e6efff25a..000000000 --- a/5.x/docs/interfaces/Initializable.html +++ /dev/null @@ -1,82 +0,0 @@ -Initializable | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface Initializable

    -
    -

    Allows for initializing state or executing logic when the application is started. -Use this interface to add initialization logic to classes that already extend some other type. -NOTE: classes without an existing extends-relation should extend from Initializer instead!

    -
    -
    -

    Hierarchy

    -
      -
    • Initializable
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    initialize: (() => Promise<void>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (): Promise<void>
      • -
      • -

        Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/InteractionHandlerInput.html b/5.x/docs/interfaces/InteractionHandlerInput.html deleted file mode 100644 index 46b4fd423..000000000 --- a/5.x/docs/interfaces/InteractionHandlerInput.html +++ /dev/null @@ -1,76 +0,0 @@ -InteractionHandlerInput | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface InteractionHandlerInput

    -
    -

    Hierarchy

    -
      -
    • InteractionHandlerInput
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    oidcInteraction?: Interaction
    -

    Will be defined if the OIDC library expects us to resolve an interaction it can't handle itself, -such as logging a user in.

    -
    -
    - -
    operation: Operation
    -

    The operation to execute.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/InteractionRoute.html b/5.x/docs/interfaces/InteractionRoute.html deleted file mode 100644 index 4290d619e..000000000 --- a/5.x/docs/interfaces/InteractionRoute.html +++ /dev/null @@ -1,82 +0,0 @@ -InteractionRoute | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface InteractionRoute

    -
    -

    An object with a specific path.

    -
    -
    -

    Hierarchy

    -
      -
    • InteractionRoute
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    getPath: (() => string)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (): string
      • -
      • -
        -

        Returns

        The absolute path of this route.

        -
        -

        Returns string

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/KeyValueStorage.html b/5.x/docs/interfaces/KeyValueStorage.html deleted file mode 100644 index a987c7129..000000000 --- a/5.x/docs/interfaces/KeyValueStorage.html +++ /dev/null @@ -1,194 +0,0 @@ -KeyValueStorage | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface KeyValueStorage<TKey, TValue>

    -
    -

    A simple storage solution that can be used for internal values that need to be stored.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      TKey

    • -
    • -

      TValue

    -
    -

    Hierarchy

    -
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    delete: ((key: TKey) => Promise<boolean>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (key: TKey): Promise<boolean>
      • -
      • -

        Deletes the value stored for the given key.

        - -

        Returns

        If there was a value to delete.

        -
        -
        -

        Parameters

        -
          -
        • -
          key: TKey
          -

          Key to delete.

          -
        -

        Returns Promise<boolean>

    -
    - -
    entries: (() => AsyncIterableIterator<[TKey, TValue]>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (): AsyncIterableIterator<[TKey, TValue]>
      • -
      • -

        An iterable of entries in the storage.

        -
        -

        Returns AsyncIterableIterator<[TKey, TValue]>

    -
    - -
    get: ((key: TKey) => Promise<undefined | TValue>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (key: TKey): Promise<undefined | TValue>
      • -
      • -

        Returns the value stored for the given identifier. -undefined if no value is stored.

        -
        -
        -

        Parameters

        -
          -
        • -
          key: TKey
        -

        Returns Promise<undefined | TValue>

    -
    - -
    has: ((key: TKey) => Promise<boolean>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (key: TKey): Promise<boolean>
      • -
      • -

        Checks if there is a value stored for the given key.

        -
        -
        -

        Parameters

        -
          -
        • -
          key: TKey
        -

        Returns Promise<boolean>

    -
    - -
    set: ((key: TKey, value: TValue) => Promise<KeyValueStorage<TKey, TValue>>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (key: TKey, value: TValue): Promise<KeyValueStorage<TKey, TValue>>
      • -
      • -

        Sets the value for the given key.

        - -

        Returns

        The storage.

        -
        -
        -

        Parameters

        -
          -
        • -
          key: TKey
          -

          Key to set/update.

          -
        • -
        • -
          value: TValue
          -

          Value to store.

          -
        -

        Returns Promise<KeyValueStorage<TKey, TValue>>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/LinkEntry.html b/5.x/docs/interfaces/LinkEntry.html deleted file mode 100644 index 33ee41483..000000000 --- a/5.x/docs/interfaces/LinkEntry.html +++ /dev/null @@ -1,71 +0,0 @@ -LinkEntry | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface LinkEntry

    -
    -

    Hierarchy

    -
      -
    • LinkEntry
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    -
    - -
    target: string
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/LinkEntryParameters.html b/5.x/docs/interfaces/LinkEntryParameters.html deleted file mode 100644 index ca39d4e19..000000000 --- a/5.x/docs/interfaces/LinkEntryParameters.html +++ /dev/null @@ -1,68 +0,0 @@ -LinkEntryParameters | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface LinkEntryParameters

    -
    -

    Hierarchy

    -
      -
    • Record<string, string> -
        -
      • LinkEntryParameters
    -
    -
    -
    - -
    -
    -

    Properties

    -
    rel -
    -
    -

    Properties

    -
    - -
    rel: string
    -

    Required rel properties of Link entry

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/LogMetadata.html b/5.x/docs/interfaces/LogMetadata.html deleted file mode 100644 index 591a4405a..000000000 --- a/5.x/docs/interfaces/LogMetadata.html +++ /dev/null @@ -1,75 +0,0 @@ -LogMetadata | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface LogMetadata

    -
    -

    Hierarchy

    -
      -
    • LogMetadata
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    isPrimary: boolean
    -

    Is the current process the Primary process

    -
    -
    - -
    pid: number
    -

    The process id of the current process

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/Logger.html b/5.x/docs/interfaces/Logger.html deleted file mode 100644 index 750c2ea97..000000000 --- a/5.x/docs/interfaces/Logger.html +++ /dev/null @@ -1,246 +0,0 @@ -Logger | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Logs messages, with convenience methods to log on a specific level.

    - -

    See

    getLoggerFor on how to instantiate loggers.

    -
    -
    -

    Hierarchy

    -
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    debug: ((message: string) => Logger)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (message: string): Logger
      • -
      • -

        Log a message at the 'debug' level.

        -
        -
        -

        Parameters

        -
          -
        • -
          message: string
          -

          The message to log.

          -
        -

        Returns Logger

    -
    - -
    error: ((message: string) => Logger)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (message: string): Logger
      • -
      • -

        Log a message at the 'error' level.

        -
        -
        -

        Parameters

        -
          -
        • -
          message: string
          -

          The message to log.

          -
        -

        Returns Logger

    -
    - -
    info: ((message: string) => Logger)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (message: string): Logger
      • -
      • -

        Log a message at the 'info' level.

        -
        -
        -

        Parameters

        -
          -
        • -
          message: string
          -

          The message to log.

          -
        -

        Returns Logger

    -
    - -
    log: ((level: "error" | "warn" | "info" | "verbose" | "debug" | "silly", message: string, meta?: LogMetadata) => Logger)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (level: "error" | "warn" | "info" | "verbose" | "debug" | "silly", message: string, meta?: LogMetadata): Logger
      • -
      • -

        Log the given message at the given level. -If the internal level is higher than the given level, the message may be voided.

        -
        -
        -

        Parameters

        -
          -
        • -
          level: "error" | "warn" | "info" | "verbose" | "debug" | "silly"
          -

          The level to log at.

          -
        • -
        • -
          message: string
          -

          The message to log.

          -
        • -
        • -
          Optional meta: LogMetadata
          -

          Optional metadata to include in the log message.

          -
        -

        Returns Logger

    -
    - -
    silly: ((message: string) => Logger)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (message: string): Logger
      • -
      • -

        Log a message at the 'silly' level.

        -
        -
        -

        Parameters

        -
          -
        • -
          message: string
          -

          The message to log.

          -
        -

        Returns Logger

    -
    - -
    verbose: ((message: string) => Logger)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (message: string): Logger
      • -
      • -

        Log a message at the 'verbose' level.

        -
        -
        -

        Parameters

        -
          -
        • -
          message: string
          -

          The message to log.

          -
        -

        Returns Logger

    -
    - -
    warn: ((message: string) => Logger)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (message: string): Logger
      • -
      • -

        Log a message at the 'warn' level.

        -
        -
        -

        Parameters

        -
          -
        • -
          message: string
          -

          The message to log.

          -
        -

        Returns Logger

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/LoggerFactory.html b/5.x/docs/interfaces/LoggerFactory.html deleted file mode 100644 index ee291a38d..000000000 --- a/5.x/docs/interfaces/LoggerFactory.html +++ /dev/null @@ -1,90 +0,0 @@ -LoggerFactory | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface LoggerFactory

    -
    -

    Instantiates new logger instances.

    -
    -
    -

    Hierarchy

    -
      -
    • LoggerFactory
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    createLogger: ((label: string) => Logger)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (label: string): Logger
      • -
      • -

        Create a logger instance for the given label.

        -
        -
        -

        Parameters

        -
          -
        • -
          label: string
          -

          A label that is used to identify the given logger.

          -
        -

        Returns Logger

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/Operation.html b/5.x/docs/interfaces/Operation.html deleted file mode 100644 index 7034d5446..000000000 --- a/5.x/docs/interfaces/Operation.html +++ /dev/null @@ -1,114 +0,0 @@ -Operation | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface Operation

    -
    -

    A single REST operation.

    -
    -
    -

    Hierarchy

    -
      -
    • Operation
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    availablePermissions?: PermissionMap
    -

    The permissions available for the current operation.

    -
    -
    - - -

    Representation of the body and metadata headers.

    -
    -
    - -
    conditions?: Conditions
    -

    Conditions the resource must fulfill for a valid operation.

    -
    -
    - -
    method: string
    -

    The HTTP method (GET/POST/PUT/PATCH/DELETE/etc.).

    -
    -
    - - -

    Representation preferences of the response. Will be empty if there are none.

    -
    -
    - - -

    Identifier of the target.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/OperationHandlerInput.html b/5.x/docs/interfaces/OperationHandlerInput.html deleted file mode 100644 index b76b2024c..000000000 --- a/5.x/docs/interfaces/OperationHandlerInput.html +++ /dev/null @@ -1,64 +0,0 @@ -OperationHandlerInput | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface OperationHandlerInput

    -
    -

    Hierarchy

    -
      -
    • OperationHandlerInput
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    operation: Operation
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/OperationHttpHandlerInput.html b/5.x/docs/interfaces/OperationHttpHandlerInput.html deleted file mode 100644 index bc2119354..000000000 --- a/5.x/docs/interfaces/OperationHttpHandlerInput.html +++ /dev/null @@ -1,82 +0,0 @@ -OperationHttpHandlerInput | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface OperationHttpHandlerInput

    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    operation: Operation
    -
    - -
    request: HttpRequest
    -
    - -
    response: ServerResponse
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/OperationMetadataCollectorInput.html b/5.x/docs/interfaces/OperationMetadataCollectorInput.html deleted file mode 100644 index 60be1f361..000000000 --- a/5.x/docs/interfaces/OperationMetadataCollectorInput.html +++ /dev/null @@ -1,75 +0,0 @@ -OperationMetadataCollectorInput | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface OperationMetadataCollectorInput

    -
    -

    Hierarchy

    -
      -
    • OperationMetadataCollectorInput
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - - -

    Metadata to update with permission knowledge.

    -
    -
    - -
    operation: Operation
    -

    Operation corresponding to the request.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/OriginalUrlExtractorArgs.html b/5.x/docs/interfaces/OriginalUrlExtractorArgs.html deleted file mode 100644 index 5106f21d4..000000000 --- a/5.x/docs/interfaces/OriginalUrlExtractorArgs.html +++ /dev/null @@ -1,75 +0,0 @@ -OriginalUrlExtractorArgs | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface OriginalUrlExtractorArgs

    -
    -

    Hierarchy

    -
      -
    • OriginalUrlExtractorArgs
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    identifierStrategy: IdentifierStrategy
    -

    The IdentifierStrategy to use for checking the scope of the request

    -
    -
    - -
    includeQueryString?: boolean
    -

    Specify wether the OriginalUrlExtractor should include the request query string.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/ParsingHttpHandlerArgs.html b/5.x/docs/interfaces/ParsingHttpHandlerArgs.html deleted file mode 100644 index 7513698a4..000000000 --- a/5.x/docs/interfaces/ParsingHttpHandlerArgs.html +++ /dev/null @@ -1,102 +0,0 @@ -ParsingHttpHandlerArgs | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface ParsingHttpHandlerArgs

    -
    -

    Hierarchy

    -
      -
    • ParsingHttpHandlerArgs
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    errorHandler: ErrorHandler
    -

    Converts errors to a serializable format.

    -
    -
    - -
    metadataCollector: OperationMetadataCollector
    -

    Generates generic operation metadata that is required for a response.

    -
    -
    - -
    operationHandler: OperationHttpHandler
    -

    Handler to send the operation to.

    -
    -
    - -
    requestParser: RequestParser
    -

    Parses the incoming requests.

    -
    -
    - -
    responseWriter: ResponseWriter
    -

    Writes out the response of the operation.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/Patch.html b/5.x/docs/interfaces/Patch.html deleted file mode 100644 index 383cd2d2b..000000000 --- a/5.x/docs/interfaces/Patch.html +++ /dev/null @@ -1,107 +0,0 @@ -Patch | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Represents the changes needed for a PATCH request.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    binary: boolean
    -

    Whether the data stream consists of binary/string chunks -(as opposed to complex objects).

    -
    -
    - -
    data: Guarded<Readable>
    -

    The raw data stream for this representation.

    -
    -
    - -
    isEmpty: boolean
    -

    Whether the data stream is empty. -This being true does not imply that the data stream has a length of more than 0, -only that it is a possibility and should be read to be sure.

    -
    -
    - - -

    The corresponding metadata.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/PermissionReaderInput.html b/5.x/docs/interfaces/PermissionReaderInput.html deleted file mode 100644 index eaa992190..000000000 --- a/5.x/docs/interfaces/PermissionReaderInput.html +++ /dev/null @@ -1,76 +0,0 @@ -PermissionReaderInput | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface PermissionReaderInput

    -
    -

    Hierarchy

    -
      -
    • PermissionReaderInput
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    credentials: Partial<Record<CredentialGroup, Credential>>
    -

    Credentials of the entity requesting access to resources.

    -
    -
    - -
    requestedModes: AccessMap
    -

    For each credential, the reader will check which of the given per-resource access modes are available. -However, non-exhaustive information about other access modes and resources can still be returned.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/PodGenerator.html b/5.x/docs/interfaces/PodGenerator.html deleted file mode 100644 index 8ca3e9c90..000000000 --- a/5.x/docs/interfaces/PodGenerator.html +++ /dev/null @@ -1,97 +0,0 @@ -PodGenerator | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface PodGenerator

    -
    -

    Generates an empty resource store to be used as a new pod. -It is also responsible for storing any relevant variables needed to instantiate this resource store. -These can then be used when the server is restarted to re-instantiate those stores.

    -
    -
    -

    Hierarchy

    -
      -
    • PodGenerator
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    generate: ((identifier: ResourceIdentifier, settings: PodSettings) => Promise<ResourceStore>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier, settings: PodSettings): Promise<ResourceStore>
      • -
      • -

        Creates a ResourceStore based on the given input. -Should error if there already is a store for the given identifier.

        - -

        Returns

        A new ResourceStore to be used for the new pod.

        -
        -
        -

        Parameters

        -
        -

        Returns Promise<ResourceStore>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/PodManager.html b/5.x/docs/interfaces/PodManager.html deleted file mode 100644 index 4bfd2e04f..000000000 --- a/5.x/docs/interfaces/PodManager.html +++ /dev/null @@ -1,98 +0,0 @@ -PodManager | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface PodManager

    -
    -

    Covers all functions related to pod management. -In the future this should also include delete, and potentially recovery functions.

    -
    -
    -

    Hierarchy

    -
      -
    • PodManager
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    createPod: ((identifier: ResourceIdentifier, settings: PodSettings, overwrite: boolean) => Promise<void>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier, settings: PodSettings, overwrite: boolean): Promise<void>
      • -
      • -

        Creates a pod for the given settings.

        -
        -
        -

        Parameters

        -
          -
        • -
          identifier: ResourceIdentifier
          -

          Root identifier indicating where the pod should be created.

          -
        • -
        • -
          settings: PodSettings
          -

          Settings describing the pod.

          -
        • -
        • -
          overwrite: boolean
          -

          If the creation should proceed if there already is a resource there.

          -
        -

        Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/PodSettings.html b/5.x/docs/interfaces/PodSettings.html deleted file mode 100644 index fd3885037..000000000 --- a/5.x/docs/interfaces/PodSettings.html +++ /dev/null @@ -1,110 +0,0 @@ -PodSettings | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface PodSettings

    -
    -

    Metadata related to pod generation. -Although the optional fields are not that relevant since this extends Dict, -they give an indication of what is sometimes expected.

    -
    -
    -

    Hierarchy

    -
      -
    • Dict<string> -
        -
      • PodSettings
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    email?: string
    -

    E-mail of the owner. Used in provisioning templates.

    -
    -
    - -
    name?: string
    -

    Name of the owner. Used in provisioning templates.

    -
    -
    - -
    oidcIssuer?: string
    -

    The OIDC issuer of the owner's WebId.

    -
    -
    - -
    template?: string
    -

    Required for dynamic pod configuration. -Indicates the name of the config to use for the pod.

    -
    -
    - -
    webId: string
    -

    The WebId of the owner of this pod.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/ProviderFactory.html b/5.x/docs/interfaces/ProviderFactory.html deleted file mode 100644 index 683676935..000000000 --- a/5.x/docs/interfaces/ProviderFactory.html +++ /dev/null @@ -1,83 +0,0 @@ -ProviderFactory | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface ProviderFactory

    -
    -

    Returns a Provider of OIDC interactions.

    -
    -
    -

    Hierarchy

    -
      -
    • ProviderFactory
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    getProvider: (() => Promise<Provider>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (): Promise<Provider>
      • -
      • -

        Gets a provider from the factory. -Multiple calls to this function should return providers that produce the same results. -This is mostly relevant for signing keys.

        -
        -

        Returns Promise<Provider>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/RdfStorePatcherInput.html b/5.x/docs/interfaces/RdfStorePatcherInput.html deleted file mode 100644 index a75b1fe2e..000000000 --- a/5.x/docs/interfaces/RdfStorePatcherInput.html +++ /dev/null @@ -1,86 +0,0 @@ -RdfStorePatcherInput | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface RdfStorePatcherInput

    -
    -

    Hierarchy

    -
      -
    • RdfStorePatcherInput
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    identifier: ResourceIdentifier
    -

    Identifier of the resource that will be patched

    -
    -
    - -
    patch: Patch
    -

    The changes represented by a Patch object

    -
    -
    - -
    store: Store<Quad, Quad, Quad, Quad>
    -

    The store on which the patch will be executed. -Note the RdfStorePatcher is allowed to make changes to the store. -This means the store object might be modified by the patch.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/ReadWriteLocker.html b/5.x/docs/interfaces/ReadWriteLocker.html deleted file mode 100644 index 81d09f5e4..000000000 --- a/5.x/docs/interfaces/ReadWriteLocker.html +++ /dev/null @@ -1,154 +0,0 @@ -ReadWriteLocker | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface ReadWriteLocker

    -
    -

    Allows the locking of resources which is needed for non-atomic ResourceStores.

    -
    -
    -

    Hierarchy

    -
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    withReadLock: (<T>(identifier: ResourceIdentifier, whileLocked: (() => T | Promise<T>)) => Promise<T>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • <T>(identifier: ResourceIdentifier, whileLocked: (() => T | Promise<T>)): Promise<T>
      • -
      • -

        Run the given function while the resource is locked. -The lock will be released when the (async) input function resolves. -This function should be used for operations that only require reading the resource.

        - -

        Returns

        A promise resolving when the lock is released.

        -
        -
        -

        Type Parameters

        -
          -
        • -

          T

        -
        -

        Parameters

        -
          -
        • -
          identifier: ResourceIdentifier
          -

          Identifier of the resource that needs to be locked.

          -
        • -
        • -
          whileLocked: (() => T | Promise<T>)
          -

          A function to execute while the resource is locked.

          -
          -
            -
          • -
              -
            • (): T | Promise<T>
            • -
            • -

              Returns T | Promise<T>

        -

        Returns Promise<T>

    -
    - -
    withWriteLock: (<T>(identifier: ResourceIdentifier, whileLocked: (() => T | Promise<T>)) => Promise<T>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • <T>(identifier: ResourceIdentifier, whileLocked: (() => T | Promise<T>)): Promise<T>
      • -
      • -

        Run the given function while the resource is locked. -The lock will be released when the (async) input function resolves. -This function should be used for operations that could modify the resource.

        - -

        Returns

        A promise resolving when the lock is released.

        -
        -
        -

        Type Parameters

        -
          -
        • -

          T

        -
        -

        Parameters

        -
          -
        • -
          identifier: ResourceIdentifier
          -

          Identifier of the resource that needs to be locked.

          -
        • -
        • -
          whileLocked: (() => T | Promise<T>)
          -

          A function to execute while the resource is locked.

          -
          -
            -
          • -
              -
            • (): T | Promise<T>
            • -
            • -

              Returns T | Promise<T>

        -

        Returns Promise<T>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/RedirectHttpErrorClass.html b/5.x/docs/interfaces/RedirectHttpErrorClass.html deleted file mode 100644 index f4dedbc4d..000000000 --- a/5.x/docs/interfaces/RedirectHttpErrorClass.html +++ /dev/null @@ -1,136 +0,0 @@ -RedirectHttpErrorClass | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface RedirectHttpErrorClass<TCode>

    -
    -

    Interface describing what a RedirectHttpError class should look like. -Makes sure a location value is always needed.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      TCode extends number = number

    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    isInstance: ((error: any) => error is HttpError<TCode>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (error: any): error is HttpError<TCode>
      • -
      • -

        Checks if the given error is an instance of this class.

        -
        -
        -

        Parameters

        -
          -
        • -
          error: any
        -

        Returns error is HttpError<TCode>

    -
    - -
    statusCode: TCode
    -

    The status code corresponding to this error class.

    -
    -
    - -
    uri: NamedNode<string>
    -

    A unique URI identifying this error class.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/RedisSettings.html b/5.x/docs/interfaces/RedisSettings.html deleted file mode 100644 index 4e3e81724..000000000 --- a/5.x/docs/interfaces/RedisSettings.html +++ /dev/null @@ -1,85 +0,0 @@ -RedisSettings | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface RedisSettings

    -
    -

    Hierarchy

    -
      -
    • RedisSettings
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    db?: number
    -
    - -
    namespacePrefix: string
    -
    - -
    password?: string
    -
    - -
    username?: string
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/RegistrationManagerArgs.html b/5.x/docs/interfaces/RegistrationManagerArgs.html deleted file mode 100644 index 6700e253b..000000000 --- a/5.x/docs/interfaces/RegistrationManagerArgs.html +++ /dev/null @@ -1,111 +0,0 @@ -RegistrationManagerArgs | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface RegistrationManagerArgs

    -
    -

    Hierarchy

    -
      -
    • RegistrationManagerArgs
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    accountStore: AccountStore
    -

    Stores all the registered account information.

    -
    -
    - -
    baseUrl: string
    -

    Used to set the oidcIssuer value of newly registered pods.

    -
    -
    - -
    identifierGenerator: IdentifierGenerator
    -

    Generates identifiers for new pods.

    -
    -
    - -
    ownershipValidator: OwnershipValidator
    -

    Verifies the user is the owner of the WebID they provide.

    -
    -
    - -
    podManager: PodManager
    -

    Creates the new pods.

    -
    -
    - -
    webIdSuffix: string
    -

    Appended to the generated pod identifier to create the corresponding WebID.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/RegistrationParams.html b/5.x/docs/interfaces/RegistrationParams.html deleted file mode 100644 index 6f09b4ed8..000000000 --- a/5.x/docs/interfaces/RegistrationParams.html +++ /dev/null @@ -1,123 +0,0 @@ -RegistrationParams | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface RegistrationParams

    -
    -

    The parameters expected for registration.

    -
    -
    -

    Hierarchy

    -
      -
    • RegistrationParams
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    createPod: boolean
    -
    - -
    createWebId: boolean
    -
    - -
    email: string
    -
    - -
    password: string
    -
    - -
    podName?: string
    -
    - -
    register: boolean
    -
    - -
    rootPod: boolean
    -
    - -
    template?: string
    -
    - -
    webId?: string
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/RegistrationResponse.html b/5.x/docs/interfaces/RegistrationResponse.html deleted file mode 100644 index 8655a40fa..000000000 --- a/5.x/docs/interfaces/RegistrationResponse.html +++ /dev/null @@ -1,109 +0,0 @@ -RegistrationResponse | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface RegistrationResponse

    -
    -

    The result of a registration action.

    -
    -
    -

    Hierarchy

    -
      -
    • RegistrationResponse
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    createPod: boolean
    -
    - -
    createWebId: boolean
    -
    - -
    email: string
    -
    - -
    oidcIssuer?: string
    -
    - -
    podBaseUrl?: string
    -
    - -
    register: boolean
    -
    - -
    webId?: string
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/Representation.html b/5.x/docs/interfaces/Representation.html deleted file mode 100644 index 52f9af47f..000000000 --- a/5.x/docs/interfaces/Representation.html +++ /dev/null @@ -1,105 +0,0 @@ -Representation | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface Representation

    -
    -

    A representation of a resource.

    -
    -
    -

    Hierarchy

    -
      -
    • Representation -
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    binary: boolean
    -

    Whether the data stream consists of binary/string chunks -(as opposed to complex objects).

    -
    -
    - -
    data: Guarded<Readable>
    -

    The raw data stream for this representation.

    -
    -
    - -
    isEmpty: boolean
    -

    Whether the data stream is empty. -This being true does not imply that the data stream has a length of more than 0, -only that it is a possibility and should be read to be sure.

    -
    -
    - - -

    The corresponding metadata.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/RepresentationConverterArgs.html b/5.x/docs/interfaces/RepresentationConverterArgs.html deleted file mode 100644 index f733ccc0d..000000000 --- a/5.x/docs/interfaces/RepresentationConverterArgs.html +++ /dev/null @@ -1,84 +0,0 @@ -RepresentationConverterArgs | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface RepresentationConverterArgs

    -
    -

    Hierarchy

    -
      -
    • RepresentationConverterArgs
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    identifier: ResourceIdentifier
    -

    Identifier of the resource. Can be used as base IRI.

    -
    -
    - - -

    Preferences indicating what is requested.

    -
    -
    - -
    representation: Representation
    -

    Representation to convert.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/RepresentationPatcherInput.html b/5.x/docs/interfaces/RepresentationPatcherInput.html deleted file mode 100644 index 20bda90a0..000000000 --- a/5.x/docs/interfaces/RepresentationPatcherInput.html +++ /dev/null @@ -1,83 +0,0 @@ -RepresentationPatcherInput | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface RepresentationPatcherInput<T>

    -
    -

    Type Parameters

    -
      -
    • -

      T

    -
    -

    Hierarchy

    -
      -
    • RepresentationPatcherInput
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    identifier: ResourceIdentifier
    -
    - -
    patch: Patch
    -
    - -
    representation?: T
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/RepresentationPreferences.html b/5.x/docs/interfaces/RepresentationPreferences.html deleted file mode 100644 index 6f0563b77..000000000 --- a/5.x/docs/interfaces/RepresentationPreferences.html +++ /dev/null @@ -1,97 +0,0 @@ -RepresentationPreferences | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface RepresentationPreferences

    -
    -

    Contains preferences along multiple content negotiation dimensions.

    -

    All dimensions are optional for ease of constructing; either undefined -or an empty ValuePreferences can indicate that no preferences were specified.

    -
    -
    -

    Hierarchy

    -
      -
    • RepresentationPreferences
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    -
    - -
    datetime?: ValuePreferences
    -
    - -
    encoding?: ValuePreferences
    -
    - -
    language?: ValuePreferences
    -
    - -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/Resource.html b/5.x/docs/interfaces/Resource.html deleted file mode 100644 index d7193da8c..000000000 --- a/5.x/docs/interfaces/Resource.html +++ /dev/null @@ -1,71 +0,0 @@ -Resource | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface Resource

    -
    -

    Hierarchy

    -
      -
    • Resource
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    identifier: ResourceIdentifier
    -
    - -
    representation: Representation
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/ResourceIdentifier.html b/5.x/docs/interfaces/ResourceIdentifier.html deleted file mode 100644 index caa373044..000000000 --- a/5.x/docs/interfaces/ResourceIdentifier.html +++ /dev/null @@ -1,69 +0,0 @@ -ResourceIdentifier | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface ResourceIdentifier

    -
    -

    The unique identifier of a resource.

    -
    -
    -

    Hierarchy

    -
      -
    • ResourceIdentifier
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    path: string
    -

    Path to the relevant resource.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/ResourceLink.html b/5.x/docs/interfaces/ResourceLink.html deleted file mode 100644 index 4bf0e07c3..000000000 --- a/5.x/docs/interfaces/ResourceLink.html +++ /dev/null @@ -1,93 +0,0 @@ -ResourceLink | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface ResourceLink

    -
    -

    Hierarchy

    -
      -
    • ResourceLink
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    contentType?: string
    -

    Content-type for a document (not defined for containers).

    -
    -
    - -
    filePath: string
    -

    File path of a resource.

    -
    -
    - -
    identifier: ResourceIdentifier
    -

    Identifier of a resource.

    -
    -
    - -
    isMetadata: boolean
    -

    If the resource is a metadata file.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/ResourceLocker.html b/5.x/docs/interfaces/ResourceLocker.html deleted file mode 100644 index 352d2dc59..000000000 --- a/5.x/docs/interfaces/ResourceLocker.html +++ /dev/null @@ -1,119 +0,0 @@ -ResourceLocker | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface ResourceLocker

    -
    -

    An interface for classes that only have 1 way to lock interfaces. -In general this should only be used by components implementing the ReadWriteLocker interface. -Other components that require locking of resources should use that interface.

    -
    -
    -

    Hierarchy

    -
      -
    • ResourceLocker
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    acquire: ((identifier: ResourceIdentifier) => Promise<void>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier): Promise<void>
      • -
      • -

        Acquires a lock on the requested identifier. -The promise will resolve when the lock has been acquired.

        -
        -
        -

        Parameters

        -
        -

        Returns Promise<void>

    -
    - -
    release: ((identifier: ResourceIdentifier) => Promise<void>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier): Promise<void>
      • -
      • -

        Releases a lock on the requested identifier. -The promise will resolve when the lock has been released. -In case there is no lock on the resource an error should be thrown.

        -
        -
        -

        Parameters

        -
        -

        Returns Promise<void>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/ResourceSet.html b/5.x/docs/interfaces/ResourceSet.html deleted file mode 100644 index 0129380ff..000000000 --- a/5.x/docs/interfaces/ResourceSet.html +++ /dev/null @@ -1,92 +0,0 @@ -ResourceSet | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface ResourceSet

    -
    -

    A set containing resources.

    -
    -
    -

    Hierarchy

    -
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    hasResource: ((identifier: ResourceIdentifier) => Promise<boolean>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier): Promise<boolean>
      • -
      • -

        Check if a resource exists in this ResourceSet.

        - -

        Returns

        A promise resolving if the resource already exists.

        -
        -
        -

        Parameters

        -
        -

        Returns Promise<boolean>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/ResourceStore.html b/5.x/docs/interfaces/ResourceStore.html deleted file mode 100644 index 3cc3053f4..000000000 --- a/5.x/docs/interfaces/ResourceStore.html +++ /dev/null @@ -1,274 +0,0 @@ -ResourceStore | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface ResourceStore

    -
    -

    A ResourceStore represents a collection of resources. -It has been designed such that each of its methods -can be implemented in an atomic way: for each CRUD operation, only one -dedicated method needs to be called. A fifth method enables the optimization -of partial updates with PATCH. It is up to the implementer of the interface to -(not) make an implementation atomic.

    -

    ResourceStores are also responsible for taking auxiliary resources into account -should those be relevant to the store.

    -
    -
    -

    Hierarchy

    -
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    addResource: ((container: ResourceIdentifier, representation: Representation, conditions?: Conditions) => Promise<ChangeMap>)
    -
    -

    Type declaration

    -
    -
    - -
    deleteResource: ((identifier: ResourceIdentifier, conditions?: Conditions) => Promise<ChangeMap>)
    -
    -

    Type declaration

    -
    -
    - -
    getRepresentation: ((identifier: ResourceIdentifier, preferences: RepresentationPreferences, conditions?: Conditions) => Promise<Representation>)
    -
    -

    Type declaration

    -
    -
    - -
    hasResource: ((identifier: ResourceIdentifier) => Promise<boolean>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier): Promise<boolean>
      • -
      • -

        Check if a resource exists in this ResourceSet.

        - -

        Returns

        A promise resolving if the resource already exists.

        -
        -
        -

        Parameters

        -
        -

        Returns Promise<boolean>

    -
    - -
    modifyResource: ((identifier: ResourceIdentifier, patch: Patch, conditions?: Conditions) => Promise<ChangeMap>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier, patch: Patch, conditions?: Conditions): Promise<ChangeMap>
      • -
      • -

        Sets or updates the representation of a resource, -creating a new resource and intermediary containers as needed.

        - -

        Returns

        A ChangeMap.

        -
        -
        -

        Parameters

        -
          -
        • -
          identifier: ResourceIdentifier
          -

          Identifier of resource to update.

          -
        • -
        • -
          patch: Patch
          -

          Description of which parts to update.

          -
        • -
        • -
          Optional conditions: Conditions
          -

          Optional conditions under which to proceed.

          -
        -

        Returns Promise<ChangeMap>

    -
    - -
    setRepresentation: ((identifier: ResourceIdentifier, representation: Representation, conditions?: Conditions) => Promise<ChangeMap>)
    -
    -

    Type declaration

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/ResourcesGenerator.html b/5.x/docs/interfaces/ResourcesGenerator.html deleted file mode 100644 index 1999e2883..000000000 --- a/5.x/docs/interfaces/ResourcesGenerator.html +++ /dev/null @@ -1,96 +0,0 @@ -ResourcesGenerator | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface ResourcesGenerator

    -
    -

    Generator used to create resources relative to a given base identifier. -Note that this is not an AsyncHandler since it returns an AsyncIterable instead of a promise.

    -
    -
    -

    Hierarchy

    -
      -
    • ResourcesGenerator
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    generate: ((location: ResourceIdentifier, options: Dict<string>) => AsyncIterable<Resource>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (location: ResourceIdentifier, options: Dict<string>): AsyncIterable<Resource>
      • -
      • -

        Generates resources with the given options. -The output Map should be sorted so that containers always appear before their contents.

        - -

        Returns

        A map where the keys are the identifiers and the values the corresponding representations to store.

        -
        -
        -

        Parameters

        -
          -
        • -
          location: ResourceIdentifier
          -

          Base identifier.

          -
        • -
        • -
          options: Dict<string>
          -

          Options that can be used when generating resources.

          -
        -

        Returns AsyncIterable<Resource>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/RouterHandlerArgs.html b/5.x/docs/interfaces/RouterHandlerArgs.html deleted file mode 100644 index a5dba7c29..000000000 --- a/5.x/docs/interfaces/RouterHandlerArgs.html +++ /dev/null @@ -1,92 +0,0 @@ -RouterHandlerArgs | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface RouterHandlerArgs

    -
    -

    Hierarchy

    -
      -
    • RouterHandlerArgs
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    allowedMethods: string[]
    -
    - -
    allowedPathNames: string[]
    -
    - -
    baseUrl: string
    -
    - -
    handler: HttpHandler
    -
    - -
    targetExtractor: TargetExtractor
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/SetMultiMap.html b/5.x/docs/interfaces/SetMultiMap.html deleted file mode 100644 index 3b1272af8..000000000 --- a/5.x/docs/interfaces/SetMultiMap.html +++ /dev/null @@ -1,429 +0,0 @@ -SetMultiMap | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface SetMultiMap<TKey, TVal>

    -
    -

    A SetMultiMap is a Map where a single key can have multiple unique values. -Deleting a key removes all bindings with this key from the Map. -Setting a value for a key replaces all previous bindings with this key. -Using an empty Set when calling the set function is the same as deleting that key.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      TKey

    • -
    • -

      TVal

    -
    -

    Hierarchy

    -
      -
    • Map<TKey, TVal | ReadonlySet<TVal>> -
        -
      • SetMultiMap
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    [iterator]: (() => IterableIterator<[TKey, TVal]>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (): IterableIterator<[TKey, TVal]>
      • -
      • -

        Iterates over all key/value bindings in this Map.

        -
        -

        Returns IterableIterator<[TKey, TVal]>

    -
    - -
    [toStringTag]: string
    -
    - -
    add: ((key: TKey, value: TVal | ReadonlySet<TVal>) => SetMultiMap<TKey, TVal>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (key: TKey, value: TVal | ReadonlySet<TVal>): SetMultiMap<TKey, TVal>
      • -
      • -

        Adds the given key/value binding to the Map.

        -
        -
        -

        Parameters

        -
          -
        • -
          key: TKey
        • -
        • -
          value: TVal | ReadonlySet<TVal>
        -

        Returns SetMultiMap<TKey, TVal>

    -
    - -
    asMap: (() => ReadonlyMap<TKey, ReadonlySet<TVal>>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (): ReadonlyMap<TKey, ReadonlySet<TVal>>
      • -
      • -

        Returns a Readonly Map representation of this Map.

        -
        -

        Returns ReadonlyMap<TKey, ReadonlySet<TVal>>

    -
    - -
    deleteEntry: ((key: TKey, value: TVal) => boolean)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (key: TKey, value: TVal): boolean
      • -
      • -

        Deletes the given key/value binding from the Map.

        -
        -
        -

        Parameters

        -
          -
        • -
          key: TKey
        • -
        • -
          value: TVal
        -

        Returns boolean

    -
    - -
    distinctKeys: (() => IterableIterator<TKey>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (): IterableIterator<TKey>
      • -
      • -

        Iterates over all distinct keys in this Map.

        -
        -

        Returns IterableIterator<TKey>

    -
    - -
    entries: (() => IterableIterator<[TKey, TVal]>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (): IterableIterator<[TKey, TVal]>
      • -
      • -

        Iterates over all key/value bindings in this Map.

        -
        -

        Returns IterableIterator<[TKey, TVal]>

    -
    - -
    entrySets: (() => IterableIterator<[TKey, ReadonlySet<TVal>]>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (): IterableIterator<[TKey, ReadonlySet<TVal>]>
      • -
      • -

        Iterates over all distinct keys in this Map, together with a Set of their values.

        -
        -

        Returns IterableIterator<[TKey, ReadonlySet<TVal>]>

    -
    - -
    forEach: ((callbackfn: ((value: TVal, key: TKey, map: SetMultiMap<TKey, TVal>) => void), thisArg?: any) => void)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (callbackfn: ((value: TVal, key: TKey, map: SetMultiMap<TKey, TVal>) => void), thisArg?: any): void
      • -
      • -

        Loops over all key/value bindings.

        -
        -
        -

        Parameters

        -
          -
        • -
          callbackfn: ((value: TVal, key: TKey, map: SetMultiMap<TKey, TVal>) => void)
          -
            -
          • -
              -
            • (value: TVal, key: TKey, map: SetMultiMap<TKey, TVal>): void
            • -
            • -
              -

              Parameters

              -
                -
              • -
                value: TVal
              • -
              • -
                key: TKey
              • -
              • -
                map: SetMultiMap<TKey, TVal>
              -

              Returns void

        • -
        • -
          Optional thisArg: any
        -

        Returns void

    -
    - -
    get: ((key: TKey) => undefined | ReadonlySet<TVal>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (key: TKey): undefined | ReadonlySet<TVal>
      • -
      • -

        Returns all values stored for the given key. -Returns undefined if there are no values for this key.

        -
        -
        -

        Parameters

        -
          -
        • -
          key: TKey
        -

        Returns undefined | ReadonlySet<TVal>

    -
    - -
    hasEntry: ((key: TKey, value: TVal) => boolean)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (key: TKey, value: TVal): boolean
      • -
      • -

        Returns true if this key/value binding exists in the Map.

        -
        -
        -

        Parameters

        -
          -
        • -
          key: TKey
        • -
        • -
          value: TVal
        -

        Returns boolean

    -
    - -
    size: number
    -
    - -
    valueSets: (() => IterableIterator<ReadonlySet<TVal>>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (): IterableIterator<ReadonlySet<TVal>>
      • -
      • -

        Iterates over all distinct keys and returns their Set of values.

        -
        -

        Returns IterableIterator<ReadonlySet<TVal>>

    -
    - -
    values: (() => IterableIterator<TVal>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (): IterableIterator<TVal>
      • -
      • -

        Iterates over all values in this Map.

        -
        -

        Returns IterableIterator<TVal>

    -
    -

    Methods

    -
    - -
      - -
    • -

      Returns void

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        key: TKey
      -

      Returns boolean

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        key: TKey
      -

      Returns boolean

    -
    - -
      - -
    • -

      Returns an iterable of keys in the map

      -
      -

      Returns IterableIterator<TKey>

    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        key: TKey
      • -
      • -
        value: TVal | ReadonlySet<TVal>
      -

      Returns SetMultiMap<TKey, TVal>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/SetupHandlerArgs.html b/5.x/docs/interfaces/SetupHandlerArgs.html deleted file mode 100644 index 8f78ce4df..000000000 --- a/5.x/docs/interfaces/SetupHandlerArgs.html +++ /dev/null @@ -1,76 +0,0 @@ -SetupHandlerArgs | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface SetupHandlerArgs

    -
    -

    Hierarchy

    -
      -
    • SetupHandlerArgs
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    initializer?: Initializer
    -

    Initializer to call in case no registration procedure needs to happen. -This Initializer should make sure the necessary resources are there so the server can work correctly.

    -
    -
    - -
    registrationManager?: RegistrationManager
    -

    Used for registering a pod during setup.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/SetupHttpHandlerArgs.html b/5.x/docs/interfaces/SetupHttpHandlerArgs.html deleted file mode 100644 index 9139332af..000000000 --- a/5.x/docs/interfaces/SetupHttpHandlerArgs.html +++ /dev/null @@ -1,102 +0,0 @@ -SetupHttpHandlerArgs | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface SetupHttpHandlerArgs

    -
    -

    Hierarchy

    -
      -
    • SetupHttpHandlerArgs
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - - -

    Used for converting the input data.

    -
    -
    - - -

    Handles the requests.

    -
    -
    - -
    storage: KeyValueStorage<string, boolean>
    -

    Used to store setup status.

    -
    -
    - -
    storageKey: string
    -

    Key that is used to store the boolean in the storage indicating setup is finished.

    -
    -
    - -
    templateEngine: TemplateEngine<Dict<any>>
    -

    Renders the main view.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/SimpleLogger.html b/5.x/docs/interfaces/SimpleLogger.html deleted file mode 100644 index 1bac84bb2..000000000 --- a/5.x/docs/interfaces/SimpleLogger.html +++ /dev/null @@ -1,97 +0,0 @@ -SimpleLogger | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface SimpleLogger

    -
    -

    Logs messages on a specific level.

    - -

    See

    getLoggerFor on how to instantiate loggers.

    -
    -
    -

    Hierarchy

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    log -
    -
    -

    Properties

    -
    - -
    log: ((level: "error" | "warn" | "info" | "verbose" | "debug" | "silly", message: string, meta?: LogMetadata) => SimpleLogger)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (level: "error" | "warn" | "info" | "verbose" | "debug" | "silly", message: string, meta?: LogMetadata): SimpleLogger
      • -
      • -

        Log the given message at the given level. -If the internal level is higher than the given level, the message may be voided.

        -
        -
        -

        Parameters

        -
          -
        • -
          level: "error" | "warn" | "info" | "verbose" | "debug" | "silly"
          -

          The level to log at.

          -
        • -
        • -
          message: string
          -

          The message to log.

          -
        • -
        • -
          Optional meta: LogMetadata
          -

          Optional metadata to include in the log message.

          -
        -

        Returns SimpleLogger

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/SingleThreaded.html b/5.x/docs/interfaces/SingleThreaded.html deleted file mode 100644 index 8ae5fbbcc..000000000 --- a/5.x/docs/interfaces/SingleThreaded.html +++ /dev/null @@ -1,649 +0,0 @@ -SingleThreaded | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface SingleThreaded

    -
    -

    Indicates a class is only meant to work in singlethreaded setups and is thus not threadsafe.

    -
    -
    -

    Hierarchy

    -
      -
    • SingleThreaded
    -
    -

    Implemented by

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/Size.html b/5.x/docs/interfaces/Size.html deleted file mode 100644 index 6c0766f2a..000000000 --- a/5.x/docs/interfaces/Size.html +++ /dev/null @@ -1,74 +0,0 @@ -Size | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    - -
    -

    Describes the size of something by stating how much of a certain unit is present.

    -
    -
    -

    Hierarchy

    -
      -
    • Size
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    amount: number
    -
    - -
    unit: string
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/SizeReporter.html b/5.x/docs/interfaces/SizeReporter.html deleted file mode 100644 index 0ba903d84..000000000 --- a/5.x/docs/interfaces/SizeReporter.html +++ /dev/null @@ -1,170 +0,0 @@ -SizeReporter | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface SizeReporter<T>

    -
    -

    A SizeReporter's only purpose (at the moment) is to calculate the size -of a resource. How the size is calculated or what unit it is in is defined by -the class implementing this interface. -One might use the amount of bytes and another might use the amount of triples -stored in a resource.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      T

    -
    -

    Hierarchy

    -
      -
    • SizeReporter
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    calculateChunkSize: ((chunk: T) => Promise<number>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (chunk: T): Promise<number>
      • -
      • -

        Calculate the size of a chunk based on which SizeReporter is being used

        - -

        Returns

        the size of the passed chunk as a number

        -
        -
        -

        Parameters

        -
          -
        • -
          chunk: T
          -

          the chunk of which you want the size

          -
        -

        Returns Promise<number>

    -
    - -
    estimateSize: ((metadata: RepresentationMetadata) => Promise<undefined | number>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (metadata: RepresentationMetadata): Promise<undefined | number>
      • -
      • -

        Estimate the size of a body / request by looking at its metadata

        - -

        Returns

        the estimated size of the body / request or undefined if no -meaningful estimation can be made

        -
        -
        -

        Parameters

        -
        -

        Returns Promise<undefined | number>

    -
    - -
    getSize: ((identifier: ResourceIdentifier) => Promise<Size>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (identifier: ResourceIdentifier): Promise<Size>
      • -
      • -

        Get the size of a given resource

        - -

        Returns

        The size of the resource as a Size object calculated recursively -if the identifier leads to a container

        -
        -
        -

        Parameters

        -
        -

        Returns Promise<Size>

    -
    - -
    getUnit: (() => string)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (): string
      • -
      • -

        Get the unit as a string in which a SizeReporter returns data

        -
        -

        Returns string

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/SparqlUpdatePatch.html b/5.x/docs/interfaces/SparqlUpdatePatch.html deleted file mode 100644 index 3a620a567..000000000 --- a/5.x/docs/interfaces/SparqlUpdatePatch.html +++ /dev/null @@ -1,114 +0,0 @@ -SparqlUpdatePatch | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface SparqlUpdatePatch

    -
    -

    A specific type of Patch corresponding to a SPARQL update.

    -
    -
    -

    Hierarchy

    -
      -
    • Patch -
        -
      • SparqlUpdatePatch
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    algebra: Update
    -

    Algebra corresponding to the SPARQL update.

    -
    -
    - -
    binary: boolean
    -

    Whether the data stream consists of binary/string chunks -(as opposed to complex objects).

    -
    -
    - -
    data: Guarded<Readable>
    -

    The raw data stream for this representation.

    -
    -
    - -
    isEmpty: boolean
    -

    Whether the data stream is empty. -This being true does not imply that the data stream has a length of more than 0, -only that it is a possibility and should be read to be sure.

    -
    -
    - - -

    The corresponding metadata.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/SystemError.html b/5.x/docs/interfaces/SystemError.html deleted file mode 100644 index e5d26e482..000000000 --- a/5.x/docs/interfaces/SystemError.html +++ /dev/null @@ -1,162 +0,0 @@ -SystemError | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface SystemError

    -
    -

    Interface for Node.js System errors

    -

    Node.js generates system errors when exceptions occur within its runtime environment. -These usually occur when an application violates an operating system constraint. -For example, a system error will occur if an application attempts to read a file that does not exist.

    -
    -
    -

    Hierarchy

    -
      -
    • Error -
        -
      • SystemError
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    address?: string
    -

    If present, the address to which a network connection failed.

    -
    -
    - -
    code: string
    -

    The string error code. -Full list: https://man7.org/linux/man-pages/man3/errno.3.html

    -
    -
    - -
    dest?: string
    -

    If present, the file path destination when reporting a file system error.

    -
    -
    - -
    errno: string | number
    -

    The system-provided error number.

    -
    -
    - -
    info?: any
    -

    If present, extra details about the error condition.

    -
    -
    - -
    message: string
    -
    - -
    name: string
    -
    - -
    path?: string
    -

    If present, the file path when reporting a file system error.

    -
    -
    - -
    port?: string
    -

    If present, the network connection port that is not available.

    -
    -
    - -
    stack?: string
    -
    - -
    syscall: string
    -

    The name of the system call that triggered the error.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/TemplateEngine.html b/5.x/docs/interfaces/TemplateEngine.html deleted file mode 100644 index d9fe52ea5..000000000 --- a/5.x/docs/interfaces/TemplateEngine.html +++ /dev/null @@ -1,109 +0,0 @@ -TemplateEngine | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface TemplateEngine<T>

    -
    -

    A template engine renders content into a template.

    -
    -
    -

    Type Parameters

    -
      -
    • -

      T extends Dict<any> = Dict<any>

    -
    -

    Hierarchy

    -
      -
    • TemplateEngine
    -
    -

    Implemented by

    -
    -
    -
    -
    - -
    -
    -

    Methods

    -
    -
    -

    Methods

    -
    - -
      - -
    • -

      Renders the given contents into the template.

      - -

      Returns

      The rendered contents.

      -
      -
      -

      Parameters

      -
        -
      • -
        contents: T
        -

        The contents to render.

        -
      -

      Returns Promise<string>

    • - -
    • -
      -

      Type Parameters

      -
        -
      • -

        TCustom = T

      -
      -

      Parameters

      -
        -
      • -
        contents: TCustom
      • -
      • -
        template: Template
      -

      Returns Promise<string>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/TemplateOptions.html b/5.x/docs/interfaces/TemplateOptions.html deleted file mode 100644 index d62f84073..000000000 --- a/5.x/docs/interfaces/TemplateOptions.html +++ /dev/null @@ -1,85 +0,0 @@ -TemplateOptions | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface TemplateOptions

    -
    -

    Hierarchy

    -
      -
    • TemplateOptions
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - -
    codeTemplatesPath?: string
    -
    - -
    contentType?: string
    -
    - -
    extension?: string
    -
    - -
    mainTemplatePath?: string
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/TemplatePath.html b/5.x/docs/interfaces/TemplatePath.html deleted file mode 100644 index efa3ad652..000000000 --- a/5.x/docs/interfaces/TemplatePath.html +++ /dev/null @@ -1,71 +0,0 @@ -TemplatePath | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface TemplatePath

    -
    -

    Hierarchy

    -
      -
    • TemplatePath
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    templateFile: string
    -
    - -
    templatePath?: string
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/TemplateString.html b/5.x/docs/interfaces/TemplateString.html deleted file mode 100644 index 6a31cb1ac..000000000 --- a/5.x/docs/interfaces/TemplateString.html +++ /dev/null @@ -1,64 +0,0 @@ -TemplateString | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface TemplateString

    -
    -

    Hierarchy

    -
      -
    • TemplateString
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    templateString: string
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/interfaces/TemplatedResourcesGeneratorArgs.html b/5.x/docs/interfaces/TemplatedResourcesGeneratorArgs.html deleted file mode 100644 index cf1cb87d3..000000000 --- a/5.x/docs/interfaces/TemplatedResourcesGeneratorArgs.html +++ /dev/null @@ -1,115 +0,0 @@ -TemplatedResourcesGeneratorArgs | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Interface TemplatedResourcesGeneratorArgs

    -
    -

    Input arguments required for TemplatedResourcesGenerator

    -
    -
    -

    Hierarchy

    -
      -
    • TemplatedResourcesGeneratorArgs
    -
    -
    -
    - -
    -
    -

    Properties

    -
    - - -

    Factory used to generate mapper relative to the base identifier.

    -
    -
    - -
    metadataStrategy: AuxiliaryStrategy
    -

    The metadataStrategy

    -
    -
    - - -

    The default ResourceStore

    -
    -
    - -
    templateEngine: TemplateEngine<Dict<any>>
    -

    Template engine for generating the resources.

    -
    -
    - -
    templateExtension?: string
    -

    The extension of files that need to be interpreted as templates. -Will be removed to generate the identifier.

    -
    -
    - -
    templateFolder: string
    -

    Folder where the templates are located.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/modules.html b/5.x/docs/modules.html deleted file mode 100644 index 293d52116..000000000 --- a/5.x/docs/modules.html +++ /dev/null @@ -1,1247 +0,0 @@ -Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    -

    Community Solid Server - v5.1.0

    -
    -
    -

    Index

    -
    -

    Enumerations

    -
    -
    -

    Classes

    -
    AbsolutePathInteractionRoute -AcceptPreferenceParser -AccessChecker -AgentAccessChecker -AgentClassAccessChecker -AgentGroupAccessChecker -AllStaticReader -AllowAcceptHeaderWriter -App -AppRunner -AssetPathExtractor -AsyncHandler -AtomicFileDataAccessor -Authorizer -AuthorizingHttpHandler -AuxiliaryLinkMetadataWriter -AuxiliaryReader -BadRequestHttpError -BaseAccountStore -BaseComponentsJsFactory -BaseEmailSender -BaseFileIdentifierMapper -BaseHttpServerFactory -BaseIdentifierStrategy -BaseInteractionHandler -BaseLogger -BaseResourceStore -BaseTypedRepresentationConverter -BaseUrlExtractor -BaseUrlHandler -BaseUrlRouterRule -BaseUrlVerifier -BasicConditions -BasicConditionsParser -BasicRepresentation -BasicRequestParser -BasicResponseWriter -BearerWebIdExtractor -BodyParser -BooleanHandler -CachedResourceSet -ChainedConverter -ChainedTemplateEngine -CliExtractor -CliResolver -ClientCredentialsAdapter -ClientCredentialsAdapterFactory -ClusterManager -CombinedShorthandResolver -ComposedAuxiliaryStrategy -ConditionalHandler -ConditionsParser -ConfigPodInitializer -ConfigPodManager -ConflictHttpError -ConsentHandler -ConstantConverter -ConstantMetadataWriter -ContainerInitializer -ContainerToTemplateConverter -ContentLengthParser -ContentType -ContentTypeMetadataWriter -ContentTypeParser -ContentTypeReplacer -ControlHandler -ConvertingErrorHandler -ConvertingPatcher -ConvertingRouterRule -CorsHandler -CreateCredentialsHandler -CreateModesExtractor -CreatedResponseDescription -CredentialsExtractor -CredentialsHandler -DPoPWebIdExtractor -DataAccessorBasedStore -DeleteCredentialsHandler -DeleteOperationHandler -DeleteParentExtractor -DynamicJsonToTemplateConverter -EjsTemplateEngine -EmailPasswordAuthorizer -EmailSender -EncodingPathStorage -EqualReadWriteLocker -ErrorHandler -ErrorToJsonConverter -ErrorToQuadConverter -ErrorToTemplateConverter -ExpiringAdapter -ExpiringAdapterFactory -ExtensionBasedMapper -ExtensionBasedMapperFactory -FileDataAccessor -FileSizeReporter -FileSystemResourceLocker -FilterMetadataDataAccessor -FilterPattern -FinalizableHandler -Finalizer -FixedContentTypeMapper -FixedInteractionHandler -ForbiddenHttpError -ForgotPasswordHandler -FormToJsonConverter -FoundHttpError -GeneratedPodManager -GetOperationHandler -GlobalQuotaStrategy -GreedyReadWriteLocker -HandlebarsTemplateEngine -HashMap -HeadOperationHandler -HeaderHandler -HtmlViewHandler -HttpError -HttpHandler -IdentifierMap -IdentifierSetMultiMap -IdentityProviderFactory -IdentityProviderHttpHandler -ImmutableMetadataPatcher -InMemoryDataAccessor -IndexRepresentationStore -InitializableHandler -Initializer -InteractionHandler -InteractionRouteHandler -IntermediateCreateExtractor -InternalServerError -JsonFileStorage -JsonResourceStorage -KeyExtractor -LazyLoggerFactory -LinkMetadataGenerator -LinkRelMetadataWriter -LinkRelObject -LinkRelParser -ListCredentialsHandler -LocationInteractionHandler -LockingResourceStore -LoggerInitializer -LoginHandler -MappedMetadataWriter -MarkdownToHtmlConverter -MemoryMapStorage -MemoryResourceLocker -MetadataGenerator -MetadataParser -MetadataWriter -MethodFilterHandler -MethodModesExtractor -MethodNotAllowedHttpError -ModesExtractor -ModifiedMetadataWriter -ModuleVersionVerifier -MonitoringStore -MovedPermanentlyHttpError -N3PatchBodyParser -N3PatchModesExtractor -N3Patcher -NoCheckOwnershipValidator -NotFoundHttpError -NotImplementedHttpError -OidcHttpHandler -OkResponseDescription -OperationHandler -OperationHttpHandler -OperationMetadataCollector -OriginalUrlExtractor -OwnerPermissionReader -OwnershipValidator -ParallelHandler -ParentContainerReader -ParsingHttpHandler -PassthroughAdapter -PassthroughAdapterFactory -PassthroughConverter -PassthroughDataAccessor -PassthroughStore -PatchHandler -PatchOperationHandler -PatchingStore -PathBasedReader -PermissionBasedAuthorizer -PermissionReader -PlainJsonLdFilter -PodQuotaStrategy -PostOperationHandler -PreconditionFailedHttpError -PreferenceParser -PreferenceSupport -ProcessHandler -PromptHandler -PublicCredentialsExtractor -PutOperationHandler -QuadToRdfConverter -QuotaStrategy -QuotaValidator -RawBodyParser -RdfPatcher -RdfStorePatcher -RdfToQuadConverter -RdfValidator -ReadOnlyStore -RecordObject -RedirectHttpError -RedirectingErrorHandler -RedirectingHttpHandler -RedisLocker -RegexRouterRule -RegexRule -RegistrationHandler -RegistrationManager -RelativePathInteractionRoute -RepresentationConverter -RepresentationConvertingStore -RepresentationMetadata -RepresentationPatchHandler -RepresentationPatcher -RequestParser -ResetPasswordHandler -ResetResponseDescription -ResponseDescription -ResponseWriter -RootFilePathHandler -RouterHandler -RouterRule -RoutingAuxiliaryIdentifierStrategy -RoutingAuxiliaryStrategy -RoutingResourceStore -SafeErrorHandler -SeededPodInitializer -SequenceHandler -ServerInitializer -SetupHandler -SetupHttpHandler -ShorthandExtractor -ShorthandResolver -SingleRootIdentifierStrategy -SlugParser -SparqlDataAccessor -SparqlUpdateBodyParser -SparqlUpdateModesExtractor -SparqlUpdatePatcher -StaticAssetHandler -StaticHandler -StaticThrowHandler -SubdomainExtensionBasedMapper -SubdomainIdentifierGenerator -SubdomainIdentifierStrategy -SuffixAuxiliaryIdentifierStrategy -SuffixIdentifierGenerator -TargetExtractor -TemplatedPodGenerator -TemplatedResourcesGenerator -TokenOwnershipValidator -TypedRepresentationConverter -UnauthorizedHttpError -UnionCredentialsExtractor -UnionHandler -UnionPermissionReader -UnsecureConstantCredentialsExtractor -UnsecureWebIdExtractor -UnsecureWebSocketsProtocol -UnsupportedAsyncHandler -UnsupportedMediaTypeHttpError -ValidatingDataAccessor -Validator -VariableHandler -VariableSetter -VoidLocker -VoidLogger -VoidLoggerFactory -WacAllowMetadataWriter -WaterfallHandler -WebAclAuxiliaryReader -WebAclMetadataCollector -WebAclReader -WebIdAdapter -WebIdAdapterFactory -WebSocketAdvertiser -WebSocketHandler -WebSocketServerFactory -WinstonLogger -WinstonLoggerFactory -WorkerManager -WrappedExpiringReadWriteLocker -WrappedExpiringStorage -WrappedSetMultiMap -WrappingLogger -WwwAuthMetadataWriter -YargsCliExtractor -YargsParameter -
    -
    -

    Interfaces

    -
    Accept -AcceptCharset -AcceptDatetime -AcceptEncoding -AcceptHeader -AcceptLanguage -AccessCheckerArgs -AccountPayload -AccountSettings -AccountStore -AdapterFactory -AsyncTransformOptions -AtomicDataAccessor -AtomicResourceStore -AuthorizerInput -AuthorizingHttpHandlerArgs -AuxiliaryIdentifierStrategy -AuxiliaryStrategy -BaseHttpServerOptions -BasicConditionsOptions -BasicRequestParserArgs -BodyParserArgs -CliOptions -ClientCredentials -ComponentsJsFactory -Conditions -ConstantConverterOptions -ContainerInitializerArgs -ConvertingStoreEntry -Credential -CredentialsHandlerBody -CredentialsHandlerInput -DataAccessor -EmailArgs -EmailSenderArgs -ErrorHandlerArgs -ExpiringReadWriteLocker -ExpiringStorage -FileIdentifierMapper -FileIdentifierMapperFactory -Finalizable -ForgotPasswordHandlerArgs -ForgotPasswordPayload -Forwarded -GreedyReadWriteSuffixes -HttpErrorClass -HttpErrorOptions -HttpHandlerInput -HttpServerFactory -IdentifierGenerator -IdentifierStrategy -IdentityProviderFactoryArgs -IdentityProviderHttpHandlerArgs -Initializable -InteractionHandlerInput -InteractionRoute -KeyValueStorage -LinkEntry -LinkEntryParameters -LogMetadata -Logger -LoggerFactory -Operation -OperationHandlerInput -OperationHttpHandlerInput -OperationMetadataCollectorInput -OriginalUrlExtractorArgs -ParsingHttpHandlerArgs -Patch -PermissionReaderInput -PodGenerator -PodManager -PodSettings -ProviderFactory -RdfStorePatcherInput -ReadWriteLocker -RedirectHttpErrorClass -RedisSettings -RegistrationManagerArgs -RegistrationParams -RegistrationResponse -Representation -RepresentationConverterArgs -RepresentationPatcherInput -RepresentationPreferences -Resource -ResourceIdentifier -ResourceLink -ResourceLocker -ResourceSet -ResourceStore -ResourcesGenerator -RouterHandlerArgs -SetMultiMap -SetupHandlerArgs -SetupHttpHandlerArgs -SimpleLogger -SingleThreaded -Size -SizeReporter -SparqlUpdatePatch -SystemError -TemplateEngine -TemplateOptions -TemplatePath -TemplateString -TemplatedResourcesGeneratorArgs -
    -
    -

    Type Aliases

    -
    -
    -

    Variables

    -
    -
    -

    Functions

    -
    absoluteFilePath -addGeneratedResources -addHeader -addResourceMetadata -addTemplateMetadata -allFulfilled -assertError -assertPassword -cleanPreferences -cloneRepresentation -concat -createAggregateError -createErrorMessage -createNamespace -createSubdomainRegexp -createTermNamespace -createUriAndTermNamespace -createUriNamespace -decodeUriPathComponents -encodeUriPathComponents -endOfStream -ensureLeadingSlash -ensureTrailingSlash -extractScheme -fetchDataset -filter -filterHandlers -find -findHandler -generateHttpErrorClass -generateHttpErrorUri -generateRedirectHttpErrorClass -getBestPreference -getConversionTarget -getDefault -getETag -getExtension -getLoggerFor -getModuleRoot -getRelativeUrl -getSingleItem -getStatusCode -getTemplateFilePath -getTypeWeight -getWeightedPreferences -guardStream -guardedStreamFrom -hasScheme -identifierHashFn -isContainerIdentifier -isContainerPath -isError -isGuarded -isHttpRequest -isInternalContentType -isRepresentationMetadata -isResourceIdentifier -isSystemError -isTerm -isValidFileName -isValidVariable -joinFilePath -joinUrl -listSingleThreadedComponents -map -matchesAuthorizationScheme -matchesMediaPreferences -matchesMediaType -modify -modulePath -normalizeFilePath -parseAccept -parseAcceptCharset -parseAcceptDateTime -parseAcceptEncoding -parseAcceptLanguage -parseContentType -parseForwarded -parseLinkHeader -parseParameters -parseQuads -pipeSafely -preferencesToString -promiseSome -readJsonStream -readPackageJson -readTemplate -readableToQuads -readableToString -reduce -resetInternalLoggerFactory -resolveAssetPath -resolveModulePath -responseToDataset -sanitizeUrlPart -serializeQuads -setGlobalLoggerFactory -setSafeInterval -splitAndClean -splitCommaSeparated -toCanonicalUriPath -toComponentsJsType -toLiteral -toNamedTerm -toObjectTerm -toPredicateTerm -transformQuotedStrings -transformSafely -trimLeadingSlashes -trimTrailingSlashes -uniqueQuads -updateModifiedDate -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/AccessMap.html b/5.x/docs/types/AccessMap.html deleted file mode 100644 index a81368536..000000000 --- a/5.x/docs/types/AccessMap.html +++ /dev/null @@ -1,639 +0,0 @@ -AccessMap | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias AccessMap

    - -

    Access modes per identifier.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/AclPermission.html b/5.x/docs/types/AclPermission.html deleted file mode 100644 index c8dff8d0d..000000000 --- a/5.x/docs/types/AclPermission.html +++ /dev/null @@ -1,637 +0,0 @@ -AclPermission | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias AclPermission

    -
    AclPermission: Permission & { [ mode in AclMode]?: boolean }
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/ChangeMap.html b/5.x/docs/types/ChangeMap.html deleted file mode 100644 index 377cd1592..000000000 --- a/5.x/docs/types/ChangeMap.html +++ /dev/null @@ -1,641 +0,0 @@ -ChangeMap | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias ChangeMap

    - -

    An IdentifierMap containing one entry for each resource that was created, updated or deleted -by this operation. Where the value is a RepresentationMetadata -containing extra information about the change of the resource.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/CredentialSet.html b/5.x/docs/types/CredentialSet.html deleted file mode 100644 index 183904c57..000000000 --- a/5.x/docs/types/CredentialSet.html +++ /dev/null @@ -1,639 +0,0 @@ -CredentialSet | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias CredentialSet

    -
    CredentialSet: Partial<Record<CredentialGroup, Credential>>
    -

    A combination of multiple credentials, where their group is specified by the key.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/EmailPasswordData.html b/5.x/docs/types/EmailPasswordData.html deleted file mode 100644 index ab4b382b7..000000000 --- a/5.x/docs/types/EmailPasswordData.html +++ /dev/null @@ -1,637 +0,0 @@ -EmailPasswordData | Community Solid Server - v5.1.0
    -
    - -
    -
    - -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/EmptyMapConstructor.html b/5.x/docs/types/EmptyMapConstructor.html deleted file mode 100644 index 699a93c0e..000000000 --- a/5.x/docs/types/EmptyMapConstructor.html +++ /dev/null @@ -1,647 +0,0 @@ -EmptyMapConstructor | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias EmptyMapConstructor

    -
    EmptyMapConstructor: (new () => Map<any, any>)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • new (): Map<any, any>
      • -
      • -

        A simplified version of MapConstructor that only allows creating an empty Map.

        -
        -

        Returns Map<any, any>

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/Expires.html b/5.x/docs/types/Expires.html deleted file mode 100644 index dfdaddf15..000000000 --- a/5.x/docs/types/Expires.html +++ /dev/null @@ -1,648 +0,0 @@ -Expires | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias Expires<T>

    -
    Expires<T>: { expires?: string; payload: T }
    -

    Type Parameters

    -
      -
    • -

      T

    -
    -

    Type declaration

    -
      -
    • -
      Optional expires?: string
    • -
    • -
      payload: T
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/Guarded.html b/5.x/docs/types/Guarded.html deleted file mode 100644 index b5557e343..000000000 --- a/5.x/docs/types/Guarded.html +++ /dev/null @@ -1,645 +0,0 @@ -Guarded | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias Guarded<T>

    -
    Guarded<T>: T & Guard
    -

    A stream that is guarded from emitting errors when there are no listeners. -If an error occurs while no listener is attached, -it will store the error and emit it once a listener is added (or a timeout occurs).

    -
    -

    Type Parameters

    -
      -
    • -

      T extends NodeJS.EventEmitter = NodeJS.EventEmitter

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/HttpRequest.html b/5.x/docs/types/HttpRequest.html deleted file mode 100644 index f9cbdcd02..000000000 --- a/5.x/docs/types/HttpRequest.html +++ /dev/null @@ -1,639 +0,0 @@ -HttpRequest | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias HttpRequest

    -
    HttpRequest: Guarded<IncomingMessage>
    -

    An incoming HTTP request;

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/HttpResponse.html b/5.x/docs/types/HttpResponse.html deleted file mode 100644 index 362582400..000000000 --- a/5.x/docs/types/HttpResponse.html +++ /dev/null @@ -1,639 +0,0 @@ -HttpResponse | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias HttpResponse

    -
    HttpResponse: ServerResponse
    -

    An outgoing HTTP response;

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/Interaction.html b/5.x/docs/types/Interaction.html deleted file mode 100644 index 7974da1c6..000000000 --- a/5.x/docs/types/Interaction.html +++ /dev/null @@ -1,637 +0,0 @@ -Interaction | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias Interaction

    -
    Interaction: NonNullable<KoaContextWithOIDC["oidc"]["entities"]["Interaction"]>
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/LogLevel.html b/5.x/docs/types/LogLevel.html deleted file mode 100644 index 13d8dd41e..000000000 --- a/5.x/docs/types/LogLevel.html +++ /dev/null @@ -1,639 +0,0 @@ -LogLevel | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias LogLevel

    -
    LogLevel: typeof LOG_LEVELS[number]
    -

    Different log levels, from most important to least important.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/MapEntry.html b/5.x/docs/types/MapEntry.html deleted file mode 100644 index d216941c5..000000000 --- a/5.x/docs/types/MapEntry.html +++ /dev/null @@ -1,641 +0,0 @@ -MapEntry | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias MapEntry<T>

    -
    MapEntry<T>: T extends Map<any, any> ? [MapKey<T>, MapValue<T>] : never
    -

    Type Parameters

    -
      -
    • -

      T

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/MapKey.html b/5.x/docs/types/MapKey.html deleted file mode 100644 index bd50f94a4..000000000 --- a/5.x/docs/types/MapKey.html +++ /dev/null @@ -1,641 +0,0 @@ -MapKey | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias MapKey<T>

    -
    MapKey<T>: T extends Map<infer TKey, any> ? TKey : never
    -

    Type Parameters

    -
      -
    • -

      T

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/MapValue.html b/5.x/docs/types/MapValue.html deleted file mode 100644 index 3dfdb1b75..000000000 --- a/5.x/docs/types/MapValue.html +++ /dev/null @@ -1,641 +0,0 @@ -MapValue | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias MapValue<T>

    -
    MapValue<T>: T extends Map<any, infer TValue> ? TValue : never
    -

    Type Parameters

    -
      -
    • -

      T

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/MetadataGraph.html b/5.x/docs/types/MetadataGraph.html deleted file mode 100644 index 65ef96268..000000000 --- a/5.x/docs/types/MetadataGraph.html +++ /dev/null @@ -1,637 +0,0 @@ -MetadataGraph | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias MetadataGraph

    -
    MetadataGraph: NamedNode | BlankNode | DefaultGraph | string
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/MetadataIdentifier.html b/5.x/docs/types/MetadataIdentifier.html deleted file mode 100644 index 397d72c7d..000000000 --- a/5.x/docs/types/MetadataIdentifier.html +++ /dev/null @@ -1,637 +0,0 @@ -MetadataIdentifier | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias MetadataIdentifier

    -
    MetadataIdentifier: ResourceIdentifier | NamedNode | BlankNode
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/MetadataRecord.html b/5.x/docs/types/MetadataRecord.html deleted file mode 100644 index 2758be791..000000000 --- a/5.x/docs/types/MetadataRecord.html +++ /dev/null @@ -1,637 +0,0 @@ -MetadataRecord | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias MetadataRecord

    -
    MetadataRecord: Record<string, MetadataValue>
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/MetadataValue.html b/5.x/docs/types/MetadataValue.html deleted file mode 100644 index d8fcde701..000000000 --- a/5.x/docs/types/MetadataValue.html +++ /dev/null @@ -1,637 +0,0 @@ -MetadataValue | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias MetadataValue

    -
    MetadataValue: NamedNode | Literal | string | (NamedNode | Literal | string)[]
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/ModifyOptions.html b/5.x/docs/types/ModifyOptions.html deleted file mode 100644 index 564e6dfcb..000000000 --- a/5.x/docs/types/ModifyOptions.html +++ /dev/null @@ -1,654 +0,0 @@ -ModifyOptions | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias ModifyOptions<T>

    -
    ModifyOptions<T>: { add?: Iterable<MapEntry<T>>; remove?: Iterable<MapKey<T>> }
    -

    Options describing the necessary changes when calling modify.

    -
    -

    Type Parameters

    - -
    -

    Type declaration

    -
      -
    • -
      Optional add?: Iterable<MapEntry<T>>
      -

      Entries that need to be added to the Map.

      -
    • -
    • -
      Optional remove?: Iterable<MapKey<T>>
      -

      Keys that need to be removed from the Map.

      -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/Namespace.html b/5.x/docs/types/Namespace.html deleted file mode 100644 index bb4e5f9b5..000000000 --- a/5.x/docs/types/Namespace.html +++ /dev/null @@ -1,643 +0,0 @@ -Namespace | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias Namespace<TKey, TValue>

    -
    Namespace<TKey, TValue>: { namespace: TValue } & RecordOf<TKey, TValue>
    -

    Type Parameters

    -
      -
    • -

      TKey extends any[]

    • -
    • -

      TValue

    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/PatchHandlerInput.html b/5.x/docs/types/PatchHandlerInput.html deleted file mode 100644 index 06440cc72..000000000 --- a/5.x/docs/types/PatchHandlerInput.html +++ /dev/null @@ -1,650 +0,0 @@ -PatchHandlerInput | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias PatchHandlerInput<T>

    -
    PatchHandlerInput<T>: { identifier: ResourceIdentifier; patch: Patch; source: T }
    -

    Type Parameters

    - -
    -

    Type declaration

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/Permission.html b/5.x/docs/types/Permission.html deleted file mode 100644 index 8b70c368f..000000000 --- a/5.x/docs/types/Permission.html +++ /dev/null @@ -1,639 +0,0 @@ -Permission | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias Permission

    -
    Permission: Partial<Record<AccessMode, boolean>>
    -

    A data interface indicating which permissions are required (based on the context).

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/PermissionMap.html b/5.x/docs/types/PermissionMap.html deleted file mode 100644 index 1d9f68427..000000000 --- a/5.x/docs/types/PermissionMap.html +++ /dev/null @@ -1,639 +0,0 @@ -PermissionMap | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias PermissionMap

    - -

    PermissionSet per identifier.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/PermissionSet.html b/5.x/docs/types/PermissionSet.html deleted file mode 100644 index 8d66676f1..000000000 --- a/5.x/docs/types/PermissionSet.html +++ /dev/null @@ -1,639 +0,0 @@ -PermissionSet | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias PermissionSet

    -
    PermissionSet: Partial<Record<CredentialGroup, Permission>>
    -

    Permission per CredentialGroup.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/Template.html b/5.x/docs/types/Template.html deleted file mode 100644 index eaab424d7..000000000 --- a/5.x/docs/types/Template.html +++ /dev/null @@ -1,637 +0,0 @@ -Template | Community Solid Server - v5.1.0
    -
    - -
    -
    - -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/TemplateFileName.html b/5.x/docs/types/TemplateFileName.html deleted file mode 100644 index 04016e318..000000000 --- a/5.x/docs/types/TemplateFileName.html +++ /dev/null @@ -1,637 +0,0 @@ -TemplateFileName | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias TemplateFileName

    -
    TemplateFileName: string
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/ValidatorInput.html b/5.x/docs/types/ValidatorInput.html deleted file mode 100644 index 4e4f16763..000000000 --- a/5.x/docs/types/ValidatorInput.html +++ /dev/null @@ -1,644 +0,0 @@ -ValidatorInput | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias ValidatorInput

    -
    ValidatorInput: { identifier: ResourceIdentifier; representation: Representation }
    -
    -

    Type declaration

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/ValuePreference.html b/5.x/docs/types/ValuePreference.html deleted file mode 100644 index 293ff16df..000000000 --- a/5.x/docs/types/ValuePreference.html +++ /dev/null @@ -1,647 +0,0 @@ -ValuePreference | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias ValuePreference

    -
    ValuePreference: { value: string; weight: number }
    -

    A single entry of a ValuePreferences object. -Useful when doing operations on such an object.

    -
    -
    -

    Type declaration

    -
      -
    • -
      value: string
    • -
    • -
      weight: number
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/ValuePreferences.html b/5.x/docs/types/ValuePreferences.html deleted file mode 100644 index 8aedfad48..000000000 --- a/5.x/docs/types/ValuePreferences.html +++ /dev/null @@ -1,651 +0,0 @@ -ValuePreferences | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias ValuePreferences

    -
    ValuePreferences: { [key: string]: number }
    -

    Represents preferred values along a single content negotiation dimension.

    -

    The number represents how preferred this value is from 0 to 1. -Follows the quality values rule from RFC 7231: -"The weight is normalized to a real number in the range 0 through 1, -where 0.001 is the least preferred and 1 is the most preferred; a -value of 0 means "not acceptable"."

    -

    Because of an open issue in Components.js we cannot use Record<string, number> right now. -https://github.com/LinkedSoftwareDependencies/Components-Generator.js/issues/103

    -
    -
    -

    Type declaration

    -
      -
    • -
      [key: string]: number
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/types/YargsOptions.html b/5.x/docs/types/YargsOptions.html deleted file mode 100644 index af7f8678c..000000000 --- a/5.x/docs/types/YargsOptions.html +++ /dev/null @@ -1,637 +0,0 @@ -YargsOptions | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Type alias YargsOptions

    -
    YargsOptions: Options
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/ACL.html b/5.x/docs/variables/ACL.html deleted file mode 100644 index 1ff9fbb19..000000000 --- a/5.x/docs/variables/ACL.html +++ /dev/null @@ -1,637 +0,0 @@ -ACL | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable ACLConst

    -
    ACL: { namespace: string } & RecordOf<("default" | "accessTo" | "agent" | "agentClass" | "agentGroup" | "AuthenticatedAgent" | "Authorization" | "mode" | "Write" | "Read" | "Append" | "Control")[], string> & { terms: Namespace<("default" | "accessTo" | "agent" | "agentClass" | "agentGroup" | "AuthenticatedAgent" | "Authorization" | "mode" | "Write" | "Read" | "Append" | "Control")[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/APPLICATION_JSON.html b/5.x/docs/variables/APPLICATION_JSON.html deleted file mode 100644 index 577a422ab..000000000 --- a/5.x/docs/variables/APPLICATION_JSON.html +++ /dev/null @@ -1,637 +0,0 @@ -APPLICATION_JSON | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable APPLICATION_JSONConst

    -
    APPLICATION_JSON: "application/json" = 'application/json'
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/APPLICATION_OCTET_STREAM.html b/5.x/docs/variables/APPLICATION_OCTET_STREAM.html deleted file mode 100644 index 6b3d9742e..000000000 --- a/5.x/docs/variables/APPLICATION_OCTET_STREAM.html +++ /dev/null @@ -1,637 +0,0 @@ -APPLICATION_OCTET_STREAM | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable APPLICATION_OCTET_STREAMConst

    -
    APPLICATION_OCTET_STREAM: "application/octet-stream" = 'application/octet-stream'
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/APPLICATION_SPARQL_UPDATE.html b/5.x/docs/variables/APPLICATION_SPARQL_UPDATE.html deleted file mode 100644 index 44322c361..000000000 --- a/5.x/docs/variables/APPLICATION_SPARQL_UPDATE.html +++ /dev/null @@ -1,637 +0,0 @@ -APPLICATION_SPARQL_UPDATE | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable APPLICATION_SPARQL_UPDATEConst

    -
    APPLICATION_SPARQL_UPDATE: "application/sparql-update" = 'application/sparql-update'
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/APPLICATION_X_WWW_FORM_URLENCODED.html b/5.x/docs/variables/APPLICATION_X_WWW_FORM_URLENCODED.html deleted file mode 100644 index 8a32850bb..000000000 --- a/5.x/docs/variables/APPLICATION_X_WWW_FORM_URLENCODED.html +++ /dev/null @@ -1,637 +0,0 @@ -APPLICATION_X_WWW_FORM_URLENCODED | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable APPLICATION_X_WWW_FORM_URLENCODEDConst

    -
    APPLICATION_X_WWW_FORM_URLENCODED: "application/x-www-form-urlencoded" = 'application/x-www-form-urlencoded'
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/AS.html b/5.x/docs/variables/AS.html deleted file mode 100644 index 88af5fd03..000000000 --- a/5.x/docs/variables/AS.html +++ /dev/null @@ -1,637 +0,0 @@ -AS | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable ASConst

    -
    AS: { namespace: string } & RecordOf<("Create" | "Delete" | "Update")[], string> & { terms: Namespace<("Create" | "Delete" | "Update")[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/AUTH.html b/5.x/docs/variables/AUTH.html deleted file mode 100644 index 9827517bb..000000000 --- a/5.x/docs/variables/AUTH.html +++ /dev/null @@ -1,637 +0,0 @@ -AUTH | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable AUTHConst

    -
    AUTH: { namespace: string } & RecordOf<("userMode" | "publicMode")[], string> & { terms: Namespace<("userMode" | "publicMode")[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/CONTENT_LENGTH.html b/5.x/docs/variables/CONTENT_LENGTH.html deleted file mode 100644 index 81e404efb..000000000 --- a/5.x/docs/variables/CONTENT_LENGTH.html +++ /dev/null @@ -1,637 +0,0 @@ -CONTENT_LENGTH | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable CONTENT_LENGTHConst

    -
    CONTENT_LENGTH: string = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/CONTENT_LENGTH_TERM.html b/5.x/docs/variables/CONTENT_LENGTH_TERM.html deleted file mode 100644 index 7e3d81eeb..000000000 --- a/5.x/docs/variables/CONTENT_LENGTH_TERM.html +++ /dev/null @@ -1,637 +0,0 @@ -CONTENT_LENGTH_TERM | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable CONTENT_LENGTH_TERMConst

    -
    CONTENT_LENGTH_TERM: NamedNode<string> = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/CONTENT_TYPE.html b/5.x/docs/variables/CONTENT_TYPE.html deleted file mode 100644 index 233fad7e0..000000000 --- a/5.x/docs/variables/CONTENT_TYPE.html +++ /dev/null @@ -1,637 +0,0 @@ -CONTENT_TYPE | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable CONTENT_TYPEConst

    -
    CONTENT_TYPE: string = MA.format
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/CONTENT_TYPE_TERM.html b/5.x/docs/variables/CONTENT_TYPE_TERM.html deleted file mode 100644 index 5feaf9bd6..000000000 --- a/5.x/docs/variables/CONTENT_TYPE_TERM.html +++ /dev/null @@ -1,637 +0,0 @@ -CONTENT_TYPE_TERM | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable CONTENT_TYPE_TERMConst

    -
    CONTENT_TYPE_TERM: NamedNode<string> = MA.terms.format
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/DC.html b/5.x/docs/variables/DC.html deleted file mode 100644 index 6ac5223c2..000000000 --- a/5.x/docs/variables/DC.html +++ /dev/null @@ -1,637 +0,0 @@ -DC | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable DCConst

    -
    DC: { namespace: string } & RecordOf<("description" | "modified" | "title")[], string> & { terms: Namespace<("description" | "modified" | "title")[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/DEFAULT_CUSTOM_TYPES.html b/5.x/docs/variables/DEFAULT_CUSTOM_TYPES.html deleted file mode 100644 index 5bb06104d..000000000 --- a/5.x/docs/variables/DEFAULT_CUSTOM_TYPES.html +++ /dev/null @@ -1,644 +0,0 @@ -DEFAULT_CUSTOM_TYPES | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable DEFAULT_CUSTOM_TYPESConst

    -
    DEFAULT_CUSTOM_TYPES: { acl: string; meta: string } = ...
    -
    -

    Type declaration

    -
      -
    • -
      acl: string
    • -
    • -
      meta: string
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/FOAF.html b/5.x/docs/variables/FOAF.html deleted file mode 100644 index 38c7a1750..000000000 --- a/5.x/docs/variables/FOAF.html +++ /dev/null @@ -1,637 +0,0 @@ -FOAF | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable FOAFConst

    -
    FOAF: { namespace: string } & RecordOf<"Agent"[], string> & { terms: Namespace<"Agent"[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/HH.html b/5.x/docs/variables/HH.html deleted file mode 100644 index 35c3a83ed..000000000 --- a/5.x/docs/variables/HH.html +++ /dev/null @@ -1,637 +0,0 @@ -HH | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable HHConst

    -
    HH: { namespace: string } & RecordOf<"content-length"[], string> & { terms: Namespace<"content-length"[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/HTTP.html b/5.x/docs/variables/HTTP.html deleted file mode 100644 index 228e62cbd..000000000 --- a/5.x/docs/variables/HTTP.html +++ /dev/null @@ -1,637 +0,0 @@ -HTTP | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable HTTPConst

    -
    HTTP: { namespace: string } & RecordOf<"statusCodeNumber"[], string> & { terms: Namespace<"statusCodeNumber"[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/IANA.html b/5.x/docs/variables/IANA.html deleted file mode 100644 index 5c9177dd2..000000000 --- a/5.x/docs/variables/IANA.html +++ /dev/null @@ -1,637 +0,0 @@ -IANA | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable IANAConst

    -
    IANA: { namespace: string } & RecordOf<string[], string> & { terms: Namespace<string[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/INTERNAL_ALL.html b/5.x/docs/variables/INTERNAL_ALL.html deleted file mode 100644 index 1bdcec2ab..000000000 --- a/5.x/docs/variables/INTERNAL_ALL.html +++ /dev/null @@ -1,637 +0,0 @@ -INTERNAL_ALL | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable INTERNAL_ALLConst

    -
    INTERNAL_ALL: "internal/*" = 'internal/*'
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/INTERNAL_ERROR.html b/5.x/docs/variables/INTERNAL_ERROR.html deleted file mode 100644 index f6318420b..000000000 --- a/5.x/docs/variables/INTERNAL_ERROR.html +++ /dev/null @@ -1,637 +0,0 @@ -INTERNAL_ERROR | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable INTERNAL_ERRORConst

    -
    INTERNAL_ERROR: "internal/error" = 'internal/error'
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/INTERNAL_QUADS.html b/5.x/docs/variables/INTERNAL_QUADS.html deleted file mode 100644 index f8873cd20..000000000 --- a/5.x/docs/variables/INTERNAL_QUADS.html +++ /dev/null @@ -1,637 +0,0 @@ -INTERNAL_QUADS | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable INTERNAL_QUADSConst

    -
    INTERNAL_QUADS: "internal/quads" = 'internal/quads'
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/JSON_LD.html b/5.x/docs/variables/JSON_LD.html deleted file mode 100644 index 3c5d01494..000000000 --- a/5.x/docs/variables/JSON_LD.html +++ /dev/null @@ -1,637 +0,0 @@ -JSON_LD | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable JSON_LDConst

    -
    JSON_LD: { namespace: string } & RecordOf<"context"[], string> & { terms: Namespace<"context"[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/LDP.html b/5.x/docs/variables/LDP.html deleted file mode 100644 index f7933c6f8..000000000 --- a/5.x/docs/variables/LDP.html +++ /dev/null @@ -1,637 +0,0 @@ -LDP | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable LDPConst

    -
    LDP: { namespace: string } & RecordOf<("contains" | "BasicContainer" | "Container" | "Resource")[], string> & { terms: Namespace<("contains" | "BasicContainer" | "Container" | "Resource")[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/LOG_LEVELS.html b/5.x/docs/variables/LOG_LEVELS.html deleted file mode 100644 index c79cc6b43..000000000 --- a/5.x/docs/variables/LOG_LEVELS.html +++ /dev/null @@ -1,637 +0,0 @@ -LOG_LEVELS | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable LOG_LEVELSConst

    -
    LOG_LEVELS: readonly ["error", "warn", "info", "verbose", "debug", "silly"] = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/MA.html b/5.x/docs/variables/MA.html deleted file mode 100644 index 6fb6fbbc8..000000000 --- a/5.x/docs/variables/MA.html +++ /dev/null @@ -1,637 +0,0 @@ -MA | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable MAConst

    -
    MA: { namespace: string } & RecordOf<"format"[], string> & { terms: Namespace<"format"[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/OIDC.html b/5.x/docs/variables/OIDC.html deleted file mode 100644 index ccc71b97e..000000000 --- a/5.x/docs/variables/OIDC.html +++ /dev/null @@ -1,637 +0,0 @@ -OIDC | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable OIDCConst

    -
    OIDC: { namespace: string } & RecordOf<"redirect_uris"[], string> & { terms: Namespace<"redirect_uris"[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/PIM.html b/5.x/docs/variables/PIM.html deleted file mode 100644 index bd76d0257..000000000 --- a/5.x/docs/variables/PIM.html +++ /dev/null @@ -1,637 +0,0 @@ -PIM | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable PIMConst

    -
    PIM: { namespace: string } & RecordOf<"Storage"[], string> & { terms: Namespace<"Storage"[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/POSIX.html b/5.x/docs/variables/POSIX.html deleted file mode 100644 index 19d2173bc..000000000 --- a/5.x/docs/variables/POSIX.html +++ /dev/null @@ -1,637 +0,0 @@ -POSIX | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable POSIXConst

    -
    POSIX: { namespace: string } & RecordOf<("mtime" | "size")[], string> & { terms: Namespace<("mtime" | "size")[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/PREFERRED_PREFIX.html b/5.x/docs/variables/PREFERRED_PREFIX.html deleted file mode 100644 index 99399b600..000000000 --- a/5.x/docs/variables/PREFERRED_PREFIX.html +++ /dev/null @@ -1,637 +0,0 @@ -PREFERRED_PREFIX | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable PREFERRED_PREFIXConst

    -
    PREFERRED_PREFIX: string = VANN.preferredNamespacePrefix
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/PREFERRED_PREFIX_TERM.html b/5.x/docs/variables/PREFERRED_PREFIX_TERM.html deleted file mode 100644 index dcff32b2a..000000000 --- a/5.x/docs/variables/PREFERRED_PREFIX_TERM.html +++ /dev/null @@ -1,637 +0,0 @@ -PREFERRED_PREFIX_TERM | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable PREFERRED_PREFIX_TERMConst

    -
    PREFERRED_PREFIX_TERM: NamedNode<string> = VANN.terms.preferredNamespacePrefix
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/RDF.html b/5.x/docs/variables/RDF.html deleted file mode 100644 index c20c0f20d..000000000 --- a/5.x/docs/variables/RDF.html +++ /dev/null @@ -1,637 +0,0 @@ -RDF | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable RDFConst

    -
    RDF: { namespace: string } & RecordOf<"type"[], string> & { terms: Namespace<"type"[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/RDFS.html b/5.x/docs/variables/RDFS.html deleted file mode 100644 index 8618a8969..000000000 --- a/5.x/docs/variables/RDFS.html +++ /dev/null @@ -1,637 +0,0 @@ -RDFS | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable RDFSConst

    -
    RDFS: { namespace: string } & RecordOf<"label"[], string> & { terms: Namespace<"label"[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/SOLID.html b/5.x/docs/variables/SOLID.html deleted file mode 100644 index 27abf94db..000000000 --- a/5.x/docs/variables/SOLID.html +++ /dev/null @@ -1,637 +0,0 @@ -SOLID | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable SOLIDConst

    -
    SOLID: { namespace: string } & RecordOf<("deletes" | "inserts" | "oidcIssuer" | "oidcIssuerRegistrationToken" | "oidcRegistration" | "where" | "InsertDeletePatch")[], string> & { terms: Namespace<("deletes" | "inserts" | "oidcIssuer" | "oidcIssuerRegistrationToken" | "oidcRegistration" | "where" | "InsertDeletePatch")[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/SOLID_AS.html b/5.x/docs/variables/SOLID_AS.html deleted file mode 100644 index f341fa514..000000000 --- a/5.x/docs/variables/SOLID_AS.html +++ /dev/null @@ -1,637 +0,0 @@ -SOLID_AS | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable SOLID_ASConst

    -
    SOLID_AS: { namespace: string } & RecordOf<"Activity"[], string> & { terms: Namespace<"Activity"[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/SOLID_ERROR.html b/5.x/docs/variables/SOLID_ERROR.html deleted file mode 100644 index f8fbabe81..000000000 --- a/5.x/docs/variables/SOLID_ERROR.html +++ /dev/null @@ -1,637 +0,0 @@ -SOLID_ERROR | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable SOLID_ERRORConst

    -
    SOLID_ERROR: { namespace: string } & RecordOf<("disallowedMethod" | "errorResponse" | "stack")[], string> & { terms: Namespace<("disallowedMethod" | "errorResponse" | "stack")[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/SOLID_HTTP.html b/5.x/docs/variables/SOLID_HTTP.html deleted file mode 100644 index a3303d63e..000000000 --- a/5.x/docs/variables/SOLID_HTTP.html +++ /dev/null @@ -1,637 +0,0 @@ -SOLID_HTTP | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable SOLID_HTTPConst

    -
    SOLID_HTTP: { namespace: string } & RecordOf<("location" | "slug")[], string> & { terms: Namespace<("location" | "slug")[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/SOLID_META.html b/5.x/docs/variables/SOLID_META.html deleted file mode 100644 index ce83bc9e0..000000000 --- a/5.x/docs/variables/SOLID_META.html +++ /dev/null @@ -1,637 +0,0 @@ -SOLID_META | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable SOLID_METAConst

    -
    SOLID_META: { namespace: string } & RecordOf<("ResponseMetadata" | "template" | "contentTypeParameter" | "value" | "preserve")[], string> & { terms: Namespace<("ResponseMetadata" | "template" | "contentTypeParameter" | "value" | "preserve")[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/TEMPLATE-1.html b/5.x/docs/variables/TEMPLATE-1.html deleted file mode 100644 index 4e83dbd4d..000000000 --- a/5.x/docs/variables/TEMPLATE-1.html +++ /dev/null @@ -1,637 +0,0 @@ -TEMPLATE | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable TEMPLATEConst

    -
    TEMPLATE: { namespace: string } & RecordOf<"ResourceStore"[], string> & { terms: Namespace<"ResourceStore"[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/TEMPLATE_VARIABLE.html b/5.x/docs/variables/TEMPLATE_VARIABLE.html deleted file mode 100644 index 40fe46604..000000000 --- a/5.x/docs/variables/TEMPLATE_VARIABLE.html +++ /dev/null @@ -1,637 +0,0 @@ -TEMPLATE_VARIABLE | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable TEMPLATE_VARIABLEConst

    -
    TEMPLATE_VARIABLE: { namespace: string } & RecordOf<("baseUrl" | "rootFilePath" | "sparqlEndpoint" | "templateConfig")[], string> & { terms: Namespace<("baseUrl" | "rootFilePath" | "sparqlEndpoint" | "templateConfig")[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/TEXT_HTML.html b/5.x/docs/variables/TEXT_HTML.html deleted file mode 100644 index 99ca57616..000000000 --- a/5.x/docs/variables/TEXT_HTML.html +++ /dev/null @@ -1,637 +0,0 @@ -TEXT_HTML | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable TEXT_HTMLConst

    -
    TEXT_HTML: "text/html" = 'text/html'
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/TEXT_MARKDOWN.html b/5.x/docs/variables/TEXT_MARKDOWN.html deleted file mode 100644 index d1bb9364c..000000000 --- a/5.x/docs/variables/TEXT_MARKDOWN.html +++ /dev/null @@ -1,637 +0,0 @@ -TEXT_MARKDOWN | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable TEXT_MARKDOWNConst

    -
    TEXT_MARKDOWN: "text/markdown" = 'text/markdown'
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/TEXT_N3.html b/5.x/docs/variables/TEXT_N3.html deleted file mode 100644 index c1fb084ea..000000000 --- a/5.x/docs/variables/TEXT_N3.html +++ /dev/null @@ -1,637 +0,0 @@ -TEXT_N3 | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable TEXT_N3Const

    -
    TEXT_N3: "text/n3" = 'text/n3'
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/TEXT_TURTLE.html b/5.x/docs/variables/TEXT_TURTLE.html deleted file mode 100644 index 22bcddba3..000000000 --- a/5.x/docs/variables/TEXT_TURTLE.html +++ /dev/null @@ -1,637 +0,0 @@ -TEXT_TURTLE | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable TEXT_TURTLEConst

    -
    TEXT_TURTLE: "text/turtle" = 'text/turtle'
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/UNIT_BYTES.html b/5.x/docs/variables/UNIT_BYTES.html deleted file mode 100644 index b75f56f8a..000000000 --- a/5.x/docs/variables/UNIT_BYTES.html +++ /dev/null @@ -1,637 +0,0 @@ -UNIT_BYTES | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable UNIT_BYTESConst

    -
    UNIT_BYTES: "bytes" = 'bytes'
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/VANN.html b/5.x/docs/variables/VANN.html deleted file mode 100644 index b94c5191c..000000000 --- a/5.x/docs/variables/VANN.html +++ /dev/null @@ -1,637 +0,0 @@ -VANN | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable VANNConst

    -
    VANN: { namespace: string } & RecordOf<"preferredNamespacePrefix"[], string> & { terms: Namespace<"preferredNamespacePrefix"[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/VCARD.html b/5.x/docs/variables/VCARD.html deleted file mode 100644 index a4b4089d3..000000000 --- a/5.x/docs/variables/VCARD.html +++ /dev/null @@ -1,637 +0,0 @@ -VCARD | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable VCARDConst

    -
    VCARD: { namespace: string } & RecordOf<"hasMember"[], string> & { terms: Namespace<"hasMember"[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/XSD.html b/5.x/docs/variables/XSD.html deleted file mode 100644 index f8aa45345..000000000 --- a/5.x/docs/variables/XSD.html +++ /dev/null @@ -1,637 +0,0 @@ -XSD | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable XSDConst

    -
    XSD: { namespace: string } & RecordOf<("dateTime" | "integer")[], string> & { terms: Namespace<("dateTime" | "integer")[], NamedNode<string>> } = ...
    -
    -
    \ No newline at end of file diff --git a/5.x/docs/variables/modulePathPlaceholder.html b/5.x/docs/variables/modulePathPlaceholder.html deleted file mode 100644 index 4950d6b47..000000000 --- a/5.x/docs/variables/modulePathPlaceholder.html +++ /dev/null @@ -1,640 +0,0 @@ -modulePathPlaceholder | Community Solid Server - v5.1.0
    -
    - -
    -
    -
    -
    - -

    Variable modulePathPlaceholderConst

    -
    modulePathPlaceholder: "@css:" = '@css:'
    -

    A placeholder for the path to the @solid/community-server module root. -The resolveAssetPath function will replace this string with the actual path.

    -
    -
    -
    \ No newline at end of file diff --git a/5.x/index.html b/5.x/index.html index b8037731c..084467e9b 100644 --- a/5.x/index.html +++ b/5.x/index.html @@ -11,7 +11,7 @@ - + @@ -19,13 +19,14 @@ - + + @@ -44,6 +45,7 @@ + @@ -160,7 +162,7 @@ @@ -184,7 +186,7 @@
    - +
    CommunitySolidServer @@ -320,7 +322,7 @@
    - +
    CommunitySolidServer @@ -902,10 +904,11 @@
    -
    -
    - + - + diff --git a/5.x/sitemap.xml b/5.x/sitemap.xml index b0a26ab6f..37d16f85f 100644 --- a/5.x/sitemap.xml +++ b/5.x/sitemap.xml @@ -2,92 +2,92 @@ https://communitysolidserver.github.io/CommunitySolidServer/5.x/ - 2022-08-25 + 2022-11-03 daily https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/core/ - 2022-08-25 + 2022-11-03 daily https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/dependency-injection/ - 2022-08-25 + 2022-11-03 daily https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/overview/ - 2022-08-25 + 2022-11-03 daily https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/features/cli/ - 2022-08-25 + 2022-11-03 daily https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/features/http-handler/ - 2022-08-25 + 2022-11-03 daily https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/features/initialization/ - 2022-08-25 + 2022-11-03 daily https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/features/protocol/authorization/ - 2022-08-25 + 2022-11-03 daily https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/features/protocol/overview/ - 2022-08-25 + 2022-11-03 daily https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/features/protocol/parsing/ - 2022-08-25 + 2022-11-03 daily https://communitysolidserver.github.io/CommunitySolidServer/5.x/architecture/features/protocol/resource-store/ - 2022-08-25 + 2022-11-03 daily https://communitysolidserver.github.io/CommunitySolidServer/5.x/contributing/making-changes/ - 2022-08-25 + 2022-11-03 daily https://communitysolidserver.github.io/CommunitySolidServer/5.x/contributing/release/ - 2022-08-25 + 2022-11-03 daily https://communitysolidserver.github.io/CommunitySolidServer/5.x/usage/client-credentials/ - 2022-08-25 + 2022-11-03 daily https://communitysolidserver.github.io/CommunitySolidServer/5.x/usage/example-requests/ - 2022-08-25 + 2022-11-03 daily https://communitysolidserver.github.io/CommunitySolidServer/5.x/usage/identity-provider/ - 2022-08-25 + 2022-11-03 daily https://communitysolidserver.github.io/CommunitySolidServer/5.x/usage/metadata/ - 2022-08-25 + 2022-11-03 daily https://communitysolidserver.github.io/CommunitySolidServer/5.x/usage/seeding-pods/ - 2022-08-25 + 2022-11-03 daily \ No newline at end of file diff --git a/5.x/sitemap.xml.gz b/5.x/sitemap.xml.gz index 6310e5091..9bac9aa6a 100644 Binary files a/5.x/sitemap.xml.gz and b/5.x/sitemap.xml.gz differ diff --git a/5.x/usage/client-credentials/index.html b/5.x/usage/client-credentials/index.html index acc23baba..94bc2691a 100644 --- a/5.x/usage/client-credentials/index.html +++ b/5.x/usage/client-credentials/index.html @@ -11,7 +11,7 @@ - + @@ -19,13 +19,14 @@ - + + @@ -44,6 +45,7 @@ + @@ -160,7 +162,7 @@ @@ -184,7 +186,7 @@
    - +
    CommunitySolidServer @@ -318,7 +320,7 @@
    - +
    CommunitySolidServer @@ -967,10 +969,11 @@
    -
    - +
    + +
    - + @@ -1142,7 +1147,7 @@ but adding a delete key to the JSON input object with as value the - + @@ -1151,7 +1156,7 @@ but adding a delete key to the JSON input object with as value the - + @@ -1160,7 +1165,7 @@ but adding a delete key to the JSON input object with as value the - + @@ -1174,10 +1179,10 @@ but adding a delete key to the JSON input object with as value the
    - + - + diff --git a/5.x/usage/example-requests/index.html b/5.x/usage/example-requests/index.html index a5a6080c1..13609cebf 100644 --- a/5.x/usage/example-requests/index.html +++ b/5.x/usage/example-requests/index.html @@ -11,7 +11,7 @@ - + @@ -19,13 +19,14 @@ - + + @@ -44,6 +45,7 @@ + @@ -160,7 +162,7 @@ @@ -184,7 +186,7 @@
    - +
    - + @@ -1157,7 +1162,7 @@ - + @@ -1166,7 +1171,7 @@ - + @@ -1175,7 +1180,7 @@ - + @@ -1189,10 +1194,10 @@
    - + - + diff --git a/5.x/usage/identity-provider/index.html b/5.x/usage/identity-provider/index.html index a6760f24b..5672d3c19 100644 --- a/5.x/usage/identity-provider/index.html +++ b/5.x/usage/identity-provider/index.html @@ -11,7 +11,7 @@ - + @@ -19,13 +19,14 @@ - + + @@ -44,6 +45,7 @@ + @@ -160,7 +162,7 @@ @@ -184,7 +186,7 @@
    - +
    CommunitySolidServer @@ -318,7 +320,7 @@
    - +
    CommunitySolidServer @@ -1117,10 +1119,11 @@
    -
    - +
    + +
    - + @@ -1356,7 +1361,7 @@ meaning you can still use this server as an IDP with the account created there.< - + @@ -1365,7 +1370,7 @@ meaning you can still use this server as an IDP with the account created there.< - + @@ -1374,7 +1379,7 @@ meaning you can still use this server as an IDP with the account created there.< - + @@ -1388,10 +1393,10 @@ meaning you can still use this server as an IDP with the account created there.<
    - + - + diff --git a/5.x/usage/metadata/index.html b/5.x/usage/metadata/index.html index d96070abd..378da613a 100644 --- a/5.x/usage/metadata/index.html +++ b/5.x/usage/metadata/index.html @@ -11,7 +11,7 @@ - + @@ -19,13 +19,14 @@ - + + @@ -44,6 +45,7 @@ + @@ -160,7 +162,7 @@ @@ -184,7 +186,7 @@
    - +
    CommunitySolidServer @@ -318,7 +320,7 @@
    - +
    CommunitySolidServer @@ -1007,10 +1009,11 @@
    -
    -
    - + +
    +
    +

    Editing metadata of resources

    @@ -1102,10 +1105,12 @@ Link: <http://localhost:3000/inbox/>;
    @@ -1214,10 +1219,10 @@ Link: <http://localhost:3000/inbox/>;
    - + - + diff --git a/5.x/usage/seeding-pods/index.html b/5.x/usage/seeding-pods/index.html index 3bb5aa628..db436283c 100644 --- a/5.x/usage/seeding-pods/index.html +++ b/5.x/usage/seeding-pods/index.html @@ -11,7 +11,7 @@ - + @@ -19,13 +19,14 @@ - + + @@ -44,6 +45,7 @@ + @@ -160,7 +162,7 @@ @@ -184,7 +186,7 @@
    - +
    - + @@ -999,7 +1004,7 @@ which requires an interactive validation step.

    - + @@ -1008,7 +1013,7 @@ which requires an interactive validation step.

    - + @@ -1017,7 +1022,7 @@ which requires an interactive validation step.

    - + @@ -1031,10 +1036,10 @@ which requires an interactive validation step.

    - + - +