From 286cc7c169455a155972c9fc6be4c742775f9ddc Mon Sep 17 00:00:00 2001 From: Darius J Chuck Date: Thu, 21 Aug 2025 01:25:39 +0200 Subject: [PATCH 1/2] separate the docs business into a branch --- docs/all_symbols.html | 120 ++ docs/comrak.css | 1 + docs/fuse.js | 11 + docs/index.html | 52 + docs/page.css | 1 + docs/prism.css | 3 + docs/prism.js | 15 + docs/reset.css | 1 + docs/script.js | 35 + docs/search.js | 141 +++ docs/search_index.js | 3 + docs/styles.css | 1 + docs/~/JsonHigh.html | 238 ++++ docs/~/JsonHighEvents.bufferKey.html | 150 +++ docs/~/JsonHighEvents.bufferNumber.html | 150 +++ docs/~/JsonHighEvents.bufferString.html | 150 +++ docs/~/JsonHighEvents.closeArray.html | 148 +++ docs/~/JsonHighEvents.closeKey.html | 149 +++ docs/~/JsonHighEvents.closeObject.html | 148 +++ docs/~/JsonHighEvents.closeString.html | 149 +++ docs/~/JsonHighEvents.end.html | 148 +++ docs/~/JsonHighEvents.html | 1121 +++++++++++++++++ docs/~/JsonHighEvents.key.html | 151 +++ docs/~/JsonHighEvents.openArray.html | 148 +++ docs/~/JsonHighEvents.openKey.html | 148 +++ docs/~/JsonHighEvents.openNumber.html | 148 +++ docs/~/JsonHighEvents.openObject.html | 148 +++ docs/~/JsonHighEvents.openString.html | 148 +++ docs/~/JsonHighEvents.value.html | 150 +++ docs/~/JsonHighHandler.html | 226 ++++ docs/~/JsonHighHandlers.html | 279 ++++ docs/~/JsonHighOptions.bufferOnChunk.html | 153 +++ docs/~/JsonHighOptions.html | 351 ++++++ docs/~/JsonHighOptions.maxNumberLength.html | 148 +++ ...JsonHighOptions.maxStringBufferLength.html | 154 +++ docs/~/JsonHighOptions.parseNumbers.html | 150 +++ docs/~/JsonHighStream.chunk.html | 252 ++++ docs/~/JsonHighStream.depth.html | 182 +++ docs/~/JsonHighStream.end.html | 174 +++ docs/~/JsonHighStream.html | 423 +++++++ scripts/make-docs.sh | 1 + 41 files changed, 6469 insertions(+) create mode 100644 docs/all_symbols.html create mode 100644 docs/comrak.css create mode 100644 docs/fuse.js create mode 100644 docs/index.html create mode 100644 docs/page.css create mode 100644 docs/prism.css create mode 100644 docs/prism.js create mode 100644 docs/reset.css create mode 100644 docs/script.js create mode 100644 docs/search.js create mode 100644 docs/search_index.js create mode 100644 docs/styles.css create mode 100644 docs/~/JsonHigh.html create mode 100644 docs/~/JsonHighEvents.bufferKey.html create mode 100644 docs/~/JsonHighEvents.bufferNumber.html create mode 100644 docs/~/JsonHighEvents.bufferString.html create mode 100644 docs/~/JsonHighEvents.closeArray.html create mode 100644 docs/~/JsonHighEvents.closeKey.html create mode 100644 docs/~/JsonHighEvents.closeObject.html create mode 100644 docs/~/JsonHighEvents.closeString.html create mode 100644 docs/~/JsonHighEvents.end.html create mode 100644 docs/~/JsonHighEvents.html create mode 100644 docs/~/JsonHighEvents.key.html create mode 100644 docs/~/JsonHighEvents.openArray.html create mode 100644 docs/~/JsonHighEvents.openKey.html create mode 100644 docs/~/JsonHighEvents.openNumber.html create mode 100644 docs/~/JsonHighEvents.openObject.html create mode 100644 docs/~/JsonHighEvents.openString.html create mode 100644 docs/~/JsonHighEvents.value.html create mode 100644 docs/~/JsonHighHandler.html create mode 100644 docs/~/JsonHighHandlers.html create mode 100644 docs/~/JsonHighOptions.bufferOnChunk.html create mode 100644 docs/~/JsonHighOptions.html create mode 100644 docs/~/JsonHighOptions.maxNumberLength.html create mode 100644 docs/~/JsonHighOptions.maxStringBufferLength.html create mode 100644 docs/~/JsonHighOptions.parseNumbers.html create mode 100644 docs/~/JsonHighStream.chunk.html create mode 100644 docs/~/JsonHighStream.depth.html create mode 100644 docs/~/JsonHighStream.end.html create mode 100644 docs/~/JsonHighStream.html create mode 100644 scripts/make-docs.sh diff --git a/docs/all_symbols.html b/docs/all_symbols.html new file mode 100644 index 0000000..71d99ce --- /dev/null +++ b/docs/all_symbols.html @@ -0,0 +1,120 @@ + + + + All Symbols - documentation + + + + + + + + + + +
+ +
+
+
+
T
v
+
+ JsonHigh + +

This is the high-level interface over JsonLow optimized for convenience. It provides similar functionality and granularity to other streaming parsers, such as Clarinet or creationix/jsonparse.

+
+
T
+
+ JsonHighHandler + +

TODO: doc

+
+
T
+
+ JsonHighHandlers + +

TODO: this should be called something like JsonHighParameters or JsonHighArguments or sth.

+
+
T
+
+ JsonHighStream + +

Return value

+
+
+
+
+
+
+
+
+ + diff --git a/docs/comrak.css b/docs/comrak.css new file mode 100644 index 0000000..5b6e6dc --- /dev/null +++ b/docs/comrak.css @@ -0,0 +1 @@ +.link{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter,-webkit-backdrop-filter;transition-duration:75ms;transition-timing-function:cubic-bezier(.4,0,.2,1)}.link:hover{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity))}:is(.markdown_summary,.markdown) a:not(.no_color){--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter,-webkit-backdrop-filter;transition-duration:75ms;transition-timing-function:cubic-bezier(.4,0,.2,1)}:is(.markdown_summary,.markdown) a:not(.no_color):hover{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity))}.markdown_summary{--tw-text-opacity:1;color:rgb(87 83 78/var(--tw-text-opacity));display:inline}.markdown_summary p{-webkit-line-clamp:4;-webkit-box-orient:vertical;display:inline-block;overflow:hidden}.markdown_summary :not(pre)>code{--tw-bg-opacity:1;background-color:rgb(231 229 228/var(--tw-bg-opacity));border-radius:.25rem;padding:.125rem .375rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875rem;line-height:1.25rem}.markdown{flex-shrink:1;min-width:0;max-width:40ch}.markdown>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}@media (min-width:640px){.markdown{max-width:640px}}@media (min-width:768px){.markdown{max-width:768px}}@media (min-width:1024px){.markdown{max-width:75ch}}.markdown h1{--tw-border-opacity:1;border-bottom-width:1px;border-color:rgb(214 211 209/var(--tw-border-opacity));padding-bottom:.25rem;font-size:1.25rem;line-height:1.75rem}@media (min-width:768px){.markdown h1{font-size:1.5rem;line-height:2rem}}@media (min-width:1024px){.markdown h1{font-size:1.875rem;line-height:2.25rem}}.markdown h2{--tw-border-opacity:1;border-bottom-width:1px;border-color:rgb(214 211 209/var(--tw-border-opacity));padding-bottom:.25rem;font-size:1.125rem;line-height:1.75rem}@media (min-width:768px){.markdown h2{font-size:1.25rem;line-height:1.75rem}}@media (min-width:1024px){.markdown h2{font-size:1.5rem;line-height:2rem}}.markdown h3{font-weight:700}@media (min-width:768px){.markdown h3{font-size:1.125rem;font-weight:400;line-height:1.75rem}}@media (min-width:1024px){.markdown h3{font-size:1.25rem;font-weight:400;line-height:1.75rem}}.markdown h4{font-weight:600}@media (min-width:768px){.markdown h4{font-weight:700}}@media (min-width:1024px){.markdown h4{font-size:1.125rem;font-weight:400;line-height:1.75rem}}.markdown h5{font-style:italic}@media (min-width:768px){.markdown h5{font-weight:600}}@media (min-width:1024px){.markdown h5{font-weight:700}}@media (min-width:768px){.markdown h6{font-style:italic}}@media (min-width:1024px){.markdown h6{font-weight:600}}.markdown hr{--tw-border-opacity:1;border-color:rgb(120 113 108/var(--tw-border-opacity));margin:.5rem}.markdown ol,.markdown ul{margin-left:1rem;list-style-position:outside}.markdown ol{list-style-type:decimal}.markdown ul{list-style-type:disc}.markdown :not(pre)>code{--tw-bg-opacity:1;background-color:rgb(231 229 228/var(--tw-bg-opacity));border-radius:.375rem;padding:.125rem .375rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875rem;line-height:1.25rem}:is(.markdown h1,.markdown h2,.markdown h3,.markdown h4,.markdown h5,.markdown h6)>code{font-size:inherit!important}.markdown pre{--tw-border-opacity:1;border-top-width:1.5px;border-bottom-width:1.5px;border-color:rgb(203 213 225/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity));--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity));border-radius:0;margin-left:-1rem;margin-right:-1rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.875rem;line-height:1.25rem}@media (min-width:768px){.markdown pre{border-width:1.5px;border-radius:.375rem;margin-left:0;margin-right:0}}.markdown pre>code:first-child{padding:1rem 1.5rem;display:block;overflow-x:auto}.markdown p{margin:.25rem 0}.markdown table{table-layout:auto;width:max-content;max-width:100%;display:block;overflow:auto}.markdown td{padding:.5rem}.markdown th{text-align:center;padding-top:.375rem;padding-bottom:.375rem;font-weight:700}.markdown th,.markdown td{--tw-border-opacity:1;border-width:1.5px;border-color:rgb(203 213 225/var(--tw-border-opacity))}.markdown tr:nth-child(2n){--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.markdown img{display:inline-block}.markdown .alert>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.markdown .alert{border-width:2px;border-radius:.5rem;padding:1rem 1.5rem}.markdown .alert div:first-child{align-items:center;gap:.375rem;font-weight:500;display:flex}.markdown .alert div:first-child svg{width:1.25rem;height:1.25rem}.markdown .alert-note{--tw-border-opacity:1;border-color:rgb(37 99 235/var(--tw-border-opacity));background-color:#2563eb0d}.markdown .alert-note div:first-child{stroke:#2563eb;--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity))}.markdown .alert-tip{--tw-border-opacity:1;border-color:rgb(22 163 74/var(--tw-border-opacity));background-color:#16a34a0d}.markdown .alert-tip div:first-child{stroke:#16a34a;--tw-text-opacity:1;color:rgb(22 163 74/var(--tw-text-opacity))}.markdown .alert-important{--tw-border-opacity:1;border-color:rgb(147 51 234/var(--tw-border-opacity));background-color:#9333ea0d}.markdown .alert-important div:first-child{stroke:#9333ea;--tw-text-opacity:1;color:rgb(147 51 234/var(--tw-text-opacity))}.markdown .alert-warning{--tw-border-opacity:1;border-color:rgb(202 138 4/var(--tw-border-opacity));background-color:#ca8a040d}.markdown .alert-warning div:first-child{stroke:#ca8a04;--tw-text-opacity:1;color:rgb(202 138 4/var(--tw-text-opacity))}.markdown .alert-caution{--tw-border-opacity:1;border-color:rgb(220 38 38/var(--tw-border-opacity));background-color:#dc26260d}.markdown .alert-caution div:first-child{stroke:#dc2626;--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity))}.markdown .highlight{position:relative}.markdown .highlight .lineNumbers{--tw-border-opacity:1;border-right-width:2px;border-color:rgb(214 211 209/var(--tw-border-opacity));text-align:right;flex:none;padding-right:.25rem}.markdown .highlight .context_button{opacity:.6;position:absolute;top:.75rem;right:1rem}.markdown .highlight .context_button:hover{opacity:1}.markdown .highlight .context_button svg.check{display:none}.markdown .highlight .context_button.copied svg.copy{display:none}.markdown .highlight .context_button.copied svg.check{display:block} \ No newline at end of file diff --git a/docs/fuse.js b/docs/fuse.js new file mode 100644 index 0000000..a7eea4e --- /dev/null +++ b/docs/fuse.js @@ -0,0 +1,11 @@ +// deno-fmt-ignore-file +// deno-lint-ignore-file +/** + * Fuse.js v7.0.0 - Lightweight fuzzy-search (http://fusejs.io) + * + * Copyright (c) 2023 Kiro Risk (http://kiro.me) + * All Rights Reserved. Apache Software License 2.0 + * + * http://www.apache.org/licenses/LICENSE-2.0 + */ +var e,t;e=this,t=function(){"use strict";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:{},n=t.getFn,i=void 0===n?$.getFn:n,o=t.fieldNormWeight,c=void 0===o?$.fieldNormWeight:o;r(this,e),this.norm=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,n=new Map,r=Math.pow(10,t);return{get:function(t){var i=t.match(F).length;if(n.has(i))return n.get(i);var o=1/Math.pow(i,.5*e),c=parseFloat(Math.round(o*r)/r);return n.set(i,c),c},clear:function(){n.clear()}}}(c,3),this.getFn=i,this.isCreated=!1,this.setIndexRecords()}return o(e,[{key:"setSources",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.docs=e}},{key:"setIndexRecords",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.records=e}},{key:"setKeys",value:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.keys=t,this._keysMap={},t.forEach((function(t,n){e._keysMap[t.id]=n}))}},{key:"create",value:function(){var e=this;!this.isCreated&&this.docs.length&&(this.isCreated=!0,m(this.docs[0])?this.docs.forEach((function(t,n){e._addString(t,n)})):this.docs.forEach((function(t,n){e._addObject(t,n)})),this.norm.clear())}},{key:"add",value:function(e){var t=this.size();m(e)?this._addString(e,t):this._addObject(e,t)}},{key:"removeAt",value:function(e){this.records.splice(e,1);for(var t=e,n=this.size();t2&&void 0!==arguments[2]?arguments[2]:{},r=n.getFn,i=void 0===r?$.getFn:r,o=n.fieldNormWeight,c=void 0===o?$.fieldNormWeight:o,a=new R({getFn:i,fieldNormWeight:c});return a.setKeys(e.map(A)),a.setSources(t),a.create(),a}function N(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.errors,r=void 0===n?0:n,i=t.currentLocation,o=void 0===i?0:i,c=t.expectedLocation,a=void 0===c?0:c,s=t.distance,u=void 0===s?$.distance:s,h=t.ignoreLocation,l=void 0===h?$.ignoreLocation:h,f=r/e.length;if(l)return f;var d=Math.abs(a-o);return u?f+d/u:d?1:f}var W=32;function T(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=r.location,o=void 0===i?$.location:i,c=r.distance,a=void 0===c?$.distance:c,s=r.threshold,u=void 0===s?$.threshold:s,h=r.findAllMatches,l=void 0===h?$.findAllMatches:h,f=r.minMatchCharLength,d=void 0===f?$.minMatchCharLength:f,v=r.includeMatches,g=void 0===v?$.includeMatches:v,y=r.ignoreLocation,p=void 0===y?$.ignoreLocation:y;if(t.length>W)throw new Error("Pattern length exceeds max of ".concat(W,"."));for(var m,k=t.length,M=e.length,b=Math.max(0,Math.min(o,M)),x=u,w=b,S=d>1||g,L=S?Array(M):[];(m=e.indexOf(t,w))>-1;){var _=N(t,{currentLocation:m,expectedLocation:b,distance:a,ignoreLocation:p});if(x=Math.min(_,x),w=m+k,S)for(var O=0;O=P;D-=1){var K=D-1,q=n[e.charAt(K)];if(S&&(L[K]=+!!q),z[D]=(z[D+1]<<1|1)&q,E&&(z[D]|=(j[D+1]|j[D])<<1|1|j[D+1]),z[D]&C&&(A=N(t,{errors:E,currentLocation:K,expectedLocation:b,distance:a,ignoreLocation:p}))<=x){if(x=A,(w=K)<=b)break;P=Math.max(1,2*b-w)}}if(N(t,{errors:E+1,currentLocation:b,expectedLocation:b,distance:a,ignoreLocation:p})>x)break;j=z}var B={isMatch:w>=0,score:Math.max(.001,A)};if(S){var J=function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:$.minMatchCharLength,n=[],r=-1,i=-1,o=0,c=e.length;o=t&&n.push([r,i]),r=-1)}return e[o-1]&&o-r>=t&&n.push([r,o-1]),n}(L,d);J.length?g&&(B.indices=J):B.isMatch=!1}return B}function z(e){for(var t={},n=0,r=e.length;n1&&void 0!==arguments[1]?arguments[1]:{},o=i.location,c=void 0===o?$.location:o,a=i.threshold,s=void 0===a?$.threshold:a,u=i.distance,h=void 0===u?$.distance:u,l=i.includeMatches,f=void 0===l?$.includeMatches:l,d=i.findAllMatches,v=void 0===d?$.findAllMatches:d,g=i.minMatchCharLength,y=void 0===g?$.minMatchCharLength:g,p=i.isCaseSensitive,m=void 0===p?$.isCaseSensitive:p,k=i.ignoreLocation,M=void 0===k?$.ignoreLocation:k;if(r(this,e),this.options={location:c,threshold:s,distance:h,includeMatches:f,findAllMatches:v,minMatchCharLength:y,isCaseSensitive:m,ignoreLocation:M},this.pattern=m?t:t.toLowerCase(),this.chunks=[],this.pattern.length){var b=function(e,t){n.chunks.push({pattern:e,alphabet:z(e),startIndex:t})},x=this.pattern.length;if(x>W){for(var w=0,S=x%W,L=x-S;w1&&void 0!==arguments[1]?arguments[1]:{},c=o.location,a=void 0===c?$.location:c,s=o.threshold,u=void 0===s?$.threshold:s,h=o.distance,l=void 0===h?$.distance:h,f=o.includeMatches,d=void 0===f?$.includeMatches:f,v=o.findAllMatches,g=void 0===v?$.findAllMatches:v,y=o.minMatchCharLength,p=void 0===y?$.minMatchCharLength:y,m=o.isCaseSensitive,k=void 0===m?$.isCaseSensitive:m,M=o.ignoreLocation,b=void 0===M?$.ignoreLocation:M;return r(this,n),(i=t.call(this,e))._bitapSearch=new D(e,{location:a,threshold:u,distance:l,includeMatches:d,findAllMatches:g,minMatchCharLength:p,isCaseSensitive:k,ignoreLocation:b}),i}return o(n,[{key:"search",value:function(e){return this._bitapSearch.searchIn(e)}}],[{key:"type",get:function(){return"fuzzy"}},{key:"multiRegex",get:function(){return/^"(.*)"$/}},{key:"singleRegex",get:function(){return/^(.*)$/}}]),n}(K),X=function(e){a(n,e);var t=l(n);function n(e){return r(this,n),t.call(this,e)}return o(n,[{key:"search",value:function(e){for(var t,n=0,r=[],i=this.pattern.length;(t=e.indexOf(this.pattern,n))>-1;)n=t+i,r.push([t,n-1]);var o=!!r.length;return{isMatch:o,score:o?0:1,indices:r}}}],[{key:"type",get:function(){return"include"}},{key:"multiRegex",get:function(){return/^'"(.*)"$/}},{key:"singleRegex",get:function(){return/^'(.*)$/}}]),n}(K),Y=[B,X,U,V,H,G,J,Q],Z=Y.length,ee=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,te=new Set([Q.type,X.type]),ne=function(){function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=n.isCaseSensitive,o=void 0===i?$.isCaseSensitive:i,c=n.includeMatches,a=void 0===c?$.includeMatches:c,s=n.minMatchCharLength,u=void 0===s?$.minMatchCharLength:s,h=n.ignoreLocation,l=void 0===h?$.ignoreLocation:h,f=n.findAllMatches,d=void 0===f?$.findAllMatches:f,v=n.location,g=void 0===v?$.location:v,y=n.threshold,p=void 0===y?$.threshold:y,m=n.distance,k=void 0===m?$.distance:m;r(this,e),this.query=null,this.options={isCaseSensitive:o,includeMatches:a,minMatchCharLength:u,findAllMatches:d,ignoreLocation:l,location:g,threshold:p,distance:k},this.pattern=o?t:t.toLowerCase(),this.query=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.split("|").map((function(e){for(var n=e.trim().split(ee).filter((function(e){return e&&!!e.trim()})),r=[],i=0,o=n.length;i2&&void 0!==arguments[2]?arguments[2]:{}).auto,r=void 0===n||n;return ue(e)||(e=he(e)),function e(n){var i=Object.keys(n),o=function(e){return!!e[ae]}(n);if(!o&&i.length>1&&!ue(n))return e(he(n));if(function(e){return!g(e)&&b(e)&&!ue(e)}(n)){var c=o?n[ae]:i[0],a=o?n[se]:n[c];if(!m(a))throw new Error(function(e){return"Invalid value for key ".concat(e)}(c));var s={keyId:C(c),pattern:a};return r&&(s.searcher=ie(a,t)),s}var u={children:[],operator:i[0]};return i.forEach((function(t){var r=n[t];g(r)&&r.forEach((function(t){u.children.push(e(t))}))})),u}(e)}function fe(e,t){var n=e.matches;t.matches=[],x(n)&&n.forEach((function(e){if(x(e.indices)&&e.indices.length){var n={indices:e.indices,value:e.value};e.key&&(n.key=e.key.src),e.idx>-1&&(n.refIndex=e.idx),t.matches.push(n)}}))}function de(e,t){t.score=e.score}var ve=function(){function e(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2?arguments[2]:void 0;r(this,e),this.options=t(t({},$),i),this.options.useExtendedSearch,this._keyStore=new j(this.options.keys),this.setCollection(n,o)}return o(e,[{key:"setCollection",value:function(e,t){if(this._docs=e,t&&!(t instanceof R))throw new Error("Incorrect 'index' type");this._myIndex=t||P(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}},{key:"add",value:function(e){x(e)&&(this._docs.push(e),this._myIndex.add(e))}},{key:"remove",value:function(){for(var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!1},t=[],n=0,r=this._docs.length;n1&&void 0!==arguments[1]?arguments[1]:{}).limit,n=void 0===t?-1:t,r=this.options,i=r.includeMatches,o=r.includeScore,c=r.shouldSort,a=r.sortFn,s=r.ignoreFieldNorm,u=m(e)?m(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e);return function(e,t){var n=t.ignoreFieldNorm,r=void 0===n?$.ignoreFieldNorm:n;e.forEach((function(e){var t=1;e.matches.forEach((function(e){var n=e.key,i=e.norm,o=e.score,c=n?n.weight:null;t*=Math.pow(0===o&&c?Number.EPSILON:o,(c||1)*(r?1:i))})),e.score=t}))}(u,{ignoreFieldNorm:s}),c&&u.sort(a),k(n)&&n>-1&&(u=u.slice(0,n)),function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.includeMatches,i=void 0===r?$.includeMatches:r,o=n.includeScore,c=void 0===o?$.includeScore:o,a=[];return i&&a.push(fe),c&&a.push(de),e.map((function(e){var n=e.idx,r={item:t[n],refIndex:n};return a.length&&a.forEach((function(t){t(e,r)})),r}))}(u,this._docs,{includeMatches:i,includeScore:o})}},{key:"_searchStringList",value:function(e){var t=ie(e,this.options),n=this._myIndex.records,r=[];return n.forEach((function(e){var n=e.v,i=e.i,o=e.n;if(x(n)){var c=t.searchIn(n),a=c.isMatch,s=c.score,u=c.indices;a&&r.push({item:n,idx:i,matches:[{score:s,value:n,norm:o,indices:u}]})}})),r}},{key:"_searchLogical",value:function(e){var t=this,n=le(e,this.options),r=function e(n,r,i){if(!n.children){var o=n.keyId,c=n.searcher,a=t._findMatches({key:t._keyStore.get(o),value:t._myIndex.getValueForItemAtKeyId(r,o),searcher:c});return a&&a.length?[{idx:i,item:r,matches:a}]:[]}for(var s=[],u=0,h=n.children.length;u1&&void 0!==arguments[1]?arguments[1]:{},n=t.getFn,r=void 0===n?$.getFn:n,i=t.fieldNormWeight,o=void 0===i?$.fieldNormWeight:i,c=e.keys,a=e.records,s=new R({getFn:r,fieldNormWeight:o});return s.setKeys(c),s.setIndexRecords(a),s},ve.config=$,function(){re.push.apply(re,arguments)}(ne),ve},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Fuse=t(); \ No newline at end of file diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..21a26db --- /dev/null +++ b/docs/index.html @@ -0,0 +1,52 @@ + + + + documentation + + + + + + + + + + +
+ +
+
+
+
+
+
+
+
+
+ + diff --git a/docs/page.css b/docs/page.css new file mode 100644 index 0000000..f5dece8 --- /dev/null +++ b/docs/page.css @@ -0,0 +1 @@ +.sticky{position:sticky}.top-0{top:0}.z-50{z-index:50}.block{display:block}.flex{display:flex}.h-14{height:3.5rem}.h-full{height:100%}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-4{gap:1rem}.rounded{border-radius:.25rem}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.bg-transparent{background-color:#0000}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.leading-none{line-height:1}.blur{--tw-blur:blur(8px);filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.ddoc{align-items:flex-start;gap:1.5rem;min-height:fit-content;padding:1rem;display:flex}@media (min-width:1024px){.ddoc:has(#categoryPanel){padding:.5rem}}@media (min-width:1024px){.ddoc:has(#categoryPanel)>div:not(#categoryPanel){padding-top:1rem}.ddoc:has(#categoryPanel) #topnav{margin-left:-1.5rem!important;padding-left:1.5rem!important}}.ddoc:not(:has(#categoryPanel)),.ddoc:has(#categoryPanel)>div:not(#categoryPanel){padding-top:.25rem;padding-left:1.5rem;padding-right:1.5rem}.ddoc>div:not(#categoryPanel){flex-direction:column;flex-grow:1;display:flex}#categoryPanel{box-sizing:border-box;flex-shrink:0;width:250px;height:100vh;margin-top:0;padding-top:0;position:sticky;top:0}@media not all and (min-width:1024px){#categoryPanel{display:none}}#categoryPanel>ul{max-height:100%;overflow-y:auto}#content{margin-top:1rem}#content>main{flex-direction:column;flex-grow:1;grid-column:1/-1;gap:.75rem;min-width:0;padding-bottom:0;display:flex}@media (min-width:768px){#content>main{padding-bottom:2rem}}@media (min-width:1024px){#content>main{padding-bottom:3rem}#content:has(.toc)>main{grid-column:span 3/span 3;grid-row-start:1}}#topnav{margin-left:-1rem;padding-left:1rem}#content,#topnav>div{flex-direction:row;justify-content:space-between;gap:2rem;display:flex}@media (min-width:1024px){#content,#topnav>div{gap:3rem}}.toc,#searchbar{flex-shrink:0;min-width:250px;max-width:300px}.toc{box-sizing:border-box;row-gap:1rem;height:fit-content;max-height:100vh;margin-top:-3.5rem;padding-top:3.5rem;position:sticky;top:0}@media not all and (min-width:1024px){.toc{grid-row-start:1}}@media not all and (min-width:640px){.toc{display:none}}@media (min-width:640px){.toc{flex-direction:column;display:flex}}@media (min-width:1024px){.toc{grid-column:span 1/-1}}.toc>div{max-height:100%}@media (min-width:1024px){.toc>div{overflow-y:auto}}.toc>div>:last-child{padding-bottom:1rem}.hover\:bg-stone-100:hover{--tw-bg-opacity:1;background-color:rgb(245 245 244/var(--tw-bg-opacity))} \ No newline at end of file diff --git a/docs/prism.css b/docs/prism.css new file mode 100644 index 0000000..afc2ef6 --- /dev/null +++ b/docs/prism.css @@ -0,0 +1,3 @@ +/* PrismJS 1.29.0 +https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+bash+json+markdown+regex+rust+typescript */ +code[class*=language-],pre[class*=language-]{color:#000;background:0 0;text-shadow:0 1px #fff;font-family:Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}code[class*=language-] ::-moz-selection,code[class*=language-]::-moz-selection,pre[class*=language-] ::-moz-selection,pre[class*=language-]::-moz-selection{text-shadow:none;background:#b3d4fc}code[class*=language-] ::selection,code[class*=language-]::selection,pre[class*=language-] ::selection,pre[class*=language-]::selection{text-shadow:none;background:#b3d4fc}@media print{code[class*=language-],pre[class*=language-]{text-shadow:none}}pre[class*=language-]{overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#f5f2f0}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.cdata,.token.comment,.token.doctype,.token.prolog{color:#708090}.token.punctuation{color:#999}.token.namespace{opacity:.7}.token.boolean,.token.constant,.token.deleted,.token.number,.token.property,.token.symbol,.token.tag{color:#905}.token.attr-name,.token.builtin,.token.char,.token.inserted,.token.selector,.token.string{color:#690}.language-css .token.string,.style .token.string,.token.entity,.token.operator,.token.url{color:#9a6e3a;background:hsla(0,0%,100%,.5)}.token.atrule,.token.attr-value,.token.keyword{color:#07a}.token.class-name,.token.function{color:#dd4a68}.token.important,.token.regex,.token.variable{color:#e90}.token.bold,.token.important{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help} diff --git a/docs/prism.js b/docs/prism.js new file mode 100644 index 0000000..23bf919 --- /dev/null +++ b/docs/prism.js @@ -0,0 +1,15 @@ +// MIT LICENSE +// Copyright (c) 2012 Lea Verou +/* PrismJS 1.29.0 +https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+bash+json+markdown+regex+rust+typescript */ +var _self="undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(e){var n=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,r={},a={manual:e.Prism&&e.Prism.manual,disableWorkerMessageHandler:e.Prism&&e.Prism.disableWorkerMessageHandler,util:{encode:function e(n){return n instanceof i?new i(n.type,e(n.content),n.alias):Array.isArray(n)?n.map(e):n.replace(/&/g,"&").replace(/=g.reach);A+=w.value.length,w=w.next){var E=w.value;if(n.length>e.length)return;if(!(E instanceof i)){var P,L=1;if(y){if(!(P=l(b,A,e,m))||P.index>=e.length)break;var S=P.index,O=P.index+P[0].length,j=A;for(j+=w.value.length;S>=j;)j+=(w=w.next).value.length;if(A=j-=w.value.length,w.value instanceof i)continue;for(var C=w;C!==n.tail&&(jg.reach&&(g.reach=W);var z=w.prev;if(_&&(z=u(n,z,_),A+=_.length),c(n,z,L),w=u(n,z,new i(f,p?a.tokenize(N,p):N,k,N)),M&&u(n,w,M),L>1){var I={cause:f+","+d,reach:W};o(e,n,t,w.prev,A,I),g&&I.reach>g.reach&&(g.reach=I.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},n={value:null,prev:e,next:null};e.next=n,this.head=e,this.tail=n,this.length=0}function u(e,n,t){var r=n.next,a={value:t,prev:n,next:r};return n.next=a,r.prev=a,e.length++,a}function c(e,n,t){for(var r=n.next,a=0;a"+i.content+""},!e.document)return e.addEventListener?(a.disableWorkerMessageHandler||e.addEventListener("message",(function(n){var t=JSON.parse(n.data),r=t.language,i=t.code,l=t.immediateClose;e.postMessage(a.highlight(i,a.languages[r],r)),l&&e.close()}),!1),a):a;var g=a.util.currentScript();function f(){a.manual||a.highlightAll()}if(g&&(a.filename=g.src,g.hasAttribute("data-manual")&&(a.manual=!0)),!a.manual){var h=document.readyState;"loading"===h||"interactive"===h&&g&&g.defer?document.addEventListener("DOMContentLoaded",f):window.requestAnimationFrame?window.requestAnimationFrame(f):window.setTimeout(f,16)}return a}(_self);"undefined"!=typeof module&&module.exports&&(module.exports=Prism),"undefined"!=typeof global&&(global.Prism=Prism); +Prism.languages.markup={comment:{pattern://,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern://i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.languages.markup.doctype.inside["internal-subset"].inside=Prism.languages.markup,Prism.hooks.add("wrap",(function(a){"entity"===a.type&&(a.attributes.title=a.content.replace(/&/,"&"))})),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(a,e){var s={};s["language-"+e]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[e]},s.cdata=/^$/i;var t={"included-cdata":{pattern://i,inside:s}};t["language-"+e]={pattern:/[\s\S]+/,inside:Prism.languages[e]};var n={};n[a]={pattern:RegExp("(<__[^>]*>)(?:))*\\]\\]>|(?!)".replace(/__/g,(function(){return a})),"i"),lookbehind:!0,greedy:!0,inside:t},Prism.languages.insertBefore("markup","cdata",n)}}),Object.defineProperty(Prism.languages.markup.tag,"addAttribute",{value:function(a,e){Prism.languages.markup.tag.inside["special-attr"].push({pattern:RegExp("(^|[\"'\\s])(?:"+a+")\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s'\">=]+(?=[\\s>]))","i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[e,"language-"+e],inside:Prism.languages[e]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup,Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.ssml=Prism.languages.xml,Prism.languages.atom=Prism.languages.xml,Prism.languages.rss=Prism.languages.xml; +!function(s){var e=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;s.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:[^;{\\s\"']|\\s+(?!\\s)|"+e.source+")*?(?:;|(?=\\s*\\{))"),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+e.source+"|(?:[^\\\\\r\n()\"']|\\\\[^])*)\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+e.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+e.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:e,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},s.languages.css.atrule.inside.rest=s.languages.css;var t=s.languages.markup;t&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(Prism); +Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}; +Prism.languages.javascript=Prism.languages.extend("clike",{"class-name":[Prism.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp("(^|[^\\w$])(?:NaN|Infinity|0[bB][01]+(?:_[01]+)*n?|0[oO][0-7]+(?:_[0-7]+)*n?|0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?|\\d+(?:_\\d+)*n|(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?)(?![\\w$])"),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),Prism.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,Prism.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp("((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s]|\\b(?:return|yield))\\s*)/(?:(?:\\[(?:[^\\]\\\\\r\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\r\n])+/[dgimyus]{0,7}|(?:\\[(?:[^[\\]\\\\\r\n]|\\\\.|\\[(?:[^[\\]\\\\\r\n]|\\\\.|\\[(?:[^[\\]\\\\\r\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\r\n])+/[dgimyus]{0,7}v[dgimyus]{0,7})(?=(?:\\s|/\\*(?:[^*]|\\*(?!/))*\\*/)*(?:$|[\r\n,.;:})\\]]|//))"),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:Prism.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:Prism.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:Prism.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),Prism.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:Prism.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),Prism.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),Prism.languages.markup&&(Prism.languages.markup.tag.addInlined("script","javascript"),Prism.languages.markup.tag.addAttribute("on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)","javascript")),Prism.languages.js=Prism.languages.javascript; +!function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",a={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},n={bash:a,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:n},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:a}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:n},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:n.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:n.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},a.inside=e.languages.bash;for(var s=["comment","function-name","for-or-select","assign-left","parameter","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=n.variable[1].inside,i=0;i/g,(function(){return"(?:\\\\.|[^\\\\\n\r]|(?:\n|\r\n?)(?![\r\n]))"})),RegExp("((?:^|[^\\\\])(?:\\\\{2})*)(?:"+n+")")}var t="(?:\\\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\\\|\r\n`])+",a="\\|?__(?:\\|__)+\\|?(?:(?:\n|\r\n?)|(?![^]))".replace(/__/g,(function(){return t})),i="\\|?[ \t]*:?-{3,}:?[ \t]*(?:\\|[ \t]*:?-{3,}:?[ \t]*)+\\|?(?:\n|\r\n?)";n.languages.markdown=n.languages.extend("markup",{}),n.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:n.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+i+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+i+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(t),inside:n.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+i+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(t),alias:"important",inside:n.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:e("\\b__(?:(?!_)|_(?:(?!_))+_)+__\\b|\\*\\*(?:(?!\\*)|\\*(?:(?!\\*))+\\*)+\\*\\*"),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:e("\\b_(?:(?!_)|__(?:(?!_))+__)+_\\b|\\*(?:(?!\\*)|\\*\\*(?:(?!\\*))+\\*\\*)+\\*"),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:e("(~~?)(?:(?!~))+\\2"),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:e('!?\\[(?:(?!\\]))+\\](?:\\([^\\s)]+(?:[\t ]+"(?:\\\\.|[^"\\\\])*")?\\)|[ \t]?\\[(?:(?!\\]))+\\])'),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(e){["url","bold","italic","strike","code-snippet"].forEach((function(t){e!==t&&(n.languages.markdown[e].inside.content.inside[t]=n.languages.markdown[t])}))})),n.hooks.add("after-tokenize",(function(n){"markdown"!==n.language&&"md"!==n.language||function n(e){if(e&&"string"!=typeof e)for(var t=0,a=e.length;t",quot:'"'},l=String.fromCodePoint||String.fromCharCode;n.languages.md=n.languages.markdown}(Prism); +!function(a){var e={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},n=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/,t="(?:[^\\\\-]|"+n.source+")",s=RegExp(t+"-"+t),i={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"};a.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:s,inside:{escape:n,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":e,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:n}},"special-escape":e,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":i}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:n,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|)*\\*/",t=0;t<2;t++)a=a.replace(//g,(function(){return a}));a=a.replace(//g,(function(){return"[^\\s\\S]"})),e.languages.rust={comment:[{pattern:RegExp("(^|[^\\\\])"+a),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(Prism); +!function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var s=e.languages.extend("typescript",{});delete s["class-name"],e.languages.typescript["class-name"].inside=s,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:s}}}}),e.languages.ts=e.languages.typescript}(Prism); diff --git a/docs/reset.css b/docs/reset.css new file mode 100644 index 0000000..fae464a --- /dev/null +++ b/docs/reset.css @@ -0,0 +1 @@ +*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{color:inherit;border-top-width:1px;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: } \ No newline at end of file diff --git a/docs/script.js b/docs/script.js new file mode 100644 index 0000000..16570fb --- /dev/null +++ b/docs/script.js @@ -0,0 +1,35 @@ +function findParent(el, find) { + do { + if (find(el)) { + return el; + } + } while (el = el.parentElement); +} + +document.addEventListener("click", (e) => { + const target = findParent( + e.target, + (el) => el instanceof HTMLButtonElement && el.dataset["copy"], + ); + if (target) { + navigator?.clipboard?.writeText(target.dataset["copy"]); + target.classList.add("copied"); + setTimeout(() => target.classList.remove("copied"), 1000); + } +}); + +window.addEventListener("load", () => { + const usageSelector = document.getElementById("usageSelector"); + + document.addEventListener("mouseup", (e) => { + if ( + findParent( + e.target, + (el) => + el.parentElement === usageSelector && el instanceof HTMLDivElement, + ) + ) { + usageSelector.open = false; + } + }); +}); diff --git a/docs/search.js b/docs/search.js new file mode 100644 index 0000000..062b618 --- /dev/null +++ b/docs/search.js @@ -0,0 +1,141 @@ +const Fuse = window.Fuse; + +const searchInput = document.querySelector("#searchbar"); +const contentDiv = document.querySelector("#content"); +const searchResultsDiv = document.querySelector("#searchResults"); +const currentFile = + document.querySelector("meta[name='doc-current-file']").attributes + .getNamedItem("content").value; +const pathToRoot = "../".repeat( + currentFile ? (currentFile.split("/").length + 1) : 0, +); +searchInput.removeAttribute("style"); + +const SEARCH_INDEX = window.DENO_DOC_SEARCH_INDEX; + +const fuse = new Fuse(SEARCH_INDEX.nodes, { + keys: [{ + name: "name", + weight: 2, + }], + isCaseSensitive: false, + minMatchCharLength: 2, + threshold: 0.4, +}); + +const loadedUrl = new URL(window.location.href); +const val = loadedUrl.searchParams.get("q"); +if (val) { + searchInput.value = val; + doSearch(val); +} + +window.addEventListener("load", function () { + document.addEventListener("keydown", function (event) { + if (event.key.toLowerCase() === "s") { + if (event.target !== searchInput) { + searchInput.focus(); + event.preventDefault(); + } + } + }); + + const emptyPlaceholder = "Click or press 'S' to search..."; + searchInput.placeholder = emptyPlaceholder; + + searchInput.addEventListener("focus", function () { + searchInput.placeholder = "Type your query here..."; + }); + + searchInput.addEventListener("blur", function () { + searchInput.placeholder = emptyPlaceholder; + }); +}); + +function debounce(func, delay) { + let timerId; + + return function () { + const context = this; + const args = arguments; + + clearTimeout(timerId); + + timerId = setTimeout(function () { + func.apply(context, args); + }, delay); + }; +} + +const debouncedSearch = debounce(doSearch, 250); + +searchInput.addEventListener("input", (e) => { + const val = e.target.value; + debouncedSearch(val); +}); + +function doSearch(val) { + if (!val) { + updateCurrentLocation(val); + showPage(); + } else { + const results = searchInIndex(val); + // console.log("results", results); + updateCurrentLocation(val); + renderResults(results); + showSearchResults(); + } +} + +function updateCurrentLocation(val) { + const url = new URL(window.location.href); + if (val) { + url.searchParams.set("q", val); + } else { + url.searchParams.delete("q"); + } + window.history.replaceState({}, "", url.href); +} + +function showPage() { + contentDiv.style.display = "flex"; + searchResultsDiv.style.display = "none"; +} + +function showSearchResults() { + contentDiv.style.display = "none"; + searchResultsDiv.style.display = "block"; +} + +function renderResults(results) { + if (results.length === 0) { + searchResultsDiv.innerHTML = `No result`; + return; + } + + let html = `
    `; + + for (const result of results) { + const kind = result.kind.map((kind) => { + return `
    ${kind.char}
    `; + }).join(""); + + html += `
  • + +
    +
    + ${kind} +
    + ${result.name} +
    +
    +
  • `; + } + + html += `
`; + searchResultsDiv.innerHTML = html; +} + +function searchInIndex(val) { + return fuse.search(val).map((result) => result.item); +} diff --git a/docs/search_index.js b/docs/search_index.js new file mode 100644 index 0000000..45da62e --- /dev/null +++ b/docs/search_index.js @@ -0,0 +1,3 @@ +(function () { + window.DENO_DOC_SEARCH_INDEX = {"nodes":[{"kind":[{"char":"T","kind":"TypeAlias","title":"Type Alias"},{"char":"v","kind":"Variable","title":"Variable"}],"name":"JsonHigh","file":".","doc":"This is the high-level interface over {@link JsonLow} optimized for convenience. It provides similar functionality and granularity to other streaming parsers, such as [Clarinet](https://github.com/dscape/clarinet) or [creationix/jsonparse](https://github.com/creationix/jsonparse).","url":"././~/JsonHigh.html","deprecated":false},{"kind":[{"char":"T","kind":"TypeAlias","title":"Type Alias"}],"name":"JsonHighEvents","file":".","doc":"### Basic events\n\nThe basic usage of `JsonHigh` involves 4 event handlers without arguments which indicate start and end of structures:\n* {@link JsonHighEvents.openArray}\n* {@link JsonHighEvents.closeArray}\n* {@link JsonHighEvents.openObject}\n* {@link JsonHighEvents.closeObject}\n\nAnd 2 event handlers with one argument which capture primitives:\n\n* {@link JsonHighEvents.key}\n* {@link JsonHighEvents.value}\n\nFinally, there is the argumentless {@link JsonHighEvents.end} event handler.\n\n### Extra events\n\nThese handlers take no arguments:\n\n* {@link JsonHighEvents.openKey}\n* {@link JsonHighEvents.openString}\n* {@link JsonHighEvents.openNumber}\n\n### Conditional events\n\nThese handlers take no arguments:\n\n* {@link JsonHighEvents.closeKey}\n* {@link JsonHighEvents.closeString}\n\nThese handlers receive the buffer that should be consumed:\n\n* {@link JsonHighEvents.bufferKey}\n* {@link JsonHighEvents.bufferString}\n* {@link JsonHighEvents.bufferNumber}","url":"././~/JsonHighEvents.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.openArray","file":".","doc":"An array started (`[`).","url":"././~/JsonHighEvents.openArray.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.closeArray","file":".","doc":"An array ended (`]`).","url":"././~/JsonHighEvents.closeArray.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.openObject","file":".","doc":"An object started (`{`).","url":"././~/JsonHighEvents.openObject.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.closeObject","file":".","doc":"An object ended (`}`).","url":"././~/JsonHighEvents.closeObject.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.key","file":".","doc":"An object's key ended. \n\nThe argument of the handler contains the key as a JavaScript string.\n\n`[conditional]` Called only in default (non-buffering) mode.\n\nThis event can be suppressed by setting {@link JsonHighOptions.maxStringBufferLength}.","url":"././~/JsonHighEvents.key.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.value","file":".","doc":"A primitive JSON value ended. \n\nThe argument of the event contains the corresponding JavaScript value: `true`, `false`, `null`, a number, or a string.\n\nThis event can be suppressed for strings if {@link JsonHighOptions.maxStringBufferLength} is set and for numbers if {@link JsonHighOptions.parseNumbers} is set to `false`.","url":"././~/JsonHighEvents.value.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.end","file":".","doc":"Called by the `end` method of the stream to confirm that the parsed JSON document is complete and valid.","url":"././~/JsonHighEvents.end.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.openKey","file":".","doc":"A key started (`\"`, in key position).","url":"././~/JsonHighEvents.openKey.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.openString","file":".","doc":"A string value started (`\"`).","url":"././~/JsonHighEvents.openString.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.openNumber","file":".","doc":"A number value started.","url":"././~/JsonHighEvents.openNumber.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.closeKey","file":".","doc":"A key ended (`\"`).\n\n`[conditional]` Called instead of the `key` event **when `maxStringBufferLength` is set**.","url":"././~/JsonHighEvents.closeKey.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.closeString","file":".","doc":"A string value ended (`\"`).\n\n`[conditional]` Called instead of the `value` event **when `maxStringBufferLength` is set**.\n","url":"././~/JsonHighEvents.closeString.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.bufferKey","file":".","doc":"Key buffer is ready for consumption.\n\n`[conditional]` Called instead of the `key` event **when `maxStringBufferLength` is set**.\n\nThe `buffer` then contains `maxStringBufferLength` code points or possibly less if we reached the end of a key.","url":"././~/JsonHighEvents.bufferKey.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.bufferString","file":".","doc":"String buffer is ready for consumption.\n\n`[conditional]` For string values, called instead of the `value` event **when `maxStringBufferLength` is set**.\n\nThe buffer then contains `maxStringBufferLength` code points or possibly less if we reached the end of a string value.","url":"././~/JsonHighEvents.bufferString.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.bufferNumber","file":".","doc":"Number buffer is ready for consumption.\n\n`[conditional]` For number values, called instead of the `value` event **when `parseNumbers` is set**.\n\nThe buffer then contains the unparsed number (represented as a string).","url":"././~/JsonHighEvents.bufferNumber.html","deprecated":false},{"kind":[{"char":"T","kind":"TypeAlias","title":"Type Alias"}],"name":"JsonHighHandler","file":".","doc":"TODO: doc","url":"././~/JsonHighHandler.html","deprecated":false},{"kind":[{"char":"T","kind":"TypeAlias","title":"Type Alias"}],"name":"JsonHighHandlers","file":".","doc":"TODO: this should be called something like JsonHighParameters or JsonHighArguments or sth.","url":"././~/JsonHighHandlers.html","deprecated":false},{"kind":[{"char":"T","kind":"TypeAlias","title":"Type Alias"}],"name":"JsonHighOptions","file":".","doc":"### Options","url":"././~/JsonHighOptions.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighOptions.maxStringBufferLength","file":".","doc":"See also: the similar {@link JsonHighOptions.bufferOnChunk} option. These options can be combined. Differences between them are marked with a strong font.\n\nThe maximum length of the key or string buffer, in code points.\n\nIf **set to a value in range `[1;Infinity)`**, the `key` event handler won't be called and, for strings, the `value` event handler won't be called. \n\nInstead, the `bufferKey` and `bufferString` handlers will be called **as soon as the given number of code points has been collected** or when the key/string is finished. \n\nIn the latter case **the number of code points may be smaller than `maxStringBufferLength`** and a `closeKey`/`closeString` handler will be called after the last `buffer*` event to signal the finish. \n\nThis is useful **when dealing with long strings** where it's desirable to stream them piece-by-piece, e.g. when working with LLMs (Large Language Models). \n\nSee [Add support for incomplete key and value strings #10](https://github.com/xtao-org/jsonhilo/issues/10) for more information.\n","url":"././~/JsonHighOptions.maxStringBufferLength.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighOptions.bufferOnChunk","file":".","doc":"See also: the similar {@link JsonHighOptions.maxStringBufferLength} option. These options can be combined. Differences between them are marked with a strong font.\n\nIf **set to `true`**, the `key` event handler won't be called and, for strings, the `value` event handler won't be called. \n\nInstead, the `bufferKey` and `bufferString` handlers will be called **as soon as the current chunk (passed in via the `.chunk()` method of the stream) has been processed** or when the key/string is finished. \n\nIn the latter case a `closeKey`/`closeString` handler will be called after the last `buffer*` event to signal the finish.\n\nThis is useful **when it's desirable to stream strings or keys piece-by-piece, in sync with the chunks being received, without needing to specify a fixed buffer length;** e.g. when working with LLMs (Large Language Models).\n\nSee [Add support for incomplete key and value strings #10](https://github.com/xtao-org/jsonhilo/issues/10) for more information.\n","url":"././~/JsonHighOptions.bufferOnChunk.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighOptions.maxNumberLength","file":".","doc":"Specifies the maximum length of a number value (in characters).\n","url":"././~/JsonHighOptions.maxNumberLength.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighOptions.parseNumbers","file":".","doc":"Controls whether numbers should be parsed (converted to JavaScript `number` type) which is the case by default. \n\nIf set to `false`, the `value` event handler won't be called for numbers. Instead, the `bufferNumber` handler will be called with the number as a string.\n\nThis is useful when dealing with big numbers which would lose precision when converted to the `number` type.\n","url":"././~/JsonHighOptions.parseNumbers.html","deprecated":false},{"kind":[{"char":"T","kind":"TypeAlias","title":"Type Alias"}],"name":"JsonHighStream","file":".","doc":"### Return value\n\n{@link JsonHigh} returns a stream object with the following methods:","url":"././~/JsonHighStream.html","deprecated":false},{"kind":[{"char":"m","kind":"Method","title":"Method"}],"name":"JsonHighStream.chunk","file":".","doc":"Accepts a JSON chunk to parse. \n\nReturns the stream object for chaining.","url":"././~/JsonHighStream.chunk.html","deprecated":false},{"kind":[{"char":"m","kind":"Method","title":"Method"}],"name":"JsonHighStream.end","file":".","doc":"Call it to signal to the stream that the current JSON document is finished.\n\nIf there is no error, it will then call the corresponding `end()` event handler, and return whatever that returned.","url":"././~/JsonHighStream.end.html","deprecated":false},{"kind":[{"char":"m","kind":"Method","title":"Method"}],"name":"JsonHighStream.depth","file":".","doc":"Reports current depth (level of nesting).\n\n**NOTE**: an `open*` or `close*` handler is always called *after* the depth is updated, meaning:\n\n* in `openObject`/`openArray` handlers the lowest depth reported will be 1 -- we entered a top-level object/array and are now at depth 1\n\n* in `closeObject`/`closeArray` handlers the lowest depth reported will be 0 -- we exited a top-level object/array and are now at depth 0 (top-level)","url":"././~/JsonHighStream.depth.html","deprecated":false}]}; +})() \ No newline at end of file diff --git a/docs/styles.css b/docs/styles.css new file mode 100644 index 0000000..1ce7019 --- /dev/null +++ b/docs/styles.css @@ -0,0 +1 @@ +.ddoc .container{width:100%}@media (min-width:640px){.ddoc .container{max-width:640px}}@media (min-width:768px){.ddoc .container{max-width:768px}}@media (min-width:1024px){.ddoc .container{max-width:1024px}}@media (min-width:1280px){.ddoc .container{max-width:1280px}}@media (min-width:1536px){.ddoc .container{max-width:1536px}}.ddoc .static{position:static}.ddoc .relative{position:relative}.ddoc .\!mb-0{margin-bottom:0!important}.ddoc .\!mt-2{margin-top:.5rem!important}.ddoc .mb-1{margin-bottom:.25rem}.ddoc .ml-4{margin-left:1rem}.ddoc .ml-indent{margin-left:2ch}.ddoc .mr-2{margin-right:.5rem}.ddoc .mt-3{margin-top:.75rem}.ddoc .inline{display:inline}.ddoc .\!flex{display:flex!important}.ddoc .flex{display:flex}.ddoc .inline-flex{display:inline-flex}.ddoc .table{display:table}.ddoc .contents{display:contents}.ddoc .hidden{display:none}.ddoc .h-4{height:1rem}.ddoc .h-5{height:1.25rem}.ddoc .min-w-0{min-width:0}.ddoc .max-w-\[75ch\]{max-width:75ch}.ddoc .flex-1{flex:1}.ddoc .flex-none{flex:none}.ddoc .rotate-90{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.ddoc .scroll-mt-16{scroll-margin-top:4rem}.ddoc .items-center{align-items:center}.ddoc .gap-0{gap:0}.ddoc .gap-0\.5{gap:.125rem}.ddoc .gap-1{gap:.25rem}.ddoc .space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*calc(1 - var(--tw-space-x-reverse)))}.ddoc .space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*calc(1 - var(--tw-space-x-reverse)))}.ddoc .space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.ddoc .space-y-7>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.75rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.75rem*var(--tw-space-y-reverse))}.ddoc .space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.ddoc .break-words{overflow-wrap:break-word}.ddoc .break-all{word-break:break-all}.ddoc .rounded{border-radius:.25rem}.ddoc .rounded-md{border-radius:.375rem}.ddoc .border{border-width:1px}.ddoc .border-b{border-bottom-width:1px}.ddoc .border-l-2{border-left-width:2px}.ddoc .border-Class\/50{border-color:#20b44b80}.ddoc .border-Enum\/50{border-color:#22abb080}.ddoc .border-Function\/50{border-color:#056cf080}.ddoc .border-Interface\/50{border-color:#d2a06480}.ddoc .border-Method\/50{border-color:#056cf080}.ddoc .border-Namespace\/50{border-color:#d2564680}.ddoc .border-Property\/50{border-color:#7e57c080}.ddoc .border-TypeAlias\/50{border-color:#a4478c80}.ddoc .border-Variable\/50{border-color:#7e57c080}.ddoc .border-abstract\/50{border-color:#0cafc680}.ddoc .border-deprecated\/50{border-color:#dc262680}.ddoc .border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.ddoc .border-new\/50{border-color:#7b61ff80}.ddoc .border-optional\/50{border-color:#0cafc680}.ddoc .border-other\/50{border-color:#57534e80}.ddoc .border-permissions\/50,.ddoc .border-private\/50{border-color:#0cafc680}.ddoc .border-protected\/50,.ddoc .border-readonly\/50{border-color:#7b61ff80}.ddoc .border-stone-300{--tw-border-opacity:1;border-color:rgb(214 211 209/var(--tw-border-opacity))}.ddoc .border-unstable\/50,.ddoc .border-writeonly\/50{border-color:#7b61ff80}.ddoc .bg-Class\/15{background-color:#20b44b26}.ddoc .bg-Class\/5{background-color:#20b44b0d}.ddoc .bg-Enum\/15{background-color:#22abb026}.ddoc .bg-Enum\/5{background-color:#22abb00d}.ddoc .bg-Function\/15{background-color:#056cf026}.ddoc .bg-Function\/5{background-color:#056cf00d}.ddoc .bg-Interface\/15{background-color:#d2a06426}.ddoc .bg-Interface\/5{background-color:#d2a0640d}.ddoc .bg-Method\/15{background-color:#056cf026}.ddoc .bg-Method\/5{background-color:#056cf00d}.ddoc .bg-Namespace\/15{background-color:#d2564626}.ddoc .bg-Namespace\/5{background-color:#d256460d}.ddoc .bg-Property\/15{background-color:#7e57c026}.ddoc .bg-Property\/5{background-color:#7e57c00d}.ddoc .bg-TypeAlias\/15{background-color:#a4478c26}.ddoc .bg-TypeAlias\/5{background-color:#a4478c0d}.ddoc .bg-Variable\/15{background-color:#7e57c026}.ddoc .bg-Variable\/5{background-color:#7e57c00d}.ddoc .bg-abstract\/15{background-color:#0cafc626}.ddoc .bg-abstract\/5{background-color:#0cafc60d}.ddoc .bg-deprecated\/15{background-color:#dc262626}.ddoc .bg-deprecated\/5{background-color:#dc26260d}.ddoc .bg-new\/15{background-color:#7b61ff26}.ddoc .bg-new\/5{background-color:#7b61ff0d}.ddoc .bg-optional\/15{background-color:#0cafc626}.ddoc .bg-optional\/5{background-color:#0cafc60d}.ddoc .bg-other\/15{background-color:#57534e26}.ddoc .bg-other\/5{background-color:#57534e0d}.ddoc .bg-permissions\/15{background-color:#0cafc626}.ddoc .bg-permissions\/5{background-color:#0cafc60d}.ddoc .bg-private\/15{background-color:#0cafc626}.ddoc .bg-private\/5{background-color:#0cafc60d}.ddoc .bg-protected\/15{background-color:#7b61ff26}.ddoc .bg-protected\/5{background-color:#7b61ff0d}.ddoc .bg-readonly\/15{background-color:#7b61ff26}.ddoc .bg-readonly\/5{background-color:#7b61ff0d}.ddoc .bg-stone-100{--tw-bg-opacity:1;background-color:rgb(245 245 244/var(--tw-bg-opacity))}.ddoc .bg-unstable\/15{background-color:#7b61ff26}.ddoc .bg-unstable\/5{background-color:#7b61ff0d}.ddoc .bg-writeonly\/15{background-color:#7b61ff26}.ddoc .bg-writeonly\/5{background-color:#7b61ff0d}.ddoc .px-2{padding-left:.5rem;padding-right:.5rem}.ddoc .px-3{padding-left:.75rem;padding-right:.75rem}.ddoc .px-4{padding-left:1rem;padding-right:1rem}.ddoc .py-1{padding-top:.25rem;padding-bottom:.25rem}.ddoc .py-2{padding-top:.5rem;padding-bottom:.5rem}.ddoc .pb-5{padding-bottom:1.25rem}.ddoc .pt-4{padding-top:1rem}.ddoc .text-2xl{font-size:1.5rem;line-height:2rem}.ddoc .text-base{font-size:1rem;line-height:1.5rem}.ddoc .text-sm{font-size:.875rem;line-height:1.25rem}.ddoc .font-bold{font-weight:700}.ddoc .font-medium{font-weight:500}.ddoc .font-normal{font-weight:400}.ddoc .italic{font-style:italic}.ddoc .leading-none{line-height:1}.ddoc .text-Class{--tw-text-opacity:1;color:rgb(32 180 75/var(--tw-text-opacity))}.ddoc .text-Enum{--tw-text-opacity:1;color:rgb(34 171 176/var(--tw-text-opacity))}.ddoc .text-Function{--tw-text-opacity:1;color:rgb(5 108 240/var(--tw-text-opacity))}.ddoc .text-Interface{--tw-text-opacity:1;color:rgb(210 160 100/var(--tw-text-opacity))}.ddoc .text-Method{--tw-text-opacity:1;color:rgb(5 108 240/var(--tw-text-opacity))}.ddoc .text-Namespace{--tw-text-opacity:1;color:rgb(210 86 70/var(--tw-text-opacity))}.ddoc .text-Property{--tw-text-opacity:1;color:rgb(126 87 192/var(--tw-text-opacity))}.ddoc .text-TypeAlias{--tw-text-opacity:1;color:rgb(164 71 140/var(--tw-text-opacity))}.ddoc .text-Variable{--tw-text-opacity:1;color:rgb(126 87 192/var(--tw-text-opacity))}.ddoc .text-\[\#0F172A\]{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity))}.ddoc .text-abstract{--tw-text-opacity:1;color:rgb(12 175 198/var(--tw-text-opacity))}.ddoc .text-deprecated{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity))}.ddoc .text-new{--tw-text-opacity:1;color:rgb(123 97 255/var(--tw-text-opacity))}.ddoc .text-optional{--tw-text-opacity:1;color:rgb(12 175 198/var(--tw-text-opacity))}.ddoc .text-other{--tw-text-opacity:1;color:rgb(87 83 78/var(--tw-text-opacity))}.ddoc .text-permissions,.ddoc .text-private{--tw-text-opacity:1;color:rgb(12 175 198/var(--tw-text-opacity))}.ddoc .text-protected,.ddoc .text-readonly{--tw-text-opacity:1;color:rgb(123 97 255/var(--tw-text-opacity))}.ddoc .text-stone-500{--tw-text-opacity:1;color:rgb(120 113 108/var(--tw-text-opacity))}.ddoc .text-unstable,.ddoc .text-writeonly{--tw-text-opacity:1;color:rgb(123 97 255/var(--tw-text-opacity))}.ddoc .filter{filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.ddoc summary::-webkit-details-marker{display:none}.ddoc a{word-wrap:break-word}.ddoc{--ddoc-selection-border-width:2px;--ddoc-selection-border-color-default:#d6d3d1;--ddoc-selection-selected-border-color:#2564eb;--ddoc-selection-selected-bg:#056cf00c;--ddoc-selection-padding:9px 15px}.ddoc .link{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter,-webkit-backdrop-filter;transition-duration:75ms;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ddoc .link:hover{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity))}.ddoc .anchor{float:left;--tw-text-opacity:1;color:rgb(87 83 78/var(--tw-text-opacity));margin-left:-24px;padding:.25rem;line-height:1;display:none;top:0;bottom:0}.ddoc .anchorable{scroll-margin-top:4rem;position:relative}.ddoc .anchorable:hover .anchor{display:block}.ddoc .deprecated>div:first-child{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity));align-items:center;gap:.25rem;padding-top:.25rem;padding-bottom:.25rem;display:flex}.ddoc .deprecated>div:first-child>span{font-weight:600;line-height:1.5rem}.ddoc .deprecated>div:nth-child(2){--tw-border-opacity:1;border-left-width:4px;border-color:rgb(252 165 165/var(--tw-border-opacity));margin-left:.25rem;padding-left:.5rem}.ddoc .symbolSubtitle>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.125rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.ddoc .symbolSubtitle{font-size:.875rem;line-height:1rem}.ddoc .symbolSubtitle .type{--tw-text-opacity:1;color:rgb(168 162 158/var(--tw-text-opacity));font-style:italic}.ddoc .docEntry{margin-bottom:1rem}.ddoc .docEntry>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.ddoc .docEntry .docEntryHeader{justify-content:space-between;align-items:flex-start;display:flex}@media (min-width:768px){.ddoc .docEntry .docEntryHeader{font-size:1rem;line-height:1.5rem}}.ddoc .docEntry .docEntryHeader>div{overflow-wrap:break-word}.ddoc .section{max-width:75ch;margin-bottom:.5rem;scroll-margin-top:4rem}.ddoc .section>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.ddoc .section>div:first-child>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.ddoc .section>div:first-child>h2{margin-bottom:0;padding-top:.25rem;padding-bottom:.25rem;font-size:1.25rem;font-weight:600;line-height:1.5rem}.ddoc .section>div:first-child>div{max-width:75ch;font-size:1rem;line-height:1.5rem}.ddoc .namespaceSection{max-width:75ch;margin-top:1rem}.ddoc .namespaceSection>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.ddoc .namespaceSection .namespaceItem{-moz-column-gap:.625rem;column-gap:.625rem;min-height:0;display:flex}@media (min-width:768px){.ddoc .namespaceSection .namespaceItem{min-height:4rem}}@media (min-width:1024px){.ddoc .namespaceSection .namespaceItem{padding-right:1rem}}.ddoc .namespaceSection .namespaceItem .docNodeKindIcon{flex-direction:column;justify-content:flex-start;width:auto}.ddoc .namespaceSection .namespaceItem .docNodeKindIcon>*+*{margin-top:-.125rem;margin-left:0}.ddoc .namespaceSection .namespaceItem[aria-label=deprecated]{opacity:.6}.ddoc .namespaceSection .namespaceItem[aria-label=deprecated] .namespaceItemContent>a{--tw-text-opacity:1;color:rgb(120 113 108/var(--tw-text-opacity));text-decoration-line:line-through;text-decoration-color:#78716cb3;text-decoration-thickness:2px}.ddoc .namespaceSection .namespaceItem .namespaceItemContent>a,.ddoc .namespaceSection .namespaceItem .namespaceItemContent .namespaceItemContentSubItems a{text-decoration-line:underline;text-decoration-color:#d6d3d1}:is(.ddoc .namespaceSection .namespaceItem .namespaceItemContent>a,.ddoc .namespaceSection .namespaceItem .namespaceItemContent .namespaceItemContentSubItems a):hover{text-decoration-line:none}.ddoc .namespaceSection .namespaceItem .namespaceItemContent>a{word-break:break-all;font-weight:500;line-height:1.25;display:block}.ddoc .namespaceSection .namespaceItem .namespaceItemContent .namespaceItemContentDoc{--tw-text-opacity:1;color:rgb(87 83 78/var(--tw-text-opacity));margin-top:.5rem;font-size:.875rem;line-height:1.25rem}.ddoc .namespaceSection .namespaceItem .namespaceItemContent .namespaceItemContentSubItems{flex-wrap:wrap;row-gap:.25rem;margin-top:.375rem;font-size:.875rem;line-height:1.25rem;display:flex}.ddoc .namespaceSection .namespaceItem .namespaceItemContent .namespaceItemContentSubItems>li:not(:last-child):after{content:"|";-webkit-user-select:none;user-select:none;--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity));margin-left:.5rem;margin-right:.5rem}.ddoc .symbolGroup>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(3rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem*var(--tw-space-y-reverse))}.ddoc .symbolGroup article>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem*var(--tw-space-y-reverse))}.ddoc .symbolGroup article>div:first-child{justify-content:space-between;align-items:flex-start;display:flex}.ddoc .symbolGroup article>div:first-child>div:first-child>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.ddoc .symbolGroup article>div:first-child>div:first-child{font-weight:500}.ddoc .docNodeKindIcon{flex-shrink:0;justify-content:flex-end;display:inline-flex}.ddoc .docNodeKindIcon div{-webkit-user-select:none;user-select:none;text-align:center;vertical-align:middle;border-radius:9999px;flex-shrink:0;width:1.25rem;height:1.25rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.75rem;font-weight:500;line-height:1.25rem}.ddoc .docNodeKindIcon>*+*{margin-left:-.375rem}.ddoc .example-header{margin-bottom:.75rem;font-size:1.125rem;font-weight:700;line-height:1.75rem}.ddoc .toc h3{margin-bottom:.75rem;font-size:1.125rem;font-weight:700;line-height:1.75rem}.ddoc .toc>div>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem*var(--tw-space-y-reverse))}.ddoc .toc .topSymbols>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.ddoc .toc .topSymbols{font-size:.875rem;line-height:1.25rem}.ddoc .toc .topSymbols ul{list-style-type:none}.ddoc .toc .topSymbols ul>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.625rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem*var(--tw-space-y-reverse))}.ddoc .toc .topSymbols ul li{display:block}.ddoc .toc .topSymbols ul li a{align-items:center;gap:.5rem;display:flex}.ddoc .toc .topSymbols ul li a>span{text-overflow:ellipsis;white-space:nowrap;border-radius:.25rem;width:100%;margin-top:-.125rem;margin-bottom:-.125rem;margin-left:-.25rem;padding-top:.125rem;padding-bottom:.125rem;padding-left:.25rem;display:block;overflow:hidden}.ddoc .toc .topSymbols>a:hover{text-decoration-line:underline}.ddoc .toc .documentNavigation>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.ddoc .toc .documentNavigation{font-size:.875rem;line-height:1.25rem}@media not all and (min-width:640px){.ddoc .toc .documentNavigation{display:none}}.ddoc .toc .documentNavigation>ul{flex-grow:1;display:block}.ddoc .toc .documentNavigation>ul>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.ddoc .toc .documentNavigation>ul{overflow-y:auto}.ddoc .toc .documentNavigation>ul>li{margin-top:.125rem;margin-left:.75rem;margin-right:.75rem}.ddoc .toc .documentNavigation>ul li:has(>ul){margin-top:0!important}.ddoc .toc .documentNavigation>ul li:has(>a){padding-bottom:0!important}.ddoc .toc .documentNavigation>ul ul{margin-left:.875rem}.ddoc .toc .documentNavigation>ul ul>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.ddoc .toc .documentNavigation>ul ul{--tw-text-opacity:1;color:rgb(134 135 137/var(--tw-text-opacity));font-size:.8rem;line-height:1}.ddoc .toc .documentNavigation>ul ul li{margin-top:.25rem!important}.ddoc .toc .documentNavigation>ul ul li a{padding:.25rem}.ddoc .toc .documentNavigation>ul ul li a:hover{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.ddoc .toc .documentNavigation a{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.ddoc .toc .documentNavigation a:hover{text-decoration-line:underline}.ddoc .usages nav{flex-direction:row;align-items:center;gap:.5rem;margin-bottom:.75rem;font-weight:600;display:flex}.ddoc .usages nav details>summary{cursor:pointer;-webkit-user-select:none;user-select:none;--tw-border-opacity:1;border-width:1px;border-color:rgb(209 213 219/var(--tw-border-opacity));border-radius:.25rem;gap:.25rem;padding:.5rem .75rem;display:flex}@media (min-width:768px){.ddoc .usages nav details>div{position:relative}}.ddoc .usages nav details>div>div{z-index:30;--tw-border-opacity:1;border-width:1px;border-color:rgb(209 213 219/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));margin-top:.375rem;padding:.5rem;display:block;position:absolute}@media not all and (min-width:768px){.ddoc .usages nav details>div>div{border-left-width:0;border-right-width:0;left:0;right:0}}@media (min-width:768px){.ddoc .usages nav details>div>div{border-radius:.25rem;width:12rem}}.ddoc .usages nav details>div>div label{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:.125rem;align-items:center;gap:.5rem;padding:.25rem .5rem;line-height:1.5;display:flex}.ddoc .usages nav details>div>div label:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.ddoc .usageContent>h3{margin-bottom:.75rem;font-size:1.125rem;font-weight:700;line-height:1.75rem}.ddoc .usageContent>div{--tw-text-opacity:1;color:rgb(104 104 104/var(--tw-text-opacity));font-size:.75rem;line-height:1rem}.ddoc .usageContent>div p{margin:0}.ddoc .usageContent pre.highlight{--tw-border-opacity:1;border-width:1px;border-color:rgb(209 213 219/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}@media not all and (min-width:768px){.ddoc .usageContent pre.highlight{border-left-width:0;border-right-width:0}}.ddoc .usageContent pre.highlight{margin-top:.25rem!important}.ddoc .usageContent pre.highlight>code:first-child{scrollbar-width:thin;padding:.5rem .75rem}.ddoc .usageContent pre.highlight .context_button{border-width:0;display:none;top:.25rem;right:.5rem}.ddoc .usageContent pre.highlight .context_button svg rect{fill:#fff}.ddoc .usageContent pre.highlight:hover .context_button{opacity:1;display:block}.ddoc #categoryPanel{padding-top:.75rem;font-size:.875rem;line-height:1.25rem}.ddoc #categoryPanel ul>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.ddoc #categoryPanel ul{overflow-y:auto}.ddoc #categoryPanel ul li{margin-left:.25rem;margin-right:.75rem}.ddoc #categoryPanel ul li a{text-overflow:ellipsis;white-space:nowrap;padding:.375rem .875rem;display:block;overflow:hidden}.ddoc #categoryPanel ul li a:hover{text-decoration-line:underline}.ddoc .contextLink{color:#0e6590cc;text-underline-offset:.15em;text-decoration-line:underline;text-decoration-color:#0e659080;text-decoration-thickness:1.5px}.ddoc .contextLink:hover{--tw-text-opacity:1;color:rgb(14 101 144/var(--tw-text-opacity));text-decoration-color:#0e6590}.ddoc .contextLink{-webkit-text-decoration-skip:ink;-webkit-text-decoration-skip-ink:auto;text-decoration-skip-ink:auto}.ddoc .breadcrumbs{word-break:break-all;flex-wrap:wrap;align-items:center;gap:.25rem;display:inline-flex}.ddoc .breadcrumbs>li:first-child{font-size:1.5rem;font-weight:700;line-height:1}.ddoc .breadcrumbs li{font-size:1.125rem;line-height:.9em;display:inline}@media (min-width:1024px){.ddoc .breadcrumbs li{font-size:1.25rem;line-height:1.75rem}}.ddoc .context_button{z-index:10;cursor:pointer;background-color:inherit;border-width:1px;border-radius:.25rem;padding:.375rem;line-height:0}.ddoc .context_button:hover{--tw-bg-opacity:1;background-color:rgb(231 229 228/var(--tw-bg-opacity))}.ddoc .see{list-style-type:disc;list-style-position:inside}.ddoc .see>li *{display:inline-block}.ddoc .\*\:h-4>*{height:1rem}.ddoc .\*\:h-5>*{height:1.25rem}.ddoc .\*\:w-auto>*{width:auto}.ddoc .\*\:flex-none>*{flex:none}.ddoc .hover\:bg-Class\/15:hover{background-color:#20b44b26}.ddoc .hover\:bg-Class\/5:hover{background-color:#20b44b0d}.ddoc .hover\:bg-Enum\/15:hover{background-color:#22abb026}.ddoc .hover\:bg-Enum\/5:hover{background-color:#22abb00d}.ddoc .hover\:bg-Function\/15:hover{background-color:#056cf026}.ddoc .hover\:bg-Function\/5:hover{background-color:#056cf00d}.ddoc .hover\:bg-Interface\/15:hover{background-color:#d2a06426}.ddoc .hover\:bg-Interface\/5:hover{background-color:#d2a0640d}.ddoc .hover\:bg-Method\/15:hover{background-color:#056cf026}.ddoc .hover\:bg-Method\/5:hover{background-color:#056cf00d}.ddoc .hover\:bg-Namespace\/15:hover{background-color:#d2564626}.ddoc .hover\:bg-Namespace\/5:hover{background-color:#d256460d}.ddoc .hover\:bg-Property\/15:hover{background-color:#7e57c026}.ddoc .hover\:bg-Property\/5:hover{background-color:#7e57c00d}.ddoc .hover\:bg-TypeAlias\/15:hover{background-color:#a4478c26}.ddoc .hover\:bg-TypeAlias\/5:hover{background-color:#a4478c0d}.ddoc .hover\:bg-Variable\/15:hover{background-color:#7e57c026}.ddoc .hover\:bg-Variable\/5:hover{background-color:#7e57c00d}.ddoc .hover\:bg-abstract\/15:hover{background-color:#0cafc626}.ddoc .hover\:bg-abstract\/5:hover{background-color:#0cafc60d}.ddoc .hover\:bg-deprecated\/15:hover{background-color:#dc262626}.ddoc .hover\:bg-deprecated\/5:hover{background-color:#dc26260d}.ddoc .hover\:bg-new\/15:hover{background-color:#7b61ff26}.ddoc .hover\:bg-new\/5:hover{background-color:#7b61ff0d}.ddoc .hover\:bg-optional\/15:hover{background-color:#0cafc626}.ddoc .hover\:bg-optional\/5:hover{background-color:#0cafc60d}.ddoc .hover\:bg-other\/15:hover{background-color:#57534e26}.ddoc .hover\:bg-other\/5:hover{background-color:#57534e0d}.ddoc .hover\:bg-permissions\/15:hover{background-color:#0cafc626}.ddoc .hover\:bg-permissions\/5:hover{background-color:#0cafc60d}.ddoc .hover\:bg-private\/15:hover{background-color:#0cafc626}.ddoc .hover\:bg-private\/5:hover{background-color:#0cafc60d}.ddoc .hover\:bg-protected\/15:hover{background-color:#7b61ff26}.ddoc .hover\:bg-protected\/5:hover{background-color:#7b61ff0d}.ddoc .hover\:bg-readonly\/15:hover{background-color:#7b61ff26}.ddoc .hover\:bg-readonly\/5:hover{background-color:#7b61ff0d}.ddoc .hover\:bg-unstable\/15:hover{background-color:#7b61ff26}.ddoc .hover\:bg-unstable\/5:hover{background-color:#7b61ff0d}.ddoc .hover\:bg-writeonly\/15:hover{background-color:#7b61ff26}.ddoc .hover\:bg-writeonly\/5:hover{background-color:#7b61ff0d} \ No newline at end of file diff --git a/docs/~/JsonHigh.html b/docs/~/JsonHigh.html new file mode 100644 index 0000000..bb29e2b --- /dev/null +++ b/docs/~/JsonHigh.html @@ -0,0 +1,238 @@ + + + + JsonHigh - documentation + + + + + + + + + + +
+ +
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighEvents.bufferKey.html b/docs/~/JsonHighEvents.bufferKey.html new file mode 100644 index 0000000..916cf49 --- /dev/null +++ b/docs/~/JsonHighEvents.bufferKey.html @@ -0,0 +1,150 @@ + + + + JsonHighEvents.bufferKey - documentation + + + + + + + + + + +
+ +
+
+
+
+
+ property JsonHighEvents.bufferKey +
+ + + + +

Key buffer is ready for consumption.

+

[conditional] Called instead of the key event when maxStringBufferLength is set.

+

The buffer then contains maxStringBufferLength code points or possibly less if we reached the end of a key.

+
+
+ +
+
(buffer: string) => Feedback + +
+ + + + +
+
+
+
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighEvents.bufferNumber.html b/docs/~/JsonHighEvents.bufferNumber.html new file mode 100644 index 0000000..e2424be --- /dev/null +++ b/docs/~/JsonHighEvents.bufferNumber.html @@ -0,0 +1,150 @@ + + + + JsonHighEvents.bufferNumber - documentation + + + + + + + + + + +
+ +
+
+
+
+
+ property JsonHighEvents.bufferNumber +
+ + + + +

Number buffer is ready for consumption.

+

[conditional] For number values, called instead of the value event when parseNumbers is set.

+

The buffer then contains the unparsed number (represented as a string).

+
+
+ +
+
(buffer: string) => Feedback + +
+ + + + +
+
+
+
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighEvents.bufferString.html b/docs/~/JsonHighEvents.bufferString.html new file mode 100644 index 0000000..b9fb03d --- /dev/null +++ b/docs/~/JsonHighEvents.bufferString.html @@ -0,0 +1,150 @@ + + + + JsonHighEvents.bufferString - documentation + + + + + + + + + + +
+ +
+
+
+
+
+ property JsonHighEvents.bufferString +
+ + + + +

String buffer is ready for consumption.

+

[conditional] For string values, called instead of the value event when maxStringBufferLength is set.

+

The buffer then contains maxStringBufferLength code points or possibly less if we reached the end of a string value.

+
+
+ +
+
(buffer: string) => Feedback + +
+ + + + +
+
+
+
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighEvents.closeArray.html b/docs/~/JsonHighEvents.closeArray.html new file mode 100644 index 0000000..79120c4 --- /dev/null +++ b/docs/~/JsonHighEvents.closeArray.html @@ -0,0 +1,148 @@ + + + + JsonHighEvents.closeArray - documentation + + + + + + + + + + +
+ +
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighEvents.closeKey.html b/docs/~/JsonHighEvents.closeKey.html new file mode 100644 index 0000000..f897138 --- /dev/null +++ b/docs/~/JsonHighEvents.closeKey.html @@ -0,0 +1,149 @@ + + + + JsonHighEvents.closeKey - documentation + + + + + + + + + + +
+ +
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighEvents.closeObject.html b/docs/~/JsonHighEvents.closeObject.html new file mode 100644 index 0000000..b69c092 --- /dev/null +++ b/docs/~/JsonHighEvents.closeObject.html @@ -0,0 +1,148 @@ + + + + JsonHighEvents.closeObject - documentation + + + + + + + + + + +
+ +
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighEvents.closeString.html b/docs/~/JsonHighEvents.closeString.html new file mode 100644 index 0000000..c4bedac --- /dev/null +++ b/docs/~/JsonHighEvents.closeString.html @@ -0,0 +1,149 @@ + + + + JsonHighEvents.closeString - documentation + + + + + + + + + + +
+ +
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighEvents.end.html b/docs/~/JsonHighEvents.end.html new file mode 100644 index 0000000..df0b4c9 --- /dev/null +++ b/docs/~/JsonHighEvents.end.html @@ -0,0 +1,148 @@ + + + + JsonHighEvents.end - documentation + + + + + + + + + + +
+ +
+
+
+
+
+ property JsonHighEvents.end +
+ + + + +

Called by the end method of the stream to confirm that the parsed JSON document is complete and valid.

+
+
+ +
+
() => End + +
+ + + + +
+
+
+
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighEvents.html b/docs/~/JsonHighEvents.html new file mode 100644 index 0000000..437b110 --- /dev/null +++ b/docs/~/JsonHighEvents.html @@ -0,0 +1,1121 @@ + + + + JsonHighEvents - documentation + + + + + + + + + + +
+ +
+
+
+
+
+ type alias JsonHighEvents +
+ + + + +

+Basic events

+

The basic usage of JsonHigh involves 4 event handlers without arguments which indicate start and end of structures:

+ +

And 2 event handlers with one argument which capture primitives:

+ +

Finally, there is the argumentless JsonHighEvents.end event handler.

+

+Extra events

+

These handlers take no arguments:

+ +

+Conditional events

+

These handlers take no arguments:

+ +

These handlers receive the buffer that should be consumed:

+ +
+
+

+ + + + + + + + + + +Type Parameters

+ +
+ +
+
+
+

+ + + + + + + + + + +Properties

+ +

An array started ([).

+
+
+ +

An array ended (]).

+
+
+ +

An object started ({).

+
+
+ +

An object ended (}).

+
+
+ +
+
optional
+
+ + + + + + + + + + +key: (key: string) => Feedback + +
+ + + + +

An object's key ended.

+

The argument of the handler contains the key as a JavaScript string.

+

[conditional] Called only in default (non-buffering) mode.

+

This event can be suppressed by setting JsonHighOptions.maxStringBufferLength.

+
+
+ +
+
optional
+
+ + + + + + + + + + +value: (value:
string
| number
| null
| boolean
) => Feedback
+
+
+ + + + +

A primitive JSON value ended.

+

The argument of the event contains the corresponding JavaScript value: true, false, null, a number, or a string.

+

This event can be suppressed for strings if JsonHighOptions.maxStringBufferLength is set and for numbers if JsonHighOptions.parseNumbers is set to false.

+
+
+ +
+
optional
+
+ + + + + + + + + + +end: () => End + +
+ + + + +

Called by the end method of the stream to confirm that the parsed JSON document is complete and valid.

+
+
+ +

A key started (", in key position).

+
+
+ +

A string value started (").

+
+
+ +

A number value started.

+
+
+ +

A key ended (").

+

[conditional] Called instead of the key event when maxStringBufferLength is set.

+
+
+ +

A string value ended (").

+

[conditional] Called instead of the value event when maxStringBufferLength is set.

+
+
+ +
+
optional
+
+ + + + + + + + + + +bufferKey: (buffer: string) => Feedback + +
+ + + + +

Key buffer is ready for consumption.

+

[conditional] Called instead of the key event when maxStringBufferLength is set.

+

The buffer then contains maxStringBufferLength code points or possibly less if we reached the end of a key.

+
+
+ +
+
optional
+
+ + + + + + + + + + +bufferString: (buffer: string) => Feedback + +
+ + + + +

String buffer is ready for consumption.

+

[conditional] For string values, called instead of the value event when maxStringBufferLength is set.

+

The buffer then contains maxStringBufferLength code points or possibly less if we reached the end of a string value.

+
+
+ +
+
optional
+
+ + + + + + + + + + +bufferNumber: (buffer: string) => Feedback + +
+ + + + +

Number buffer is ready for consumption.

+

[conditional] For number values, called instead of the value event when parseNumbers is set.

+

The buffer then contains the unparsed number (represented as a string).

+
+
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighEvents.key.html b/docs/~/JsonHighEvents.key.html new file mode 100644 index 0000000..1060acd --- /dev/null +++ b/docs/~/JsonHighEvents.key.html @@ -0,0 +1,151 @@ + + + + JsonHighEvents.key - documentation + + + + + + + + + + +
+ +
+
+
+
+
+ property JsonHighEvents.key +
+ + + + +

An object's key ended.

+

The argument of the handler contains the key as a JavaScript string.

+

[conditional] Called only in default (non-buffering) mode.

+

This event can be suppressed by setting JsonHighOptions.maxStringBufferLength.

+
+
+ +
+
(key: string) => Feedback + +
+ + + + +
+
+
+
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighEvents.openArray.html b/docs/~/JsonHighEvents.openArray.html new file mode 100644 index 0000000..14ae9ea --- /dev/null +++ b/docs/~/JsonHighEvents.openArray.html @@ -0,0 +1,148 @@ + + + + JsonHighEvents.openArray - documentation + + + + + + + + + + +
+ +
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighEvents.openKey.html b/docs/~/JsonHighEvents.openKey.html new file mode 100644 index 0000000..d0a9923 --- /dev/null +++ b/docs/~/JsonHighEvents.openKey.html @@ -0,0 +1,148 @@ + + + + JsonHighEvents.openKey - documentation + + + + + + + + + + +
+ +
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighEvents.openNumber.html b/docs/~/JsonHighEvents.openNumber.html new file mode 100644 index 0000000..6399e4b --- /dev/null +++ b/docs/~/JsonHighEvents.openNumber.html @@ -0,0 +1,148 @@ + + + + JsonHighEvents.openNumber - documentation + + + + + + + + + + +
+ +
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighEvents.openObject.html b/docs/~/JsonHighEvents.openObject.html new file mode 100644 index 0000000..c1b3bdc --- /dev/null +++ b/docs/~/JsonHighEvents.openObject.html @@ -0,0 +1,148 @@ + + + + JsonHighEvents.openObject - documentation + + + + + + + + + + +
+ +
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighEvents.openString.html b/docs/~/JsonHighEvents.openString.html new file mode 100644 index 0000000..2e0c479 --- /dev/null +++ b/docs/~/JsonHighEvents.openString.html @@ -0,0 +1,148 @@ + + + + JsonHighEvents.openString - documentation + + + + + + + + + + +
+ +
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighEvents.value.html b/docs/~/JsonHighEvents.value.html new file mode 100644 index 0000000..af30da0 --- /dev/null +++ b/docs/~/JsonHighEvents.value.html @@ -0,0 +1,150 @@ + + + + JsonHighEvents.value - documentation + + + + + + + + + + +
+ +
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighHandler.html b/docs/~/JsonHighHandler.html new file mode 100644 index 0000000..2803052 --- /dev/null +++ b/docs/~/JsonHighHandler.html @@ -0,0 +1,226 @@ + + + + JsonHighHandler - documentation + + + + + + + + + + +
+ +
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighHandlers.html b/docs/~/JsonHighHandlers.html new file mode 100644 index 0000000..1b999cd --- /dev/null +++ b/docs/~/JsonHighHandlers.html @@ -0,0 +1,279 @@ + + + + JsonHighHandlers - documentation + + + + + + + + + + +
+ +
+
+
+ +
+
+
+ + diff --git a/docs/~/JsonHighOptions.bufferOnChunk.html b/docs/~/JsonHighOptions.bufferOnChunk.html new file mode 100644 index 0000000..c2793cc --- /dev/null +++ b/docs/~/JsonHighOptions.bufferOnChunk.html @@ -0,0 +1,153 @@ + + + + JsonHighOptions.bufferOnChunk - documentation + + + + + + + + + + +
+ +
+
+
+
+
+ property JsonHighOptions.bufferOnChunk +
+ + + + +

See also: the similar JsonHighOptions.maxStringBufferLength option. These options can be combined. Differences between them are marked with a strong font.

+

If set to true, the key event handler won't be called and, for strings, the value event handler won't be called.

+

Instead, the bufferKey and bufferString handlers will be called as soon as the current chunk (passed in via the .chunk() method of the stream) has been processed or when the key/string is finished.

+

In the latter case a closeKey/closeString handler will be called after the last buffer* event to signal the finish.

+

This is useful when it's desirable to stream strings or keys piece-by-piece, in sync with the chunks being received, without needing to specify a fixed buffer length; e.g. when working with LLMs (Large Language Models).

+

See Add support for incomplete key and value strings #10 for more information.

+
+
+ +
+
boolean + +
+ + + + +
+
+
+
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighOptions.html b/docs/~/JsonHighOptions.html new file mode 100644 index 0000000..6e9434a --- /dev/null +++ b/docs/~/JsonHighOptions.html @@ -0,0 +1,351 @@ + + + + JsonHighOptions - documentation + + + + + + + + + + +
+ +
+
+
+
+
+ type alias JsonHighOptions +
+ + + + +

+Options

+
+
+

+ + + + + + + + + + +Properties

+ +
+
optional
+
+ + + + + + + + + + +maxStringBufferLength: number = Infinity + +
+ + + + +

See also: the similar JsonHighOptions.bufferOnChunk option. These options can be combined. Differences between them are marked with a strong font.

+

The maximum length of the key or string buffer, in code points.

+

If set to a value in range [1;Infinity), the key event handler won't be called and, for strings, the value event handler won't be called.

+

Instead, the bufferKey and bufferString handlers will be called as soon as the given number of code points has been collected or when the key/string is finished.

+

In the latter case the number of code points may be smaller than maxStringBufferLength and a closeKey/closeString handler will be called after the last buffer* event to signal the finish.

+

This is useful when dealing with long strings where it's desirable to stream them piece-by-piece, e.g. when working with LLMs (Large Language Models).

+

See Add support for incomplete key and value strings #10 for more information.

+
+
+ +
+
optional
+
+ + + + + + + + + + +bufferOnChunk: boolean = false + +
+ + + + +

See also: the similar JsonHighOptions.maxStringBufferLength option. These options can be combined. Differences between them are marked with a strong font.

+

If set to true, the key event handler won't be called and, for strings, the value event handler won't be called.

+

Instead, the bufferKey and bufferString handlers will be called as soon as the current chunk (passed in via the .chunk() method of the stream) has been processed or when the key/string is finished.

+

In the latter case a closeKey/closeString handler will be called after the last buffer* event to signal the finish.

+

This is useful when it's desirable to stream strings or keys piece-by-piece, in sync with the chunks being received, without needing to specify a fixed buffer length; e.g. when working with LLMs (Large Language Models).

+

See Add support for incomplete key and value strings #10 for more information.

+
+
+ +
+
optional
+
+ + + + + + + + + + +maxNumberLength: number = 8192 + +
+ + + + +

Specifies the maximum length of a number value (in characters).

+
+
+ +
+
optional
+
+ + + + + + + + + + +parseNumbers: boolean = true + +
+ + + + +

Controls whether numbers should be parsed (converted to JavaScript number type) which is the case by default.

+

If set to false, the value event handler won't be called for numbers. Instead, the bufferNumber handler will be called with the number as a string.

+

This is useful when dealing with big numbers which would lose precision when converted to the number type.

+
+
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighOptions.maxNumberLength.html b/docs/~/JsonHighOptions.maxNumberLength.html new file mode 100644 index 0000000..c26c88c --- /dev/null +++ b/docs/~/JsonHighOptions.maxNumberLength.html @@ -0,0 +1,148 @@ + + + + JsonHighOptions.maxNumberLength - documentation + + + + + + + + + + +
+ +
+
+
+
+
+ property JsonHighOptions.maxNumberLength +
+ + + + +

Specifies the maximum length of a number value (in characters).

+
+
+ +
+
number + +
+ + + + +
+
+
+
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighOptions.maxStringBufferLength.html b/docs/~/JsonHighOptions.maxStringBufferLength.html new file mode 100644 index 0000000..bf430d4 --- /dev/null +++ b/docs/~/JsonHighOptions.maxStringBufferLength.html @@ -0,0 +1,154 @@ + + + + JsonHighOptions.maxStringBufferLength - documentation + + + + + + + + + + +
+ +
+
+
+
+
+ property JsonHighOptions.maxStringBufferLength +
+ + + + +

See also: the similar JsonHighOptions.bufferOnChunk option. These options can be combined. Differences between them are marked with a strong font.

+

The maximum length of the key or string buffer, in code points.

+

If set to a value in range [1;Infinity), the key event handler won't be called and, for strings, the value event handler won't be called.

+

Instead, the bufferKey and bufferString handlers will be called as soon as the given number of code points has been collected or when the key/string is finished.

+

In the latter case the number of code points may be smaller than maxStringBufferLength and a closeKey/closeString handler will be called after the last buffer* event to signal the finish.

+

This is useful when dealing with long strings where it's desirable to stream them piece-by-piece, e.g. when working with LLMs (Large Language Models).

+

See Add support for incomplete key and value strings #10 for more information.

+
+
+ +
+
number + +
+ + + + +
+
+
+
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighOptions.parseNumbers.html b/docs/~/JsonHighOptions.parseNumbers.html new file mode 100644 index 0000000..e4e3903 --- /dev/null +++ b/docs/~/JsonHighOptions.parseNumbers.html @@ -0,0 +1,150 @@ + + + + JsonHighOptions.parseNumbers - documentation + + + + + + + + + + +
+ +
+
+
+
+
+ property JsonHighOptions.parseNumbers +
+ + + + +

Controls whether numbers should be parsed (converted to JavaScript number type) which is the case by default.

+

If set to false, the value event handler won't be called for numbers. Instead, the bufferNumber handler will be called with the number as a string.

+

This is useful when dealing with big numbers which would lose precision when converted to the number type.

+
+
+ +
+
boolean + +
+ + + + +
+
+
+
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighStream.chunk.html b/docs/~/JsonHighStream.chunk.html new file mode 100644 index 0000000..94842a0 --- /dev/null +++ b/docs/~/JsonHighStream.chunk.html @@ -0,0 +1,252 @@ + + + + JsonHighStream.chunk - documentation + + + + + + + + + + +
+ +
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighStream.depth.html b/docs/~/JsonHighStream.depth.html new file mode 100644 index 0000000..2c31eaa --- /dev/null +++ b/docs/~/JsonHighStream.depth.html @@ -0,0 +1,182 @@ + + + + JsonHighStream.depth - documentation + + + + + + + + + + +
+ +
+
+
+
+
+ method JsonHighStream.depth +
+ + + + +
+ + + + + + + + + + + +JsonHighStream.depth(): number +

Reports current depth (level of nesting).

+

NOTE: an open* or close* handler is always called after the depth is updated, meaning:

+
    +
  • +

    in openObject/openArray handlers the lowest depth reported will be 1 -- we entered a top-level object/array and are now at depth 1

    +
  • +
  • +

    in closeObject/closeArray handlers the lowest depth reported will be 0 -- we exited a top-level object/array and are now at depth 0 (top-level)

    +
  • +
+
+
+

+ + + + + + + + + + +Return Type

+ +
+
number + +
+ + + + +
+
+
+
+
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighStream.end.html b/docs/~/JsonHighStream.end.html new file mode 100644 index 0000000..7eb0c0e --- /dev/null +++ b/docs/~/JsonHighStream.end.html @@ -0,0 +1,174 @@ + + + + JsonHighStream.end - documentation + + + + + + + + + + +
+ +
+
+
+
+
+ method JsonHighStream.end +
+ + + + +
+ + + + + + + + + + + +JsonHighStream.end(): End +

Call it to signal to the stream that the current JSON document is finished.

+

If there is no error, it will then call the corresponding end() event handler, and return whatever that returned.

+
+
+

+ + + + + + + + + + +Return Type

+ +
+
End + +
+ + + + +
+
+
+
+
+
+
+
+
+
+
+ + diff --git a/docs/~/JsonHighStream.html b/docs/~/JsonHighStream.html new file mode 100644 index 0000000..abbb814 --- /dev/null +++ b/docs/~/JsonHighStream.html @@ -0,0 +1,423 @@ + + + + JsonHighStream - documentation + + + + + + + + + + +
+ +
+
+
+
+
+ type alias JsonHighStream +
+ + + + +

+Return value

+

JsonHigh returns a stream object with the following methods:

+
+
+

+ + + + + + + + + + +Type Parameters

+ +
+ +
+
+
+ +

Accepts a JSON chunk to parse.

+

Returns the stream object for chaining.

+
+
+ +

Call it to signal to the stream that the current JSON document is finished.

+

If there is no error, it will then call the corresponding end() event handler, and return whatever that returned.

+
+
+ +

Reports current depth (level of nesting).

+

NOTE: an open* or close* handler is always called after the depth is updated, meaning:

+
    +
  • +

    in openObject/openArray handlers the lowest depth reported will be 1 -- we entered a top-level object/array and are now at depth 1

    +
  • +
  • +

    in closeObject/closeArray handlers the lowest depth reported will be 0 -- we exited a top-level object/array and are now at depth 0 (top-level)

    +
  • +
+
+
+
+
+
+
+
+
+ + diff --git a/scripts/make-docs.sh b/scripts/make-docs.sh new file mode 100644 index 0000000..82b4e2c --- /dev/null +++ b/scripts/make-docs.sh @@ -0,0 +1 @@ +deno doc --private --html --lint JsonHigh.d.ts \ No newline at end of file From 7c0f9432db1bc8f3280aa16ac3593821dedef3af Mon Sep 17 00:00:00 2001 From: Darius J Chuck Date: Sun, 24 Aug 2025 23:27:58 +0200 Subject: [PATCH 2/2] add updated JsonHigh.d.ts, regenerate docs --- JsonHigh.d.ts | 170 ++++++++++++------ docs/all_symbols.html | 26 +-- docs/index.html | 4 +- docs/search_index.js | 2 +- docs/styles.css | 2 +- docs/~/JsonHigh.html | 12 +- docs/~/JsonHighEvents.bufferKey.html | 5 +- docs/~/JsonHighEvents.bufferNumber.html | 5 +- docs/~/JsonHighEvents.bufferString.html | 5 +- docs/~/JsonHighEvents.closeArray.html | 5 +- docs/~/JsonHighEvents.closeKey.html | 5 +- docs/~/JsonHighEvents.closeObject.html | 5 +- docs/~/JsonHighEvents.closeString.html | 5 +- docs/~/JsonHighEvents.end.html | 5 +- docs/~/JsonHighEvents.html | 10 +- docs/~/JsonHighEvents.key.html | 5 +- docs/~/JsonHighEvents.openArray.html | 5 +- docs/~/JsonHighEvents.openKey.html | 5 +- docs/~/JsonHighEvents.openNumber.html | 5 +- docs/~/JsonHighEvents.openObject.html | 5 +- docs/~/JsonHighEvents.openString.html | 5 +- docs/~/JsonHighEvents.value.html | 5 +- docs/~/JsonHighHandler.html | 10 +- docs/~/JsonHighHandlers.html | 10 +- docs/~/JsonHighOptions.bufferOnChunk.html | 5 +- docs/~/JsonHighOptions.html | 5 +- docs/~/JsonHighOptions.maxNumberLength.html | 5 +- ...JsonHighOptions.maxStringBufferLength.html | 5 +- docs/~/JsonHighOptions.parseNumbers.html | 5 +- docs/~/JsonHighStream.chunk.html | 14 +- docs/~/JsonHighStream.depth.html | 5 +- docs/~/JsonHighStream.end.html | 5 +- docs/~/JsonHighStream.html | 69 +------ 33 files changed, 195 insertions(+), 244 deletions(-) diff --git a/JsonHigh.d.ts b/JsonHigh.d.ts index 3495d89..6d7362e 100644 --- a/JsonHigh.d.ts +++ b/JsonHigh.d.ts @@ -1,8 +1,36 @@ +/** + * `JsonHigh` is called with an object which contains named event handlers that are invoked during parsing. + * + * The object may also contain [options](#options) to change the default behavior, e.g. [turn off number parsing](#parseNumbers) or turn on [buffering of strings piece-by-piece](#maxStringBufferLength). + */ export declare const JsonHigh: JsonHigh + +/** + * This is the high-level interface over {@link JsonLow} optimized for convenience. It provides similar functionality and granularity to other streaming parsers, such as [Clarinet](https://github.com/dscape/clarinet) or [creationix/jsonparse](https://github.com/creationix/jsonparse). + */ export type JsonHigh = ( next: JsonHighHandlers, -) => { - chunk(chunk: string): Feedback, +) => JsonHighStream + +/** + * ### Return value + * + * {@link JsonHigh} returns a stream object with the following methods: + */ +export type JsonHighStream = { + /** + * Accepts a JSON chunk to parse. + * + * Returns the stream object for chaining. + * + */ + chunk(chunk: string): JsonHighStream, + + /** + * Call it to signal to the stream that the current JSON document is finished. + * + * If there is no error, it will then call the corresponding `end()` event handler, and return whatever that returned. + */ end(): End, /** @@ -17,57 +45,103 @@ export type JsonHigh = ( depth(): number, // todo: type for state() } -export type JsonHighOptions = { - /** - * ### Options - */ +/** + * ### Options + */ +export type JsonHighOptions = { /** - * @defaultValue `Infinity` + * See also: the similar {@link JsonHighOptions.bufferOnChunk} option. These options can be combined. Differences between them are marked with a strong font. * * The maximum length of the key or string buffer, in code points. * - * If set, the `key` event handler won't be called and, for strings, the `value` event handler won't be called. + * If **set to a value in range `[1;Infinity)`**, the `key` event handler won't be called and, for strings, the `value` event handler won't be called. * - * Instead, the `bufferKey` and `bufferString` handlers will be called as soon as the given number of code points has been collected or when the key/string is finished. + * Instead, the `bufferKey` and `bufferString` handlers will be called **as soon as the given number of code points has been collected** or when the key/string is finished. * - * In the latter case the number of code points may be smaller than `maxStringBufferLength` and a `closeKey`/`closeString` handler will be called after the last `*Buffer` event to signal the finish. + * In the latter case **the number of code points may be smaller than `maxStringBufferLength`** and a `closeKey`/`closeString` handler will be called after the last `buffer*` event to signal the finish. * - * This is useful when dealing with long strings where it's desirable to stream them piece-by-piece, e.g. when working with LLMs (Large Language Models). + * This is useful **when dealing with long strings** where it's desirable to stream them piece-by-piece, e.g. when working with LLMs (Large Language Models). * * See [Add support for incomplete key and value strings #10](https://github.com/xtao-org/jsonhilo/issues/10) for more information. * + * @default {Infinity} */ maxStringBufferLength?: number, /** - * @defaultValue `8192` + * See also: the similar {@link JsonHighOptions.maxStringBufferLength} option. These options can be combined. Differences between them are marked with a strong font. + * + * If **set to `true`**, the `key` event handler won't be called and, for strings, the `value` event handler won't be called. + * + * Instead, the `bufferKey` and `bufferString` handlers will be called **as soon as the current chunk (passed in via the `.chunk()` method of the stream) has been processed** or when the key/string is finished. + * + * In the latter case a `closeKey`/`closeString` handler will be called after the last `buffer*` event to signal the finish. + * + * This is useful **when it's desirable to stream strings or keys piece-by-piece, in sync with the chunks being received, without needing to specify a fixed buffer length;** e.g. when working with LLMs (Large Language Models). + * + * See [Add support for incomplete key and value strings #10](https://github.com/xtao-org/jsonhilo/issues/10) for more information. * + * @default {false} + */ + bufferOnChunk?: boolean, + + /** * Specifies the maximum length of a number value (in characters). * + * @default {8192} */ maxNumberLength?: number, /** - * @defaultValue `true` - * * Controls whether numbers should be parsed (converted to JavaScript `number` type) which is the case by default. * * If set to `false`, the `value` event handler won't be called for numbers. Instead, the `bufferNumber` handler will be called with the number as a string. * * This is useful when dealing with big numbers which would lose precision when converted to the `number` type. * + * @default {true} */ parseNumbers?: boolean, } -export type JsonHighHandlers = JsonHighOptions & { - - /** - * ### Basic events - * - * The basic usage of `JsonHigh` involves 4 event handlers without arguments which indicate start and end of structures: - */ +/** ### Basic events + * + * The basic usage of `JsonHigh` involves 4 event handlers without arguments which indicate start and end of structures: + * * {@link JsonHighEvents.openArray} + * * {@link JsonHighEvents.closeArray} + * * {@link JsonHighEvents.openObject} + * * {@link JsonHighEvents.closeObject} + * + * And 2 event handlers with one argument which capture primitives: + * + * * {@link JsonHighEvents.key} + * * {@link JsonHighEvents.value} + * + * Finally, there is the argumentless {@link JsonHighEvents.end} event handler. + * + * ### Extra events + * + * These handlers take no arguments: + * + * * {@link JsonHighEvents.openKey} + * * {@link JsonHighEvents.openString} + * * {@link JsonHighEvents.openNumber} + * + * ### Conditional events + * + * These handlers take no arguments: + * + * * {@link JsonHighEvents.closeKey} + * * {@link JsonHighEvents.closeString} + * + * These handlers receive the buffer that should be consumed: + * + * * {@link JsonHighEvents.bufferKey} + * * {@link JsonHighEvents.bufferString} + * * {@link JsonHighEvents.bufferNumber} + */ +export type JsonHighEvents = { /** * An array started (`[`). */ @@ -88,16 +162,14 @@ export type JsonHighHandlers = JsonHighOptions & { */ closeObject?: JsonHighHandler, - /** - * And 2 event handlers with one argument which capture primitives: - */ - /** * An object's key ended. * * The argument of the handler contains the key as a JavaScript string. * - * This event can be suppressed by setting [`maxStringBufferLength`](#maxStringBufferLength). + * `[conditional]` Called only in default (non-buffering) mode. + * + * This event can be suppressed by setting {@link JsonHighOptions.maxStringBufferLength}. */ key?: (key: string) => Feedback, @@ -106,25 +178,16 @@ export type JsonHighHandlers = JsonHighOptions & { * * The argument of the event contains the corresponding JavaScript value: `true`, `false`, `null`, a number, or a string. * - * This event can be suppressed for strings if [`maxStringBufferLength`](#maxStringBufferLength) is set and for numbers if [`parseNumbers`](#parseNumbers) is set to `false`. + * This event can be suppressed for strings if {@link JsonHighOptions.maxStringBufferLength} is set and for numbers if {@link JsonHighOptions.parseNumbers} is set to `false`. + * */ value?: (value: string | number | null | boolean) => Feedback, - /** - * Finally, there is the argumentless `end` event handler: - */ - /** * Called by the `end` method of the stream to confirm that the parsed JSON document is complete and valid. */ end?: () => End, - /** - * ### Extra events - * - * These handlers take no arguments. - */ - /** * A key started (`"`, in key position). */ @@ -140,34 +203,26 @@ export type JsonHighHandlers = JsonHighOptions & { */ openNumber?: JsonHighHandler, - /** - * ### Conditional events - * - * These handlers take no arguments: - */ - /** * A key ended (`"`). * - * Called instead of the `key` event **when `maxStringBufferLength` is set**. + * `[conditional]` Called instead of the `key` event **when `maxStringBufferLength` is set**. */ closeKey?: JsonHighHandler, - /** + /** * A string value ended (`"`). * - * Called instead of the `value` event **when `maxStringBufferLength` is set**. + * `[conditional]` Called instead of the `value` event **when `maxStringBufferLength` is set**. + * + * @tags conditional */ closeString?: JsonHighHandler, - - /** - * These handlers receive the buffer that should be consumed: - */ - + /** * Key buffer is ready for consumption. * - * Called instead of the `key` event **when `maxStringBufferLength` is set**. + * `[conditional]` Called instead of the `key` event **when `maxStringBufferLength` is set**. * * The `buffer` then contains `maxStringBufferLength` code points or possibly less if we reached the end of a key. */ @@ -176,7 +231,7 @@ export type JsonHighHandlers = JsonHighOptions & { /** * String buffer is ready for consumption. * - * For string values, called instead of the `value` event **when `maxStringBufferLength` is set**. + * `[conditional]` For string values, called instead of the `value` event **when `maxStringBufferLength` is set**. * * The buffer then contains `maxStringBufferLength` code points or possibly less if we reached the end of a string value. */ @@ -185,10 +240,17 @@ export type JsonHighHandlers = JsonHighOptions & { /** * Number buffer is ready for consumption. * - * For number values, called instead of the `value` event **when `parseNumbers` is set**. + * `[conditional]` For number values, called instead of the `value` event **when `parseNumbers` is set**. * * The buffer then contains the unparsed number (represented as a string). */ bufferNumber?: (buffer: string) => Feedback, } + +/** + * TODO: this should be called something like JsonHighParameters or JsonHighArguments or sth. + */ +export type JsonHighHandlers = JsonHighOptions & JsonHighEvents + +/** TODO: doc */ export type JsonHighHandler = () => Feedback \ No newline at end of file diff --git a/docs/all_symbols.html b/docs/all_symbols.html index 71d99ce..d03eb27 100644 --- a/docs/all_symbols.html +++ b/docs/all_symbols.html @@ -49,31 +49,7 @@
-
-
T
v
+
T
v
JsonHigh diff --git a/docs/index.html b/docs/index.html index 21a26db..945b6b9 100644 --- a/docs/index.html +++ b/docs/index.html @@ -41,8 +41,8 @@
-
-
+
+
diff --git a/docs/search_index.js b/docs/search_index.js index 45da62e..8575361 100644 --- a/docs/search_index.js +++ b/docs/search_index.js @@ -1,3 +1,3 @@ (function () { - window.DENO_DOC_SEARCH_INDEX = {"nodes":[{"kind":[{"char":"T","kind":"TypeAlias","title":"Type Alias"},{"char":"v","kind":"Variable","title":"Variable"}],"name":"JsonHigh","file":".","doc":"This is the high-level interface over {@link JsonLow} optimized for convenience. It provides similar functionality and granularity to other streaming parsers, such as [Clarinet](https://github.com/dscape/clarinet) or [creationix/jsonparse](https://github.com/creationix/jsonparse).","url":"././~/JsonHigh.html","deprecated":false},{"kind":[{"char":"T","kind":"TypeAlias","title":"Type Alias"}],"name":"JsonHighEvents","file":".","doc":"### Basic events\n\nThe basic usage of `JsonHigh` involves 4 event handlers without arguments which indicate start and end of structures:\n* {@link JsonHighEvents.openArray}\n* {@link JsonHighEvents.closeArray}\n* {@link JsonHighEvents.openObject}\n* {@link JsonHighEvents.closeObject}\n\nAnd 2 event handlers with one argument which capture primitives:\n\n* {@link JsonHighEvents.key}\n* {@link JsonHighEvents.value}\n\nFinally, there is the argumentless {@link JsonHighEvents.end} event handler.\n\n### Extra events\n\nThese handlers take no arguments:\n\n* {@link JsonHighEvents.openKey}\n* {@link JsonHighEvents.openString}\n* {@link JsonHighEvents.openNumber}\n\n### Conditional events\n\nThese handlers take no arguments:\n\n* {@link JsonHighEvents.closeKey}\n* {@link JsonHighEvents.closeString}\n\nThese handlers receive the buffer that should be consumed:\n\n* {@link JsonHighEvents.bufferKey}\n* {@link JsonHighEvents.bufferString}\n* {@link JsonHighEvents.bufferNumber}","url":"././~/JsonHighEvents.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.openArray","file":".","doc":"An array started (`[`).","url":"././~/JsonHighEvents.openArray.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.closeArray","file":".","doc":"An array ended (`]`).","url":"././~/JsonHighEvents.closeArray.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.openObject","file":".","doc":"An object started (`{`).","url":"././~/JsonHighEvents.openObject.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.closeObject","file":".","doc":"An object ended (`}`).","url":"././~/JsonHighEvents.closeObject.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.key","file":".","doc":"An object's key ended. \n\nThe argument of the handler contains the key as a JavaScript string.\n\n`[conditional]` Called only in default (non-buffering) mode.\n\nThis event can be suppressed by setting {@link JsonHighOptions.maxStringBufferLength}.","url":"././~/JsonHighEvents.key.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.value","file":".","doc":"A primitive JSON value ended. \n\nThe argument of the event contains the corresponding JavaScript value: `true`, `false`, `null`, a number, or a string.\n\nThis event can be suppressed for strings if {@link JsonHighOptions.maxStringBufferLength} is set and for numbers if {@link JsonHighOptions.parseNumbers} is set to `false`.","url":"././~/JsonHighEvents.value.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.end","file":".","doc":"Called by the `end` method of the stream to confirm that the parsed JSON document is complete and valid.","url":"././~/JsonHighEvents.end.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.openKey","file":".","doc":"A key started (`\"`, in key position).","url":"././~/JsonHighEvents.openKey.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.openString","file":".","doc":"A string value started (`\"`).","url":"././~/JsonHighEvents.openString.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.openNumber","file":".","doc":"A number value started.","url":"././~/JsonHighEvents.openNumber.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.closeKey","file":".","doc":"A key ended (`\"`).\n\n`[conditional]` Called instead of the `key` event **when `maxStringBufferLength` is set**.","url":"././~/JsonHighEvents.closeKey.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.closeString","file":".","doc":"A string value ended (`\"`).\n\n`[conditional]` Called instead of the `value` event **when `maxStringBufferLength` is set**.\n","url":"././~/JsonHighEvents.closeString.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.bufferKey","file":".","doc":"Key buffer is ready for consumption.\n\n`[conditional]` Called instead of the `key` event **when `maxStringBufferLength` is set**.\n\nThe `buffer` then contains `maxStringBufferLength` code points or possibly less if we reached the end of a key.","url":"././~/JsonHighEvents.bufferKey.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.bufferString","file":".","doc":"String buffer is ready for consumption.\n\n`[conditional]` For string values, called instead of the `value` event **when `maxStringBufferLength` is set**.\n\nThe buffer then contains `maxStringBufferLength` code points or possibly less if we reached the end of a string value.","url":"././~/JsonHighEvents.bufferString.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.bufferNumber","file":".","doc":"Number buffer is ready for consumption.\n\n`[conditional]` For number values, called instead of the `value` event **when `parseNumbers` is set**.\n\nThe buffer then contains the unparsed number (represented as a string).","url":"././~/JsonHighEvents.bufferNumber.html","deprecated":false},{"kind":[{"char":"T","kind":"TypeAlias","title":"Type Alias"}],"name":"JsonHighHandler","file":".","doc":"TODO: doc","url":"././~/JsonHighHandler.html","deprecated":false},{"kind":[{"char":"T","kind":"TypeAlias","title":"Type Alias"}],"name":"JsonHighHandlers","file":".","doc":"TODO: this should be called something like JsonHighParameters or JsonHighArguments or sth.","url":"././~/JsonHighHandlers.html","deprecated":false},{"kind":[{"char":"T","kind":"TypeAlias","title":"Type Alias"}],"name":"JsonHighOptions","file":".","doc":"### Options","url":"././~/JsonHighOptions.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighOptions.maxStringBufferLength","file":".","doc":"See also: the similar {@link JsonHighOptions.bufferOnChunk} option. These options can be combined. Differences between them are marked with a strong font.\n\nThe maximum length of the key or string buffer, in code points.\n\nIf **set to a value in range `[1;Infinity)`**, the `key` event handler won't be called and, for strings, the `value` event handler won't be called. \n\nInstead, the `bufferKey` and `bufferString` handlers will be called **as soon as the given number of code points has been collected** or when the key/string is finished. \n\nIn the latter case **the number of code points may be smaller than `maxStringBufferLength`** and a `closeKey`/`closeString` handler will be called after the last `buffer*` event to signal the finish. \n\nThis is useful **when dealing with long strings** where it's desirable to stream them piece-by-piece, e.g. when working with LLMs (Large Language Models). \n\nSee [Add support for incomplete key and value strings #10](https://github.com/xtao-org/jsonhilo/issues/10) for more information.\n","url":"././~/JsonHighOptions.maxStringBufferLength.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighOptions.bufferOnChunk","file":".","doc":"See also: the similar {@link JsonHighOptions.maxStringBufferLength} option. These options can be combined. Differences between them are marked with a strong font.\n\nIf **set to `true`**, the `key` event handler won't be called and, for strings, the `value` event handler won't be called. \n\nInstead, the `bufferKey` and `bufferString` handlers will be called **as soon as the current chunk (passed in via the `.chunk()` method of the stream) has been processed** or when the key/string is finished. \n\nIn the latter case a `closeKey`/`closeString` handler will be called after the last `buffer*` event to signal the finish.\n\nThis is useful **when it's desirable to stream strings or keys piece-by-piece, in sync with the chunks being received, without needing to specify a fixed buffer length;** e.g. when working with LLMs (Large Language Models).\n\nSee [Add support for incomplete key and value strings #10](https://github.com/xtao-org/jsonhilo/issues/10) for more information.\n","url":"././~/JsonHighOptions.bufferOnChunk.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighOptions.maxNumberLength","file":".","doc":"Specifies the maximum length of a number value (in characters).\n","url":"././~/JsonHighOptions.maxNumberLength.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighOptions.parseNumbers","file":".","doc":"Controls whether numbers should be parsed (converted to JavaScript `number` type) which is the case by default. \n\nIf set to `false`, the `value` event handler won't be called for numbers. Instead, the `bufferNumber` handler will be called with the number as a string.\n\nThis is useful when dealing with big numbers which would lose precision when converted to the `number` type.\n","url":"././~/JsonHighOptions.parseNumbers.html","deprecated":false},{"kind":[{"char":"T","kind":"TypeAlias","title":"Type Alias"}],"name":"JsonHighStream","file":".","doc":"### Return value\n\n{@link JsonHigh} returns a stream object with the following methods:","url":"././~/JsonHighStream.html","deprecated":false},{"kind":[{"char":"m","kind":"Method","title":"Method"}],"name":"JsonHighStream.chunk","file":".","doc":"Accepts a JSON chunk to parse. \n\nReturns the stream object for chaining.","url":"././~/JsonHighStream.chunk.html","deprecated":false},{"kind":[{"char":"m","kind":"Method","title":"Method"}],"name":"JsonHighStream.end","file":".","doc":"Call it to signal to the stream that the current JSON document is finished.\n\nIf there is no error, it will then call the corresponding `end()` event handler, and return whatever that returned.","url":"././~/JsonHighStream.end.html","deprecated":false},{"kind":[{"char":"m","kind":"Method","title":"Method"}],"name":"JsonHighStream.depth","file":".","doc":"Reports current depth (level of nesting).\n\n**NOTE**: an `open*` or `close*` handler is always called *after* the depth is updated, meaning:\n\n* in `openObject`/`openArray` handlers the lowest depth reported will be 1 -- we entered a top-level object/array and are now at depth 1\n\n* in `closeObject`/`closeArray` handlers the lowest depth reported will be 0 -- we exited a top-level object/array and are now at depth 0 (top-level)","url":"././~/JsonHighStream.depth.html","deprecated":false}]}; + window.DENO_DOC_SEARCH_INDEX = {"kind":"search","nodes":[{"kind":[{"char":"T","kind":"TypeAlias","title":"Type Alias"},{"char":"v","kind":"Variable","title":"Variable"}],"name":"JsonHigh","file":".","doc":"This is the high-level interface over {@link JsonLow} optimized for convenience. It provides similar functionality and granularity to other streaming parsers, such as [Clarinet](https://github.com/dscape/clarinet) or [creationix/jsonparse](https://github.com/creationix/jsonparse).","url":"././~/JsonHigh.html","deprecated":false},{"kind":[{"char":"T","kind":"TypeAlias","title":"Type Alias"}],"name":"JsonHighEvents","file":".","doc":"### Basic events\n\nThe basic usage of `JsonHigh` involves 4 event handlers without arguments which indicate start and end of structures:\n* {@link JsonHighEvents.openArray}\n* {@link JsonHighEvents.closeArray}\n* {@link JsonHighEvents.openObject}\n* {@link JsonHighEvents.closeObject}\n\nAnd 2 event handlers with one argument which capture primitives:\n\n* {@link JsonHighEvents.key}\n* {@link JsonHighEvents.value}\n\nFinally, there is the argumentless {@link JsonHighEvents.end} event handler.\n\n### Extra events\n\nThese handlers take no arguments:\n\n* {@link JsonHighEvents.openKey}\n* {@link JsonHighEvents.openString}\n* {@link JsonHighEvents.openNumber}\n\n### Conditional events\n\nThese handlers take no arguments:\n\n* {@link JsonHighEvents.closeKey}\n* {@link JsonHighEvents.closeString}\n\nThese handlers receive the buffer that should be consumed:\n\n* {@link JsonHighEvents.bufferKey}\n* {@link JsonHighEvents.bufferString}\n* {@link JsonHighEvents.bufferNumber}","url":"././~/JsonHighEvents.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.openArray","file":".","doc":"An array started (`[`).","url":"././~/JsonHighEvents.openArray.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.closeArray","file":".","doc":"An array ended (`]`).","url":"././~/JsonHighEvents.closeArray.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.openObject","file":".","doc":"An object started (`{`).","url":"././~/JsonHighEvents.openObject.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.closeObject","file":".","doc":"An object ended (`}`).","url":"././~/JsonHighEvents.closeObject.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.key","file":".","doc":"An object's key ended. \n\nThe argument of the handler contains the key as a JavaScript string.\n\n`[conditional]` Called only in default (non-buffering) mode.\n\nThis event can be suppressed by setting {@link JsonHighOptions.maxStringBufferLength}.","url":"././~/JsonHighEvents.key.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.value","file":".","doc":"A primitive JSON value ended. \n\nThe argument of the event contains the corresponding JavaScript value: `true`, `false`, `null`, a number, or a string.\n\nThis event can be suppressed for strings if {@link JsonHighOptions.maxStringBufferLength} is set and for numbers if {@link JsonHighOptions.parseNumbers} is set to `false`.","url":"././~/JsonHighEvents.value.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.end","file":".","doc":"Called by the `end` method of the stream to confirm that the parsed JSON document is complete and valid.","url":"././~/JsonHighEvents.end.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.openKey","file":".","doc":"A key started (`\"`, in key position).","url":"././~/JsonHighEvents.openKey.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.openString","file":".","doc":"A string value started (`\"`).","url":"././~/JsonHighEvents.openString.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.openNumber","file":".","doc":"A number value started.","url":"././~/JsonHighEvents.openNumber.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.closeKey","file":".","doc":"A key ended (`\"`).\n\n`[conditional]` Called instead of the `key` event **when `maxStringBufferLength` is set**.","url":"././~/JsonHighEvents.closeKey.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.closeString","file":".","doc":"A string value ended (`\"`).\n\n`[conditional]` Called instead of the `value` event **when `maxStringBufferLength` is set**.\n","url":"././~/JsonHighEvents.closeString.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.bufferKey","file":".","doc":"Key buffer is ready for consumption.\n\n`[conditional]` Called instead of the `key` event **when `maxStringBufferLength` is set**.\n\nThe `buffer` then contains `maxStringBufferLength` code points or possibly less if we reached the end of a key.","url":"././~/JsonHighEvents.bufferKey.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.bufferString","file":".","doc":"String buffer is ready for consumption.\n\n`[conditional]` For string values, called instead of the `value` event **when `maxStringBufferLength` is set**.\n\nThe buffer then contains `maxStringBufferLength` code points or possibly less if we reached the end of a string value.","url":"././~/JsonHighEvents.bufferString.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighEvents.bufferNumber","file":".","doc":"Number buffer is ready for consumption.\n\n`[conditional]` For number values, called instead of the `value` event **when `parseNumbers` is set**.\n\nThe buffer then contains the unparsed number (represented as a string).","url":"././~/JsonHighEvents.bufferNumber.html","deprecated":false},{"kind":[{"char":"T","kind":"TypeAlias","title":"Type Alias"}],"name":"JsonHighHandler","file":".","doc":"TODO: doc","url":"././~/JsonHighHandler.html","deprecated":false},{"kind":[{"char":"T","kind":"TypeAlias","title":"Type Alias"}],"name":"JsonHighHandlers","file":".","doc":"TODO: this should be called something like JsonHighParameters or JsonHighArguments or sth.","url":"././~/JsonHighHandlers.html","deprecated":false},{"kind":[{"char":"T","kind":"TypeAlias","title":"Type Alias"}],"name":"JsonHighOptions","file":".","doc":"### Options","url":"././~/JsonHighOptions.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighOptions.maxStringBufferLength","file":".","doc":"See also: the similar {@link JsonHighOptions.bufferOnChunk} option. These options can be combined. Differences between them are marked with a strong font.\n\nThe maximum length of the key or string buffer, in code points.\n\nIf **set to a value in range `[1;Infinity)`**, the `key` event handler won't be called and, for strings, the `value` event handler won't be called. \n\nInstead, the `bufferKey` and `bufferString` handlers will be called **as soon as the given number of code points has been collected** or when the key/string is finished. \n\nIn the latter case **the number of code points may be smaller than `maxStringBufferLength`** and a `closeKey`/`closeString` handler will be called after the last `buffer*` event to signal the finish. \n\nThis is useful **when dealing with long strings** where it's desirable to stream them piece-by-piece, e.g. when working with LLMs (Large Language Models). \n\nSee [Add support for incomplete key and value strings #10](https://github.com/xtao-org/jsonhilo/issues/10) for more information.\n","url":"././~/JsonHighOptions.maxStringBufferLength.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighOptions.bufferOnChunk","file":".","doc":"See also: the similar {@link JsonHighOptions.maxStringBufferLength} option. These options can be combined. Differences between them are marked with a strong font.\n\nIf **set to `true`**, the `key` event handler won't be called and, for strings, the `value` event handler won't be called. \n\nInstead, the `bufferKey` and `bufferString` handlers will be called **as soon as the current chunk (passed in via the `.chunk()` method of the stream) has been processed** or when the key/string is finished. \n\nIn the latter case a `closeKey`/`closeString` handler will be called after the last `buffer*` event to signal the finish.\n\nThis is useful **when it's desirable to stream strings or keys piece-by-piece, in sync with the chunks being received, without needing to specify a fixed buffer length;** e.g. when working with LLMs (Large Language Models).\n\nSee [Add support for incomplete key and value strings #10](https://github.com/xtao-org/jsonhilo/issues/10) for more information.\n","url":"././~/JsonHighOptions.bufferOnChunk.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighOptions.maxNumberLength","file":".","doc":"Specifies the maximum length of a number value (in characters).\n","url":"././~/JsonHighOptions.maxNumberLength.html","deprecated":false},{"kind":[{"char":"p","kind":"Property","title":"Property"}],"name":"JsonHighOptions.parseNumbers","file":".","doc":"Controls whether numbers should be parsed (converted to JavaScript `number` type) which is the case by default. \n\nIf set to `false`, the `value` event handler won't be called for numbers. Instead, the `bufferNumber` handler will be called with the number as a string.\n\nThis is useful when dealing with big numbers which would lose precision when converted to the `number` type.\n","url":"././~/JsonHighOptions.parseNumbers.html","deprecated":false},{"kind":[{"char":"T","kind":"TypeAlias","title":"Type Alias"}],"name":"JsonHighStream","file":".","doc":"### Return value\n\n{@link JsonHigh} returns a stream object with the following methods:","url":"././~/JsonHighStream.html","deprecated":false},{"kind":[{"char":"m","kind":"Method","title":"Method"}],"name":"JsonHighStream.chunk","file":".","doc":"Accepts a JSON chunk to parse. \n\nReturns the stream object for chaining.","url":"././~/JsonHighStream.chunk.html","deprecated":false},{"kind":[{"char":"m","kind":"Method","title":"Method"}],"name":"JsonHighStream.end","file":".","doc":"Call it to signal to the stream that the current JSON document is finished.\n\nIf there is no error, it will then call the corresponding `end()` event handler, and return whatever that returned.","url":"././~/JsonHighStream.end.html","deprecated":false},{"kind":[{"char":"m","kind":"Method","title":"Method"}],"name":"JsonHighStream.depth","file":".","doc":"Reports current depth (level of nesting).\n\n**NOTE**: an `open*` or `close*` handler is always called *after* the depth is updated, meaning:\n\n* in `openObject`/`openArray` handlers the lowest depth reported will be 1 -- we entered a top-level object/array and are now at depth 1\n\n* in `closeObject`/`closeArray` handlers the lowest depth reported will be 0 -- we exited a top-level object/array and are now at depth 0 (top-level)","url":"././~/JsonHighStream.depth.html","deprecated":false}]}; })() \ No newline at end of file diff --git a/docs/styles.css b/docs/styles.css index 1ce7019..619c6ea 100644 --- a/docs/styles.css +++ b/docs/styles.css @@ -1 +1 @@ -.ddoc .container{width:100%}@media (min-width:640px){.ddoc .container{max-width:640px}}@media (min-width:768px){.ddoc .container{max-width:768px}}@media (min-width:1024px){.ddoc .container{max-width:1024px}}@media (min-width:1280px){.ddoc .container{max-width:1280px}}@media (min-width:1536px){.ddoc .container{max-width:1536px}}.ddoc .static{position:static}.ddoc .relative{position:relative}.ddoc .\!mb-0{margin-bottom:0!important}.ddoc .\!mt-2{margin-top:.5rem!important}.ddoc .mb-1{margin-bottom:.25rem}.ddoc .ml-4{margin-left:1rem}.ddoc .ml-indent{margin-left:2ch}.ddoc .mr-2{margin-right:.5rem}.ddoc .mt-3{margin-top:.75rem}.ddoc .inline{display:inline}.ddoc .\!flex{display:flex!important}.ddoc .flex{display:flex}.ddoc .inline-flex{display:inline-flex}.ddoc .table{display:table}.ddoc .contents{display:contents}.ddoc .hidden{display:none}.ddoc .h-4{height:1rem}.ddoc .h-5{height:1.25rem}.ddoc .min-w-0{min-width:0}.ddoc .max-w-\[75ch\]{max-width:75ch}.ddoc .flex-1{flex:1}.ddoc .flex-none{flex:none}.ddoc .rotate-90{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.ddoc .scroll-mt-16{scroll-margin-top:4rem}.ddoc .items-center{align-items:center}.ddoc .gap-0{gap:0}.ddoc .gap-0\.5{gap:.125rem}.ddoc .gap-1{gap:.25rem}.ddoc .space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*calc(1 - var(--tw-space-x-reverse)))}.ddoc .space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*calc(1 - var(--tw-space-x-reverse)))}.ddoc .space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.ddoc .space-y-7>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.75rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.75rem*var(--tw-space-y-reverse))}.ddoc .space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.ddoc .break-words{overflow-wrap:break-word}.ddoc .break-all{word-break:break-all}.ddoc .rounded{border-radius:.25rem}.ddoc .rounded-md{border-radius:.375rem}.ddoc .border{border-width:1px}.ddoc .border-b{border-bottom-width:1px}.ddoc .border-l-2{border-left-width:2px}.ddoc .border-Class\/50{border-color:#20b44b80}.ddoc .border-Enum\/50{border-color:#22abb080}.ddoc .border-Function\/50{border-color:#056cf080}.ddoc .border-Interface\/50{border-color:#d2a06480}.ddoc .border-Method\/50{border-color:#056cf080}.ddoc .border-Namespace\/50{border-color:#d2564680}.ddoc .border-Property\/50{border-color:#7e57c080}.ddoc .border-TypeAlias\/50{border-color:#a4478c80}.ddoc .border-Variable\/50{border-color:#7e57c080}.ddoc .border-abstract\/50{border-color:#0cafc680}.ddoc .border-deprecated\/50{border-color:#dc262680}.ddoc .border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.ddoc .border-new\/50{border-color:#7b61ff80}.ddoc .border-optional\/50{border-color:#0cafc680}.ddoc .border-other\/50{border-color:#57534e80}.ddoc .border-permissions\/50,.ddoc .border-private\/50{border-color:#0cafc680}.ddoc .border-protected\/50,.ddoc .border-readonly\/50{border-color:#7b61ff80}.ddoc .border-stone-300{--tw-border-opacity:1;border-color:rgb(214 211 209/var(--tw-border-opacity))}.ddoc .border-unstable\/50,.ddoc .border-writeonly\/50{border-color:#7b61ff80}.ddoc .bg-Class\/15{background-color:#20b44b26}.ddoc .bg-Class\/5{background-color:#20b44b0d}.ddoc .bg-Enum\/15{background-color:#22abb026}.ddoc .bg-Enum\/5{background-color:#22abb00d}.ddoc .bg-Function\/15{background-color:#056cf026}.ddoc .bg-Function\/5{background-color:#056cf00d}.ddoc .bg-Interface\/15{background-color:#d2a06426}.ddoc .bg-Interface\/5{background-color:#d2a0640d}.ddoc .bg-Method\/15{background-color:#056cf026}.ddoc .bg-Method\/5{background-color:#056cf00d}.ddoc .bg-Namespace\/15{background-color:#d2564626}.ddoc .bg-Namespace\/5{background-color:#d256460d}.ddoc .bg-Property\/15{background-color:#7e57c026}.ddoc .bg-Property\/5{background-color:#7e57c00d}.ddoc .bg-TypeAlias\/15{background-color:#a4478c26}.ddoc .bg-TypeAlias\/5{background-color:#a4478c0d}.ddoc .bg-Variable\/15{background-color:#7e57c026}.ddoc .bg-Variable\/5{background-color:#7e57c00d}.ddoc .bg-abstract\/15{background-color:#0cafc626}.ddoc .bg-abstract\/5{background-color:#0cafc60d}.ddoc .bg-deprecated\/15{background-color:#dc262626}.ddoc .bg-deprecated\/5{background-color:#dc26260d}.ddoc .bg-new\/15{background-color:#7b61ff26}.ddoc .bg-new\/5{background-color:#7b61ff0d}.ddoc .bg-optional\/15{background-color:#0cafc626}.ddoc .bg-optional\/5{background-color:#0cafc60d}.ddoc .bg-other\/15{background-color:#57534e26}.ddoc .bg-other\/5{background-color:#57534e0d}.ddoc .bg-permissions\/15{background-color:#0cafc626}.ddoc .bg-permissions\/5{background-color:#0cafc60d}.ddoc .bg-private\/15{background-color:#0cafc626}.ddoc .bg-private\/5{background-color:#0cafc60d}.ddoc .bg-protected\/15{background-color:#7b61ff26}.ddoc .bg-protected\/5{background-color:#7b61ff0d}.ddoc .bg-readonly\/15{background-color:#7b61ff26}.ddoc .bg-readonly\/5{background-color:#7b61ff0d}.ddoc .bg-stone-100{--tw-bg-opacity:1;background-color:rgb(245 245 244/var(--tw-bg-opacity))}.ddoc .bg-unstable\/15{background-color:#7b61ff26}.ddoc .bg-unstable\/5{background-color:#7b61ff0d}.ddoc .bg-writeonly\/15{background-color:#7b61ff26}.ddoc .bg-writeonly\/5{background-color:#7b61ff0d}.ddoc .px-2{padding-left:.5rem;padding-right:.5rem}.ddoc .px-3{padding-left:.75rem;padding-right:.75rem}.ddoc .px-4{padding-left:1rem;padding-right:1rem}.ddoc .py-1{padding-top:.25rem;padding-bottom:.25rem}.ddoc .py-2{padding-top:.5rem;padding-bottom:.5rem}.ddoc .pb-5{padding-bottom:1.25rem}.ddoc .pt-4{padding-top:1rem}.ddoc .text-2xl{font-size:1.5rem;line-height:2rem}.ddoc .text-base{font-size:1rem;line-height:1.5rem}.ddoc .text-sm{font-size:.875rem;line-height:1.25rem}.ddoc .font-bold{font-weight:700}.ddoc .font-medium{font-weight:500}.ddoc .font-normal{font-weight:400}.ddoc .italic{font-style:italic}.ddoc .leading-none{line-height:1}.ddoc .text-Class{--tw-text-opacity:1;color:rgb(32 180 75/var(--tw-text-opacity))}.ddoc .text-Enum{--tw-text-opacity:1;color:rgb(34 171 176/var(--tw-text-opacity))}.ddoc .text-Function{--tw-text-opacity:1;color:rgb(5 108 240/var(--tw-text-opacity))}.ddoc .text-Interface{--tw-text-opacity:1;color:rgb(210 160 100/var(--tw-text-opacity))}.ddoc .text-Method{--tw-text-opacity:1;color:rgb(5 108 240/var(--tw-text-opacity))}.ddoc .text-Namespace{--tw-text-opacity:1;color:rgb(210 86 70/var(--tw-text-opacity))}.ddoc .text-Property{--tw-text-opacity:1;color:rgb(126 87 192/var(--tw-text-opacity))}.ddoc .text-TypeAlias{--tw-text-opacity:1;color:rgb(164 71 140/var(--tw-text-opacity))}.ddoc .text-Variable{--tw-text-opacity:1;color:rgb(126 87 192/var(--tw-text-opacity))}.ddoc .text-\[\#0F172A\]{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity))}.ddoc .text-abstract{--tw-text-opacity:1;color:rgb(12 175 198/var(--tw-text-opacity))}.ddoc .text-deprecated{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity))}.ddoc .text-new{--tw-text-opacity:1;color:rgb(123 97 255/var(--tw-text-opacity))}.ddoc .text-optional{--tw-text-opacity:1;color:rgb(12 175 198/var(--tw-text-opacity))}.ddoc .text-other{--tw-text-opacity:1;color:rgb(87 83 78/var(--tw-text-opacity))}.ddoc .text-permissions,.ddoc .text-private{--tw-text-opacity:1;color:rgb(12 175 198/var(--tw-text-opacity))}.ddoc .text-protected,.ddoc .text-readonly{--tw-text-opacity:1;color:rgb(123 97 255/var(--tw-text-opacity))}.ddoc .text-stone-500{--tw-text-opacity:1;color:rgb(120 113 108/var(--tw-text-opacity))}.ddoc .text-unstable,.ddoc .text-writeonly{--tw-text-opacity:1;color:rgb(123 97 255/var(--tw-text-opacity))}.ddoc .filter{filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.ddoc summary::-webkit-details-marker{display:none}.ddoc a{word-wrap:break-word}.ddoc{--ddoc-selection-border-width:2px;--ddoc-selection-border-color-default:#d6d3d1;--ddoc-selection-selected-border-color:#2564eb;--ddoc-selection-selected-bg:#056cf00c;--ddoc-selection-padding:9px 15px}.ddoc .link{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter,-webkit-backdrop-filter;transition-duration:75ms;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ddoc .link:hover{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity))}.ddoc .anchor{float:left;--tw-text-opacity:1;color:rgb(87 83 78/var(--tw-text-opacity));margin-left:-24px;padding:.25rem;line-height:1;display:none;top:0;bottom:0}.ddoc .anchorable{scroll-margin-top:4rem;position:relative}.ddoc .anchorable:hover .anchor{display:block}.ddoc .deprecated>div:first-child{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity));align-items:center;gap:.25rem;padding-top:.25rem;padding-bottom:.25rem;display:flex}.ddoc .deprecated>div:first-child>span{font-weight:600;line-height:1.5rem}.ddoc .deprecated>div:nth-child(2){--tw-border-opacity:1;border-left-width:4px;border-color:rgb(252 165 165/var(--tw-border-opacity));margin-left:.25rem;padding-left:.5rem}.ddoc .symbolSubtitle>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.125rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.ddoc .symbolSubtitle{font-size:.875rem;line-height:1rem}.ddoc .symbolSubtitle .type{--tw-text-opacity:1;color:rgb(168 162 158/var(--tw-text-opacity));font-style:italic}.ddoc .docEntry{margin-bottom:1rem}.ddoc .docEntry>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.ddoc .docEntry .docEntryHeader{justify-content:space-between;align-items:flex-start;display:flex}@media (min-width:768px){.ddoc .docEntry .docEntryHeader{font-size:1rem;line-height:1.5rem}}.ddoc .docEntry .docEntryHeader>div{overflow-wrap:break-word}.ddoc .section{max-width:75ch;margin-bottom:.5rem;scroll-margin-top:4rem}.ddoc .section>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.ddoc .section>div:first-child>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.ddoc .section>div:first-child>h2{margin-bottom:0;padding-top:.25rem;padding-bottom:.25rem;font-size:1.25rem;font-weight:600;line-height:1.5rem}.ddoc .section>div:first-child>div{max-width:75ch;font-size:1rem;line-height:1.5rem}.ddoc .namespaceSection{max-width:75ch;margin-top:1rem}.ddoc .namespaceSection>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.ddoc .namespaceSection .namespaceItem{-moz-column-gap:.625rem;column-gap:.625rem;min-height:0;display:flex}@media (min-width:768px){.ddoc .namespaceSection .namespaceItem{min-height:4rem}}@media (min-width:1024px){.ddoc .namespaceSection .namespaceItem{padding-right:1rem}}.ddoc .namespaceSection .namespaceItem .docNodeKindIcon{flex-direction:column;justify-content:flex-start;width:auto}.ddoc .namespaceSection .namespaceItem .docNodeKindIcon>*+*{margin-top:-.125rem;margin-left:0}.ddoc .namespaceSection .namespaceItem[aria-label=deprecated]{opacity:.6}.ddoc .namespaceSection .namespaceItem[aria-label=deprecated] .namespaceItemContent>a{--tw-text-opacity:1;color:rgb(120 113 108/var(--tw-text-opacity));text-decoration-line:line-through;text-decoration-color:#78716cb3;text-decoration-thickness:2px}.ddoc .namespaceSection .namespaceItem .namespaceItemContent>a,.ddoc .namespaceSection .namespaceItem .namespaceItemContent .namespaceItemContentSubItems a{text-decoration-line:underline;text-decoration-color:#d6d3d1}:is(.ddoc .namespaceSection .namespaceItem .namespaceItemContent>a,.ddoc .namespaceSection .namespaceItem .namespaceItemContent .namespaceItemContentSubItems a):hover{text-decoration-line:none}.ddoc .namespaceSection .namespaceItem .namespaceItemContent>a{word-break:break-all;font-weight:500;line-height:1.25;display:block}.ddoc .namespaceSection .namespaceItem .namespaceItemContent .namespaceItemContentDoc{--tw-text-opacity:1;color:rgb(87 83 78/var(--tw-text-opacity));margin-top:.5rem;font-size:.875rem;line-height:1.25rem}.ddoc .namespaceSection .namespaceItem .namespaceItemContent .namespaceItemContentSubItems{flex-wrap:wrap;row-gap:.25rem;margin-top:.375rem;font-size:.875rem;line-height:1.25rem;display:flex}.ddoc .namespaceSection .namespaceItem .namespaceItemContent .namespaceItemContentSubItems>li:not(:last-child):after{content:"|";-webkit-user-select:none;user-select:none;--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity));margin-left:.5rem;margin-right:.5rem}.ddoc .symbolGroup>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(3rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem*var(--tw-space-y-reverse))}.ddoc .symbolGroup article>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem*var(--tw-space-y-reverse))}.ddoc .symbolGroup article>div:first-child{justify-content:space-between;align-items:flex-start;display:flex}.ddoc .symbolGroup article>div:first-child>div:first-child>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.ddoc .symbolGroup article>div:first-child>div:first-child{font-weight:500}.ddoc .docNodeKindIcon{flex-shrink:0;justify-content:flex-end;display:inline-flex}.ddoc .docNodeKindIcon div{-webkit-user-select:none;user-select:none;text-align:center;vertical-align:middle;border-radius:9999px;flex-shrink:0;width:1.25rem;height:1.25rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.75rem;font-weight:500;line-height:1.25rem}.ddoc .docNodeKindIcon>*+*{margin-left:-.375rem}.ddoc .example-header{margin-bottom:.75rem;font-size:1.125rem;font-weight:700;line-height:1.75rem}.ddoc .toc h3{margin-bottom:.75rem;font-size:1.125rem;font-weight:700;line-height:1.75rem}.ddoc .toc>div>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem*var(--tw-space-y-reverse))}.ddoc .toc .topSymbols>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.ddoc .toc .topSymbols{font-size:.875rem;line-height:1.25rem}.ddoc .toc .topSymbols ul{list-style-type:none}.ddoc .toc .topSymbols ul>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.625rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem*var(--tw-space-y-reverse))}.ddoc .toc .topSymbols ul li{display:block}.ddoc .toc .topSymbols ul li a{align-items:center;gap:.5rem;display:flex}.ddoc .toc .topSymbols ul li a>span{text-overflow:ellipsis;white-space:nowrap;border-radius:.25rem;width:100%;margin-top:-.125rem;margin-bottom:-.125rem;margin-left:-.25rem;padding-top:.125rem;padding-bottom:.125rem;padding-left:.25rem;display:block;overflow:hidden}.ddoc .toc .topSymbols>a:hover{text-decoration-line:underline}.ddoc .toc .documentNavigation>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.ddoc .toc .documentNavigation{font-size:.875rem;line-height:1.25rem}@media not all and (min-width:640px){.ddoc .toc .documentNavigation{display:none}}.ddoc .toc .documentNavigation>ul{flex-grow:1;display:block}.ddoc .toc .documentNavigation>ul>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.ddoc .toc .documentNavigation>ul{overflow-y:auto}.ddoc .toc .documentNavigation>ul>li{margin-top:.125rem;margin-left:.75rem;margin-right:.75rem}.ddoc .toc .documentNavigation>ul li:has(>ul){margin-top:0!important}.ddoc .toc .documentNavigation>ul li:has(>a){padding-bottom:0!important}.ddoc .toc .documentNavigation>ul ul{margin-left:.875rem}.ddoc .toc .documentNavigation>ul ul>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.ddoc .toc .documentNavigation>ul ul{--tw-text-opacity:1;color:rgb(134 135 137/var(--tw-text-opacity));font-size:.8rem;line-height:1}.ddoc .toc .documentNavigation>ul ul li{margin-top:.25rem!important}.ddoc .toc .documentNavigation>ul ul li a{padding:.25rem}.ddoc .toc .documentNavigation>ul ul li a:hover{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.ddoc .toc .documentNavigation a{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.ddoc .toc .documentNavigation a:hover{text-decoration-line:underline}.ddoc .usages nav{flex-direction:row;align-items:center;gap:.5rem;margin-bottom:.75rem;font-weight:600;display:flex}.ddoc .usages nav details>summary{cursor:pointer;-webkit-user-select:none;user-select:none;--tw-border-opacity:1;border-width:1px;border-color:rgb(209 213 219/var(--tw-border-opacity));border-radius:.25rem;gap:.25rem;padding:.5rem .75rem;display:flex}@media (min-width:768px){.ddoc .usages nav details>div{position:relative}}.ddoc .usages nav details>div>div{z-index:30;--tw-border-opacity:1;border-width:1px;border-color:rgb(209 213 219/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));margin-top:.375rem;padding:.5rem;display:block;position:absolute}@media not all and (min-width:768px){.ddoc .usages nav details>div>div{border-left-width:0;border-right-width:0;left:0;right:0}}@media (min-width:768px){.ddoc .usages nav details>div>div{border-radius:.25rem;width:12rem}}.ddoc .usages nav details>div>div label{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:.125rem;align-items:center;gap:.5rem;padding:.25rem .5rem;line-height:1.5;display:flex}.ddoc .usages nav details>div>div label:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.ddoc .usageContent>h3{margin-bottom:.75rem;font-size:1.125rem;font-weight:700;line-height:1.75rem}.ddoc .usageContent>div{--tw-text-opacity:1;color:rgb(104 104 104/var(--tw-text-opacity));font-size:.75rem;line-height:1rem}.ddoc .usageContent>div p{margin:0}.ddoc .usageContent pre.highlight{--tw-border-opacity:1;border-width:1px;border-color:rgb(209 213 219/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}@media not all and (min-width:768px){.ddoc .usageContent pre.highlight{border-left-width:0;border-right-width:0}}.ddoc .usageContent pre.highlight{margin-top:.25rem!important}.ddoc .usageContent pre.highlight>code:first-child{scrollbar-width:thin;padding:.5rem .75rem}.ddoc .usageContent pre.highlight .context_button{border-width:0;display:none;top:.25rem;right:.5rem}.ddoc .usageContent pre.highlight .context_button svg rect{fill:#fff}.ddoc .usageContent pre.highlight:hover .context_button{opacity:1;display:block}.ddoc #categoryPanel{padding-top:.75rem;font-size:.875rem;line-height:1.25rem}.ddoc #categoryPanel ul>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.ddoc #categoryPanel ul{overflow-y:auto}.ddoc #categoryPanel ul li{margin-left:.25rem;margin-right:.75rem}.ddoc #categoryPanel ul li a{text-overflow:ellipsis;white-space:nowrap;padding:.375rem .875rem;display:block;overflow:hidden}.ddoc #categoryPanel ul li a:hover{text-decoration-line:underline}.ddoc .contextLink{color:#0e6590cc;text-underline-offset:.15em;text-decoration-line:underline;text-decoration-color:#0e659080;text-decoration-thickness:1.5px}.ddoc .contextLink:hover{--tw-text-opacity:1;color:rgb(14 101 144/var(--tw-text-opacity));text-decoration-color:#0e6590}.ddoc .contextLink{-webkit-text-decoration-skip:ink;-webkit-text-decoration-skip-ink:auto;text-decoration-skip-ink:auto}.ddoc .breadcrumbs{word-break:break-all;flex-wrap:wrap;align-items:center;gap:.25rem;display:inline-flex}.ddoc .breadcrumbs>li:first-child{font-size:1.5rem;font-weight:700;line-height:1}.ddoc .breadcrumbs li{font-size:1.125rem;line-height:.9em;display:inline}@media (min-width:1024px){.ddoc .breadcrumbs li{font-size:1.25rem;line-height:1.75rem}}.ddoc .context_button{z-index:10;cursor:pointer;background-color:inherit;border-width:1px;border-radius:.25rem;padding:.375rem;line-height:0}.ddoc .context_button:hover{--tw-bg-opacity:1;background-color:rgb(231 229 228/var(--tw-bg-opacity))}.ddoc .see{list-style-type:disc;list-style-position:inside}.ddoc .see>li *{display:inline-block}.ddoc .\*\:h-4>*{height:1rem}.ddoc .\*\:h-5>*{height:1.25rem}.ddoc .\*\:w-auto>*{width:auto}.ddoc .\*\:flex-none>*{flex:none}.ddoc .hover\:bg-Class\/15:hover{background-color:#20b44b26}.ddoc .hover\:bg-Class\/5:hover{background-color:#20b44b0d}.ddoc .hover\:bg-Enum\/15:hover{background-color:#22abb026}.ddoc .hover\:bg-Enum\/5:hover{background-color:#22abb00d}.ddoc .hover\:bg-Function\/15:hover{background-color:#056cf026}.ddoc .hover\:bg-Function\/5:hover{background-color:#056cf00d}.ddoc .hover\:bg-Interface\/15:hover{background-color:#d2a06426}.ddoc .hover\:bg-Interface\/5:hover{background-color:#d2a0640d}.ddoc .hover\:bg-Method\/15:hover{background-color:#056cf026}.ddoc .hover\:bg-Method\/5:hover{background-color:#056cf00d}.ddoc .hover\:bg-Namespace\/15:hover{background-color:#d2564626}.ddoc .hover\:bg-Namespace\/5:hover{background-color:#d256460d}.ddoc .hover\:bg-Property\/15:hover{background-color:#7e57c026}.ddoc .hover\:bg-Property\/5:hover{background-color:#7e57c00d}.ddoc .hover\:bg-TypeAlias\/15:hover{background-color:#a4478c26}.ddoc .hover\:bg-TypeAlias\/5:hover{background-color:#a4478c0d}.ddoc .hover\:bg-Variable\/15:hover{background-color:#7e57c026}.ddoc .hover\:bg-Variable\/5:hover{background-color:#7e57c00d}.ddoc .hover\:bg-abstract\/15:hover{background-color:#0cafc626}.ddoc .hover\:bg-abstract\/5:hover{background-color:#0cafc60d}.ddoc .hover\:bg-deprecated\/15:hover{background-color:#dc262626}.ddoc .hover\:bg-deprecated\/5:hover{background-color:#dc26260d}.ddoc .hover\:bg-new\/15:hover{background-color:#7b61ff26}.ddoc .hover\:bg-new\/5:hover{background-color:#7b61ff0d}.ddoc .hover\:bg-optional\/15:hover{background-color:#0cafc626}.ddoc .hover\:bg-optional\/5:hover{background-color:#0cafc60d}.ddoc .hover\:bg-other\/15:hover{background-color:#57534e26}.ddoc .hover\:bg-other\/5:hover{background-color:#57534e0d}.ddoc .hover\:bg-permissions\/15:hover{background-color:#0cafc626}.ddoc .hover\:bg-permissions\/5:hover{background-color:#0cafc60d}.ddoc .hover\:bg-private\/15:hover{background-color:#0cafc626}.ddoc .hover\:bg-private\/5:hover{background-color:#0cafc60d}.ddoc .hover\:bg-protected\/15:hover{background-color:#7b61ff26}.ddoc .hover\:bg-protected\/5:hover{background-color:#7b61ff0d}.ddoc .hover\:bg-readonly\/15:hover{background-color:#7b61ff26}.ddoc .hover\:bg-readonly\/5:hover{background-color:#7b61ff0d}.ddoc .hover\:bg-unstable\/15:hover{background-color:#7b61ff26}.ddoc .hover\:bg-unstable\/5:hover{background-color:#7b61ff0d}.ddoc .hover\:bg-writeonly\/15:hover{background-color:#7b61ff26}.ddoc .hover\:bg-writeonly\/5:hover{background-color:#7b61ff0d} \ No newline at end of file +.ddoc .container{width:100%}@media (min-width:640px){.ddoc .container{max-width:640px}}@media (min-width:768px){.ddoc .container{max-width:768px}}@media (min-width:1024px){.ddoc .container{max-width:1024px}}@media (min-width:1280px){.ddoc .container{max-width:1280px}}@media (min-width:1536px){.ddoc .container{max-width:1536px}}.ddoc .static{position:static}.ddoc .relative{position:relative}.ddoc .\!mb-0{margin-bottom:0!important}.ddoc .\!mt-2{margin-top:.5rem!important}.ddoc .mb-1{margin-bottom:.25rem}.ddoc .ml-4{margin-left:1rem}.ddoc .ml-indent{margin-left:2ch}.ddoc .mr-2{margin-right:.5rem}.ddoc .mt-3{margin-top:.75rem}.ddoc .inline{display:inline}.ddoc .\!flex{display:flex!important}.ddoc .flex{display:flex}.ddoc .inline-flex{display:inline-flex}.ddoc .table{display:table}.ddoc .contents{display:contents}.ddoc .hidden{display:none}.ddoc .h-4{height:1rem}.ddoc .h-5{height:1.25rem}.ddoc .max-w-\[75ch\]{max-width:75ch}.ddoc .flex-1{flex:1}.ddoc .flex-none{flex:none}.ddoc .rotate-90{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.ddoc .scroll-mt-16{scroll-margin-top:4rem}.ddoc .items-center{align-items:center}.ddoc .gap-0{gap:0}.ddoc .gap-0\.5{gap:.125rem}.ddoc .gap-1{gap:.25rem}.ddoc .space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.25rem*var(--tw-space-x-reverse));margin-left:calc(.25rem*calc(1 - var(--tw-space-x-reverse)))}.ddoc .space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse:0;margin-right:calc(.5rem*var(--tw-space-x-reverse));margin-left:calc(.5rem*calc(1 - var(--tw-space-x-reverse)))}.ddoc .space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.ddoc .space-y-7>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.75rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.75rem*var(--tw-space-y-reverse))}.ddoc .space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.ddoc .break-words{overflow-wrap:break-word}.ddoc .break-all{word-break:break-all}.ddoc .rounded{border-radius:.25rem}.ddoc .rounded-md{border-radius:.375rem}.ddoc .border{border-width:1px}.ddoc .border-b{border-bottom-width:1px}.ddoc .border-l-2{border-left-width:2px}.ddoc .border-Class\/50{border-color:#20b44b80}.ddoc .border-Enum\/50{border-color:#22abb080}.ddoc .border-Function\/50{border-color:#056cf080}.ddoc .border-Interface\/50{border-color:#d2a06480}.ddoc .border-Method\/50{border-color:#056cf080}.ddoc .border-Namespace\/50{border-color:#d2564680}.ddoc .border-Property\/50{border-color:#7e57c080}.ddoc .border-TypeAlias\/50{border-color:#a4478c80}.ddoc .border-Variable\/50{border-color:#7e57c080}.ddoc .border-abstract\/50{border-color:#0cafc680}.ddoc .border-deprecated\/50{border-color:#dc262680}.ddoc .border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.ddoc .border-new\/50{border-color:#7b61ff80}.ddoc .border-optional\/50{border-color:#0cafc680}.ddoc .border-other\/50{border-color:#57534e80}.ddoc .border-permissions\/50,.ddoc .border-private\/50{border-color:#0cafc680}.ddoc .border-protected\/50,.ddoc .border-readonly\/50{border-color:#7b61ff80}.ddoc .border-stone-300{--tw-border-opacity:1;border-color:rgb(214 211 209/var(--tw-border-opacity))}.ddoc .border-unstable\/50,.ddoc .border-writeonly\/50{border-color:#7b61ff80}.ddoc .bg-Class\/15{background-color:#20b44b26}.ddoc .bg-Class\/5{background-color:#20b44b0d}.ddoc .bg-Enum\/15{background-color:#22abb026}.ddoc .bg-Enum\/5{background-color:#22abb00d}.ddoc .bg-Function\/15{background-color:#056cf026}.ddoc .bg-Function\/5{background-color:#056cf00d}.ddoc .bg-Interface\/15{background-color:#d2a06426}.ddoc .bg-Interface\/5{background-color:#d2a0640d}.ddoc .bg-Method\/15{background-color:#056cf026}.ddoc .bg-Method\/5{background-color:#056cf00d}.ddoc .bg-Namespace\/15{background-color:#d2564626}.ddoc .bg-Namespace\/5{background-color:#d256460d}.ddoc .bg-Property\/15{background-color:#7e57c026}.ddoc .bg-Property\/5{background-color:#7e57c00d}.ddoc .bg-TypeAlias\/15{background-color:#a4478c26}.ddoc .bg-TypeAlias\/5{background-color:#a4478c0d}.ddoc .bg-Variable\/15{background-color:#7e57c026}.ddoc .bg-Variable\/5{background-color:#7e57c00d}.ddoc .bg-abstract\/15{background-color:#0cafc626}.ddoc .bg-abstract\/5{background-color:#0cafc60d}.ddoc .bg-deprecated\/15{background-color:#dc262626}.ddoc .bg-deprecated\/5{background-color:#dc26260d}.ddoc .bg-new\/15{background-color:#7b61ff26}.ddoc .bg-new\/5{background-color:#7b61ff0d}.ddoc .bg-optional\/15{background-color:#0cafc626}.ddoc .bg-optional\/5{background-color:#0cafc60d}.ddoc .bg-other\/15{background-color:#57534e26}.ddoc .bg-other\/5{background-color:#57534e0d}.ddoc .bg-permissions\/15{background-color:#0cafc626}.ddoc .bg-permissions\/5{background-color:#0cafc60d}.ddoc .bg-private\/15{background-color:#0cafc626}.ddoc .bg-private\/5{background-color:#0cafc60d}.ddoc .bg-protected\/15{background-color:#7b61ff26}.ddoc .bg-protected\/5{background-color:#7b61ff0d}.ddoc .bg-readonly\/15{background-color:#7b61ff26}.ddoc .bg-readonly\/5{background-color:#7b61ff0d}.ddoc .bg-stone-100{--tw-bg-opacity:1;background-color:rgb(245 245 244/var(--tw-bg-opacity))}.ddoc .bg-unstable\/15{background-color:#7b61ff26}.ddoc .bg-unstable\/5{background-color:#7b61ff0d}.ddoc .bg-writeonly\/15{background-color:#7b61ff26}.ddoc .bg-writeonly\/5{background-color:#7b61ff0d}.ddoc .px-2{padding-left:.5rem;padding-right:.5rem}.ddoc .px-3{padding-left:.75rem;padding-right:.75rem}.ddoc .px-4{padding-left:1rem;padding-right:1rem}.ddoc .py-1{padding-top:.25rem;padding-bottom:.25rem}.ddoc .py-2{padding-top:.5rem;padding-bottom:.5rem}.ddoc .pb-5{padding-bottom:1.25rem}.ddoc .pt-4{padding-top:1rem}.ddoc .text-2xl{font-size:1.5rem;line-height:2rem}.ddoc .text-base{font-size:1rem;line-height:1.5rem}.ddoc .text-sm{font-size:.875rem;line-height:1.25rem}.ddoc .font-bold{font-weight:700}.ddoc .font-medium{font-weight:500}.ddoc .font-normal{font-weight:400}.ddoc .italic{font-style:italic}.ddoc .leading-none{line-height:1}.ddoc .text-Class{--tw-text-opacity:1;color:rgb(32 180 75/var(--tw-text-opacity))}.ddoc .text-Enum{--tw-text-opacity:1;color:rgb(34 171 176/var(--tw-text-opacity))}.ddoc .text-Function{--tw-text-opacity:1;color:rgb(5 108 240/var(--tw-text-opacity))}.ddoc .text-Interface{--tw-text-opacity:1;color:rgb(210 160 100/var(--tw-text-opacity))}.ddoc .text-Method{--tw-text-opacity:1;color:rgb(5 108 240/var(--tw-text-opacity))}.ddoc .text-Namespace{--tw-text-opacity:1;color:rgb(210 86 70/var(--tw-text-opacity))}.ddoc .text-Property{--tw-text-opacity:1;color:rgb(126 87 192/var(--tw-text-opacity))}.ddoc .text-TypeAlias{--tw-text-opacity:1;color:rgb(164 71 140/var(--tw-text-opacity))}.ddoc .text-Variable{--tw-text-opacity:1;color:rgb(126 87 192/var(--tw-text-opacity))}.ddoc .text-\[\#0F172A\]{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity))}.ddoc .text-abstract{--tw-text-opacity:1;color:rgb(12 175 198/var(--tw-text-opacity))}.ddoc .text-deprecated{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity))}.ddoc .text-new{--tw-text-opacity:1;color:rgb(123 97 255/var(--tw-text-opacity))}.ddoc .text-optional{--tw-text-opacity:1;color:rgb(12 175 198/var(--tw-text-opacity))}.ddoc .text-other{--tw-text-opacity:1;color:rgb(87 83 78/var(--tw-text-opacity))}.ddoc .text-permissions,.ddoc .text-private{--tw-text-opacity:1;color:rgb(12 175 198/var(--tw-text-opacity))}.ddoc .text-protected,.ddoc .text-readonly{--tw-text-opacity:1;color:rgb(123 97 255/var(--tw-text-opacity))}.ddoc .text-stone-500{--tw-text-opacity:1;color:rgb(120 113 108/var(--tw-text-opacity))}.ddoc .text-unstable,.ddoc .text-writeonly{--tw-text-opacity:1;color:rgb(123 97 255/var(--tw-text-opacity))}.ddoc .filter{filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.ddoc summary::-webkit-details-marker{display:none}.ddoc a{word-wrap:break-word}.ddoc{--ddoc-selection-border-width:2px;--ddoc-selection-border-color-default:#d6d3d1;--ddoc-selection-selected-border-color:#2564eb;--ddoc-selection-selected-bg:#056cf00c;--ddoc-selection-padding:9px 15px}.ddoc .link{--tw-text-opacity:1;color:rgb(37 99 235/var(--tw-text-opacity));transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter,-webkit-backdrop-filter;transition-duration:75ms;transition-timing-function:cubic-bezier(.4,0,.2,1)}.ddoc .link:hover{--tw-text-opacity:1;color:rgb(96 165 250/var(--tw-text-opacity))}.ddoc .anchor{float:left;--tw-text-opacity:1;color:rgb(87 83 78/var(--tw-text-opacity));margin-left:-24px;padding:.25rem;line-height:1;display:none;top:0;bottom:0}.ddoc .anchorable{scroll-margin-top:4rem;position:relative}.ddoc .anchorable:hover .anchor{display:block}.ddoc .deprecated>div:first-child{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity));align-items:center;gap:.25rem;padding-top:.25rem;padding-bottom:.25rem;display:flex}.ddoc .deprecated>div:first-child>span{font-weight:600;line-height:1.5rem}.ddoc .deprecated>div:nth-child(2){--tw-border-opacity:1;border-left-width:4px;border-color:rgb(252 165 165/var(--tw-border-opacity));margin-left:.25rem;padding-left:.5rem}.ddoc .symbolSubtitle>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.125rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem*var(--tw-space-y-reverse))}.ddoc .symbolSubtitle{font-size:.875rem;line-height:1rem}.ddoc .symbolSubtitle .type{--tw-text-opacity:1;color:rgb(168 162 158/var(--tw-text-opacity));font-style:italic}.ddoc .docEntry{margin-bottom:1rem}.ddoc .docEntry>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.ddoc .docEntry .docEntryHeader{justify-content:space-between;align-items:flex-start;display:flex}@media (min-width:768px){.ddoc .docEntry .docEntryHeader{font-size:1rem;line-height:1.5rem}}.ddoc .docEntry .docEntryHeader>div{overflow-wrap:break-word}.ddoc .section{max-width:75ch;margin-bottom:.5rem;scroll-margin-top:4rem}.ddoc .section>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.ddoc .section>div:first-child>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.ddoc .section>div:first-child>h2{margin-bottom:0;padding-top:.25rem;padding-bottom:.25rem;font-size:1.25rem;font-weight:600;line-height:1.5rem}.ddoc .section>div:first-child>div{max-width:75ch;font-size:1rem;line-height:1.5rem}.ddoc .namespaceSection{max-width:75ch;margin-top:1rem}.ddoc .namespaceSection>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.ddoc .namespaceSection .namespaceItem{-moz-column-gap:.625rem;column-gap:.625rem;min-height:0;display:flex}@media (min-width:768px){.ddoc .namespaceSection .namespaceItem{min-height:4rem}}@media (min-width:1024px){.ddoc .namespaceSection .namespaceItem{padding-right:1rem}}.ddoc .namespaceSection .namespaceItem .docNodeKindIcon{flex-direction:column;justify-content:flex-start;width:auto}.ddoc .namespaceSection .namespaceItem .docNodeKindIcon>*+*{margin-top:-.125rem;margin-left:0}.ddoc .namespaceSection .namespaceItem[aria-label=deprecated]{opacity:.6}.ddoc .namespaceSection .namespaceItem[aria-label=deprecated] .namespaceItemContent>a{--tw-text-opacity:1;color:rgb(120 113 108/var(--tw-text-opacity));text-decoration-line:line-through;text-decoration-color:#78716cb3;text-decoration-thickness:2px}.ddoc .namespaceSection .namespaceItem .namespaceItemContent>a,.ddoc .namespaceSection .namespaceItem .namespaceItemContent .namespaceItemContentSubItems a{text-decoration-line:underline;text-decoration-color:#d6d3d1}:is(.ddoc .namespaceSection .namespaceItem .namespaceItemContent>a,.ddoc .namespaceSection .namespaceItem .namespaceItemContent .namespaceItemContentSubItems a):hover{text-decoration-line:none}.ddoc .namespaceSection .namespaceItem .namespaceItemContent>a{word-break:break-all;font-weight:500;line-height:1.25;display:block}.ddoc .namespaceSection .namespaceItem .namespaceItemContent .namespaceItemContentDoc{--tw-text-opacity:1;color:rgb(87 83 78/var(--tw-text-opacity));margin-top:.5rem;font-size:.875rem;line-height:1.25rem}.ddoc .namespaceSection .namespaceItem .namespaceItemContent .namespaceItemContentSubItems{flex-wrap:wrap;row-gap:.25rem;margin-top:.375rem;font-size:.875rem;line-height:1.25rem;display:flex}.ddoc .namespaceSection .namespaceItem .namespaceItemContent .namespaceItemContentSubItems>li:not(:last-child):after{content:"|";-webkit-user-select:none;user-select:none;--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity));margin-left:.5rem;margin-right:.5rem}.ddoc .symbolGroup>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(3rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem*var(--tw-space-y-reverse))}.ddoc .symbolGroup article>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem*var(--tw-space-y-reverse))}.ddoc .symbolGroup article>div:first-child{justify-content:space-between;align-items:flex-start;display:flex}.ddoc .symbolGroup article>div:first-child>div:first-child>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.ddoc .symbolGroup article>div:first-child>div:first-child{font-weight:500}.ddoc .docNodeKindIcon{flex-shrink:0;justify-content:flex-end;display:inline-flex}.ddoc .docNodeKindIcon div{-webkit-user-select:none;user-select:none;text-align:center;vertical-align:middle;border-radius:9999px;flex-shrink:0;width:1.25rem;height:1.25rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:.75rem;font-weight:500;line-height:1.25rem}.ddoc .docNodeKindIcon>*+*{margin-left:-.375rem}.ddoc .example-header{margin-bottom:.75rem;font-size:1.125rem;font-weight:700;line-height:1.75rem}.ddoc .toc h3{margin-bottom:.75rem;font-size:1.125rem;font-weight:700;line-height:1.75rem}.ddoc .toc>div>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem*var(--tw-space-y-reverse))}.ddoc .toc .topSymbols>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.ddoc .toc .topSymbols{font-size:.875rem;line-height:1.25rem}.ddoc .toc .topSymbols ul{list-style-type:none}.ddoc .toc .topSymbols ul>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.625rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem*var(--tw-space-y-reverse))}.ddoc .toc .topSymbols ul li{display:block}.ddoc .toc .topSymbols ul li a{align-items:center;gap:.5rem;display:flex}.ddoc .toc .topSymbols ul li a>span{text-overflow:ellipsis;white-space:nowrap;border-radius:.25rem;width:100%;margin-top:-.125rem;margin-bottom:-.125rem;margin-left:-.25rem;padding-top:.125rem;padding-bottom:.125rem;padding-left:.25rem;display:block;overflow:hidden}.ddoc .toc .topSymbols>a:hover{text-decoration-line:underline}.ddoc .toc .documentNavigation>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.ddoc .toc .documentNavigation{font-size:.875rem;line-height:1.25rem}@media not all and (min-width:640px){.ddoc .toc .documentNavigation{display:none}}.ddoc .toc .documentNavigation>ul{flex-grow:1;display:block}.ddoc .toc .documentNavigation>ul>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.ddoc .toc .documentNavigation>ul{overflow-y:auto}.ddoc .toc .documentNavigation>ul>li{margin-top:.125rem;margin-left:.75rem;margin-right:.75rem}.ddoc .toc .documentNavigation>ul li:has(>ul){margin-top:0!important}.ddoc .toc .documentNavigation>ul li:has(>a){padding-bottom:0!important}.ddoc .toc .documentNavigation>ul ul{margin-left:.875rem}.ddoc .toc .documentNavigation>ul ul>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.ddoc .toc .documentNavigation>ul ul{--tw-text-opacity:1;color:rgb(134 135 137/var(--tw-text-opacity));font-size:.8rem;line-height:1}.ddoc .toc .documentNavigation>ul ul li{margin-top:.25rem!important}.ddoc .toc .documentNavigation>ul ul li a{padding:.25rem}.ddoc .toc .documentNavigation>ul ul li a:hover{--tw-text-opacity:1;color:rgb(0 0 0/var(--tw-text-opacity))}.ddoc .toc .documentNavigation a{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.ddoc .toc .documentNavigation a:hover{text-decoration-line:underline}.ddoc .usages nav{flex-direction:row;align-items:center;gap:.5rem;margin-bottom:.75rem;font-weight:600;display:flex}.ddoc .usages nav details>summary{cursor:pointer;-webkit-user-select:none;user-select:none;--tw-border-opacity:1;border-width:1px;border-color:rgb(209 213 219/var(--tw-border-opacity));border-radius:.25rem;gap:.25rem;padding:.5rem .75rem;display:flex}@media (min-width:768px){.ddoc .usages nav details>div{position:relative}}.ddoc .usages nav details>div>div{z-index:30;--tw-border-opacity:1;border-width:1px;border-color:rgb(209 213 219/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity));margin-top:.375rem;padding:.5rem;display:block;position:absolute}@media not all and (min-width:768px){.ddoc .usages nav details>div>div{border-left-width:0;border-right-width:0;left:0;right:0}}@media (min-width:768px){.ddoc .usages nav details>div>div{border-radius:.25rem;width:12rem}}.ddoc .usages nav details>div>div label{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:.125rem;align-items:center;gap:.5rem;padding:.25rem .5rem;line-height:1.5;display:flex}.ddoc .usages nav details>div>div label:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251/var(--tw-bg-opacity))}.ddoc .usageContent>h3{margin-bottom:.75rem;font-size:1.125rem;font-weight:700;line-height:1.75rem}.ddoc .usageContent>div{--tw-text-opacity:1;color:rgb(104 104 104/var(--tw-text-opacity));font-size:.75rem;line-height:1rem}.ddoc .usageContent>div p{margin:0}.ddoc .usageContent pre.highlight{--tw-border-opacity:1;border-width:1px;border-color:rgb(209 213 219/var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}@media not all and (min-width:768px){.ddoc .usageContent pre.highlight{border-left-width:0;border-right-width:0}}.ddoc .usageContent pre.highlight{margin-top:.25rem!important}.ddoc .usageContent pre.highlight>code:first-child{scrollbar-width:thin;padding:.5rem .75rem}.ddoc .usageContent pre.highlight .context_button{border-width:0;display:none;top:.25rem;right:.5rem}.ddoc .usageContent pre.highlight .context_button svg rect{fill:#fff}.ddoc .usageContent pre.highlight:hover .context_button{opacity:1;display:block}.ddoc #categoryPanel{padding-top:.75rem;font-size:.875rem;line-height:1.25rem}.ddoc #categoryPanel ul>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.5rem*calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem*var(--tw-space-y-reverse))}.ddoc #categoryPanel ul{overflow-y:auto}.ddoc #categoryPanel ul li{margin-left:.25rem;margin-right:.75rem}.ddoc #categoryPanel ul li a{text-overflow:ellipsis;white-space:nowrap;padding:.375rem .875rem;display:block;overflow:hidden}.ddoc #categoryPanel ul li a:hover{text-decoration-line:underline}.ddoc .contextLink{color:#0e6590cc;text-underline-offset:.15em;text-decoration-line:underline;text-decoration-color:#0e659080;text-decoration-thickness:1.5px}.ddoc .contextLink:hover{--tw-text-opacity:1;color:rgb(14 101 144/var(--tw-text-opacity));text-decoration-color:#0e6590}.ddoc .contextLink{-webkit-text-decoration-skip:ink;-webkit-text-decoration-skip-ink:auto;text-decoration-skip-ink:auto}.ddoc .breadcrumbs{word-break:break-all;flex-wrap:wrap;align-items:center;gap:.25rem;display:inline-flex}.ddoc .breadcrumbs>li:first-child{font-size:1.5rem;font-weight:700;line-height:1}.ddoc .breadcrumbs li{font-size:1.125rem;line-height:.9em;display:inline}@media (min-width:1024px){.ddoc .breadcrumbs li{font-size:1.25rem;line-height:1.75rem}}.ddoc .context_button{z-index:10;cursor:pointer;background-color:inherit;border-width:1px;border-radius:.25rem;padding:.375rem;line-height:0}.ddoc .context_button:hover{--tw-bg-opacity:1;background-color:rgb(231 229 228/var(--tw-bg-opacity))}.ddoc .see{list-style-type:disc;list-style-position:inside}.ddoc .see>li *{display:inline-block}.ddoc .\*\:h-4>*{height:1rem}.ddoc .\*\:h-5>*{height:1.25rem}.ddoc .\*\:w-auto>*{width:auto}.ddoc .\*\:flex-none>*{flex:none}.ddoc .hover\:bg-Class\/15:hover{background-color:#20b44b26}.ddoc .hover\:bg-Class\/5:hover{background-color:#20b44b0d}.ddoc .hover\:bg-Enum\/15:hover{background-color:#22abb026}.ddoc .hover\:bg-Enum\/5:hover{background-color:#22abb00d}.ddoc .hover\:bg-Function\/15:hover{background-color:#056cf026}.ddoc .hover\:bg-Function\/5:hover{background-color:#056cf00d}.ddoc .hover\:bg-Interface\/15:hover{background-color:#d2a06426}.ddoc .hover\:bg-Interface\/5:hover{background-color:#d2a0640d}.ddoc .hover\:bg-Method\/15:hover{background-color:#056cf026}.ddoc .hover\:bg-Method\/5:hover{background-color:#056cf00d}.ddoc .hover\:bg-Namespace\/15:hover{background-color:#d2564626}.ddoc .hover\:bg-Namespace\/5:hover{background-color:#d256460d}.ddoc .hover\:bg-Property\/15:hover{background-color:#7e57c026}.ddoc .hover\:bg-Property\/5:hover{background-color:#7e57c00d}.ddoc .hover\:bg-TypeAlias\/15:hover{background-color:#a4478c26}.ddoc .hover\:bg-TypeAlias\/5:hover{background-color:#a4478c0d}.ddoc .hover\:bg-Variable\/15:hover{background-color:#7e57c026}.ddoc .hover\:bg-Variable\/5:hover{background-color:#7e57c00d}.ddoc .hover\:bg-abstract\/15:hover{background-color:#0cafc626}.ddoc .hover\:bg-abstract\/5:hover{background-color:#0cafc60d}.ddoc .hover\:bg-deprecated\/15:hover{background-color:#dc262626}.ddoc .hover\:bg-deprecated\/5:hover{background-color:#dc26260d}.ddoc .hover\:bg-new\/15:hover{background-color:#7b61ff26}.ddoc .hover\:bg-new\/5:hover{background-color:#7b61ff0d}.ddoc .hover\:bg-optional\/15:hover{background-color:#0cafc626}.ddoc .hover\:bg-optional\/5:hover{background-color:#0cafc60d}.ddoc .hover\:bg-other\/15:hover{background-color:#57534e26}.ddoc .hover\:bg-other\/5:hover{background-color:#57534e0d}.ddoc .hover\:bg-permissions\/15:hover{background-color:#0cafc626}.ddoc .hover\:bg-permissions\/5:hover{background-color:#0cafc60d}.ddoc .hover\:bg-private\/15:hover{background-color:#0cafc626}.ddoc .hover\:bg-private\/5:hover{background-color:#0cafc60d}.ddoc .hover\:bg-protected\/15:hover{background-color:#7b61ff26}.ddoc .hover\:bg-protected\/5:hover{background-color:#7b61ff0d}.ddoc .hover\:bg-readonly\/15:hover{background-color:#7b61ff26}.ddoc .hover\:bg-readonly\/5:hover{background-color:#7b61ff0d}.ddoc .hover\:bg-unstable\/15:hover{background-color:#7b61ff26}.ddoc .hover\:bg-unstable\/5:hover{background-color:#7b61ff0d}.ddoc .hover\:bg-writeonly\/15:hover{background-color:#7b61ff26}.ddoc .hover\:bg-writeonly\/5:hover{background-color:#7b61ff0d} \ No newline at end of file diff --git a/docs/~/JsonHigh.html b/docs/~/JsonHigh.html index bb29e2b..f7f5b98 100644 --- a/docs/~/JsonHigh.html +++ b/docs/~/JsonHigh.html @@ -79,9 +79,8 @@

This is the high-level interface over JsonLow optimized for convenience. It provides similar functionality and granularity to other streaming parsers, such as Clarinet or creationix/jsonparse.

-
-
-

+

-
<
Feedback,
End,
>
(next:
JsonHighHandlers<Feedback, End>) => JsonHighStream<Feedback, End> +
<
Feedback,
End,
>
(next: JsonHighHandlers<Feedback, End>) => JsonHighStream<End>
-
-

+

Key buffer is ready for consumption.

[conditional] Called instead of the key event when maxStringBufferLength is set.

The buffer then contains maxStringBufferLength code points or possibly less if we reached the end of a key.

-
-
-

+

Number buffer is ready for consumption.

[conditional] For number values, called instead of the value event when parseNumbers is set.

The buffer then contains the unparsed number (represented as a string).

-
-
-

+

String buffer is ready for consumption.

[conditional] For string values, called instead of the value event when maxStringBufferLength is set.

The buffer then contains maxStringBufferLength code points or possibly less if we reached the end of a string value.

-
-
-

An array ended (]).

-
-
-

-
-

An object ended (}).

-
-
-

-
-

Called by the end method of the stream to confirm that the parsed JSON document is complete and valid.

-
-
-
-
-

-
-

An array started ([).

-
-
-

A key started (", in key position).

-
-
-

A number value started.

-
-
-

An object started ({).

-
-
-

A string value started (").

-
-
-

+

-
-

TODO: doc

-
-

-
-
-

TODO: this should be called something like JsonHighParameters or JsonHighArguments or sth.

-
-

-
-
-

-
-

-
-

Specifies the maximum length of a number value (in characters).

-
-
-

-
-

+