From 003a1595777dca3b5a72195727b9cd80fb33ca4a Mon Sep 17 00:00:00 2001 From: b3hr4d Date: Fri, 16 Feb 2024 14:27:26 +0300 Subject: [PATCH] Remove unnecessary files and update CSS styles --- .github/workflows/deploy-docs.yml | 28 + docs/.nojekyll | 1 - docs/assets/highlight.css | 120 -- docs/assets/main.js | 59 - docs/assets/my-theme.css | 159 -- docs/assets/navigation.js | 1 - docs/assets/search.js | 1 - docs/assets/style.css | 1414 ----------------- .../_ic_reactor_store.ActorManager.html | 56 - .../_ic_reactor_store.AgentManager.html | 54 - .../classes/_ic_reactor_store.AuthClient.html | 96 -- .../_ic_reactor_store.CandidManager.html | 46 - docs/classes/_ic_reactor_store.HttpAgent.html | 70 - docs/classes/_ic_reactor_store.Principal.html | 72 - .../_ic_reactor_visitor.VisitDetails.html | 73 - .../_ic_reactor_visitor.VisitFields.html | 67 - .../_ic_reactor_visitor.VisitRandomArgs.html | 69 - ...c_reactor_visitor.VisitRandomResponse.html | 69 - .../_ic_reactor_visitor.VisitTransform.html | 64 - ...c_reactor_visitor.VisitTransformTable.html | 64 - .../_ic_reactor_store.createActorManager.html | 46 - .../_ic_reactor_store.createAgentManager.html | 56 - .../_ic_reactor_store.createReActorStore.html | 47 - ...store.createStoreWithOptionalDevtools.html | 40 - .../_ic_reactor_store.generateActorHash.html | 40 - .../_ic_reactor_store.generateHash.html | 40 - ..._ic_reactor_store.generateRequestHash.html | 40 - .../_ic_reactor_store.jsonToString.html | 40 - .../_ic_reactor_store.stringToHash.html | 40 - ...reactor_visitor.convertStringToNumber.html | 40 - ...ic_reactor_visitor.extractAndSortArgs.html | 40 - .../_ic_reactor_visitor.isImage.html | 40 - .../_ic_reactor_visitor.isQuery.html | 40 - docs/functions/_ic_reactor_visitor.isUrl.html | 40 - .../_ic_reactor_visitor.validateError.html | 40 - ...c_reactor_visitor.validateNumberError.html | 40 - docs/hierarchy.html | 40 - docs/ic-reactor.png | Bin 125268 -> 0 bytes docs/index.html | 111 -- ..._ic_reactor_store.ActorManagerOptions.html | 46 - .../_ic_reactor_store.ActorMethod.html | 42 - .../_ic_reactor_store.ActorMethodState.html | 40 - .../_ic_reactor_store.AgentAuthState.html | 47 - ..._ic_reactor_store.AgentManagerOptions.html | 66 - ...ic_reactor_store.CreateReActorOptions.html | 71 - .../_ic_reactor_store.DefaultActorType.html | 40 - .../_ic_reactor_store.HttpAgentOptions.html | 63 - .../_ic_reactor_store.Identity.html | 49 - .../_ic_reactor_store.UpdateAgentOptions.html | 64 - .../_ic_reactor_visitor.DefaultField.html | 47 - .../_ic_reactor_visitor.DynamicDataArgs.html | 42 - ...actor_visitor.ExtractedServiceDetails.html | 43 - ...eactor_visitor.ExtractedServiceFields.html | 42 - .../_ic_reactor_visitor.FieldDetails.html | 43 - ...reactor_visitor.FieldDetailsWithChild.html | 47 - .../_ic_reactor_visitor.InputDetails.html | 44 - .../_ic_reactor_visitor.InputField.html | 48 - .../_ic_reactor_visitor.MethodFields.html | 45 - .../_ic_reactor_visitor.NumberField.html | 50 - .../_ic_reactor_visitor.OptionalFields.html | 48 - .../_ic_reactor_visitor.PrincipalField.html | 48 - .../_ic_reactor_visitor.RecordFields.html | 48 - .../_ic_reactor_visitor.RecursiveFields.html | 49 - .../_ic_reactor_visitor.ResultArrayData.html | 42 - .../_ic_reactor_visitor.ResultRecordData.html | 42 - .../_ic_reactor_visitor.TupleFields.html | 48 - .../_ic_reactor_visitor.VariantFields.html | 49 - .../_ic_reactor_visitor.VectorFields.html | 48 - docs/modules/_ic_reactor_core.html | 69 - docs/modules/_ic_reactor_react.html | 76 - docs/modules/_ic_reactor_store.html | 121 -- docs/modules/_ic_reactor_svelte.html | 72 - docs/modules/_ic_reactor_visitor.html | 88 - .../_ic_reactor_store.ActorMethodStates.html | 40 - docs/types/_ic_reactor_store.ActorState.html | 40 - docs/types/_ic_reactor_store.ActorStore.html | 40 - .../_ic_reactor_store.ActorSubclass.html | 41 - .../_ic_reactor_store.AgentAuthStore.html | 40 - .../_ic_reactor_store.CallActorMethod.html | 40 - docs/types/_ic_reactor_store.CanisterId.html | 40 - ..._reactor_store.ExtractActorMethodArgs.html | 40 - ...or_store.ExtractActorMethodReturnType.html | 40 - .../_ic_reactor_store.ExtractVisitorType.html | 40 - .../_ic_reactor_store.ExtractedService.html | 40 - .../types/_ic_reactor_store.FunctionName.html | 40 - .../types/_ic_reactor_store.FunctionType.html | 40 - .../_ic_reactor_visitor.AllFieldTypes.html | 40 - .../_ic_reactor_visitor.AllNumberTypes.html | 40 - .../_ic_reactor_visitor.DynamicFieldType.html | 40 - ...actor_visitor.DynamicFieldTypeByClass.html | 40 - ..._reactor_visitor.ExtraInputFormFields.html | 40 - ..._reactor_visitor.FieldTypeFromIDLType.html | 40 - .../_ic_reactor_visitor.FunctionCategory.html | 40 - ...c_reactor_visitor.MethodDefaultValues.html | 40 - .../_ic_reactor_visitor.MethodDetails.html | 40 - .../_ic_reactor_visitor.MethodResult.html | 40 - ..._ic_reactor_visitor.MethodResultValue.html | 40 - .../_ic_reactor_visitor.OtherDetails.html | 40 - ..._reactor_visitor.ServiceDefaultValues.html | 40 - .../_ic_reactor_visitor.ServiceDetails.html | 40 - .../_ic_reactor_visitor.ServiceFields.html | 40 - ..._ic_reactor_store.IC_HOST_NETWORK_URI.html | 40 - ..._reactor_store.LOCAL_HOST_NETWORK_URI.html | 40 - 103 files changed, 28 insertions(+), 6403 deletions(-) create mode 100644 .github/workflows/deploy-docs.yml delete mode 100644 docs/.nojekyll delete mode 100644 docs/assets/highlight.css delete mode 100644 docs/assets/main.js delete mode 100644 docs/assets/my-theme.css delete mode 100644 docs/assets/navigation.js delete mode 100644 docs/assets/search.js delete mode 100644 docs/assets/style.css delete mode 100644 docs/classes/_ic_reactor_store.ActorManager.html delete mode 100644 docs/classes/_ic_reactor_store.AgentManager.html delete mode 100644 docs/classes/_ic_reactor_store.AuthClient.html delete mode 100644 docs/classes/_ic_reactor_store.CandidManager.html delete mode 100644 docs/classes/_ic_reactor_store.HttpAgent.html delete mode 100644 docs/classes/_ic_reactor_store.Principal.html delete mode 100644 docs/classes/_ic_reactor_visitor.VisitDetails.html delete mode 100644 docs/classes/_ic_reactor_visitor.VisitFields.html delete mode 100644 docs/classes/_ic_reactor_visitor.VisitRandomArgs.html delete mode 100644 docs/classes/_ic_reactor_visitor.VisitRandomResponse.html delete mode 100644 docs/classes/_ic_reactor_visitor.VisitTransform.html delete mode 100644 docs/classes/_ic_reactor_visitor.VisitTransformTable.html delete mode 100644 docs/functions/_ic_reactor_store.createActorManager.html delete mode 100644 docs/functions/_ic_reactor_store.createAgentManager.html delete mode 100644 docs/functions/_ic_reactor_store.createReActorStore.html delete mode 100644 docs/functions/_ic_reactor_store.createStoreWithOptionalDevtools.html delete mode 100644 docs/functions/_ic_reactor_store.generateActorHash.html delete mode 100644 docs/functions/_ic_reactor_store.generateHash.html delete mode 100644 docs/functions/_ic_reactor_store.generateRequestHash.html delete mode 100644 docs/functions/_ic_reactor_store.jsonToString.html delete mode 100644 docs/functions/_ic_reactor_store.stringToHash.html delete mode 100644 docs/functions/_ic_reactor_visitor.convertStringToNumber.html delete mode 100644 docs/functions/_ic_reactor_visitor.extractAndSortArgs.html delete mode 100644 docs/functions/_ic_reactor_visitor.isImage.html delete mode 100644 docs/functions/_ic_reactor_visitor.isQuery.html delete mode 100644 docs/functions/_ic_reactor_visitor.isUrl.html delete mode 100644 docs/functions/_ic_reactor_visitor.validateError.html delete mode 100644 docs/functions/_ic_reactor_visitor.validateNumberError.html delete mode 100644 docs/hierarchy.html delete mode 100644 docs/ic-reactor.png delete mode 100644 docs/index.html delete mode 100644 docs/interfaces/_ic_reactor_store.ActorManagerOptions.html delete mode 100644 docs/interfaces/_ic_reactor_store.ActorMethod.html delete mode 100644 docs/interfaces/_ic_reactor_store.ActorMethodState.html delete mode 100644 docs/interfaces/_ic_reactor_store.AgentAuthState.html delete mode 100644 docs/interfaces/_ic_reactor_store.AgentManagerOptions.html delete mode 100644 docs/interfaces/_ic_reactor_store.CreateReActorOptions.html delete mode 100644 docs/interfaces/_ic_reactor_store.DefaultActorType.html delete mode 100644 docs/interfaces/_ic_reactor_store.HttpAgentOptions.html delete mode 100644 docs/interfaces/_ic_reactor_store.Identity.html delete mode 100644 docs/interfaces/_ic_reactor_store.UpdateAgentOptions.html delete mode 100644 docs/interfaces/_ic_reactor_visitor.DefaultField.html delete mode 100644 docs/interfaces/_ic_reactor_visitor.DynamicDataArgs.html delete mode 100644 docs/interfaces/_ic_reactor_visitor.ExtractedServiceDetails.html delete mode 100644 docs/interfaces/_ic_reactor_visitor.ExtractedServiceFields.html delete mode 100644 docs/interfaces/_ic_reactor_visitor.FieldDetails.html delete mode 100644 docs/interfaces/_ic_reactor_visitor.FieldDetailsWithChild.html delete mode 100644 docs/interfaces/_ic_reactor_visitor.InputDetails.html delete mode 100644 docs/interfaces/_ic_reactor_visitor.InputField.html delete mode 100644 docs/interfaces/_ic_reactor_visitor.MethodFields.html delete mode 100644 docs/interfaces/_ic_reactor_visitor.NumberField.html delete mode 100644 docs/interfaces/_ic_reactor_visitor.OptionalFields.html delete mode 100644 docs/interfaces/_ic_reactor_visitor.PrincipalField.html delete mode 100644 docs/interfaces/_ic_reactor_visitor.RecordFields.html delete mode 100644 docs/interfaces/_ic_reactor_visitor.RecursiveFields.html delete mode 100644 docs/interfaces/_ic_reactor_visitor.ResultArrayData.html delete mode 100644 docs/interfaces/_ic_reactor_visitor.ResultRecordData.html delete mode 100644 docs/interfaces/_ic_reactor_visitor.TupleFields.html delete mode 100644 docs/interfaces/_ic_reactor_visitor.VariantFields.html delete mode 100644 docs/interfaces/_ic_reactor_visitor.VectorFields.html delete mode 100644 docs/modules/_ic_reactor_core.html delete mode 100644 docs/modules/_ic_reactor_react.html delete mode 100644 docs/modules/_ic_reactor_store.html delete mode 100644 docs/modules/_ic_reactor_svelte.html delete mode 100644 docs/modules/_ic_reactor_visitor.html delete mode 100644 docs/types/_ic_reactor_store.ActorMethodStates.html delete mode 100644 docs/types/_ic_reactor_store.ActorState.html delete mode 100644 docs/types/_ic_reactor_store.ActorStore.html delete mode 100644 docs/types/_ic_reactor_store.ActorSubclass.html delete mode 100644 docs/types/_ic_reactor_store.AgentAuthStore.html delete mode 100644 docs/types/_ic_reactor_store.CallActorMethod.html delete mode 100644 docs/types/_ic_reactor_store.CanisterId.html delete mode 100644 docs/types/_ic_reactor_store.ExtractActorMethodArgs.html delete mode 100644 docs/types/_ic_reactor_store.ExtractActorMethodReturnType.html delete mode 100644 docs/types/_ic_reactor_store.ExtractVisitorType.html delete mode 100644 docs/types/_ic_reactor_store.ExtractedService.html delete mode 100644 docs/types/_ic_reactor_store.FunctionName.html delete mode 100644 docs/types/_ic_reactor_store.FunctionType.html delete mode 100644 docs/types/_ic_reactor_visitor.AllFieldTypes.html delete mode 100644 docs/types/_ic_reactor_visitor.AllNumberTypes.html delete mode 100644 docs/types/_ic_reactor_visitor.DynamicFieldType.html delete mode 100644 docs/types/_ic_reactor_visitor.DynamicFieldTypeByClass.html delete mode 100644 docs/types/_ic_reactor_visitor.ExtraInputFormFields.html delete mode 100644 docs/types/_ic_reactor_visitor.FieldTypeFromIDLType.html delete mode 100644 docs/types/_ic_reactor_visitor.FunctionCategory.html delete mode 100644 docs/types/_ic_reactor_visitor.MethodDefaultValues.html delete mode 100644 docs/types/_ic_reactor_visitor.MethodDetails.html delete mode 100644 docs/types/_ic_reactor_visitor.MethodResult.html delete mode 100644 docs/types/_ic_reactor_visitor.MethodResultValue.html delete mode 100644 docs/types/_ic_reactor_visitor.OtherDetails.html delete mode 100644 docs/types/_ic_reactor_visitor.ServiceDefaultValues.html delete mode 100644 docs/types/_ic_reactor_visitor.ServiceDetails.html delete mode 100644 docs/types/_ic_reactor_visitor.ServiceFields.html delete mode 100644 docs/variables/_ic_reactor_store.IC_HOST_NETWORK_URI.html delete mode 100644 docs/variables/_ic_reactor_store.LOCAL_HOST_NETWORK_URI.html diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml new file mode 100644 index 0000000000..5b3831c1f2 --- /dev/null +++ b/.github/workflows/deploy-docs.yml @@ -0,0 +1,28 @@ +name: Deploy Docs to GitHub Pages + +on: + push: + branches: + - main + +jobs: + build-and-deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Setup Node.js + uses: actions/setup-node@v2 + with: + node-version: "20" + + - name: Install dependencies + run: npm install + + - name: Generate Documentation + run: npx typedoc + + - name: Deploy to GitHub Pages + uses: JamesIves/github-pages-deploy-action@4.1.4 + with: + branch: gh-pages + folder: docs diff --git a/docs/.nojekyll b/docs/.nojekyll deleted file mode 100644 index e2ac6616ad..0000000000 --- a/docs/.nojekyll +++ /dev/null @@ -1 +0,0 @@ -TypeDoc added this file to prevent GitHub Pages from using Jekyll. You can turn off this behavior by setting the `githubPages` option to false. \ No newline at end of file diff --git a/docs/assets/highlight.css b/docs/assets/highlight.css deleted file mode 100644 index 3483a40c66..0000000000 --- a/docs/assets/highlight.css +++ /dev/null @@ -1,120 +0,0 @@ -:root { - --light-hl-0: #795E26; - --dark-hl-0: #DCDCAA; - --light-hl-1: #000000; - --dark-hl-1: #D4D4D4; - --light-hl-2: #A31515; - --dark-hl-2: #CE9178; - --light-hl-3: #AF00DB; - --dark-hl-3: #C586C0; - --light-hl-4: #001080; - --dark-hl-4: #9CDCFE; - --light-hl-5: #0000FF; - --dark-hl-5: #569CD6; - --light-hl-6: #0070C1; - --dark-hl-6: #4FC1FF; - --light-hl-7: #098658; - --dark-hl-7: #B5CEA8; - --light-hl-8: #008000; - --dark-hl-8: #6A9955; - --light-hl-9: #267F99; - --dark-hl-9: #4EC9B0; - --light-hl-10: #800000; - --dark-hl-10: #808080; - --light-hl-11: #800000; - --dark-hl-11: #569CD6; - --light-hl-12: #E50000; - --dark-hl-12: #9CDCFE; - --light-hl-13: #000000FF; - --dark-hl-13: #D4D4D4; - --light-code-background: #FFFFFF; - --dark-code-background: #1E1E1E; -} - -@media (prefers-color-scheme: light) { :root { - --hl-0: var(--light-hl-0); - --hl-1: var(--light-hl-1); - --hl-2: var(--light-hl-2); - --hl-3: var(--light-hl-3); - --hl-4: var(--light-hl-4); - --hl-5: var(--light-hl-5); - --hl-6: var(--light-hl-6); - --hl-7: var(--light-hl-7); - --hl-8: var(--light-hl-8); - --hl-9: var(--light-hl-9); - --hl-10: var(--light-hl-10); - --hl-11: var(--light-hl-11); - --hl-12: var(--light-hl-12); - --hl-13: var(--light-hl-13); - --code-background: var(--light-code-background); -} } - -@media (prefers-color-scheme: dark) { :root { - --hl-0: var(--dark-hl-0); - --hl-1: var(--dark-hl-1); - --hl-2: var(--dark-hl-2); - --hl-3: var(--dark-hl-3); - --hl-4: var(--dark-hl-4); - --hl-5: var(--dark-hl-5); - --hl-6: var(--dark-hl-6); - --hl-7: var(--dark-hl-7); - --hl-8: var(--dark-hl-8); - --hl-9: var(--dark-hl-9); - --hl-10: var(--dark-hl-10); - --hl-11: var(--dark-hl-11); - --hl-12: var(--dark-hl-12); - --hl-13: var(--dark-hl-13); - --code-background: var(--dark-code-background); -} } - -:root[data-theme='light'] { - --hl-0: var(--light-hl-0); - --hl-1: var(--light-hl-1); - --hl-2: var(--light-hl-2); - --hl-3: var(--light-hl-3); - --hl-4: var(--light-hl-4); - --hl-5: var(--light-hl-5); - --hl-6: var(--light-hl-6); - --hl-7: var(--light-hl-7); - --hl-8: var(--light-hl-8); - --hl-9: var(--light-hl-9); - --hl-10: var(--light-hl-10); - --hl-11: var(--light-hl-11); - --hl-12: var(--light-hl-12); - --hl-13: var(--light-hl-13); - --code-background: var(--light-code-background); -} - -:root[data-theme='dark'] { - --hl-0: var(--dark-hl-0); - --hl-1: var(--dark-hl-1); - --hl-2: var(--dark-hl-2); - --hl-3: var(--dark-hl-3); - --hl-4: var(--dark-hl-4); - --hl-5: var(--dark-hl-5); - --hl-6: var(--dark-hl-6); - --hl-7: var(--dark-hl-7); - --hl-8: var(--dark-hl-8); - --hl-9: var(--dark-hl-9); - --hl-10: var(--dark-hl-10); - --hl-11: var(--dark-hl-11); - --hl-12: var(--dark-hl-12); - --hl-13: var(--dark-hl-13); - --code-background: var(--dark-code-background); -} - -.hl-0 { color: var(--hl-0); } -.hl-1 { color: var(--hl-1); } -.hl-2 { color: var(--hl-2); } -.hl-3 { color: var(--hl-3); } -.hl-4 { color: var(--hl-4); } -.hl-5 { color: var(--hl-5); } -.hl-6 { color: var(--hl-6); } -.hl-7 { color: var(--hl-7); } -.hl-8 { color: var(--hl-8); } -.hl-9 { color: var(--hl-9); } -.hl-10 { color: var(--hl-10); } -.hl-11 { color: var(--hl-11); } -.hl-12 { color: var(--hl-12); } -.hl-13 { color: var(--hl-13); } -pre, code { background: var(--code-background); } diff --git a/docs/assets/main.js b/docs/assets/main.js deleted file mode 100644 index 3092fea0ed..0000000000 --- a/docs/assets/main.js +++ /dev/null @@ -1,59 +0,0 @@ -"use strict"; -"use strict";(()=>{var Ie=Object.create;var ne=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Oe=Object.getOwnPropertyNames;var _e=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty;var Me=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Fe=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Oe(e))!Re.call(t,i)&&i!==n&&ne(t,i,{get:()=>e[i],enumerable:!(r=Pe(e,i))||r.enumerable});return t};var De=(t,e,n)=>(n=t!=null?Ie(_e(t)):{},Fe(e||!t||!t.__esModule?ne(n,"default",{value:t,enumerable:!0}):n,t));var ae=Me((se,oe)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var d=t.utils.clone(n)||{};d.position=[a,u],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. -`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ol?d+=2:a==l&&(n+=r[u+1]*i[d+1],u+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),v=s.str.charAt(1),f;v in s.node.edges?f=s.node.edges[v]:(f=new t.TokenSet,s.node.edges[v]=f),s.str.length==1&&(f.final=!0),i.push({node:f,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof se=="object"?oe.exports=n():e.lunr=n()}(this,function(){return t})})()});var re=[];function G(t,e){re.push({selector:e,constructor:t})}var U=class{constructor(){this.alwaysVisibleMember=null;this.createComponents(document.body),this.ensureActivePageVisible(),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible())}createComponents(e){re.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r}}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(n&&n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let r=document.createElement("p");r.classList.add("warning"),r.textContent="This member is normally hidden due to your filter settings.",n.prepend(r)}}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent="Copied!",e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent="Copy"},100)},1e3)})})}};var ie=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var de=De(ae());async function le(t,e){if(!window.searchData)return;let n=await fetch(window.searchData),r=new Blob([await n.arrayBuffer()]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();t.data=i,t.index=de.Index.load(i.index),e.classList.remove("loading"),e.classList.add("ready")}function he(){let t=document.getElementById("tsd-search");if(!t)return;let e={base:t.dataset.base+"/"},n=document.getElementById("tsd-search-script");t.classList.add("loading"),n&&(n.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),n.addEventListener("load",()=>{le(e,t)}),le(e,t));let r=document.querySelector("#tsd-search input"),i=document.querySelector("#tsd-search .results");if(!r||!i)throw new Error("The input field or the result list wrapper was not found");let s=!1;i.addEventListener("mousedown",()=>s=!0),i.addEventListener("mouseup",()=>{s=!1,t.classList.remove("has-focus")}),r.addEventListener("focus",()=>t.classList.add("has-focus")),r.addEventListener("blur",()=>{s||(s=!1,t.classList.remove("has-focus"))}),Ae(t,i,r,e)}function Ae(t,e,n,r){n.addEventListener("input",ie(()=>{Ne(t,e,n,r)},200));let i=!1;n.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ve(e,n):s.key=="Escape"?n.blur():s.key=="ArrowUp"?ue(e,-1):s.key==="ArrowDown"?ue(e,1):i=!1}),n.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!n.matches(":focus")&&s.key==="/"&&(n.focus(),s.preventDefault())})}function Ne(t,e,n,r){if(!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s;if(i){let o=i.split(" ").map(a=>a.length?`*${a}*`:"").join(" ");s=r.index.search(o)}else s=[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o`,d=ce(l.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(d+=` (score: ${s[o].score.toFixed(2)})`),l.parent&&(d=` - ${ce(l.parent,i)}.${d}`);let v=document.createElement("li");v.classList.value=l.classes??"";let f=document.createElement("a");f.href=r.base+l.url,f.innerHTML=u+d,v.append(f),e.appendChild(v)}}function ue(t,e){let n=t.querySelector(".current");if(!n)n=t.querySelector(e==1?"li:first-child":"li:last-child"),n&&n.classList.add("current");else{let r=n;if(e===1)do r=r.nextElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);else do r=r.previousElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);r&&(n.classList.remove("current"),r.classList.add("current"))}}function Ve(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),e.blur()}}function ce(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(K(t.substring(s,o)),`${K(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(K(t.substring(s))),i.join("")}var He={"&":"&","<":"<",">":">","'":"'",'"':"""};function K(t){return t.replace(/[&<>"'"]/g,e=>He[e])}var C=class{constructor(e){this.el=e.el,this.app=e.app}};var F="mousedown",pe="mousemove",H="mouseup",J={x:0,y:0},fe=!1,ee=!1,Be=!1,D=!1,me=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(me?"is-mobile":"not-mobile");me&&"ontouchstart"in document.documentElement&&(Be=!0,F="touchstart",pe="touchmove",H="touchend");document.addEventListener(F,t=>{ee=!0,D=!1;let e=F=="touchstart"?t.targetTouches[0]:t;J.y=e.pageY||0,J.x=e.pageX||0});document.addEventListener(pe,t=>{if(ee&&!D){let e=F=="touchstart"?t.targetTouches[0]:t,n=J.x-(e.pageX||0),r=J.y-(e.pageY||0);D=Math.sqrt(n*n+r*r)>10}});document.addEventListener(H,()=>{ee=!1});document.addEventListener("click",t=>{fe&&(t.preventDefault(),t.stopImmediatePropagation(),fe=!1)});var X=class extends C{constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener(H,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(F,n=>this.onDocumentPointerDown(n)),document.addEventListener(H,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){D||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!D&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var te;try{te=localStorage}catch{te={getItem(){return null},setItem(){}}}var Q=te;var ve=document.head.appendChild(document.createElement("style"));ve.dataset.for="filters";var Y=class extends C{constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),ve.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } -`,this.updateIndexHeadingVisibility()}fromLocalStorage(){let e=Q.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){Q.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),this.app.filterChanged(),this.updateIndexHeadingVisibility()}updateIndexHeadingVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}};var Z=class extends C{constructor(e){super(e),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.dataset.key??this.summary.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`;let n=Q.getItem(this.key);this.el.open=n?n==="true":this.el.open,this.el.addEventListener("toggle",()=>this.update());let r=this.summary.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)}),this.update()}update(){this.icon.style.transform=`rotate(${this.el.open?0:-90}deg)`,Q.setItem(this.key,this.el.open.toString())}};function ge(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,ye(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),ye(t.value)})}function ye(t){document.documentElement.dataset.theme=t}var Le;function be(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",xe),xe())}async function xe(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let n=await(await fetch(window.navigationData)).arrayBuffer(),r=new Blob([n]).stream().pipeThrough(new DecompressionStream("gzip")),i=await new Response(r).json();Le=t.dataset.base+"/",t.innerHTML="";for(let s of i)we(s,t,[]);window.app.createComponents(t),window.app.ensureActivePageVisible()}function we(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-index-accordion`:"tsd-index-accordion",s.dataset.key=i.join("$");let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.innerHTML='',Ee(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let l=a.appendChild(document.createElement("ul"));l.className="tsd-nested-navigation";for(let u of t.children)we(u,l,i)}else Ee(t,r,t.class)}function Ee(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));r.href=Le+t.path,n&&(r.className=n),location.href===r.href&&r.classList.add("current"),t.kind&&(r.innerHTML=``),r.appendChild(document.createElement("span")).textContent=t.text}else e.appendChild(document.createElement("span")).textContent=t.text}G(X,"a[data-toggle]");G(Z,".tsd-index-accordion");G(Y,".tsd-filter-item input[type=checkbox]");var Se=document.getElementById("tsd-theme");Se&&ge(Se);var je=new U;Object.defineProperty(window,"app",{value:je});he();be();})(); -/*! Bundled license information: - -lunr/lunr.js: - (** - * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9 - * Copyright (C) 2020 Oliver Nightingale - * @license MIT - *) - (*! - * lunr.utils - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Set - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.tokenizer - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Pipeline - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Vector - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.stemmer - * Copyright (C) 2020 Oliver Nightingale - * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt - *) - (*! - * lunr.stopWordFilter - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.trimmer - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.TokenSet - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Index - * Copyright (C) 2020 Oliver Nightingale - *) - (*! - * lunr.Builder - * Copyright (C) 2020 Oliver Nightingale - *) -*/ diff --git a/docs/assets/my-theme.css b/docs/assets/my-theme.css deleted file mode 100644 index 25e6682c92..0000000000 --- a/docs/assets/my-theme.css +++ /dev/null @@ -1,159 +0,0 @@ -@media (prefers-color-scheme: light) { - :root { - --menu-item-active-bg: #dfe0e2; - } -} -@media (prefers-color-scheme: dark) { - :root { - --menu-item-active-bg: #1e2024; - } -} -:root[data-theme='light'] { - --menu-item-active-bg: #dfe0e2; -} -:root[data-theme='dark'] { - --menu-item-active-bg: #1e2024; -} -.tsd-navigation a.current, -.tsd-page-navigation a.current { - background-color: var(--menu-item-active-bg); -} -.container { - padding: 0; -} -.tsd-page-toolbar, -.tsd-generator { - border: 0; -} -.tsd-generator { - padding: 0; - line-height: 40px; - height: 40px; - background: var(--color-background-secondary); -} -.tsd-generator > p { - max-width: 1700px; - margin: auto; -} -.container-main { - margin: 0 auto; - min-height: calc(100vh - 80px); -} -.menu-sticky-wrap { -} -.tsd-navigation.settings .tsd-accordion-details { - padding: 1rem; - background: var(--color-background-secondary); -} -.tsd-navigation.settings { - display: inline-block; - vertical-align: top; - margin: 0; -} -.tsd-navigation.settings h3{ - display: flex; - align-items: center; - font-size: 14px; -} -.tsd-navigation.settings .tsd-index-accordion { - position: relative; -} -.tsd-navigation.settings .tsd-accordion-summary { - display: inline-flex; - vertical-align: top; - align-items: center; - margin-left: 1rem; - height: 40px; -} -.tsd-navigation .tsd-accordion-summary { - display: flex; - align-items: center; -} -.tsd-navigation a { - display: flex; -} -.col-menu, -.col-content { - position: static; - margin: 0; - height: 100%; - box-sizing: border-box; -} -.col-menu { - flex: 0 0 20rem; - border-left: 0; - padding-left: 1rem; - padding-right: 0.1rem; -} -.col-content { - padding-top: 1rem; - padding-left: 1rem; - padding-right: 1rem; - flex: 1; -} -.menu-item-desc { - color: #5d5d5d; - font-size: 12px; - line-height: 1.26; - font-weight: normal; -} - -:root[data-theme='dark'] .menu-item-desc { - color: #989898; -} -@media (prefers-color-scheme: dark) { - .menu-item-desc { - color: #989898; - } -} - -a.tsd-index-link { - align-items: flex-start; -} -pre { - border: 0; -} -.tsd-signature { - background: var(--code-background); - border: 0; -} -code.tsd-tag { - border: 0; -} - -#tsd-search.has-focus .tsd-navigation.settings { - visibility: hidden; -} - -.tsd-page-toolbar .tsd-toolbar-icon { - text-align: center; -} -@media (max-width: 1024px) { - #tsd-search .title { - max-width: calc(100vw - 22rem); - overflow: hidden; - display: inline-block; - text-overflow: ellipsis; - } -} -@media (min-width: 1200px) { - .page-menu, - .site-menu { - max-height: calc(100vh - 60px); - padding: 10px 0 10px 10px; - top: 40px; - } - .container-main.empty-page-menu { - grid-template-columns: minmax(0, 1fr) minmax(0, 3.5fr) minmax(0, 0); - grid-template-areas: 'sidebar content'; - } -} -@media (min-width: 770px) and (max-width: 1399px) { - .col-sidebar { - max-height: calc(100vh - 60px); - top: 40px; - } -} -#tsd-search .title { - padding-left: 10px; -} diff --git a/docs/assets/navigation.js b/docs/assets/navigation.js deleted file mode 100644 index d099f68f86..0000000000 --- a/docs/assets/navigation.js +++ /dev/null @@ -1 +0,0 @@ -window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAE52ZXW/bNhSG/4uvk21N13bL1VI7QYxm8Wo76UUxGIzE2NxoySMpo0bR/z6K+jApUYeHQi6KIOd9HlEUP/v1+0TRb2pyPfmDJZeCkkTlYnIxSXaMp4Jmk+uvbUWSC6r/dCBqp3/b52nBqfx5w5JNnduUFT/t1J7rsn9Zlk6ur35ctHlTBQPMv8MEqYKPYEo6BH9zbsr6P0lGtlScmQknUnqZdr0reHP1m/WQN1uaqRiuVQ9yC7WbcqaLUdS2use8qGI6rmR6yeSl5lORET6xbFOSpSyNaIYTgNpxr9TBtBlDbYvHteIvwbKEHQjHuNricS77+1gcFMszebayTAdeSRL8supk5wt+974nomqXp1ECk+iBI9pmACtFFI33mhjYqrKXy682SuCEgvhxvdNPQqKpTiu6pKbtcSZfFFLN6CspuDLl69MB+9K6MUjRjr+4lnRj4766eaoJTJ2Q0qZ8nOzpkOqXP6Kt/SBy8Jpv1rIo3ReYUdTl//L7hzfvrrqOzjAC4b7RM0R1VuAAtb8UD1CLl6qHkOC63MvGzWfneQPXHqc+1KYp4dw7SQ/hO4EwP2NSN2qOQje1IertNyV00nqOG7FFdIk/F29bUlWIzJ3H8M5zGml+ZpL15s2Az8ogLTRdUXFkCd7RJkKGuyJLyunmkewRdLsaS8a9G7s6RJ5PN/eL1XrzeLv+slh+2jwt52fBkQhGXvwbek/Qdb21NQ+L6c3DSJM/C8gSs2r7TxOv9bvxifo5V/L+177Ee7RASAaPGB5Jvf/ozIxhiZ0LSkzVF6Z21ZJJ+IweVZ5zGWMchAB6/SaoaN77PZE7nLAXQyji6Ujwkv5XUKni+VYQ0Pwj9WDOV0ofh7Y4vp0AwNIUrHP8g9uJHvhvG32kXIWuBkzN8O3CsZrdYUhdhLphMMvFjCrC7O/adwBtqHYCOkObujtGeRoDrgJB7lKf5PO9u/gH2ecQkr+k8qA7nUY7mmDQsxYkk6+52Eco2gyevi5XkjEKE4Q89UHNdFvwMNI47BB4eDxlZM+SGVHE7eoQ381Biu6OpjcUAqqBfIyyO0Yijb4R4wpNRWzD7BAWXq5z03KSGWVp05Bunh2K/nwVsNihIDzuUz5HIHC1/4/saDsEwR+L/QsVcY9tZSB0s2mJfHI3Bgna+8y4x3djkGBJk1zEvnk7FIAXQrJj7BDu5GCFLO/BhCCncjqLUDi5sKJq8wjHOQhJ1sWBx74mKwOhn8uTUtbbagTgTgrE0zIXS7dC4FUbrz7h8mAK3mM0YCcQvLjivBroMXgrEeLX62z7QBhDNxPr+Hiahq7hhlR1FHUtUs3regfU7fhhnS8XvMZonu1O5Pv57AH7Fn057JXJVJ+ytrk4oTydTMhRrVn1/u6Z8AL32XliWFNnJxB2+HYBA/RqgsPDq/oYtmlrrMCEQpaF2lER8Xrs+hC73etGdrMvh3ahWwLuxIf4+GEObbt79CTPjlSoVX1HUM2toXuFxuQNA3cXtL5xztJVLpR7YoJN/SSgYXK+J9vgvVvDrstB4OeC2vNRCGjKQeCT4HicLgZgR8JZ+b9nt0Lk6K5zQgh41bejFFbUc/2kf/4H9/HTwEAjAAA=" \ No newline at end of file diff --git a/docs/assets/search.js b/docs/assets/search.js deleted file mode 100644 index 54ced0834c..0000000000 --- a/docs/assets/search.js +++ /dev/null @@ -1 +0,0 @@ -window.searchData = "data:application/octet-stream;base64,H4sIAAAAAAAAE81dW5PbNpb+L+3XTo9w4S1P63GSTWozk127k3lIpbpkSXYzUUs9krrHnlT++5IAIQGH51C4aToPqcg2cPgR5/4RIH+/2m3/tb/68uffr35rN8urL/n11Wb+sLr68uq/2sUXu9V8cdju/rLY7lZX11dPu3X3Dw/b5dN6tf/LXbu4Gwbc9QNu7g8P627UYj3f71ed0KurP66n5ar/TwpW/4+QvD+cg6xGTEpmvD7Kft3P+dt8M/+42h3FDrMQsfZw5BrXV4/z3WpzQEGfABTsdHOL7WZ/2D3142Ku/8qd74nFkWOvzIzLI7Kvvv7m9Y/f3969fnP7w9u7d7evb7+OQojLOSE97JdftPsvHnft8/ywSsc9j17L+WgVL4LtnWPDwQDN9Jy67v5tc0hwg1dAQE5si/mm3R9Wu++WcQ5iT8+Jq12uv1FzPkfhcqZfzuKeNvun9/vFrn2/et3rKAorIiRxJcuiEOUR5N3d4fNjnEtAaDdHWTEIb0Z3Sizrc7tvD988bRaHdruJAg4lJC4on8nacpn1+m+rw/021mWs6TlxrT4ddt2cd6vdc7uI0/dIRE58H1eH19HZw5qcE1O7aQ/tfN3+O269nOmXwRW/ZGMZWQOhg/fpcdnJ0Wb97qBFRoQbRErOVdXyU/GNkeVIK3bZHFgvWMNfpGyG148tm+3bPlc2/3j7rX/VPAKIionUpwfquW9tMAI6HxUE2bE9He69a+YxPmt2Tj23+++3XaL8evMcBcuZnhPXsX7Z7aOAufOzatWJdL1eulHtwjPUoYq1BCSu4agOiHYIa3JOTFaujIY2lnE5/W62h/bD53eJ1ohJuRzm8FaJdp9MNhDbKJ0BduP+8QsW0TfZl5iUThY7Eb3p6L5SelMPk9AFVQI8Z35+ZN6lIoEssVQkEpJVKr6Zb5bt0r9WdMa/RLE4BhBZLbp3nlh4IajSKi8vdN2IX/dexBuC7zQ5L0LHC7oRt9tffZILjnCYnKpTWD58s9s+dF3ivHOxeRy2sZBLYLx9ePx2vvgtCeJJRjLC4pTq7C70h8eeJDspud0cVrsP88XZpniYGB9GzrPkUVhy8OVmUfxp8zioyQT6GaAIjx4HlGDU8wE9Vs8/bN50Uqy8GwkYE3gB4P9qD/dfrZ4P2+060YdeAVEXAvtTz41vU33MlZQH6jhCIYSiB9zTrPjYNNkahGN4dXfXiV19in2CYokbJJFVhZ0Uk4HeBKZHCq25bwL0arcLs8gzqI28C8Neb+fLdvMxI/CTxPzQHffqU+Rrxd75O5czJ1fa7+S9Wbd2nR4K4pUjI6gLPK3ABDzDg/nmegKhLeZiIP2tcRploA16wQxxcgRdsE97gWqX/R0ffMsjBJclITO0YwWTYHmukAsBTLI6ICUZ4ijMRfU544mZAh7yaCMKSfpDjjO14uN2FxKTMYiDiAuAi6i6KZCxVfckWNsIdffxVj+GD7JCbOaLtdskmNh+G12XTA03DZbouAfurN3cr3atTtKZoIe24DT06V1tl4Ae2ZRP3MJ0V37BWwkMuxO3EBN3Q6D6B14aZGDkDYEXHnppmGTsvZwhBFMg0+gxDiQreDuTfLX6MH9a651wt96EBJwVn0FsLD+enr0F5bTxvJwZLQkD8tBnWnXIGthPBJqKFZxktE7r1ffpPoxBwkqhYNzefxLFJdk0zwu/iqPOAlrSMCBxJJPhaKZoJazxC8QW2fYFI7Q7v1iIEXyXD8YHhDwOhPgQvxWVQEj4ob3/7gzG/me+MHBqor0gOMPzwXgzX6+tYHcWBxj/H45L2NXDgxO856nVGfU+NDQzNJ9yvtaHAiysr3cfzycvfNolYb1dHZ52m1sfFU5Nzg5xKBFDgFlTssNZLeERkTNgjhPyQTFHc/7e//EcDHtwfghearEHx0MQp6t/9+bu2x/e3d79/evbf/zw9n/ufnz73RHE83zXzt/jR2+ReVnwfP/Dm9ffx0HCpybEZIv1Ua0Reoz4w6ARDNF4Wk40GHHmgSbLKY0RmqFtdNP3eTT2tIxolLx/dF2x7obm6xFPcB4aKSMLzk4Lq50xjm/n+3svZKNZWbEEw8iO4O3qn0+r/SEYiDUvC55f912I3b477Oy2YgqIPSELgr0Sdbv1Xgp7QkJywt/H8LxaW80L+kIGNSTiXQ/PgALDhA9jvN/3oKqWr1aHebue3jNqBNsT/BfPQE/bj0xiIDck+9J6mGTyucb2qSeqopGa2d6r5oVKH59uP62W353ZP01jgzKSEQYf1vDEFrIlCxXp3unZJf37PH1JtYw/55J22IYl/YLnWNT+XicXdb1NXNFBwJ9vOXtgZi1l6lqqu5xayERf/5O6+cnDvygTl/Cceyd69p/UqS1/rhMX8Jwrr5ZvV4un3b59TkLsigk9H3NmeZ2DHv3Y/+6L4XZxm7bMrpRLYz78teuoUpZ4mJ9srGNkPdWSFDT1/Asg+/vTOmnNhvkXQfbwPrqIdCVcAF3XyKdA09MvgOt/u85t0T7Ok5RqC7kAxi6QpaDT0y+Da7ubPrp4HpqWcAF0Pu9AOgMv5B1IwfhuV5+SXGKYfwlkT4/rpHUzAi6BLbGQGeXWbMh+6unxtOr5JOIS+NKiyE95osiIKvqmXa2XAUyRHv+iRJEFIS9PNKxFvprNRppQsnngCieKRtjieSJffEG9GY4vqj/zwRdGYIzBxfEXPsiCavExsKhS3ANXmrFdys7STOxS1hXWtYxhRTUtXrjCehYEWVzL4oEtqGMZAYtqWDxQRfQrI2wJ7YoHwqBuZYQtqlnxQxXUq2DAoloVD2zBncoIXHSj4oEurE8ZQYtrU3xwhXUpY2BxTYoPsqAeZQwsqkXxwBXcoYygRTcoPuiS4kZUezJCNepO3s43y+2Ds9fxLLbTnBftUgCMvJ2KtS4El7+fPysKPh6wJSGJCkexOvb3/vNhtb/dfrv6FI/WkXFhvGbrzV/bj10duzr32rdJ3Kis/xD+0PKPwo5UgRfFrUf+9bN9ficavCvswncQwSFA3Ak8gie+cC4BxRjPJ4TgDGr4aJxRnZ8vzjBuAQcZxy/4IgziGHCAUTwDii/t4TmJ7ub4K+xlsJR0RHA+wgS9i0s6U7ofXdKFwggUHF4UieKJL4isQOFFERae6CJICxRjAnHhiTSpYI0nMPzRBZEYFMAoIsMTYxhdgCKMowx88YXRBjjAOOrAE2Fwm45ijG7VfVEme0pUy443nnjb/na1f+ya3mBtm3l/gvbdgXKJFv64RpnbeBd43lYewZypnXdR527pz+FOb+td/Jdq7X3vI669x+8hZ4vviz+hzcdvInurf+5Oott9F39yy++FM7btR7Cmtv7+eCPaFgpvQv/ihzeGBsDAplABfkgj6AAMaAIl4IUzj7Fe2k7zmOilrTOmw8ZgJnTZXjgjOm0EZkK37YUyuuNGsCZ33V6Ik2vM1O7bF2VEB44DTejCvbDGdOII0pRu3A9nTEeOAU3pyv2QRhDBGNAE5tcLZySDgEBNZBH80Gbx/AQ2AeuBIaNwu5tv9h+2uwd/qMcpL8ojuCjyUginRcnXfwC8Ca2HH7rwrgNDGN9wBKAMKuRIlFGFnCfKsA4DhRjXXHjiC+orUHhRLYUfumQjvKD9JZveBa0ulGZC4UXuI/ZDGNQzYPCi2gU/bBGdAoYwoUnwwxnUH2AIo1oDb2xBXQEBL6oh8EMY1gtg+OLaAE90YR0ACi+u+PfEF1T3o/CiSn4/dMHVPgYwutD3xJjqvVHlPYaNruxv+5cbRqBU8/4cNf4JyoUKfb1GF6j2LeQ5Sv7zOBPqfog1Q/HviTeuDEPxphVkHngje4ER2MSGwANpXFcwAprWGpzHmcdYL22neUz00tYZ3TOMgKY2DuexxnUPEGhaC3EeZUofAbHmaCbOI47rKCDWtLbCC2Vcb4EATWswzmON7DIg0sRWwwNnZL8xAprYdHggjes8RkDT2o/zOON7EAg1vRHxQJvF89NakhHK8See1PHEI1DiY0ZGuj0npRlxvyOthf40Xz+d/c4UCeQVkOK/Ys46eEA8+/UpP4x+X4AMAbmev1+t48GZ6XlBPcw/fb/afDzcxwOzRcS3mF5g200yWEvEZcH6fCeexhl8MMgH0vN83S7n57/dSMOyJCRDmzxhFY0s5lCVI+14i0RY/tz9aBdfzQ9z50T4OcDutGzBOSyoICBi4gpYAtraAhIGBu05PFmQ0Gwdws/ZwDfVn8FKTM+mU/9P3Pogor5ze24pqUUiU/B+sWvVlzqyoHblXQy2/rBbRgN4BSXmhD5lxOAdeoG3kP5Gvcwm7LxfL48Fj9/0MbaEbKv4CsjLCNu2AvWPgeZrz8mm8bu7iAgwQvIKivFfNmclSJBB+RKDF54u/YCFVD8YruCih4BFGVf/IaY3961/L4pOzmhui/vV4rdVBjivbFlx63danEt5xwhyDjfxgH3fLperPIiPoi4GNtq5R1jTvNwDaqy7j5Am+f1ZoNvh02sZoFqiLgT2eeU8MY+HehSUD6gdVr/bPD6Nvo51Bq095+WC6AhFZOx0ViBnyMQAUpEylPTxAx0UgzC449BzGaAhEQjDOQo8mWCOPCWIAT/NeFH+G8CIZ7+tFcjJfU/hQ48lh2k1Hw8OgWbyjrycOASZhxH3ABrKh4+AZmHDzwPdrf751O4C84yF05qf03WCQ+AUQZ9/1ULpeggRJeuzwEyh7imUMcS9JesMbf+3CHbHnnORbBKPJOFRpbMSBMgPaev06jg/MyzsY/Hh4Fwpl4F4G+ARNMTgLRs+EEPDyhhe1FNAAlpKKKGRxQQTR9qZcKJ3/AVVptaUFy1NIY742tRehJzRbhJhWnXqATmoPB1BTa9PPSB29WU0QD03q5KD62UMVIY61Adq600ljEG2YeSlH5zUlctSwXtADS3hR0ijangPYCEJYwQqOEl4AArNryNQWep2HGhKtiVxxiRbW9iZXPvDQByHFe/urBfNuAiU+KQLViNn3j2HMy31+gH/EFJSYYCNgNwrGlQWYMDSKwM/oMHZGAObJyF7Ag5NgijgLHnQD3BI0MSwBgdLP1iheQeDliX1kHBTss8U2pgEBOSdyUHHw0hBLZ8760VzEAIlPgeB1ciZg87hTMtBfsCDQj0GOD3U+wENDvUYWDzUZwIYGtpRgGhozwMwtKvB8EU1Nn7wQgIkBi04KvrBCs00GLQsmYaEm5JpptDGZBog70ym0Sc0w3ode86LZpkREDrHhKraWZecGWcac9hDDB+QYc9Wxuginq34wApKemNU6SnPB2RwwhsDzdPZeIENTX4I2CxdjQ/YkAA5xhkcE30ghWaZMawsOYaAmpJhaKQx+cWRdj67PO327XPgaREw7aVzzAhL1jTjLFDmTDONPK258YS+0sdLkkCfZASZKQEv0ZVIeJHO5Mgzd5opa46xZkmcPnqPyZ1juNnSpxfkiAyKQM6VRH0gbwK2pqBoN6G7UjyBJTtVqitlTPNjcLky/X8qQoF8/wVPClJnk/6+yzCvd7v55/5gtD9wZ9rLHFnHQEQcWYdLkOPIOgot/Mg6DW2sQ13qhSvxNO8ltQhQRKvRWoV8eoTgYhWJgrM1qd4XFVZ+W1NetPSGOPKV3fai5Cy5JxGHkSgeEMOonRG2CGbHA1SQo44wpZenHhCDS9MRzDxlqQ/U0JJ0DDVLOeoBNaRIGaEMrvY8AIVWeiNQWao8HGhKhUfijGlAbWFn6rrhLXlhucSZ9KLZZIwk/om0uxQ5M8gZlGHh2gtmWBZB8EXkES9gQZkEwZWeS7xgBmcTBGqefOIHNzSjYHCz5BQvuPoYf4p5niRkts+QmI3gCg7VXqBCkx4CLEvao8CmJL4JrDGpzxV3LvmpdzQE5j5rzsumPggkIfPZ65A18U1iTHtU4QM6aCfwGGz4PmAfUGEpcAQqQwb0ABmeAEdAM+U/H7DB6W8MNk/28wAbFBxHOMMDogek4PwygpUnveBQk7ILiTQqudjSsNwyaypWnL7B83qt92v1R3BPMbO/LI7WGZ+SXBAg+rBMABJrQk4ow9tVj/fpAQZOuSScv35+00uNQDXMzAlOvcVRv59gu3sAdQqNDJuWE9bxlr/ZbR++++p7TzVi07LCGg68v+mc8uN299kHEpiSE87fhne4YmUTjQiZlQJqMnaGo4h5Vxy2DudXzX2x2XmkyS81S1yptPdouncd9DKzCGg38W9+dGUOd+r5HrM4pOEP+EIwLvxjBQ3SEnIZlOg7S2KQJr62JAytZ1o4jzbyDSZ+aLe7pfX9rhiYRkI2fHhM1I+GvZHq4S8WEa3LxwfE4ZZJRiI8Go5h3aSFwkHgtI2FxUEEY2wQ9EKXqNebJOWeweZuwogAF74FIxSdf5VCwYt5yRWFbyp2/BSxmGpOzrL4h8P9audf39nDc8I4fh4hrDzHpl0Elu/65Pt8CAHFu+vM9hGI0irPtpvn1e7w7rBrNx9vt+Bjm6Y+wPGgczPhGnZ0v94s3213B+cbPtOgxhMzIWr33z3MP648YQyjs137/55WVg197tpqdLZr/7hbe1+5G5vpuob9+3q32/papDPnYpVZKIZX7l9FFGuuAHdlJhdP+2TMElozX3ghIZJX2D8kLKotBlu3P365vuruZfXp6svfr7qAt+/r2C+v+I24abprDPs4vvzZnCpYbB8e+qv+Mvyb5rT7EXrIX2ZX1z/PrgW7YVJcs2s5u5G8/OWX65/NVDVC/YUaz+zxHBvPnPHcHi+w8dwZL7o/yeuivKkL5gwTzjDZ/am4FvWNmBXOMOkMK7o/lZi0whlWdn+qsGGlM6zq/lRfF+ymYo0zrHKG1d2fmmtZ3NRMOMNqZ1inr5/Z7FryG8ZqZ1zjrnivANapprtZ4Q5kQDf90jOOIWSuVli/6KxTYHnDS+6OdPXB+nVnqEaYqxLWLz0r0JGuVli/+gzVC3MVw3oFMFQ1zNUN63XAanSkqx7Wq4E16EhXQ6xXBJ+hI10d8V4RnGErz10dcUZZBweOwykT566GeK8GzjGU3NUQ79XABWZJ3NUQ79XAUa1zV0O8VwMvUJmuhnivBo5qnbsa4r0aOKp17mqIKw2hWueuhoTSEKp14WpI9HoQqNaFqyLRK0IwdCSIaoL0N+HqSEjSh4WrI9ErQqB6F66ORElap3B1JHpFCIHKdHUkaso8hasi0ZBGJ1wVyV4PAjU66apIKhWhoUa6KpJKRajRSVdFsteDQI1OgtzT60GgRiddFcmCcnbpakiWZDKQroZkRWYD6WpI9noQDaZ16apI9nqQM1Smq6Ki14NELalwVVT0epCodRauigo6FxWuigpVHKDWWbgqKno9SIndUQEqhF4REjWlwtVR0StC4tWEq6OiV4RETalwdVT0ipCoKRWujgqlIzR+Fa6Oyhl576Wro7JXRIFGutLVUamSEar30tVR2SuiQONX6eqoVDUcqs3S1VFZkDmmBIVcr4hCold3dVRWpM2Xro5KFelQCyldHZUN5e6lq6JqRrp75aqoYqS7V66KKk66e+WqqBLkclauiipJLmflqqgqyOWsXBVVJRlCKlBu93ooUIerXBVVSkWow1Wuiio6G1WujupeEQXqmrWro1q5Eeqataujmg51taujWpBOXLs6qiXpmrWro7ogXbN2dVT3iijRwFC7OqrJnqgGTVGvhxKtlWpXRXWvhxLNHLWromZGLmfjqqhhpMM1roqaXg8lGpUaV0VNr4cSLVcaV0VNr4cSjSCNq6JGNayoyTeuihqlogozkMZVUdMroqzRka6OGqUj1JAb0Lv2iqhQA2lg99prokIVr//NHtvrokJVr//NHttro0IVpf/NHtvro8Kb2BnoYme9Riq8jZ2BPnbW66TCG9kZ6GRnimTAW9kZ6GVnvV4qvJmdgW521mumwtvZGehnZ71ujmxMPUPpmxlQIHMoohrliNiIiei1VeOahFwEIztdBskIRTnUuNIhHaFIh1piPs8gIaEZCZwPgZSEIh7qApcLFKlZCUIuUKQiH+oSlwsUqegHSi7QnyIg6gqVC8gJpjgIiheCFFKvm7rG5QK9cbr/ZYCkYIqKqHGDBjQFU2REgzM0gKhgio5oGI4X6E0REg3HxwK9KUqiEVjZxwBdwRQp0Uh8LNCboiUa3M4AZcEUMdHgtgNIC6aoiQa3BwHJv143Da5jQFwwRU80aAHKAHXBFEHRhX9cMFCc0M0xrjlAYDBFU3QJ4FqKm6qpwGCgOkVVdBkAlwx0JzRhiwcUQGUwqSt8gg0F2lOcBR4AAZ3BFGlBGDEgNJiiLYgAKCF3K+mgBkgNprgLIlABXoMp9oJwJMBsMMVfEIEKcBtMMRhE8AHsBlMcBuGggN9gisUgHBQwHEzxGISDAo6DKSaDcFDAcjDFZRAOCngOptgMwkELyLoXtIMCroMV5YSDArqDFdWEgwLGgxX1hIMC0oMVzYSDAt6DlbMJBwXUByt1R4DXboD9YCVdoQD6gymSoyvS0FUGDAhTPEdXpeGDgfpKHTNx/ZXwuYnSX9fxoIOB/krNKaI9JANsCFOcBxGBAB/CFO1BRCBAiTBFfBARCJAiTFEfRAQCtAhT5AcRgQAxwqqJMgVQI0wRIES0AuQIUxQIEa0APcIUCUJEqwo+86roCAQoEqaIECICAZKEKSqEiECAJmGKDCEiECBKWM0mogrgSpgmS4ioAugSVouJQAEYE1bLiUABSBOmqBHG8FYG8CZMsSN4oADECauriUAByBNW1xOBAvAnrG4mAgWgUJjmUIhAAVgUpmkUIlAAIoU1E6UKoFJYM1GqADKFNROlCqBTWDNRqgBChTUTpQqgVFgzUaoAUoU1E6UKoFVYM1GqAGKFz+j+gANihc/o/oADYoXP6P6AA2KFz+j+gANihc8k7fwcMCt8VtDOzwG1wmclXVJwwK3wWUVHCg7IFT6r6UjBAbvCFXHCGMpOcMCqcEWY4I/3AZfCFV+COxIHXApXhAnuSByQKVyTKbgBATKFazIFNyBApnBFmOCOxAGZwjWZghsbIFO4IkxwR+KATOGKMMHreA7IFK4IE8KR4D4PRZgQjgR3euitHvi9jTZ7cNqR4H4PTaYQjgS3fHA54Uhw1wcvJhwJbvzg5YQjwb0fvJpwJLj9Q7EmDN90xOEOEEWbEPtkgPI0o4IvBWBUuGJNCEcCjApXrAnhSIBR4Yo1IRwJMCpcMyq4IwFGhSvShHAkQKhwxZkQjgT4FK4oE8KRAJ3CFWNCOBJgU7giTAhHAmQKV3wJ4UiAS+GKMCEcCZApXPIJRwJsCpdiwpEAncKlnHAkwKdwWUw4EiBU+LBTBDdMwKjwYbMIykJxQKlwqb2uvBbVDVA0YFS41JmuuhbljajBdk5AqfBCV5j1tZA3swKsBeBUeKErzAYBASgVrveN8Bk2FOhOsSaMMxQvoFR4oXdgcXww3CdHPzjggFPhmlPheH0AOBWuORVq1YDqNKfCcS8FnArXnArHjQJwKrykdypwQKlwTan0O/yQXZCAUuGl1h7a/nBAqnBNqhD7/ACpwgdSBYcM1Kc5FY62ShxwKlxzKvjOQA44Fa45FcFQlQBOhSvehAmODwb6K+lnPxyQKlxvNME39HHAqnC910Sg2z04oFV4xSfuD/AqfOBVcJMDxApX5Am1GIBZ4dWE/wFmhVdaf8QOVLhZVesP34QKuBVeaf3h9gnIFV41U8sMFFjPJpYZ0Ctc0yvEygF6hU/sReGAXeGaXRHoMzkO2BWu2RU0jwBuhQ/cCp5HALfC63IiIgJ2hWt2Bc0jgFvhmltB8whgVrhmVvBtThwwK1wzK0TSAcwK18wKkXQAs8KbCdUBZoU3YiLCAWqFN3JCH4Bb4Yo/YRI3TUCu8IntKhyQK3xiwwoH5Apv6ql1g5vFJyInYFeEYlAYvoFVAHpFzBhl8gKwK0IxKMQSC0CvCEWhECYvAL8iNL+Cb48VgF8Rml/B/EMAdkVodkXih3IAuyI0u4I5kwDcitDcCu5MAnArQnMruDMJwK0IfWIGNwoB2BXB6C0PArArQh+bwXcLC0CvCH1yBjUKwK4INuF3AtArQu9VkWiZJQC/IthE0BSAYBGMDJoC8CuCkUFTAHpFsCnVAX5F8CnVAYJFTOxWEYBgEVyrDs3nAjAsgtOqA/yK4FOqA/yK0PwKoQ3ArwjNr6DaAOyK4LTXAW5F8CmvA9yK4FOqgwdsxJTq4BkbMaE6eMpGaNWh1ZUYHbShVQdP2ogp1cHDNmIi2wl43kZMeR08ciNor4NnbgTtdfDUjZhSHSBYhJxSHWBYhJxQHWBYhGZY8GMLAjAsQtKqA/yKkFOqA/yK0PwKfs5BAH5FaH6FuDugOTnRowtAr4iBXsHUDOgVoekVVM2AXBGaXCnwM2iAXBGaXCFsAtArYqBXcJsABIsoJs63AX5FaH6lIA6uwTNuUxETECxiIFhQGkQAgkVoggU/fyIAwSI0wULBAOobCBYCBlCgJlgKvLoCDIso6ToT8CuinKozAb8iNL9CBDfArwjNrxBrAQgWUdJ1JqBXhKZXUKsH5IrQ5AphyIBcEeVEiyAAuSImyBUByBWhyRX8ZJAA5IqoaNUBakVUU6oD1IqoplQHqBVRTakOUCuiolUHmBVR0aoDvIrQvAp+qkcAXkVoXoXQM+BVhOZVCD0DXkXU9NERAWgVoWkV/HiRALSK0LQKqmfAqgjNqhB6BqyK0KwKUfUDXkXUU1ET8CqiputMwKqImq4zAasi6inVAV5F1FOqA7yKmDj1IwCtIjStgp/iEoBWEZpWwQ9yCcCrCM2r4GekBOBVhOZV8NNPAvAqQvMq+AEoAXgVobgThp9XEoBYEYo8YfiRJQGYFaGZFfzUkgDMiphgVgRgVqRmVnDmXwJmRc7oYlMCakXOJihpCagVqakVnCuVgFqRmlrBz2VJQK1IxZ/gVJcE3IpU9AlOdUlArUhNrZT4CXVArkhNrpT4IXVArsgZrT0JuBU5cCtoHJKAW5GaW8HjkATkitTkCh4xJCBXpCZX8BpLAnpFanoFP9gmAb0iNb2Cn22TgF6Rw/tJUMeWgF6Rml7Bj7dJQLBITbDg59skoFikpljwA24SUCxSUyz4CTcJKBapKRb8iJsEHIvUHAt+xk0CjkVqjgU/5CYByyI1y4KfcpOAZZGaZalxDQKWRXK635OAZpGaZqlxbQOiRWqihRCs9afe5dS/tW61/E6/0+nnn6/u7hb3q8Vv/fcTfr+6G9711D8uUnL71z71z+K+/P2P66v+aVH344/Ta576P/VXAq98tgUxS1BXKg+C+PCjq33Ujz5eUqLv2+VyBaQWNjxBTh3ebGrP5Dae2uCRBg8zeGih+mVbtsyTSDbcmBD6/8Xw53r4fzPcb3/Kb/hRmR/N8IMz82MQwqrhR/+IX/8oG4Pc/I25Qv9EZvgxjOlpZf3DSO4pL/1DHn+Uw49iuJYwlxBGR6I5/mjMKh2Xy/wNL82PmlhA9SIye/2q0/KVU3Me5pv5x5Uz1bJSSl/21ON3vU4SRH0SIeWkDPXe0v1BfYfEgmAZVME8BTgQCguCXmtKwujiXfF4mjp58X33nzPVuuhggXVFCfjY/8mayy2L59IYhf4/GSOUlPnT4X68hKW1hKQJnKaDOymtEFOTVtdPRyzIXsDBb4xND55VTt4QbVmFtUglaVnrtXpP3kF/OcUKKrZV9K0DOX+jXteHCGhsAVR47Vd0sW6BgqXlkwVpFt3U7s/tAqiTW5PpKGBNdlKPtO678Jjdbj460627LkjNYWbE7ZRXEDPff+6c97C97ybYaz2zQLNy8AhGGuOiU5sVEhxjtsJJTeHv54+nMispMsrgFvPNsl0ijiAscxWUyrvZ7f6w2rXuhWenqSYPDGmgGlJGY0qIcmZ+0AjN9w6sK5RWiOg7IGJq54KH3RNMMNa6mDxv0nRtku/wF8wkxP6g3aDF0sQFA52TetEvBd6rlwIftpvhhcLWfVQ2Fk4F+8X2qf/wlBOu7SKDUclusVt1q0dly8oKlP27MCZlEPGy4rYMKixpGcNLR7HYaC1DSXqJLWTkrpW9IGT1qGWoyf9qO4dRUObr5er5sN2uHUyVtAVSK7ycH+ZOvLFgFOQk/ULvO/2O11H+s9PfOQld5BoL4HZRewaEwgBL2MKCUFHOPwgYPltoGbUdePptvpPTh1fm29NLe7rJwrWpK0yNKZipTE1dLEyV3T+vG4pWM9j0LKKmTMPG42ZOZicwaSrt2lTazRGZiSLM/M2xGBLmhzQ/TDwR1TH20JrCeyluL5S5U8koR+7i/K97N1LbbZ2cmHfY/upWyXbYopx+qT9Z1nvIXL2z3IZuV4xkjTdIOFZEbgqY2fUMuXZAxPvPC/3FNVsSsyVRyWSlXxxtubq1eMWgVpPOSF0Or2R387R9J5Jy+WGmVSfAVS2tRSULvLGY3erwtNvA9S2tuyNX1wjbLPddEBlpubKzNKfsZBCyWu71O/0dFJaE5szKHAUszfcMbIOzYxJZCEJJ5rvktqDadrozC4PckR3d2Jk7Gt7OPVKNdS+0ufYi2v6zfB86RSM3YleWglzbcXS3uzNhaAtRUziUAEwjYmYvJBUC7Ol9xl7ctwCPXajyigpiyAJIm4pqzI0I86M0OYTkk45B5cNu+9Au1+MQZdfQDXmLw5vf8ULXpjQaKpcaEWqkbSlW5mpM3Wp+9E8DpsWNDM+y/cZwd+ZH/8AAF9eVjqudqUPv5/t7p8yyuxSykjci3rcf+2+wgiK0P2xu9VuGSiP7JSNthMX2TXJ1zGyknLc7H1YO68wayiiNpF0XQLcPqpd0xdkFuiFLGdn8H8Wt/tmVMIfR3VX23dHKOowYObsAYlMTR8SQHSxpbRx6B+qS0RxW08JJINPzDw+P9/PFb850C7ekvLhd2FMsBRpqdrDz4U+G2WRkndUu7u63+8PdZnX413b3293TrnWcyLLVhup12mVPZxycWGCXCSVlA10Y+qD054YRp9Mb/HWwp4oUtWkP7Xzd/tsNaja1QcWj09SxLdmuSt7+af7IpGwai1TBcb6TKwprGUz9TSauk4wuNKu20TEtC4bpUSrKQo+iADlVWCnYpJuaCjsql6OJ1Hayil7SvhQYZXP7PjhZtXZ1iP7ejx0TbOfi5K3v19vFfL3aPDtKtKuxIUyasE2m23b/T/3hHxuETdeTrW6777+x4syz1ccpE/h13+XAraZvnEhq+8CMcoLxwybbd/qjpzqwFCaTGmZJzEzpwczf8GN5Yv7GuK8wz4BEUZvKxfSY5jGWML2qZJSzr7fzJaROLSUVlFUq7U7Gu8pmA6kc8DB3CVSbRhFkVdDN6izr4+HeXWXbpAsTvmuzXjOzXuZJmzAWKIT5G3lcSjO4Oha6VP7TzRTNIthVuyADv5GCdDA2C2GilyRpOy0Ia2Ds5SmPJAblO6ZH1J8Dte/Hdr3Z9P3o6WOqx7YNSXZDxJM2mwCgtdK6nIndtAuyCOpmIYbF7Y6lOD6yNrYyM9bDzN9w8zeGVxaGPRKmOOw3KA6GRcURWNQzO42JgjKAzfbQfvi8f3rfk0ddoeoSODblQMUEXeAiHaDdOZIGaLhVN93YlFVFLb+ZijVtthcxKusgFDOzOU1BkprD53VtO7fzHBnst/2XIzG3tUl2SRbPj12X71QGlpkaU6moMPjY5adF+zisl7tcFnhBJmnzNbAF4NQt6JSWzVT1fyfFWynyzNwRl2939OfmPq/Wblio7R5sRiUc+JU2W4BdLJNV/m7VrRYWX+0Hlv3xIHL6027fPmMUk/3MUpBtT9/ltTuwT0faIao2wWZ2DEhUmNYBer7bzT/DHozZVaooKCPUEvSqjEXY6Zx8gLyfP6+6VOH0Y/0b6qze0+yAIYPlkQKk0rD9wEqSDcwEk2g/aJJkB0MTiPZzJcko+zTPDEdNvN0+kVn3GPVH7ZO9/4o0TiJpOM8bqJU7PD2usdu2I5ooKa8aUWjcJunMXiR+3Hk0O+5pMj+4+WE2oAhTAgrDoIjK+IPJ3ZLMJE8bei2ZHeOOG6coQY9L8xjV0YfjXOfnYg9PLQ8h2z8tgqik7MKGtEgtYTzXVpBRC5XmzCcl3VW0n1aaByn8uEOgMcoyxIU4XkaYH9L8MFWZMFv5RHXctkbdmAE1esDD7FQiyT0gZr4ulxApdgVA+s24OHY3oJj7KY4b88zWCvLpP9aE2H0vuSnkeb5r55sD5sV2+UWS7c+rEetjU3GcrL70ROy6dh1D7mzrk7kiQdsFDCSNbeK0Kvtq4P126xStjV0PmF6RSUMIGktjx42WJhZwkp9S10GSS+1ElKnbPKhMqUsIR4KdH0hiQ0lAlnnmbBmaRP+h/bRatm4wq+0tE+YhODMP45nZQcoaE8fNNhtO9iCna23m7rVsqOyoFXNRs9GImafz3GwX4GTa09dab8GF7IcCprVjZjcgMxsLmHmCxM2Nc0E6prrQ08apdBpb96ZzZGbjFDPbBNjxOY559sbJnHO8zmjrgK2oSZRQw3Y1ZuIwM1wUM4QTOz4dMprhZHJTl4HKtQk2ftyLZRbfkDGsOe7RNNejU4+6zNPadW1nq/ZRt8ZOq+MTHDJ3aKnwQVBjr6+pSNiR8TNWxMmNdboteXQWpbEt3qQ+ZqobVpklmB0vY7aqCKoqUJc5to/OxWyrN9vDmUmvzFRQ3OzG4cYYuJhcK/2oa7RTYGZfjny4YUno2o3Hrg4CO4dsFyKJdC3FbTMa266FuUtTbzJTRHCzxYebXcF8Okrqfsi5km3aZsMSM2UPM5vrueGAuTF/Tm60UVdCtho0di4wO5AYSeUqMYfVJ7fGndmJ0zwcZ6YKYeaABJ8dt1Ia4GTnqi/U6XHfb01wNWi3/mTz7go4zN+vgR3YlRPZ82opfbvi3rCd7g3dzgxJz47nKgyPzM0mL04+YtRXgq3NzLZWQz2z4uhZJnIa7p+T5xGU/KFocy9hx7fj5lZTObLaqMpQl9yUN5zchqSvBZt0J58Y8WYzFDN797ghIrjJb1xS8brf7IFty7QZDhOoTWNXUaB7YQjTY+8AMcEZJyV/ub56bB9X63bTDf75lz/++H8Wnk/pSYsBAA=="; \ No newline at end of file diff --git a/docs/assets/style.css b/docs/assets/style.css deleted file mode 100644 index 98a4377942..0000000000 --- a/docs/assets/style.css +++ /dev/null @@ -1,1414 +0,0 @@ -:root { - /* Light */ - --light-color-background: #f2f4f8; - --light-color-background-secondary: #eff0f1; - --light-color-warning-text: #222; - --light-color-background-warning: #e6e600; - --light-color-icon-background: var(--light-color-background); - --light-color-accent: #c5c7c9; - --light-color-active-menu-item: var(--light-color-accent); - --light-color-text: #222; - --light-color-text-aside: #6e6e6e; - --light-color-link: #1f70c2; - - --light-color-ts-keyword: #056bd6; - --light-color-ts-project: #b111c9; - --light-color-ts-module: var(--light-color-ts-project); - --light-color-ts-namespace: var(--light-color-ts-project); - --light-color-ts-enum: #7e6f15; - --light-color-ts-enum-member: var(--light-color-ts-enum); - --light-color-ts-variable: #4760ec; - --light-color-ts-function: #572be7; - --light-color-ts-class: #1f70c2; - --light-color-ts-interface: #108024; - --light-color-ts-constructor: var(--light-color-ts-class); - --light-color-ts-property: var(--light-color-ts-variable); - --light-color-ts-method: var(--light-color-ts-function); - --light-color-ts-call-signature: var(--light-color-ts-method); - --light-color-ts-index-signature: var(--light-color-ts-property); - --light-color-ts-constructor-signature: var(--light-color-ts-constructor); - --light-color-ts-parameter: var(--light-color-ts-variable); - /* type literal not included as links will never be generated to it */ - --light-color-ts-type-parameter: #a55c0e; - --light-color-ts-accessor: var(--light-color-ts-property); - --light-color-ts-get-signature: var(--light-color-ts-accessor); - --light-color-ts-set-signature: var(--light-color-ts-accessor); - --light-color-ts-type-alias: #d51270; - /* reference not included as links will be colored with the kind that it points to */ - - --light-external-icon: url("data:image/svg+xml;utf8,"); - --light-color-scheme: light; - - /* Dark */ - --dark-color-background: #2b2e33; - --dark-color-background-secondary: #1e2024; - --dark-color-background-warning: #bebe00; - --dark-color-warning-text: #222; - --dark-color-icon-background: var(--dark-color-background-secondary); - --dark-color-accent: #9096a2; - --dark-color-active-menu-item: #5d5d6a; - --dark-color-text: #f5f5f5; - --dark-color-text-aside: #dddddd; - --dark-color-link: #00aff4; - - --dark-color-ts-keyword: #3399ff; - --dark-color-ts-project: #e358ff; - --dark-color-ts-module: var(--dark-color-ts-project); - --dark-color-ts-namespace: var(--dark-color-ts-project); - --dark-color-ts-enum: #f4d93e; - --dark-color-ts-enum-member: var(--dark-color-ts-enum); - --dark-color-ts-variable: #798dff; - --dark-color-ts-function: #a280ff; - --dark-color-ts-class: #8ac4ff; - --dark-color-ts-interface: #6cff87; - --dark-color-ts-constructor: var(--dark-color-ts-class); - --dark-color-ts-property: var(--dark-color-ts-variable); - --dark-color-ts-method: var(--dark-color-ts-function); - --dark-color-ts-call-signature: var(--dark-color-ts-method); - --dark-color-ts-index-signature: var(--dark-color-ts-property); - --dark-color-ts-constructor-signature: var(--dark-color-ts-constructor); - --dark-color-ts-parameter: var(--dark-color-ts-variable); - /* type literal not included as links will never be generated to it */ - --dark-color-ts-type-parameter: #e07d13; - --dark-color-ts-accessor: var(--dark-color-ts-property); - --dark-color-ts-get-signature: var(--dark-color-ts-accessor); - --dark-color-ts-set-signature: var(--dark-color-ts-accessor); - --dark-color-ts-type-alias: #ff6492; - /* reference not included as links will be colored with the kind that it points to */ - - --dark-external-icon: url("data:image/svg+xml;utf8,"); - --dark-color-scheme: dark; -} - -@media (prefers-color-scheme: light) { - :root { - --color-background: var(--light-color-background); - --color-background-secondary: var(--light-color-background-secondary); - --color-background-warning: var(--light-color-background-warning); - --color-warning-text: var(--light-color-warning-text); - --color-icon-background: var(--light-color-icon-background); - --color-accent: var(--light-color-accent); - --color-active-menu-item: var(--light-color-active-menu-item); - --color-text: var(--light-color-text); - --color-text-aside: var(--light-color-text-aside); - --color-link: var(--light-color-link); - - --color-ts-keyword: var(--light-color-ts-keyword); - --color-ts-module: var(--light-color-ts-module); - --color-ts-namespace: var(--light-color-ts-namespace); - --color-ts-enum: var(--light-color-ts-enum); - --color-ts-enum-member: var(--light-color-ts-enum-member); - --color-ts-variable: var(--light-color-ts-variable); - --color-ts-function: var(--light-color-ts-function); - --color-ts-class: var(--light-color-ts-class); - --color-ts-interface: var(--light-color-ts-interface); - --color-ts-constructor: var(--light-color-ts-constructor); - --color-ts-property: var(--light-color-ts-property); - --color-ts-method: var(--light-color-ts-method); - --color-ts-call-signature: var(--light-color-ts-call-signature); - --color-ts-index-signature: var(--light-color-ts-index-signature); - --color-ts-constructor-signature: var( - --light-color-ts-constructor-signature - ); - --color-ts-parameter: var(--light-color-ts-parameter); - --color-ts-type-parameter: var(--light-color-ts-type-parameter); - --color-ts-accessor: var(--light-color-ts-accessor); - --color-ts-get-signature: var(--light-color-ts-get-signature); - --color-ts-set-signature: var(--light-color-ts-set-signature); - --color-ts-type-alias: var(--light-color-ts-type-alias); - - --external-icon: var(--light-external-icon); - --color-scheme: var(--light-color-scheme); - } -} - -@media (prefers-color-scheme: dark) { - :root { - --color-background: var(--dark-color-background); - --color-background-secondary: var(--dark-color-background-secondary); - --color-background-warning: var(--dark-color-background-warning); - --color-warning-text: var(--dark-color-warning-text); - --color-icon-background: var(--dark-color-icon-background); - --color-accent: var(--dark-color-accent); - --color-active-menu-item: var(--dark-color-active-menu-item); - --color-text: var(--dark-color-text); - --color-text-aside: var(--dark-color-text-aside); - --color-link: var(--dark-color-link); - - --color-ts-keyword: var(--dark-color-ts-keyword); - --color-ts-module: var(--dark-color-ts-module); - --color-ts-namespace: var(--dark-color-ts-namespace); - --color-ts-enum: var(--dark-color-ts-enum); - --color-ts-enum-member: var(--dark-color-ts-enum-member); - --color-ts-variable: var(--dark-color-ts-variable); - --color-ts-function: var(--dark-color-ts-function); - --color-ts-class: var(--dark-color-ts-class); - --color-ts-interface: var(--dark-color-ts-interface); - --color-ts-constructor: var(--dark-color-ts-constructor); - --color-ts-property: var(--dark-color-ts-property); - --color-ts-method: var(--dark-color-ts-method); - --color-ts-call-signature: var(--dark-color-ts-call-signature); - --color-ts-index-signature: var(--dark-color-ts-index-signature); - --color-ts-constructor-signature: var( - --dark-color-ts-constructor-signature - ); - --color-ts-parameter: var(--dark-color-ts-parameter); - --color-ts-type-parameter: var(--dark-color-ts-type-parameter); - --color-ts-accessor: var(--dark-color-ts-accessor); - --color-ts-get-signature: var(--dark-color-ts-get-signature); - --color-ts-set-signature: var(--dark-color-ts-set-signature); - --color-ts-type-alias: var(--dark-color-ts-type-alias); - - --external-icon: var(--dark-external-icon); - --color-scheme: var(--dark-color-scheme); - } -} - -html { - color-scheme: var(--color-scheme); -} - -body { - margin: 0; -} - -:root[data-theme="light"] { - --color-background: var(--light-color-background); - --color-background-secondary: var(--light-color-background-secondary); - --color-background-warning: var(--light-color-background-warning); - --color-warning-text: var(--light-color-warning-text); - --color-icon-background: var(--light-color-icon-background); - --color-accent: var(--light-color-accent); - --color-active-menu-item: var(--light-color-active-menu-item); - --color-text: var(--light-color-text); - --color-text-aside: var(--light-color-text-aside); - --color-link: var(--light-color-link); - - --color-ts-keyword: var(--light-color-ts-keyword); - --color-ts-module: var(--light-color-ts-module); - --color-ts-namespace: var(--light-color-ts-namespace); - --color-ts-enum: var(--light-color-ts-enum); - --color-ts-enum-member: var(--light-color-ts-enum-member); - --color-ts-variable: var(--light-color-ts-variable); - --color-ts-function: var(--light-color-ts-function); - --color-ts-class: var(--light-color-ts-class); - --color-ts-interface: var(--light-color-ts-interface); - --color-ts-constructor: var(--light-color-ts-constructor); - --color-ts-property: var(--light-color-ts-property); - --color-ts-method: var(--light-color-ts-method); - --color-ts-call-signature: var(--light-color-ts-call-signature); - --color-ts-index-signature: var(--light-color-ts-index-signature); - --color-ts-constructor-signature: var( - --light-color-ts-constructor-signature - ); - --color-ts-parameter: var(--light-color-ts-parameter); - --color-ts-type-parameter: var(--light-color-ts-type-parameter); - --color-ts-accessor: var(--light-color-ts-accessor); - --color-ts-get-signature: var(--light-color-ts-get-signature); - --color-ts-set-signature: var(--light-color-ts-set-signature); - --color-ts-type-alias: var(--light-color-ts-type-alias); - - --external-icon: var(--light-external-icon); - --color-scheme: var(--light-color-scheme); -} - -:root[data-theme="dark"] { - --color-background: var(--dark-color-background); - --color-background-secondary: var(--dark-color-background-secondary); - --color-background-warning: var(--dark-color-background-warning); - --color-warning-text: var(--dark-color-warning-text); - --color-icon-background: var(--dark-color-icon-background); - --color-accent: var(--dark-color-accent); - --color-active-menu-item: var(--dark-color-active-menu-item); - --color-text: var(--dark-color-text); - --color-text-aside: var(--dark-color-text-aside); - --color-link: var(--dark-color-link); - - --color-ts-keyword: var(--dark-color-ts-keyword); - --color-ts-module: var(--dark-color-ts-module); - --color-ts-namespace: var(--dark-color-ts-namespace); - --color-ts-enum: var(--dark-color-ts-enum); - --color-ts-enum-member: var(--dark-color-ts-enum-member); - --color-ts-variable: var(--dark-color-ts-variable); - --color-ts-function: var(--dark-color-ts-function); - --color-ts-class: var(--dark-color-ts-class); - --color-ts-interface: var(--dark-color-ts-interface); - --color-ts-constructor: var(--dark-color-ts-constructor); - --color-ts-property: var(--dark-color-ts-property); - --color-ts-method: var(--dark-color-ts-method); - --color-ts-call-signature: var(--dark-color-ts-call-signature); - --color-ts-index-signature: var(--dark-color-ts-index-signature); - --color-ts-constructor-signature: var( - --dark-color-ts-constructor-signature - ); - --color-ts-parameter: var(--dark-color-ts-parameter); - --color-ts-type-parameter: var(--dark-color-ts-type-parameter); - --color-ts-accessor: var(--dark-color-ts-accessor); - --color-ts-get-signature: var(--dark-color-ts-get-signature); - --color-ts-set-signature: var(--dark-color-ts-set-signature); - --color-ts-type-alias: var(--dark-color-ts-type-alias); - - --external-icon: var(--dark-external-icon); - --color-scheme: var(--dark-color-scheme); -} - -.always-visible, -.always-visible .tsd-signatures { - display: inherit !important; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - line-height: 1.2; -} - -h1 > a:not(.link), -h2 > a:not(.link), -h3 > a:not(.link), -h4 > a:not(.link), -h5 > a:not(.link), -h6 > a:not(.link) { - text-decoration: none; - color: var(--color-text); -} - -h1 { - font-size: 1.875rem; - margin: 0.67rem 0; -} - -h2 { - font-size: 1.5rem; - margin: 0.83rem 0; -} - -h3 { - font-size: 1.25rem; - margin: 1rem 0; -} - -h4 { - font-size: 1.05rem; - margin: 1.33rem 0; -} - -h5 { - font-size: 1rem; - margin: 1.5rem 0; -} - -h6 { - font-size: 0.875rem; - margin: 2.33rem 0; -} - -.uppercase { - text-transform: uppercase; -} - -dl, -menu, -ol, -ul { - margin: 1em 0; -} - -dd { - margin: 0 0 0 40px; -} - -.container { - max-width: 1700px; - padding: 0 2rem; -} - -/* Footer */ -.tsd-generator { - border-top: 1px solid var(--color-accent); - padding-top: 1rem; - padding-bottom: 1rem; - max-height: 3.5rem; -} - -.tsd-generator > p { - margin-top: 0; - margin-bottom: 0; - padding: 0 1rem; -} - -.container-main { - margin: 0 auto; - /* toolbar, footer, margin */ - min-height: calc(100vh - 41px - 56px - 4rem); -} - -@keyframes fade-in { - from { - opacity: 0; - } - to { - opacity: 1; - } -} -@keyframes fade-out { - from { - opacity: 1; - visibility: visible; - } - to { - opacity: 0; - } -} -@keyframes fade-in-delayed { - 0% { - opacity: 0; - } - 33% { - opacity: 0; - } - 100% { - opacity: 1; - } -} -@keyframes fade-out-delayed { - 0% { - opacity: 1; - visibility: visible; - } - 66% { - opacity: 0; - } - 100% { - opacity: 0; - } -} -@keyframes pop-in-from-right { - from { - transform: translate(100%, 0); - } - to { - transform: translate(0, 0); - } -} -@keyframes pop-out-to-right { - from { - transform: translate(0, 0); - visibility: visible; - } - to { - transform: translate(100%, 0); - } -} -body { - background: var(--color-background); - font-family: "Segoe UI", sans-serif; - font-size: 16px; - color: var(--color-text); -} - -a { - color: var(--color-link); - text-decoration: none; -} -a:hover { - text-decoration: underline; -} -a.external[target="_blank"] { - background-image: var(--external-icon); - background-position: top 3px right; - background-repeat: no-repeat; - padding-right: 13px; -} - -code, -pre { - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; - padding: 0.2em; - margin: 0; - font-size: 0.875rem; - border-radius: 0.8em; -} - -pre { - position: relative; - white-space: pre; - white-space: pre-wrap; - word-wrap: break-word; - padding: 10px; - border: 1px solid var(--color-accent); -} -pre code { - padding: 0; - font-size: 100%; -} -pre > button { - position: absolute; - top: 10px; - right: 10px; - opacity: 0; - transition: opacity 0.1s; - box-sizing: border-box; -} -pre:hover > button, -pre > button.visible { - opacity: 1; -} - -blockquote { - margin: 1em 0; - padding-left: 1em; - border-left: 4px solid gray; -} - -.tsd-typography { - line-height: 1.333em; -} -.tsd-typography ul { - list-style: square; - padding: 0 0 0 20px; - margin: 0; -} -.tsd-typography .tsd-index-panel h3, -.tsd-index-panel .tsd-typography h3, -.tsd-typography h4, -.tsd-typography h5, -.tsd-typography h6 { - font-size: 1em; -} -.tsd-typography h5, -.tsd-typography h6 { - font-weight: normal; -} -.tsd-typography p, -.tsd-typography ul, -.tsd-typography ol { - margin: 1em 0; -} -.tsd-typography table { - border-collapse: collapse; - border: none; -} -.tsd-typography td, -.tsd-typography th { - padding: 6px 13px; - border: 1px solid var(--color-accent); -} -.tsd-typography thead, -.tsd-typography tr:nth-child(even) { - background-color: var(--color-background-secondary); -} - -.tsd-breadcrumb { - margin: 0; - padding: 0; - color: var(--color-text-aside); -} -.tsd-breadcrumb a { - color: var(--color-text-aside); - text-decoration: none; -} -.tsd-breadcrumb a:hover { - text-decoration: underline; -} -.tsd-breadcrumb li { - display: inline; -} -.tsd-breadcrumb li:after { - content: " / "; -} - -.tsd-comment-tags { - display: flex; - flex-direction: column; -} -dl.tsd-comment-tag-group { - display: flex; - align-items: center; - overflow: hidden; - margin: 0.5em 0; -} -dl.tsd-comment-tag-group dt { - display: flex; - margin-right: 0.5em; - font-size: 0.875em; - font-weight: normal; -} -dl.tsd-comment-tag-group dd { - margin: 0; -} -code.tsd-tag { - padding: 0.25em 0.4em; - border: 0.1em solid var(--color-accent); - margin-right: 0.25em; - font-size: 70%; -} -h1 code.tsd-tag:first-of-type { - margin-left: 0.25em; -} - -dl.tsd-comment-tag-group dd:before, -dl.tsd-comment-tag-group dd:after { - content: " "; -} -dl.tsd-comment-tag-group dd pre, -dl.tsd-comment-tag-group dd:after { - clear: both; -} -dl.tsd-comment-tag-group p { - margin: 0; -} - -.tsd-panel.tsd-comment .lead { - font-size: 1.1em; - line-height: 1.333em; - margin-bottom: 2em; -} -.tsd-panel.tsd-comment .lead:last-child { - margin-bottom: 0; -} - -.tsd-filter-visibility h4 { - font-size: 1rem; - padding-top: 0.75rem; - padding-bottom: 0.5rem; - margin: 0; -} -.tsd-filter-item:not(:last-child) { - margin-bottom: 0.5rem; -} -.tsd-filter-input { - display: flex; - width: fit-content; - width: -moz-fit-content; - align-items: center; - user-select: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - cursor: pointer; -} -.tsd-filter-input input[type="checkbox"] { - cursor: pointer; - position: absolute; - width: 1.5em; - height: 1.5em; - opacity: 0; -} -.tsd-filter-input input[type="checkbox"]:disabled { - pointer-events: none; -} -.tsd-filter-input svg { - cursor: pointer; - width: 1.5em; - height: 1.5em; - margin-right: 0.5em; - border-radius: 0.33em; - /* Leaving this at full opacity breaks event listeners on Firefox. - Don't remove unless you know what you're doing. */ - opacity: 0.99; -} -.tsd-filter-input input[type="checkbox"]:focus + svg { - transform: scale(0.95); -} -.tsd-filter-input input[type="checkbox"]:focus:not(:focus-visible) + svg { - transform: scale(1); -} -.tsd-checkbox-background { - fill: var(--color-accent); -} -input[type="checkbox"]:checked ~ svg .tsd-checkbox-checkmark { - stroke: var(--color-text); -} -.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-background { - fill: var(--color-background); - stroke: var(--color-accent); - stroke-width: 0.25rem; -} -.tsd-filter-input input:disabled ~ svg > .tsd-checkbox-checkmark { - stroke: var(--color-accent); -} - -.tsd-theme-toggle { - padding-top: 0.75rem; -} -.tsd-theme-toggle > h4 { - display: inline; - vertical-align: middle; - margin-right: 0.75rem; -} - -.tsd-hierarchy { - list-style: square; - margin: 0; -} -.tsd-hierarchy .target { - font-weight: bold; -} - -.tsd-full-hierarchy:not(:last-child) { - margin-bottom: 1em; - padding-bottom: 1em; - border-bottom: 1px solid var(--color-accent); -} -.tsd-full-hierarchy, -.tsd-full-hierarchy ul { - list-style: none; - margin: 0; - padding: 0; -} -.tsd-full-hierarchy ul { - padding-left: 1.5rem; -} -.tsd-full-hierarchy a { - padding: 0.25rem 0 !important; - font-size: 1rem; - display: inline-flex; - align-items: center; - color: var(--color-text); -} - -.tsd-panel-group.tsd-index-group { - margin-bottom: 0; -} -.tsd-index-panel .tsd-index-list { - list-style: none; - line-height: 1.333em; - margin: 0; - padding: 0.25rem 0 0 0; - overflow: hidden; - display: grid; - grid-template-columns: repeat(3, 1fr); - column-gap: 1rem; - grid-template-rows: auto; -} -@media (max-width: 1024px) { - .tsd-index-panel .tsd-index-list { - grid-template-columns: repeat(2, 1fr); - } -} -@media (max-width: 768px) { - .tsd-index-panel .tsd-index-list { - grid-template-columns: repeat(1, 1fr); - } -} -.tsd-index-panel .tsd-index-list li { - -webkit-page-break-inside: avoid; - -moz-page-break-inside: avoid; - -ms-page-break-inside: avoid; - -o-page-break-inside: avoid; - page-break-inside: avoid; -} - -.tsd-flag { - display: inline-block; - padding: 0.25em 0.4em; - border-radius: 4px; - color: var(--color-comment-tag-text); - background-color: var(--color-comment-tag); - text-indent: 0; - font-size: 75%; - line-height: 1; - font-weight: normal; -} - -.tsd-anchor { - position: relative; - top: -100px; -} - -.tsd-member { - position: relative; -} -.tsd-member .tsd-anchor + h3 { - display: flex; - align-items: center; - margin-top: 0; - margin-bottom: 0; - border-bottom: none; -} - -.tsd-navigation.settings { - margin: 1rem 0; -} -.tsd-navigation > a, -.tsd-navigation .tsd-accordion-summary { - width: calc(100% - 0.25rem); - display: flex; - align-items: center; -} -.tsd-navigation a, -.tsd-navigation summary > span, -.tsd-page-navigation a { - display: flex; - width: calc(100% - 0.25rem); - align-items: center; - padding: 0.25rem; - color: var(--color-text); - text-decoration: none; - box-sizing: border-box; -} -.tsd-navigation a.current, -.tsd-page-navigation a.current { - background: var(--color-active-menu-item); -} -.tsd-navigation a:hover, -.tsd-page-navigation a:hover { - text-decoration: underline; -} -.tsd-navigation ul, -.tsd-page-navigation ul { - margin-top: 0; - margin-bottom: 0; - padding: 0; - list-style: none; -} -.tsd-navigation li, -.tsd-page-navigation li { - padding: 0; - max-width: 100%; -} -.tsd-nested-navigation { - margin-left: 3rem; -} -.tsd-nested-navigation > li > details { - margin-left: -1.5rem; -} -.tsd-small-nested-navigation { - margin-left: 1.5rem; -} -.tsd-small-nested-navigation > li > details { - margin-left: -1.5rem; -} - -.tsd-page-navigation ul { - padding-left: 1.75rem; -} - -#tsd-sidebar-links a { - margin-top: 0; - margin-bottom: 0.5rem; - line-height: 1.25rem; -} -#tsd-sidebar-links a:last-of-type { - margin-bottom: 0; -} - -a.tsd-index-link { - padding: 0.25rem 0 !important; - font-size: 1rem; - line-height: 1.25rem; - display: inline-flex; - align-items: center; - color: var(--color-text); -} -.tsd-accordion-summary { - list-style-type: none; /* hide marker on non-safari */ - outline: none; /* broken on safari, so just hide it */ -} -.tsd-accordion-summary::-webkit-details-marker { - display: none; /* hide marker on safari */ -} -.tsd-accordion-summary, -.tsd-accordion-summary a { - user-select: none; - -moz-user-select: none; - -webkit-user-select: none; - -ms-user-select: none; - - cursor: pointer; -} -.tsd-accordion-summary a { - width: calc(100% - 1.5rem); -} -.tsd-accordion-summary > * { - margin-top: 0; - margin-bottom: 0; - padding-top: 0; - padding-bottom: 0; -} -.tsd-index-accordion .tsd-accordion-summary > svg { - margin-left: 0.25rem; -} -.tsd-index-content > :not(:first-child) { - margin-top: 0.75rem; -} -.tsd-index-heading { - margin-top: 1.5rem; - margin-bottom: 0.75rem; -} - -.tsd-kind-icon { - margin-right: 0.5rem; - width: 1.25rem; - height: 1.25rem; - min-width: 1.25rem; - min-height: 1.25rem; -} -.tsd-kind-icon path { - transform-origin: center; - transform: scale(1.1); -} -.tsd-signature > .tsd-kind-icon { - margin-right: 0.8rem; -} - -.tsd-panel { - margin-bottom: 2.5rem; -} -.tsd-panel.tsd-member { - margin-bottom: 4rem; -} -.tsd-panel:empty { - display: none; -} -.tsd-panel > h1, -.tsd-panel > h2, -.tsd-panel > h3 { - margin: 1.5rem -1.5rem 0.75rem -1.5rem; - padding: 0 1.5rem 0.75rem 1.5rem; -} -.tsd-panel > h1.tsd-before-signature, -.tsd-panel > h2.tsd-before-signature, -.tsd-panel > h3.tsd-before-signature { - margin-bottom: 0; - border-bottom: none; -} - -.tsd-panel-group { - margin: 4rem 0; -} -.tsd-panel-group.tsd-index-group { - margin: 2rem 0; -} -.tsd-panel-group.tsd-index-group details { - margin: 2rem 0; -} - -#tsd-search { - transition: background-color 0.2s; -} -#tsd-search .title { - position: relative; - z-index: 2; -} -#tsd-search .field { - position: absolute; - left: 0; - top: 0; - right: 2.5rem; - height: 100%; -} -#tsd-search .field input { - box-sizing: border-box; - position: relative; - top: -50px; - z-index: 1; - width: 100%; - padding: 0 10px; - opacity: 0; - outline: 0; - border: 0; - background: transparent; - color: var(--color-text); -} -#tsd-search .field label { - position: absolute; - overflow: hidden; - right: -40px; -} -#tsd-search .field input, -#tsd-search .title, -#tsd-toolbar-links a { - transition: opacity 0.2s; -} -#tsd-search .results { - position: absolute; - visibility: hidden; - top: 40px; - width: 100%; - margin: 0; - padding: 0; - list-style: none; - box-shadow: 0 0 4px rgba(0, 0, 0, 0.25); -} -#tsd-search .results li { - background-color: var(--color-background); - line-height: initial; - padding: 4px; -} -#tsd-search .results li:nth-child(even) { - background-color: var(--color-background-secondary); -} -#tsd-search .results li.state { - display: none; -} -#tsd-search .results li.current:not(.no-results), -#tsd-search .results li:hover:not(.no-results) { - background-color: var(--color-accent); -} -#tsd-search .results a { - display: flex; - align-items: center; - padding: 0.25rem; - box-sizing: border-box; -} -#tsd-search .results a:before { - top: 10px; -} -#tsd-search .results span.parent { - color: var(--color-text-aside); - font-weight: normal; -} -#tsd-search.has-focus { - background-color: var(--color-accent); -} -#tsd-search.has-focus .field input { - top: 0; - opacity: 1; -} -#tsd-search.has-focus .title, -#tsd-search.has-focus #tsd-toolbar-links a { - z-index: 0; - opacity: 0; -} -#tsd-search.has-focus .results { - visibility: visible; -} -#tsd-search.loading .results li.state.loading { - display: block; -} -#tsd-search.failure .results li.state.failure { - display: block; -} - -#tsd-toolbar-links { - position: absolute; - top: 0; - right: 2rem; - height: 100%; - display: flex; - align-items: center; - justify-content: flex-end; -} -#tsd-toolbar-links a { - margin-left: 1.5rem; -} -#tsd-toolbar-links a:hover { - text-decoration: underline; -} - -.tsd-signature { - margin: 0 0 1rem 0; - padding: 1rem 0.5rem; - border: 1px solid var(--color-accent); - font-family: Menlo, Monaco, Consolas, "Courier New", monospace; - font-size: 14px; - overflow-x: auto; -} - -.tsd-signature-keyword { - color: var(--color-ts-keyword); - font-weight: normal; -} - -.tsd-signature-symbol { - color: var(--color-text-aside); - font-weight: normal; -} - -.tsd-signature-type { - font-style: italic; - font-weight: normal; -} - -.tsd-signatures { - padding: 0; - margin: 0 0 1em 0; - list-style-type: none; -} -.tsd-signatures .tsd-signature { - margin: 0; - border-color: var(--color-accent); - border-width: 1px 0; - transition: background-color 0.1s; -} -.tsd-description .tsd-signatures .tsd-signature { - border-width: 1px; -} - -ul.tsd-parameter-list, -ul.tsd-type-parameter-list { - list-style: square; - margin: 0; - padding-left: 20px; -} -ul.tsd-parameter-list > li.tsd-parameter-signature, -ul.tsd-type-parameter-list > li.tsd-parameter-signature { - list-style: none; - margin-left: -20px; -} -ul.tsd-parameter-list h5, -ul.tsd-type-parameter-list h5 { - font-size: 16px; - margin: 1em 0 0.5em 0; -} -.tsd-sources { - margin-top: 1rem; - font-size: 0.875em; -} -.tsd-sources a { - color: var(--color-text-aside); - text-decoration: underline; -} -.tsd-sources ul { - list-style: none; - padding: 0; -} - -.tsd-page-toolbar { - position: sticky; - z-index: 1; - top: 0; - left: 0; - width: 100%; - color: var(--color-text); - background: var(--color-background-secondary); - border-bottom: 1px var(--color-accent) solid; - transition: transform 0.3s ease-in-out; -} -.tsd-page-toolbar a { - color: var(--color-text); - text-decoration: none; -} -.tsd-page-toolbar a.title { - font-weight: bold; -} -.tsd-page-toolbar a.title:hover { - text-decoration: underline; -} -.tsd-page-toolbar .tsd-toolbar-contents { - display: flex; - justify-content: space-between; - height: 2.5rem; - margin: 0 auto; -} -.tsd-page-toolbar .table-cell { - position: relative; - white-space: nowrap; - line-height: 40px; -} -.tsd-page-toolbar .table-cell:first-child { - width: 100%; -} -.tsd-page-toolbar .tsd-toolbar-icon { - box-sizing: border-box; - line-height: 0; - padding: 12px 0; -} - -.tsd-widget { - display: inline-block; - overflow: hidden; - opacity: 0.8; - height: 40px; - transition: - opacity 0.1s, - background-color 0.2s; - vertical-align: bottom; - cursor: pointer; -} -.tsd-widget:hover { - opacity: 0.9; -} -.tsd-widget.active { - opacity: 1; - background-color: var(--color-accent); -} -.tsd-widget.no-caption { - width: 40px; -} -.tsd-widget.no-caption:before { - margin: 0; -} - -.tsd-widget.options, -.tsd-widget.menu { - display: none; -} -input[type="checkbox"] + .tsd-widget:before { - background-position: -120px 0; -} -input[type="checkbox"]:checked + .tsd-widget:before { - background-position: -160px 0; -} - -img { - max-width: 100%; -} - -.tsd-anchor-icon { - display: inline-flex; - align-items: center; - margin-left: 0.5rem; - vertical-align: middle; - color: var(--color-text); -} - -.tsd-anchor-icon svg { - width: 1em; - height: 1em; - visibility: hidden; -} - -.tsd-anchor-link:hover > .tsd-anchor-icon svg { - visibility: visible; -} - -.deprecated { - text-decoration: line-through !important; -} - -.warning { - padding: 1rem; - color: var(--color-warning-text); - background: var(--color-background-warning); -} - -.tsd-kind-project { - color: var(--color-ts-project); -} -.tsd-kind-module { - color: var(--color-ts-module); -} -.tsd-kind-namespace { - color: var(--color-ts-namespace); -} -.tsd-kind-enum { - color: var(--color-ts-enum); -} -.tsd-kind-enum-member { - color: var(--color-ts-enum-member); -} -.tsd-kind-variable { - color: var(--color-ts-variable); -} -.tsd-kind-function { - color: var(--color-ts-function); -} -.tsd-kind-class { - color: var(--color-ts-class); -} -.tsd-kind-interface { - color: var(--color-ts-interface); -} -.tsd-kind-constructor { - color: var(--color-ts-constructor); -} -.tsd-kind-property { - color: var(--color-ts-property); -} -.tsd-kind-method { - color: var(--color-ts-method); -} -.tsd-kind-call-signature { - color: var(--color-ts-call-signature); -} -.tsd-kind-index-signature { - color: var(--color-ts-index-signature); -} -.tsd-kind-constructor-signature { - color: var(--color-ts-constructor-signature); -} -.tsd-kind-parameter { - color: var(--color-ts-parameter); -} -.tsd-kind-type-literal { - color: var(--color-ts-type-literal); -} -.tsd-kind-type-parameter { - color: var(--color-ts-type-parameter); -} -.tsd-kind-accessor { - color: var(--color-ts-accessor); -} -.tsd-kind-get-signature { - color: var(--color-ts-get-signature); -} -.tsd-kind-set-signature { - color: var(--color-ts-set-signature); -} -.tsd-kind-type-alias { - color: var(--color-ts-type-alias); -} - -/* if we have a kind icon, don't color the text by kind */ -.tsd-kind-icon ~ span { - color: var(--color-text); -} - -* { - scrollbar-width: thin; - scrollbar-color: var(--color-accent) var(--color-icon-background); -} - -*::-webkit-scrollbar { - width: 0.75rem; -} - -*::-webkit-scrollbar-track { - background: var(--color-icon-background); -} - -*::-webkit-scrollbar-thumb { - background-color: var(--color-accent); - border-radius: 999rem; - border: 0.25rem solid var(--color-icon-background); -} - -/* mobile */ -@media (max-width: 769px) { - .tsd-widget.options, - .tsd-widget.menu { - display: inline-block; - } - - .container-main { - display: flex; - } - html .col-content { - float: none; - max-width: 100%; - width: 100%; - } - html .col-sidebar { - position: fixed !important; - overflow-y: auto; - -webkit-overflow-scrolling: touch; - z-index: 1024; - top: 0 !important; - bottom: 0 !important; - left: auto !important; - right: 0 !important; - padding: 1.5rem 1.5rem 0 0; - width: 75vw; - visibility: hidden; - background-color: var(--color-background); - transform: translate(100%, 0); - } - html .col-sidebar > *:last-child { - padding-bottom: 20px; - } - html .overlay { - content: ""; - display: block; - position: fixed; - z-index: 1023; - top: 0; - left: 0; - right: 0; - bottom: 0; - background-color: rgba(0, 0, 0, 0.75); - visibility: hidden; - } - - .to-has-menu .overlay { - animation: fade-in 0.4s; - } - - .to-has-menu .col-sidebar { - animation: pop-in-from-right 0.4s; - } - - .from-has-menu .overlay { - animation: fade-out 0.4s; - } - - .from-has-menu .col-sidebar { - animation: pop-out-to-right 0.4s; - } - - .has-menu body { - overflow: hidden; - } - .has-menu .overlay { - visibility: visible; - } - .has-menu .col-sidebar { - visibility: visible; - transform: translate(0, 0); - display: flex; - flex-direction: column; - gap: 1.5rem; - max-height: 100vh; - padding: 1rem 2rem; - } - .has-menu .tsd-navigation { - max-height: 100%; - } -} - -/* one sidebar */ -@media (min-width: 770px) { - .container-main { - display: grid; - grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); - grid-template-areas: "sidebar content"; - margin: 2rem auto; - } - - .col-sidebar { - grid-area: sidebar; - } - .col-content { - grid-area: content; - padding: 0 1rem; - } -} -@media (min-width: 770px) and (max-width: 1399px) { - .col-sidebar { - max-height: calc(100vh - 2rem - 42px); - overflow: auto; - position: sticky; - top: 42px; - padding-top: 1rem; - } - .site-menu { - margin-top: 1rem; - } -} - -/* two sidebars */ -@media (min-width: 1200px) { - .container-main { - grid-template-columns: minmax(0, 1fr) minmax(0, 2.5fr) minmax(0, 20rem); - grid-template-areas: "sidebar content toc"; - } - - .col-sidebar { - display: contents; - } - - .page-menu { - grid-area: toc; - padding-left: 1rem; - } - .site-menu { - grid-area: sidebar; - } - - .site-menu { - margin-top: 1rem 0; - } - - .page-menu, - .site-menu { - max-height: calc(100vh - 2rem - 42px); - overflow: auto; - position: sticky; - top: 42px; - } -} diff --git a/docs/classes/_ic_reactor_store.ActorManager.html b/docs/classes/_ic_reactor_store.ActorManager.html deleted file mode 100644 index a4ec8725df..0000000000 --- a/docs/classes/_ic_reactor_store.ActorManager.html +++ /dev/null @@ -1,56 +0,0 @@ -ActorManager | IC ReActor -

Type Parameters

Constructors

Properties

DEFAULT_ACTOR_STATE: ActorState<A> = ...
actor: null | A = null
actorStore: ActorStore<A>
agentManager: AgentManager
canisterId: CanisterId
idlFactory: InterfaceFactory
unsubscribeAgent: (() => void) = ...

Type declaration

    • (): void
    • Returns void

visitFunction: ExtractedService<A>

Methods

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/classes/_ic_reactor_store.AgentManager.html b/docs/classes/_ic_reactor_store.AgentManager.html deleted file mode 100644 index 4f5af2789a..0000000000 --- a/docs/classes/_ic_reactor_store.AgentManager.html +++ /dev/null @@ -1,54 +0,0 @@ -AgentManager | IC ReActor -

Constructors

Properties

DEFAULT_AUTH_STATE: AgentAuthState = ...
agent: HttpAgent
authStore: AgentAuthStore
isLocalEnv: boolean
subscribers: ((agent) => void)[] = []

Type declaration

    • (agent): void
    • Parameters

      Returns void

Methods

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/classes/_ic_reactor_store.AuthClient.html b/docs/classes/_ic_reactor_store.AuthClient.html deleted file mode 100644 index 379cad61d9..0000000000 --- a/docs/classes/_ic_reactor_store.AuthClient.html +++ /dev/null @@ -1,96 +0,0 @@ -AuthClient | IC ReActor -

Tool to manage authentication and identity

-

Constructors

  • Parameters

    • _identity: Identity
    • _key: SignIdentity
    • _chain: null | DelegationChain
    • _storage: AuthClientStorage
    • idleManager: undefined | IdleManager
    • _createOptions: undefined | AuthClientCreateOptions
    • Optional _idpWindow: Window
    • Optional _eventHandler: ((event) => void)

    Returns AuthClient

Properties

_chain: any
_createOptions: any
_eventHandler?: any
_getEventHandler: any
_handleFailure: any
_handleSuccess: any
_identity: any
_idpWindow?: any
_key: any
_removeEventListener: any
_storage: any
idleManager: undefined | IdleManager

Methods

  • Returns Identity

  • Returns Promise<boolean>

  • AuthClient Login - -Opens up a new window to authenticate with Internet Identity

    -

    Parameters

    • Optional options: {
          derivationOrigin?: string | URL;
          identityProvider?: string | URL;
          maxTimeToLive?: bigint;
          onError?: ((error?) => void) | ((error?) => Promise<void>);
          onSuccess?: (() => void) | (() => Promise<void>);
          windowOpenerFeatures?: string;
      }
      • Optional derivationOrigin?: string | URL

        Origin for Identity Provider to use while generating the delegated identity. For II, the derivation origin must authorize this origin by setting a record at <derivation-origin>/.well-known/ii-alternative-origins.

        -
      • Optional identityProvider?: string | URL

        Identity provider

        -

        Default

        "https://identity.ic0.app"
        -
        -
      • Optional maxTimeToLive?: bigint

        Expiration of the authentication in nanoseconds

        -

        Default

        BigInt(8) hours * BigInt(3_600_000_000_000) nanoseconds
        -
        -
      • Optional onError?: ((error?) => void) | ((error?) => Promise<void>)

        Callback in case authentication fails

        -
      • Optional onSuccess?: (() => void) | (() => Promise<void>)

        Callback once login has completed

        -
      • Optional windowOpenerFeatures?: string

        Configures the opened authentication window

        -

    Returns Promise<void>

    Example

    const authClient = await AuthClient.create();
    authClient.login({
    identityProvider: 'http://<canisterID>.127.0.0.1:8000',
    maxTimeToLive: BigInt (7) * BigInt(24) * BigInt(3_600_000_000_000), // 1 week
    windowOpenerFeatures: "toolbar=0,location=0,menubar=0,width=500,height=500,left=100,top=100",
    onSuccess: () => {
    console.log('Login Successful!');
    },
    onError: (error) => {
    console.error('Login Failed: ', error);
    }
    }); -
    -
  • Parameters

    • Optional options: {
          returnTo?: string;
      }
      • Optional returnTo?: string

    Returns Promise<void>

  • Create an AuthClient to manage authentication and identity

    -

    Parameters

    • Optional options: {
          identity?: SignIdentity;
          idleOptions?: IdleOptions;
          keyType?: BaseKeyType;
          storage?: AuthClientStorage;
      }
      • Optional identity?: SignIdentity

        An Identity to use as the base. - By default, a new AnonymousIdentity

        -
      • Optional idleOptions?: IdleOptions

        Options to handle idle timeouts

        -

        Default

        after 10 minutes, invalidates the identity
        -
        -
      • Optional keyType?: BaseKeyType

        type to use for the base key

        -

        Default

        'ECDSA'
        If you are using a custom storage provider that does not support CryptoKey storage,
        you should use 'Ed25519' as the key type, as it can serialize to a string -
        -
      • Optional storage?: AuthClientStorage

        AuthClientStorage

        -

        Description

        Optional storage with get, set, and remove. Uses IdbStorage by default

        -

    Returns Promise<AuthClient>

    Constructs

    AuthClient

    -

    See

      -
    • AuthClientCreateOptions
    • -
    • SignIdentity
    • -
    • AuthClientStorage
    • -
    • IdleOptions -Default behavior is to clear stored identity and reload the page when a user goes idle, unless you set the disableDefaultIdleCallback flag or pass in a custom idle callback.
    • -
    -

    Example

    const authClient = await AuthClient.create({
    idleOptions: {
    disableIdle: true
    }
    }) -
    -

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/classes/_ic_reactor_store.CandidManager.html b/docs/classes/_ic_reactor_store.CandidManager.html deleted file mode 100644 index 216392cd51..0000000000 --- a/docs/classes/_ic_reactor_store.CandidManager.html +++ /dev/null @@ -1,46 +0,0 @@ -CandidManager | IC ReActor -

Constructors

Properties

Methods

Constructors

Properties

agent: HttpAgent
didjsId: string

Methods

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/classes/_ic_reactor_store.HttpAgent.html b/docs/classes/_ic_reactor_store.HttpAgent.html deleted file mode 100644 index 71842fc6b8..0000000000 --- a/docs/classes/_ic_reactor_store.HttpAgent.html +++ /dev/null @@ -1,70 +0,0 @@ -HttpAgent | IC ReActor -

Implements

  • Agent

Constructors

Properties

#private: any
_callOptions?: any
_credentials: any
_fetch: any
_fetchOptions?: any
_host: any
_identity: any
_isAgent: true = true
_requestAndRetry: any
_retryTimes: any
_rootKeyFetched: any
_timeDiffMsecs: any
rootKey: ArrayBuffer

Methods

  • Parameters

    • request: HttpAgentRequest

    Returns Promise<HttpAgentRequest>

  • Parameters

    • type: "query" | "update"
    • fn: HttpAgentRequestTransformFn
    • Optional priority: number

    Returns void

  • Parameters

    Returns Promise<SubmitResponse>

  • Parameters

    Returns Promise<any>

  • Parameters

    Returns Promise<undefined | SubnetStatus>

  • Returns Promise<Principal>

  • Returns void

  • Returns boolean

  • Parameters

    Returns Promise<ApiQueryResponse>

  • Parameters

    Returns Promise<ReadStateResponse>

  • Parameters

    Returns void

  • Returns Promise<JsonObject>

  • Allows agent to sync its time with the network. Can be called during intialization or mid-lifecycle if the device's clock has drifted away from the network time. This is necessary to set the Expiry for a request

    -

    Parameters

    • Optional canisterId: Principal

      Pass a canister ID if you need to sync the time with a particular replica. Uses the management canister by default

      -

    Returns Promise<void>

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/classes/_ic_reactor_store.Principal.html b/docs/classes/_ic_reactor_store.Principal.html deleted file mode 100644 index 97fdeccf4d..0000000000 --- a/docs/classes/_ic_reactor_store.Principal.html +++ /dev/null @@ -1,72 +0,0 @@ -Principal | IC ReActor -

Constructors

Properties

_arr: any
_isPrincipal: true = true

Methods

  • Utility method taking a Principal to compare against. Used for determining canister ranges in certificate verification

    -

    Parameters

    Returns "lt" | "eq" | "gt"

    'lt' | 'eq' | 'gt' a string, representing less than, equal to, or greater than

    -
  • Utility method checking whether a provided Principal is greater than or equal to the current one using the Principal.compareTo method

    -

    Parameters

    Returns boolean

    boolean

    -
  • Returns boolean

  • Utility method checking whether a provided Principal is less than or equal to the current one using the Principal.compareTo method

    -

    Parameters

    Returns boolean

    boolean

    -
  • Returns string

  • Serializes to JSON

    -

    Returns JsonnablePrincipal

    a JSON object with a single key, JSON_KEY_PRINCIPAL, whose value is the principal as a string

    -
  • Returns string

  • Returns string

  • Returns Uint8Array

  • Returns Principal

  • Parameters

    • other: unknown

    Returns Principal

  • Parameters

    • hex: string

    Returns Principal

  • Parameters

    • text: string

    Returns Principal

  • Utility method, returning the principal representing the management canister, decoded from the hex string 'aaaaa-aa'

    -

    Returns Principal

    principal of the management canister

    -
  • Parameters

    Returns Principal

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/classes/_ic_reactor_visitor.VisitDetails.html b/docs/classes/_ic_reactor_visitor.VisitDetails.html deleted file mode 100644 index d685d9ce28..0000000000 --- a/docs/classes/_ic_reactor_visitor.VisitDetails.html +++ /dev/null @@ -1,73 +0,0 @@ -VisitDetails | IC ReActor -

Type Parameters

Hierarchy

Constructors

  • Type Parameters

    Returns VisitDetails<A>

Properties

counter: number = 0
visitFixedInt: (<T>(t, __label) => InputDetails) = ...

Type declaration

visitFixedNat: (<T>(t, __label) => InputDetails) = ...

Type declaration

visitFloat: (<T>(t, __label) => InputDetails) = ...

Type declaration

visitInt: (<T>(t, __label) => InputDetails) = ...

Type declaration

visitNat: (<T>(t, __label) => InputDetails) = ...

Type declaration

visitedRecursive: Record<string, true> = {}

Methods

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/classes/_ic_reactor_visitor.VisitFields.html b/docs/classes/_ic_reactor_visitor.VisitFields.html deleted file mode 100644 index 12b7c597e5..0000000000 --- a/docs/classes/_ic_reactor_visitor.VisitFields.html +++ /dev/null @@ -1,67 +0,0 @@ -VisitFields | IC ReActor -

Type Parameters

Hierarchy

Constructors

Methods

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/classes/_ic_reactor_visitor.VisitRandomArgs.html b/docs/classes/_ic_reactor_visitor.VisitRandomArgs.html deleted file mode 100644 index 9ed3c8d0df..0000000000 --- a/docs/classes/_ic_reactor_visitor.VisitRandomArgs.html +++ /dev/null @@ -1,69 +0,0 @@ -VisitRandomArgs | IC ReActor -

Type Parameters

Hierarchy

  • Visitor<any, any>
    • VisitRandomArgs

Constructors

Properties

savedRec: Record<string, any> = {}

Methods

  • Type Parameters

    • T

    Parameters

    • t: ConstructType<T>
    • data: any

    Returns any

  • Parameters

    • t: EmptyClass
    • data: any

    Returns any

  • Type Parameters

    • T

    Parameters

    • t: PrimitiveType<T>
    • data: any

    Returns any

  • Type Parameters

    • T

    Parameters

    • _t: OptClass<T>
    • type: Type<any>
    • isRecursive: boolean

    Returns any

  • Type Parameters

    • T

    Parameters

    • t: PrimitiveType<T>
    • data: any

    Returns any

  • Parameters

    • _t: RecordClass
    • fields: [string, Type<any>][]
    • isRecursive: boolean

    Returns any

  • Parameters

    • t: ReservedClass
    • data: any

    Returns any

  • Parameters

    • t: ServiceClass
    • data: any

    Returns any

  • Type Parameters

    • T extends any[]

    Parameters

    • _t: TupleClass<T>
    • components: Type<any>[]
    • isRecursive: boolean

    Returns any

  • Type Parameters

    • T

    Parameters

    • t: Type<T>
    • data: any

    Returns any

  • Parameters

    • _t: VariantClass
    • fields: [string, Type<any>][]
    • isRecursive: boolean

    Returns any

  • Type Parameters

    • T

    Parameters

    • _t: VecClass<T>
    • type: Type<any>
    • isRecursive: boolean

    Returns any

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/classes/_ic_reactor_visitor.VisitRandomResponse.html b/docs/classes/_ic_reactor_visitor.VisitRandomResponse.html deleted file mode 100644 index 61c03d7e4f..0000000000 --- a/docs/classes/_ic_reactor_visitor.VisitRandomResponse.html +++ /dev/null @@ -1,69 +0,0 @@ -VisitRandomResponse | IC ReActor -

Type Parameters

Hierarchy

Constructors

Properties

savedRec: Record<string, any> = {}

Methods

  • Type Parameters

    • T

    Parameters

    • t: ConstructType<T>
    • data: any

    Returns any

  • Parameters

    • t: EmptyClass
    • data: any

    Returns any

  • Type Parameters

    • T

    Parameters

    • t: PrimitiveType<T>
    • data: any

    Returns any

  • Type Parameters

    • T

    Parameters

    • t: PrimitiveType<T>
    • data: any

    Returns any

  • Parameters

    • _t: RecordClass
    • fields: [string, Type<any>][]
    • isRecursive: boolean

    Returns any

  • Parameters

    • t: ReservedClass
    • data: any

    Returns any

  • Parameters

    • t: ServiceClass
    • data: any

    Returns any

  • Type Parameters

    • T extends any[]

    Parameters

    • _t: TupleClass<T>
    • components: Type<any>[]
    • isRecursive: boolean

    Returns any

  • Parameters

    • _t: VariantClass
    • fields: [string, Type<any>][]
    • isRecursive: boolean

    Returns any

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/classes/_ic_reactor_visitor.VisitTransform.html b/docs/classes/_ic_reactor_visitor.VisitTransform.html deleted file mode 100644 index 4988895e5e..0000000000 --- a/docs/classes/_ic_reactor_visitor.VisitTransform.html +++ /dev/null @@ -1,64 +0,0 @@ -VisitTransform | IC ReActor -

Type Parameters

Hierarchy

Constructors

Methods

  • Type Parameters

    • T

    Parameters

    Returns MethodResult<A, M>

  • Type Parameters

    • T

    Parameters

    Returns MethodResult<A, M>

  • Parameters

    Returns MethodResult<A, M>

  • Parameters

    Returns MethodResult<A, M>

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/classes/_ic_reactor_visitor.VisitTransformTable.html b/docs/classes/_ic_reactor_visitor.VisitTransformTable.html deleted file mode 100644 index 860e0287d6..0000000000 --- a/docs/classes/_ic_reactor_visitor.VisitTransformTable.html +++ /dev/null @@ -1,64 +0,0 @@ -VisitTransformTable | IC ReActor -

Type Parameters

Hierarchy

  • Visitor<DynamicDataArgs, MethodResult<A, M>>
    • VisitTransformTable

Constructors

Methods

  • Type Parameters

    • T

    Parameters

    • t: ConstructType<T>
    • data: DynamicDataArgs<any>

    Returns MethodResult<A, M>

  • Parameters

    • t: EmptyClass
    • data: DynamicDataArgs<any>

    Returns MethodResult<A, M>

  • Parameters

    • t: NullClass
    • data: DynamicDataArgs<any>

    Returns MethodResult<A, M>

  • Type Parameters

    • T

    Parameters

    • t: PrimitiveType<T>
    • data: DynamicDataArgs<any>

    Returns MethodResult<A, M>

  • Parameters

    • _t: RecordClass
    • fields: [string, Type<any>][]
    • __namedParameters: DynamicDataArgs<Record<string, unknown>>

    Returns MethodResult<A, M>

  • Parameters

    • t: ReservedClass
    • data: DynamicDataArgs<any>

    Returns MethodResult<A, M>

  • Parameters

    • t: ServiceClass
    • data: DynamicDataArgs<any>

    Returns MethodResult<A, M>

  • Type Parameters

    • T extends any[]

    Parameters

    • _t: TupleClass<T>
    • components: Type<any>[]
    • __namedParameters: DynamicDataArgs<T>

    Returns MethodResult<A, M>

  • Parameters

    • t: VariantClass
    • fields: [string, Type<any>][]
    • __namedParameters: DynamicDataArgs<Record<string, unknown>>

    Returns MethodResult<A, M>

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/functions/_ic_reactor_store.createActorManager.html b/docs/functions/_ic_reactor_store.createActorManager.html deleted file mode 100644 index 14df35fdd2..0000000000 --- a/docs/functions/_ic_reactor_store.createActorManager.html +++ /dev/null @@ -1,46 +0,0 @@ -createActorManager | IC ReActor -
  • Create an actor manager

    -

    Example


    // actor.ts
    import { createActorManager } from "@ic-reactor/store"
    import { candid, canisterId, idlFactory } from "./candid"
    import { agentManager } from "./agent"

    type Candid = typeof candid

    const actorManager = createActorManager<Candid>({
    agentManager,
    canisterId,
    idlFactory,
    })

    // later in your code
    const data = await actorManager.callMethod("version") -
    -

    Type Parameters

    Parameters

    Returns ActorManager<A>

      -
    • The actor manager
    • -
    -

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/functions/_ic_reactor_store.createAgentManager.html b/docs/functions/_ic_reactor_store.createAgentManager.html deleted file mode 100644 index dd3c167653..0000000000 --- a/docs/functions/_ic_reactor_store.createAgentManager.html +++ /dev/null @@ -1,56 +0,0 @@ -createAgentManager | IC ReActor -
  • Create an agent manager

    -

    Example


    // agent.ts
    import { createAgentManager } from "@ic-reactor/store"

    export const agentManager = createAgentManager() // connect to the default ic network

    // later in your code
    const identity = await agentManager.authenticate() -
    -
      -
    • Local Agent
    • -
    -
    // agent.ts
    import { createAgentManager } from "@ic-reactor/store"

    export const agentManager = createAgentManager({
    isLocalEnv: true,
    port: 8000, // default port is 4943
    }) -
    -
      -
    • Or you can use the host option directly
    • -
    -
    export const agentManager = createAgentManager({
    host: "http://localhost:8000",
    }) -
    -

    Parameters

    Returns AgentManager

      -
    • The agent manager
    • -
    -

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/functions/_ic_reactor_store.createReActorStore.html b/docs/functions/_ic_reactor_store.createReActorStore.html deleted file mode 100644 index 4bf83c5def..0000000000 --- a/docs/functions/_ic_reactor_store.createReActorStore.html +++ /dev/null @@ -1,47 +0,0 @@ -createReActorStore | IC ReActor -
  • Create a ReActor store.

    -

    Example


    import { createReActorStore } from "@ic-reactor/store"
    import { candid, canisterId, idlFactory } from "./candid"

    type Candid = typeof candid

    const { callMethod, agentManager } = createReActorStore<Candid>({
    canisterId,
    idlFactory,
    })

    // later in your code
    const identity = await agentManager.authenticate()
    const data = await callMethod("version") -
    -

    Type Parameters

    Parameters

    Returns ActorManager<A>

      -
    • The actor manager.
    • -
    -

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/functions/_ic_reactor_store.createStoreWithOptionalDevtools.html b/docs/functions/_ic_reactor_store.createStoreWithOptionalDevtools.html deleted file mode 100644 index 96b5e57126..0000000000 --- a/docs/functions/_ic_reactor_store.createStoreWithOptionalDevtools.html +++ /dev/null @@ -1,40 +0,0 @@ -createStoreWithOptionalDevtools | IC ReActor -

Function createStoreWithOptionalDevtools

  • Parameters

    • initialState: any
    • options: StoreOptions

    Returns WithDevtools<StoreApi<any>>

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/functions/_ic_reactor_store.generateActorHash.html b/docs/functions/_ic_reactor_store.generateActorHash.html deleted file mode 100644 index 46833138f0..0000000000 --- a/docs/functions/_ic_reactor_store.generateActorHash.html +++ /dev/null @@ -1,40 +0,0 @@ -generateActorHash | IC ReActor -

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/functions/_ic_reactor_store.generateHash.html b/docs/functions/_ic_reactor_store.generateHash.html deleted file mode 100644 index 0d00339884..0000000000 --- a/docs/functions/_ic_reactor_store.generateHash.html +++ /dev/null @@ -1,40 +0,0 @@ -generateHash | IC ReActor -

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/functions/_ic_reactor_store.generateRequestHash.html b/docs/functions/_ic_reactor_store.generateRequestHash.html deleted file mode 100644 index d082290591..0000000000 --- a/docs/functions/_ic_reactor_store.generateRequestHash.html +++ /dev/null @@ -1,40 +0,0 @@ -generateRequestHash | IC ReActor -

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/functions/_ic_reactor_store.jsonToString.html b/docs/functions/_ic_reactor_store.jsonToString.html deleted file mode 100644 index eafc01cf02..0000000000 --- a/docs/functions/_ic_reactor_store.jsonToString.html +++ /dev/null @@ -1,40 +0,0 @@ -jsonToString | IC ReActor -

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/functions/_ic_reactor_store.stringToHash.html b/docs/functions/_ic_reactor_store.stringToHash.html deleted file mode 100644 index 87a8f46820..0000000000 --- a/docs/functions/_ic_reactor_store.stringToHash.html +++ /dev/null @@ -1,40 +0,0 @@ -stringToHash | IC ReActor -

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/functions/_ic_reactor_visitor.convertStringToNumber.html b/docs/functions/_ic_reactor_visitor.convertStringToNumber.html deleted file mode 100644 index c4c4a3790b..0000000000 --- a/docs/functions/_ic_reactor_visitor.convertStringToNumber.html +++ /dev/null @@ -1,40 +0,0 @@ -convertStringToNumber | IC ReActor -

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/functions/_ic_reactor_visitor.extractAndSortArgs.html b/docs/functions/_ic_reactor_visitor.extractAndSortArgs.html deleted file mode 100644 index 6fe2a03132..0000000000 --- a/docs/functions/_ic_reactor_visitor.extractAndSortArgs.html +++ /dev/null @@ -1,40 +0,0 @@ -extractAndSortArgs | IC ReActor -

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/functions/_ic_reactor_visitor.isImage.html b/docs/functions/_ic_reactor_visitor.isImage.html deleted file mode 100644 index 757ea461fb..0000000000 --- a/docs/functions/_ic_reactor_visitor.isImage.html +++ /dev/null @@ -1,40 +0,0 @@ -isImage | IC ReActor -

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/functions/_ic_reactor_visitor.isQuery.html b/docs/functions/_ic_reactor_visitor.isQuery.html deleted file mode 100644 index 9fd9baccdb..0000000000 --- a/docs/functions/_ic_reactor_visitor.isQuery.html +++ /dev/null @@ -1,40 +0,0 @@ -isQuery | IC ReActor -

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/functions/_ic_reactor_visitor.isUrl.html b/docs/functions/_ic_reactor_visitor.isUrl.html deleted file mode 100644 index 33d870e597..0000000000 --- a/docs/functions/_ic_reactor_visitor.isUrl.html +++ /dev/null @@ -1,40 +0,0 @@ -isUrl | IC ReActor -

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/functions/_ic_reactor_visitor.validateError.html b/docs/functions/_ic_reactor_visitor.validateError.html deleted file mode 100644 index e825cd3ccd..0000000000 --- a/docs/functions/_ic_reactor_visitor.validateError.html +++ /dev/null @@ -1,40 +0,0 @@ -validateError | IC ReActor -
  • Parameters

    • t: Type<any>

    Returns ((value) => string | true)

      • (value): string | true
      • Parameters

        • value: any

        Returns string | true

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/functions/_ic_reactor_visitor.validateNumberError.html b/docs/functions/_ic_reactor_visitor.validateNumberError.html deleted file mode 100644 index eb1496cce5..0000000000 --- a/docs/functions/_ic_reactor_visitor.validateNumberError.html +++ /dev/null @@ -1,40 +0,0 @@ -validateNumberError | IC ReActor -
  • Parameters

    • t: Type<any>

    Returns ((value) => string | true)

      • (value): string | true
      • Parameters

        • value: string

        Returns string | true

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/hierarchy.html b/docs/hierarchy.html deleted file mode 100644 index 3a80adca14..0000000000 --- a/docs/hierarchy.html +++ /dev/null @@ -1,40 +0,0 @@ -IC ReActor -

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/ic-reactor.png b/docs/ic-reactor.png deleted file mode 100644 index e48f4a20f20faf6df9e27c91f4d4c631688ec48b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 125268 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

F=^DSZ=!ayr^VJz9q3Hs|uoD?&&X6cVMG?~N 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 ReActor -

IC ReActor

IC-Reactor: A Suite of Frontend Utilities for Internet Computer (IC) Development

Welcome to IC-Reactor, a comprehensive collection of JavaScript libraries designed to simplify and enhance frontend development on the Internet Computer (IC) blockchain platform. This project provides a set of tools that cater to various aspects of frontend development, ranging from vanilla JavaScript applications to sophisticated React-based projects.

-

Packages Overview

IC-Reactor comprises the following packages, each tailored for specific needs and use cases within the IC ecosystem:

-

1. @ic-reactor/react

Aimed at React developers, this library integrates seamlessly with React applications, providing custom hooks and context for managing blockchain interactions. Whether you're querying data from IC actors, updating states, or handling authentication, @ic-reactor/react streamlines these processes in a React-friendly way.

-

2. @ic-reactor/core

The core library serves as the foundation for managing and interacting with IC actors. It provides essential functionalities like actor initialization, state tracking, and simplified methods for queries and updates. It's a versatile toolkit that can be utilized in various JavaScript environments, ensuring flexibility across different front-end development scenarios.

-

3. @ic-reactor/store

This package is the backbone of the IC-Reactor suite. It provides a simple yet powerful state management utility for IC actors. It's designed to be used in conjunction with the other packages, but it can also be used independently in any JavaScript application.

-

Versatility Across Front-End Development

Whether you're building a simple vanilla JavaScript application, a complex React project, or anything in between, the IC-Reactor suite is equipped to support your development process. By abstracting the complexities of blockchain interactions and state management, these libraries allow developers to focus on building feature-rich, responsive, and user-friendly front-end applications on the Internet Computer platform.

-

Leveraging the power of these libraries, developers can efficiently handle a range of tasks from querying and displaying blockchain data to managing user authentication states - all within the familiar ecosystem of JavaScript and React.

-

@ic-reactor/react @ic-reactor/react

@ic-reactor/react is a React library designed to seamlessly integrate Internet Computer (IC) blockchain interactions into your React applications. It simplifies the process of managing actor states, performing queries, and handling updates within the IC blockchain ecosystem.

-

Key Features

    -
  • React Context Integration: Utilizes React Context for managing global state related to IC actors.
  • -
  • Custom React Hooks: Provides custom hooks (useQueryCall, useUpdateCall, useAuthClient) for easy interaction with IC actors.
  • -
  • Simplified Actor Interaction: Streamlines the process of querying and updating data from IC actors.
  • -
  • Efficient State Management: Manages loading, error, and data states efficiently within React components.
  • -
-

Installation

To install @ic-reactor/react, run the following command:

-
npm install @ic-reactor/react
-
-

Or using yarn:

-
yarn add @ic-reactor/react
-
-

Usage

Examples

For more complex examples, refer to the examples directory.

-

@ic-reactor/core npm version

@ic-reactor/core is a foundational library for managing and interacting with Internet Computer (IC) blockchain actors within your application. It simplifies the process of initializing actors, handling state, authentication, performing queries and updates.

-

Key Features

    -
  • Efficient Actor Initialization and Management: Streamline the process of initializing and managing IC actors.
  • -
  • State Management: Track loading, authentication, and error states easily.
  • -
  • Query and Update Functionality: Simplified methods for querying data from actors and updating actor states.
  • -
  • Testability: Built with testing in mind, allowing you to easily test actor interactions.
  • -
-

Installation

To install @ic-reactor/core, run:

-
npm install @ic-reactor/core
-
-

Or with yarn:

-
yarn add @ic-reactor/core
-
-

Usage

@ic-reactor/store @ic-reactor/store

@ic-reactor/store is a state management utility designed for applications working with the Internet Computer (IC) blockchain. It provides a simplified way to manage actor states, handle asynchronous calls, and maintain global state in your IC blockchain applications.

-

Key Features

    -
  • Simplified Actor State Management: Manage the state of your actors with ease.
  • -
  • Asynchronous Call Handling: Facilitate asynchronous calls to IC actors.
  • -
  • Error and Loading State Management: Easily track loading and error states across your application.
  • -
  • Default State Template: Start with a predefined default state structure.
  • -
-

Installation

To install @ic-reactor/store, use npm:

-
npm install @ic-reactor/store
-
-

Or with yarn:

-
yarn add @ic-reactor/store
-
-

Usage

We Welcome Feature Requests and Contributions

Feature Requests

Your feedback and ideas are invaluable in helping IC-Reactor evolve and improve. We warmly welcome feature requests and suggestions that can enhance the functionality and usability of our libraries. If there's something you'd like to see added or improved, please feel free to share your thoughts:

-
    -
  • Submit a Feature Request: You can use the GitHub Issues section of the respective package repository to submit feature requests. Please provide as much detail as possible about the feature and how it would benefit users.

    -
  • -
  • Discussion and Planning: Our team is open to discussing potential features and their implementation. We value community input and are always looking for ways to make our tools more useful and accessible.

    -
  • -
-

Contributing to IC-Reactor

IC-Reactor is an open-source project, and we encourage contributions from developers of all skill levels. Whether you're fixing bugs, adding features, or improving documentation, your help is welcome. Here's how you can contribute:

-
    -
  1. Check the Issues: Browse the existing issues for bugs or feature requests that interest you. You can also create a new issue if you have a proposal or have identified a bug.

    -
  2. -
  3. Fork and Clone: Fork the repository you wish to contribute to, and clone it to your local machine.

    -
  4. -
  5. Create a Branch: Make your changes in a new branch. Naming your branch something relevant to your changes can be helpful.

    -
  6. -
  7. Develop and Test: Make your changes and test them thoroughly. Ensure you adhere to the existing code style and guidelines.

    -
  8. -
  9. Submit a Pull Request: Once you're satisfied with your changes, push your branch to your fork and submit a pull request to the main repository. Provide a clear description of your changes and any relevant issue numbers.

    -
  10. -
  11. Review and Merge: The maintainers will review your pull request and either merge it or request changes. If your pull request is merged, you will be credited as a contributor.

    -
  12. -
-

Join Our Community

We believe in the power of community collaboration to create amazing tools. Your contributions, whether code, ideas, or feedback, are crucial to the success and growth of IC-Reactor. Join us in our mission to build effective and user-friendly tools for Internet Computer blockchain development!

-

License

This project is licensed under the MIT License. See the LICENSE file for more details.

-

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_store.ActorManagerOptions.html b/docs/interfaces/_ic_reactor_store.ActorManagerOptions.html deleted file mode 100644 index 174fd07745..0000000000 --- a/docs/interfaces/_ic_reactor_store.ActorManagerOptions.html +++ /dev/null @@ -1,46 +0,0 @@ -ActorManagerOptions | IC ReActor -
interface ActorManagerOptions {
    agentManager: AgentManager;
    canisterId: CanisterId;
    idlFactory: InterfaceFactory;
    initializeOnCreate?: boolean;
    withDevtools?: boolean;
    withVisitor?: boolean;
}

Properties

agentManager: AgentManager
canisterId: CanisterId
idlFactory: InterfaceFactory
initializeOnCreate?: boolean
withDevtools?: boolean
withVisitor?: boolean

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_store.ActorMethod.html b/docs/interfaces/_ic_reactor_store.ActorMethod.html deleted file mode 100644 index 28fa018fb8..0000000000 --- a/docs/interfaces/_ic_reactor_store.ActorMethod.html +++ /dev/null @@ -1,42 +0,0 @@ -ActorMethod | IC ReActor -

Interface ActorMethod<Args, Ret>

An actor method type, defined for each methods of the actor service.

-
interface ActorMethod<Args, Ret> {
    withOptions(options): ((...args) => Promise<Ret>);
    (...args): Promise<Ret>;
}

Type Parameters

  • Args extends unknown[] = unknown[]

  • Ret = unknown

  • Parameters

    Returns Promise<Ret>

Methods

Methods

  • Parameters

    • options: CallConfig

    Returns ((...args) => Promise<Ret>)

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_store.ActorMethodState.html b/docs/interfaces/_ic_reactor_store.ActorMethodState.html deleted file mode 100644 index 9a9beacfb1..0000000000 --- a/docs/interfaces/_ic_reactor_store.ActorMethodState.html +++ /dev/null @@ -1,40 +0,0 @@ -ActorMethodState | IC ReActor -

Interface ActorMethodState<A, M>

interface ActorMethodState<A, M> {
    [key: string]: {
        data: ExtractActorMethodReturnType<A[M]> | undefined;
        error: Error | undefined;
        loading: boolean;
    };
}

Type Parameters

Indexable

[key: string]: {
    data: ExtractActorMethodReturnType<A[M]> | undefined;
    error: Error | undefined;
    loading: boolean;
}

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_store.AgentAuthState.html b/docs/interfaces/_ic_reactor_store.AgentAuthState.html deleted file mode 100644 index 58ed78f1a3..0000000000 --- a/docs/interfaces/_ic_reactor_store.AgentAuthState.html +++ /dev/null @@ -1,47 +0,0 @@ -AgentAuthState | IC ReActor -
interface AgentAuthState {
    authClient: null | AuthClient;
    authenticated: boolean;
    authenticating: boolean;
    error: undefined | Error;
    identity: null | Identity;
    initialized: boolean;
    initializing: boolean;
}

Properties

authClient: null | AuthClient
authenticated: boolean
authenticating: boolean
error: undefined | Error
identity: null | Identity
initialized: boolean
initializing: boolean

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_store.AgentManagerOptions.html b/docs/interfaces/_ic_reactor_store.AgentManagerOptions.html deleted file mode 100644 index a626caefeb..0000000000 --- a/docs/interfaces/_ic_reactor_store.AgentManagerOptions.html +++ /dev/null @@ -1,66 +0,0 @@ -AgentManagerOptions | IC ReActor -
interface AgentManagerOptions {
    callOptions?: Record<string, unknown>;
    credentials?: {
        name: string;
        password?: string;
    };
    fetch?: ((input, init?) => Promise<Response>);
    fetchOptions?: Record<string, unknown>;
    host?: string;
    identity?: Identity | Promise<Identity>;
    isLocalEnv?: boolean;
    port?: number;
    retryTimes?: number;
    source?: HttpAgent;
    useQueryNonces?: boolean;
    verifyQuerySignatures?: boolean;
    withDevtools?: boolean;
}

Hierarchy (view full)

Properties

callOptions?: Record<string, unknown>
credentials?: {
    name: string;
    password?: string;
}

Type declaration

  • name: string
  • Optional password?: string
fetch?: ((input, init?) => Promise<Response>)

Type declaration

fetchOptions?: Record<string, unknown>
host?: string
identity?: Identity | Promise<Identity>
isLocalEnv?: boolean
port?: number
retryTimes?: number

Number of times to retry requests before throwing an error

-

Default

3
-
-
source?: HttpAgent
useQueryNonces?: boolean

Adds a unique Nonce with each query. -Enabling will prevent queries from being answered with a cached response.

-

Example

const agent = new HttpAgent({ useQueryNonces: true });
agent.addTransform(makeNonceTransform(makeNonce); -
-

Default

false
-
-
verifyQuerySignatures?: boolean

Whether the agent should verify signatures signed by node keys on query responses. Increases security, but adds overhead and must make a separate request to cache the node keys for the canister's subnet.

-

Default

true
-
-
withDevtools?: boolean

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_store.CreateReActorOptions.html b/docs/interfaces/_ic_reactor_store.CreateReActorOptions.html deleted file mode 100644 index b218cbf1d6..0000000000 --- a/docs/interfaces/_ic_reactor_store.CreateReActorOptions.html +++ /dev/null @@ -1,71 +0,0 @@ -CreateReActorOptions | IC ReActor -
interface CreateReActorOptions {
    agentManager?: AgentManager;
    callOptions?: Record<string, unknown>;
    canisterId: CanisterId;
    credentials?: {
        name: string;
        password?: string;
    };
    fetch?: ((input, init?) => Promise<Response>);
    fetchOptions?: Record<string, unknown>;
    host?: string;
    identity?: Identity | Promise<Identity>;
    idlFactory: InterfaceFactory;
    initializeOnCreate?: boolean;
    isLocalEnv?: boolean;
    port?: number;
    retryTimes?: number;
    source?: HttpAgent;
    useQueryNonces?: boolean;
    verifyQuerySignatures?: boolean;
    withDevtools?: boolean;
    withVisitor?: boolean;
}

Hierarchy (view full)

Properties

agentManager?: AgentManager
callOptions?: Record<string, unknown>
canisterId: CanisterId
credentials?: {
    name: string;
    password?: string;
}

Type declaration

  • name: string
  • Optional password?: string
fetch?: ((input, init?) => Promise<Response>)

Type declaration

fetchOptions?: Record<string, unknown>
host?: string
identity?: Identity | Promise<Identity>
idlFactory: InterfaceFactory
initializeOnCreate?: boolean
isLocalEnv?: boolean
port?: number
retryTimes?: number

Number of times to retry requests before throwing an error

-

Default

3
-
-
source?: HttpAgent
useQueryNonces?: boolean

Adds a unique Nonce with each query. -Enabling will prevent queries from being answered with a cached response.

-

Example

const agent = new HttpAgent({ useQueryNonces: true });
agent.addTransform(makeNonceTransform(makeNonce); -
-

Default

false
-
-
verifyQuerySignatures?: boolean

Whether the agent should verify signatures signed by node keys on query responses. Increases security, but adds overhead and must make a separate request to cache the node keys for the canister's subnet.

-

Default

true
-
-
withDevtools?: boolean
withVisitor?: boolean

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_store.DefaultActorType.html b/docs/interfaces/_ic_reactor_store.DefaultActorType.html deleted file mode 100644 index 5047583e4f..0000000000 --- a/docs/interfaces/_ic_reactor_store.DefaultActorType.html +++ /dev/null @@ -1,40 +0,0 @@ -DefaultActorType | IC ReActor -
interface DefaultActorType {
    [key: string]: ActorMethod<any, any>;
}

Indexable

[key: string]: ActorMethod<any, any>

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_store.HttpAgentOptions.html b/docs/interfaces/_ic_reactor_store.HttpAgentOptions.html deleted file mode 100644 index 6676385672..0000000000 --- a/docs/interfaces/_ic_reactor_store.HttpAgentOptions.html +++ /dev/null @@ -1,63 +0,0 @@ -HttpAgentOptions | IC ReActor -
interface HttpAgentOptions {
    callOptions?: Record<string, unknown>;
    credentials?: {
        name: string;
        password?: string;
    };
    fetch?: ((input, init?) => Promise<Response>);
    fetchOptions?: Record<string, unknown>;
    host?: string;
    identity?: Identity | Promise<Identity>;
    retryTimes?: number;
    source?: HttpAgent;
    useQueryNonces?: boolean;
    verifyQuerySignatures?: boolean;
}

Hierarchy (view full)

Properties

callOptions?: Record<string, unknown>
credentials?: {
    name: string;
    password?: string;
}

Type declaration

  • name: string
  • Optional password?: string
fetch?: ((input, init?) => Promise<Response>)

Type declaration

fetchOptions?: Record<string, unknown>
host?: string
identity?: Identity | Promise<Identity>
retryTimes?: number

Number of times to retry requests before throwing an error

-

Default

3
-
-
source?: HttpAgent
useQueryNonces?: boolean

Adds a unique Nonce with each query. -Enabling will prevent queries from being answered with a cached response.

-

Example

const agent = new HttpAgent({ useQueryNonces: true });
agent.addTransform(makeNonceTransform(makeNonce); -
-

Default

false
-
-
verifyQuerySignatures?: boolean

Whether the agent should verify signatures signed by node keys on query responses. Increases security, but adds overhead and must make a separate request to cache the node keys for the canister's subnet.

-

Default

true
-
-

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_store.Identity.html b/docs/interfaces/_ic_reactor_store.Identity.html deleted file mode 100644 index 0e3966526f..0000000000 --- a/docs/interfaces/_ic_reactor_store.Identity.html +++ /dev/null @@ -1,49 +0,0 @@ -Identity | IC ReActor -

A General Identity object. This does not have to be a private key (for example, -the Anonymous identity), but it must be able to transform request.

-
interface Identity {
    getPrincipal(): Principal;
    transformRequest(request): Promise<unknown>;
}

Methods

  • Get the principal represented by this identity. Normally should be a -Principal.selfAuthenticating().

    -

    Returns Principal

  • Transform a request into a signed version of the request. This is done last -after the transforms on the body of a request. The returned object can be -anything, but must be serializable to CBOR.

    -

    Parameters

    • request: HttpAgentRequest

    Returns Promise<unknown>

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_store.UpdateAgentOptions.html b/docs/interfaces/_ic_reactor_store.UpdateAgentOptions.html deleted file mode 100644 index 539bae7f6d..0000000000 --- a/docs/interfaces/_ic_reactor_store.UpdateAgentOptions.html +++ /dev/null @@ -1,64 +0,0 @@ -UpdateAgentOptions | IC ReActor -
interface UpdateAgentOptions {
    agent?: HttpAgent;
    callOptions?: Record<string, unknown>;
    credentials?: {
        name: string;
        password?: string;
    };
    fetch?: ((input, init?) => Promise<Response>);
    fetchOptions?: Record<string, unknown>;
    host?: string;
    identity?: Identity | Promise<Identity>;
    retryTimes?: number;
    source?: HttpAgent;
    useQueryNonces?: boolean;
    verifyQuerySignatures?: boolean;
}

Hierarchy (view full)

Properties

agent?: HttpAgent
callOptions?: Record<string, unknown>
credentials?: {
    name: string;
    password?: string;
}

Type declaration

  • name: string
  • Optional password?: string
fetch?: ((input, init?) => Promise<Response>)

Type declaration

fetchOptions?: Record<string, unknown>
host?: string
identity?: Identity | Promise<Identity>
retryTimes?: number

Number of times to retry requests before throwing an error

-

Default

3
-
-
source?: HttpAgent
useQueryNonces?: boolean

Adds a unique Nonce with each query. -Enabling will prevent queries from being answered with a cached response.

-

Example

const agent = new HttpAgent({ useQueryNonces: true });
agent.addTransform(makeNonceTransform(makeNonce); -
-

Default

false
-
-
verifyQuerySignatures?: boolean

Whether the agent should verify signatures signed by node keys on query responses. Increases security, but adds overhead and must make a separate request to cache the node keys for the canister's subnet.

-

Default

true
-
-

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_visitor.DefaultField.html b/docs/interfaces/_ic_reactor_visitor.DefaultField.html deleted file mode 100644 index d6229ebaea..0000000000 --- a/docs/interfaces/_ic_reactor_visitor.DefaultField.html +++ /dev/null @@ -1,47 +0,0 @@ -DefaultField | IC ReActor -
interface DefaultField {
    defaultValue?: any;
    defaultValues?: any;
    label: string;
    maxLength?: number;
    minLength?: number;
    type: FieldType;
    validate: ((value) => string | boolean);
}

Hierarchy (view full)

Properties

defaultValue?: any
defaultValues?: any
label: string
maxLength?: number
minLength?: number
type: FieldType
validate: ((value) => string | boolean)

Type declaration

    • (value): string | boolean
    • Parameters

      • value: any

      Returns string | boolean

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_visitor.DynamicDataArgs.html b/docs/interfaces/_ic_reactor_visitor.DynamicDataArgs.html deleted file mode 100644 index d5f43ec4e5..0000000000 --- a/docs/interfaces/_ic_reactor_visitor.DynamicDataArgs.html +++ /dev/null @@ -1,42 +0,0 @@ -DynamicDataArgs | IC ReActor -
interface DynamicDataArgs<V> {
    label: string;
    value: V;
}

Type Parameters

  • V = any

Properties

Properties

label: string
value: V

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_visitor.ExtractedServiceDetails.html b/docs/interfaces/_ic_reactor_visitor.ExtractedServiceDetails.html deleted file mode 100644 index 765c2ac6f7..0000000000 --- a/docs/interfaces/_ic_reactor_visitor.ExtractedServiceDetails.html +++ /dev/null @@ -1,43 +0,0 @@ -ExtractedServiceDetails | IC ReActor -

Interface ExtractedServiceDetails<A>

interface ExtractedServiceDetails<A> {
    canisterId: string;
    description: string;
    methodDetails: ServiceDetails<A>;
}

Type Parameters

Properties

canisterId: string
description: string
methodDetails: ServiceDetails<A>

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_visitor.ExtractedServiceFields.html b/docs/interfaces/_ic_reactor_visitor.ExtractedServiceFields.html deleted file mode 100644 index 4fb938f579..0000000000 --- a/docs/interfaces/_ic_reactor_visitor.ExtractedServiceFields.html +++ /dev/null @@ -1,42 +0,0 @@ -ExtractedServiceFields | IC ReActor -

Interface ExtractedServiceFields<A>

interface ExtractedServiceFields<A> {
    canisterId: string;
    methodFields: ServiceFields<A, FunctionName<A>>;
}

Type Parameters

Properties

canisterId: string
methodFields: ServiceFields<A, FunctionName<A>>

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_visitor.FieldDetails.html b/docs/interfaces/_ic_reactor_visitor.FieldDetails.html deleted file mode 100644 index f314af4c23..0000000000 --- a/docs/interfaces/_ic_reactor_visitor.FieldDetails.html +++ /dev/null @@ -1,43 +0,0 @@ -FieldDetails | IC ReActor -
interface FieldDetails {
    __description: string;
    __label: string;
    __type: FieldType;
    [key: string]: string | boolean | undefined;
}

Hierarchy (view full)

Indexable

[key: string]: string | boolean | undefined

Properties

__description: string
__label: string
__type: FieldType

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_visitor.FieldDetailsWithChild.html b/docs/interfaces/_ic_reactor_visitor.FieldDetailsWithChild.html deleted file mode 100644 index 88b3dbe6da..0000000000 --- a/docs/interfaces/_ic_reactor_visitor.FieldDetailsWithChild.html +++ /dev/null @@ -1,47 +0,0 @@ -FieldDetailsWithChild | IC ReActor -
interface FieldDetailsWithChild {
    __checked?: boolean;
    __description: string;
    __hidden?: boolean;
    __label: string;
    __type: FieldType;
    optional?: OtherDetails;
    vector?: OtherDetails;
    [key: string]: string | boolean | undefined | OtherDetails;
}

Indexable

[key: string]: string | boolean | undefined | OtherDetails

Properties

__checked?: boolean
__description: string
__hidden?: boolean
__label: string
__type: FieldType
optional?: OtherDetails
vector?: OtherDetails

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_visitor.InputDetails.html b/docs/interfaces/_ic_reactor_visitor.InputDetails.html deleted file mode 100644 index f164d2f474..0000000000 --- a/docs/interfaces/_ic_reactor_visitor.InputDetails.html +++ /dev/null @@ -1,44 +0,0 @@ -InputDetails | IC ReActor -
interface InputDetails {
    __checked?: boolean;
    __description: string;
    __label: string;
    __type: FieldType;
    [key: string]: string | boolean | undefined;
}

Hierarchy (view full)

Indexable

[key: string]: string | boolean | undefined

Properties

__checked?: boolean
__description: string
__label: string
__type: FieldType

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_visitor.InputField.html b/docs/interfaces/_ic_reactor_visitor.InputField.html deleted file mode 100644 index d1adaf83d3..0000000000 --- a/docs/interfaces/_ic_reactor_visitor.InputField.html +++ /dev/null @@ -1,48 +0,0 @@ -InputField | IC ReActor -
interface InputField<T> {
    defaultValue: FieldTypeFromIDLType<T>;
    defaultValues?: any;
    label: string;
    maxLength?: number;
    minLength?: number;
    required: true;
    type: FieldType;
    validate: ((value) => string | boolean);
}

Type Parameters

  • T extends IDL.Type

Hierarchy (view full)

Properties

defaultValue: FieldTypeFromIDLType<T>
defaultValues?: any
label: string
maxLength?: number
minLength?: number
required: true
type: FieldType
validate: ((value) => string | boolean)

Type declaration

    • (value): string | boolean
    • Parameters

      • value: any

      Returns string | boolean

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_visitor.MethodFields.html b/docs/interfaces/_ic_reactor_visitor.MethodFields.html deleted file mode 100644 index b0435d41ff..0000000000 --- a/docs/interfaces/_ic_reactor_visitor.MethodFields.html +++ /dev/null @@ -1,45 +0,0 @@ -MethodFields | IC ReActor -

Interface MethodFields<A, M>

interface MethodFields<A, M> {
    defaultValues: ServiceDefaultValues<A, M>;
    fields: [] | AllFieldTypes<Type<any>>[];
    functionName: M;
    functionType: FunctionType;
    validate: ((value) => string | boolean);
}

Type Parameters

Properties

defaultValues: ServiceDefaultValues<A, M>
fields: [] | AllFieldTypes<Type<any>>[]
functionName: M
functionType: FunctionType
validate: ((value) => string | boolean)

Type declaration

    • (value): string | boolean
    • Parameters

      • value: any

      Returns string | boolean

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_visitor.NumberField.html b/docs/interfaces/_ic_reactor_visitor.NumberField.html deleted file mode 100644 index 719dcf6ac2..0000000000 --- a/docs/interfaces/_ic_reactor_visitor.NumberField.html +++ /dev/null @@ -1,50 +0,0 @@ -NumberField | IC ReActor -
interface NumberField {
    defaultValue: string;
    defaultValues?: any;
    label: string;
    max?: string | number;
    maxLength?: number;
    min?: string | number;
    minLength?: number;
    required: true;
    type: "number";
    validate: ((value) => string | boolean);
}

Hierarchy (view full)

Properties

defaultValue: string
defaultValues?: any
label: string
max?: string | number
maxLength?: number
min?: string | number
minLength?: number
required: true
type: "number"
validate: ((value) => string | boolean)

Type declaration

    • (value): string | boolean
    • Parameters

      • value: any

      Returns string | boolean

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_visitor.OptionalFields.html b/docs/interfaces/_ic_reactor_visitor.OptionalFields.html deleted file mode 100644 index 07fb7e6bed..0000000000 --- a/docs/interfaces/_ic_reactor_visitor.OptionalFields.html +++ /dev/null @@ -1,48 +0,0 @@ -OptionalFields | IC ReActor -
interface OptionalFields {
    defaultValue: [];
    defaultValues?: any;
    field: AllFieldTypes<Type<any>>;
    label: string;
    maxLength?: number;
    minLength?: number;
    type: "optional";
    validate: ((value) => string | boolean);
}

Hierarchy (view full)

Properties

defaultValue: []
defaultValues?: any
field: AllFieldTypes<Type<any>>
label: string
maxLength?: number
minLength?: number
type: "optional"
validate: ((value) => string | boolean)

Type declaration

    • (value): string | boolean
    • Parameters

      • value: any

      Returns string | boolean

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_visitor.PrincipalField.html b/docs/interfaces/_ic_reactor_visitor.PrincipalField.html deleted file mode 100644 index a709983776..0000000000 --- a/docs/interfaces/_ic_reactor_visitor.PrincipalField.html +++ /dev/null @@ -1,48 +0,0 @@ -PrincipalField | IC ReActor -
interface PrincipalField {
    defaultValue: string;
    defaultValues?: any;
    label: string;
    maxLength: number;
    minLength: number;
    required: true;
    type: "principal";
    validate: ((value) => string | boolean);
}

Hierarchy (view full)

Properties

defaultValue: string
defaultValues?: any
label: string
maxLength: number
minLength: number
required: true
type: "principal"
validate: ((value) => string | boolean)

Type declaration

    • (value): string | boolean
    • Parameters

      • value: any

      Returns string | boolean

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_visitor.RecordFields.html b/docs/interfaces/_ic_reactor_visitor.RecordFields.html deleted file mode 100644 index dca54c91e7..0000000000 --- a/docs/interfaces/_ic_reactor_visitor.RecordFields.html +++ /dev/null @@ -1,48 +0,0 @@ -RecordFields | IC ReActor -
interface RecordFields<T> {
    defaultValue?: any;
    defaultValues: Record<string, FieldTypeFromIDLType<T>>;
    fields: AllFieldTypes<T>[];
    label: string;
    maxLength?: number;
    minLength?: number;
    type: "record";
    validate: ((value) => string | boolean);
}

Type Parameters

  • T extends IDL.Type

Hierarchy (view full)

Properties

defaultValue?: any
defaultValues: Record<string, FieldTypeFromIDLType<T>>
fields: AllFieldTypes<T>[]
label: string
maxLength?: number
minLength?: number
type: "record"
validate: ((value) => string | boolean)

Type declaration

    • (value): string | boolean
    • Parameters

      • value: any

      Returns string | boolean

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_visitor.RecursiveFields.html b/docs/interfaces/_ic_reactor_visitor.RecursiveFields.html deleted file mode 100644 index b008da935c..0000000000 --- a/docs/interfaces/_ic_reactor_visitor.RecursiveFields.html +++ /dev/null @@ -1,49 +0,0 @@ -RecursiveFields | IC ReActor -
interface RecursiveFields {
    defaultValue?: any;
    defaultValues?: any;
    extract: (() => VariantFields<Type<any>>);
    label: string;
    maxLength?: number;
    minLength?: number;
    name: string;
    type: "recursive";
    validate: ((value) => string | boolean);
}

Hierarchy (view full)

Properties

defaultValue?: any
defaultValues?: any
extract: (() => VariantFields<Type<any>>)

Type declaration

label: string
maxLength?: number
minLength?: number
name: string
type: "recursive"
validate: ((value) => string | boolean)

Type declaration

    • (value): string | boolean
    • Parameters

      • value: any

      Returns string | boolean

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_visitor.ResultArrayData.html b/docs/interfaces/_ic_reactor_visitor.ResultArrayData.html deleted file mode 100644 index 3bbbf2dc3c..0000000000 --- a/docs/interfaces/_ic_reactor_visitor.ResultArrayData.html +++ /dev/null @@ -1,42 +0,0 @@ -ResultArrayData | IC ReActor -

Interface ResultArrayData<A, M>

interface ResultArrayData<A, M> {
    label: string;
    value: ExtractActorMethodReturnType<A[M]>[];
}

Type Parameters

Properties

Properties

label: string

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_visitor.ResultRecordData.html b/docs/interfaces/_ic_reactor_visitor.ResultRecordData.html deleted file mode 100644 index 8ffba77f49..0000000000 --- a/docs/interfaces/_ic_reactor_visitor.ResultRecordData.html +++ /dev/null @@ -1,42 +0,0 @@ -ResultRecordData | IC ReActor -

Interface ResultRecordData<A, M>

interface ResultRecordData<A, M> {
    label: string;
    value: Record<string, ExtractActorMethodReturnType<A[M]>>;
}

Type Parameters

Properties

Properties

label: string

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_visitor.TupleFields.html b/docs/interfaces/_ic_reactor_visitor.TupleFields.html deleted file mode 100644 index 74f655c894..0000000000 --- a/docs/interfaces/_ic_reactor_visitor.TupleFields.html +++ /dev/null @@ -1,48 +0,0 @@ -TupleFields | IC ReActor -
interface TupleFields<T> {
    defaultValue?: any;
    defaultValues: FieldTypeFromIDLType<T>[];
    fields: AllFieldTypes<T>[];
    label: string;
    maxLength?: number;
    minLength?: number;
    type: "tuple";
    validate: ((value) => string | boolean);
}

Type Parameters

  • T extends IDL.Type

Hierarchy (view full)

Properties

defaultValue?: any
defaultValues: FieldTypeFromIDLType<T>[]
fields: AllFieldTypes<T>[]
label: string
maxLength?: number
minLength?: number
type: "tuple"
validate: ((value) => string | boolean)

Type declaration

    • (value): string | boolean
    • Parameters

      • value: any

      Returns string | boolean

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_visitor.VariantFields.html b/docs/interfaces/_ic_reactor_visitor.VariantFields.html deleted file mode 100644 index 81116f5730..0000000000 --- a/docs/interfaces/_ic_reactor_visitor.VariantFields.html +++ /dev/null @@ -1,49 +0,0 @@ -VariantFields | IC ReActor -
interface VariantFields<T> {
    defaultValue: string;
    defaultValues: FieldTypeFromIDLType<T>;
    fields: AllFieldTypes<T>[];
    label: string;
    maxLength?: number;
    minLength?: number;
    options: string[];
    type: "variant";
    validate: ((value) => string | boolean);
}

Type Parameters

  • T extends IDL.Type

Hierarchy (view full)

Properties

defaultValue: string
defaultValues: FieldTypeFromIDLType<T>
fields: AllFieldTypes<T>[]
label: string
maxLength?: number
minLength?: number
options: string[]
type: "variant"
validate: ((value) => string | boolean)

Type declaration

    • (value): string | boolean
    • Parameters

      • value: any

      Returns string | boolean

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/interfaces/_ic_reactor_visitor.VectorFields.html b/docs/interfaces/_ic_reactor_visitor.VectorFields.html deleted file mode 100644 index 7d7829c7da..0000000000 --- a/docs/interfaces/_ic_reactor_visitor.VectorFields.html +++ /dev/null @@ -1,48 +0,0 @@ -VectorFields | IC ReActor -
interface VectorFields {
    defaultValue: [];
    defaultValues?: any;
    field: AllFieldTypes<Type<any>>;
    label: string;
    maxLength?: number;
    minLength?: number;
    type: "vector";
    validate: ((value) => string | boolean);
}

Hierarchy (view full)

Properties

defaultValue: []
defaultValues?: any
field: AllFieldTypes<Type<any>>
label: string
maxLength?: number
minLength?: number
type: "vector"
validate: ((value) => string | boolean)

Type declaration

    • (value): string | boolean
    • Parameters

      • value: any

      Returns string | boolean

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/modules/_ic_reactor_core.html b/docs/modules/_ic_reactor_core.html deleted file mode 100644 index a625bb164e..0000000000 --- a/docs/modules/_ic_reactor_core.html +++ /dev/null @@ -1,69 +0,0 @@ -@ic-reactor/core | IC ReActor -

Module @ic-reactor/core

IC-ReActor - Core

ReActor is a JavaScript utility designed to streamline state management and interaction with actors in the Internet Computer (IC) blockchain environment. It provides a simple and effective way to handle asynchronous calls, state updates, and subscriptions, making it easier to build responsive and data-driven applications.

-

Features

    -
  • State Management: Efficiently manage the state of your application with actor-based interactions.
  • -
  • Asynchronous Handling: Simplify asynchronous calls and data handling with built-in methods.
  • -
  • Subscription Mechanism: Subscribe to state changes and update your UI in real-time.
  • -
  • Auto-Refresh Capability: Automatically refresh data at specified intervals.
  • -
  • Customizable: Easily adaptable to various use cases within the IC ecosystem.
  • -
-

Installation

npm install @ic-reactor/core
-
-

or

-
yarn add @ic-reactor/core
-
-

Usage

To get started with ReActor, you'll need to initialize it with your actor configurations. Here's a basic example:

-
import { createReActor } from "@ic-reactor/core"

const { actorStore, authStore, queryCall, updateCall } = createReActor(
(agent) => createActor("bd3sg-teaaa-aaaaa-qaaba-cai", { agent }),
{
host: "https://localhost:4943",
initializeOnMount: true,
}
) -
-

Querying Data

const { recall, subscribe, getState, initialData, intervalId } = queryCall({
functionName: "yourFunctionName",
args: ["arg1", "arg2"],
autoRefresh: true,
refreshInterval: 3000,
})

// Subscribe to changes
const unsubscribe = subscribe((newState) => {
// Handle new state
})

// Fetch data
recall().then((data) => {
// Handle initial data
})

// Get initial data
initialData.then((data) => {
// Handle initial data
})

// Clear interval if autoRefresh is enabled
if (intervalId) {
clearInterval(intervalId)
} -
-

Updating Data

const { call, getState, subscribe } = updateCall({
functionName: "yourUpdateFunction",
args: ["arg1", "arg2"],
})

call().then((result) => {
// Handle result
})

// Get state
const state = getState()

// Subscribe to changes
const unsubscribe = subscribe((newState) => {
// Handle new state
}) -
-

API Reference

    -
  • queryCall: Fetches and subscribes to data from an actor method. Returns an object containing methods for recalling data, subscribing to changes, getting the current state, and the initial data promise.
  • -
  • updateCall: Updates data and handles state changes for an actor method. Returns an object containing methods for calling the update function, subscribing to changes, and getting the current state.
  • -
  • getState: Retrieves the current state based on the request hash.
  • -
  • subscribe: Allows subscription to state changes.
  • -
-

For more detailed API usage and options, please refer to the documentation.

-

Contributing

Contributions are welcome! Please read our contributing guidelines to get started.

-

License

This project is licensed under MIT License.

-

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/modules/_ic_reactor_react.html b/docs/modules/_ic_reactor_react.html deleted file mode 100644 index e13d4cb219..0000000000 --- a/docs/modules/_ic_reactor_react.html +++ /dev/null @@ -1,76 +0,0 @@ -@ic-reactor/react | IC ReActor -

Module @ic-reactor/react

IC-ReActor - React

@ic-reactor/react is a comprehensive React library designed to streamline interactions with the Internet Computer (IC) blockchain. It provides React hooks and utilities for efficient state management, authentication, and interaction with IC actors.

-

Features

    -
  • React Hooks Integration: Custom hooks for managing blockchain actor states and authentication within React applications.
  • -
  • Efficient State Management: Utilize the power of Zustand for global state management in React components.
  • -
  • Asynchronous Data Handling: Easy handling of asynchronous operations related to IC actors.
  • -
  • Authentication Support: Integrated hooks for managing authentication with the IC blockchain.
  • -
  • Auto-Refresh and Query Capabilities: Support for auto-refreshing data and querying IC actors.
  • -
-

Installation

Install the package using npm:

-
npm install @ic-reactor/react
-
-

or using yarn:

-
yarn add @ic-reactor/react
-
-

Usage

Here's a simple example to get you started:

-

First, create an actor declaration file:

-
// store.ts
import { canisterId, idlFactory, actor } from "declaration/actor"
import { createReActor } from "@ic-reactor/react"

type Actor = typeof actor

export const { useActorStore, useAuthClient, useQueryCall } =
createReActor<Actor>({
canisterId: "rrkah-fqaaa-aaaaa-aaaaq-cai",
idlFactory,
host: "https://localhost:4943",
}) -
-

Then, use the useQueryCall hook to call your canister method:

-
// Balance.tsx
import { useQueryCall } from "./store"

const Balance = ({ principal }) => {
const { call, data, loading, error } = useQueryCall({
functionName: "get_balance",
args: [principal],
refetchInterval: 1000,
refetchOnMount: true,
onLoading: () => console.log("Loading..."),
onSuccess: (data) => console.log("Success!", data),
onError: (error) => console.log("Error!", error),
})

return (
<div>
<button onClick={() => call()} disabled={loading}>
{loading ? "Loading..." : "Refresh"}
</button>
{loading && <p>Loading...</p>}
{data && <p>Balance: {data}</p>}
{error && <p>Error: {error}</p>}
</div>
)
}

export default Balance -
-

Authentication

@ic-reactor/react provides a custom hook for managing authentication with the IC blockchain. To use it, first create an authentication declaration file:

-
// Login.tsx
import { useAuthClient } from "./store"

const Login = () => {
const {
login,
logout,
loginLoading,
loginError,
identity,
authenticating,
authenticated,
} = useAuthClient()

return (
<div>
<h2>Login:</h2>
<div>
{loginLoading && <div>Loading...</div>}
{loginError ? <div>{JSON.stringify(loginError)}</div> : null}
{identity && <div>{identity.getPrincipal().toText()}</div>}
</div>
{authenticated ? (
<div>
<button onClick={() => logout()}>Logout</button>
</div>
) : (
<div>
<button
onClick={() =>
login({
identityProvider:
process.env.DFX_NETWORK === "ic"
? "https://identity.ic0.app/#authorize"
: "http://rdmx6-jaaaa-aaaaa-aaadq-cai.localhost:4943/#authorize",
})
}
disabled={authenticating}
>
Login
</button>
</div>
)}
</div>
)
}

export default Login -
-

API Reference

The library provides various hooks and utilities for interacting with IC actors:

-
    -
  • useActorStore: Hook for managing actor states.
  • -
  • useAuthStore Hook for managing authentication states.
  • -
  • useAuthClient: Hook for managing authentication with the IC blockchain.
  • -
  • useQueryCall: Hook for querying data from an actor.
  • -
  • useUpdateCall: Hook for updating data in an actor.
  • -
  • Additional hooks for handling loading, errors, authentication, and more.
  • -
-

For detailed API usage and options, please refer to the documentation.

-

Contributing

Contributions to @ic-reactor/react are welcome! Please read our contributing guidelines for more information.

-

License

@ic-reactor/react is licensed under the MIT License. See the LICENSE file for more details.

-

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/modules/_ic_reactor_store.html b/docs/modules/_ic_reactor_store.html deleted file mode 100644 index a66292bd61..0000000000 --- a/docs/modules/_ic_reactor_store.html +++ /dev/null @@ -1,121 +0,0 @@ -@ic-reactor/store | IC ReActor -

Module @ic-reactor/store

IC-ReActor - Store

@ic-reactor/store is a state management library designed for applications interacting with the Internet Computer (IC) blockchain. It facilitates the management of actor states, authentication processes, and seamless interaction with IC actors, leveraging the power of zustand for global state management.

-

Features

    -
  • Actor State Management: Efficiently manage and update the state of IC actors.
  • -
  • Authentication Handling: Integrated functionality for managing authentication with IC.
  • -
  • Zustand Integration: Utilize zustand for global state management in a React-friendly way.
  • -
  • Error and Loading State Management: Easily handle loading states and errors across your application.
  • -
  • Asynchronous Interaction Support: Built-in support for managing asynchronous interactions with IC actors.
  • -
-

Installation

Install the package using npm:

-
npm install @ic-reactor/store
-
-

or using yarn:

-
yarn add @ic-reactor/store
-
-

Usage

You can this packages in two ways:

-
    -
  1. Automatic Agent Creation: You can use the createReActorStore factory function to create a new ReActor store instance. This will automatically create an agent and manage its state for you.
  2. -
-
import { createReActorStore } from "@ic-reactor/store"
import { candid, canisterId, idlFactory } from "./candid"

type Candid = typeof candid

const { callMethod, agentManager } = createReActorStore<Candid>({
canisterId,
idlFactory,
})

// later in your code
const identity = await agentManager.authenticate()
const data = await callMethod("version") -
-
    -
  1. Manual Agent Creation: You can use the createAgentManager to manually create and manage an agent instance.
  2. -
-
    -
  • IC Agent
  • -
-
// agent.ts
import { createAgentManager } from "@ic-reactor/store"

export const agentManager = createAgentManager() // connect to the default ic network

// later in your code
const identity = await agentManager.authenticate() -
-
    -
  • Local Agent
  • -
-
// agent.ts
import { createAgentManager } from "@ic-reactor/store"

export const agentManager = createAgentManager({
isLocalEnv: true,
port: 8000, // default port is 4943
}) -
-
    -
  • Or you can use the host option directly
  • -
-
export const agentManager = createAgentManager({
host: "http://localhost:8000",
}) -
-

then you can use the "createActorManager" to create an actor manager

-
// actor.ts
import { createActorManager } from "@ic-reactor/store"
import { candid, canisterId, idlFactory } from "./candid"
import { agentManager } from "./agent"

type Candid = typeof candid

const actorManager = createActorManager<Candid>({
agentManager,
canisterId,
idlFactory,
})

// later in your code
const data = await actorManager.callMethod("version") -
-

Index

Main Functions

Other

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/modules/_ic_reactor_svelte.html b/docs/modules/_ic_reactor_svelte.html deleted file mode 100644 index 130621ce2a..0000000000 --- a/docs/modules/_ic_reactor_svelte.html +++ /dev/null @@ -1,72 +0,0 @@ -@ic-reactor/svelte | IC ReActor -

Module @ic-reactor/svelte

IC-ReActor - Store

@ic-reactor/store is a state management library designed for applications interacting with the Internet Computer (IC) blockchain. It facilitates the management of actor states, authentication processes, and seamless interaction with IC actors, leveraging the power of zustand for global state management.

-

Features

    -
  • Actor State Management: Efficiently manage and update the state of IC actors.
  • -
  • Authentication Handling: Integrated functionality for managing authentication with IC.
  • -
  • Zustand Integration: Utilize zustand for global state management in a React-friendly way.
  • -
  • Error and Loading State Management: Easily handle loading states and errors across your application.
  • -
  • Asynchronous Interaction Support: Built-in support for managing asynchronous interactions with IC actors.
  • -
-

Installation

Install the package using npm:

-
npm install @ic-reactor/store
-
-

or using yarn:

-
yarn add @ic-reactor/store
-
-

Usage

To use @ic-reactor/store, start by creating a ReActor manager with your actor configurations:

-
import createReActorManager from "@ic-reactor/store"
import { createActor, canisterId } from "./declarations/actor"

const reActorManager = createReActorManager((agent) =>
createActor(canisterId, {
agent,
})
) -
-

Managing Actor State

Utilize the ReActor manager to manage the state of your IC actors:

-
// Initialize your actor
reActorManager.initializeActor()

// Access and update actor state
const actorState = reActorManager.store.getState().actorState -
-

Handling Authentication

Manage authentication states and processes:

-
// Authenticate with the IC blockchain
reActorManager.actions
.authenticate()
.then(() => {
// Handle successful authentication
})
.catch((error) => {
// Handle authentication errors
}) -
-

API Reference

@ic-reactor/store provides several key functionalities:

-
    -
  • ReActorManager: The main class to manage actor states and interactions.
  • -
  • createReActorManager: Factory function to create a new ReActor manager instance.
  • -
  • State management actions: Methods to initialize actors, handle authentication, and manage global state.
  • -
-

For a detailed API reference, including the complete list of methods and their usage, please refer to the documentation.

-

Contributing

Contributions to @ic-reactor/store are welcome! Please read our contributing guidelines for more information.

-

License

@ic-reactor/store is licensed under the MIT License. See the LICENSE file for more details.

-

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/modules/_ic_reactor_visitor.html b/docs/modules/_ic_reactor_visitor.html deleted file mode 100644 index fb2a20ed56..0000000000 --- a/docs/modules/_ic_reactor_visitor.html +++ /dev/null @@ -1,88 +0,0 @@ -@ic-reactor/visitor | IC ReActor -

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_store.ActorMethodStates.html b/docs/types/_ic_reactor_store.ActorMethodStates.html deleted file mode 100644 index 4b1e81dc63..0000000000 --- a/docs/types/_ic_reactor_store.ActorMethodStates.html +++ /dev/null @@ -1,40 +0,0 @@ -ActorMethodStates | IC ReActor -

Type alias ActorMethodStates<A>

ActorMethodStates<A>: {
    [M in FunctionName<A>]: ActorMethodState<A, M>
}

Type Parameters

  • A

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_store.ActorState.html b/docs/types/_ic_reactor_store.ActorState.html deleted file mode 100644 index f7258c5e02..0000000000 --- a/docs/types/_ic_reactor_store.ActorState.html +++ /dev/null @@ -1,40 +0,0 @@ -ActorState | IC ReActor -
ActorState<A>: {
    error: Error | undefined;
    initialized: boolean;
    initializing: boolean;
    methodState: ActorMethodStates<A>;
}

Type Parameters

  • A

Type declaration

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_store.ActorStore.html b/docs/types/_ic_reactor_store.ActorStore.html deleted file mode 100644 index 0292c99feb..0000000000 --- a/docs/types/_ic_reactor_store.ActorStore.html +++ /dev/null @@ -1,40 +0,0 @@ -ActorStore | IC ReActor -
ActorStore<A>: StoreApi<ActorState<A>>

Type Parameters

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_store.ActorSubclass.html b/docs/types/_ic_reactor_store.ActorSubclass.html deleted file mode 100644 index b532cd337e..0000000000 --- a/docs/types/_ic_reactor_store.ActorSubclass.html +++ /dev/null @@ -1,41 +0,0 @@ -ActorSubclass | IC ReActor -

Type alias ActorSubclass<T>

ActorSubclass<T>: Actor & T

A subclass of an actor. Actor class itself is meant to be a based class.

-

Type Parameters

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_store.AgentAuthStore.html b/docs/types/_ic_reactor_store.AgentAuthStore.html deleted file mode 100644 index 77468411d3..0000000000 --- a/docs/types/_ic_reactor_store.AgentAuthStore.html +++ /dev/null @@ -1,40 +0,0 @@ -AgentAuthStore | IC ReActor -
AgentAuthStore: StoreApi<AgentAuthState>

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_store.CallActorMethod.html b/docs/types/_ic_reactor_store.CallActorMethod.html deleted file mode 100644 index cb45327d4b..0000000000 --- a/docs/types/_ic_reactor_store.CallActorMethod.html +++ /dev/null @@ -1,40 +0,0 @@ -CallActorMethod | IC ReActor -

Type alias CallActorMethod<A>

CallActorMethod<A>: (<M>(functionName, ...args) => Promise<ExtractActorMethodReturnType<A[M]>>)

Type Parameters

Type declaration

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_store.CanisterId.html b/docs/types/_ic_reactor_store.CanisterId.html deleted file mode 100644 index 115857dd31..0000000000 --- a/docs/types/_ic_reactor_store.CanisterId.html +++ /dev/null @@ -1,40 +0,0 @@ -CanisterId | IC ReActor -

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_store.ExtractActorMethodArgs.html b/docs/types/_ic_reactor_store.ExtractActorMethodArgs.html deleted file mode 100644 index 3393f3bfe6..0000000000 --- a/docs/types/_ic_reactor_store.ExtractActorMethodArgs.html +++ /dev/null @@ -1,40 +0,0 @@ -ExtractActorMethodArgs | IC ReActor -

Type alias ExtractActorMethodArgs<T>

ExtractActorMethodArgs<T>: T extends ActorMethod<infer A>
    ? A
    : never

Type Parameters

  • T

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_store.ExtractActorMethodReturnType.html b/docs/types/_ic_reactor_store.ExtractActorMethodReturnType.html deleted file mode 100644 index ace506bfa8..0000000000 --- a/docs/types/_ic_reactor_store.ExtractActorMethodReturnType.html +++ /dev/null @@ -1,40 +0,0 @@ -ExtractActorMethodReturnType | IC ReActor -

Type alias ExtractActorMethodReturnType<T>

ExtractActorMethodReturnType<T>: T extends ActorMethod<any, infer R>
    ? R
    : never

Type Parameters

  • T

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_store.ExtractVisitorType.html b/docs/types/_ic_reactor_store.ExtractVisitorType.html deleted file mode 100644 index 92ec0af828..0000000000 --- a/docs/types/_ic_reactor_store.ExtractVisitorType.html +++ /dev/null @@ -1,40 +0,0 @@ -ExtractVisitorType | IC ReActor -

Type alias ExtractVisitorType<T>

ExtractVisitorType<T>: T extends IDL.Visitor<infer U, infer V>
    ? {
        data: U;
        return: V;
    }
    : never

Type Parameters

  • T

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_store.ExtractedService.html b/docs/types/_ic_reactor_store.ExtractedService.html deleted file mode 100644 index 2609542dba..0000000000 --- a/docs/types/_ic_reactor_store.ExtractedService.html +++ /dev/null @@ -1,40 +0,0 @@ -ExtractedService | IC ReActor -

Type alias ExtractedService<A, M>

ExtractedService<A, M>: {
    [K in M]: (<V>(extractorClass, data?) => ReturnType<V["visitFunc"]>)
}

Type Parameters

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_store.FunctionName.html b/docs/types/_ic_reactor_store.FunctionName.html deleted file mode 100644 index 136ebd240c..0000000000 --- a/docs/types/_ic_reactor_store.FunctionName.html +++ /dev/null @@ -1,40 +0,0 @@ -FunctionName | IC ReActor -

Type alias FunctionName<A>

FunctionName<A>: keyof A & string

Type Parameters

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_store.FunctionType.html b/docs/types/_ic_reactor_store.FunctionType.html deleted file mode 100644 index 59b4f3ec52..0000000000 --- a/docs/types/_ic_reactor_store.FunctionType.html +++ /dev/null @@ -1,40 +0,0 @@ -FunctionType | IC ReActor -
FunctionType: "query" | "update"

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_visitor.AllFieldTypes.html b/docs/types/_ic_reactor_visitor.AllFieldTypes.html deleted file mode 100644 index d8d89e2448..0000000000 --- a/docs/types/_ic_reactor_visitor.AllFieldTypes.html +++ /dev/null @@ -1,40 +0,0 @@ -AllFieldTypes | IC ReActor -

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_visitor.AllNumberTypes.html b/docs/types/_ic_reactor_visitor.AllNumberTypes.html deleted file mode 100644 index 3f6c904d20..0000000000 --- a/docs/types/_ic_reactor_visitor.AllNumberTypes.html +++ /dev/null @@ -1,40 +0,0 @@ -AllNumberTypes | IC ReActor -
AllNumberTypes: IDL.NatClass | IDL.IntClass | IDL.NatClass | IDL.FixedNatClass | IDL.FixedIntClass | IDL.FloatClass

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_visitor.DynamicFieldType.html b/docs/types/_ic_reactor_visitor.DynamicFieldType.html deleted file mode 100644 index 3e0bafc1a3..0000000000 --- a/docs/types/_ic_reactor_visitor.DynamicFieldType.html +++ /dev/null @@ -1,40 +0,0 @@ -DynamicFieldType | IC ReActor -

Type alias DynamicFieldType<T>

DynamicFieldType<T>: T extends "record"
    ? RecordFields<IDL.Type>
    : T extends "variant"
        ? VariantFields<IDL.Type>
        : T extends "tuple"
            ? TupleFields<IDL.Type>
            : T extends "optional"
                ? OptionalFields
                : T extends "vector"
                    ? VectorFields
                    : T extends "recursive"
                        ? RecursiveFields
                        : T extends "unknown"
                            ? InputField<IDL.Type>
                            : T extends "text"
                                ? InputField<IDL.TextClass>
                                : T extends "number"
                                    ? NumberField
                                    : T extends "principal"
                                        ? PrincipalField
                                        : T extends "boolean"
                                            ? InputField<IDL.BoolClass>
                                            : T extends "null"
                                                ? InputField<IDL.NullClass>
                                                : never

Type Parameters

  • T extends FieldType = any

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_visitor.DynamicFieldTypeByClass.html b/docs/types/_ic_reactor_visitor.DynamicFieldTypeByClass.html deleted file mode 100644 index 57a4430726..0000000000 --- a/docs/types/_ic_reactor_visitor.DynamicFieldTypeByClass.html +++ /dev/null @@ -1,40 +0,0 @@ -DynamicFieldTypeByClass | IC ReActor -

Type alias DynamicFieldTypeByClass<T>

DynamicFieldTypeByClass<T>: T extends IDL.RecordClass
    ? RecordFields<T>
    : T extends IDL.TupleClass<any>
        ? TupleFields<T>
        : T extends IDL.VariantClass
            ? VariantFields<T>
            : T extends IDL.VecClass<any>
                ? VectorFields
                : T extends IDL.OptClass<any>
                    ? OptionalFields
                    : T extends IDL.RecClass<any>
                        ? RecursiveFields
                        : T extends IDL.PrincipalClass
                            ? PrincipalField
                            : T extends AllNumberTypes
                                ? NumberField
                                : InputField<T>

Type Parameters

  • T extends IDL.Type

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_visitor.ExtraInputFormFields.html b/docs/types/_ic_reactor_visitor.ExtraInputFormFields.html deleted file mode 100644 index 77122f6bf4..0000000000 --- a/docs/types/_ic_reactor_visitor.ExtraInputFormFields.html +++ /dev/null @@ -1,40 +0,0 @@ -ExtraInputFormFields | IC ReActor -
ExtraInputFormFields: Partial<{
    maxLength: number;
    minLength: number;
}>

Type declaration

  • maxLength: number
  • minLength: number

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_visitor.FieldTypeFromIDLType.html b/docs/types/_ic_reactor_visitor.FieldTypeFromIDLType.html deleted file mode 100644 index 7786a518c2..0000000000 --- a/docs/types/_ic_reactor_visitor.FieldTypeFromIDLType.html +++ /dev/null @@ -1,40 +0,0 @@ -FieldTypeFromIDLType | IC ReActor -

Type alias FieldTypeFromIDLType<T>

FieldTypeFromIDLType<T>: T extends IDL.Type
    ? ReturnType<T["decodeValue"]>
    : any

Type Parameters

  • T = any

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_visitor.FunctionCategory.html b/docs/types/_ic_reactor_visitor.FunctionCategory.html deleted file mode 100644 index b98f02b30a..0000000000 --- a/docs/types/_ic_reactor_visitor.FunctionCategory.html +++ /dev/null @@ -1,40 +0,0 @@ -FunctionCategory | IC ReActor -
FunctionCategory: "home" | "wallet" | "governance" | "setting"

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_visitor.MethodDefaultValues.html b/docs/types/_ic_reactor_visitor.MethodDefaultValues.html deleted file mode 100644 index b47ae433df..0000000000 --- a/docs/types/_ic_reactor_visitor.MethodDefaultValues.html +++ /dev/null @@ -1,40 +0,0 @@ -MethodDefaultValues | IC ReActor -

Type alias MethodDefaultValues<T>

MethodDefaultValues<T>: {
    [key: `arg${number}`]: FieldTypeFromIDLType<T>;
}

Type Parameters

  • T = string

Type declaration

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_visitor.MethodDetails.html b/docs/types/_ic_reactor_visitor.MethodDetails.html deleted file mode 100644 index 0ddb330827..0000000000 --- a/docs/types/_ic_reactor_visitor.MethodDetails.html +++ /dev/null @@ -1,40 +0,0 @@ -MethodDetails | IC ReActor -
MethodDetails<A>: {
    __description: string;
    __label: string;
    category: FunctionCategory;
    functionName: FunctionName<A>;
    functionType: FunctionType;
    order: number;
    [key: `arg${number}`]: FieldDetailsWithChild;
}

Type Parameters

Type declaration

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_visitor.MethodResult.html b/docs/types/_ic_reactor_visitor.MethodResult.html deleted file mode 100644 index fbeda38473..0000000000 --- a/docs/types/_ic_reactor_visitor.MethodResult.html +++ /dev/null @@ -1,40 +0,0 @@ -MethodResult | IC ReActor -

Type alias MethodResult<A, M>

MethodResult<A, M>: {
    description: string;
    label: string;
    type: ReturnDataType;
    value?: MethodResultValue<A, M>;
    values?: MethodResult<A, M>[];
}

Type Parameters

Type declaration

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_visitor.MethodResultValue.html b/docs/types/_ic_reactor_visitor.MethodResultValue.html deleted file mode 100644 index 3b7f48a47b..0000000000 --- a/docs/types/_ic_reactor_visitor.MethodResultValue.html +++ /dev/null @@ -1,40 +0,0 @@ -MethodResultValue | IC ReActor -

Type alias MethodResultValue<A, M>

MethodResultValue<A, M>: ExtractActorMethodReturnType<A[M]> | MethodResult<A, M> | number | string | boolean | Principal | Uint8Array | null

Type Parameters

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_visitor.OtherDetails.html b/docs/types/_ic_reactor_visitor.OtherDetails.html deleted file mode 100644 index 8f85ab4825..0000000000 --- a/docs/types/_ic_reactor_visitor.OtherDetails.html +++ /dev/null @@ -1,40 +0,0 @@ -OtherDetails | IC ReActor -

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_visitor.ServiceDefaultValues.html b/docs/types/_ic_reactor_visitor.ServiceDefaultValues.html deleted file mode 100644 index ee19a5685d..0000000000 --- a/docs/types/_ic_reactor_visitor.ServiceDefaultValues.html +++ /dev/null @@ -1,40 +0,0 @@ -ServiceDefaultValues | IC ReActor -

Type alias ServiceDefaultValues<A, M>

ServiceDefaultValues<A, M>: {
    [key in M]: MethodDefaultValues<M>
}

Type Parameters

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_visitor.ServiceDetails.html b/docs/types/_ic_reactor_visitor.ServiceDetails.html deleted file mode 100644 index 9443c3ba53..0000000000 --- a/docs/types/_ic_reactor_visitor.ServiceDetails.html +++ /dev/null @@ -1,40 +0,0 @@ -ServiceDetails | IC ReActor -
ServiceDetails<A>: {
    [K in FunctionName<A>]: (<ExtractorClass>(extractorClass?) => MethodDetails<A>)
}

Type Parameters

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/types/_ic_reactor_visitor.ServiceFields.html b/docs/types/_ic_reactor_visitor.ServiceFields.html deleted file mode 100644 index 276cb574e0..0000000000 --- a/docs/types/_ic_reactor_visitor.ServiceFields.html +++ /dev/null @@ -1,40 +0,0 @@ -ServiceFields | IC ReActor -

Type alias ServiceFields<A, M>

ServiceFields<A, M>: {
    [key in M]: (<ExtractorClass>(extractorClass?) => MethodFields<A, M>)
}

Type Parameters

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/variables/_ic_reactor_store.IC_HOST_NETWORK_URI.html b/docs/variables/_ic_reactor_store.IC_HOST_NETWORK_URI.html deleted file mode 100644 index bd138a070c..0000000000 --- a/docs/variables/_ic_reactor_store.IC_HOST_NETWORK_URI.html +++ /dev/null @@ -1,40 +0,0 @@ -IC_HOST_NETWORK_URI | IC ReActor -

Variable IC_HOST_NETWORK_URIConst

IC_HOST_NETWORK_URI: "https://ic0.app" = "https://ic0.app"

Generated using TypeDoc
- - -

\ No newline at end of file diff --git a/docs/variables/_ic_reactor_store.LOCAL_HOST_NETWORK_URI.html b/docs/variables/_ic_reactor_store.LOCAL_HOST_NETWORK_URI.html deleted file mode 100644 index b114ec0bec..0000000000 --- a/docs/variables/_ic_reactor_store.LOCAL_HOST_NETWORK_URI.html +++ /dev/null @@ -1,40 +0,0 @@ -LOCAL_HOST_NETWORK_URI | IC ReActor -

Variable LOCAL_HOST_NETWORK_URIConst

LOCAL_HOST_NETWORK_URI: "http://127.0.0.1:4943" = "http://127.0.0.1:4943"

Generated using TypeDoc
- - -

\ No newline at end of file