diff --git a/.github/workflows/agent-language-tests.yml b/.github/workflows/agent-language-tests.yml new file mode 100644 index 000000000..45f079349 --- /dev/null +++ b/.github/workflows/agent-language-tests.yml @@ -0,0 +1,50 @@ +# This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: Agent Language + +on: + push: + branches: + - main + - staging + - bootstrap-languages + +jobs: + pull: + name: Test + + strategy: + matrix: + platform: [ubuntu-22.04] + node-version: [16.x] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + runs-on: ${{ matrix.platform }} + + steps: + - uses: actions/checkout@v2 + - uses: actions-rs/toolchain@v1 + with: + toolchain: 1.63.0 + - name: Cache cargo + id: cache-cargo + uses: actions/cache@v3 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + - run: rustup target add wasm32-unknown-unknown + - run: yarn install + - run: yarn run build-languages + - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" + - run: cd bootstrap-languages/agent-language/hc-dna/zomes/tests && yarn install && yarn run test \ No newline at end of file diff --git a/.github/workflows/direct-message-language-tests.yml b/.github/workflows/direct-message-language-tests.yml new file mode 100644 index 000000000..6d764183d --- /dev/null +++ b/.github/workflows/direct-message-language-tests.yml @@ -0,0 +1,50 @@ +# This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: Direct Message Language + +on: + push: + branches: + - main + - staging + - bootstrap-languages + +jobs: + pull: + name: Test + + strategy: + matrix: + platform: [ubuntu-22.04] + node-version: [16.x] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + runs-on: ${{ matrix.platform }} + + steps: + - uses: actions/checkout@v2 + - uses: actions-rs/toolchain@v1 + with: + toolchain: 1.63.0 + - name: Cache cargo + id: cache-cargo + uses: actions/cache@v3 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + - run: rustup target add wasm32-unknown-unknown + - run: yarn install + - run: yarn run build-languages + - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" + - run: cd bootstrap-languages/direct-message-language/hc-dna/tests && yarn install && yarn run test \ No newline at end of file diff --git a/.github/workflows/file-storage-language-tests.yml b/.github/workflows/file-storage-language-tests.yml new file mode 100644 index 000000000..3747a85bc --- /dev/null +++ b/.github/workflows/file-storage-language-tests.yml @@ -0,0 +1,88 @@ +# This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: File Storage + +on: + push: + branches: + - main + - staging + - bootstrap-languages + +jobs: + holochain: + name: Holochain Tests + + strategy: + matrix: + platform: [ubuntu-22.04] + node-version: [16.x] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + runs-on: ${{ matrix.platform }} + + steps: + - uses: actions/checkout@v2 + - uses: actions-rs/toolchain@v1 + with: + toolchain: 1.63.0 + - name: Cache cargo + id: cache-cargo + uses: actions/cache@v3 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + - run: rustup target add wasm32-unknown-unknown + - run: yarn install + - run: yarn run build-languages + - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" + - run: cd bootstrap-languages/file-storage/hc-dna/tests && yarn install && yarn run test + + integration: + name: Integration Test + + strategy: + matrix: + platform: [ubuntu-22.04] + node-version: [16.x] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + runs-on: ${{ matrix.platform }} + + steps: + - uses: actions/checkout@v2 + - uses: actions-rs/toolchain@v1 + with: + toolchain: 1.63.0 + - name: Cache cargo + id: cache-cargo + uses: actions/cache@v3 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + - run: rustup target add wasm32-unknown-unknown + - run: yarn install + - run: yarn run build + - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" + - run: cd bootstrap-languages/file-storage && yarn run integration-test \ No newline at end of file diff --git a/.github/workflows/p-diff-sync-tests.yml b/.github/workflows/p-diff-sync-tests.yml index 839eaf2e2..22edf590c 100644 --- a/.github/workflows/p-diff-sync-tests.yml +++ b/.github/workflows/p-diff-sync-tests.yml @@ -7,7 +7,8 @@ on: push: branches: - main - pull_request: + - staging + - bootstrap-languages jobs: unit: diff --git a/.gitignore b/.gitignore index 2791bd087..e834ad208 100644 --- a/.gitignore +++ b/.gitignore @@ -13,11 +13,13 @@ executorsrc/tests/publishing-agent/ad4m/data/db.json core/Links.test.js core/lib/* +executor/lib/* coverage .DS_store docs-src/api.md docs-src/typedoc docs-src/_book +docs/out host/dist host/build @@ -52,4 +54,6 @@ tests/ad4m1 tests/ad4m2 /tests/ad4mJS -test-runner/.ad4m-test \ No newline at end of file +test-runner/.ad4m-test + +temp \ No newline at end of file diff --git a/CHANGELOG b/CHANGELOG index 324ebc8b1..569e2c7d7 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -15,6 +15,27 @@ This project _loosely_ adheres to [Semantic Versioning](https://semver.org/spec/ ### Fixed +## [0.5.0] - 10/07/2023 + +### Added + - bootstrap languages to mono repo [PR#328](https://github.com/perspect3vism/ad4m/pull/328) + - Added a apps changes listener so the launcher app can updated the apps list without having to switch tabs to trigger update [PR#354](https://github.com/perspect3vism/ad4m/pull/354) + - Support for new UI oriented Subject class predicates (property_named_option, p3_class_icon, etc). [PR#353](https://github.com/perspect3vism/ad4m/pull/353) + - Adds a new status property to Link expression to indicate if the link is shared or local. [PR#130](https://github.com/perspect3vism/ad4m/pull/130) + - Added local links support to SDNA. [PR#370](https://github.com/perspect3vism/ad4m/pull/370) + +### Changed + +### Deprecated + +### Removed + +### Fixed + - Expression -> get would fail when executed on a Literal expression. [PR#353](https://github.com/perspect3vism/ad4m/pull/353) + - Fixed launcher breaking on windows if a new app instance is created. [PR#362](https://github.com/perspect3vism/ad4m/pull/362) + - Fixed SDNA decorator readyonly properties in ts5 & fixed collection not working if not initalized. [PR#369](https://github.com/perspect3vism/ad4m/pull/369) + - Fixed Perspective handle's state was not updated when the instance state got updated which caused the issue. [PR#368](https://github.com/perspect3vism/ad4m/pull/368) + ## [0.3.4] - 27/03/2023 ### Added diff --git a/Cargo.lock b/Cargo.lock index c3ad6fedd..ae93c73b2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10,7 +10,7 @@ checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" [[package]] name = "ad4m" -version = "0.3.3" +version = "0.5.0" dependencies = [ "ad4m-client", "anyhow", @@ -32,7 +32,7 @@ dependencies = [ [[package]] name = "ad4m-client" -version = "0.3.3" +version = "0.5.0" dependencies = [ "anyhow", "async-std", @@ -59,7 +59,7 @@ dependencies = [ [[package]] name = "ad4m-launcher" -version = "0.3.3-prerelease" +version = "0.5.0" dependencies = [ "ad4m-client", "directories", diff --git a/bootstrap-languages/agent-language/.gitignore b/bootstrap-languages/agent-language/.gitignore new file mode 100644 index 000000000..ae8c71ffa --- /dev/null +++ b/bootstrap-languages/agent-language/.gitignore @@ -0,0 +1,13 @@ +dist/ +node_modules/ +target/ +.hc +.cargo +*.log +*.dna +build/* +*.js +*.js.map +!*.config.icons.js +!*.config.js +!dna.js \ No newline at end of file diff --git a/bootstrap-languages/agent-language/ConstructorIcon.svelte b/bootstrap-languages/agent-language/ConstructorIcon.svelte new file mode 100644 index 000000000..5db1c1cfc --- /dev/null +++ b/bootstrap-languages/agent-language/ConstructorIcon.svelte @@ -0,0 +1,11 @@ + + + + +
+
+ + \ No newline at end of file diff --git a/bootstrap-languages/agent-language/Icon.svelte b/bootstrap-languages/agent-language/Icon.svelte new file mode 100644 index 000000000..bb8154459 --- /dev/null +++ b/bootstrap-languages/agent-language/Icon.svelte @@ -0,0 +1,83 @@ + + + + +
+ +
+

{did}

+

{firstName} {lastName}

+

{email}

+
+ + {#if emailValidator.validate(email) } + gravatar + {/if} +
+ + + \ No newline at end of file diff --git a/bootstrap-languages/agent-language/README.md b/bootstrap-languages/agent-language/README.md new file mode 100644 index 000000000..c5b01bf15 --- /dev/null +++ b/bootstrap-languages/agent-language/README.md @@ -0,0 +1,3 @@ +# agent-language + +A ad4m language to store Agent data associated with DID's \ No newline at end of file diff --git a/bootstrap-languages/agent-language/adapter.ts b/bootstrap-languages/agent-language/adapter.ts new file mode 100644 index 000000000..431544002 --- /dev/null +++ b/bootstrap-languages/agent-language/adapter.ts @@ -0,0 +1,64 @@ +import type { Address, Agent, Expression, PublicSharing, LanguageContext, HolochainLanguageDelegate, ExpressionAdapter, AgentService } from "@perspect3vism/ad4m"; +import { DNA_NICK } from "./dna"; + +export default class ExpressionAdapterImpl implements ExpressionAdapter { + #DNA: HolochainLanguageDelegate; + #agent: AgentService; + putAdapter: PublicSharing + + constructor(context: LanguageContext) { + this.#DNA = context.Holochain as HolochainLanguageDelegate; + this.#agent = context.agent; + this.putAdapter = new Sharing(context) + } + + async get(did: Address): Promise { + console.log("Getting expression with did", did); + const expression = await this.#DNA.call( + DNA_NICK, + "agent_store", + "get_agent_expression", + did + ); + + return expression + }; +} + +class Sharing implements PublicSharing { + #DNA: HolochainLanguageDelegate; + #agent: AgentService; + + constructor(context: LanguageContext) { + this.#DNA = context.Holochain as HolochainLanguageDelegate; + this.#agent = context.agent; + } + + async createPublic(content: object): Promise
{ + + if(!content['did'] || !content['perspective'] || !content['perspective'].links) + throw "Content must be an Agent object" + + const agent = content as Agent + if(agent.did != this.#agent.did) + throw "Can't set Agent Expression for foreign DID - only for self" + + if(!agent.directMessageLanguage) + agent.directMessageLanguage = null + + agent.perspective.links.forEach(link => { + delete link.proof.valid + delete link.proof.invalid + }) + + const expression = this.#agent.createSignedExpression(agent); + await this.#DNA.call( + DNA_NICK, + "agent_store", + "create_agent_expression", + expression + ); + + return agent.did + } +} \ No newline at end of file diff --git a/bootstrap-languages/agent-language/dna.js b/bootstrap-languages/agent-language/dna.js new file mode 100644 index 000000000..bcd0ebb55 --- /dev/null +++ b/bootstrap-languages/agent-language/dna.js @@ -0,0 +1,4 @@ +import dna from "./hc-dna/workdir/agent-store.dna"; + +export const DNA = Buffer.from(dna, "base64"); +export const DNA_NICK = "agent-store"; diff --git a/bootstrap-languages/agent-language/expressionUI.ts b/bootstrap-languages/agent-language/expressionUI.ts new file mode 100644 index 000000000..310d1852c --- /dev/null +++ b/bootstrap-languages/agent-language/expressionUI.ts @@ -0,0 +1,13 @@ +import type { ExpressionUI } from "@perspect3vism/ad4m"; +import Icon from './build/Icon.js' +import ConstructorIcon from './build/ConstructorIcon.js' + +export class UI implements ExpressionUI { + icon(): string { + return Icon + } + + constructorIcon(): string { + return ConstructorIcon + } +} \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/Cargo.lock b/bootstrap-languages/agent-language/hc-dna/Cargo.lock new file mode 100644 index 000000000..649b4766b --- /dev/null +++ b/bootstrap-languages/agent-language/hc-dna/Cargo.lock @@ -0,0 +1,2233 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "agent_store" +version = "0.0.1" +dependencies = [ + "agent_store_integrity", + "chrono", + "derive_more", + "hdk", + "holo_hash", + "serde", + "thiserror", +] + +[[package]] +name = "agent_store_integrity" +version = "0.0.1" +dependencies = [ + "chrono", + "derive_more", + "hdi", + "hdk", + "serde", +] + +[[package]] +name = "ahash" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom", + "once_cell", + "version_check", +] + +[[package]] +name = "aho-corasick" +version = "0.7.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" +dependencies = [ + "memchr", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "arrayref" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" + +[[package]] +name = "arrayvec" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backtrace" +version = "0.3.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab84319d616cfb654d03394f38ab7e6f0919e181b1b57e1fd15e7fb4077d9a7" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object 0.29.0", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "blake2b_simd" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq", +] + +[[package]] +name = "block-buffer" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bumpalo" +version = "3.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3" + +[[package]] +name = "bytecheck" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d11cac2c12b5adc6570dad2ee1b87eff4955dac476fe12d81e5fdd352e52406f" +dependencies = [ + "bytecheck_derive", + "ptr_meta", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13e576ebe98e605500b3c8041bb888e966653577172df6dd97398714eb30b9bf" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "camino" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c77df041dc383319cc661b428b6961a005db4d6808d5e12536931b1ca9556055" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08a1ec454bc3eead8719cb56e15dbbfecdbc14e4b3a3ae4936cc6e31f5fc0d07" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.12", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cc" +version = "1.0.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" +dependencies = [ + "iana-time-zone", + "num-integer", + "num-traits", + "serde", + "time", + "winapi", +] + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "corosensei" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9847f90f32a50b0dcbd68bc23ff242798b13080b97b0569f6ed96a45ce4cf2cd" +dependencies = [ + "autocfg", + "cfg-if", + "libc", + "scopeguard", + "windows-sys 0.33.0", +] + +[[package]] +name = "cpufeatures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +dependencies = [ + "libc", +] + +[[package]] +name = "cranelift-bforest" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38faa2a16616c8e78a18d37b4726b98bfd2de192f2fdc8a39ddf568a408a0f75" +dependencies = [ + "cranelift-entity", +] + +[[package]] +name = "cranelift-codegen" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26f192472a3ba23860afd07d2b0217dc628f21fcc72617aa1336d98e1671f33b" +dependencies = [ + "cranelift-bforest", + "cranelift-codegen-meta", + "cranelift-codegen-shared", + "cranelift-entity", + "gimli", + "log", + "regalloc", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-codegen-meta" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f32ddb89e9b89d3d9b36a5b7d7ea3261c98235a76ac95ba46826b8ec40b1a24" +dependencies = [ + "cranelift-codegen-shared", +] + +[[package]] +name = "cranelift-codegen-shared" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01fd0d9f288cc1b42d9333b7a776b17e278fc888c28e6a0f09b5573d45a150bc" + +[[package]] +name = "cranelift-entity" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3bfe172b83167604601faf9dc60453e0d0a93415b57a9c4d1a7ae6849185cf" + +[[package]] +name = "cranelift-frontend" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a006e3e32d80ce0e4ba7f1f9ddf66066d052a8c884a110b91d05404d6ce26dce" +dependencies = [ + "cranelift-codegen", + "log", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "045ebe27666471bb549370b4b0b3e51b07f56325befa4284db65fc89c02511b1" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset", + "once_cell", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "darling" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +dependencies = [ + "darling_core 0.13.4", + "darling_macro 0.13.4", +] + +[[package]] +name = "darling" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4529658bdda7fd6769b8614be250cdcfc3aeb0ee72fe66f9e41e5e5eb73eac02" +dependencies = [ + "darling_core 0.14.1", + "darling_macro 0.14.1", +] + +[[package]] +name = "darling_core" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "darling_core" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "649c91bc01e8b1eac09fb91e8dbc7d517684ca6be8ebc75bb9cafc894f9fdb6f" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +dependencies = [ + "darling_core 0.13.4", + "quote", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddfc69c5bfcbd2fc09a0f38451d2daf0e372e367986a83906d1b0dbc88134fb5" +dependencies = [ + "darling_core 0.14.1", + "quote", + "syn", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn", +] + +[[package]] +name = "digest" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "either" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be" + +[[package]] +name = "enum-iterator" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eeac5c5edb79e4e39fe8439ef35207780a11f69c52cbe424ce3dfad4cb78de6" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c134c37760b27a871ba422106eedbb8247da973a09e82558bf26d619c882b159" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "enumset" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4799cdb24d48f1f8a7a98d06b7fde65a85a2d1e42b25a889f5406aa1fbefe074" +dependencies = [ + "enumset_derive", +] + +[[package]] +name = "enumset_derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea83a3fbdc1d999ccfbcbee717eab36f8edf2d71693a23ce0d7cca19e085304c" +dependencies = [ + "darling 0.13.4", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fastrand" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +dependencies = [ + "instant", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "gcollections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f551fdf23ef80329f754919669147a71c67b6cfe3569cd93b6fabdd62044377" +dependencies = [ + "bit-set", + "num-integer", + "num-traits", + "trilean", +] + +[[package]] +name = "generic-array" +version = "0.14.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "gimli" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" +dependencies = [ + "fallible-iterator", + "indexmap", + "stable_deref_trait", +] + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash", +] + +[[package]] +name = "hdi" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "344ddd3db53dec1352aca06ca5048d305a2c20149cf3117e9669ac567e71c109" +dependencies = [ + "hdk_derive", + "holo_hash", + "holochain_integrity_types", + "holochain_wasmer_guest", + "paste", + "serde", + "serde_bytes", + "tracing", + "tracing-core", +] + +[[package]] +name = "hdk" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab34bc763d15b2d91d26008487b189547da9c184b5bcd448242ac255f483443e" +dependencies = [ + "getrandom", + "hdi", + "hdk_derive", + "holo_hash", + "holochain_wasmer_guest", + "holochain_zome_types", + "paste", + "serde", + "serde_bytes", + "thiserror", + "tracing", + "tracing-core", +] + +[[package]] +name = "hdk_derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "596ab116a5f8977ef7d630b065b233ab73b5cded613688a487c666f8e6e63291" +dependencies = [ + "darling 0.14.1", + "heck", + "holochain_integrity_types", + "paste", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "heck" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "holo_hash" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "270268effa8c72be70eeb0c3d3944f58a3885daf355cd3597300bf4b33bfee1b" +dependencies = [ + "base64", + "blake2b_simd", + "derive_more", + "holochain_serialized_bytes", + "kitsune_p2p_dht_arc", + "serde", + "serde_bytes", + "thiserror", +] + +[[package]] +name = "holochain_integrity_types" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c3cf7e728e70ab5aac0c89e437879ee529894d6aa2b6d6ca5d59527fda38157" +dependencies = [ + "holo_hash", + "holochain_serialized_bytes", + "kitsune_p2p_timestamp", + "paste", + "serde", + "serde_bytes", + "subtle", + "tracing", +] + +[[package]] +name = "holochain_serialized_bytes" +version = "0.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9805b3e01e7b5c144782a0823db4dc895fec18a9ccd45a492ce7c7bf157a9e38" +dependencies = [ + "holochain_serialized_bytes_derive", + "rmp-serde", + "serde", + "serde-transcode", + "serde_bytes", + "serde_json", + "thiserror", +] + +[[package]] +name = "holochain_serialized_bytes_derive" +version = "0.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1077232d0c427d64feb9e138fa22800e447eafb1810682d6c13beb95333cb32c" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "holochain_wasmer_common" +version = "0.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce2c50cfaf43ccfaf9c584eae3864dffb3f010f140dad6e52368f0969ce680d7" +dependencies = [ + "holochain_serialized_bytes", + "serde", + "serde_bytes", + "test-fuzz", + "thiserror", + "wasmer", + "wasmer-engine", +] + +[[package]] +name = "holochain_wasmer_guest" +version = "0.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5539ab71791a3f9d0febbd2822ba398ef34e18f55f86eafc4918a776d12d7db" +dependencies = [ + "holochain_serialized_bytes", + "holochain_wasmer_common", + "parking_lot", + "paste", + "serde", + "tracing", +] + +[[package]] +name = "holochain_zome_types" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9725c45ba4fff602c0ac548945ddbb44cb255ee934336efd43262fff8bec8e49" +dependencies = [ + "holo_hash", + "holochain_integrity_types", + "holochain_serialized_bytes", + "holochain_wasmer_common", + "kitsune_p2p_timestamp", + "paste", + "serde", + "serde_bytes", + "subtle", + "thiserror", + "tracing", +] + +[[package]] +name = "home" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "747309b4b440c06d57b0b25f2aee03ee9b5e5397d288c60e21fc709bb98a7408" +dependencies = [ + "winapi", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c495f162af0bf17656d0014a0eded5f3cd2f365fdd204548c2869db89359dc7" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "js-sys", + "once_cell", + "wasm-bindgen", + "winapi", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "if_chain" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" + +[[package]] +name = "indexmap" +version = "1.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "intervallum" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ccecd834666f695ecec3ff0d5fc32e32c91abea91a28fd0aceb4b35a82cee1" +dependencies = [ + "bit-set", + "gcollections", + "num-integer", + "num-traits", + "trilean", +] + +[[package]] +name = "itoa" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d" + +[[package]] +name = "js-sys" +version = "0.3.59" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "kitsune_p2p_dht_arc" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0344da4e6309dfa0d7471e4b868e7dc829f109a99b3fd552abfd4d9850593cbf" +dependencies = [ + "derive_more", + "gcollections", + "intervallum", + "num-traits", + "serde", +] + +[[package]] +name = "kitsune_p2p_timestamp" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89399225067e17ab204a3d496622dd7ab51959690676eee35c45c6ad9a725165" +dependencies = [ + "chrono", + "derive_more", + "serde", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + +[[package]] +name = "libc" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" + +[[package]] +name = "libloading" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "lock_api" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "loupe" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b6a72dfa44fe15b5e76b94307eeb2ff995a8c5b283b55008940c02e0c5b634d" +dependencies = [ + "indexmap", + "loupe-derive", + "rustversion", +] + +[[package]] +name = "loupe-derive" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fbfc88337168279f2e9ae06e157cfed4efd3316e14dc96ed074d4f2e6c5952" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "mach" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +dependencies = [ + "libc", +] + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "memmap2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a79b39c93a7a5a27eeaf9a23b5ff43f1b9e0ad6b1cdd441140ae53c35613fc7" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "miniz_oxide" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc" +dependencies = [ + "adler", +] + +[[package]] +name = "more-asserts" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "object" +version = "0.28.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424" +dependencies = [ + "crc32fast", + "hashbrown 0.11.2", + "indexmap", + "memchr", +] + +[[package]] +name = "object" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f7254b99e31cad77da24b08ebf628882739a608578bb1bcdfc1f9c21260d7c0" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-sys 0.42.0", +] + +[[package]] +name = "paste" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" + +[[package]] +name = "pest" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbc7bc69c062e492337d74d59b120c274fd3d261b6bf6d3207d499b4b379c41a" +dependencies = [ + "thiserror", + "ucd-trie", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "quote" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rayon" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d" +dependencies = [ + "autocfg", + "crossbeam-deque", + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "num_cpus", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "regalloc" +version = "0.0.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62446b1d3ebf980bdc68837700af1d77b37bc430e524bf95319c6eada2a4cc02" +dependencies = [ + "log", + "rustc-hash", + "smallvec", +] + +[[package]] +name = "regex" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" + +[[package]] +name = "region" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76e189c2369884dce920945e2ddf79b3dff49e071a167dd1817fa9c4c00d512e" +dependencies = [ + "bitflags", + "libc", + "mach", + "winapi", +] + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi", +] + +[[package]] +name = "rend" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79af64b4b6362ffba04eef3a4e10829718a4896dac19daa741851c86781edf95" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "rkyv" +version = "0.7.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cec2b3485b07d96ddfd3134767b8a447b45ea4eb91448d0a35180ec0ffd5ed15" +dependencies = [ + "bytecheck", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eaedadc88b53e36dd32d940ed21ae4d850d5916f2581526921f553a72ac34c4" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "rmp" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmp-serde" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "723ecff9ad04f4ad92fe1c8ca6c20d2196d9286e9c60727c4cb5511629260e9d" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.12", +] + +[[package]] +name = "rustversion" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24c8ad4f0c00e1eb5bc7614d236a7f1300e3dbd76b68cac8e06fb00b015ad8d8" + +[[package]] +name = "ryu" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2333e6df6d6598f2b1974829f853c2b4c5f4a6e503c10af918081aa6f8564e1" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "serde" +version = "1.0.152" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-transcode" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "590c0e25c2a5bb6e85bf5c1bce768ceb86b316e7a01bdf07d2cb4ec2271990e2" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_bytes" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "212e73464ebcde48d723aa02eb270ba62eff38a9b732df31f33f1b4e145f3a54" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.152" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7" +dependencies = [ + "indexmap", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sha-1" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "smallvec" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn", +] + +[[package]] +name = "subprocess" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2e86926081dda636c546d8c5e641661049d7562a68f5488be4a1f7f66f6086" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "subtle" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" + +[[package]] +name = "syn" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "target-lexicon" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c02424087780c9b71cc96799eaeddff35af2bc513278cda5c99fc1f5d026d3c1" + +[[package]] +name = "tempfile" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +dependencies = [ + "cfg-if", + "fastrand", + "libc", + "redox_syscall", + "remove_dir_all", + "winapi", +] + +[[package]] +name = "test-fuzz" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "125df852011c4f8f31df5620f4aea38ecddb5dfb4d9bc569b30485b15ffc3d4e" +dependencies = [ + "serde", + "test-fuzz-internal", + "test-fuzz-macro", + "test-fuzz-runtime", +] + +[[package]] +name = "test-fuzz-internal" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58071dc2471840e9f374eeb0f6e405a31bccb3cc5d59bb4598f02cafc274b5c4" +dependencies = [ + "cargo_metadata", + "proc-macro2", + "quote", + "serde", + "strum_macros", +] + +[[package]] +name = "test-fuzz-macro" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "856bbca0314c328004691b9c0639fb198ca764d1ce0e20d4dd8b78f2697c2a6f" +dependencies = [ + "darling 0.14.1", + "if_chain", + "lazy_static", + "proc-macro2", + "quote", + "subprocess", + "syn", + "test-fuzz-internal", + "toolchain_find", + "unzip-n", +] + +[[package]] +name = "test-fuzz-runtime" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "303774eb17994c2ddb59c460369f4c3a55496f013380278d78eeebd2deb896ac" +dependencies = [ + "bincode", + "hex", + "num-traits", + "serde", + "sha-1", + "test-fuzz-internal", +] + +[[package]] +name = "thiserror" +version = "1.0.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "time" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +dependencies = [ + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", + "winapi", +] + +[[package]] +name = "toolchain_find" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e85654a10e7a07a47c6f19d93818f3f343e22927f2fa280c84f7c8042743413" +dependencies = [ + "home", + "lazy_static", + "regex", + "semver 0.11.0", + "walkdir", +] + +[[package]] +name = "tracing" +version = "0.1.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a400e31aa60b9d44a52a8ee0343b5b18566b03a8321e0d321f695cf56e940160" +dependencies = [ + "cfg-if", + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b7358be39f2f274f322d2aaed611acc57f382e8eb1e5b48cb9ae30933495ce7" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "trilean" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683ba5022fe6dbd7133cad150478ccf51bdb6d861515181e5fc6b4323d4fa424" + +[[package]] +name = "typenum" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" + +[[package]] +name = "ucd-trie" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" + +[[package]] +name = "unicode-ident" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7" + +[[package]] +name = "unicode-width" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" + +[[package]] +name = "unzip-n" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2e7e85a0596447f0f2ac090e16bc4c516c6fe91771fb0c0ccf7fa3dae896b9c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "walkdir" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +dependencies = [ + "same-file", + "winapi", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.82" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a" + +[[package]] +name = "wasm-encoder" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8905fd25fdadeb0e7e8bf43a9f46f9f972d6291ad0c7a32573b88dd13a6cfa6b" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasmer" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea8d8361c9d006ea3d7797de7bd6b1492ffd0f91a22430cfda6c1658ad57bedf" +dependencies = [ + "cfg-if", + "indexmap", + "js-sys", + "loupe", + "more-asserts", + "target-lexicon", + "thiserror", + "wasm-bindgen", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-compiler-cranelift", + "wasmer-derive", + "wasmer-engine", + "wasmer-engine-dylib", + "wasmer-engine-universal", + "wasmer-types", + "wasmer-vm", + "wat", + "winapi", +] + +[[package]] +name = "wasmer-artifact" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7aaf9428c29c1d8ad2ac0e45889ba8a568a835e33fd058964e5e500f2f7ce325" +dependencies = [ + "enumset", + "loupe", + "thiserror", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-compiler" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67a6cd866aed456656db2cfea96c18baabbd33f676578482b85c51e1ee19d2c" +dependencies = [ + "enumset", + "loupe", + "rkyv", + "serde", + "serde_bytes", + "smallvec", + "target-lexicon", + "thiserror", + "wasmer-types", + "wasmparser", +] + +[[package]] +name = "wasmer-compiler-cranelift" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48be2f9f6495f08649e4f8b946a2cbbe119faf5a654aa1457f9504a99d23dae0" +dependencies = [ + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "gimli", + "loupe", + "more-asserts", + "rayon", + "smallvec", + "target-lexicon", + "tracing", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-derive" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00e50405cc2a2f74ff574584710a5f2c1d5c93744acce2ca0866084739284b51" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "wasmer-engine" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f98f010978c244db431b392aeab0661df7ea0822343334f8f2a920763548e45" +dependencies = [ + "backtrace", + "enumset", + "lazy_static", + "loupe", + "memmap2", + "more-asserts", + "rustc-demangle", + "serde", + "serde_bytes", + "target-lexicon", + "thiserror", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-types", + "wasmer-vm", +] + +[[package]] +name = "wasmer-engine-dylib" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0358af9c154724587731175553805648d9acb8f6657880d165e378672b7e53" +dependencies = [ + "cfg-if", + "enum-iterator", + "enumset", + "leb128", + "libloading", + "loupe", + "object 0.28.4", + "rkyv", + "serde", + "tempfile", + "tracing", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-engine", + "wasmer-object", + "wasmer-types", + "wasmer-vm", + "which", +] + +[[package]] +name = "wasmer-engine-universal" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "440dc3d93c9ca47865a4f4edd037ea81bf983b5796b59b3d712d844b32dbef15" +dependencies = [ + "cfg-if", + "enumset", + "leb128", + "loupe", + "region", + "rkyv", + "wasmer-compiler", + "wasmer-engine", + "wasmer-engine-universal-artifact", + "wasmer-types", + "wasmer-vm", + "winapi", +] + +[[package]] +name = "wasmer-engine-universal-artifact" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f1db3f54152657eb6e86c44b66525ff7801dad8328fe677da48dd06af9ad41" +dependencies = [ + "enum-iterator", + "enumset", + "loupe", + "rkyv", + "thiserror", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-object" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d831335ff3a44ecf451303f6f891175c642488036b92ceceb24ac8623a8fa8b" +dependencies = [ + "object 0.28.4", + "thiserror", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-types" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39df01ea05dc0a9bab67e054c7cb01521e53b35a7bb90bd02eca564ed0b2667f" +dependencies = [ + "backtrace", + "enum-iterator", + "indexmap", + "loupe", + "more-asserts", + "rkyv", + "serde", + "thiserror", +] + +[[package]] +name = "wasmer-vm" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30d965fa61f4dc4cdb35a54daaf7ecec3563fbb94154a6c35433f879466247dd" +dependencies = [ + "backtrace", + "cc", + "cfg-if", + "corosensei", + "enum-iterator", + "indexmap", + "lazy_static", + "libc", + "loupe", + "mach", + "memoffset", + "more-asserts", + "region", + "rkyv", + "scopeguard", + "serde", + "thiserror", + "wasmer-artifact", + "wasmer-types", + "winapi", +] + +[[package]] +name = "wasmparser" +version = "0.83.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" + +[[package]] +name = "wast" +version = "45.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "186c474c4f9bb92756b566d592a16591b4526b1a4841171caa3f31d7fe330d96" +dependencies = [ + "leb128", + "memchr", + "unicode-width", + "wasm-encoder", +] + +[[package]] +name = "wat" +version = "1.0.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2d4bc4724b4f02a482c8cab053dac5ef26410f264c06ce914958f9a42813556" +dependencies = [ + "wast", +] + +[[package]] +name = "which" +version = "4.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c4fb54e6113b6a8772ee41c3404fb0301ac79604489467e0a9ce1f3e97c24ae" +dependencies = [ + "either", + "lazy_static", + "libc", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43dbb096663629518eb1dfa72d80243ca5a6aca764cae62a2df70af760a9be75" +dependencies = [ + "windows_aarch64_msvc 0.33.0", + "windows_i686_gnu 0.33.0", + "windows_i686_msvc 0.33.0", + "windows_x86_64_gnu 0.33.0", + "windows_x86_64_msvc 0.33.0", +] + +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc 0.42.0", + "windows_i686_gnu 0.42.0", + "windows_i686_msvc 0.42.0", + "windows_x86_64_gnu 0.42.0", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc 0.42.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd761fd3eb9ab8cc1ed81e56e567f02dd82c4c837e48ac3b2181b9ffc5060807" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" + +[[package]] +name = "windows_i686_gnu" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab0cf703a96bab2dc0c02c0fa748491294bf9b7feb27e1f4f96340f208ada0e" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" + +[[package]] +name = "windows_i686_msvc" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cfdbe89cc9ad7ce618ba34abc34bbb6c36d99e96cae2245b7943cd75ee773d0" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4dd9b0c0e9ece7bb22e84d70d01b71c6d6248b81a3c60d11869451b4cb24784" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff1e4aa646495048ec7f3ffddc411e1d829c026a2ec62b39da15c1055e406eaa" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" diff --git a/bootstrap-languages/agent-language/hc-dna/Cargo.toml b/bootstrap-languages/agent-language/hc-dna/Cargo.toml new file mode 100644 index 000000000..6bab5e26d --- /dev/null +++ b/bootstrap-languages/agent-language/hc-dna/Cargo.toml @@ -0,0 +1,11 @@ +[workspace] +members = [ + "zomes/agent_store", + "zomes/agent_store_integrity" +] + +[profile.dev] +opt-level = "z" + +[profile.release] +opt-level = "z" \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/build.ps1 b/bootstrap-languages/agent-language/hc-dna/build.ps1 new file mode 100644 index 000000000..e7bcb228e --- /dev/null +++ b/bootstrap-languages/agent-language/hc-dna/build.ps1 @@ -0,0 +1,3 @@ +$env:CARGO_TARGET_DIR = target +cargo build --release --target wasm32-unknown-unknown +hc dna pack workdir \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/build.sh b/bootstrap-languages/agent-language/hc-dna/build.sh new file mode 100755 index 000000000..a089cc772 --- /dev/null +++ b/bootstrap-languages/agent-language/hc-dna/build.sh @@ -0,0 +1,3 @@ +#!/bin/bash +CARGO_TARGET_DIR=target cargo build --release --target wasm32-unknown-unknown +hc dna pack workdir \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/default.nix b/bootstrap-languages/agent-language/hc-dna/default.nix new file mode 100644 index 000000000..33f97a914 --- /dev/null +++ b/bootstrap-languages/agent-language/hc-dna/default.nix @@ -0,0 +1,14 @@ +let + holonixPath = (import ./nix/sources.nix).holonix; # points to the current state of the Holochain repository + holonix = import (holonixPath) { + holochainVersionId = "main"; + }; + nixpkgs = holonix.pkgs; +in nixpkgs.mkShell { + inputsFrom = [ holonix.main ]; + packages = with nixpkgs; [ + binaryen + nodejs-16_x + swiProlog + ]; +} \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/holochain_version.nix b/bootstrap-languages/agent-language/hc-dna/holochain_version.nix new file mode 100644 index 000000000..9f44831c8 --- /dev/null +++ b/bootstrap-languages/agent-language/hc-dna/holochain_version.nix @@ -0,0 +1,20 @@ +# This file was generated with the following command: +# update-holochain-versions --git-src=revision:holochain-0.0.161 --lair-version-req=~0.2 --output-file=holochain_version.nix +# For usage instructions please visit https://github.com/holochain/holochain-nixpkgs/#readme + +{ + url = "https://github.com/holochain/holochain"; + rev = "holochain-0.1.0"; + sha256 = "sha256-xp1DTVrhGZc1CZr6LvBFZZhoOUbUPpg3/mWOj4DDXjI="; + cargoLock = { + outputHashes = { + }; + }; + + binsFilter = [ + "holochain" + "hc" + "kitsune-p2p-proxy" + "kitsune-p2p-tx2-proxy" + ]; +} diff --git a/bootstrap-languages/agent-language/hc-dna/nix/sources.json b/bootstrap-languages/agent-language/hc-dna/nix/sources.json new file mode 100644 index 000000000..451563814 --- /dev/null +++ b/bootstrap-languages/agent-language/hc-dna/nix/sources.json @@ -0,0 +1,14 @@ +{ + "holonix": { + "branch": "main", + "description": "NixOS && Holochain", + "homepage": "", + "owner": "holochain", + "repo": "holonix", + "rev": "241c1754a37881f51f2f33921a2777b38c34fa24", + "sha256": "sha256:0zaa477kyzpsrcc3nk1jznp4gchwm4pk5p37pwkq6mjhiizcxshy", + "type": "tarball", + "url": "https://github.com/holochain/holonix/archive/241c1754a37881f51f2f33921a2777b38c34fa24.tar.gz", + "url_template": "https://github.com///archive/.tar.gz" + } +} \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/nix/sources.nix b/bootstrap-languages/agent-language/hc-dna/nix/sources.nix new file mode 100644 index 000000000..fe2468872 --- /dev/null +++ b/bootstrap-languages/agent-language/hc-dna/nix/sources.nix @@ -0,0 +1,174 @@ +# This file has been generated by Niv. + +let + + # + # The fetchers. fetch_ fetches specs of type . + # + + fetch_file = pkgs: name: spec: + let + name' = sanitizeName name + "-src"; + in + if spec.builtin or true then + builtins_fetchurl { inherit (spec) url sha256; name = name'; } + else + pkgs.fetchurl { inherit (spec) url sha256; name = name'; }; + + fetch_tarball = pkgs: name: spec: + let + name' = sanitizeName name + "-src"; + in + if spec.builtin or true then + builtins_fetchTarball { name = name'; inherit (spec) url sha256; } + else + pkgs.fetchzip { name = name'; inherit (spec) url sha256; }; + + fetch_git = name: spec: + let + ref = + if spec ? ref then spec.ref else + if spec ? branch then "refs/heads/${spec.branch}" else + if spec ? tag then "refs/tags/${spec.tag}" else + abort "In git source '${name}': Please specify `ref`, `tag` or `branch`!"; + in + builtins.fetchGit { url = spec.repo; inherit (spec) rev; inherit ref; }; + + fetch_local = spec: spec.path; + + fetch_builtin-tarball = name: throw + ''[${name}] The niv type "builtin-tarball" is deprecated. You should instead use `builtin = true`. + $ niv modify ${name} -a type=tarball -a builtin=true''; + + fetch_builtin-url = name: throw + ''[${name}] The niv type "builtin-url" will soon be deprecated. You should instead use `builtin = true`. + $ niv modify ${name} -a type=file -a builtin=true''; + + # + # Various helpers + # + + # https://github.com/NixOS/nixpkgs/pull/83241/files#diff-c6f540a4f3bfa4b0e8b6bafd4cd54e8bR695 + sanitizeName = name: + ( + concatMapStrings (s: if builtins.isList s then "-" else s) + ( + builtins.split "[^[:alnum:]+._?=-]+" + ((x: builtins.elemAt (builtins.match "\\.*(.*)" x) 0) name) + ) + ); + + # The set of packages used when specs are fetched using non-builtins. + mkPkgs = sources: system: + let + sourcesNixpkgs = + import (builtins_fetchTarball { inherit (sources.nixpkgs) url sha256; }) { inherit system; }; + hasNixpkgsPath = builtins.any (x: x.prefix == "nixpkgs") builtins.nixPath; + hasThisAsNixpkgsPath = == ./.; + in + if builtins.hasAttr "nixpkgs" sources + then sourcesNixpkgs + else if hasNixpkgsPath && ! hasThisAsNixpkgsPath then + import {} + else + abort + '' + Please specify either (through -I or NIX_PATH=nixpkgs=...) or + add a package called "nixpkgs" to your sources.json. + ''; + + # The actual fetching function. + fetch = pkgs: name: spec: + + if ! builtins.hasAttr "type" spec then + abort "ERROR: niv spec ${name} does not have a 'type' attribute" + else if spec.type == "file" then fetch_file pkgs name spec + else if spec.type == "tarball" then fetch_tarball pkgs name spec + else if spec.type == "git" then fetch_git name spec + else if spec.type == "local" then fetch_local spec + else if spec.type == "builtin-tarball" then fetch_builtin-tarball name + else if spec.type == "builtin-url" then fetch_builtin-url name + else + abort "ERROR: niv spec ${name} has unknown type ${builtins.toJSON spec.type}"; + + # If the environment variable NIV_OVERRIDE_${name} is set, then use + # the path directly as opposed to the fetched source. + replace = name: drv: + let + saneName = stringAsChars (c: if isNull (builtins.match "[a-zA-Z0-9]" c) then "_" else c) name; + ersatz = builtins.getEnv "NIV_OVERRIDE_${saneName}"; + in + if ersatz == "" then drv else + # this turns the string into an actual Nix path (for both absolute and + # relative paths) + if builtins.substring 0 1 ersatz == "/" then /. + ersatz else /. + builtins.getEnv "PWD" + "/${ersatz}"; + + # Ports of functions for older nix versions + + # a Nix version of mapAttrs if the built-in doesn't exist + mapAttrs = builtins.mapAttrs or ( + f: set: with builtins; + listToAttrs (map (attr: { name = attr; value = f attr set.${attr}; }) (attrNames set)) + ); + + # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295 + range = first: last: if first > last then [] else builtins.genList (n: first + n) (last - first + 1); + + # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L257 + stringToCharacters = s: map (p: builtins.substring p 1 s) (range 0 (builtins.stringLength s - 1)); + + # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269 + stringAsChars = f: s: concatStrings (map f (stringToCharacters s)); + concatMapStrings = f: list: concatStrings (map f list); + concatStrings = builtins.concatStringsSep ""; + + # https://github.com/NixOS/nixpkgs/blob/8a9f58a375c401b96da862d969f66429def1d118/lib/attrsets.nix#L331 + optionalAttrs = cond: as: if cond then as else {}; + + # fetchTarball version that is compatible between all the versions of Nix + builtins_fetchTarball = { url, name ? null, sha256 }@attrs: + let + inherit (builtins) lessThan nixVersion fetchTarball; + in + if lessThan nixVersion "1.12" then + fetchTarball ({ inherit url; } // (optionalAttrs (!isNull name) { inherit name; })) + else + fetchTarball attrs; + + # fetchurl version that is compatible between all the versions of Nix + builtins_fetchurl = { url, name ? null, sha256 }@attrs: + let + inherit (builtins) lessThan nixVersion fetchurl; + in + if lessThan nixVersion "1.12" then + fetchurl ({ inherit url; } // (optionalAttrs (!isNull name) { inherit name; })) + else + fetchurl attrs; + + # Create the final "sources" from the config + mkSources = config: + mapAttrs ( + name: spec: + if builtins.hasAttr "outPath" spec + then abort + "The values in sources.json should not have an 'outPath' attribute" + else + spec // { outPath = replace name (fetch config.pkgs name spec); } + ) config.sources; + + # The "config" used by the fetchers + mkConfig = + { sourcesFile ? if builtins.pathExists ./sources.json then ./sources.json else null + , sources ? if isNull sourcesFile then {} else builtins.fromJSON (builtins.readFile sourcesFile) + , system ? builtins.currentSystem + , pkgs ? mkPkgs sources system + }: rec { + # The sources, i.e. the attribute set of spec name to spec + inherit sources; + + # The "pkgs" (evaluated nixpkgs) to use for e.g. non-builtin fetchers + inherit pkgs; + }; + +in +mkSources (mkConfig {}) // { __functor = _: settings: mkSources (mkConfig settings); } \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/workdir/dna.yaml b/bootstrap-languages/agent-language/hc-dna/workdir/dna.yaml new file mode 100644 index 000000000..45f646e5f --- /dev/null +++ b/bootstrap-languages/agent-language/hc-dna/workdir/dna.yaml @@ -0,0 +1,18 @@ +--- +manifest_version: "1" +name: "agent-store" +description: "DNA for storing AD4M agent expressions" + +integrity: + network_seed: 00000000-0000-0000-0000-000000000000 + properties: ~ + origin_time: 2022-02-11T23:05:19.470323Z + zomes: + - name: agent_store_integrity + bundled: ../target/wasm32-unknown-unknown/release/agent_store_integrity.wasm +coordinator: + zomes: + - name: agent_store + bundled: ../target/wasm32-unknown-unknown/release/agent_store.wasm + dependencies: + - name: agent_store_integrity \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/Cargo.toml b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/Cargo.toml new file mode 100644 index 000000000..893f444e9 --- /dev/null +++ b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/Cargo.toml @@ -0,0 +1,19 @@ +[package] +authors = ["josh@junto.foundation"] +edition = "2018" +name = "agent_store" +version = "0.0.1" + +[lib] +crate-type = ["cdylib", "rlib"] +name = "agent_store" + +[dependencies] +derive_more = "0" +serde = "1" +chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } +thiserror = "1.0.20" + +hdk = "0.1.0" +holo_hash = "0.1.0" +agent_store_integrity = { path = "../agent_store_integrity" } \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/src/lib.rs b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/src/lib.rs new file mode 100644 index 000000000..13f3bb546 --- /dev/null +++ b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/src/lib.rs @@ -0,0 +1,100 @@ +use agent_store_integrity::{AgentExpression, Did, EntryTypes, LinkTypes}; +use hdk::prelude::*; + +mod utils; + +use utils::{err, get_latest_link}; + +#[hdk_extern] +fn init(_: ()) -> ExternResult { + Ok(InitCallbackResult::Pass) +} + +#[hdk_extern] +pub fn create_agent_expression(agent_expression: AgentExpression) -> ExternResult<()> { + let did = EntryTypes::Did(Did(agent_expression.author.clone())); + let did_hash = hash_entry(&did)?; + + create_entry(&did)?; + + let agent_expression = EntryTypes::AgentExpression(agent_expression); + let agent_expression_hash = hash_entry(&agent_expression)?; + create_entry(&agent_expression)?; + + //Link profile entry to did + create_link( + did_hash, + agent_expression_hash, + LinkTypes::ProfileLink, + LinkTag::from("".as_bytes().to_owned()), + )?; + + Ok(()) +} + +#[hdk_extern] +pub fn get_agent_expression(did: Did) -> ExternResult> { + let expression_links = get_latest_link( + hash_entry(did)?, + Some(LinkTag::from("".as_bytes().to_owned())), + ) + .map_err(|error| err(format!("{}", error).as_ref()))?; + + match expression_links { + Some(link) => { + match get( + link.target + .into_entry_hash() + .expect("could not get action hash"), + GetOptions::default(), + ) + .map_err(|error| err(format!("{}", error).as_ref()))? + { + Some(elem) => { + let exp_data: AgentExpression = elem + .entry() + .to_app_option() + .map_err(|sb_err| err(&format!("{}", sb_err)))? + .ok_or(err( + "Could not deserialize link expression data into Profile type", + ))?; + Ok(Some(exp_data)) + } + None => Ok(None), + } + } + None => Ok(None), + } +} + +//Validation logic + +//Validate did entry +//Validate did syntax +//Validate integrity of DID + +//Validate did document entry +//TODO: resolve did subject and validate that did documents are the same. +//Validate that signed_agent inside did document is the same agent who is trying to post this did document. This is the validation stage that allows for the "claiming/pairing" of a did on this DHT. +//Note that this signed_agent validation doesnt give us anything that isnt already handled by holochain validation logic. It is however useful if we can do did resolving. So we can keep it here ready for the future. +//In the case that we can resolve did's since we can trust a given did subject document pair we can deduce the the agent making the post is the same agent who authored the first claim of this DID on some other system. + +//Validate create profile entry +//Validate length/size of entry? +//Perhaps validate that agent does not have more than N profiles already post'd as to reduce possibility of someone spamming network? + +//Validate update profile entry +//Validate length/size of entry +//Validate that agent creating update is the same agent who made the first profile entry +//Actually possible here that we could allow multiple agents to update profile entry if the did document had multiple signed_agent fields where each signed_agent was allowed editable agent +//Editing from multiple agents would require that profile has links to did document so that we can check this signed agents field + +//Validate links + +//did subject -> did document: +//Validate that author of subject and document are the same. Since creating a did document entry requires the validation of signed_agent field we can be sure that author of did document is the rightful owner of this did. +//Validate that subject inside did document is the same as the did subject as source for this link. + +//did subject -> profile +//Validate that there is a link between did subject -> did document. This gives us the verification that creator of did subject is same agent as creator of did document. +//Validate that agent posting profile is the same agent who created the did subject. diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/src/utils.rs b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/src/utils.rs new file mode 100644 index 000000000..dc3046356 --- /dev/null +++ b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store/src/utils.rs @@ -0,0 +1,26 @@ +use agent_store_integrity::LinkTypes; +use hdk::prelude::*; + +pub(crate) fn err(reason: &str) -> WasmError { + wasm_error!(WasmErrorInner::Host(String::from(reason))) +} + +pub(crate) fn get_latest_link(base: EntryHash, tag: Option) -> ExternResult> { + let profile_info = get_links(base, LinkTypes::ProfileLink, tag)?; + + // Find the latest + let latest_info = + profile_info + .into_iter() + .fold(None, |latest: Option, link| match latest { + Some(latest) => { + if link.timestamp > latest.timestamp { + Some(link) + } else { + Some(latest) + } + } + None => Some(link), + }); + return Ok(latest_info); +} diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/Cargo.toml b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/Cargo.toml new file mode 100644 index 000000000..93ccbca47 --- /dev/null +++ b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/Cargo.toml @@ -0,0 +1,17 @@ +[package] +authors = ["josh@junto.foundation"] +edition = "2018" +name = "agent_store_integrity" +version = "0.0.1" + +[lib] +crate-type = ["cdylib", "rlib"] +name = "agent_store_integrity" + +[dependencies] +derive_more = "0" +serde = "1" +chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } + +hdi = "0.2.0" +hdk = "0.1.0" \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/src/lib.rs b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/src/lib.rs new file mode 100644 index 000000000..7ca4a36d3 --- /dev/null +++ b/bootstrap-languages/agent-language/hc-dna/zomes/agent_store_integrity/src/lib.rs @@ -0,0 +1,66 @@ +use chrono::{DateTime, Utc}; +use hdi::prelude::*; + +#[derive(Serialize, Deserialize, Clone, SerializedBytes, Debug)] +pub struct Link { + pub source: String, + pub target: String, + pub predicate: Option, +} + +#[derive(Serialize, Deserialize, Clone, SerializedBytes, Debug, PartialEq)] +pub struct ExpressionProof { + pub signature: String, + pub key: String, +} + +#[derive(Serialize, Deserialize, Clone, SerializedBytes, Debug)] +pub struct LinkExpression { + author: String, + timestamp: DateTime, + data: Link, + proof: ExpressionProof, +} + +#[derive(Serialize, Deserialize, Clone, SerializedBytes, Debug)] +pub struct Perspective { + pub links: Vec, +} + +#[hdk_entry_defs] +#[unit_enum(UnitEntryTypes)] +pub enum EntryTypes { + #[entry_def(visibility = "public")] + Did(Did), + #[entry_def(visibility = "public")] + AgentExpression(AgentExpression), +} + +#[hdk_link_types] +pub enum LinkTypes { + ProfileLink, +} + +#[derive(Clone, Debug, Deserialize, Serialize, SerializedBytes)] +pub struct Did(pub String); + +app_entry!(Did); + +#[derive(Clone, Debug, Deserialize, Serialize, SerializedBytes)] +pub struct AgentExpression { + pub author: String, + pub timestamp: DateTime, + pub data: AgentExpressionData, + pub proof: ExpressionProof, +} + +app_entry!(AgentExpression); + +#[derive(Serialize, Deserialize, Clone, SerializedBytes, Debug)] +pub struct AgentExpressionData { + did: String, + perspective: Option, + #[serde(rename(serialize = "directMessageLanguage"))] + #[serde(rename(deserialize = "directMessageLanguage"))] + direct_message_language: Option, +} diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/tests/common.ts b/bootstrap-languages/agent-language/hc-dna/zomes/tests/common.ts new file mode 100644 index 000000000..af30348fc --- /dev/null +++ b/bootstrap-languages/agent-language/hc-dna/zomes/tests/common.ts @@ -0,0 +1,6 @@ +import path from "path"; +import {Dna} from "@holochain/tryorama"; + +const dnas: Dna[] = [{ source: {path: path.join("../../workdir/agent-store.dna")} }]; + +export { dnas }; \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/tests/index.ts b/bootstrap-languages/agent-language/hc-dna/zomes/tests/index.ts new file mode 100644 index 000000000..b73f2b4c1 --- /dev/null +++ b/bootstrap-languages/agent-language/hc-dna/zomes/tests/index.ts @@ -0,0 +1,129 @@ +import { Scenario, runScenario, addAllAgentsToAllConductors, cleanAllConductors } from '@holochain/tryorama' +import path from 'path' +import test from "tape-promise/tape"; +import { createConductors } from "./utils"; + +//@ts-ignore +test("Create update agent expression", async (t) => { + await runScenario(async (scenario: Scenario) => { + const [aliceConductor, bobConductor] = await createConductors(2); + await addAllAgentsToAllConductors([aliceConductor.conductor, bobConductor.conductor]); + const alice = aliceConductor.agent_happ; + const bob = bobConductor.agent_happ; + + await scenario.shareAllAgents(); + + const call1 = await alice.cells[0].callZome({ + zome_name: "agent_store", + fn_name: "create_agent_expression", + payload: { + author: "did:key:zQ3shc5AcaZyRo6qP3wuXvYT8xtiyFFL25RjMEuT81WMHEibC", + timestamp: new Date().toISOString(), + data: { + did: "did:key:zQ3shc5AcaZyRo6qP3wuXvYT8xtiyFFL25RjMEuT81WMHEibC", + perspective: { + links: [ + { + author: "did:key:zQ3shc5AcaZyRo6qP3wuXvYT8xtiyFFL25RjMEuT81WMHEibC", + timestamp: new Date().toISOString(), + data: { + source: "language://src", + target: "language://target", + predicate: "language://pred" + }, + proof: { + signature: "sig", + key: "key", + valid: true, + invalid: false, + }, + } + ] + }, + directMessageLanguage: "language://hashyHash" + }, + proof: { + signature: "sig", + key: "key", + valid: true, + invalid: false, + }, + } + }); + + let getResp = await alice.cells[0].callZome({ + zome_name: "agent_store", + fn_name: "get_agent_expression", + payload: "did:key:zQ3shc5AcaZyRo6qP3wuXvYT8xtiyFFL25RjMEuT81WMHEibC" + }); + t.ok(getResp); + //@ts-ignore + t.equal(getResp.data.directMessageLanguage, "language://hashyHash"); + + await alice.cells[0].callZome({ + zome_name: "agent_store", + fn_name: "create_agent_expression", + payload:{ + author: "did:key:zQ3shc5AcaZyRo6qP3wuXvYT8xtiyFFL25RjMEuT81WMHEibC", + timestamp: new Date().toISOString(), + data: { + did: "did:key:zQ3shc5AcaZyRo6qP3wuXvYT8xtiyFFL25RjMEuT81WMHEibC", + perspective: { + links: [ + { + author: "did:key:zQ3shc5AcaZyRo6qP3wuXvYT8xtiyFFL25RjMEuT81WMHEibC", + timestamp: new Date().toISOString(), + data: { + source: "language://src", + target: "language://target", + predicate: "language://pred" + }, + proof: { + signature: "sig", + key: "key", + valid: true, + invalid: false, + }, + } + ] + }, + directMessageLanguage: "language://hashyHash2" + }, + proof: { + signature: "sig", + key: "key", + valid: true, + invalid: false, + }, + } + }) + + let getResp2 = await alice.cells[0].callZome({ + zome_name: "agent_store", + fn_name: "get_agent_expression", + payload: "did:key:zQ3shc5AcaZyRo6qP3wuXvYT8xtiyFFL25RjMEuT81WMHEibC" + }); + t.ok(getResp2); + //@ts-ignore + t.deepEqual(getResp2.data.directMessageLanguage, "language://hashyHash2"); + + + //==================== + await new Promise(r => setTimeout(r, 1000)) + //==================== + + let bobResult = await bob.cells[0].callZome({ + zome_name: "agent_store", + fn_name: "get_agent_expression", + payload: "did:key:zQ3shc5AcaZyRo6qP3wuXvYT8xtiyFFL25RjMEuT81WMHEibC" + }); + t.ok(bobResult); + //@ts-ignore + t.deepEqual(bobResult.data.directMessageLanguage, "language://hashyHash2"); + + await aliceConductor.conductor.shutDown(); + await bobConductor.conductor.shutDown(); + await cleanAllConductors(); + await scenario.cleanUp() + }) +}) \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/tests/package.json b/bootstrap-languages/agent-language/hc-dna/zomes/tests/package.json new file mode 100644 index 000000000..15ffc1f1f --- /dev/null +++ b/bootstrap-languages/agent-language/hc-dna/zomes/tests/package.json @@ -0,0 +1,28 @@ +{ + "name": "social-context-tests", + "version": "0.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "TRYORAMA_LOG_LEVEL=debug WASM_LOG=debug,wasmer_compiler_cranelift=error,holochain::conductor::manager=warn,holochain::core::workflow::publish_dht_ops_workflow::publish_query=warn,publish_dht_ops_workflow=error,kitsune_p2p_types::metrics=error,kitsune_p2p::gossip::sharded_gossip=error,wasm_trace=debug,app_validation_workflow=error RUST_BACKTRACE=1 node --loader ts-node/esm --experimental-specifier-resolution=node index.ts", + "build-test": "cd ../../ && CARGO_TARGET_DIR=target cargo build --release --target wasm32-unknown-unknown && hc dna pack workdir && cd zomes/tests && npm test" + }, + "author": "", + "license": "ISC", + "dependencies": { + "@holochain/client": "0.12.0", + "@holochain/tryorama": "0.11.0", + "@types/lodash": "^4.14.158", + "@types/node": "^18.0.0", + "blake2b": "^2.1.3", + "lodash": "^4.17.19", + "tape-promise": "^4.0.0", + "ts-node": "^10.8.0", + "typescript": "^4.2.4" + }, + "devDependencies": { + "@types/tape-promise": "^4.0.1", + "tape": "^5.5.3" + }, + "type": "module" +} diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/tests/tsconfig.json b/bootstrap-languages/agent-language/hc-dna/zomes/tests/tsconfig.json new file mode 100644 index 000000000..a841747ad --- /dev/null +++ b/bootstrap-languages/agent-language/hc-dna/zomes/tests/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "ESNext", + "target": "ESNext", + "moduleResolution": "Node", + "sourceMap": true, + "declaration": true, + "forceConsistentCasingInFileNames": true, + "allowSyntheticDefaultImports": true, + "skipLibCheck": true, + "strict": true, + "skipDefaultLibCheck": true, + "outDir": "dist", + "declarationDir": "dist", + }, + "include": [ + "ts/**/*" + ], + "ts-node": { + "esm": true, + "experimentalSpecifierResolution": "node" + } +} \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/tests/utils.ts b/bootstrap-languages/agent-language/hc-dna/zomes/tests/utils.ts new file mode 100644 index 000000000..3b2eb10a3 --- /dev/null +++ b/bootstrap-languages/agent-language/hc-dna/zomes/tests/utils.ts @@ -0,0 +1,41 @@ +import { AgentApp, CallableCell, Conductor } from "@holochain/tryorama"; +import { dnas } from './common'; +import { createConductor } from "@holochain/tryorama"; +import { resolve } from "path"; + +export function sleep(ms: number) { + return new Promise(resolve => setTimeout(resolve, ms)); +} + +export async function createConductors(num: number): Promise<{agent_happ: AgentApp, conductor: Conductor}[]> { + let out = [] as {agent_happ: AgentApp, conductor: Conductor}[]; + for (let n of Array(num).keys()) { + let conductor = await createConductor(); + try { + let app = await conductor.installApp({ + bundle: { + manifest: { + manifest_version: "1", + name: "agent_store", + roles: [{ + name: "main", + dna: { + //@ts-ignore + path: resolve(dnas[0].source.path) + } + }] + }, + resources: {} + } + }); + await conductor.adminWs().enableApp({installed_app_id: app.appId}) + out.push({ + agent_happ: app, + conductor + }) + } catch (e) { + console.error(e); + } + } + return out +} \ No newline at end of file diff --git a/bootstrap-languages/agent-language/hc-dna/zomes/tests/yarn.lock b/bootstrap-languages/agent-language/hc-dna/zomes/tests/yarn.lock new file mode 100644 index 000000000..98016b481 --- /dev/null +++ b/bootstrap-languages/agent-language/hc-dna/zomes/tests/yarn.lock @@ -0,0 +1,1094 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@dabh/diagnostics@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" + integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== + dependencies: + colorspace "1.1.x" + enabled "2.0.x" + kuler "^2.0.0" + +"@holochain/client@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.12.0.tgz#1c9bdc082160badd1439962e8d5f30da6c4089a3" + integrity sha512-pvrB6Gdc6488iR3VZXoq5QKzoAPTGi0y69Ktrtgr/IZEvtSSHBqHeMhyEjXCa7iS8b1gXsL/HAvq47rs8mu50A== + dependencies: + "@holochain/serialization" "^0.1.0-beta-rc.3" + "@msgpack/msgpack" "^2.7.2" + "@tauri-apps/api" "^1.2.0" + emittery "^1.0.1" + isomorphic-ws "^5.0.0" + js-base64 "^3.7.3" + lodash-es "^4.17.21" + tweetnacl "^1.0.3" + +"@holochain/client@^0.11.16": + version "0.11.16" + resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.11.16.tgz#3b2172cc5b0976d4bed01d067c2cebb28d644e0e" + integrity sha512-uX1/mRnNZHc0y88bkGJrfp6/mfh1UGFS+g+wvn+E69spzPQMxAkjo7FmZ6nmZfxPoYCoxKjVJyKmvswPUP1Xfw== + dependencies: + "@holochain/serialization" "^0.1.0-beta-rc.3" + "@msgpack/msgpack" "^2.7.2" + "@tauri-apps/api" "^1.2.0" + emittery "^1.0.1" + isomorphic-ws "^5.0.0" + js-base64 "^3.7.3" + lodash-es "^4.17.21" + tweetnacl "^1.0.3" + +"@holochain/serialization@^0.1.0-beta-rc.3": + version "0.1.0-beta-rc.3" + resolved "https://registry.yarnpkg.com/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz#787a785fa48e00f2d168c6d4b45a233c4800cccb" + integrity sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw== + +"@holochain/tryorama@0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@holochain/tryorama/-/tryorama-0.11.0.tgz#55505b19e1d3bc9ca47cf42deabd35df94cab6bb" + integrity sha512-P2MNn//UulkYCo64j69HfhMfrWGtDrI/A1QEuEZYPUyW8fNg3iE5wh2ssHnu0siw0WRjB6H/PBdadNZz8hemcw== + dependencies: + "@holochain/client" "^0.11.16" + get-port "^6.1.2" + lodash "^4.17.21" + uuid "^8.3.2" + winston "^3.8.2" + ws "^8.11.0" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@msgpack/msgpack@^2.7.2": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" + integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ== + +"@tauri-apps/api@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.2.0.tgz#1f196b3e012971227f41b98214c846430a4eb477" + integrity sha512-lsI54KI6HGf7VImuf/T9pnoejfgkNoXveP14pVV7XarrQ46rOejIVJLFqHI9sRReJMGdh2YuCoI3cc/yCWCsrw== + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + +"@types/lodash@^4.14.158": + version "4.14.191" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa" + integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== + +"@types/node@*": + version "18.11.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.10.tgz#4c64759f3c2343b7e6c4b9caf761c7a3a05cee34" + integrity sha512-juG3RWMBOqcOuXC643OAdSA525V44cVgGV6dUDuiFtss+8Fk5x1hI93Rsld43VeJVIeqlP9I7Fn9/qaVqoEAuQ== + +"@types/node@^14.0.14": + version "14.18.34" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.34.tgz#cd2e6fa0dbfb08a62582a7b967558e73c32061ec" + integrity sha512-hcU9AIQVHmPnmjRK+XUUYlILlr9pQrsqSrwov/JK1pnf3GTQowVBhx54FbvM0AU/VXGH4i3+vgXS5EguR7fysA== + +"@types/tape-promise@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/tape-promise/-/tape-promise-4.0.1.tgz#a72fa8d2d5351704d651b174931ecc8f996e68ca" + integrity sha512-1yBeq9y0EmJ2RpxfXMPrFeD3yMetBapY9zArTexp/wCRdBToJac/y//rtcZZjmiArgodTqz0RrK0VxxySoKyVg== + dependencies: + "@types/tape" "*" + +"@types/tape@*": + version "4.13.2" + resolved "https://registry.yarnpkg.com/@types/tape/-/tape-4.13.2.tgz#77215c065b1c7840da3ca5e061337bb4c7258122" + integrity sha512-V1ez/RtYRGN9cNYApw5xf27DpMkTB0033X6a2i3KUmKhSojBfbWN0i3EgZxboUG96WJLHLdOyZ01aiZwVW5aSA== + dependencies: + "@types/node" "*" + +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^8.4.1: + version "8.8.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" + integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +array.prototype.every@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/array.prototype.every/-/array.prototype.every-1.1.4.tgz#2762daecd9cec87cb63f3ca6be576817074a684e" + integrity sha512-Aui35iRZk1HHLRAyF7QP0KAnOnduaQ6fo6k1NVWfRc0xTs2AZ70ytlXvOmkC6Di4JmUs2Wv3DYzGtCQFSk5uGg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + is-string "^1.0.7" + +async@^3.2.3: + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +b4a@^1.0.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.1.tgz#9effac93a469a868d024e16fd77162c653544cbd" + integrity sha512-AsKjNhz72yxteo/0EtQEiwkMUgk/tGmycXlbG4g3Ard2/ULtNLUykGOkeK0egmN27h0xMAhb76jYccW+XTBExA== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +blake2b-wasm@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz#9115649111edbbd87eb24ce7c04b427e4e2be5be" + integrity sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w== + dependencies: + b4a "^1.0.1" + nanoassert "^2.0.0" + +blake2b@^2.1.3: + version "2.1.4" + resolved "https://registry.yarnpkg.com/blake2b/-/blake2b-2.1.4.tgz#817d278526ddb4cd673bfb1af16d1ad61e393ba3" + integrity sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A== + dependencies: + blake2b-wasm "^2.4.0" + nanoassert "^2.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +color-convert@^1.9.3: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.6.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.1.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +colorspace@1.1.x: + version "1.1.4" + resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" + integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== + dependencies: + color "^3.1.3" + text-hex "1.0.x" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +deep-equal@^2.0.5: + version "2.1.0" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.1.0.tgz#5ba60402cf44ab92c2c07f3f3312c3d857a0e1dd" + integrity sha512-2pxgvWu3Alv1PoWEyVg7HS8YhGlUFUV7N5oOvfL6d+7xAmLSemMwv/c8Zv/i9KFzxV5Kt5CAvQc70fLwVuf4UA== + dependencies: + call-bind "^1.0.2" + es-get-iterator "^1.1.2" + get-intrinsic "^1.1.3" + is-arguments "^1.1.1" + is-date-object "^1.0.5" + is-regex "^1.1.4" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.8" + +define-properties@^1.1.3, define-properties@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +defined@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" + integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dotignore@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" + integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== + dependencies: + minimatch "^3.0.4" + +emittery@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-1.0.1.tgz#e0cf36e2d7eef94dbd025969f642d57ae50a56cd" + integrity sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ== + +enabled@2.0.x: + version "2.0.0" + resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" + integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== + +es-abstract@^1.19.0, es-abstract@^1.20.4: + version "1.20.4" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861" + integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.1.3" + get-symbol-description "^1.0.0" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-weakref "^1.0.2" + object-inspect "^1.12.2" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trimend "^1.0.5" + string.prototype.trimstart "^1.0.5" + unbox-primitive "^1.0.2" + +es-get-iterator@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.2.tgz#9234c54aba713486d7ebde0220864af5e2b283f7" + integrity sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.0" + has-symbols "^1.0.1" + is-arguments "^1.1.0" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.5" + isarray "^2.0.5" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +fecha@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" + integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== + +fn.name@1.x.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" + integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-port@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-6.1.2.tgz#c1228abb67ba0e17fb346da33b15187833b9c08a" + integrity sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +glob@^7.2.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-dynamic-import@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-dynamic-import/-/has-dynamic-import-2.0.1.tgz#9bca87846aa264f2ad224fcd014946f5e5182f52" + integrity sha512-X3fbtsZmwb6W7fJGR9o7x65fZoodygCrZ3TVycvghP62yYQfS0t4RS0Qcz+j5tQYUKeSWS09tHkWW6WhFV3XhQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + +is-arguments@^1.1.0, is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1, is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-promise@^2.1.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.10: + version "1.1.10" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isomorphic-ws@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" + integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== + +js-base64@^3.7.3: + version "3.7.4" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.4.tgz#af95b20f23efc8034afd2d1cc5b9d0adf7419037" + integrity sha512-wpM/wi20Tl+3ifTyi0RdDckS4YTD4Lf953mBRrpG8547T7hInHNPEj8+ck4gB8VDcGyeAWFK++Wb/fU1BeavKQ== + +kuler@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" + integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash@^4.17.19, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +logform@^2.3.2, logform@^2.4.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/logform/-/logform-2.4.2.tgz#a617983ac0334d0c3b942c34945380062795b47c" + integrity sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw== + dependencies: + "@colors/colors" "1.5.0" + fecha "^4.2.0" + ms "^2.1.1" + safe-stable-stringify "^2.3.1" + triple-beam "^1.3.0" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.6: + version "1.2.7" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" + integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +nanoassert@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/nanoassert/-/nanoassert-2.0.0.tgz#a05f86de6c7a51618038a620f88878ed1e490c09" + integrity sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA== + +object-inspect@^1.12.2, object-inspect@^1.9.0: + version "1.12.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + +object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +one-time@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" + integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== + dependencies: + fn.name "1.x.x" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== + dependencies: + mimic-fn "^1.0.0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +regexp.prototype.flags@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + functions-have-names "^1.2.2" + +resolve@^2.0.0-next.3: + version "2.0.0-next.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" + integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resumer@^0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" + integrity sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w== + dependencies: + through "~2.3.4" + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +safe-stable-stringify@^2.3.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.1.tgz#34694bd8a30575b7f94792aa51527551bd733d61" + integrity sha512-dVHE6bMtS/bnL2mwualjc6IxEv1F+OCUpA46pKUj6F8uDbUM0jCCulPqRNPSnWwGNKx5etqMjZYdXtrm5KJZGA== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== + +string.prototype.trim@^1.2.6: + version "1.2.7" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" + integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimend@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimstart@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +tape-promise@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tape-promise/-/tape-promise-4.0.0.tgz#c1f3553959b2e9d64b1546e7276b8a017c616897" + integrity sha512-mNi5yhWAKDuNgZCfFKeZbsXvraVOf+I8UZG+lf+aoRrzX4+jd4mpNBjYh16/VcpEMUtS0iFndBgnfxxZbtyLFw== + dependencies: + is-promise "^2.1.0" + onetime "^2.0.0" + +tape@^5.5.3: + version "5.6.1" + resolved "https://registry.yarnpkg.com/tape/-/tape-5.6.1.tgz#bbc1420e5e13003cbd7e2cf0efaa091bfb5c970a" + integrity sha512-reNzS3rzsJtKk0f+zJx2XlzIsjJXlIcOIrIxk5shHAG/DzW3BKyMg8UfN79oluYlcWo4lIt56ahLqwgpRT4idg== + dependencies: + array.prototype.every "^1.1.3" + call-bind "^1.0.2" + deep-equal "^2.0.5" + defined "^1.0.0" + dotignore "^0.1.2" + for-each "^0.3.3" + get-package-type "^0.1.0" + glob "^7.2.3" + has "^1.0.3" + has-dynamic-import "^2.0.1" + inherits "^2.0.4" + is-regex "^1.1.4" + minimist "^1.2.6" + object-inspect "^1.12.2" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + resolve "^2.0.0-next.3" + resumer "^0.0.0" + string.prototype.trim "^1.2.6" + through "^2.3.8" + +text-hex@1.0.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" + integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== + +through@^2.3.8, through@~2.3.4: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +triple-beam@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" + integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== + +ts-node@^10.8.0: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +tweetnacl@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" + integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== + +typescript@^4.2.4: + version "4.9.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.3.tgz#3aea307c1746b8c384435d8ac36b8a2e580d85db" + integrity sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-typed-array@^1.1.8: + version "1.1.9" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" + +winston-transport@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa" + integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q== + dependencies: + logform "^2.3.2" + readable-stream "^3.6.0" + triple-beam "^1.3.0" + +winston@^3.8.2: + version "3.8.2" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.8.2.tgz#56e16b34022eb4cff2638196d9646d7430fdad50" + integrity sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew== + dependencies: + "@colors/colors" "1.5.0" + "@dabh/diagnostics" "^2.0.2" + async "^3.2.3" + is-stream "^2.0.0" + logform "^2.4.0" + one-time "^1.0.0" + readable-stream "^3.4.0" + safe-stable-stringify "^2.3.1" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.5.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@^8.11.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8" + integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig== + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== diff --git a/bootstrap-languages/agent-language/index.ts b/bootstrap-languages/agent-language/index.ts new file mode 100644 index 000000000..5f288fcfe --- /dev/null +++ b/bootstrap-languages/agent-language/index.ts @@ -0,0 +1,46 @@ +import type { Address, Language, LanguageContext, HolochainLanguageDelegate, Interaction } from "@perspect3vism/ad4m"; +import ExpressionAdapter from "./adapter"; +import Icon from "./build/Icon.js"; +import ConstructorIcon from "./build/ConstructorIcon.js"; +import { UI } from "./expressionUI"; +import { DNA, DNA_NICK } from "./dna"; + +function iconFor(expression: Address): string { + return Icon; +} + +function constructorIcon(): string { + return ConstructorIcon; +} + +function interactions(expression: Address): Interaction[] { + return []; +} + +//@ad4m-template-variable +export const name = "agent-expression-store"; + +export default async function create(context: LanguageContext): Promise { + const Holochain = context.Holochain as HolochainLanguageDelegate; + await Holochain.registerDNAs( + //@ts-ignore + [{ file: DNA, nick: DNA_NICK, zomeCalls: + [ + ["agent_store", "create_agent_expression"], + ["agent_store", "get_agent_expression"] + ] + }], + ); + + const expressionAdapter = new ExpressionAdapter(context); + const expressionUI = new UI(); + + return { + name, + expressionAdapter, + iconFor, + constructorIcon, + interactions, + expressionUI, + } as Language; +} diff --git a/bootstrap-languages/agent-language/package.json b/bootstrap-languages/agent-language/package.json new file mode 100644 index 000000000..f4f7e8c41 --- /dev/null +++ b/bootstrap-languages/agent-language/package.json @@ -0,0 +1,46 @@ +{ + "name": "@perspect3vism/agent-language", + "version": "0.5.0", + "description": "AD4M Language implementation for Holochain profile DNA", + "main": "index.js", + "scripts": { + "test": "echo \"No agent language integration tests\"", + "build-icons": "rollup -c rollup.config.icons.js", + "build": "run-script-os", + "build:linux": "yarn run build-icons && yarn run build-dna && tsc && rollup -c", + "build:macos": "yarn run build-icons && yarn run build-dna && tsc && rollup -c", + "build:windows": "yarn run build-icons && cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd .. && tsc && rollup -c", + "build-dna": "cd hc-dna && ./build.sh && cd ..", + "build-nix": "yarn run build-dna && yarn run build-icons && tsc && rollup -c", + "dev": "tsc && rollup -c rollup.config.icons.js && rollup -c -w" + }, + "author": "", + "license": "ISC", + "devDependencies": { + "@perspect3vism/ad4m": "*", + "@perspect3vism/rollup-plugin-dna": "^0.0.2", + "@rollup/plugin-commonjs": "^17.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^8.0.0", + "@rollup/plugin-typescript": "^4.0.0", + "@tsconfig/svelte": "^1.0.0", + "@types/node": "^18.0.0", + "rollup": "^2.3.4", + "rollup-plugin-postcss": "^4.0.0", + "rollup-plugin-string": "^3.0.0", + "rollup-plugin-svelte": "^6.0.0", + "rollup-plugin-terser": "^7.0.0", + "run-script-os": "^1.1.6", + "svelte": "^3.0.0", + "svelte-check": "^1.0.0", + "svelte-preprocess": "^4.0.0", + "tslib": "^2.0.0", + "typescript": "^4.2.4", + "xmlhttprequest": "^1.8.0" + }, + "dependencies": { + "email-validator": "^2.0.4", + "md5": "^2.3.0", + "postcss": "^8.2.1" + } +} diff --git a/bootstrap-languages/agent-language/rollup.config.icons.js b/bootstrap-languages/agent-language/rollup.config.icons.js new file mode 100644 index 000000000..0bdc2186c --- /dev/null +++ b/bootstrap-languages/agent-language/rollup.config.icons.js @@ -0,0 +1,107 @@ +import svelte from "rollup-plugin-svelte"; +import resolve from "@rollup/plugin-node-resolve"; +import commonjs from "@rollup/plugin-commonjs"; +//import { terser } from 'rollup-plugin-terser'; +import sveltePreprocess from "svelte-preprocess"; +import postcss from "rollup-plugin-postcss"; + +const production = !process.env.ROLLUP_WATCH; + +export default [ + { + input: "ConstructorIcon.svelte", + output: { + sourcemap: true, + format: "es", + name: "ConstructorIcon", + file: "build/ConstructorIcon.js", + }, + plugins: [ + svelte({ + // enable run-time checks when not in production + dev: !production, + preprocess: sveltePreprocess(), + customElement: true, + }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ["svelte"], + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + [ + "sass", + { + includePaths: ["./src/ui/theme", "./node_modules"], + }, + ], + ], + }), + //typescript({ sourceMap: !production }), + + // If we're building for production (npm run build + // instead of npm run dev), minify + //production && terser() + ], + watch: { + clearScreen: false, + }, + }, + { + input: "Icon.svelte", + output: { + sourcemap: true, + format: "es", + name: "Icon", + file: "build/Icon.js", + }, + plugins: [ + svelte({ + // enable run-time checks when not in production + dev: !production, + preprocess: sveltePreprocess(), + customElement: true, + }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ["svelte"], + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + [ + "sass", + { + includePaths: ["./src/ui/theme", "./node_modules"], + }, + ], + ], + }), + //typescript({ sourceMap: !production }), + + // If we're building for production (npm run build + // instead of npm run dev), minify + //production && terser() + ], + watch: { + clearScreen: false, + }, + }, +]; diff --git a/bootstrap-languages/agent-language/rollup.config.js b/bootstrap-languages/agent-language/rollup.config.js new file mode 100644 index 000000000..9a3330377 --- /dev/null +++ b/bootstrap-languages/agent-language/rollup.config.js @@ -0,0 +1,71 @@ +import svelte from "rollup-plugin-svelte"; +import resolve from "@rollup/plugin-node-resolve"; +import commonjs from "@rollup/plugin-commonjs"; +//import { terser } from 'rollup-plugin-terser'; +import sveltePreprocess from "svelte-preprocess"; +import postcss from "rollup-plugin-postcss"; +import { string } from "rollup-plugin-string"; +import json from "@rollup/plugin-json"; +import dna from "@perspect3vism/rollup-plugin-dna"; + +const production = !process.env.ROLLUP_WATCH; + +export default { + input: "index.js", + external: [], + output: { + sourcemap: true, + format: "cjs", + name: "AgentLanguage", + file: "build/bundle.js", + interop: "esModule", + globals: {}, + }, + external: [], + plugins: [ + string({ + include: "build/*.js", + }), + svelte({ + // enable run-time checks when not in production + dev: !production, + // we'll extract any component CSS out into + // a separate file - better for performance + //css: css => { + // css.write('bundle.css'); + //}, + preprocess: sveltePreprocess(), + }), + // copy({ + // assets: ['package.unbundled.json'] + // }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ["svelte"], + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + [ + "sass", + { + includePaths: ["./src/ui/theme", "./node_modules"], + }, + ], + ], + }), + json(), + dna(), + ], + watch: { + clearScreen: false, + }, +}; diff --git a/bootstrap-languages/agent-language/tsconfig.json b/bootstrap-languages/agent-language/tsconfig.json new file mode 100644 index 000000000..68e2f4be1 --- /dev/null +++ b/bootstrap-languages/agent-language/tsconfig.json @@ -0,0 +1,9 @@ +{ + "extends": "@tsconfig/svelte/tsconfig.json", + "compilerOptions": { + "types": ["node"], + }, + "include": ["*.ts"], + "exclude": ["node_modules/*", "__sapper__/*", "public/*"], + "allowJs": true + } \ No newline at end of file diff --git a/bootstrap-languages/agent-language/yarn.lock b/bootstrap-languages/agent-language/yarn.lock new file mode 100644 index 000000000..5c3344ba3 --- /dev/null +++ b/bootstrap-languages/agent-language/yarn.lock @@ -0,0 +1,3618 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@apollo/client@3.6.9": + version "3.6.9" + resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.6.9.tgz#ad0ee2e3a3c92dbed4acd6917b6158a492739d94" + integrity sha512-Y1yu8qa2YeaCUBVuw08x8NHenFi0sw2I3KCu7Kw9mDSu86HmmtHJkCAifKVrN2iPgDTW/BbP3EpSV8/EQCcxZA== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + "@wry/context" "^0.6.0" + "@wry/equality" "^0.5.0" + "@wry/trie" "^0.3.0" + graphql-tag "^2.12.6" + hoist-non-react-statics "^3.3.2" + optimism "^0.16.1" + prop-types "^15.7.2" + symbol-observable "^4.0.0" + ts-invariant "^0.10.3" + tslib "^2.3.0" + zen-observable-ts "^1.2.5" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a" + integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q== + dependencies: + "@babel/highlight" "^7.18.6" + +"@babel/helper-validator-identifier@^7.18.6": + version "7.19.1" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2" + integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w== + +"@babel/highlight@^7.18.6": + version "7.18.6" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" + integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g== + dependencies: + "@babel/helper-validator-identifier" "^7.18.6" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@gar/promisify@^1.0.1": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== + +"@graphql-typed-document-node/core@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.1.1.tgz#076d78ce99822258cf813ecc1e7fa460fa74d052" + integrity sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg== + +"@holochain/client@0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.3.2.tgz#0cc5bb7fbb2b9b76f3e02ddb420caf9b3ced5259" + integrity sha512-tBmfgRMcHn/yujiQ4ugolAEbE4WMznIGRt+F8gpPNNAzC263xt+CLa6G3KslcfUc4tKD+XCr5c9z3wkZP/MMzw== + dependencies: + "@msgpack/msgpack" "^2.7.1" + cross-fetch "^3.1.4" + isomorphic-ws "^4.0.1" + +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" + +"@jridgewell/gen-mapping@^0.3.0": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" + integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== + dependencies: + "@jridgewell/set-array" "^1.0.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/resolve-uri@3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/set-array@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== + +"@jridgewell/source-map@^0.3.2": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.2.tgz#f45351aaed4527a298512ec72f81040c998580fb" + integrity sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw== + dependencies: + "@jridgewell/gen-mapping" "^0.3.0" + "@jridgewell/trace-mapping" "^0.3.9" + +"@jridgewell/sourcemap-codec@1.4.14", "@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/trace-mapping@^0.3.9": + version "0.3.17" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz#793041277af9073b0951a7fe0f0d8c4c98c36985" + integrity sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g== + dependencies: + "@jridgewell/resolve-uri" "3.1.0" + "@jridgewell/sourcemap-codec" "1.4.14" + +"@msgpack/msgpack@^2.7.1": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" + integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ== + +"@npmcli/fs@^1.0.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" + integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== + dependencies: + "@gar/promisify" "^1.0.1" + semver "^7.3.5" + +"@npmcli/move-file@^1.0.1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" + integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== + dependencies: + mkdirp "^1.0.4" + rimraf "^3.0.2" + +"@perspect3vism/ad4m@0.2.7": + version "0.2.7" + resolved "https://registry.yarnpkg.com/@perspect3vism/ad4m/-/ad4m-0.2.7.tgz#43976bc8fcd237cbe0107a4ff3b4cd2c813cf302" + integrity sha512-JRaJxgTKRwFEA8t1Jjo7JYpJyXgEnpbpeN8kBGA79HTYKJHdrfggDdWjWnsNqDyjQsGw+XweBLilA2KyksvUAw== + dependencies: + "@apollo/client" "3.6.9" + "@holochain/client" "0.3.2" + "@types/jest" "^26.0.14" + class-validator "^0.13.1" + express "^4.18.1" + graphql "^15.7.2" + reflect-metadata "^0.1.13" + type-graphql "^1.1.1" + +"@perspect3vism/rollup-plugin-dna@^0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@perspect3vism/rollup-plugin-dna/-/rollup-plugin-dna-0.0.2.tgz#d8a1a99677877b3f090f228c3b5937d4f0aa758b" + integrity sha512-+18Prdkzv1dcEzyWIp/DersXHcfpU6rDxDPdXGtfzB/ritepc7ehYSN60E94uNNzuOy7QaK4p2YL3DPPkgsb8g== + +"@rollup/plugin-commonjs@^17.0.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz#757ec88737dffa8aa913eb392fade2e45aef2a2d" + integrity sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew== + dependencies: + "@rollup/pluginutils" "^3.1.0" + commondir "^1.0.1" + estree-walker "^2.0.1" + glob "^7.1.6" + is-reference "^1.2.1" + magic-string "^0.25.7" + resolve "^1.17.0" + +"@rollup/plugin-json@^4.1.0": + version "4.1.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-json/-/plugin-json-4.1.0.tgz#54e09867ae6963c593844d8bd7a9c718294496f3" + integrity sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw== + dependencies: + "@rollup/pluginutils" "^3.0.8" + +"@rollup/plugin-node-resolve@^8.0.0": + version "8.4.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-8.4.0.tgz#261d79a680e9dc3d86761c14462f24126ba83575" + integrity sha512-LFqKdRLn0ShtQyf6SBYO69bGE1upV6wUhBX0vFOUnLAyzx5cwp8svA0eHUnu8+YU57XOkrMtfG63QOpQx25pHQ== + dependencies: + "@rollup/pluginutils" "^3.1.0" + "@types/resolve" "1.17.1" + builtin-modules "^3.1.0" + deep-freeze "^0.0.1" + deepmerge "^4.2.2" + is-module "^1.0.0" + resolve "^1.17.0" + +"@rollup/plugin-typescript@^4.0.0": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-4.1.2.tgz#6f910430276ae3e53a47a12ad65820627e7b6ad9" + integrity sha512-+7UlGat/99e2JbmGNnIauxwEhYLwrL7adO/tSJxUN57xrrS3Ps+ZzYpLCDGPZJ57j+ZJTZLLN89KXW9JMEB+jg== + dependencies: + "@rollup/pluginutils" "^3.0.1" + resolve "^1.14.1" + +"@rollup/pluginutils@^3.0.1", "@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + +"@trysound/sax@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" + integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== + +"@tsconfig/svelte@^1.0.0": + version "1.0.13" + resolved "https://registry.yarnpkg.com/@tsconfig/svelte/-/svelte-1.0.13.tgz#2fa34376627192c0d643ce54964915e2bd3a58e4" + integrity sha512-5lYJP45Xllo4yE/RUBccBT32eBlRDbqN8r1/MIvQbKxW3aFqaYPCNgm8D5V20X4ShHcwvYWNlKg3liDh1MlBoA== + +"@types/estree@*": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" + integrity sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ== + +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + +"@types/glob@^7.1.3": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== + dependencies: + "@types/minimatch" "*" + "@types/node" "*" + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" + integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + dependencies: + "@types/istanbul-lib-report" "*" + +"@types/jest@^26.0.14": + version "26.0.24" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-26.0.24.tgz#943d11976b16739185913a1936e0de0c4a7d595a" + integrity sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w== + dependencies: + jest-diff "^26.0.0" + pretty-format "^26.0.0" + +"@types/minimatch@*": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== + +"@types/minimist@^1.2.0": + version "1.2.2" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" + integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== + +"@types/node@*": + version "18.11.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.10.tgz#4c64759f3c2343b7e6c4b9caf761c7a3a05cee34" + integrity sha512-juG3RWMBOqcOuXC643OAdSA525V44cVgGV6dUDuiFtss+8Fk5x1hI93Rsld43VeJVIeqlP9I7Fn9/qaVqoEAuQ== + +"@types/node@^14.11.2", "@types/node@^14.14.6": + version "14.18.34" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.34.tgz#cd2e6fa0dbfb08a62582a7b967558e73c32061ec" + integrity sha512-hcU9AIQVHmPnmjRK+XUUYlILlr9pQrsqSrwov/JK1pnf3GTQowVBhx54FbvM0AU/VXGH4i3+vgXS5EguR7fysA== + +"@types/normalize-package-data@^2.4.0": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" + integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + +"@types/pug@^2.0.4": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/pug/-/pug-2.0.6.tgz#f830323c88172e66826d0bde413498b61054b5a6" + integrity sha512-SnHmG9wN1UVmagJOnyo/qkk0Z7gejYxOYYmaAwr5u2yFYfsupN3sg10kyzN8Hep/2zbHxCnsumxOoRIRMBwKCg== + +"@types/resolve@1.17.1": + version "1.17.1" + resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6" + integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw== + dependencies: + "@types/node" "*" + +"@types/sass@^1.16.0": + version "1.43.1" + resolved "https://registry.yarnpkg.com/@types/sass/-/sass-1.43.1.tgz#86bb0168e9e881d7dade6eba16c9ed6d25dc2f68" + integrity sha512-BPdoIt1lfJ6B7rw35ncdwBZrAssjcwzI5LByIrYs+tpXlj/CAkuVdRsgZDdP4lq5EjyWzwxZCqAoFyHKFwp32g== + dependencies: + "@types/node" "*" + +"@types/semver@^7.3.3": + version "7.3.13" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" + integrity sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw== + +"@types/yargs-parser@*": + version "21.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" + integrity sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA== + +"@types/yargs@^15.0.0": + version "15.0.14" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" + integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== + dependencies: + "@types/yargs-parser" "*" + +"@wry/context@^0.6.0": + version "0.6.1" + resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.6.1.tgz#c3c29c0ad622adb00f6a53303c4f965ee06ebeb2" + integrity sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw== + dependencies: + tslib "^2.3.0" + +"@wry/context@^0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.7.0.tgz#be88e22c0ddf62aeb0ae9f95c3d90932c619a5c8" + integrity sha512-LcDAiYWRtwAoSOArfk7cuYvFXytxfVrdX7yxoUmK7pPITLk5jYh2F8knCwS7LjgYL8u1eidPlKKV6Ikqq0ODqQ== + dependencies: + tslib "^2.3.0" + +"@wry/equality@^0.5.0": + version "0.5.3" + resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.3.tgz#fafebc69561aa2d40340da89fa7dc4b1f6fb7831" + integrity sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g== + dependencies: + tslib "^2.3.0" + +"@wry/trie@^0.3.0": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.3.2.tgz#a06f235dc184bd26396ba456711f69f8c35097e6" + integrity sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ== + dependencies: + tslib "^2.3.0" + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@~1.3.8: + version "1.3.8" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" + integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== + dependencies: + mime-types "~2.1.34" + negotiator "0.6.3" + +acorn@^8.5.0: + version "8.8.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" + integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== + +agent-base@6, agent-base@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" + +agentkeepalive@^4.1.3: + version "4.2.1" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" + integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== + dependencies: + debug "^4.1.0" + depd "^1.1.2" + humanize-ms "^1.2.1" + +aggregate-error@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv@^6.12.3: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +ansi-regex@^5.0.0, ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +"aproba@^1.0.3 || ^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== + +are-we-there-yet@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" + integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== + dependencies: + delegates "^1.0.0" + readable-stream "^3.6.0" + +are-we-there-yet@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd" + integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg== + dependencies: + delegates "^1.0.0" + readable-stream "^3.6.0" + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== + +asn1@~0.2.3: + version "0.2.6" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.6.tgz#0d3a7bb6e64e02a90c0303b31f292868ea09a08d" + integrity sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ== + dependencies: + safer-buffer "~2.1.0" + +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + integrity sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw== + +async-foreach@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" + integrity sha512-VUeSMD8nEGBWaZK4lizI1sf3yEC7pnAQ/mrI7pC2fBz2s/tq5jWWEngTwaf0Gruu/OoXRGLGg1XFqpYBiGTYJA== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + integrity sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA== + +aws4@^1.8.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" + integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +bcrypt-pbkdf@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + integrity sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w== + dependencies: + tweetnacl "^0.14.3" + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +body-parser@1.20.1: + version "1.20.1" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668" + integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw== + dependencies: + bytes "3.1.2" + content-type "~1.0.4" + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + http-errors "2.0.0" + iconv-lite "0.4.24" + on-finished "2.4.1" + qs "6.11.0" + raw-body "2.5.1" + type-is "~1.6.18" + unpipe "1.0.0" + +boolbase@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +browserslist@^4.0.0, browserslist@^4.16.6, browserslist@^4.21.4: + version "4.21.4" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" + integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== + dependencies: + caniuse-lite "^1.0.30001400" + electron-to-chromium "^1.4.251" + node-releases "^2.0.6" + update-browserslist-db "^1.0.9" + +buffer-crc32@^0.2.5: + version "0.2.13" + resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" + integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ== + +buffer-from@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +builtin-modules@^3.1.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== + +bytes@3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" + integrity sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg== + +cacache@^15.2.0: + version "15.3.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" + integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== + dependencies: + "@npmcli/fs" "^1.0.0" + "@npmcli/move-file" "^1.0.1" + chownr "^2.0.0" + fs-minipass "^2.0.0" + glob "^7.1.4" + infer-owner "^1.0.4" + lru-cache "^6.0.0" + minipass "^3.1.1" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + mkdirp "^1.0.3" + p-map "^4.0.0" + promise-inflight "^1.0.1" + rimraf "^3.0.2" + ssri "^8.0.1" + tar "^6.0.2" + unique-filename "^1.1.1" + +call-bind@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase-keys@^6.2.2: + version "6.2.2" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" + integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== + dependencies: + camelcase "^5.3.1" + map-obj "^4.0.0" + quick-lru "^4.0.1" + +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001400: + version "1.0.30001435" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001435.tgz#502c93dbd2f493bee73a408fe98e98fb1dad10b2" + integrity sha512-kdCkUTjR+v4YAJelyiDTqiu82BDr4W4CP5sgTA0ZBmqn30XfS2ZghPLMowik9TPhS+psWJiUNxsqLyurDbmutA== + +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== + +chalk@^2.0.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +charenc@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== + +chokidar@^3.4.1: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + +class-validator@^0.13.1: + version "0.13.2" + resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.13.2.tgz#64b031e9f3f81a1e1dcd04a5d604734608b24143" + integrity sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw== + dependencies: + libphonenumber-js "^1.9.43" + validator "^13.7.0" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cliui@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.1" + wrap-ansi "^7.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-support@^1.1.2, color-support@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== + +colord@^2.9.1: + version "2.9.3" + resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" + integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== + +combined-stream@^1.0.6, combined-stream@~1.0.6: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +concat-with-sourcemaps@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" + integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg== + dependencies: + source-map "^0.6.1" + +console-control-strings@^1.0.0, console-control-strings@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== + +content-disposition@0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe" + integrity sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ== + dependencies: + safe-buffer "5.2.1" + +content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ== + +cookie@0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" + integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== + +core-util-is@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ== + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cross-fetch@^3.1.4: + version "3.1.5" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" + integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== + dependencies: + node-fetch "2.6.7" + +cross-spawn@^7.0.3: + version "7.0.3" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypt@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== + +css-declaration-sorter@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz#be5e1d71b7a992433fb1c542c7a1b835e45682ec" + integrity sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w== + +css-select@^4.1.3: + version "4.3.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" + integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== + dependencies: + boolbase "^1.0.0" + css-what "^6.0.1" + domhandler "^4.3.1" + domutils "^2.8.0" + nth-check "^2.0.1" + +css-tree@^1.1.2, css-tree@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== + dependencies: + mdn-data "2.0.14" + source-map "^0.6.1" + +css-what@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" + integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^5.2.13: + version "5.2.13" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz#e7353b0c57975d1bdd97ac96e68e5c1b8c68e990" + integrity sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ== + dependencies: + css-declaration-sorter "^6.3.1" + cssnano-utils "^3.1.0" + postcss-calc "^8.2.3" + postcss-colormin "^5.3.0" + postcss-convert-values "^5.1.3" + postcss-discard-comments "^5.1.2" + postcss-discard-duplicates "^5.1.0" + postcss-discard-empty "^5.1.1" + postcss-discard-overridden "^5.1.0" + postcss-merge-longhand "^5.1.7" + postcss-merge-rules "^5.1.3" + postcss-minify-font-values "^5.1.0" + postcss-minify-gradients "^5.1.1" + postcss-minify-params "^5.1.4" + postcss-minify-selectors "^5.2.1" + postcss-normalize-charset "^5.1.0" + postcss-normalize-display-values "^5.1.0" + postcss-normalize-positions "^5.1.1" + postcss-normalize-repeat-style "^5.1.1" + postcss-normalize-string "^5.1.0" + postcss-normalize-timing-functions "^5.1.0" + postcss-normalize-unicode "^5.1.1" + postcss-normalize-url "^5.1.0" + postcss-normalize-whitespace "^5.1.1" + postcss-ordered-values "^5.1.3" + postcss-reduce-initial "^5.1.1" + postcss-reduce-transforms "^5.1.0" + postcss-svgo "^5.1.0" + postcss-unique-selectors "^5.1.1" + +cssnano-utils@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861" + integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== + +cssnano@^5.0.1: + version "5.1.14" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.14.tgz#07b0af6da73641276fe5a6d45757702ebae2eb05" + integrity sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw== + dependencies: + cssnano-preset-default "^5.2.13" + lilconfig "^2.0.3" + yaml "^1.10.2" + +csso@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== + dependencies: + css-tree "^1.1.2" + +dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + integrity sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g== + dependencies: + assert-plus "^1.0.0" + +debug@2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@4, debug@^4.1.0, debug@^4.3.3: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +decamelize-keys@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" + integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== + dependencies: + decamelize "^1.1.0" + map-obj "^1.0.0" + +decamelize@^1.1.0, decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== + +deep-freeze@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/deep-freeze/-/deep-freeze-0.0.1.tgz#3a0b0005de18672819dfd38cd31f91179c893e84" + integrity sha512-Z+z8HiAvsGwmjqlphnHW5oz6yWlOwu6EQfFTjmeTWlDeda3FS2yv3jhq35TX/ewmsnqB+RX2IdsIOyjJCQN5tg== + +deepmerge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" + integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== + +depd@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +destroy@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" + integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== + +detect-indent@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" + integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== + +diff-sequences@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.6.2.tgz#48ba99157de1923412eed41db6b6d4aa9ca7c0b1" + integrity sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q== + +dom-serializer@^1.0.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" + integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== + dependencies: + domelementtype "^2.0.1" + domhandler "^4.2.0" + entities "^2.0.0" + +domelementtype@^2.0.1, domelementtype@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" + integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== + +domhandler@^4.2.0, domhandler@^4.3.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" + integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== + dependencies: + domelementtype "^2.2.0" + +domutils@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" + integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== + dependencies: + dom-serializer "^1.0.1" + domelementtype "^2.2.0" + domhandler "^4.2.0" + +ecc-jsbn@~0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + integrity sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw== + dependencies: + jsbn "~0.1.0" + safer-buffer "^2.1.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow== + +electron-to-chromium@^1.4.251: + version "1.4.284" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" + integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== + +email-validator@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/email-validator/-/email-validator-2.0.4.tgz#b8dfaa5d0dae28f1b03c95881d904d4e40bfe7ed" + integrity sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== + +encoding@^0.1.12: + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== + dependencies: + iconv-lite "^0.6.2" + +entities@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== + +env-paths@^2.2.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== + +err-code@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== + +error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +es6-promise@^3.1.2: + version "3.3.1" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-3.3.1.tgz#a08cdde84ccdbf34d027a1451bc91d4bcd28a613" + integrity sha512-SOp9Phqvqn7jtEUxPWdWfWoLmyt2VaJ6MpvP9Comy1MceMXqE6bxvaTu4iaxpYYPzhny28Lc+M87/c2cPK6lDg== + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +estree-walker@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" + integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== + +estree-walker@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" + integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== + +estree-walker@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" + integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== + +eventemitter3@^4.0.4: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +express@^4.18.1: + version "4.18.2" + resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59" + integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ== + dependencies: + accepts "~1.3.8" + array-flatten "1.1.1" + body-parser "1.20.1" + content-disposition "0.5.4" + content-type "~1.0.4" + cookie "0.5.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "2.0.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.2.0" + fresh "0.5.2" + http-errors "2.0.0" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "2.4.1" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.7" + qs "6.11.0" + range-parser "~1.2.1" + safe-buffer "5.2.1" + send "0.18.0" + serve-static "1.15.0" + setprototypeof "1.2.0" + statuses "2.0.1" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + integrity sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g== + +extsprintf@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.1.tgz#8d172c064867f235c0c84a596806d279bf4bcc07" + integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== + +fast-deep-equal@^3.1.1: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" + integrity sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "2.4.1" + parseurl "~1.3.3" + statuses "2.0.1" + unpipe "~1.0.0" + +find-up@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + integrity sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw== + +form-data@~2.3.2: + version "2.3.3" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.6" + mime-types "^2.1.12" + +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== + +fs-minipass@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +gauge@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" + integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.2" + console-control-strings "^1.0.0" + has-unicode "^2.0.1" + object-assign "^4.1.1" + signal-exit "^3.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.2" + +gauge@^4.0.3: + version "4.0.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" + integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== + dependencies: + aproba "^1.0.3 || ^2.0.0" + color-support "^1.1.3" + console-control-strings "^1.1.0" + has-unicode "^2.0.1" + signal-exit "^3.0.7" + string-width "^4.2.3" + strip-ansi "^6.0.1" + wide-align "^1.1.5" + +gaze@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" + integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== + dependencies: + globule "^1.0.0" + +generic-names@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-4.0.0.tgz#0bd8a2fd23fe8ea16cbd0a279acd69c06933d9a3" + integrity sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A== + dependencies: + loader-utils "^3.2.0" + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-intrinsic@^1.0.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha512-F5aQMywwJ2n85s4hJPTT9RPxGmubonuB10MNYo17/xph174n2MIR33HRguhzVag10O/npM7SPk73LMZNP+FaWw== + +getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + integrity sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng== + dependencies: + assert-plus "^1.0.0" + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@~7.1.1: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globule@^1.0.0: + version "1.3.4" + resolved "https://registry.yarnpkg.com/globule/-/globule-1.3.4.tgz#7c11c43056055a75a6e68294453c17f2796170fb" + integrity sha512-OPTIfhMBh7JbBYDpa5b+Q5ptmMWKwcNcFSR/0c6t8V4f3ZAVBEsKNY37QdVqmLRYSMhOUGYrY0QhSoEpzGr/Eg== + dependencies: + glob "~7.1.1" + lodash "^4.17.21" + minimatch "~3.0.2" + +graceful-fs@^4.1.3, graceful-fs@^4.2.6: + version "4.2.10" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" + integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + +graphql-query-complexity@^0.7.0: + version "0.7.2" + resolved "https://registry.yarnpkg.com/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz#7fc6bb20930ab1b666ecf3bbfb24b65b6f08ecc4" + integrity sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ== + dependencies: + lodash.get "^4.4.2" + +graphql-subscriptions@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz#2142b2d729661ddf967b7388f7cf1dd4cf2e061d" + integrity sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g== + dependencies: + iterall "^1.3.0" + +graphql-tag@^2.12.6: + version "2.12.6" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" + integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== + dependencies: + tslib "^2.1.0" + +graphql@^15.7.2: + version "15.8.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.8.0.tgz#33410e96b012fa3bdb1091cc99a94769db212b38" + integrity sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw== + +har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + integrity sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q== + +har-validator@~5.1.3: + version "5.1.5" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" + integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== + dependencies: + ajv "^6.12.3" + har-schema "^2.0.0" + +hard-rejection@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-unicode@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hoist-non-react-statics@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +hosted-git-info@^2.1.4: + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== + +hosted-git-info@^4.0.1: + version "4.1.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== + dependencies: + lru-cache "^6.0.0" + +http-cache-semantics@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-errors@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" + integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== + dependencies: + depd "2.0.0" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses "2.0.1" + toidentifier "1.0.1" + +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + +http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + integrity sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ== + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + +https-proxy-agent@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== + dependencies: + agent-base "6" + debug "4" + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== + dependencies: + ms "^2.0.0" + +iconv-lite@0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + +icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + integrity sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg== + +icss-utils@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" + integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== + +import-cwd@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-3.0.0.tgz#20845547718015126ea9b3676b7592fb8bd4cf92" + integrity sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg== + dependencies: + import-from "^3.0.0" + +import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966" + integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ== + dependencies: + resolve-from "^5.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +infer-owner@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.3, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +ip@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== + +ipaddr.js@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-buffer@~1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-core-module@^2.5.0, is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== + dependencies: + has "^1.0.3" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-lambda@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== + +is-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" + integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-obj@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== + +is-reference@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" + integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== + dependencies: + "@types/estree" "*" + +is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== + +isomorphic-ws@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" + integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== + +isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + integrity sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g== + +iterall@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" + integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== + +jest-diff@^26.0.0: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.6.2.tgz#1aa7468b52c3a68d7d5c5fdcdfcd5e49bd164394" + integrity sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA== + dependencies: + chalk "^4.0.0" + diff-sequences "^26.6.2" + jest-get-type "^26.3.0" + pretty-format "^26.6.2" + +jest-get-type@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.3.0.tgz#e97dc3c3f53c2b406ca7afaed4493b1d099199e0" + integrity sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig== + +jest-worker@^26.2.1: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== + dependencies: + "@types/node" "*" + merge-stream "^2.0.0" + supports-color "^7.0.0" + +js-base64@^2.4.9: + version "2.6.4" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.6.4.tgz#f4e686c5de1ea1f867dbcad3d46d969428df98c4" + integrity sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-schema@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5" + integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== + +json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +jsprim@^1.2.2: + version "1.4.2" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.2.tgz#712c65533a15c878ba59e9ed5f0e26d5b77c5feb" + integrity sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw== + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.4.0" + verror "1.10.0" + +kind-of@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +libphonenumber-js@^1.9.43: + version "1.10.14" + resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.14.tgz#e29da7f539751f724ac54017a098e3c7ca23de94" + integrity sha512-McGS7GV/WjJ2KjfOGhJU1oJn29RYeo7Q+RpANRbUNMQ9gj5XArpbjurSuyYPTejFwbaUojstQ4XyWCrAzGOUXw== + +lilconfig@^2.0.3, lilconfig@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.0.6.tgz#32a384558bd58af3d4c6e077dd1ad1d397bc69d4" + integrity sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg== + +lines-and-columns@^1.1.6: + version "1.2.4" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== + +loader-utils@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.2.1.tgz#4fb104b599daafd82ef3e1a41fb9265f87e1f576" + integrity sha512-ZvFw1KWS3GVyYBYb7qkmRM/WwL2TQQBxgCK62rlvm4WpVQ23Nb4tYjApUlfjrEGvOs7KHEsmyUn75OHZrJMWPw== + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== + +lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== + +lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + +magic-string@^0.25.7: + version "0.25.9" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c" + integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ== + dependencies: + sourcemap-codec "^1.4.8" + +make-fetch-happen@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" + integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg== + dependencies: + agentkeepalive "^4.1.3" + cacache "^15.2.0" + http-cache-semantics "^4.1.0" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^6.0.0" + minipass "^3.1.3" + minipass-collect "^1.0.2" + minipass-fetch "^1.3.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.4" + negotiator "^0.6.2" + promise-retry "^2.0.1" + socks-proxy-agent "^6.0.0" + ssri "^8.0.0" + +map-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== + +map-obj@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" + integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== + +md5@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" + integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== + dependencies: + charenc "0.0.2" + crypt "0.0.2" + is-buffer "~1.1.6" + +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== + +meow@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-9.0.0.tgz#cd9510bc5cac9dee7d03c73ee1f9ad959f4ea364" + integrity sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ== + dependencies: + "@types/minimist" "^1.2.0" + camelcase-keys "^6.2.2" + decamelize "^1.2.0" + decamelize-keys "^1.1.0" + hard-rejection "^2.1.0" + minimist-options "4.1.0" + normalize-package-data "^3.0.0" + read-pkg-up "^7.0.1" + redent "^3.0.0" + trim-newlines "^3.0.0" + type-fest "^0.18.0" + yargs-parser "^20.2.3" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w== + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12, mime-types@~2.1.19, mime-types@~2.1.24, mime-types@~2.1.34: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +min-indent@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== + +minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimatch@~3.0.2: + version "3.0.8" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.8.tgz#5e6a59bd11e2ab0de1cfb843eb2d82e546c321c1" + integrity sha512-6FsRAQsxQ61mw+qP1ZzbL9Bc78x2p5OqNgNpnoAFLTrX8n5Kxph0CsnhmKKNXTWjXqU5L0pGPR7hYk+XWZr60Q== + dependencies: + brace-expansion "^1.1.7" + +minimist-options@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== + dependencies: + arrify "^1.0.1" + is-plain-obj "^1.1.0" + kind-of "^6.0.3" + +minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: + version "1.2.7" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" + integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + +minipass-collect@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + dependencies: + minipass "^3.0.0" + +minipass-fetch@^1.3.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6" + integrity sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw== + dependencies: + minipass "^3.1.0" + minipass-sized "^1.0.3" + minizlib "^2.0.0" + optionalDependencies: + encoding "^0.1.12" + +minipass-flush@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + dependencies: + minipass "^3.0.0" + +minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== + dependencies: + minipass "^3.0.0" + +minipass-sized@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3: + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== + dependencies: + yallist "^4.0.0" + +minizlib@^2.0.0, minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + +mkdirp@^0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.0.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +nan@^2.13.2: + version "2.17.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" + integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== + +nanoid@^3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab" + integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw== + +negotiator@0.6.3, negotiator@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== + +node-fetch@2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +node-gyp@^8.4.1: + version "8.4.1" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.4.1.tgz#3d49308fc31f768180957d6b5746845fbd429937" + integrity sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w== + dependencies: + env-paths "^2.2.0" + glob "^7.1.4" + graceful-fs "^4.2.6" + make-fetch-happen "^9.1.0" + nopt "^5.0.0" + npmlog "^6.0.0" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.2" + which "^2.0.2" + +node-releases@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" + integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== + +node-sass@^7.0.1: + version "7.0.3" + resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-7.0.3.tgz#7620bcd5559c2bf125c4fbb9087ba75cd2df2ab2" + integrity sha512-8MIlsY/4dXUkJDYht9pIWBhMil3uHmE8b/AdJPjmFn1nBx9X9BASzfzmsCy0uCCb8eqI3SYYzVPDswWqSx7gjw== + dependencies: + async-foreach "^0.1.3" + chalk "^4.1.2" + cross-spawn "^7.0.3" + gaze "^1.0.0" + get-stdin "^4.0.1" + glob "^7.0.3" + lodash "^4.17.15" + meow "^9.0.0" + nan "^2.13.2" + node-gyp "^8.4.1" + npmlog "^5.0.0" + request "^2.88.0" + sass-graph "^4.0.1" + stdout-stream "^1.4.0" + "true-case-path" "^1.0.2" + +nopt@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== + dependencies: + abbrev "1" + +normalize-package-data@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-package-data@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" + integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== + dependencies: + hosted-git-info "^4.0.1" + is-core-module "^2.5.0" + semver "^7.3.4" + validate-npm-package-license "^3.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-url@^6.0.1: + version "6.1.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== + +npmlog@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" + integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== + dependencies: + are-we-there-yet "^2.0.0" + console-control-strings "^1.1.0" + gauge "^3.0.0" + set-blocking "^2.0.0" + +npmlog@^6.0.0: + version "6.0.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" + integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== + dependencies: + are-we-there-yet "^3.0.0" + console-control-strings "^1.1.0" + gauge "^4.0.3" + set-blocking "^2.0.0" + +nth-check@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" + integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== + dependencies: + boolbase "^1.0.0" + +oauth-sign@~0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + +object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-inspect@^1.9.0: + version "1.12.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + +on-finished@2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f" + integrity sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg== + dependencies: + ee-first "1.1.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +optimism@^0.16.1: + version "0.16.2" + resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.16.2.tgz#519b0c78b3b30954baed0defe5143de7776bf081" + integrity sha512-zWNbgWj+3vLEjZNIh/okkY2EUfX+vB9TJopzIZwT1xxaMqC5hRLLraePod4c5n4He08xuXNH+zhKFFCu390wiQ== + dependencies: + "@wry/context" "^0.7.0" + "@wry/trie" "^0.3.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== + +p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + +p-queue@^6.6.2: + version "6.6.2" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" + integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== + dependencies: + eventemitter3 "^4.0.4" + p-timeout "^3.2.0" + +p-timeout@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== + dependencies: + p-finally "^1.0.0" + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-json@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-even-better-errors "^2.3.0" + lines-and-columns "^1.1.6" + +parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ== + +performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== + +picocolors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== + +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +pify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" + integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== + +postcss-calc@^8.2.3: + version "8.2.4" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5" + integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q== + dependencies: + postcss-selector-parser "^6.0.9" + postcss-value-parser "^4.2.0" + +postcss-colormin@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.0.tgz#3cee9e5ca62b2c27e84fce63affc0cfb5901956a" + integrity sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg== + dependencies: + browserslist "^4.16.6" + caniuse-api "^3.0.0" + colord "^2.9.1" + postcss-value-parser "^4.2.0" + +postcss-convert-values@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz#04998bb9ba6b65aa31035d669a6af342c5f9d393" + integrity sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA== + dependencies: + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" + +postcss-discard-comments@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz#8df5e81d2925af2780075840c1526f0660e53696" + integrity sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ== + +postcss-discard-duplicates@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848" + integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw== + +postcss-discard-empty@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz#e57762343ff7f503fe53fca553d18d7f0c369c6c" + integrity sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A== + +postcss-discard-overridden@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e" + integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== + +postcss-load-config@^3.0.0: + version "3.1.4" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855" + integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== + dependencies: + lilconfig "^2.0.5" + yaml "^1.10.2" + +postcss-merge-longhand@^5.1.7: + version "5.1.7" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz#24a1bdf402d9ef0e70f568f39bdc0344d568fb16" + integrity sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ== + dependencies: + postcss-value-parser "^4.2.0" + stylehacks "^5.1.1" + +postcss-merge-rules@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz#8f97679e67cc8d08677a6519afca41edf2220894" + integrity sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + cssnano-utils "^3.1.0" + postcss-selector-parser "^6.0.5" + +postcss-minify-font-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b" + integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-minify-gradients@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz#f1fe1b4f498134a5068240c2f25d46fcd236ba2c" + integrity sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw== + dependencies: + colord "^2.9.1" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-minify-params@^5.1.4: + version "5.1.4" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz#c06a6c787128b3208b38c9364cfc40c8aa5d7352" + integrity sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw== + dependencies: + browserslist "^4.21.4" + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-minify-selectors@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz#d4e7e6b46147b8117ea9325a915a801d5fe656c6" + integrity sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-modules-extract-imports@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" + integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== + +postcss-modules-local-by-default@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" + integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== + dependencies: + icss-utils "^5.0.0" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.1.0" + +postcss-modules-scope@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" + integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== + dependencies: + postcss-selector-parser "^6.0.4" + +postcss-modules-values@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" + integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== + dependencies: + icss-utils "^5.0.0" + +postcss-modules@^4.0.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-4.3.1.tgz#517c06c09eab07d133ae0effca2c510abba18048" + integrity sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q== + dependencies: + generic-names "^4.0.0" + icss-replace-symbols "^1.1.0" + lodash.camelcase "^4.3.0" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + string-hash "^1.1.1" + +postcss-normalize-charset@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed" + integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg== + +postcss-normalize-display-values@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8" + integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-positions@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz#ef97279d894087b59325b45c47f1e863daefbb92" + integrity sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-repeat-style@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz#e9eb96805204f4766df66fd09ed2e13545420fb2" + integrity sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-string@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228" + integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-timing-functions@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb" + integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-normalize-unicode@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz#f67297fca3fea7f17e0d2caa40769afc487aa030" + integrity sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA== + dependencies: + browserslist "^4.21.4" + postcss-value-parser "^4.2.0" + +postcss-normalize-url@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc" + integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew== + dependencies: + normalize-url "^6.0.1" + postcss-value-parser "^4.2.0" + +postcss-normalize-whitespace@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz#08a1a0d1ffa17a7cc6efe1e6c9da969cc4493cfa" + integrity sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-ordered-values@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz#b6fd2bd10f937b23d86bc829c69e7732ce76ea38" + integrity sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ== + dependencies: + cssnano-utils "^3.1.0" + postcss-value-parser "^4.2.0" + +postcss-reduce-initial@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz#c18b7dfb88aee24b1f8e4936541c29adbd35224e" + integrity sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w== + dependencies: + browserslist "^4.21.4" + caniuse-api "^3.0.0" + +postcss-reduce-transforms@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9" + integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ== + dependencies: + postcss-value-parser "^4.2.0" + +postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: + version "6.0.11" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.11.tgz#2e41dc39b7ad74046e1615185185cd0b17d0c8dc" + integrity sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g== + dependencies: + cssesc "^3.0.0" + util-deprecate "^1.0.2" + +postcss-svgo@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d" + integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA== + dependencies: + postcss-value-parser "^4.2.0" + svgo "^2.7.0" + +postcss-unique-selectors@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz#a9f273d1eacd09e9aa6088f4b0507b18b1b541b6" + integrity sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA== + dependencies: + postcss-selector-parser "^6.0.5" + +postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" + integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== + +postcss@^8.2.1: + version "8.4.19" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.19.tgz#61178e2add236b17351897c8bcc0b4c8ecab56fc" + integrity sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +pretty-format@^26.0.0, pretty-format@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.6.2.tgz#e35c2705f14cb7fe2fe94fa078345b444120fc93" + integrity sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg== + dependencies: + "@jest/types" "^26.6.2" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^17.0.1" + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== + +promise-retry@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== + dependencies: + err-code "^2.0.2" + retry "^0.12.0" + +promise.series@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/promise.series/-/promise.series-0.2.0.tgz#2cc7ebe959fc3a6619c04ab4dbdc9e452d864bbd" + integrity sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ== + +prop-types@^15.7.2: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +proxy-addr@~2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== + dependencies: + forwarded "0.2.0" + ipaddr.js "1.9.1" + +psl@^1.1.28: + version "1.9.0" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.9.0.tgz#d0df2a137f00794565fcaf3b2c00cd09f8d5a5a7" + integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== + +punycode@^2.1.0, punycode@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +qs@6.11.0: + version "6.11.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a" + integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== + dependencies: + side-channel "^1.0.4" + +qs@~6.5.2: + version "6.5.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad" + integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA== + +quick-lru@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.5.1: + version "2.5.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.1.tgz#fe1b1628b181b700215e5fd42389f98b71392857" + integrity sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig== + dependencies: + bytes "3.1.2" + http-errors "2.0.0" + iconv-lite "0.4.24" + unpipe "1.0.0" + +react-is@^16.13.1, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== + +read-pkg-up@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== + dependencies: + find-up "^4.1.0" + read-pkg "^5.2.0" + type-fest "^0.8.1" + +read-pkg@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== + dependencies: + "@types/normalize-package-data" "^2.4.0" + normalize-package-data "^2.5.0" + parse-json "^5.0.0" + type-fest "^0.6.0" + +readable-stream@^2.0.1: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +redent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== + dependencies: + indent-string "^4.0.0" + strip-indent "^3.0.0" + +reflect-metadata@^0.1.13: + version "0.1.13" + resolved "https://registry.yarnpkg.com/reflect-metadata/-/reflect-metadata-0.1.13.tgz#67ae3ca57c972a2aa1642b10fe363fe32d49dc08" + integrity sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg== + +request@^2.88.0: + version "2.88.2" + resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.8.0" + caseless "~0.12.0" + combined-stream "~1.0.6" + extend "~3.0.2" + forever-agent "~0.6.1" + form-data "~2.3.2" + har-validator "~5.1.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.19" + oauth-sign "~0.9.0" + performance-now "^2.1.0" + qs "~6.5.2" + safe-buffer "^5.1.2" + tough-cookie "~2.5.0" + tunnel-agent "^0.6.0" + uuid "^3.3.2" + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +require-relative@^0.8.7: + version "0.8.7" + resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" + integrity sha512-AKGr4qvHiryxRb19m3PsLRGuKVAbJLUD7E6eOaHkfKhwc+vSgVOCY5xNvm9EkolBKTOf0GrQAZKLimOCz81Khg== + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-from@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== + +resolve@^1.10.0, resolve@^1.14.1, resolve@^1.17.0, resolve@^1.19.0: + version "1.22.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" + integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== + +rimraf@^2.5.2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +rollup-plugin-postcss@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-postcss/-/rollup-plugin-postcss-4.0.2.tgz#15e9462f39475059b368ce0e49c800fa4b1f7050" + integrity sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w== + dependencies: + chalk "^4.1.0" + concat-with-sourcemaps "^1.1.0" + cssnano "^5.0.1" + import-cwd "^3.0.0" + p-queue "^6.6.2" + pify "^5.0.0" + postcss-load-config "^3.0.0" + postcss-modules "^4.0.0" + promise.series "^0.2.0" + resolve "^1.19.0" + rollup-pluginutils "^2.8.2" + safe-identifier "^0.4.2" + style-inject "^0.3.0" + +rollup-plugin-string@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-string/-/rollup-plugin-string-3.0.0.tgz#fed2d6301fae1e59eb610957df757ef13fada3f0" + integrity sha512-vqyzgn9QefAgeKi+Y4A7jETeIAU1zQmS6VotH6bzm/zmUQEnYkpIGRaOBPY41oiWYV4JyBoGAaBjYMYuv+6wVw== + dependencies: + rollup-pluginutils "^2.4.1" + +rollup-plugin-svelte@^6.0.0: + version "6.1.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-svelte/-/rollup-plugin-svelte-6.1.1.tgz#66362cf0500fb7a848283ebcf19d289a60ef0871" + integrity sha512-ijnm0pH1ScrY4uxwaNXBpNVejVzpL2769hIEbAlnqNUWZrffLspu5/k9/l/Wsj3NrEHLQ6wCKGagVJonyfN7ow== + dependencies: + require-relative "^0.8.7" + rollup-pluginutils "^2.8.2" + sourcemap-codec "^1.4.8" + +rollup-plugin-terser@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d" + integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ== + dependencies: + "@babel/code-frame" "^7.10.4" + jest-worker "^26.2.1" + serialize-javascript "^4.0.0" + terser "^5.0.0" + +rollup-pluginutils@^2.4.1, rollup-pluginutils@^2.8.2: + version "2.8.2" + resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" + integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== + dependencies: + estree-walker "^0.6.1" + +rollup@^2.3.4: + version "2.79.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7" + integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw== + optionalDependencies: + fsevents "~2.3.2" + +sade@^1.7.4: + version "1.8.1" + resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" + integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== + dependencies: + mri "^1.1.0" + +safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-identifier@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/safe-identifier/-/safe-identifier-0.4.2.tgz#cf6bfca31c2897c588092d1750d30ef501d59fcb" + integrity sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w== + +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sander@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/sander/-/sander-0.5.1.tgz#741e245e231f07cafb6fdf0f133adfa216a502ad" + integrity sha512-3lVqBir7WuKDHGrKRDn/1Ye3kwpXaDOMsiRP1wd6wpZW56gJhsbp5RqQpA6JG/P+pkXizygnr1dKR8vzWaVsfA== + dependencies: + es6-promise "^3.1.2" + graceful-fs "^4.1.3" + mkdirp "^0.5.1" + rimraf "^2.5.2" + +sass-graph@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-4.0.1.tgz#2ff8ca477224d694055bf4093f414cf6cfad1d2e" + integrity sha512-5YCfmGBmxoIRYHnKK2AKzrAkCoQ8ozO+iumT8K4tXJXRVCPf+7s1/9KxTSW3Rbvf+7Y7b4FR3mWyLnQr3PHocA== + dependencies: + glob "^7.0.0" + lodash "^4.17.11" + scss-tokenizer "^0.4.3" + yargs "^17.2.1" + +scss-tokenizer@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.4.3.tgz#1058400ee7d814d71049c29923d2b25e61dc026c" + integrity sha512-raKLgf1LI5QMQnG+RxHz6oK0sL3x3I4FN2UDLqgLOGO8hodECNnNh5BXn7fAyBxrA8zVzdQizQ6XjNJQ+uBwMw== + dependencies: + js-base64 "^2.4.9" + source-map "^0.7.3" + +"semver@2 || 3 || 4 || 5": + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@^7.3.2, semver@^7.3.4, semver@^7.3.5: + version "7.3.8" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" + integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== + dependencies: + lru-cache "^6.0.0" + +send@0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" + integrity sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg== + dependencies: + debug "2.6.9" + depd "2.0.0" + destroy "1.2.0" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "2.0.0" + mime "1.6.0" + ms "2.1.3" + on-finished "2.4.1" + range-parser "~1.2.1" + statuses "2.0.1" + +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +serve-static@1.15.0: + version "1.15.0" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" + integrity sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.18.0" + +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +signal-exit@^3.0.0, signal-exit@^3.0.7: + version "3.0.7" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== + +smart-buffer@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== + +socks-proxy-agent@^6.0.0: + version "6.2.1" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce" + integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ== + dependencies: + agent-base "^6.0.2" + debug "^4.3.3" + socks "^2.6.2" + +socks@^2.6.2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" + integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== + dependencies: + ip "^2.0.0" + smart-buffer "^4.2.0" + +sorcery@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/sorcery/-/sorcery-0.10.0.tgz#8ae90ad7d7cb05fc59f1ab0c637845d5c15a52b7" + integrity sha512-R5ocFmKZQFfSTstfOtHjJuAwbpGyf9qjQa1egyhvXSbM7emjrtLXtGdZsDJDABC85YBfVvrOiGWKSYXPKdvP1g== + dependencies: + buffer-crc32 "^0.2.5" + minimist "^1.2.0" + sander "^0.5.0" + sourcemap-codec "^1.3.0" + +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== + +source-map-support@~0.5.20: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0, source-map@^0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +source-map@^0.7.3: + version "0.7.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" + integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== + +sourcemap-codec@^1.3.0, sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +spdx-correct@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.12" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779" + integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== + +sshpk@^1.7.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.17.0.tgz#578082d92d4fe612b13007496e543fa0fbcbe4c5" + integrity sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ== + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + bcrypt-pbkdf "^1.0.0" + dashdash "^1.12.0" + ecc-jsbn "~0.1.1" + getpass "^0.1.1" + jsbn "~0.1.0" + safer-buffer "^2.0.2" + tweetnacl "~0.14.0" + +ssri@^8.0.0, ssri@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== + dependencies: + minipass "^3.1.1" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +statuses@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" + integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== + +stdout-stream@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" + integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA== + dependencies: + readable-stream "^2.0.1" + +string-hash@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" + integrity sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A== + +"string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-indent@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== + dependencies: + min-indent "^1.0.0" + +style-inject@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/style-inject/-/style-inject-0.3.0.tgz#d21c477affec91811cc82355832a700d22bf8dd3" + integrity sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw== + +stylehacks@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.1.tgz#7934a34eb59d7152149fa69d6e9e56f2fc34bcc9" + integrity sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw== + dependencies: + browserslist "^4.21.4" + postcss-selector-parser "^6.0.4" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +svelte-check@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/svelte-check/-/svelte-check-1.6.0.tgz#fcc7b28252a89be0e4cd369c58bbf8e76e81295f" + integrity sha512-nQTlbFJWhwoeLY5rkhgbjzGQSwk5F1pRdEXait0EFaQSrE/iJF+PIjrQlk0BjL/ogk9HaR9ZI0DQSYrl7jl3IQ== + dependencies: + chalk "^4.0.0" + chokidar "^3.4.1" + glob "^7.1.6" + import-fresh "^3.2.1" + minimist "^1.2.5" + sade "^1.7.4" + source-map "^0.7.3" + svelte-preprocess "^4.0.0" + typescript "*" + +svelte-preprocess@^4.0.0: + version "4.10.7" + resolved "https://registry.yarnpkg.com/svelte-preprocess/-/svelte-preprocess-4.10.7.tgz#3626de472f51ffe20c9bc71eff5a3da66797c362" + integrity sha512-sNPBnqYD6FnmdBrUmBCaqS00RyCsCpj2BG58A1JBswNF7b0OKviwxqVrOL/CKyJrLSClrSeqQv5BXNg2RUbPOw== + dependencies: + "@types/pug" "^2.0.4" + "@types/sass" "^1.16.0" + detect-indent "^6.0.0" + magic-string "^0.25.7" + sorcery "^0.10.0" + strip-indent "^3.0.0" + +svelte@^3.0.0: + version "3.53.1" + resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.53.1.tgz#db9d7df7a8f570e8e22547444c149208b1914442" + integrity sha512-Q4/hHkktZogGhN5iqxqSi9sjEVoe/NbIxX4hXEHoasTxj+TxEQVAq66LnDMdAZxjmsodkoI5F3slqsS68U7FNw== + +svgo@^2.7.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" + integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== + dependencies: + "@trysound/sax" "0.2.0" + commander "^7.2.0" + css-select "^4.1.3" + css-tree "^1.1.3" + csso "^4.2.0" + picocolors "^1.0.0" + stable "^0.1.8" + +symbol-observable@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" + integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== + +tar@^6.0.2, tar@^6.1.2: + version "6.1.12" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.12.tgz#3b742fb05669b55671fb769ab67a7791ea1a62e6" + integrity sha512-jU4TdemS31uABHd+Lt5WEYJuzn+TJTCBLljvIAHZOz6M9Os5pJ4dD+vRFLxPa/n3T0iEFzpi+0x1UfuDZYbRMw== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + +terser@^5.0.0: + version "5.16.1" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.16.1.tgz#5af3bc3d0f24241c7fb2024199d5c461a1075880" + integrity sha512-xvQfyfA1ayT0qdK47zskQgRZeWLoOQ8JQ6mIgRGVNwZKdQMU+5FkCBjmv4QjcrTzyZquRw2FVtlJSRUmMKQslw== + dependencies: + "@jridgewell/source-map" "^0.3.2" + acorn "^8.5.0" + commander "^2.20.0" + source-map-support "~0.5.20" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== + dependencies: + psl "^1.1.28" + punycode "^2.1.1" + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +trim-newlines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" + integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== + +"true-case-path@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" + integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew== + dependencies: + glob "^7.1.2" + +ts-invariant@^0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.10.3.tgz#3e048ff96e91459ffca01304dbc7f61c1f642f6c" + integrity sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ== + dependencies: + tslib "^2.1.0" + +tslib@^2.0.0, tslib@^2.0.1, tslib@^2.1.0, tslib@^2.3.0: + version "2.4.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" + integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== + +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + +tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + integrity sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA== + +type-fest@^0.18.0: + version "0.18.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" + integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== + +type-fest@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== + +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-graphql@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/type-graphql/-/type-graphql-1.1.1.tgz#dc0710d961713b92d3fee927981fa43bf71667a4" + integrity sha512-iOOWVn0ehCYMukmnXStbkRwFE9dcjt7/oDcBS1JyQZo9CbhlIll4lHHps54HMEk4A4c8bUPd+DjK8w1/ZrxB4A== + dependencies: + "@types/glob" "^7.1.3" + "@types/node" "^14.11.2" + "@types/semver" "^7.3.3" + glob "^7.1.6" + graphql-query-complexity "^0.7.0" + graphql-subscriptions "^1.1.0" + semver "^7.3.2" + tslib "^2.0.1" + +type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +typescript@*, typescript@^4.2.4: + version "4.9.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.3.tgz#3aea307c1746b8c384435d8ac36b8a2e580d85db" + integrity sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA== + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== + +update-browserslist-db@^1.0.9: + version "1.0.10" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" + integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + +uri-js@^4.2.2: + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== + dependencies: + punycode "^2.1.0" + +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA== + +uuid@^3.3.2: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +validator@^13.7.0: + version "13.7.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.7.0.tgz#4f9658ba13ba8f3d82ee881d3516489ea85c0857" + integrity sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw== + +vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg== + +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + integrity sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw== + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +which@^2.0.1, which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.2, wide-align@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== + dependencies: + string-width "^1.0.2 || 2 || 3 || 4" + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +xmlhttprequest@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" + integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yaml@^1.10.2: + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== + +yargs-parser@^20.2.3: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-parser@^21.1.1: + version "21.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== + +yargs@^17.2.1: + version "17.6.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.2.tgz#2e23f2944e976339a1ee00f18c77fedee8332541" + integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw== + dependencies: + cliui "^8.0.1" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.3" + y18n "^5.0.5" + yargs-parser "^21.1.1" + +zen-observable-ts@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz#6c6d9ea3d3a842812c6e9519209365a122ba8b58" + integrity sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg== + dependencies: + zen-observable "0.8.15" + +zen-observable@0.8.15: + version "0.8.15" + resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" + integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== diff --git a/bootstrap-languages/direct-message-language/.gitignore b/bootstrap-languages/direct-message-language/.gitignore new file mode 100644 index 000000000..3db53879e --- /dev/null +++ b/bootstrap-languages/direct-message-language/.gitignore @@ -0,0 +1,14 @@ +hc-dna/.cargo +hc-dna/target +hc-dna/tests/node_modules +hc-dna/workdir/direct-message-language.dna + +build/* + +*.js +*.js.map +!*.config.js +!dna.js + +node_modules +target diff --git a/bootstrap-languages/direct-message-language/README.md b/bootstrap-languages/direct-message-language/README.md new file mode 100644 index 000000000..4144326e5 --- /dev/null +++ b/bootstrap-languages/direct-message-language/README.md @@ -0,0 +1,9 @@ +# Language template: Direct Message Language + +This is a Language about Languages - a way to publish and make available Languages to others. + +## Build overview + +The whole project compiles and bundles to one file: `build/bundle.js`. +Just run `npm run build` to build everything, including the Holochain DNA (requires Nix). + diff --git a/bootstrap-languages/direct-message-language/adapter.ts b/bootstrap-languages/direct-message-language/adapter.ts new file mode 100644 index 000000000..47fe46f51 --- /dev/null +++ b/bootstrap-languages/direct-message-language/adapter.ts @@ -0,0 +1,110 @@ +import { DirectMessageAdapter, HolochainLanguageDelegate, LanguageContext, MessageCallback, Perspective, PerspectiveExpression } from "@perspect3vism/ad4m"; +import { DNA, DNA_NICK } from "./dna"; + +//@ad4m-template-variable +const recipient_did = "" + +export const sleep = ms => new Promise(r => setTimeout(r, ms)) + +export default class DMAdapter implements DirectMessageAdapter { + #context: LanguageContext + #holochain: HolochainLanguageDelegate; + #messageCallbacks: MessageCallback[]; + + + constructor(context: LanguageContext) { + this.#context = context + this.#holochain = context.Holochain as HolochainLanguageDelegate; + this.#messageCallbacks = [] + } + + async init() { + const that = this + //@ts-ignore + await this.#holochain.registerDNAs( + [ + { + file: DNA, + nick: DNA_NICK, + //@ts-ignore + zomeCalls: [ + ["direct-message", "send_p2p"], + ["direct-message", "send_inbox"], + ["direct-message", "set_status"], + ["direct-message", "get_status"], + ["direct-message", "fetch_inbox"], + ["direct-message", "inbox"], + ] + } + ], (signal) => { + console.debug("DM Language got HC signal:", signal) + //@ts-ignore + let payload = signal.payload + try { + //@ts-ignore + let string = signal.payload.toString() + let cropped = string.substring(string.indexOf("{")) + let parsed = JSON.parse(cropped) + payload = parsed + } catch(e) { + console.error(e) + } + that.#messageCallbacks.forEach(cb => cb(payload)) + }); + } + + recipient(): string{ + return recipient_did + } + + async status(): Promise { + let status = null + try { + status = await this.#holochain.call(DNA_NICK, "direct-message", "get_status", null) + } catch(e) { + console.debug("DirectMessage Language couldn't get status:", e) + } + return status + } + + async sendP2P(message: Perspective): Promise { + try { + const messageExpression = this.#context.agent.createSignedExpression(message) + await this.#holochain.call(DNA_NICK, "direct-message", "send_p2p", messageExpression) + return messageExpression + } catch(e) { + console.error("Direct Message Language: Error sending p2p to", recipient_did) + } + } + + async sendInbox(message: Perspective): Promise { + try { + const messageExpression = this.#context.agent.createSignedExpression(message) + await this.#holochain.call(DNA_NICK, "direct-message", "send_inbox", messageExpression) + return messageExpression + } catch(e) { + console.error("Direct Message Language: Error sending to inbox of", recipient_did) + } + } + + onlyRecipient() { + if(recipient_did !== this.#context.agent.did) throw new Error("Only recipient can call this function!") + } + + async setStatus(status: PerspectiveExpression) { + this.onlyRecipient() + const statusExpression = this.#context.agent.createSignedExpression(status) + await this.#holochain.call(DNA_NICK, "direct-message", "set_status", statusExpression) + } + + async inbox(filter?: string): Promise { + this.onlyRecipient() + await this.#holochain.call(DNA_NICK, "direct-message", "fetch_inbox", null) + return await this.#holochain.call(DNA_NICK, "direct-message", "inbox", filter) + } + + addMessageCallback(callback: MessageCallback) { + this.onlyRecipient() + this.#messageCallbacks.push(callback) + } +} \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/dna.js b/bootstrap-languages/direct-message-language/dna.js new file mode 100644 index 000000000..7893e2ef8 --- /dev/null +++ b/bootstrap-languages/direct-message-language/dna.js @@ -0,0 +1,4 @@ +import dna from "./hc-dna/workdir/direct-message-language.dna"; + +export const DNA = Buffer.from(dna, "base64"); +export const DNA_NICK = "direct-message-language"; diff --git a/bootstrap-languages/direct-message-language/hc-dna/Cargo.lock b/bootstrap-languages/direct-message-language/hc-dna/Cargo.lock new file mode 100644 index 000000000..fc0f4c4e9 --- /dev/null +++ b/bootstrap-languages/direct-message-language/hc-dna/Cargo.lock @@ -0,0 +1,2217 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ecd88a8c8378ca913a680cd98f0f13ac67383d35993f86c90a70e3f137816b" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "ahash" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom", + "once_cell", + "version_check", +] + +[[package]] +name = "aho-corasick" +version = "0.7.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" +dependencies = [ + "memchr", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "arrayref" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" + +[[package]] +name = "arrayvec" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backtrace" +version = "0.3.65" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11a17d453482a265fd5f8479f2a3f405566e6ca627837aaddb85af8b1ab8ef61" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bit-set" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "blake2b_simd" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq", +] + +[[package]] +name = "block-buffer" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bumpalo" +version = "3.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3" + +[[package]] +name = "bytecheck" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a31f923c2db9513e4298b72df143e6e655a759b3d6a0966df18f81223fff54f" +dependencies = [ + "bytecheck_derive", + "ptr_meta", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "edb17c862a905d912174daa27ae002326fff56dc8b8ada50a0a5f0976cb174f0" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "camino" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c77df041dc383319cc661b428b6961a005db4d6808d5e12536931b1ca9556055" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08a1ec454bc3eead8719cb56e15dbbfecdbc14e4b3a3ae4936cc6e31f5fc0d07" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.16", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cc" +version = "1.0.73" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfd4d1b31faaa3a89d7934dbded3111da0d2ef28e3ebccdb4f0179f5929d1ef1" +dependencies = [ + "iana-time-zone", + "num-integer", + "num-traits", + "serde", + "time", + "winapi", +] + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "corosensei" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9847f90f32a50b0dcbd68bc23ff242798b13080b97b0569f6ed96a45ce4cf2cd" +dependencies = [ + "autocfg", + "cfg-if", + "libc", + "scopeguard", + "windows-sys 0.33.0", +] + +[[package]] +name = "cpufeatures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +dependencies = [ + "libc", +] + +[[package]] +name = "cranelift-bforest" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38faa2a16616c8e78a18d37b4726b98bfd2de192f2fdc8a39ddf568a408a0f75" +dependencies = [ + "cranelift-entity", +] + +[[package]] +name = "cranelift-codegen" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26f192472a3ba23860afd07d2b0217dc628f21fcc72617aa1336d98e1671f33b" +dependencies = [ + "cranelift-bforest", + "cranelift-codegen-meta", + "cranelift-codegen-shared", + "cranelift-entity", + "gimli", + "log", + "regalloc", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-codegen-meta" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f32ddb89e9b89d3d9b36a5b7d7ea3261c98235a76ac95ba46826b8ec40b1a24" +dependencies = [ + "cranelift-codegen-shared", +] + +[[package]] +name = "cranelift-codegen-shared" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01fd0d9f288cc1b42d9333b7a776b17e278fc888c28e6a0f09b5573d45a150bc" + +[[package]] +name = "cranelift-entity" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3bfe172b83167604601faf9dc60453e0d0a93415b57a9c4d1a7ae6849185cf" + +[[package]] +name = "cranelift-frontend" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a006e3e32d80ce0e4ba7f1f9ddf66066d052a8c884a110b91d05404d6ce26dce" +dependencies = [ + "cranelift-codegen", + "log", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c02a4d71819009c192cf4872265391563fd6a84c81ff2c0f2a7026ca4c1d85c" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6455c0ca19f0d2fbf751b908d5c55c1f5cbc65e03c4225427254b46890bdde1e" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07db9d94cbd326813772c968ccd25999e5f8ae22f4f8d1b11effa37ef6ce281d" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset", + "once_cell", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d82ee10ce34d7bc12c2122495e7593a9c41347ecdd64185af4ecf72cb1a7f83" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "darling" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c" +dependencies = [ + "darling_core 0.13.4", + "darling_macro 0.13.4", +] + +[[package]] +name = "darling" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4529658bdda7fd6769b8614be250cdcfc3aeb0ee72fe66f9e41e5e5eb73eac02" +dependencies = [ + "darling_core 0.14.1", + "darling_macro 0.14.1", +] + +[[package]] +name = "darling_core" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "darling_core" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "649c91bc01e8b1eac09fb91e8dbc7d517684ca6be8ebc75bb9cafc894f9fdb6f" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835" +dependencies = [ + "darling_core 0.13.4", + "quote", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.14.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddfc69c5bfcbd2fc09a0f38451d2daf0e372e367986a83906d1b0dbc88134fb5" +dependencies = [ + "darling_core 0.14.1", + "quote", + "syn", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn", +] + +[[package]] +name = "digest" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "direct-message" +version = "0.1.0" +dependencies = [ + "chrono", + "derive_more", + "direct-message-integrity", + "hdk", + "hex", + "holo_hash", + "serde", + "serde_json", +] + +[[package]] +name = "direct-message-integrity" +version = "0.1.0" +dependencies = [ + "chrono", + "derive_more", + "hdi", + "holo_hash", + "serde", +] + +[[package]] +name = "either" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f107b87b6afc2a64fd13cac55fe06d6c8859f12d4b14cbcdd2c67d0976781be" + +[[package]] +name = "enum-iterator" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eeac5c5edb79e4e39fe8439ef35207780a11f69c52cbe424ce3dfad4cb78de6" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c134c37760b27a871ba422106eedbb8247da973a09e82558bf26d619c882b159" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "enumset" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4799cdb24d48f1f8a7a98d06b7fde65a85a2d1e42b25a889f5406aa1fbefe074" +dependencies = [ + "enumset_derive", +] + +[[package]] +name = "enumset_derive" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea83a3fbdc1d999ccfbcbee717eab36f8edf2d71693a23ce0d7cca19e085304c" +dependencies = [ + "darling 0.13.4", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fastrand" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf" +dependencies = [ + "instant", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "gcollections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f551fdf23ef80329f754919669147a71c67b6cfe3569cd93b6fabdd62044377" +dependencies = [ + "bit-set", + "num-integer", + "num-traits", + "trilean", +] + +[[package]] +name = "generic-array" +version = "0.14.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "gimli" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78cc372d058dcf6d5ecd98510e7fbc9e5aec4d21de70f65fea8fecebcd881bd4" +dependencies = [ + "fallible-iterator", + "indexmap", + "stable_deref_trait", +] + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db0d4cf898abf0081f964436dc980e96670a0f36863e4b83aaacdb65c9d7ccc3" +dependencies = [ + "ahash", +] + +[[package]] +name = "hdi" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "344ddd3db53dec1352aca06ca5048d305a2c20149cf3117e9669ac567e71c109" +dependencies = [ + "hdk_derive", + "holo_hash", + "holochain_integrity_types", + "holochain_wasmer_guest", + "paste", + "serde", + "serde_bytes", + "tracing", + "tracing-core", +] + +[[package]] +name = "hdk" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab34bc763d15b2d91d26008487b189547da9c184b5bcd448242ac255f483443e" +dependencies = [ + "getrandom", + "hdi", + "hdk_derive", + "holo_hash", + "holochain_wasmer_guest", + "holochain_zome_types", + "paste", + "serde", + "serde_bytes", + "thiserror", + "tracing", + "tracing-core", +] + +[[package]] +name = "hdk_derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "596ab116a5f8977ef7d630b065b233ab73b5cded613688a487c666f8e6e63291" +dependencies = [ + "darling 0.14.1", + "heck", + "holochain_integrity_types", + "paste", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "heck" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "holo_hash" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "270268effa8c72be70eeb0c3d3944f58a3885daf355cd3597300bf4b33bfee1b" +dependencies = [ + "base64", + "blake2b_simd", + "derive_more", + "holochain_serialized_bytes", + "kitsune_p2p_dht_arc", + "serde", + "serde_bytes", + "thiserror", +] + +[[package]] +name = "holochain_integrity_types" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c3cf7e728e70ab5aac0c89e437879ee529894d6aa2b6d6ca5d59527fda38157" +dependencies = [ + "holo_hash", + "holochain_serialized_bytes", + "kitsune_p2p_timestamp", + "paste", + "serde", + "serde_bytes", + "subtle", + "tracing", +] + +[[package]] +name = "holochain_serialized_bytes" +version = "0.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9805b3e01e7b5c144782a0823db4dc895fec18a9ccd45a492ce7c7bf157a9e38" +dependencies = [ + "holochain_serialized_bytes_derive", + "rmp-serde", + "serde", + "serde-transcode", + "serde_bytes", + "serde_json", + "thiserror", +] + +[[package]] +name = "holochain_serialized_bytes_derive" +version = "0.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1077232d0c427d64feb9e138fa22800e447eafb1810682d6c13beb95333cb32c" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "holochain_wasmer_common" +version = "0.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce2c50cfaf43ccfaf9c584eae3864dffb3f010f140dad6e52368f0969ce680d7" +dependencies = [ + "holochain_serialized_bytes", + "serde", + "serde_bytes", + "test-fuzz", + "thiserror", + "wasmer", + "wasmer-engine", +] + +[[package]] +name = "holochain_wasmer_guest" +version = "0.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5539ab71791a3f9d0febbd2822ba398ef34e18f55f86eafc4918a776d12d7db" +dependencies = [ + "holochain_serialized_bytes", + "holochain_wasmer_common", + "parking_lot", + "paste", + "serde", + "tracing", +] + +[[package]] +name = "holochain_zome_types" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9725c45ba4fff602c0ac548945ddbb44cb255ee934336efd43262fff8bec8e49" +dependencies = [ + "holo_hash", + "holochain_integrity_types", + "holochain_serialized_bytes", + "holochain_wasmer_common", + "kitsune_p2p_timestamp", + "paste", + "serde", + "serde_bytes", + "subtle", + "thiserror", + "tracing", +] + +[[package]] +name = "home" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "747309b4b440c06d57b0b25f2aee03ee9b5e5397d288c60e21fc709bb98a7408" +dependencies = [ + "winapi", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.47" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c495f162af0bf17656d0014a0eded5f3cd2f365fdd204548c2869db89359dc7" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "js-sys", + "once_cell", + "wasm-bindgen", + "winapi", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "if_chain" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" + +[[package]] +name = "indexmap" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223" +dependencies = [ + "autocfg", + "hashbrown 0.11.2", + "serde", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "intervallum" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ccecd834666f695ecec3ff0d5fc32e32c91abea91a28fd0aceb4b35a82cee1" +dependencies = [ + "bit-set", + "gcollections", + "num-integer", + "num-traits", + "trilean", +] + +[[package]] +name = "itoa" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35" + +[[package]] +name = "js-sys" +version = "0.3.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3fac17f7123a73ca62df411b1bf727ccc805daa070338fda671c86dac1bdc27" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "kitsune_p2p_dht_arc" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0344da4e6309dfa0d7471e4b868e7dc829f109a99b3fd552abfd4d9850593cbf" +dependencies = [ + "derive_more", + "gcollections", + "intervallum", + "num-traits", + "serde", +] + +[[package]] +name = "kitsune_p2p_timestamp" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89399225067e17ab204a3d496622dd7ab51959690676eee35c45c6ad9a725165" +dependencies = [ + "chrono", + "derive_more", + "serde", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + +[[package]] +name = "libc" +version = "0.2.126" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" + +[[package]] +name = "libloading" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "lock_api" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "loupe" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b6a72dfa44fe15b5e76b94307eeb2ff995a8c5b283b55008940c02e0c5b634d" +dependencies = [ + "indexmap", + "loupe-derive", + "rustversion", +] + +[[package]] +name = "loupe-derive" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fbfc88337168279f2e9ae06e157cfed4efd3316e14dc96ed074d4f2e6c5952" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "mach" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +dependencies = [ + "libc", +] + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "memmap2" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5172b50c23043ff43dd53e51392f36519d9b35a8f3a410d30ece5d1aedd58ae" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "miniz_oxide" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc" +dependencies = [ + "adler", +] + +[[package]] +name = "more-asserts" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" + +[[package]] +name = "num-integer" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "object" +version = "0.28.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424" +dependencies = [ + "crc32fast", + "hashbrown 0.11.2", + "indexmap", + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f7254b99e31cad77da24b08ebf628882739a608578bb1bcdfc1f9c21260d7c0" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-sys 0.42.0", +] + +[[package]] +name = "paste" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" + +[[package]] +name = "pest" +version = "2.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ab62d2fa33726dbe6321cc97ef96d8cde531e3eeaf858a058de53a8a6d40d8f" +dependencies = [ + "thiserror", + "ucd-trie", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c" + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "quote" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rayon" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd99e5772ead8baa5215278c9b15bf92087709e9c1b2d1f97cdb5a183c933a7d" +dependencies = [ + "autocfg", + "crossbeam-deque", + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "258bcdb5ac6dad48491bb2992db6b7cf74878b0384908af124823d118c99683f" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "num_cpus", +] + +[[package]] +name = "redox_syscall" +version = "0.2.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff" +dependencies = [ + "bitflags", +] + +[[package]] +name = "regalloc" +version = "0.0.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62446b1d3ebf980bdc68837700af1d77b37bc430e524bf95319c6eada2a4cc02" +dependencies = [ + "log", + "rustc-hash", + "smallvec", +] + +[[package]] +name = "regex" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" + +[[package]] +name = "region" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76e189c2369884dce920945e2ddf79b3dff49e071a167dd1817fa9c4c00d512e" +dependencies = [ + "bitflags", + "libc", + "mach", + "winapi", +] + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi", +] + +[[package]] +name = "rend" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79af64b4b6362ffba04eef3a4e10829718a4896dac19daa741851c86781edf95" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "rkyv" +version = "0.7.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cec2b3485b07d96ddfd3134767b8a447b45ea4eb91448d0a35180ec0ffd5ed15" +dependencies = [ + "bytecheck", + "hashbrown 0.12.1", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eaedadc88b53e36dd32d940ed21ae4d850d5916f2581526921f553a72ac34c4" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "rmp" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f55e5fa1446c4d5dd1f5daeed2a4fe193071771a2636274d0d7a3b082aa7ad6" +dependencies = [ + "byteorder", + "num-traits", +] + +[[package]] +name = "rmp-serde" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "723ecff9ad04f4ad92fe1c8ca6c20d2196d9286e9c60727c4cb5511629260e9d" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.16", +] + +[[package]] +name = "rustversion" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0a5f7c728f5d284929a1cccb5bc19884422bfe6ef4d6c409da2c41838983fcf" + +[[package]] +name = "ryu" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "serde" +version = "1.0.152" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-transcode" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "590c0e25c2a5bb6e85bf5c1bce768ceb86b316e7a01bdf07d2cb4ec2271990e2" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_bytes" +version = "0.11.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16ae07dd2f88a366f15bd0632ba725227018c69a1c8550a927324f8eb8368bb9" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.152" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.91" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883" +dependencies = [ + "indexmap", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sha-1" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "smallvec" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83" + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn", +] + +[[package]] +name = "subprocess" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2e86926081dda636c546d8c5e641661049d7562a68f5488be4a1f7f66f6086" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "subtle" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" + +[[package]] +name = "syn" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "target-lexicon" +version = "0.12.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c02424087780c9b71cc96799eaeddff35af2bc513278cda5c99fc1f5d026d3c1" + +[[package]] +name = "tempfile" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +dependencies = [ + "cfg-if", + "fastrand", + "libc", + "redox_syscall", + "remove_dir_all", + "winapi", +] + +[[package]] +name = "test-fuzz" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "125df852011c4f8f31df5620f4aea38ecddb5dfb4d9bc569b30485b15ffc3d4e" +dependencies = [ + "serde", + "test-fuzz-internal", + "test-fuzz-macro", + "test-fuzz-runtime", +] + +[[package]] +name = "test-fuzz-internal" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58071dc2471840e9f374eeb0f6e405a31bccb3cc5d59bb4598f02cafc274b5c4" +dependencies = [ + "cargo_metadata", + "proc-macro2", + "quote", + "serde", + "strum_macros", +] + +[[package]] +name = "test-fuzz-macro" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "856bbca0314c328004691b9c0639fb198ca764d1ce0e20d4dd8b78f2697c2a6f" +dependencies = [ + "darling 0.14.1", + "if_chain", + "lazy_static", + "proc-macro2", + "quote", + "subprocess", + "syn", + "test-fuzz-internal", + "toolchain_find", + "unzip-n", +] + +[[package]] +name = "test-fuzz-runtime" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "303774eb17994c2ddb59c460369f4c3a55496f013380278d78eeebd2deb896ac" +dependencies = [ + "bincode", + "hex", + "num-traits", + "serde", + "sha-1", + "test-fuzz-internal", +] + +[[package]] +name = "thiserror" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "time" +version = "0.1.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255" +dependencies = [ + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", + "winapi", +] + +[[package]] +name = "toolchain_find" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e85654a10e7a07a47c6f19d93818f3f343e22927f2fa280c84f7c8042743413" +dependencies = [ + "home", + "lazy_static", + "regex", + "semver 0.11.0", + "walkdir", +] + +[[package]] +name = "tracing" +version = "0.1.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "375a639232caf30edfc78e8d89b2d4c375515393e7af7e16f01cd96917fb2105" +dependencies = [ + "cfg-if", + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f480b8f81512e825f337ad51e94c1eb5d3bbdf2b363dcd01e2b19a9ffe3f8e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f4ed65637b8390770814083d20756f87bfa2c21bf2f110babdc5438351746e4" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "trilean" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683ba5022fe6dbd7133cad150478ccf51bdb6d861515181e5fc6b4323d4fa424" + +[[package]] +name = "typenum" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" + +[[package]] +name = "ucd-trie" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" + +[[package]] +name = "unicode-ident" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bd2fe26506023ed7b5e1e315add59d6f584c621d037f9368fea9cfb988f368c" + +[[package]] +name = "unicode-width" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973" + +[[package]] +name = "unzip-n" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2e7e85a0596447f0f2ac090e16bc4c516c6fe91771fb0c0ccf7fa3dae896b9c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "walkdir" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +dependencies = [ + "same-file", + "winapi", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c53b543413a17a202f4be280a7e5c62a1c69345f5de525ee64f8cfdbc954994" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5491a68ab4500fa6b4d726bd67408630c3dbe9c4fe7bda16d5c82a1fd8c7340a" +dependencies = [ + "bumpalo", + "lazy_static", + "log", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c441e177922bc58f1e12c022624b6216378e5febc2f0533e41ba443d505b80aa" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d94ac45fcf608c1f45ef53e748d35660f168490c10b23704c7779ab8f5c3048" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a89911bd99e5f3659ec4acf9c4d93b0a90fe4a2a11f15328472058edc5261be" + +[[package]] +name = "wasm-encoder" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31f0c17267a5ffd6ae3d897589460e21db1673c84fb7016b909c9691369a75ea" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasmer" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea8d8361c9d006ea3d7797de7bd6b1492ffd0f91a22430cfda6c1658ad57bedf" +dependencies = [ + "cfg-if", + "indexmap", + "js-sys", + "loupe", + "more-asserts", + "target-lexicon", + "thiserror", + "wasm-bindgen", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-compiler-cranelift", + "wasmer-derive", + "wasmer-engine", + "wasmer-engine-dylib", + "wasmer-engine-universal", + "wasmer-types", + "wasmer-vm", + "wat", + "winapi", +] + +[[package]] +name = "wasmer-artifact" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7aaf9428c29c1d8ad2ac0e45889ba8a568a835e33fd058964e5e500f2f7ce325" +dependencies = [ + "enumset", + "loupe", + "thiserror", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-compiler" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67a6cd866aed456656db2cfea96c18baabbd33f676578482b85c51e1ee19d2c" +dependencies = [ + "enumset", + "loupe", + "rkyv", + "serde", + "serde_bytes", + "smallvec", + "target-lexicon", + "thiserror", + "wasmer-types", + "wasmparser", +] + +[[package]] +name = "wasmer-compiler-cranelift" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48be2f9f6495f08649e4f8b946a2cbbe119faf5a654aa1457f9504a99d23dae0" +dependencies = [ + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "gimli", + "loupe", + "more-asserts", + "rayon", + "smallvec", + "target-lexicon", + "tracing", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-derive" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00e50405cc2a2f74ff574584710a5f2c1d5c93744acce2ca0866084739284b51" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "wasmer-engine" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f98f010978c244db431b392aeab0661df7ea0822343334f8f2a920763548e45" +dependencies = [ + "backtrace", + "enumset", + "lazy_static", + "loupe", + "memmap2", + "more-asserts", + "rustc-demangle", + "serde", + "serde_bytes", + "target-lexicon", + "thiserror", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-types", + "wasmer-vm", +] + +[[package]] +name = "wasmer-engine-dylib" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0358af9c154724587731175553805648d9acb8f6657880d165e378672b7e53" +dependencies = [ + "cfg-if", + "enum-iterator", + "enumset", + "leb128", + "libloading", + "loupe", + "object", + "rkyv", + "serde", + "tempfile", + "tracing", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-engine", + "wasmer-object", + "wasmer-types", + "wasmer-vm", + "which", +] + +[[package]] +name = "wasmer-engine-universal" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "440dc3d93c9ca47865a4f4edd037ea81bf983b5796b59b3d712d844b32dbef15" +dependencies = [ + "cfg-if", + "enumset", + "leb128", + "loupe", + "region", + "rkyv", + "wasmer-compiler", + "wasmer-engine", + "wasmer-engine-universal-artifact", + "wasmer-types", + "wasmer-vm", + "winapi", +] + +[[package]] +name = "wasmer-engine-universal-artifact" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f1db3f54152657eb6e86c44b66525ff7801dad8328fe677da48dd06af9ad41" +dependencies = [ + "enum-iterator", + "enumset", + "loupe", + "rkyv", + "thiserror", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-object" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d831335ff3a44ecf451303f6f891175c642488036b92ceceb24ac8623a8fa8b" +dependencies = [ + "object", + "thiserror", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-types" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39df01ea05dc0a9bab67e054c7cb01521e53b35a7bb90bd02eca564ed0b2667f" +dependencies = [ + "backtrace", + "enum-iterator", + "indexmap", + "loupe", + "more-asserts", + "rkyv", + "serde", + "thiserror", +] + +[[package]] +name = "wasmer-vm" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30d965fa61f4dc4cdb35a54daaf7ecec3563fbb94154a6c35433f879466247dd" +dependencies = [ + "backtrace", + "cc", + "cfg-if", + "corosensei", + "enum-iterator", + "indexmap", + "lazy_static", + "libc", + "loupe", + "mach", + "memoffset", + "more-asserts", + "region", + "rkyv", + "scopeguard", + "serde", + "thiserror", + "wasmer-artifact", + "wasmer-types", + "winapi", +] + +[[package]] +name = "wasmparser" +version = "0.83.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" + +[[package]] +name = "wast" +version = "42.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "badcb03f976f983ff0daf294da9697be659442f61e6b0942bb37a2b6cbfe9dd4" +dependencies = [ + "leb128", + "memchr", + "unicode-width", + "wasm-encoder", +] + +[[package]] +name = "wat" +version = "1.0.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b92f20b742ac527066c8414bc0637352661b68cab07ef42586cefaba71c965cf" +dependencies = [ + "wast", +] + +[[package]] +name = "which" +version = "4.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c4fb54e6113b6a8772ee41c3404fb0301ac79604489467e0a9ce1f3e97c24ae" +dependencies = [ + "either", + "lazy_static", + "libc", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43dbb096663629518eb1dfa72d80243ca5a6aca764cae62a2df70af760a9be75" +dependencies = [ + "windows_aarch64_msvc 0.33.0", + "windows_i686_gnu 0.33.0", + "windows_i686_msvc 0.33.0", + "windows_x86_64_gnu 0.33.0", + "windows_x86_64_msvc 0.33.0", +] + +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc 0.42.0", + "windows_i686_gnu 0.42.0", + "windows_i686_msvc 0.42.0", + "windows_x86_64_gnu 0.42.0", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc 0.42.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd761fd3eb9ab8cc1ed81e56e567f02dd82c4c837e48ac3b2181b9ffc5060807" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" + +[[package]] +name = "windows_i686_gnu" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab0cf703a96bab2dc0c02c0fa748491294bf9b7feb27e1f4f96340f208ada0e" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" + +[[package]] +name = "windows_i686_msvc" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cfdbe89cc9ad7ce618ba34abc34bbb6c36d99e96cae2245b7943cd75ee773d0" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4dd9b0c0e9ece7bb22e84d70d01b71c6d6248b81a3c60d11869451b4cb24784" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff1e4aa646495048ec7f3ffddc411e1d829c026a2ec62b39da15c1055e406eaa" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" diff --git a/bootstrap-languages/direct-message-language/hc-dna/Cargo.toml b/bootstrap-languages/direct-message-language/hc-dna/Cargo.toml new file mode 100644 index 000000000..f771438f7 --- /dev/null +++ b/bootstrap-languages/direct-message-language/hc-dna/Cargo.toml @@ -0,0 +1,11 @@ +[workspace] +members = [ + "zomes/direct-message", + "zomes/direct-message-integrity" +] + +[profile.dev] +opt-level = "z" + +[profile.release] +opt-level = "z" \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/build.ps1 b/bootstrap-languages/direct-message-language/hc-dna/build.ps1 new file mode 100644 index 000000000..e7bcb228e --- /dev/null +++ b/bootstrap-languages/direct-message-language/hc-dna/build.ps1 @@ -0,0 +1,3 @@ +$env:CARGO_TARGET_DIR = target +cargo build --release --target wasm32-unknown-unknown +hc dna pack workdir \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/build.sh b/bootstrap-languages/direct-message-language/hc-dna/build.sh new file mode 100755 index 000000000..a089cc772 --- /dev/null +++ b/bootstrap-languages/direct-message-language/hc-dna/build.sh @@ -0,0 +1,3 @@ +#!/bin/bash +CARGO_TARGET_DIR=target cargo build --release --target wasm32-unknown-unknown +hc dna pack workdir \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/default.nix b/bootstrap-languages/direct-message-language/hc-dna/default.nix new file mode 100644 index 000000000..33f97a914 --- /dev/null +++ b/bootstrap-languages/direct-message-language/hc-dna/default.nix @@ -0,0 +1,14 @@ +let + holonixPath = (import ./nix/sources.nix).holonix; # points to the current state of the Holochain repository + holonix = import (holonixPath) { + holochainVersionId = "main"; + }; + nixpkgs = holonix.pkgs; +in nixpkgs.mkShell { + inputsFrom = [ holonix.main ]; + packages = with nixpkgs; [ + binaryen + nodejs-16_x + swiProlog + ]; +} \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/holochain_version.nix b/bootstrap-languages/direct-message-language/hc-dna/holochain_version.nix new file mode 100644 index 000000000..9f44831c8 --- /dev/null +++ b/bootstrap-languages/direct-message-language/hc-dna/holochain_version.nix @@ -0,0 +1,20 @@ +# This file was generated with the following command: +# update-holochain-versions --git-src=revision:holochain-0.0.161 --lair-version-req=~0.2 --output-file=holochain_version.nix +# For usage instructions please visit https://github.com/holochain/holochain-nixpkgs/#readme + +{ + url = "https://github.com/holochain/holochain"; + rev = "holochain-0.1.0"; + sha256 = "sha256-xp1DTVrhGZc1CZr6LvBFZZhoOUbUPpg3/mWOj4DDXjI="; + cargoLock = { + outputHashes = { + }; + }; + + binsFilter = [ + "holochain" + "hc" + "kitsune-p2p-proxy" + "kitsune-p2p-tx2-proxy" + ]; +} diff --git a/bootstrap-languages/direct-message-language/hc-dna/nix/sources.json b/bootstrap-languages/direct-message-language/hc-dna/nix/sources.json new file mode 100644 index 000000000..451563814 --- /dev/null +++ b/bootstrap-languages/direct-message-language/hc-dna/nix/sources.json @@ -0,0 +1,14 @@ +{ + "holonix": { + "branch": "main", + "description": "NixOS && Holochain", + "homepage": "", + "owner": "holochain", + "repo": "holonix", + "rev": "241c1754a37881f51f2f33921a2777b38c34fa24", + "sha256": "sha256:0zaa477kyzpsrcc3nk1jznp4gchwm4pk5p37pwkq6mjhiizcxshy", + "type": "tarball", + "url": "https://github.com/holochain/holonix/archive/241c1754a37881f51f2f33921a2777b38c34fa24.tar.gz", + "url_template": "https://github.com///archive/.tar.gz" + } +} \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/nix/sources.nix b/bootstrap-languages/direct-message-language/hc-dna/nix/sources.nix new file mode 100644 index 000000000..fe2468872 --- /dev/null +++ b/bootstrap-languages/direct-message-language/hc-dna/nix/sources.nix @@ -0,0 +1,174 @@ +# This file has been generated by Niv. + +let + + # + # The fetchers. fetch_ fetches specs of type . + # + + fetch_file = pkgs: name: spec: + let + name' = sanitizeName name + "-src"; + in + if spec.builtin or true then + builtins_fetchurl { inherit (spec) url sha256; name = name'; } + else + pkgs.fetchurl { inherit (spec) url sha256; name = name'; }; + + fetch_tarball = pkgs: name: spec: + let + name' = sanitizeName name + "-src"; + in + if spec.builtin or true then + builtins_fetchTarball { name = name'; inherit (spec) url sha256; } + else + pkgs.fetchzip { name = name'; inherit (spec) url sha256; }; + + fetch_git = name: spec: + let + ref = + if spec ? ref then spec.ref else + if spec ? branch then "refs/heads/${spec.branch}" else + if spec ? tag then "refs/tags/${spec.tag}" else + abort "In git source '${name}': Please specify `ref`, `tag` or `branch`!"; + in + builtins.fetchGit { url = spec.repo; inherit (spec) rev; inherit ref; }; + + fetch_local = spec: spec.path; + + fetch_builtin-tarball = name: throw + ''[${name}] The niv type "builtin-tarball" is deprecated. You should instead use `builtin = true`. + $ niv modify ${name} -a type=tarball -a builtin=true''; + + fetch_builtin-url = name: throw + ''[${name}] The niv type "builtin-url" will soon be deprecated. You should instead use `builtin = true`. + $ niv modify ${name} -a type=file -a builtin=true''; + + # + # Various helpers + # + + # https://github.com/NixOS/nixpkgs/pull/83241/files#diff-c6f540a4f3bfa4b0e8b6bafd4cd54e8bR695 + sanitizeName = name: + ( + concatMapStrings (s: if builtins.isList s then "-" else s) + ( + builtins.split "[^[:alnum:]+._?=-]+" + ((x: builtins.elemAt (builtins.match "\\.*(.*)" x) 0) name) + ) + ); + + # The set of packages used when specs are fetched using non-builtins. + mkPkgs = sources: system: + let + sourcesNixpkgs = + import (builtins_fetchTarball { inherit (sources.nixpkgs) url sha256; }) { inherit system; }; + hasNixpkgsPath = builtins.any (x: x.prefix == "nixpkgs") builtins.nixPath; + hasThisAsNixpkgsPath = == ./.; + in + if builtins.hasAttr "nixpkgs" sources + then sourcesNixpkgs + else if hasNixpkgsPath && ! hasThisAsNixpkgsPath then + import {} + else + abort + '' + Please specify either (through -I or NIX_PATH=nixpkgs=...) or + add a package called "nixpkgs" to your sources.json. + ''; + + # The actual fetching function. + fetch = pkgs: name: spec: + + if ! builtins.hasAttr "type" spec then + abort "ERROR: niv spec ${name} does not have a 'type' attribute" + else if spec.type == "file" then fetch_file pkgs name spec + else if spec.type == "tarball" then fetch_tarball pkgs name spec + else if spec.type == "git" then fetch_git name spec + else if spec.type == "local" then fetch_local spec + else if spec.type == "builtin-tarball" then fetch_builtin-tarball name + else if spec.type == "builtin-url" then fetch_builtin-url name + else + abort "ERROR: niv spec ${name} has unknown type ${builtins.toJSON spec.type}"; + + # If the environment variable NIV_OVERRIDE_${name} is set, then use + # the path directly as opposed to the fetched source. + replace = name: drv: + let + saneName = stringAsChars (c: if isNull (builtins.match "[a-zA-Z0-9]" c) then "_" else c) name; + ersatz = builtins.getEnv "NIV_OVERRIDE_${saneName}"; + in + if ersatz == "" then drv else + # this turns the string into an actual Nix path (for both absolute and + # relative paths) + if builtins.substring 0 1 ersatz == "/" then /. + ersatz else /. + builtins.getEnv "PWD" + "/${ersatz}"; + + # Ports of functions for older nix versions + + # a Nix version of mapAttrs if the built-in doesn't exist + mapAttrs = builtins.mapAttrs or ( + f: set: with builtins; + listToAttrs (map (attr: { name = attr; value = f attr set.${attr}; }) (attrNames set)) + ); + + # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295 + range = first: last: if first > last then [] else builtins.genList (n: first + n) (last - first + 1); + + # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L257 + stringToCharacters = s: map (p: builtins.substring p 1 s) (range 0 (builtins.stringLength s - 1)); + + # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269 + stringAsChars = f: s: concatStrings (map f (stringToCharacters s)); + concatMapStrings = f: list: concatStrings (map f list); + concatStrings = builtins.concatStringsSep ""; + + # https://github.com/NixOS/nixpkgs/blob/8a9f58a375c401b96da862d969f66429def1d118/lib/attrsets.nix#L331 + optionalAttrs = cond: as: if cond then as else {}; + + # fetchTarball version that is compatible between all the versions of Nix + builtins_fetchTarball = { url, name ? null, sha256 }@attrs: + let + inherit (builtins) lessThan nixVersion fetchTarball; + in + if lessThan nixVersion "1.12" then + fetchTarball ({ inherit url; } // (optionalAttrs (!isNull name) { inherit name; })) + else + fetchTarball attrs; + + # fetchurl version that is compatible between all the versions of Nix + builtins_fetchurl = { url, name ? null, sha256 }@attrs: + let + inherit (builtins) lessThan nixVersion fetchurl; + in + if lessThan nixVersion "1.12" then + fetchurl ({ inherit url; } // (optionalAttrs (!isNull name) { inherit name; })) + else + fetchurl attrs; + + # Create the final "sources" from the config + mkSources = config: + mapAttrs ( + name: spec: + if builtins.hasAttr "outPath" spec + then abort + "The values in sources.json should not have an 'outPath' attribute" + else + spec // { outPath = replace name (fetch config.pkgs name spec); } + ) config.sources; + + # The "config" used by the fetchers + mkConfig = + { sourcesFile ? if builtins.pathExists ./sources.json then ./sources.json else null + , sources ? if isNull sourcesFile then {} else builtins.fromJSON (builtins.readFile sourcesFile) + , system ? builtins.currentSystem + , pkgs ? mkPkgs sources system + }: rec { + # The sources, i.e. the attribute set of spec name to spec + inherit sources; + + # The "pkgs" (evaluated nixpkgs) to use for e.g. non-builtin fetchers + inherit pkgs; + }; + +in +mkSources (mkConfig {}) // { __functor = _: settings: mkSources (mkConfig settings); } \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/tests/package.json b/bootstrap-languages/direct-message-language/hc-dna/tests/package.json new file mode 100644 index 000000000..b283ac490 --- /dev/null +++ b/bootstrap-languages/direct-message-language/hc-dna/tests/package.json @@ -0,0 +1,30 @@ +{ + "name": "demo-1", + "version": "0.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "TRYORAMA_LOG_LEVEL=debug WASM_LOG=debug,wasmer_compiler_cranelift=error,holochain::conductor::manager=warn,holochain::core::workflow::publish_dht_ops_workflow::publish_query=warn,publish_dht_ops_workflow=error,kitsune_p2p_types::metrics=error,kitsune_p2p::gossip::sharded_gossip=error,wasm_trace=debug,app_validation_workflow=error RUST_BACKTRACE=1 node --loader ts-node/esm --experimental-specifier-resolution=node src/index.ts", + "build-test": "cd ..; ./build.sh; cd tests; yarn run test" + }, + "author": "", + "license": "ISC", + "dependencies": { + "@holochain/client": "0.12.0", + "@holochain/tryorama": "0.11.0", + "@types/lodash": "^4.14.158", + "@types/node": "^18.0.0", + "blake2b": "^2.1.3", + "faker": "5.5.3", + "lodash": "^4.17.19", + "tape-promise": "^4.0.0", + "ts-node": "^10.8.0", + "typescript": "^4.2.4" + }, + "devDependencies": { + "@types/faker": "^5.5.3", + "@types/tape-promise": "^4.0.1", + "tape": "^5.5.3" + }, + "type": "module" +} diff --git a/bootstrap-languages/direct-message-language/hc-dna/tests/src/index.ts b/bootstrap-languages/direct-message-language/hc-dna/tests/src/index.ts new file mode 100644 index 000000000..56ba71b28 --- /dev/null +++ b/bootstrap-languages/direct-message-language/hc-dna/tests/src/index.ts @@ -0,0 +1,246 @@ +import { Scenario, runScenario, Dna } from '@holochain/tryorama' +import path from 'path' +import test from "tape-promise/tape"; +import { resolve } from "path"; + +const dnas: Dna[] = [{ source: {path: path.join("../workdir/direct-message-language.dna") } }]; + +//@ts-ignore +export const sleep = ms => new Promise(r => setTimeout(r, ms)) + +const ZOME = "direct-message" + +//@ts-ignore +test("send direct message", async (t) => { + await runScenario(async (scenario: Scenario) => { + let alice_last_signal + const [alice, bob] = await scenario.addPlayersWithApps([ + { + appBundleSource:{ + bundle: { + manifest: { + manifest_version: "1", + name: ZOME, + roles: [{ + name: "main", + dna: { + //@ts-ignore + path: resolve(dnas[0].source.path) + } + }] + }, + resources: {} + } + } + }, + { + appBundleSource:{ + bundle: { + manifest: { + manifest_version: "1", + name: ZOME, + roles: [{ + name: "main", + dna: { + //@ts-ignore + path: resolve(dnas[0].source.path) + } + }] + }, + resources: {} + } + } + }]); + alice.conductor.appWs().on("signal", (signal) => { + let payload = signal.payload + try { + let cropped = signal.payload.toString().substring(7) + console.log("CROPPED:", cropped) + let parsed = JSON.parse(cropped) + console.log("PARSED:", parsed) + payload = parsed + } catch(e) { + //console.error(e) + } + console.log("SIGNAL @ALICE:", payload) + alice_last_signal = payload + }); + + await scenario.shareAllAgents(); + await sleep(1000); + + const alice_agent_pubkey = alice.agentPubKey + await alice.cells[0].callZome({ + zome_name: ZOME, + fn_name: "set_test_recipient", + payload: alice_agent_pubkey + }); + await bob.cells[0].callZome({ + zome_name: ZOME, + fn_name: "set_test_recipient", + payload: alice_agent_pubkey + }); + const stored_recipient = await bob.cells[0].callZome({ + zome_name: ZOME, + fn_name: "get_test_recipient" + }); + //@ts-ignore + t.equal(stored_recipient.toString(), alice_agent_pubkey.toString()) + + // ---------------------------------------------- + // ------------- Setup done --------------------- + // ---------------------------------------------- + + // ------------ + // Status: + // ------------ + + const empty_status = await alice.cells[0].callZome({ + zome_name: ZOME, + fn_name: "get_status" + }); + console.log("EMPTY status:", empty_status) + + const status = { + author: "did:test:test", + timestamp: new Date().toISOString(), + data: { + links: [], + }, + proof: { + signature: "asdfasdfasdf", + key: "did:test:test#primary" + } + } + + const link = { + author: "did:test:test", + timestamp: new Date().toISOString(), + data: { + source: "did:test:test", + target: "literal://string:online", + predicate: null, + }, + proof: { + signature: "asdfasdfasdf", + key: "did:test:test#primary" + } + } + //@ts-ignore + status.data.links.push(link) + + + await alice.cells[0].callZome({ + zome_name: ZOME, + fn_name: "set_status", + payload: status + }) + //@ts-ignore + t.deepEqual(await alice.cells[0].callZome({ + zome_name: ZOME, + fn_name: "get_status" + }), status) + //@ts-ignore + t.deepEqual(await bob.cells[0].callZome({ + zome_name: ZOME, + fn_name: "get_status" + }), status) + + // ------------ + // P2P Message: + // ------------ + + const message1 = { + author: "did:test:test", + timestamp: new Date().toISOString(), + data: { + links: [], + }, + proof: { + signature: "asdfasdfasdf", + key: "did:test:test#primary" + } + } + + await bob.cells[0].callZome({ + zome_name: ZOME, + fn_name: "send_p2p", + payload: message1 + }); + await sleep(1000) + + t.deepEqual(alice_last_signal, message1) + + let inbox = await alice.cells[0].callZome({ + zome_name: ZOME, + fn_name: "inbox" + }) + //@ts-ignore + t.equal(inbox.length, 1) + //@ts-ignore + t.deepEqual(inbox[0], message1) + + // -------------- + // Inbox Message: + // -------------- + + const message2 = JSON.parse(JSON.stringify(message1)) + message2.data.links.push(link) + + console.log("send_inbox:", await bob.cells[0].callZome({ + zome_name: ZOME, + fn_name: "send_inbox", + payload: message2 + })) + + await sleep(1000) + + inbox = await alice.cells[0].callZome({ + zome_name: ZOME, + fn_name: "inbox" + }) + //@ts-ignore + t.equal(inbox.length, 1) + //@ts-ignore + t.deepEqual(inbox[0], message1) + + let bobFetchError + try { + await bob.cells[0].callZome({ + zome_name: ZOME, + fn_name: "fetch_inbox" + }) + } catch(e) { + bobFetchError = e + } + //@ts-ignore + t.equal(bobFetchError.data.data, 'Wasm runtime error while working with Ribosome: RuntimeError: WasmError { file: "zomes/direct-message/src/lib.rs", line: 237, error: Guest("Only recipient can fetch the inbox") }') + + console.log("fetch_inbox Alice:", await alice.cells[0].callZome({ + zome_name: ZOME, + fn_name: "fetch_inbox" + })) + + // -------------- + // Inbox filter: + // -------------- + + inbox = await alice.cells[0].callZome({ + zome_name: ZOME, + fn_name: "inbox", + payload: "did:test:test" + }) + //@ts-ignore + t.equal(inbox.length, 2) + + inbox = await alice.cells[0].callZome({ + zome_name: ZOME, + fn_name: "inbox", + payload: "did:test:other" + }) + //@ts-ignore + t.equal(inbox.length, 0) + + await scenario.cleanUp(); + }) +}); \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/tests/tsconfig.json b/bootstrap-languages/direct-message-language/hc-dna/tests/tsconfig.json new file mode 100644 index 000000000..ef2161df4 --- /dev/null +++ b/bootstrap-languages/direct-message-language/hc-dna/tests/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "module": "ESNext", + "target": "ESNext", + "moduleResolution": "Node", + "sourceMap": true, + "declaration": true, + "forceConsistentCasingInFileNames": true, + "allowSyntheticDefaultImports": true, + "skipLibCheck": true, + "strict": true + }, + "include": [ + "src/**/*.ts" + ] +} \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/tests/yarn.lock b/bootstrap-languages/direct-message-language/hc-dna/tests/yarn.lock new file mode 100644 index 000000000..3541ebec7 --- /dev/null +++ b/bootstrap-languages/direct-message-language/hc-dna/tests/yarn.lock @@ -0,0 +1,1104 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@colors/colors@1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@dabh/diagnostics@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz#7f7e97ee9a725dffc7808d93668cc984e1dc477a" + integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== + dependencies: + colorspace "1.1.x" + enabled "2.0.x" + kuler "^2.0.0" + +"@holochain/client@0.12.0": + version "0.12.0" + resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.12.0.tgz#1c9bdc082160badd1439962e8d5f30da6c4089a3" + integrity sha512-pvrB6Gdc6488iR3VZXoq5QKzoAPTGi0y69Ktrtgr/IZEvtSSHBqHeMhyEjXCa7iS8b1gXsL/HAvq47rs8mu50A== + dependencies: + "@holochain/serialization" "^0.1.0-beta-rc.3" + "@msgpack/msgpack" "^2.7.2" + "@tauri-apps/api" "^1.2.0" + emittery "^1.0.1" + isomorphic-ws "^5.0.0" + js-base64 "^3.7.3" + lodash-es "^4.17.21" + tweetnacl "^1.0.3" + +"@holochain/client@^0.11.16": + version "0.11.16" + resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.11.16.tgz#3b2172cc5b0976d4bed01d067c2cebb28d644e0e" + integrity sha512-uX1/mRnNZHc0y88bkGJrfp6/mfh1UGFS+g+wvn+E69spzPQMxAkjo7FmZ6nmZfxPoYCoxKjVJyKmvswPUP1Xfw== + dependencies: + "@holochain/serialization" "^0.1.0-beta-rc.3" + "@msgpack/msgpack" "^2.7.2" + "@tauri-apps/api" "^1.2.0" + emittery "^1.0.1" + isomorphic-ws "^5.0.0" + js-base64 "^3.7.3" + lodash-es "^4.17.21" + tweetnacl "^1.0.3" + +"@holochain/serialization@^0.1.0-beta-rc.3": + version "0.1.0-beta-rc.3" + resolved "https://registry.yarnpkg.com/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz#787a785fa48e00f2d168c6d4b45a233c4800cccb" + integrity sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw== + +"@holochain/tryorama@0.11.0": + version "0.11.0" + resolved "https://registry.yarnpkg.com/@holochain/tryorama/-/tryorama-0.11.0.tgz#55505b19e1d3bc9ca47cf42deabd35df94cab6bb" + integrity sha512-P2MNn//UulkYCo64j69HfhMfrWGtDrI/A1QEuEZYPUyW8fNg3iE5wh2ssHnu0siw0WRjB6H/PBdadNZz8hemcw== + dependencies: + "@holochain/client" "^0.11.16" + get-port "^6.1.2" + lodash "^4.17.21" + uuid "^8.3.2" + winston "^3.8.2" + ws "^8.11.0" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz#2203b118c157721addfe69d47b70465463066d78" + integrity sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.14" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" + integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@msgpack/msgpack@^2.7.2": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" + integrity sha512-h9u4u/jiIRKbq25PM+zymTyW6bhTzELvOoUd+AvYriWOAKpLGnIamaET3pnHYoI5iYphAHBI4ayx0MehR+VVPQ== + +"@tauri-apps/api@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@tauri-apps/api/-/api-1.2.0.tgz#1f196b3e012971227f41b98214c846430a4eb477" + integrity sha512-lsI54KI6HGf7VImuf/T9pnoejfgkNoXveP14pVV7XarrQ46rOejIVJLFqHI9sRReJMGdh2YuCoI3cc/yCWCsrw== + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + +"@types/faker@^5.5.3": + version "5.5.9" + resolved "https://registry.yarnpkg.com/@types/faker/-/faker-5.5.9.tgz#588ede92186dc557bff8341d294335d50d255f0c" + integrity sha512-uCx6mP3UY5SIO14XlspxsGjgaemrxpssJI0Ol+GfhxtcKpv9pgRZYsS4eeKeHVLje6Qtc8lGszuBI461+gVZBA== + +"@types/lodash@^4.14.158": + version "4.14.191" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa" + integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== + +"@types/node@*": + version "18.11.11" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.11.tgz#1d455ac0211549a8409d3cdb371cd55cc971e8dc" + integrity sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g== + +"@types/node@^14.0.14": + version "14.18.34" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.34.tgz#cd2e6fa0dbfb08a62582a7b967558e73c32061ec" + integrity sha512-hcU9AIQVHmPnmjRK+XUUYlILlr9pQrsqSrwov/JK1pnf3GTQowVBhx54FbvM0AU/VXGH4i3+vgXS5EguR7fysA== + +"@types/tape-promise@^4.0.1": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@types/tape-promise/-/tape-promise-4.0.1.tgz#a72fa8d2d5351704d651b174931ecc8f996e68ca" + integrity sha512-1yBeq9y0EmJ2RpxfXMPrFeD3yMetBapY9zArTexp/wCRdBToJac/y//rtcZZjmiArgodTqz0RrK0VxxySoKyVg== + dependencies: + "@types/tape" "*" + +"@types/tape@*": + version "4.13.2" + resolved "https://registry.yarnpkg.com/@types/tape/-/tape-4.13.2.tgz#77215c065b1c7840da3ca5e061337bb4c7258122" + integrity sha512-V1ez/RtYRGN9cNYApw5xf27DpMkTB0033X6a2i3KUmKhSojBfbWN0i3EgZxboUG96WJLHLdOyZ01aiZwVW5aSA== + dependencies: + "@types/node" "*" + +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@^8.4.1: + version "8.8.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.1.tgz#0a3f9cbecc4ec3bea6f0a80b66ae8dd2da250b73" + integrity sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA== + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +array.prototype.every@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/array.prototype.every/-/array.prototype.every-1.1.4.tgz#2762daecd9cec87cb63f3ca6be576817074a684e" + integrity sha512-Aui35iRZk1HHLRAyF7QP0KAnOnduaQ6fo6k1NVWfRc0xTs2AZ70ytlXvOmkC6Di4JmUs2Wv3DYzGtCQFSk5uGg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + is-string "^1.0.7" + +async@^3.2.3: + version "3.2.4" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + +available-typed-arrays@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== + +b4a@^1.0.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/b4a/-/b4a-1.6.1.tgz#9effac93a469a868d024e16fd77162c653544cbd" + integrity sha512-AsKjNhz72yxteo/0EtQEiwkMUgk/tGmycXlbG4g3Ard2/ULtNLUykGOkeK0egmN27h0xMAhb76jYccW+XTBExA== + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +blake2b-wasm@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz#9115649111edbbd87eb24ce7c04b427e4e2be5be" + integrity sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w== + dependencies: + b4a "^1.0.1" + nanoassert "^2.0.0" + +blake2b@^2.1.3: + version "2.1.4" + resolved "https://registry.yarnpkg.com/blake2b/-/blake2b-2.1.4.tgz#817d278526ddb4cd673bfb1af16d1ad61e393ba3" + integrity sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A== + dependencies: + blake2b-wasm "^2.4.0" + nanoassert "^2.0.0" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + +color-convert@^1.9.3: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.6.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.1.3: + version "3.2.1" + resolved "https://registry.yarnpkg.com/color/-/color-3.2.1.tgz#3544dc198caf4490c3ecc9a790b54fe9ff45e164" + integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== + dependencies: + color-convert "^1.9.3" + color-string "^1.6.0" + +colorspace@1.1.x: + version "1.1.4" + resolved "https://registry.yarnpkg.com/colorspace/-/colorspace-1.1.4.tgz#8d442d1186152f60453bf8070cd66eb364e59243" + integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== + dependencies: + color "^3.1.3" + text-hex "1.0.x" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +deep-equal@^2.0.5: + version "2.1.0" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.1.0.tgz#5ba60402cf44ab92c2c07f3f3312c3d857a0e1dd" + integrity sha512-2pxgvWu3Alv1PoWEyVg7HS8YhGlUFUV7N5oOvfL6d+7xAmLSemMwv/c8Zv/i9KFzxV5Kt5CAvQc70fLwVuf4UA== + dependencies: + call-bind "^1.0.2" + es-get-iterator "^1.1.2" + get-intrinsic "^1.1.3" + is-arguments "^1.1.1" + is-date-object "^1.0.5" + is-regex "^1.1.4" + isarray "^2.0.5" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + side-channel "^1.0.4" + which-boxed-primitive "^1.0.2" + which-collection "^1.0.1" + which-typed-array "^1.1.8" + +define-properties@^1.1.3, define-properties@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.4.tgz#0b14d7bd7fbeb2f3572c3a7eda80ea5d57fb05b1" + integrity sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +defined@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.1.tgz#c0b9db27bfaffd95d6f61399419b893df0f91ebf" + integrity sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dotignore@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dotignore/-/dotignore-0.1.2.tgz#f942f2200d28c3a76fbdd6f0ee9f3257c8a2e905" + integrity sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw== + dependencies: + minimatch "^3.0.4" + +emittery@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-1.0.1.tgz#e0cf36e2d7eef94dbd025969f642d57ae50a56cd" + integrity sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ== + +enabled@2.0.x: + version "2.0.0" + resolved "https://registry.yarnpkg.com/enabled/-/enabled-2.0.0.tgz#f9dd92ec2d6f4bbc0d5d1e64e21d61cd4665e7c2" + integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== + +es-abstract@^1.19.0, es-abstract@^1.20.4: + version "1.20.4" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.20.4.tgz#1d103f9f8d78d4cf0713edcd6d0ed1a46eed5861" + integrity sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA== + dependencies: + call-bind "^1.0.2" + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + function.prototype.name "^1.1.5" + get-intrinsic "^1.1.3" + get-symbol-description "^1.0.0" + has "^1.0.3" + has-property-descriptors "^1.0.0" + has-symbols "^1.0.3" + internal-slot "^1.0.3" + is-callable "^1.2.7" + is-negative-zero "^2.0.2" + is-regex "^1.1.4" + is-shared-array-buffer "^1.0.2" + is-string "^1.0.7" + is-weakref "^1.0.2" + object-inspect "^1.12.2" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.4.3" + safe-regex-test "^1.0.0" + string.prototype.trimend "^1.0.5" + string.prototype.trimstart "^1.0.5" + unbox-primitive "^1.0.2" + +es-get-iterator@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/es-get-iterator/-/es-get-iterator-1.1.2.tgz#9234c54aba713486d7ebde0220864af5e2b283f7" + integrity sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.0" + has-symbols "^1.0.1" + is-arguments "^1.1.0" + is-map "^2.0.2" + is-set "^2.0.2" + is-string "^1.0.5" + isarray "^2.0.5" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +faker@5.5.3: + version "5.5.3" + resolved "https://registry.yarnpkg.com/faker/-/faker-5.5.3.tgz#c57974ee484431b25205c2c8dc09fda861e51e0e" + integrity sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g== + +fecha@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/fecha/-/fecha-4.2.3.tgz#4d9ccdbc61e8629b259fdca67e65891448d569fd" + integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== + +fn.name@1.x.x: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fn.name/-/fn.name-1.1.0.tgz#26cad8017967aea8731bc42961d04a3d5988accc" + integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== + +for-each@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== + dependencies: + is-callable "^1.1.3" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +function.prototype.name@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.5.tgz#cce0505fe1ffb80503e6f9e46cc64e46a12a9621" + integrity sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + es-abstract "^1.19.0" + functions-have-names "^1.2.2" + +functions-have-names@^1.2.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.3.tgz#063c84329ad93e83893c7f4f243ef63ffa351385" + integrity sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + +get-port@^6.1.2: + version "6.1.2" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-6.1.2.tgz#c1228abb67ba0e17fb346da33b15187833b9c08a" + integrity sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw== + +get-symbol-description@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +glob@^7.2.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +gopd@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== + dependencies: + get-intrinsic "^1.1.3" + +has-bigints@^1.0.1, has-bigints@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== + +has-dynamic-import@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-dynamic-import/-/has-dynamic-import-2.0.1.tgz#9bca87846aa264f2ad224fcd014946f5e5182f52" + integrity sha512-X3fbtsZmwb6W7fJGR9o7x65fZoodygCrZ3TVycvghP62yYQfS0t4RS0Qcz+j5tQYUKeSWS09tHkWW6WhFV3XhQ== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-symbols@^1.0.1, has-symbols@^1.0.2, has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@^2.0.3, inherits@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== + dependencies: + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" + +is-arguments@^1.1.0, is-arguments@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== + +is-core-module@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.11.0.tgz#ad4cb3e3863e814523c96f3f58d26cc570ff0144" + integrity sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw== + dependencies: + has "^1.0.3" + +is-date-object@^1.0.1, is-date-object@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" + +is-map@^2.0.1, is-map@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-map/-/is-map-2.0.2.tgz#00922db8c9bf73e81b7a335827bc2a43f2b91127" + integrity sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg== + +is-negative-zero@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + +is-number-object@^1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== + dependencies: + has-tostringtag "^1.0.0" + +is-promise@^2.1.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.2.2.tgz#39ab959ccbf9a774cf079f7b40c7a26f763135f1" + integrity sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ== + +is-regex@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + +is-set@^2.0.1, is-set@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-set/-/is-set-2.0.2.tgz#90755fa4c2562dc1c5d4024760d6119b94ca18ec" + integrity sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g== + +is-shared-array-buffer@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== + dependencies: + call-bind "^1.0.2" + +is-stream@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== + +is-string@^1.0.5, is-string@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" + +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== + dependencies: + has-symbols "^1.0.2" + +is-typed-array@^1.1.10: + version "1.1.10" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.10.tgz#36a5b5cb4189b575d1a3e4b08536bfb485801e3f" + integrity sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + +is-weakmap@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-weakmap/-/is-weakmap-2.0.1.tgz#5008b59bdc43b698201d18f62b37b2ca243e8cf2" + integrity sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA== + +is-weakref@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== + dependencies: + call-bind "^1.0.2" + +is-weakset@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/is-weakset/-/is-weakset-2.0.2.tgz#4569d67a747a1ce5a994dfd4ef6dcea76e7c0a1d" + integrity sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.1" + +isarray@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== + +isomorphic-ws@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz#e5529148912ecb9b451b46ed44d53dae1ce04bbf" + integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== + +js-base64@^3.7.3: + version "3.7.4" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.4.tgz#af95b20f23efc8034afd2d1cc5b9d0adf7419037" + integrity sha512-wpM/wi20Tl+3ifTyi0RdDckS4YTD4Lf953mBRrpG8547T7hInHNPEj8+ck4gB8VDcGyeAWFK++Wb/fU1BeavKQ== + +kuler@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/kuler/-/kuler-2.0.0.tgz#e2c570a3800388fb44407e851531c1d670b061b3" + integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== + +lodash-es@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" + integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== + +lodash@^4.17.19, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +logform@^2.3.2, logform@^2.4.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/logform/-/logform-2.4.2.tgz#a617983ac0334d0c3b942c34945380062795b47c" + integrity sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw== + dependencies: + "@colors/colors" "1.5.0" + fecha "^4.2.0" + ms "^2.1.1" + safe-stable-stringify "^2.3.1" + triple-beam "^1.3.0" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.6: + version "1.2.7" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" + integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== + +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +nanoassert@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/nanoassert/-/nanoassert-2.0.0.tgz#a05f86de6c7a51618038a620f88878ed1e490c09" + integrity sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA== + +object-inspect@^1.12.2, object-inspect@^1.9.0: + version "1.12.2" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.2.tgz#c0641f26394532f28ab8d796ab954e43c009a8ea" + integrity sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ== + +object-is@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object.assign@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + has-symbols "^1.0.3" + object-keys "^1.1.1" + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +one-time@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/one-time/-/one-time-1.0.0.tgz#e06bc174aed214ed58edede573b433bbf827cb45" + integrity sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g== + dependencies: + fn.name "1.x.x" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ== + dependencies: + mimic-fn "^1.0.0" + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +readable-stream@^3.4.0, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +regexp.prototype.flags@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz#87cab30f80f66660181a3bb7bf5981a872b367ac" + integrity sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.3" + functions-have-names "^1.2.2" + +resolve@^2.0.0-next.3: + version "2.0.0-next.4" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-2.0.0-next.4.tgz#3d37a113d6429f496ec4752d2a2e58efb1fd4660" + integrity sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ== + dependencies: + is-core-module "^2.9.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +resumer@^0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" + integrity sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w== + dependencies: + through "~2.3.4" + +safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-regex-test@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.1.3" + is-regex "^1.1.4" + +safe-stable-stringify@^2.3.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/safe-stable-stringify/-/safe-stable-stringify-2.4.1.tgz#34694bd8a30575b7f94792aa51527551bd733d61" + integrity sha512-dVHE6bMtS/bnL2mwualjc6IxEv1F+OCUpA46pKUj6F8uDbUM0jCCulPqRNPSnWwGNKx5etqMjZYdXtrm5KJZGA== + +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + +stack-trace@0.0.x: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== + +string.prototype.trim@^1.2.6: + version "1.2.7" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.7.tgz#a68352740859f6893f14ce3ef1bb3037f7a90533" + integrity sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimend@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.6.tgz#c4a27fa026d979d79c04f17397f250a462944533" + integrity sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string.prototype.trimstart@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.6.tgz#e90ab66aa8e4007d92ef591bbf3cd422c56bdcf4" + integrity sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.1.4" + es-abstract "^1.20.4" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +tape-promise@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tape-promise/-/tape-promise-4.0.0.tgz#c1f3553959b2e9d64b1546e7276b8a017c616897" + integrity sha512-mNi5yhWAKDuNgZCfFKeZbsXvraVOf+I8UZG+lf+aoRrzX4+jd4mpNBjYh16/VcpEMUtS0iFndBgnfxxZbtyLFw== + dependencies: + is-promise "^2.1.0" + onetime "^2.0.0" + +tape@^5.5.3: + version "5.6.1" + resolved "https://registry.yarnpkg.com/tape/-/tape-5.6.1.tgz#bbc1420e5e13003cbd7e2cf0efaa091bfb5c970a" + integrity sha512-reNzS3rzsJtKk0f+zJx2XlzIsjJXlIcOIrIxk5shHAG/DzW3BKyMg8UfN79oluYlcWo4lIt56ahLqwgpRT4idg== + dependencies: + array.prototype.every "^1.1.3" + call-bind "^1.0.2" + deep-equal "^2.0.5" + defined "^1.0.0" + dotignore "^0.1.2" + for-each "^0.3.3" + get-package-type "^0.1.0" + glob "^7.2.3" + has "^1.0.3" + has-dynamic-import "^2.0.1" + inherits "^2.0.4" + is-regex "^1.1.4" + minimist "^1.2.6" + object-inspect "^1.12.2" + object-is "^1.1.5" + object-keys "^1.1.1" + object.assign "^4.1.4" + resolve "^2.0.0-next.3" + resumer "^0.0.0" + string.prototype.trim "^1.2.6" + through "^2.3.8" + +text-hex@1.0.x: + version "1.0.0" + resolved "https://registry.yarnpkg.com/text-hex/-/text-hex-1.0.0.tgz#69dc9c1b17446ee79a92bf5b884bb4b9127506f5" + integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== + +through@^2.3.8, through@~2.3.4: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +triple-beam@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/triple-beam/-/triple-beam-1.3.0.tgz#a595214c7298db8339eeeee083e4d10bd8cb8dd9" + integrity sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw== + +ts-node@^10.8.0: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +tweetnacl@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" + integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== + +typescript@^4.2.4: + version "4.9.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.3.tgz#3aea307c1746b8c384435d8ac36b8a2e580d85db" + integrity sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA== + +unbox-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== + dependencies: + call-bind "^1.0.2" + has-bigints "^1.0.2" + has-symbols "^1.0.3" + which-boxed-primitive "^1.0.2" + +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" + +which-collection@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/which-collection/-/which-collection-1.0.1.tgz#70eab71ebbbd2aefaf32f917082fc62cdcb70906" + integrity sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A== + dependencies: + is-map "^2.0.1" + is-set "^2.0.1" + is-weakmap "^2.0.1" + is-weakset "^2.0.1" + +which-typed-array@^1.1.8: + version "1.1.9" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.9.tgz#307cf898025848cf995e795e8423c7f337efbde6" + integrity sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + is-typed-array "^1.1.10" + +winston-transport@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/winston-transport/-/winston-transport-4.5.0.tgz#6e7b0dd04d393171ed5e4e4905db265f7ab384fa" + integrity sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q== + dependencies: + logform "^2.3.2" + readable-stream "^3.6.0" + triple-beam "^1.3.0" + +winston@^3.8.2: + version "3.8.2" + resolved "https://registry.yarnpkg.com/winston/-/winston-3.8.2.tgz#56e16b34022eb4cff2638196d9646d7430fdad50" + integrity sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew== + dependencies: + "@colors/colors" "1.5.0" + "@dabh/diagnostics" "^2.0.2" + async "^3.2.3" + is-stream "^2.0.0" + logform "^2.4.0" + one-time "^1.0.0" + readable-stream "^3.4.0" + safe-stable-stringify "^2.3.1" + stack-trace "0.0.x" + triple-beam "^1.3.0" + winston-transport "^4.5.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@^8.11.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.12.0.tgz#485074cc392689da78e1828a9ff23585e06cddd8" + integrity sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig== + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== diff --git a/bootstrap-languages/direct-message-language/hc-dna/workdir/dna.yaml b/bootstrap-languages/direct-message-language/hc-dna/workdir/dna.yaml new file mode 100644 index 000000000..d8bb05e1c --- /dev/null +++ b/bootstrap-languages/direct-message-language/hc-dna/workdir/dna.yaml @@ -0,0 +1,17 @@ +--- +manifest_version: 1 +name: "direct-message-language" +integrity: + network_seed: 00000000-0000-0000-0000-000000000000 + properties: + recipient_hc_agent_pubkey: "needs replacement through templating" + origin_time: 2022-02-11T23:05:19.470323Z + zomes: + - name: direct-message-integrity + bundled: ../target/wasm32-unknown-unknown/release/direct_message_integrity.wasm +coordinator: + zomes: + - name: direct-message + bundled: ../target/wasm32-unknown-unknown/release/direct_message.wasm + dependencies: + - name: direct-message-integrity \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/Cargo.toml b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/Cargo.toml new file mode 100644 index 000000000..f1e9b6aa7 --- /dev/null +++ b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "direct-message-integrity" +version = "0.1.0" +authors = ["Nicolas Luck ", "Joshua Parkin "] +edition = "2018" + +[lib] +crate-type = ["cdylib", "rlib"] +name = "direct_message_integrity" + +[dependencies] +derive_more = "0" +serde = "1" +chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } + +hdi = "0.2.0" +holo_hash = "0.1.0" \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/src/ad4m.rs b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/src/ad4m.rs new file mode 100644 index 000000000..427104ee6 --- /dev/null +++ b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/src/ad4m.rs @@ -0,0 +1,36 @@ +use chrono::{DateTime, Utc}; +use hdi::prelude::*; + +#[derive(Clone, Debug, Serialize, Deserialize, SerializedBytes)] +pub struct Link { + pub source: String, + pub target: String, + pub predicate: Option, +} + +#[derive(Clone, Debug, Serialize, Deserialize, SerializedBytes)] +pub struct ExpressionProof { + pub signature: String, + pub key: String, +} + +#[derive(Clone, Debug, Serialize, Deserialize, SerializedBytes)] +pub struct LinkExpression { + author: String, + timestamp: DateTime, + data: Link, + proof: ExpressionProof, +} + +#[derive(Clone, Debug, Serialize, Deserialize, SerializedBytes)] +pub struct Perspective { + pub links: Vec, +} + +#[derive(Clone, Debug, Serialize, Deserialize, SerializedBytes)] +pub struct PerspectiveExpression { + pub author: String, + pub timestamp: DateTime, + pub data: Perspective, + pub proof: ExpressionProof, +} diff --git a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/src/lib.rs b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/src/lib.rs new file mode 100644 index 000000000..fb7be8136 --- /dev/null +++ b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message-integrity/src/lib.rs @@ -0,0 +1,77 @@ +use hdi::prelude::*; + +pub mod ad4m; + +use ad4m::*; + +#[derive(Clone, Debug, Serialize, Deserialize, SerializedBytes)] +pub struct StatusUpdate(pub PerspectiveExpression); + +app_entry!(StatusUpdate); + +impl Into for StatusUpdate { + fn into(self) -> PerspectiveExpression { + self.0 + } +} + +#[derive(Clone, Debug, Serialize, Deserialize, SerializedBytes)] +pub struct StoredMessage(pub PerspectiveExpression); + +app_entry!(StoredMessage); + +impl Into for StoredMessage { + fn into(self) -> PerspectiveExpression { + self.0 + } +} + +#[derive(Clone, Debug, Serialize, Deserialize, SerializedBytes)] +pub struct PublicMessage(pub PerspectiveExpression); + +app_entry!(PublicMessage); + +impl Into for PublicMessage { + fn into(self) -> PerspectiveExpression { + self.0 + } +} + +#[derive(Serialize, Deserialize, Debug, SerializedBytes)] +pub struct Properties { + pub recipient_hc_agent_pubkey: String, +} + +#[derive(Serialize, Deserialize, Debug, SerializedBytes)] +pub struct Signal { + pub json: String, +} + +#[derive(Serialize, Deserialize, Debug, SerializedBytes, PartialEq, Eq)] +pub struct Recipient(pub AgentPubKey); + +app_entry!(Recipient); + +impl Recipient { + pub fn get(&self) -> AgentPubKey { + return self.0.clone(); + } +} + +#[hdk_entry_defs] +#[unit_enum(UnitEntryTypes)] +pub enum EntryTypes { + #[entry_def(visibility = "private")] + StatusUpdate(StatusUpdate), + #[entry_def(visibility = "private")] + StoredMessage(StoredMessage), + #[entry_def(visibility = "public")] + PublicMessage(PublicMessage), + #[entry_def(visibility = "private")] + Recipient(Recipient), +} + +#[hdk_link_types] +pub enum LinkTypes { + Message, +} diff --git a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/Cargo.toml b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/Cargo.toml new file mode 100644 index 000000000..d85061237 --- /dev/null +++ b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "direct-message" +version = "0.1.0" +authors = ["Nicolas Luck "] +edition = "2018" + +[lib] +crate-type = ["cdylib", "rlib"] +name = "direct_message" + +[dependencies] +derive_more = "0" +serde = "1" +serde_json = "1" +chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } +hex = "0.4.3" + +hdk = "0.1.0" +holo_hash = "0.1.0" + +direct-message-integrity = { path = "../direct-message-integrity" } \ No newline at end of file diff --git a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/src/lib.rs b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/src/lib.rs new file mode 100644 index 000000000..1821d01aa --- /dev/null +++ b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/src/lib.rs @@ -0,0 +1,256 @@ +mod test_inspect; + +use direct_message_integrity::ad4m::*; +use direct_message_integrity::{ + EntryTypes, LinkTypes, Properties, PublicMessage, Recipient, Signal, StatusUpdate, + StoredMessage, +}; +use hdk::prelude::*; +use test_inspect::get_test_recipient; + +#[hdk_extern] +fn init(_: ()) -> ExternResult { + let mut functions = BTreeSet::new(); + functions.insert(( + ZomeName::from("direct-message"), + "recv_remote_signal".into(), + )); + functions.insert((ZomeName::from("direct-message"), "get_status".into())); + let granted_functions: GrantedFunctions = GrantedFunctions::Listed(functions); + + //Create open cap grant to allow agents to send signals of links to each other + create_cap_grant(CapGrantEntry { + tag: "".into(), + // empty access converts to unrestricted + access: ().into(), + functions: granted_functions, + })?; + Ok(InitCallbackResult::Pass) +} + +fn recipient() -> ExternResult { + //debug!("RECIPIENT"); + if let Some(recipient) = get_test_recipient(())? { + //debug!("TEST RECIPIENT"); + Ok(Recipient(recipient.get())) + } else { + //debug!("RECIPIENT from properties"); + let properties = Properties::try_from(dna_info()?.properties) + .map_err(|err| wasm_error!(WasmErrorInner::Host(err.to_string())))?; + let bytes = hex::decode(properties.recipient_hc_agent_pubkey).or_else(|_| { + Err(wasm_error!(WasmErrorInner::Host( + "Could not hex-decode property".to_string() + ))) + })?; + //debug!("RECIPIENT hex decoded"); + Ok(Recipient(AgentPubKey::from_raw_39(bytes).or_else( + |_| { + Err(wasm_error!(WasmErrorInner::Host( + "Could not decode property as AgentPubKey".to_string() + ))) + }, + )?)) + } +} + +//--------------------------------------------------------- +//----Status----------------------------------------------- +//--------------------------------------------------------- + +#[hdk_extern] +pub fn set_status(new_status: PerspectiveExpression) -> ExternResult<()> { + if Recipient(agent_info()?.agent_latest_pubkey) == recipient()? { + create_entry(EntryTypes::StatusUpdate(StatusUpdate(new_status)))?; + Ok(()) + } else { + Err(wasm_error!(WasmErrorInner::Host( + "Only recipient can set their status".to_string() + ))) + } +} + +#[hdk_extern] +pub fn get_status(_: ()) -> ExternResult> { + //debug!("GET STATUS"); + if Recipient(agent_info()?.agent_latest_pubkey) == recipient()? { + // If called on the recipient node + // (either from local ad4m-executor or via remote_call) + // we retrieve the latest status entry from source chain + let mut filter = QueryFilter::new(); + filter.entry_type = Some(EntryType::App(AppEntryDef::new( + 0.into(), + 0.into(), + EntryVisibility::Private, + ))); + filter.include_entries = true; + if let Some(element) = query(filter)?.pop() { + let status = StatusUpdate::try_from(element)?; + Ok(Some(status.into())) + } else { + Ok(None) + } + } else { + // Otherwise proxy to recipient + match call_remote( + recipient()?.0, + "direct-message", + "get_status".into(), + None, + (), + )? { + ZomeCallResponse::Ok(extern_io) => Ok(extern_io + .decode() + .map_err(|err| wasm_error!(WasmErrorInner::Host(err.to_string())))?), + ZomeCallResponse::Unauthorized(_, _, _, _, _) => Err(wasm_error!( + WasmErrorInner::Host("Unauthorized error".to_string()) + )), + ZomeCallResponse::NetworkError(error) => Err(wasm_error!(WasmErrorInner::Host(error))), + ZomeCallResponse::CountersigningSession(session) => { + Err(wasm_error!(WasmErrorInner::Host(session))) + } + } + } +} + +//--------------------------------------------------------- +//----Messages--------------------------------------------- +//--------------------------------------------------------- + +#[hdk_extern] +fn recv_remote_signal(signal: SerializedBytes) -> ExternResult<()> { + debug!("RECEIVEING MESSAGE..."); + match PerspectiveExpression::try_from(signal) { + Ok(message) => { + let json = serde_json::to_string(&message).unwrap(); + emit_signal( + &SerializedBytes::try_from(Signal { json }) + .map_err(|err| wasm_error!(WasmErrorInner::Host(err.to_string())))?, + )?; + create_entry(EntryTypes::StoredMessage(StoredMessage(message)))?; + Ok(()) + } + Err(error) => { + let error_message = format!( + "Received signal that does not parse to PerspectiveExpression: {}", + error + ); + debug!("Error in recv_remote_sigal: {}", error_message); + Err(wasm_error!(WasmErrorInner::Host(error_message))) + } + } +} + +#[hdk_extern] +fn inbox(did_filter: Option) -> ExternResult> { + //debug!("INBOX({:?})", did_filter); + let mut filter = QueryFilter::new(); + filter.entry_type = Some(EntryType::App(AppEntryDef::new( + 1.into(), + 0.into(), + EntryVisibility::Private, + ))); + filter.include_entries = true; + Ok(query(filter)? + .into_iter() + .map(|val| { + val.entry() + .to_app_option::() + .map_err(|err| wasm_error!(WasmErrorInner::Host(err.to_string())))? + .ok_or(wasm_error!(WasmErrorInner::Host( + "Expected entry to contain data".to_string() + ))) + }) + .filter_map(|m| match &did_filter { + None => Some(m), + Some(did) => match m.clone() { + Ok(pers) => { + if &pers.author == did { + Some(m) + } else { + None + } + } + Err(_err) => None, + }, + }) + .collect::, _>>()?) +} + +#[hdk_extern] +pub fn send_p2p(message: PerspectiveExpression) -> ExternResult<()> { + //debug!("SENDING MESSAGE..."); + remote_signal( + SerializedBytes::try_from(message) + .map_err(|err| wasm_error!(WasmErrorInner::Host(err.to_string())))?, + vec![recipient()?.0], + ) +} + +#[hdk_extern] +pub fn send_inbox(message: PerspectiveExpression) -> ExternResult<()> { + //debug!("SEND INBOX"); + let entry = PublicMessage(message); + let entry_hash = hash_entry(&entry)?; + create_entry(EntryTypes::PublicMessage(entry))?; + create_link( + hash_entry(recipient()?)?, + entry_hash, + LinkTypes::Message, + LinkTag::new(String::from("message")), + )?; + //debug!("Link created"); + Ok(()) +} + +#[hdk_extern] +pub fn fetch_inbox(_: ()) -> ExternResult<()> { + let agent_address: EntryHash = hash_entry(recipient()?)?; + //debug!("fetch_inbox"); + if Recipient(agent_info()?.agent_latest_pubkey) == recipient()? { + //debug!("fetch_inbox agent"); + //debug!("agent_address: {}", agent_address); + for link in get_links( + agent_address, + LinkTypes::Message, + Some(LinkTag::new(String::from("message"))), + )? { + //debug!("fetch_inbox link"); + if let Some(message_entry) = get( + link.target + .into_entry_hash() + .expect("Could not get entry hash"), + GetOptions::latest(), + )? { + //debug!("fetch_inbox link got"); + let header_address = message_entry.action_address().clone(); + let public_message = PublicMessage::try_from(message_entry)?; + let message: PerspectiveExpression = public_message.into(); + create_entry(EntryTypes::StoredMessage(StoredMessage(message)))?; + delete_link(link.create_link_hash)?; + delete_entry(header_address)?; + } else { + error!("Message linked in inbox not retrievable") + } + } + Ok(()) + } else { + Err(wasm_error!(WasmErrorInner::Guest( + "Only recipient can fetch the inbox".to_string() + ))) + } +} + +/* +#[hdk_extern] +fn validate_delete_link( + validate_delete_link: ValidateDeleteLinkData, +) -> ExternResult { + let delete_link = validate_delete_link.delete_link; + let recipient = recipient()?; + if delete_link.author == recipient { + Ok(ValidateLinkCallbackResult::Valid) + } else { + Ok(ValidateLinkCallbackResult::Invalid("Only recipient is allowed to delete inbox links".to_string()),) + } +} + */ diff --git a/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/src/test_inspect.rs b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/src/test_inspect.rs new file mode 100644 index 000000000..8f94d0860 --- /dev/null +++ b/bootstrap-languages/direct-message-language/hc-dna/zomes/direct-message/src/test_inspect.rs @@ -0,0 +1,21 @@ +use direct_message_integrity::{EntryTypes, Recipient}; +use hdk::prelude::*; + +#[hdk_extern] +pub fn set_test_recipient(recipient: AgentPubKey) -> ExternResult<()> { + create_entry(EntryTypes::Recipient(Recipient(recipient)))?; + Ok(()) +} + +#[hdk_extern] +pub fn get_test_recipient(_: ()) -> ExternResult> { + let app_entry = AppEntryDef::new(3.into(), 0.into(), EntryVisibility::Private); + let filter = QueryFilter::new() + .entry_type(EntryType::App(app_entry)) + .include_entries(true); + if let Some(element) = query(filter)?.pop() { + let recipient = Recipient::try_from(element)?; + return Ok(Some(recipient)); + } + return Ok(None); +} diff --git a/bootstrap-languages/direct-message-language/index.ts b/bootstrap-languages/direct-message-language/index.ts new file mode 100644 index 000000000..87e1ff2ef --- /dev/null +++ b/bootstrap-languages/direct-message-language/index.ts @@ -0,0 +1,19 @@ +import type { Address, Language, LanguageContext, Interaction } from "@perspect3vism/ad4m"; +import DMAdapter from "./adapter"; + +export const name = "direct-message-language"; + +function interactions(expression: Address): Interaction[] { + return []; +} + +export default async function create(context: LanguageContext): Promise { + const directMessageAdapter = new DMAdapter(context); + await directMessageAdapter.init() + + return { + name, + directMessageAdapter, + interactions, + } as Language; +} diff --git a/bootstrap-languages/direct-message-language/package.json b/bootstrap-languages/direct-message-language/package.json new file mode 100644 index 000000000..681489c38 --- /dev/null +++ b/bootstrap-languages/direct-message-language/package.json @@ -0,0 +1,35 @@ +{ + "name": "@perspect3vism/direct-message-language", + "version": "0.5.0", + "description": "A templateable AD4M Language for personal, per-agent direct message Languages", + "main": "index.js", + "scripts": { + "test": "echo \"No direct message integration tests\"", + "build": "run-script-os", + "build:linux": "yarn run build-dna && tsc && rollup -c", + "build:macos": "yarn run build-dna && tsc && rollup -c", + "build:windows": "cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd .. && tsc && rollup -c", + "build-dna": "cd hc-dna && ./build.sh && cd ..", + "build-nix": "yarn run build-dna && tsc && rollup -c", + "dev": "tsc && rollup -c -w" + }, + "author": "", + "license": "ISC", + "devDependencies": { + "@perspect3vism/ad4m": "*", + "@perspect3vism/rollup-plugin-dna": "^0.0.2", + "@rollup/plugin-commonjs": "^14.0.0", + "@rollup/plugin-node-resolve": "^8.0.0", + "@rollup/plugin-typescript": "^4.0.0", + "rollup": "^2.3.4", + "rollup-plugin-postcss": "^3.1.8", + "rollup-plugin-string": "^3.0.0", + "rollup-plugin-terser": "^7.0.0", + "run-script-os": "^1.1.6", + "tslib": "^2.0.0", + "typescript": "^4.2.4" + }, + "dependencies": { + "@types/node": "^18.0.0" + } +} diff --git a/bootstrap-languages/direct-message-language/rollup.config.js b/bootstrap-languages/direct-message-language/rollup.config.js new file mode 100644 index 000000000..955686acd --- /dev/null +++ b/bootstrap-languages/direct-message-language/rollup.config.js @@ -0,0 +1,35 @@ +import resolve from "@rollup/plugin-node-resolve"; +import commonjs from "@rollup/plugin-commonjs"; +import { string } from "rollup-plugin-string"; +import dna from "@perspect3vism/rollup-plugin-dna"; + +const production = !process.env.ROLLUP_WATCH; + +export default { + input: "index.js", + output: { + sourcemap: true, + format: "cjs", + name: "DirectMessageLanguage", + file: "build/bundle.js", + }, + plugins: [ + string({ + include: "build/*.js", + }), + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ["svelte"], + }), + commonjs(), + dna(), + ], + watch: { + clearScreen: false, + }, +}; diff --git a/bootstrap-languages/direct-message-language/tsconfig.json b/bootstrap-languages/direct-message-language/tsconfig.json new file mode 100644 index 000000000..849af5e98 --- /dev/null +++ b/bootstrap-languages/direct-message-language/tsconfig.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "compilerOptions": { + "moduleResolution": "node", + "target": "es2017", + "isolatedModules": true, + "types": ["node"], + "strict": false, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true + }, + "include": ["*.ts"], + "exclude": ["node_modules/*", "__sapper__/*", "public/*"], +} \ No newline at end of file diff --git a/bootstrap-languages/file-storage/.github/workflows/test.yml b/bootstrap-languages/file-storage/.github/workflows/test.yml new file mode 100644 index 000000000..2d193f1ce --- /dev/null +++ b/bootstrap-languages/file-storage/.github/workflows/test.yml @@ -0,0 +1,87 @@ +# This workflow will do a clean install of node dependencies, cache/restore them, build the source code and run tests across different versions of node +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: Tests + +on: + push: + branches: + - main + pull_request: + +jobs: + zome-test: + name: Holochain Zome Test + + strategy: + matrix: + platform: [ubuntu-22.04] + node-version: [16.x] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + runs-on: ${{ matrix.platform }} + + steps: + - uses: actions/checkout@v2 + - uses: actions-rs/toolchain@v1 + with: + toolchain: 1.63.0 + - name: Cache cargo + id: cache-cargo + uses: actions/cache@v3 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + - run: rustup target add wasm32-unknown-unknown + - run: npm install -g npm + - run: cd hc-dna/tests && ./download-hc-binaries.sh + - run: cargo install --version 0.2.3 lair_keystore || echo "lair already installed" + - run: cp ./hc-dna/tests/hc /usr/local/bin && cp ./hc-dna/tests/holochain /usr/local/bin && cd hc-dna/tests && npm i && npm run build-ci && npm run test + + integration: + name: Integration Test + + strategy: + matrix: + platform: [ubuntu-22.04] + node-version: [16.x] + # See supported Node.js release schedule at https://nodejs.org/en/about/releases/ + + runs-on: ${{ matrix.platform }} + + steps: + - uses: actions/checkout@v2 + - uses: actions-rs/toolchain@v1 + with: + toolchain: 1.63.0 + - name: Cache cargo + id: cache-cargo + uses: actions/cache@v3 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v2 + with: + node-version: ${{ matrix.node-version }} + cache: 'npm' + - run: rustup target add wasm32-unknown-unknown + - run: npm install -g npm + - run: ./hc-dna/tests/download-hc-binaries.sh && mv ./hc /usr/local/bin + - run: npm install && cd hc-dna && ./build.sh + - run: npm run build-lang && npm test \ No newline at end of file diff --git a/bootstrap-languages/file-storage/.gitignore b/bootstrap-languages/file-storage/.gitignore new file mode 100644 index 000000000..367a2eb3e --- /dev/null +++ b/bootstrap-languages/file-storage/.gitignore @@ -0,0 +1,16 @@ +node_modules +*.js +*.js.map +hc-dna/.cargo +hc-dna/target +hc-dna/workdir/*.dna + +!rollup.config.icons.js +!rollup.config.js +.ad4m-test +ad4m-test-0 +ad4m-test.log + +yarn-error.log + +!dna.js \ No newline at end of file diff --git a/bootstrap-languages/file-storage/ConstructorIcon.svelte b/bootstrap-languages/file-storage/ConstructorIcon.svelte new file mode 100644 index 000000000..5ce296bf4 --- /dev/null +++ b/bootstrap-languages/file-storage/ConstructorIcon.svelte @@ -0,0 +1,29 @@ + + + + +
+ + + +
+ + + \ No newline at end of file diff --git a/bootstrap-languages/file-storage/Icon.svelte b/bootstrap-languages/file-storage/Icon.svelte new file mode 100644 index 000000000..336f6eb6d --- /dev/null +++ b/bootstrap-languages/file-storage/Icon.svelte @@ -0,0 +1,32 @@ + + + + +
+ {#if expression} + + {/if} +
+ + + \ No newline at end of file diff --git a/bootstrap-languages/file-storage/README.md b/bootstrap-languages/file-storage/README.md new file mode 100644 index 000000000..48e18259d --- /dev/null +++ b/bootstrap-languages/file-storage/README.md @@ -0,0 +1,17 @@ +# Language: file-storage + +This is an example AD4M Language project which implements file storage using Holochain + +## Build overview + +The whole project compiles and bundles to one file: `build/bundle.js`. + +This happens in two steps: +1. The *Icons* (AD4M-speak for UI components) [ConstructorIcon.svelte](ConstructorIcon.svelte) and (Icon.svelte)[Icon.svelte] get compiled to `build/ConstructorIcon.js` and `build/Icon.js` respectively as web components. This first step is configured with [rollup.config.icons.js](rollup.config.icons.js) +2. [index.ts](index.ts) gets compiled and bundled to `build/bundle.js`. During this bundling step, `rollup-plugin-string` is used to include the two web component files that represent the Icons as string literals inside the resulting bundle. + +## Injected context + +The `create()` function returned by the resulting `bundle.js` will receive a parameter when executed inside Perspectivism: an instance of [LanguageContext](../../ad4m/LanguageContext.ts). This includes the Agent object and interfaces to storage implementations - currently only IPFS but very soon Holochain and others. + +Here, the IPFS object gets passed on to the constructor of the [ExpressionAdapter](adapter.ts) so it can be used to store expression in IPFS files. \ No newline at end of file diff --git a/bootstrap-languages/file-storage/adapter.ts b/bootstrap-languages/file-storage/adapter.ts new file mode 100644 index 000000000..68e35c44c --- /dev/null +++ b/bootstrap-languages/file-storage/adapter.ts @@ -0,0 +1,39 @@ +import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext, HolochainLanguageDelegate } from "@perspect3vism/ad4m"; +import { FileStoragePutAdapter } from './putAdapter' +import pako from "pako"; +import { FileStorage } from "./file-storage"; +import { DNA_NICK } from "./dna"; +import type { FileExpression } from "./types"; + +export default class Adapter implements ExpressionAdapter { + putAdapter: PublicSharing + #DNA: HolochainLanguageDelegate; + + constructor(context: LanguageContext) { + this.putAdapter = new FileStoragePutAdapter(context) + this.#DNA = context.Holochain as HolochainLanguageDelegate; + } + + async get(address: Address): Promise { + const storage = new FileStorage((fn_name, payload) => this.#DNA.call(DNA_NICK, "file_storage", fn_name, payload)); + + let addressBuffer = Buffer.from(address, "hex"); + const expression = (await storage.getFileExpression(addressBuffer)) as FileExpression + if (!expression) { + return null; + }; + if (expression.data.chunks_hashes === 0 || expression.data.chunks_hashes === undefined) { + expression.data.data_base64 = ""; + return expression; + }; + const data_compressed = await storage.download(expression.data.chunks_hashes); + let data_stream = await data_compressed.arrayBuffer(); + + const data_uncompressed = pako.inflate(data_stream); + const buffer = Buffer.from(data_uncompressed) + + expression.data.data_base64 = buffer.toString("base64") + + return expression + } +} \ No newline at end of file diff --git a/bootstrap-languages/file-storage/dna.js b/bootstrap-languages/file-storage/dna.js new file mode 100644 index 000000000..83d72cc6e --- /dev/null +++ b/bootstrap-languages/file-storage/dna.js @@ -0,0 +1,4 @@ +import dna from "./hc-dna/workdir/file-storage.dna"; + +export const DNA = Buffer.from(dna, "base64"); +export const DNA_NICK = "file-store"; diff --git a/bootstrap-languages/file-storage/file-storage.ts b/bootstrap-languages/file-storage/file-storage.ts new file mode 100644 index 000000000..81e7e2ddc --- /dev/null +++ b/bootstrap-languages/file-storage/file-storage.ts @@ -0,0 +1,101 @@ +import type { FileExpression, EntryHash } from "./types"; +import { Blob } from "buffer"; + +type ZomeCallFn = (fn: string, params: any) => Promise; + +export class FileStorage { + #zomeCall: ZomeCallFn; + + constructor(zomeCall: ZomeCallFn) { + this.#zomeCall = zomeCall; + } + + async upload( + file: Blob, + onProgress: + | undefined + | ((percentatgeProgress: number, bytesSent: number) => void) = undefined, + chunkSize: number = 256 * 1024 + ): Promise { + console.log("splitting file...") + const blobs = this.splitBlob(file, chunkSize); + console.log("done") + const numberOfChunks = blobs.length; + const bytesPerChunk = blobs[0].size; + + const chunksHashes: Array = []; + for (let i = 0; i < blobs.length; i++) { + console.log("creating chunk", i) + const chunkHash = await this.createChunk(blobs[i]); + console.log("done") + chunksHashes.push(chunkHash); + if (onProgress) { + onProgress(((i + 1) * 1.0) / numberOfChunks, bytesPerChunk * (i + 1)); + } + } + + return chunksHashes; + } + + async download(chunksHashes: Array): Promise { + const chunks = []; + for (const chunkHash of chunksHashes) { + let chunk = await this.fetchChunk(chunkHash); + chunks.push(chunk); + } + return this.mergeChunks(chunks); + } + + async storeFileExpression(fileExpression: FileExpression): Promise { + return await this.#zomeCall("store_file_expression", fileExpression); + } + + async getFileExpression(fileHash: EntryHash): Promise { + return await this.#zomeCall("get_file_expression", fileHash) as FileExpression; + } + + async fetchChunk(fileChunkHash: EntryHash): Promise { + let bytes = null + let tries = 0 + while (bytes === null && tries < 10) { + tries++ + bytes = await this.#zomeCall("get_file_chunk", fileChunkHash); + if (bytes === null) { + await new Promise(resolve => setTimeout(resolve, 500)) + } + } + + if(bytes === null) { + throw new Error("Could not fetch chunk. Giving up after 10 attempts.") + } + + // @ts-ignore + return new Blob([new Uint8Array(bytes)]); + } + + private splitBlob(file: Blob, chunkSize: number): Blob[] { + let offset = 0; + const chunks: Blob[] = []; + + while (file.size > offset) { + const chunk = file.slice(offset, offset + chunkSize); + offset += chunkSize; + chunks.push(chunk); + } + + return chunks; + } + + private mergeChunks(chunks: Blob[]): Blob { + const merged = new Blob(chunks); + return merged; + } + + private async createChunk(chunk: Blob): Promise { + const bytes = await chunk.arrayBuffer(); + // @ts-ignore + return this.#zomeCall("store_chunk", new Uint8Array(bytes)); + } + +} + \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/Cargo.lock b/bootstrap-languages/file-storage/hc-dna/Cargo.lock new file mode 100644 index 000000000..1ad45f3e3 --- /dev/null +++ b/bootstrap-languages/file-storage/hc-dna/Cargo.lock @@ -0,0 +1,2321 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "addr2line" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +dependencies = [ + "gimli 0.27.1", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "ahash" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom", + "once_cell", + "version_check", +] + +[[package]] +name = "aho-corasick" +version = "0.7.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" +dependencies = [ + "memchr", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "arrayref" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" + +[[package]] +name = "arrayvec" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backtrace" +version = "0.3.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object 0.30.3", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "blake2b_simd" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afa748e348ad3be8263be728124b24a24f268266f6f5d58af9d75f6a40b5c587" +dependencies = [ + "arrayref", + "arrayvec", + "constant_time_eq", +] + +[[package]] +name = "block-buffer" +version = "0.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +dependencies = [ + "generic-array", +] + +[[package]] +name = "bumpalo" +version = "3.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" + +[[package]] +name = "bytecheck" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d11cac2c12b5adc6570dad2ee1b87eff4955dac476fe12d81e5fdd352e52406f" +dependencies = [ + "bytecheck_derive", + "ptr_meta", +] + +[[package]] +name = "bytecheck_derive" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13e576ebe98e605500b3c8041bb888e966653577172df6dd97398714eb30b9bf" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "camino" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c77df041dc383319cc661b428b6961a005db4d6808d5e12536931b1ca9556055" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo-platform" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08a1ec454bc3eead8719cb56e15dbbfecdbc14e4b3a3ae4936cc6e31f5fc0d07" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.16", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cc" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" +dependencies = [ + "iana-time-zone", + "num-integer", + "num-traits", + "serde", + "time", + "winapi", +] + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "termcolor", + "unicode-width", +] + +[[package]] +name = "constant_time_eq" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "core-foundation-sys" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" + +[[package]] +name = "corosensei" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9847f90f32a50b0dcbd68bc23ff242798b13080b97b0569f6ed96a45ce4cf2cd" +dependencies = [ + "autocfg", + "cfg-if", + "libc", + "scopeguard", + "windows-sys 0.33.0", +] + +[[package]] +name = "cpufeatures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +dependencies = [ + "libc", +] + +[[package]] +name = "cranelift-bforest" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38faa2a16616c8e78a18d37b4726b98bfd2de192f2fdc8a39ddf568a408a0f75" +dependencies = [ + "cranelift-entity", +] + +[[package]] +name = "cranelift-codegen" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26f192472a3ba23860afd07d2b0217dc628f21fcc72617aa1336d98e1671f33b" +dependencies = [ + "cranelift-bforest", + "cranelift-codegen-meta", + "cranelift-codegen-shared", + "cranelift-entity", + "gimli 0.26.2", + "log", + "regalloc", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-codegen-meta" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f32ddb89e9b89d3d9b36a5b7d7ea3261c98235a76ac95ba46826b8ec40b1a24" +dependencies = [ + "cranelift-codegen-shared", +] + +[[package]] +name = "cranelift-codegen-shared" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01fd0d9f288cc1b42d9333b7a776b17e278fc888c28e6a0f09b5573d45a150bc" + +[[package]] +name = "cranelift-entity" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e3bfe172b83167604601faf9dc60453e0d0a93415b57a9c4d1a7ae6849185cf" + +[[package]] +name = "cranelift-frontend" +version = "0.82.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a006e3e32d80ce0e4ba7f1f9ddf66066d052a8c884a110b91d05404d6ce26dce" +dependencies = [ + "cranelift-codegen", + "log", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset 0.7.1", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "cxx" +version = "1.0.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90d59d9acd2a682b4e40605a242f6670eaa58c5957471cbf85e8aa6a0b97a5e8" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebfa40bda659dd5c864e65f4c9a2b0aff19bea56b017b9b77c73d3766a453a38" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2", + "quote", + "scratch", + "syn", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "457ce6757c5c70dc6ecdbda6925b958aae7f959bda7d8fb9bde889e34a09dc03" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebf883b7aacd7b2aeb2a7b338648ee19f57c140d4ee8e52c68979c6b2f7f2263" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "darling" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0808e1bd8671fb44a113a14e13497557533369847788fa2ae912b6ebfce9fa8" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "001d80444f28e193f30c2f293455da62dcf9a6b29918a4253152ae2b1de592cb" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn", +] + +[[package]] +name = "darling_macro" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b36230598a2d5de7ec1c6f51f72d8a99a9208daff41de2084d06e3fd3ea56685" +dependencies = [ + "darling_core", + "quote", + "syn", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case", + "proc-macro2", + "quote", + "rustc_version", + "syn", +] + +[[package]] +name = "digest" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "either" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" + +[[package]] +name = "enum-iterator" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eeac5c5edb79e4e39fe8439ef35207780a11f69c52cbe424ce3dfad4cb78de6" +dependencies = [ + "enum-iterator-derive", +] + +[[package]] +name = "enum-iterator-derive" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c134c37760b27a871ba422106eedbb8247da973a09e82558bf26d619c882b159" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "enumset" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19be8061a06ab6f3a6cf21106c873578bf01bd42ad15e0311a9c76161cb1c753" +dependencies = [ + "enumset_derive", +] + +[[package]] +name = "enumset_derive" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03e7b551eba279bf0fa88b83a46330168c1560a52a94f5126f892f0b364ab3e0" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fastrand" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +dependencies = [ + "instant", +] + +[[package]] +name = "file_storage" +version = "0.1.0" +dependencies = [ + "chrono", + "derive_more", + "hdk", + "holo_hash", + "integrity", + "lazy_static", + "serde", + "sha2", + "thiserror", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "gcollections" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2f551fdf23ef80329f754919669147a71c67b6cfe3569cd93b6fabdd62044377" +dependencies = [ + "bit-set", + "num-integer", + "num-traits", + "trilean", +] + +[[package]] +name = "generic-array" +version = "0.14.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "gimli" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" +dependencies = [ + "fallible-iterator", + "indexmap", + "stable_deref_trait", +] + +[[package]] +name = "gimli" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "221996f774192f0f718773def8201c4ae31f02616a54ccfc2d358bb0e5cefdec" + +[[package]] +name = "hashbrown" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash", +] + +[[package]] +name = "hdi" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8046116c32434837d28ad1b443802e2444a38d8cdb69caca9169414364fe0b69" +dependencies = [ + "hdk_derive", + "holo_hash", + "holochain_integrity_types", + "holochain_wasmer_guest", + "paste", + "serde", + "serde_bytes", + "tracing", + "tracing-core", +] + +[[package]] +name = "hdk" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0cbecb374a53eba516cbfefaad21f4bc805f4c731b81bd800a9a9e0239004eb3" +dependencies = [ + "getrandom", + "hdi", + "hdk_derive", + "holo_hash", + "holochain_wasmer_guest", + "holochain_zome_types", + "paste", + "serde", + "serde_bytes", + "thiserror", + "tracing", + "tracing-core", +] + +[[package]] +name = "hdk_derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa8eade453438a832944ab3f4006482f6bb5693997ff58e3049f23a8f8c617a4" +dependencies = [ + "darling", + "heck", + "holochain_integrity_types", + "paste", + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" +dependencies = [ + "libc", +] + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "holo_hash" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cffb2fb9ce1d2ce4c98d4cc9d625ddb92f6982f47094ed2e36fa93f5a096f36" +dependencies = [ + "base64", + "blake2b_simd", + "derive_more", + "holochain_serialized_bytes", + "kitsune_p2p_dht_arc", + "serde", + "serde_bytes", + "thiserror", +] + +[[package]] +name = "holochain_integrity_types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0630a221701e40ddf0fb369ead8eb6e18e3ec84241b3c77f803ea137930017b" +dependencies = [ + "holo_hash", + "holochain_serialized_bytes", + "kitsune_p2p_timestamp", + "paste", + "serde", + "serde_bytes", + "subtle", + "tracing", +] + +[[package]] +name = "holochain_serialized_bytes" +version = "0.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9805b3e01e7b5c144782a0823db4dc895fec18a9ccd45a492ce7c7bf157a9e38" +dependencies = [ + "holochain_serialized_bytes_derive", + "rmp-serde", + "serde", + "serde-transcode", + "serde_bytes", + "serde_json", + "thiserror", +] + +[[package]] +name = "holochain_serialized_bytes_derive" +version = "0.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1077232d0c427d64feb9e138fa22800e447eafb1810682d6c13beb95333cb32c" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "holochain_wasmer_common" +version = "0.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce2c50cfaf43ccfaf9c584eae3864dffb3f010f140dad6e52368f0969ce680d7" +dependencies = [ + "holochain_serialized_bytes", + "serde", + "serde_bytes", + "test-fuzz", + "thiserror", + "wasmer", + "wasmer-engine", +] + +[[package]] +name = "holochain_wasmer_guest" +version = "0.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5539ab71791a3f9d0febbd2822ba398ef34e18f55f86eafc4918a776d12d7db" +dependencies = [ + "holochain_serialized_bytes", + "holochain_wasmer_common", + "parking_lot", + "paste", + "serde", + "tracing", +] + +[[package]] +name = "holochain_zome_types" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df99af259b89d8309121d2a81852f8e468dc587332ce59a93130f4e1149758b4" +dependencies = [ + "holo_hash", + "holochain_integrity_types", + "holochain_serialized_bytes", + "holochain_wasmer_common", + "kitsune_p2p_timestamp", + "paste", + "serde", + "serde_bytes", + "subtle", + "thiserror", + "tracing", +] + +[[package]] +name = "home" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "747309b4b440c06d57b0b25f2aee03ee9b5e5397d288c60e21fc709bb98a7408" +dependencies = [ + "winapi", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.53" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "winapi", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +dependencies = [ + "cxx", + "cxx-build", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "if_chain" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" + +[[package]] +name = "indexmap" +version = "1.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "integrity" +version = "0.1.0" +dependencies = [ + "chrono", + "derive_more", + "hdi", + "hdk", + "holo_hash", + "serde", +] + +[[package]] +name = "intervallum" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8ccecd834666f695ecec3ff0d5fc32e32c91abea91a28fd0aceb4b35a82cee1" +dependencies = [ + "bit-set", + "gcollections", + "num-integer", + "num-traits", + "trilean", +] + +[[package]] +name = "itoa" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" + +[[package]] +name = "js-sys" +version = "0.3.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "kitsune_p2p_dht_arc" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0344da4e6309dfa0d7471e4b868e7dc829f109a99b3fd552abfd4d9850593cbf" +dependencies = [ + "derive_more", + "gcollections", + "intervallum", + "num-traits", + "serde", +] + +[[package]] +name = "kitsune_p2p_timestamp" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89399225067e17ab204a3d496622dd7ab51959690676eee35c45c6ad9a725165" +dependencies = [ + "chrono", + "derive_more", + "serde", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + +[[package]] +name = "libc" +version = "0.2.139" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "link-cplusplus" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" +dependencies = [ + "cc", +] + +[[package]] +name = "lock_api" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "loupe" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b6a72dfa44fe15b5e76b94307eeb2ff995a8c5b283b55008940c02e0c5b634d" +dependencies = [ + "indexmap", + "loupe-derive", + "rustversion", +] + +[[package]] +name = "loupe-derive" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0fbfc88337168279f2e9ae06e157cfed4efd3316e14dc96ed074d4f2e6c5952" +dependencies = [ + "quote", + "syn", +] + +[[package]] +name = "mach" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +dependencies = [ + "libc", +] + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "memmap2" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b182332558b18d807c4ce1ca8ca983b34c3ee32765e47b3f0f69b90355cc1dc" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] + +[[package]] +name = "miniz_oxide" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" +dependencies = [ + "adler", +] + +[[package]] +name = "more-asserts" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7843ec2de400bcbc6a6328c958dc38e5359da6e93e72e37bc5246bf1ae776389" + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" +dependencies = [ + "hermit-abi", + "libc", +] + +[[package]] +name = "object" +version = "0.28.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e42c982f2d955fac81dd7e1d0e1426a7d702acd9c98d19ab01083a6a0328c424" +dependencies = [ + "crc32fast", + "hashbrown 0.11.2", + "indexmap", + "memchr", +] + +[[package]] +name = "object" +version = "0.30.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" +dependencies = [ + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-sys 0.45.0", +] + +[[package]] +name = "paste" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58" + +[[package]] +name = "pest" +version = "2.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "028accff104c4e513bad663bbcd2ad7cfd5304144404c31ed0a77ac103d00660" +dependencies = [ + "thiserror", + "ucd-trie", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.51" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d727cae5b39d21da60fa540906919ad737832fe0b1c165da3a34d6548c849d6" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "ptr_meta" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0738ccf7ea06b608c10564b31debd4f5bc5e197fc8bfe088f68ae5ce81e7a4f1" +dependencies = [ + "ptr_meta_derive", +] + +[[package]] +name = "ptr_meta_derive" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16b845dbfca988fa33db069c0e230574d15a3088f147a87b64c7589eb662c9ac" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "quote" +version = "1.0.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rayon" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "356a0625f1954f730c0201cdab48611198dc6ce21f4acff55089b5a78e6e835b" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "num_cpus", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "regalloc" +version = "0.0.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62446b1d3ebf980bdc68837700af1d77b37bc430e524bf95319c6eada2a4cc02" +dependencies = [ + "log", + "rustc-hash", + "smallvec", +] + +[[package]] +name = "regex" +version = "1.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.6.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" + +[[package]] +name = "region" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76e189c2369884dce920945e2ddf79b3dff49e071a167dd1817fa9c4c00d512e" +dependencies = [ + "bitflags", + "libc", + "mach", + "winapi", +] + +[[package]] +name = "remove_dir_all" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +dependencies = [ + "winapi", +] + +[[package]] +name = "rend" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79af64b4b6362ffba04eef3a4e10829718a4896dac19daa741851c86781edf95" +dependencies = [ + "bytecheck", +] + +[[package]] +name = "rkyv" +version = "0.7.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cec2b3485b07d96ddfd3134767b8a447b45ea4eb91448d0a35180ec0ffd5ed15" +dependencies = [ + "bytecheck", + "hashbrown 0.12.3", + "ptr_meta", + "rend", + "rkyv_derive", + "seahash", +] + +[[package]] +name = "rkyv_derive" +version = "0.7.39" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6eaedadc88b53e36dd32d940ed21ae4d850d5916f2581526921f553a72ac34c4" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "rmp" +version = "0.8.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44519172358fd6d58656c86ab8e7fbc9e1490c3e8f14d35ed78ca0dd07403c9f" +dependencies = [ + "byteorder", + "num-traits", + "paste", +] + +[[package]] +name = "rmp-serde" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "723ecff9ad04f4ad92fe1c8ca6c20d2196d9286e9c60727c4cb5511629260e9d" +dependencies = [ + "byteorder", + "rmp", + "serde", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.16", +] + +[[package]] +name = "rustversion" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70" + +[[package]] +name = "ryu" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "scratch" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2" + +[[package]] +name = "seahash" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "serde" +version = "1.0.152" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-transcode" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "590c0e25c2a5bb6e85bf5c1bce768ceb86b316e7a01bdf07d2cb4ec2271990e2" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_bytes" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.152" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.93" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cad406b69c91885b5107daf2c29572f6c8cdb3c66826821e286c533490c0bc76" +dependencies = [ + "indexmap", + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sha-1" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "smallvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck", + "proc-macro2", + "quote", + "rustversion", + "syn", +] + +[[package]] +name = "subprocess" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2e86926081dda636c546d8c5e641661049d7562a68f5488be4a1f7f66f6086" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "subtle" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" + +[[package]] +name = "syn" +version = "1.0.107" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "target-lexicon" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ae9980cab1db3fceee2f6c6f643d5d8de2997c58ee8d25fb0cc8a9e9e7348e5" + +[[package]] +name = "tempfile" +version = "3.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +dependencies = [ + "cfg-if", + "fastrand", + "libc", + "redox_syscall", + "remove_dir_all", + "winapi", +] + +[[package]] +name = "termcolor" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "test-fuzz" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "125df852011c4f8f31df5620f4aea38ecddb5dfb4d9bc569b30485b15ffc3d4e" +dependencies = [ + "serde", + "test-fuzz-internal", + "test-fuzz-macro", + "test-fuzz-runtime", +] + +[[package]] +name = "test-fuzz-internal" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58071dc2471840e9f374eeb0f6e405a31bccb3cc5d59bb4598f02cafc274b5c4" +dependencies = [ + "cargo_metadata", + "proc-macro2", + "quote", + "serde", + "strum_macros", +] + +[[package]] +name = "test-fuzz-macro" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "856bbca0314c328004691b9c0639fb198ca764d1ce0e20d4dd8b78f2697c2a6f" +dependencies = [ + "darling", + "if_chain", + "lazy_static", + "proc-macro2", + "quote", + "subprocess", + "syn", + "test-fuzz-internal", + "toolchain_find", + "unzip-n", +] + +[[package]] +name = "test-fuzz-runtime" +version = "3.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "303774eb17994c2ddb59c460369f4c3a55496f013380278d78eeebd2deb896ac" +dependencies = [ + "bincode", + "hex", + "num-traits", + "serde", + "sha-1", + "test-fuzz-internal", +] + +[[package]] +name = "thiserror" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.38" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "time" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" +dependencies = [ + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", + "winapi", +] + +[[package]] +name = "toolchain_find" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e85654a10e7a07a47c6f19d93818f3f343e22927f2fa280c84f7c8042743413" +dependencies = [ + "home", + "lazy_static", + "regex", + "semver 0.11.0", + "walkdir", +] + +[[package]] +name = "tracing" +version = "0.1.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +dependencies = [ + "cfg-if", + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "tracing-core" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "trilean" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "683ba5022fe6dbd7133cad150478ccf51bdb6d861515181e5fc6b4323d4fa424" + +[[package]] +name = "typenum" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" + +[[package]] +name = "ucd-trie" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" + +[[package]] +name = "unicode-ident" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" + +[[package]] +name = "unicode-width" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" + +[[package]] +name = "unzip-n" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2e7e85a0596447f0f2ac090e16bc4c516c6fe91771fb0c0ccf7fa3dae896b9c" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "walkdir" +version = "2.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +dependencies = [ + "same-file", + "winapi", + "winapi-util", +] + +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" +dependencies = [ + "proc-macro2", + "quote", + "syn", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" + +[[package]] +name = "wasm-encoder" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c3e4bc09095436c8e7584d86d33e6c3ee67045af8fb262cbb9cc321de553428" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasmer" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea8d8361c9d006ea3d7797de7bd6b1492ffd0f91a22430cfda6c1658ad57bedf" +dependencies = [ + "cfg-if", + "indexmap", + "js-sys", + "loupe", + "more-asserts", + "target-lexicon", + "thiserror", + "wasm-bindgen", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-compiler-cranelift", + "wasmer-derive", + "wasmer-engine", + "wasmer-engine-dylib", + "wasmer-engine-universal", + "wasmer-types", + "wasmer-vm", + "wat", + "winapi", +] + +[[package]] +name = "wasmer-artifact" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7aaf9428c29c1d8ad2ac0e45889ba8a568a835e33fd058964e5e500f2f7ce325" +dependencies = [ + "enumset", + "loupe", + "thiserror", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-compiler" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e67a6cd866aed456656db2cfea96c18baabbd33f676578482b85c51e1ee19d2c" +dependencies = [ + "enumset", + "loupe", + "rkyv", + "serde", + "serde_bytes", + "smallvec", + "target-lexicon", + "thiserror", + "wasmer-types", + "wasmparser", +] + +[[package]] +name = "wasmer-compiler-cranelift" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48be2f9f6495f08649e4f8b946a2cbbe119faf5a654aa1457f9504a99d23dae0" +dependencies = [ + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "gimli 0.26.2", + "loupe", + "more-asserts", + "rayon", + "smallvec", + "target-lexicon", + "tracing", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-derive" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00e50405cc2a2f74ff574584710a5f2c1d5c93744acce2ca0866084739284b51" +dependencies = [ + "proc-macro-error", + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "wasmer-engine" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f98f010978c244db431b392aeab0661df7ea0822343334f8f2a920763548e45" +dependencies = [ + "backtrace", + "enumset", + "lazy_static", + "loupe", + "memmap2", + "more-asserts", + "rustc-demangle", + "serde", + "serde_bytes", + "target-lexicon", + "thiserror", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-types", + "wasmer-vm", +] + +[[package]] +name = "wasmer-engine-dylib" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0358af9c154724587731175553805648d9acb8f6657880d165e378672b7e53" +dependencies = [ + "cfg-if", + "enum-iterator", + "enumset", + "leb128", + "libloading", + "loupe", + "object 0.28.4", + "rkyv", + "serde", + "tempfile", + "tracing", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-engine", + "wasmer-object", + "wasmer-types", + "wasmer-vm", + "which", +] + +[[package]] +name = "wasmer-engine-universal" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "440dc3d93c9ca47865a4f4edd037ea81bf983b5796b59b3d712d844b32dbef15" +dependencies = [ + "cfg-if", + "enumset", + "leb128", + "loupe", + "region", + "rkyv", + "wasmer-compiler", + "wasmer-engine", + "wasmer-engine-universal-artifact", + "wasmer-types", + "wasmer-vm", + "winapi", +] + +[[package]] +name = "wasmer-engine-universal-artifact" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68f1db3f54152657eb6e86c44b66525ff7801dad8328fe677da48dd06af9ad41" +dependencies = [ + "enum-iterator", + "enumset", + "loupe", + "rkyv", + "thiserror", + "wasmer-artifact", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-object" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d831335ff3a44ecf451303f6f891175c642488036b92ceceb24ac8623a8fa8b" +dependencies = [ + "object 0.28.4", + "thiserror", + "wasmer-compiler", + "wasmer-types", +] + +[[package]] +name = "wasmer-types" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39df01ea05dc0a9bab67e054c7cb01521e53b35a7bb90bd02eca564ed0b2667f" +dependencies = [ + "backtrace", + "enum-iterator", + "indexmap", + "loupe", + "more-asserts", + "rkyv", + "serde", + "thiserror", +] + +[[package]] +name = "wasmer-vm" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30d965fa61f4dc4cdb35a54daaf7ecec3563fbb94154a6c35433f879466247dd" +dependencies = [ + "backtrace", + "cc", + "cfg-if", + "corosensei", + "enum-iterator", + "indexmap", + "lazy_static", + "libc", + "loupe", + "mach", + "memoffset 0.6.5", + "more-asserts", + "region", + "rkyv", + "scopeguard", + "serde", + "thiserror", + "wasmer-artifact", + "wasmer-types", + "winapi", +] + +[[package]] +name = "wasmparser" +version = "0.83.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718ed7c55c2add6548cca3ddd6383d738cd73b892df400e96b9aa876f0141d7a" + +[[package]] +name = "wast" +version = "53.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8244fa24196b1d8fd3ca4a96a3a164c40f846498c5deab6caf414c67340ca4af" +dependencies = [ + "leb128", + "memchr", + "unicode-width", + "wasm-encoder", +] + +[[package]] +name = "wat" +version = "1.0.58" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4620f1059add6dad511decb9d5d88b4a0a0d3e2e315ed34f79b0dc0dce18aa4b" +dependencies = [ + "wast", +] + +[[package]] +name = "which" +version = "4.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +dependencies = [ + "either", + "libc", + "once_cell", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43dbb096663629518eb1dfa72d80243ca5a6aca764cae62a2df70af760a9be75" +dependencies = [ + "windows_aarch64_msvc 0.33.0", + "windows_i686_gnu 0.33.0", + "windows_i686_msvc 0.33.0", + "windows_x86_64_gnu 0.33.0", + "windows_x86_64_msvc 0.33.0", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets", +] + +[[package]] +name = "windows-targets" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc 0.42.1", + "windows_i686_gnu 0.42.1", + "windows_i686_msvc 0.42.1", + "windows_x86_64_gnu 0.42.1", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc 0.42.1", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd761fd3eb9ab8cc1ed81e56e567f02dd82c4c837e48ac3b2181b9ffc5060807" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7" + +[[package]] +name = "windows_i686_gnu" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cab0cf703a96bab2dc0c02c0fa748491294bf9b7feb27e1f4f96340f208ada0e" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640" + +[[package]] +name = "windows_i686_msvc" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8cfdbe89cc9ad7ce618ba34abc34bbb6c36d99e96cae2245b7943cd75ee773d0" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4dd9b0c0e9ece7bb22e84d70d01b71c6d6248b81a3c60d11869451b4cb24784" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.33.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff1e4aa646495048ec7f3ffddc411e1d829c026a2ec62b39da15c1055e406eaa" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd" diff --git a/bootstrap-languages/file-storage/hc-dna/Cargo.toml b/bootstrap-languages/file-storage/hc-dna/Cargo.toml new file mode 100644 index 000000000..3b627442e --- /dev/null +++ b/bootstrap-languages/file-storage/hc-dna/Cargo.toml @@ -0,0 +1,11 @@ +[workspace] +members = [ + "zomes/integrity", + "zomes/file_storage" +] + +[profile.dev] +opt-level = "z" + +[profile.release] +opt-level = "z" \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/build.ps1 b/bootstrap-languages/file-storage/hc-dna/build.ps1 new file mode 100644 index 000000000..e7bcb228e --- /dev/null +++ b/bootstrap-languages/file-storage/hc-dna/build.ps1 @@ -0,0 +1,3 @@ +$env:CARGO_TARGET_DIR = target +cargo build --release --target wasm32-unknown-unknown +hc dna pack workdir \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/build.sh b/bootstrap-languages/file-storage/hc-dna/build.sh new file mode 100755 index 000000000..a089cc772 --- /dev/null +++ b/bootstrap-languages/file-storage/hc-dna/build.sh @@ -0,0 +1,3 @@ +#!/bin/bash +CARGO_TARGET_DIR=target cargo build --release --target wasm32-unknown-unknown +hc dna pack workdir \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/default.nix b/bootstrap-languages/file-storage/hc-dna/default.nix new file mode 100644 index 000000000..33f97a914 --- /dev/null +++ b/bootstrap-languages/file-storage/hc-dna/default.nix @@ -0,0 +1,14 @@ +let + holonixPath = (import ./nix/sources.nix).holonix; # points to the current state of the Holochain repository + holonix = import (holonixPath) { + holochainVersionId = "main"; + }; + nixpkgs = holonix.pkgs; +in nixpkgs.mkShell { + inputsFrom = [ holonix.main ]; + packages = with nixpkgs; [ + binaryen + nodejs-16_x + swiProlog + ]; +} \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/holochain_version.nix b/bootstrap-languages/file-storage/hc-dna/holochain_version.nix new file mode 100644 index 000000000..9f44831c8 --- /dev/null +++ b/bootstrap-languages/file-storage/hc-dna/holochain_version.nix @@ -0,0 +1,20 @@ +# This file was generated with the following command: +# update-holochain-versions --git-src=revision:holochain-0.0.161 --lair-version-req=~0.2 --output-file=holochain_version.nix +# For usage instructions please visit https://github.com/holochain/holochain-nixpkgs/#readme + +{ + url = "https://github.com/holochain/holochain"; + rev = "holochain-0.1.0"; + sha256 = "sha256-xp1DTVrhGZc1CZr6LvBFZZhoOUbUPpg3/mWOj4DDXjI="; + cargoLock = { + outputHashes = { + }; + }; + + binsFilter = [ + "holochain" + "hc" + "kitsune-p2p-proxy" + "kitsune-p2p-tx2-proxy" + ]; +} diff --git a/bootstrap-languages/file-storage/hc-dna/nix/sources.json b/bootstrap-languages/file-storage/hc-dna/nix/sources.json new file mode 100644 index 000000000..451563814 --- /dev/null +++ b/bootstrap-languages/file-storage/hc-dna/nix/sources.json @@ -0,0 +1,14 @@ +{ + "holonix": { + "branch": "main", + "description": "NixOS && Holochain", + "homepage": "", + "owner": "holochain", + "repo": "holonix", + "rev": "241c1754a37881f51f2f33921a2777b38c34fa24", + "sha256": "sha256:0zaa477kyzpsrcc3nk1jznp4gchwm4pk5p37pwkq6mjhiizcxshy", + "type": "tarball", + "url": "https://github.com/holochain/holonix/archive/241c1754a37881f51f2f33921a2777b38c34fa24.tar.gz", + "url_template": "https://github.com///archive/.tar.gz" + } +} \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/nix/sources.nix b/bootstrap-languages/file-storage/hc-dna/nix/sources.nix new file mode 100644 index 000000000..fe2468872 --- /dev/null +++ b/bootstrap-languages/file-storage/hc-dna/nix/sources.nix @@ -0,0 +1,174 @@ +# This file has been generated by Niv. + +let + + # + # The fetchers. fetch_ fetches specs of type . + # + + fetch_file = pkgs: name: spec: + let + name' = sanitizeName name + "-src"; + in + if spec.builtin or true then + builtins_fetchurl { inherit (spec) url sha256; name = name'; } + else + pkgs.fetchurl { inherit (spec) url sha256; name = name'; }; + + fetch_tarball = pkgs: name: spec: + let + name' = sanitizeName name + "-src"; + in + if spec.builtin or true then + builtins_fetchTarball { name = name'; inherit (spec) url sha256; } + else + pkgs.fetchzip { name = name'; inherit (spec) url sha256; }; + + fetch_git = name: spec: + let + ref = + if spec ? ref then spec.ref else + if spec ? branch then "refs/heads/${spec.branch}" else + if spec ? tag then "refs/tags/${spec.tag}" else + abort "In git source '${name}': Please specify `ref`, `tag` or `branch`!"; + in + builtins.fetchGit { url = spec.repo; inherit (spec) rev; inherit ref; }; + + fetch_local = spec: spec.path; + + fetch_builtin-tarball = name: throw + ''[${name}] The niv type "builtin-tarball" is deprecated. You should instead use `builtin = true`. + $ niv modify ${name} -a type=tarball -a builtin=true''; + + fetch_builtin-url = name: throw + ''[${name}] The niv type "builtin-url" will soon be deprecated. You should instead use `builtin = true`. + $ niv modify ${name} -a type=file -a builtin=true''; + + # + # Various helpers + # + + # https://github.com/NixOS/nixpkgs/pull/83241/files#diff-c6f540a4f3bfa4b0e8b6bafd4cd54e8bR695 + sanitizeName = name: + ( + concatMapStrings (s: if builtins.isList s then "-" else s) + ( + builtins.split "[^[:alnum:]+._?=-]+" + ((x: builtins.elemAt (builtins.match "\\.*(.*)" x) 0) name) + ) + ); + + # The set of packages used when specs are fetched using non-builtins. + mkPkgs = sources: system: + let + sourcesNixpkgs = + import (builtins_fetchTarball { inherit (sources.nixpkgs) url sha256; }) { inherit system; }; + hasNixpkgsPath = builtins.any (x: x.prefix == "nixpkgs") builtins.nixPath; + hasThisAsNixpkgsPath = == ./.; + in + if builtins.hasAttr "nixpkgs" sources + then sourcesNixpkgs + else if hasNixpkgsPath && ! hasThisAsNixpkgsPath then + import {} + else + abort + '' + Please specify either (through -I or NIX_PATH=nixpkgs=...) or + add a package called "nixpkgs" to your sources.json. + ''; + + # The actual fetching function. + fetch = pkgs: name: spec: + + if ! builtins.hasAttr "type" spec then + abort "ERROR: niv spec ${name} does not have a 'type' attribute" + else if spec.type == "file" then fetch_file pkgs name spec + else if spec.type == "tarball" then fetch_tarball pkgs name spec + else if spec.type == "git" then fetch_git name spec + else if spec.type == "local" then fetch_local spec + else if spec.type == "builtin-tarball" then fetch_builtin-tarball name + else if spec.type == "builtin-url" then fetch_builtin-url name + else + abort "ERROR: niv spec ${name} has unknown type ${builtins.toJSON spec.type}"; + + # If the environment variable NIV_OVERRIDE_${name} is set, then use + # the path directly as opposed to the fetched source. + replace = name: drv: + let + saneName = stringAsChars (c: if isNull (builtins.match "[a-zA-Z0-9]" c) then "_" else c) name; + ersatz = builtins.getEnv "NIV_OVERRIDE_${saneName}"; + in + if ersatz == "" then drv else + # this turns the string into an actual Nix path (for both absolute and + # relative paths) + if builtins.substring 0 1 ersatz == "/" then /. + ersatz else /. + builtins.getEnv "PWD" + "/${ersatz}"; + + # Ports of functions for older nix versions + + # a Nix version of mapAttrs if the built-in doesn't exist + mapAttrs = builtins.mapAttrs or ( + f: set: with builtins; + listToAttrs (map (attr: { name = attr; value = f attr set.${attr}; }) (attrNames set)) + ); + + # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295 + range = first: last: if first > last then [] else builtins.genList (n: first + n) (last - first + 1); + + # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L257 + stringToCharacters = s: map (p: builtins.substring p 1 s) (range 0 (builtins.stringLength s - 1)); + + # https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269 + stringAsChars = f: s: concatStrings (map f (stringToCharacters s)); + concatMapStrings = f: list: concatStrings (map f list); + concatStrings = builtins.concatStringsSep ""; + + # https://github.com/NixOS/nixpkgs/blob/8a9f58a375c401b96da862d969f66429def1d118/lib/attrsets.nix#L331 + optionalAttrs = cond: as: if cond then as else {}; + + # fetchTarball version that is compatible between all the versions of Nix + builtins_fetchTarball = { url, name ? null, sha256 }@attrs: + let + inherit (builtins) lessThan nixVersion fetchTarball; + in + if lessThan nixVersion "1.12" then + fetchTarball ({ inherit url; } // (optionalAttrs (!isNull name) { inherit name; })) + else + fetchTarball attrs; + + # fetchurl version that is compatible between all the versions of Nix + builtins_fetchurl = { url, name ? null, sha256 }@attrs: + let + inherit (builtins) lessThan nixVersion fetchurl; + in + if lessThan nixVersion "1.12" then + fetchurl ({ inherit url; } // (optionalAttrs (!isNull name) { inherit name; })) + else + fetchurl attrs; + + # Create the final "sources" from the config + mkSources = config: + mapAttrs ( + name: spec: + if builtins.hasAttr "outPath" spec + then abort + "The values in sources.json should not have an 'outPath' attribute" + else + spec // { outPath = replace name (fetch config.pkgs name spec); } + ) config.sources; + + # The "config" used by the fetchers + mkConfig = + { sourcesFile ? if builtins.pathExists ./sources.json then ./sources.json else null + , sources ? if isNull sourcesFile then {} else builtins.fromJSON (builtins.readFile sourcesFile) + , system ? builtins.currentSystem + , pkgs ? mkPkgs sources system + }: rec { + # The sources, i.e. the attribute set of spec name to spec + inherit sources; + + # The "pkgs" (evaluated nixpkgs) to use for e.g. non-builtin fetchers + inherit pkgs; + }; + +in +mkSources (mkConfig {}) // { __functor = _: settings: mkSources (mkConfig settings); } \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/tests/download-hc-binaries.sh b/bootstrap-languages/file-storage/hc-dna/tests/download-hc-binaries.sh new file mode 100755 index 000000000..e78e813ec --- /dev/null +++ b/bootstrap-languages/file-storage/hc-dna/tests/download-hc-binaries.sh @@ -0,0 +1,14 @@ +#!/bin/bash +[ ! -d "./temp/binary" ] && mkdir -p "./temp/binary" + +if [ ! -f "./hc" ]; then + wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/hc-linux-0.1.0 + mv hc-linux-0.1.0 ./hc + chmod +x ./hc +fi + +if [ ! -f "./holochain" ]; then + wget https://github.com/perspect3vism/ad4m/releases/download/binary-deps-0.1.0/holochain-linux-0.1.0 + mv holochain-linux-0.1.0 ./holochain + chmod +x ./holochain +fi \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/tests/index.ts b/bootstrap-languages/file-storage/hc-dna/tests/index.ts new file mode 100644 index 000000000..6ef01ffbc --- /dev/null +++ b/bootstrap-languages/file-storage/hc-dna/tests/index.ts @@ -0,0 +1,177 @@ +import { CallableCell, runScenario, Scenario } from "@holochain/tryorama"; +import test from "tape-promise/tape.js"; +import path from "path"; +import { resolve } from "path"; +import { FileStorage } from "../../file-storage"; +import { Blob } from "buffer"; + +const dnas = [{ source: {path: path.join("../workdir/file-storage.dna") } }]; + +function sleep(ms: number) { + return new Promise(resolve => setTimeout(resolve, ms)); +} + +test("Share 1MB between Alice and Bob", async (t) => { + await runScenario(async (scenario: Scenario) => { + const alice = await scenario.addPlayerWithApp({ + bundle: { + manifest: { + manifest_version: "1", + name: "file-storage", + roles: [{ + name: "main", + dna: { + //@ts-ignore + path: resolve(dnas[0].source.path) + } + }] + }, + resources: {} + } + }); + + const bob = await scenario.addPlayerWithApp({ + bundle: { + manifest: { + manifest_version: "1", + name: "file-storage", + roles: [{ + name: "main", + dna: { + //@ts-ignore + path: resolve(dnas[0].source.path) + } + }] + }, + resources: {} + } + }); + + console.log("Sharing all agents") + await scenario.shareAllAgents(); + + + const aliceClient = new FileStorage((fn_name, payload) => alice.cells[0].callZome({zome_name: "file_storage", fn_name, payload})); + const bobClient = new FileStorage((fn_name, payload) => bob.cells[0].callZome({zome_name: "file_storage", fn_name, payload})); + + + let randomNumbers:number[] = []; + for(let i = 0; i < 1000000; i++) { + randomNumbers.push(Math.floor(Math.random() * 1000)); + } + const buf = Buffer.from(randomNumbers); + const blobUp = new Blob([buf]) + + console.log("Uploading file...") + const hashes = await aliceClient.upload(blobUp); + console.log("Done") + console.log("Got hashes", hashes) + console.log("Waiting 3 second...") + await new Promise(resolve => setTimeout(resolve, 3000)) + console.log("Done") + console.log("Downloading file...") + const blobDown = await bobClient.download(hashes); + t.equal(blobDown.size, buf.length); + + // compare the contents of the blobs + // @ts-ignore + const bufDown = Buffer.from(await blobDown.arrayBuffer()); + const bufUp = Buffer.from(await blobUp.arrayBuffer()); + t.assert(bufUp.compare(bufDown) == 0) + + await scenario.shutDown() + }) +}) + + +test("Share full FileExpression between Alice and Bob", async (t) => { + await runScenario(async (scenario: Scenario) => { + const alice = await scenario.addPlayerWithApp({ + bundle: { + manifest: { + manifest_version: "1", + name: "file-storage", + roles: [{ + name: "main", + dna: { + //@ts-ignore + path: resolve(dnas[0].source.path) + } + }] + }, + resources: {} + } + }); + + const bob = await scenario.addPlayerWithApp({ + bundle: { + manifest: { + manifest_version: "1", + name: "file-storage", + roles: [{ + name: "main", + dna: { + //@ts-ignore + path: resolve(dnas[0].source.path) + } + }] + }, + resources: {} + } + }); + + console.log("Sharing all agents") + await scenario.shareAllAgents(); + + + const aliceClient = new FileStorage((fn_name, payload) => alice.cells[0].callZome({zome_name: "file_storage", fn_name, payload})); + const bobClient = new FileStorage((fn_name, payload) => bob.cells[0].callZome({zome_name: "file_storage", fn_name, payload})); + + + let randomNumbers:number[] = []; + for(let i = 0; i < 1000000; i++) { + randomNumbers.push(Math.floor(Math.random() * 1000)); + } + const buf = Buffer.from(randomNumbers); + const blobUp = new Blob([buf]) + + const hashes = await aliceClient.upload(blobUp); + const fileMetadata = { + name: "test.txt", + size: buf.length, + file_type: "text/plain", + checksum: "1234", + chunks_hashes: hashes + } + + const fileExpression = { + author: "did:test:alice", + timestamp: new Date().toISOString(), + data: fileMetadata, + proof: { + signature: "1234", + key: "1234" + } + } + + const fileExpressionAddr = await aliceClient.storeFileExpression(fileExpression) + + await new Promise(resolve => setTimeout(resolve, 3000)) + + const fileExpressionDown = await bobClient.getFileExpression(fileExpressionAddr) + t.deepEqual(fileExpressionDown, fileExpression) + + const blobDown = await bobClient.download(fileExpression.data.chunks_hashes); + t.equal(blobDown.size, buf.length); + + // compare the contents of the blobs + // @ts-ignore + const bufDown = Buffer.from(await blobDown.arrayBuffer()); + const bufUp = Buffer.from(await blobUp.arrayBuffer()); + t.assert(bufUp.compare(bufDown) == 0) + + await scenario.shutDown(); + + }) + }) + \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/tests/package.json b/bootstrap-languages/file-storage/hc-dna/tests/package.json new file mode 100644 index 000000000..36257fbce --- /dev/null +++ b/bootstrap-languages/file-storage/hc-dna/tests/package.json @@ -0,0 +1,26 @@ +{ + "name": "file-storage-test", + "version": "1.0.0", + "main": "index.js", + "type": "module", + "license": "MIT", + "dependencies": { + "@holochain/client": "^0.12.0", + "@holochain/tryorama": "^0.11.1", + "tape-promise": "^4.0.0", + "ts-node": "^10.8.0", + "@types/node": "^14.0.14", + "typescript": "^4.2.4" + }, + "devDependencies": { + "@types/faker": "^5.5.3", + "@types/tape-promise": "^4.0.1", + "tape": "^5.5.3", + "blob-compare": "^1.1.0" + }, + "scripts": { + "build": "cd .. && ./build.sh", + "build-ci": "cd ../ && CARGO_TARGET_DIR=target cargo build --release --target wasm32-unknown-unknown && ./tests/hc dna pack workdir && cd ./tests", + "test": "TRYORAMA_LOG_LEVEL=debug WASM_LOG=debug,wasmer_compiler_cranelift=error,holochain::conductor::manager=warn,holochain::core::workflow::publish_dht_ops_workflow::publish_query=warn,publish_dht_ops_workflow=error,kitsune_p2p_types::metrics=error,kitsune_p2p::gossip::sharded_gossip=error,wasm_trace=debug,app_validation_workflow=error RUST_BACKTRACE=1 node --loader ts-node/esm --experimental-specifier-resolution=node index.ts" + } +} diff --git a/bootstrap-languages/file-storage/hc-dna/tests/tsconfig.json b/bootstrap-languages/file-storage/hc-dna/tests/tsconfig.json new file mode 100644 index 000000000..3725a409f --- /dev/null +++ b/bootstrap-languages/file-storage/hc-dna/tests/tsconfig.json @@ -0,0 +1,16 @@ +{ + "compilerOptions": { + "module": "ESNext", + "target": "ESNext", + "moduleResolution": "Node", + "sourceMap": true, + "declaration": true, + "forceConsistentCasingInFileNames": true, + "allowSyntheticDefaultImports": true, + "skipLibCheck": true, + "strict": true + }, + "include": [ + "ts/**/*" + ] + } \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/workdir/dna.yaml b/bootstrap-languages/file-storage/hc-dna/workdir/dna.yaml new file mode 100644 index 000000000..9ce8dff55 --- /dev/null +++ b/bootstrap-languages/file-storage/hc-dna/workdir/dna.yaml @@ -0,0 +1,13 @@ +manifest_version: '1' +name: file-storage +integrity: + network_seed: 00000000-0000-0000-0000-000000000000 + properties: null + origin_time: 2023-02-07T14:37:17.497352Z + zomes: + - name: integrity + bundled: ../target/wasm32-unknown-unknown/release/integrity.wasm +coordinator: + zomes: + - name: file_storage + bundled: ../target/wasm32-unknown-unknown/release/file_storage.wasm \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/.gitignore b/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/.gitignore new file mode 100644 index 000000000..ea8c4bf7f --- /dev/null +++ b/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/.gitignore @@ -0,0 +1 @@ +/target diff --git a/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/Cargo.toml b/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/Cargo.toml new file mode 100644 index 000000000..6fadb6261 --- /dev/null +++ b/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/Cargo.toml @@ -0,0 +1,21 @@ +[package] +name = "file_storage" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[lib] +crate-type = ["cdylib", "rlib"] +name = "file_storage" + +[dependencies] +derive_more = "0" +serde = "1" +lazy_static = "*" +chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } +thiserror = "1.0.20" +integrity = { path = "../integrity" } +sha2 = "0.10.5" +hdk = "0.1.0" +holo_hash = "0.1.0" \ No newline at end of file diff --git a/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/src/lib.rs b/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/src/lib.rs new file mode 100644 index 000000000..69cb21fca --- /dev/null +++ b/bootstrap-languages/file-storage/hc-dna/zomes/file_storage/src/lib.rs @@ -0,0 +1,79 @@ +use chrono::{DateTime, NaiveDateTime, Utc}; +use hdk::prelude::*; +use integrity::{EntryTypes, FileChunk, FileExpression}; + +#[hdk_extern] +fn init(_: ()) -> ExternResult { + Ok(InitCallbackResult::Pass) +} + +pub fn get_now() -> DateTime { + match sys_time() { + Ok(time) => { + let now = time.as_seconds_and_nanos(); + let out = DateTime::::from_utc( + NaiveDateTime::from_timestamp_opt(now.0, now.1).unwrap(), + Utc, + ); + out + } + Err(_err) => Utc::now(), + } +} + +#[hdk_extern] +pub fn store_file_expression(expression: FileExpression) -> ExternResult { + let hash = hash_entry(&expression)?; + create_entry(&EntryTypes::FileExpression(expression))?; + + Ok(hash) +} + +#[hdk_extern] +pub fn store_chunk(file_chunk: FileChunk) -> ExternResult { + let file_chunk_hash = hash_entry(&file_chunk)?; + + if let None = get(file_chunk_hash.clone(), GetOptions::default())? { + create_entry(&EntryTypes::FileChunk(file_chunk))?; + } + + Ok(file_chunk_hash) +} + +#[hdk_extern] +pub fn get_file_expression( + file_expression_hash: EntryHash, +) -> ExternResult> { + match get(file_expression_hash.clone(), GetOptions::default())? { + Some(record) => { + let file_expression: FileExpression = record + .entry() + .to_app_option() + .map_err(|e| wasm_error!(e))? + .ok_or(wasm_error!(WasmErrorInner::Guest( + "Malformed file chunk".into() + )))?; + + Ok(Some(file_expression)) + } + None => Ok(None), + } +} + +#[hdk_extern] +pub fn get_file_chunk(file_chunk_hash: EntryHash) -> ExternResult> { + match get(file_chunk_hash, GetOptions::default())? { + Some(record) => { + let file_chunk: FileChunk = record + .entry() + .to_app_option() + .map_err(|e| wasm_error!(e))? + .ok_or(wasm_error!(WasmErrorInner::Guest( + "Malformed file chunk".into() + )))?; + + Ok(Some(file_chunk)) + } + None => Ok(None), + } +} diff --git a/bootstrap-languages/file-storage/hc-dna/zomes/integrity/Cargo.toml b/bootstrap-languages/file-storage/hc-dna/zomes/integrity/Cargo.toml new file mode 100644 index 000000000..8a860b176 --- /dev/null +++ b/bootstrap-languages/file-storage/hc-dna/zomes/integrity/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "integrity" +version = "0.1.0" +edition = "2021" + +[lib] +crate-type = ["cdylib", "rlib"] +name = "integrity" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +derive_more = "0" +serde = "1" +chrono = { version = "0.4.22", default-features = false, features = ["clock", "std", "oldtime", "serde"] } +holo_hash = "0.1.0" +hdi = "0.2.0" +hdk = "0.1.0" diff --git a/bootstrap-languages/file-storage/hc-dna/zomes/integrity/src/lib.rs b/bootstrap-languages/file-storage/hc-dna/zomes/integrity/src/lib.rs new file mode 100644 index 000000000..19c42d131 --- /dev/null +++ b/bootstrap-languages/file-storage/hc-dna/zomes/integrity/src/lib.rs @@ -0,0 +1,38 @@ +use chrono::{DateTime, Utc}; +use hdi::prelude::*; + +#[hdk_entry_helper] +pub struct FileChunk(SerializedBytes); + +#[hdk_entry_helper] +pub struct FileMetadata { + pub name: String, + pub size: usize, + pub file_type: String, + pub checksum: String, + pub chunks_hashes: Vec, +} + +#[derive(Serialize, Deserialize, Clone, SerializedBytes, Debug, PartialEq)] +pub struct ExpressionProof { + pub signature: String, + pub key: String, +} + +#[hdk_entry_helper] +pub struct FileExpression { + pub author: String, + pub proof: ExpressionProof, + pub timestamp: DateTime, + pub data: FileMetadata, +} + +#[hdk_entry_defs] +#[unit_enum(UnitEntryTypes)] +pub enum EntryTypes { + #[entry_def(visibility = "public")] + FileExpression(FileExpression), + + #[entry_def(visibility = "public")] + FileChunk(FileChunk), +} diff --git a/bootstrap-languages/file-storage/index.ts b/bootstrap-languages/file-storage/index.ts new file mode 100644 index 000000000..6ae00788d --- /dev/null +++ b/bootstrap-languages/file-storage/index.ts @@ -0,0 +1,32 @@ +import type { Address, Interaction, Agent, Language, LanguageContext, HolochainLanguageDelegate } from "@perspect3vism/ad4m"; +import Adapter from './adapter' +import { FileStorageUI } from './noteExpressionUI' +import { DNA, DNA_NICK } from "./dna"; + +function interactions(expression: Address): Interaction[] { + return [] +} + +function isImmutableExpression(expression: Address): boolean { + return true +} + +//@ad4m-template-variable +const name = "file-storage"; + +export default async function create(context: LanguageContext): Promise { + const Holochain = context.Holochain as HolochainLanguageDelegate; + // @ts-ignore + await Holochain.registerDNAs([{ file: DNA, nick: DNA_NICK }]); + + const expressionAdapter = new Adapter(context) + const expressionUI = new FileStorageUI() + + return { + name, + expressionAdapter, + expressionUI, + interactions, + isImmutableExpression + } as Language +} \ No newline at end of file diff --git a/bootstrap-languages/file-storage/integration.test.cjs b/bootstrap-languages/file-storage/integration.test.cjs new file mode 100644 index 000000000..8848be5ab --- /dev/null +++ b/bootstrap-languages/file-storage/integration.test.cjs @@ -0,0 +1,23 @@ +const { spawnExpressionAgent } = require('@perspect3vism/ad4m-test/helpers') + +describe("Expression", () => { + it("Create Expression", async () => { + const agent = await spawnExpressionAgent() + + const data_base64 = Buffer.from("test data").toString('base64'); + const exp = await agent.create({ + data_base64: data_base64, + name: "test file object", + file_type: "text/plain" + }); + console.log("created exp", exp); + + expect(exp).not.toBeNull() + + const fetched = await agent.get(exp) + expect(fetched).not.toBeNull() + expect(fetched.proof.valid).toBe(true); + const data = JSON.parse(fetched.data); + expect(data.data_base64).toBe(data_base64); + }) +}) \ No newline at end of file diff --git a/bootstrap-languages/file-storage/noteExpressionUI.ts b/bootstrap-languages/file-storage/noteExpressionUI.ts new file mode 100644 index 000000000..604623e06 --- /dev/null +++ b/bootstrap-languages/file-storage/noteExpressionUI.ts @@ -0,0 +1,13 @@ +import type { ExpressionUI } from "@perspect3vism/ad4m"; +import Icon from './build/Icon.js' +import ConstructorIcon from './build/ConstructorIcon.js' + +export class FileStorageUI implements ExpressionUI { + icon(): string { + return Icon + } + + constructorIcon(): string { + return ConstructorIcon + } +} \ No newline at end of file diff --git a/bootstrap-languages/file-storage/package.json b/bootstrap-languages/file-storage/package.json new file mode 100644 index 000000000..e6d30b778 --- /dev/null +++ b/bootstrap-languages/file-storage/package.json @@ -0,0 +1,44 @@ +{ + "name": "@perspect3vism/file-storage", + "version": "0.0.1", + "description": "An AD4M Language for file storage leveraging a holochain DNA", + "main": "index.js", + "type": "module", + "scripts": { + "integration-test": "node ../../test-runner/build/cli.js --test ./integration.test.cjs --bundle ./build/bundle.js --meta '{\"name\":\"file-storage\",\"description\":\"An AD4M Language for file storage leveraging a holochain DNA\",\"sourceCodeLink\":\"https://github.com/perspect3vism/file-storage-language\",\"possibleTemplateParams\":[\"uid\",\"name\"]}'", + "build": "run-script-os", + "build:linux": "yarn run build-icons && yarn run build-dna && tsc && rollup -c", + "build:macos": "yarn run build-icons && yarn run build-dna && tsc && rollup -c", + "build:windows": "yarn run build-icons && cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd .. && tsc && rollup -c", + "build-icons": "rollup -c rollup.config.icons.js", + "build-dna": "cd ./hc-dna && ./build.sh && cd ..", + "dev": "tsc && rollup -c rollup.config.icons.js && rollup -c -w" + }, + "author": "", + "license": "ISC", + "devDependencies": { + "@perspect3vism/ad4m": "*", + "@perspect3vism/ad4m-test": "*", + "@perspect3vism/rollup-plugin-dna": "^0.0.2", + "@rollup/plugin-commonjs": "^14.0.0", + "@rollup/plugin-node-resolve": "^8.0.0", + "@rollup/plugin-typescript": "^4.0.0", + "@tsconfig/svelte": "^1.0.0", + "@types/express": "^4.17.8", + "@types/uuid": "9.0.1", + "browserify": "^17.0.0", + "pako": "2.1.0", + "rollup": "^2.3.4", + "rollup-plugin-postcss": "^3.1.8", + "rollup-plugin-string": "^3.0.0", + "rollup-plugin-svelte": "^6.0.0", + "rollup-plugin-terser": "^7.0.0", + "svelte": "^3.0.0", + "svelte-check": "^1.0.0", + "svelte-preprocess": "^4.0.0", + "tslib": "^2.0.0", + "typescript": "^4.2.4", + "uint8arrays": "^3.0.0", + "run-script-os": "^1.1.6" + } +} diff --git a/bootstrap-languages/file-storage/putAdapter.ts b/bootstrap-languages/file-storage/putAdapter.ts new file mode 100644 index 000000000..3c81417f5 --- /dev/null +++ b/bootstrap-languages/file-storage/putAdapter.ts @@ -0,0 +1,63 @@ +import type { Address, AgentService, PublicSharing, LanguageContext, HolochainLanguageDelegate } from "@perspect3vism/ad4m"; +import pako from "pako"; +import { FileStorage } from "./file-storage"; +import { DNA_NICK } from "./dna"; +import { Blob } from "buffer"; +import type { FileExpression, FileMetadata } from "./types"; + +export interface FileData { + name: string; + file_type: string; + data_base64: string; +} + +export class FileStoragePutAdapter implements PublicSharing { + #agent: AgentService + #DNA: HolochainLanguageDelegate; + + constructor(context: LanguageContext) { + this.#agent = context.agent + this.#DNA = context.Holochain as HolochainLanguageDelegate; + } + + async createPublic(fileData: FileData): Promise
{ + console.log("createPublic fileData", fileData) + try { + // Just in case... + if(typeof fileData === "string"){ + //@ts-ignore + fileData = JSON.parse(fileData) + } + }catch(e){} + + const storage = new FileStorage((fn_name, payload) => this.#DNA.call(DNA_NICK, "file_storage", fn_name, payload)); + + const data_uncompressed = Uint8Array.from(Buffer.from(fileData.data_base64, "base64")); + const data_compressed = pako.deflate(data_uncompressed) + const blob = new Blob([data_compressed]) + + const hashes = await storage.upload(blob); + + const fileMetadata = { + name: fileData.name, + size: data_uncompressed.length, + file_type: fileData.file_type, + checksum: "1234", + chunks_hashes: hashes, + data_base64: fileData.data_base64 + } as FileMetadata + + //Create the signed expression object + const expression: FileExpression = this.#agent.createSignedExpression(fileMetadata) + //Remove the data_base64 from the expression, since this is already stored above + delete expression.data.data_base64; + + //Store the FileMetadataExpression + const address = await storage.storeFileExpression(expression) + if (!Buffer.isBuffer(address)) { + throw new Error("Could not create FileExpression data") + }; + //@ts-ignore + return address.toString("hex") + } +} \ No newline at end of file diff --git a/bootstrap-languages/file-storage/rollup.config.icons.js b/bootstrap-languages/file-storage/rollup.config.icons.js new file mode 100644 index 000000000..500ea3f14 --- /dev/null +++ b/bootstrap-languages/file-storage/rollup.config.icons.js @@ -0,0 +1,107 @@ +import svelte from 'rollup-plugin-svelte'; +import resolve from '@rollup/plugin-node-resolve'; +import commonjs from '@rollup/plugin-commonjs'; +//import { terser } from 'rollup-plugin-terser'; +import sveltePreprocess from 'svelte-preprocess'; +import postcss from "rollup-plugin-postcss"; + +const production = !process.env.ROLLUP_WATCH; + +export default [ +{ + input: 'ConstructorIcon.svelte', + output: { + sourcemap: true, + format: 'cjs', + name: 'ConstructorIcon', + file: 'build/ConstructorIcon.js' + }, + plugins: [ + svelte({ + // enable run-time checks when not in production + dev: !production, + preprocess: sveltePreprocess(), + customElement: true, + }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ['svelte'] + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + ['sass', { + includePaths: [ + './src/ui/theme', + './node_modules' + ] + }] + ] + }), + //typescript({ sourceMap: !production }), + + // If we're building for production (npm run build + // instead of npm run dev), minify + //production && terser() + ], + watch: { + clearScreen: false + } +}, +{ + input: 'Icon.svelte', + output: { + sourcemap: true, + format: 'cjs', + name: 'Icon', + file: 'build/Icon.js' + }, + plugins: [ + svelte({ + // enable run-time checks when not in production + dev: !production, + preprocess: sveltePreprocess(), + customElement: true, + }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ['svelte'] + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + ['sass', { + includePaths: [ + './src/ui/theme', + './node_modules' + ] + }] + ] + }), + //typescript({ sourceMap: !production }), + + // If we're building for production (npm run build + // instead of npm run dev), minify + //production && terser() + ], + watch: { + clearScreen: false + } +} +] diff --git a/bootstrap-languages/file-storage/rollup.config.js b/bootstrap-languages/file-storage/rollup.config.js new file mode 100644 index 000000000..0e637b82c --- /dev/null +++ b/bootstrap-languages/file-storage/rollup.config.js @@ -0,0 +1,62 @@ +import svelte from 'rollup-plugin-svelte'; +import resolve from '@rollup/plugin-node-resolve'; +import commonjs from '@rollup/plugin-commonjs'; +//import { terser } from 'rollup-plugin-terser'; +import sveltePreprocess from 'svelte-preprocess'; +import postcss from "rollup-plugin-postcss"; +import { string } from 'rollup-plugin-string' +import dna from "@perspect3vism/rollup-plugin-dna"; + +const production = !process.env.ROLLUP_WATCH; + +export default { + input: 'index.js', + output: { + sourcemap: true, + format: 'cjs', + name: 'NoteIpfs', + file: 'build/bundle.js' + }, + plugins: [ + string({ + include: 'build/*.js' + }), + svelte({ + // enable run-time checks when not in production + dev: !production, + // we'll extract any component CSS out into + // a separate file - better for performance + //css: css => { + // css.write('bundle.css'); + //}, + preprocess: sveltePreprocess(), + }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ['svelte'] + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + ['sass', { + includePaths: [ + './src/ui/theme', + './node_modules' + ] + }] + ] + }), + dna(), + ], + watch: { + clearScreen: false + } +} diff --git a/bootstrap-languages/file-storage/tsconfig.json b/bootstrap-languages/file-storage/tsconfig.json new file mode 100644 index 000000000..cfbc9c197 --- /dev/null +++ b/bootstrap-languages/file-storage/tsconfig.json @@ -0,0 +1,28 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "Svelte", + "compilerOptions": { + "moduleResolution": "node", + "target": "es2017", + /** + Svelte Preprocess cannot figure out whether you have a value or a type, so tell TypeScript + to enforce using `import type` instead of `import` for Types. + */ + "importsNotUsedAsValues": "error", + "isolatedModules": true, + /** + To have warnings/errors of the Svelte compiler at the correct position, + enable source maps by default. + */ + "sourceMap": true, + /** Requests the runtime types from the svelte modules by default. Needed for TS files or else you get errors. */ + "types": ["svelte", "node"], + + "strict": false, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true + }, + "include": ["*.ts"], + "exclude": ["node_modules/*", "__sapper__/*", "public/*"], +} \ No newline at end of file diff --git a/bootstrap-languages/file-storage/types.ts b/bootstrap-languages/file-storage/types.ts new file mode 100644 index 000000000..5a8d39dde --- /dev/null +++ b/bootstrap-languages/file-storage/types.ts @@ -0,0 +1,13 @@ +import { ExpressionGeneric } from "@perspect3vism/ad4m"; + +export type EntryHash = Uint8Array; + +export class FileMetadata { + name: string; + size: number; + file_type: string; + checksum: string; + chunks_hashes: Array; +} + +export class FileExpression extends ExpressionGeneric(FileMetadata) {} ; diff --git a/bootstrap-languages/language-language/.gitignore b/bootstrap-languages/language-language/.gitignore new file mode 100644 index 000000000..b99cc4259 --- /dev/null +++ b/bootstrap-languages/language-language/.gitignore @@ -0,0 +1,12 @@ +*.dna +hc-dna/zomes/tests/node_modules +hc-dna/.cargo +hc-dna/target +build/* + +*.js +*.js.map +!rollup.config.js +!dna.js + +node_modules \ No newline at end of file diff --git a/bootstrap-languages/language-language/README.md b/bootstrap-languages/language-language/README.md new file mode 100644 index 000000000..41ba61753 --- /dev/null +++ b/bootstrap-languages/language-language/README.md @@ -0,0 +1,17 @@ +# Language: languages + +This is a Language about Languages - a way to publish and make available Languages to others. + +## Build overview + +The whole project compiles and bundles to one file: `build/bundle.js`. + +This happens in two steps: +1. The *Icons* (AD4M-speak for UI components) [ConstructorIcon.svelte](ConstructorIcon.svelte) and [Icon.svelte](Icon.svelte) get compiled to `build/ConstructorIcon.js` and `build/Icon.js` respectively as web components. This first step is configured with [rollup.config.icons.js](rollup.config.icons.js) +2. [index.ts](index.ts) gets compiled and bundled to `build/bundle.js`. During this bundling step, `rollup-plugin-string` is used to include the two web component files that represent the Icons as string literals inside the resulting bundle. + +## Injected context + +The `create()` function returned by the resulting `bundle.js` will receive a parameter when executed inside Perspectivism: an instance of [LanguageContext](../../ad4m/LanguageContext.ts). This includes the Agent object and interfaces to storage implementations - currently only IPFS but very soon Holochain and others. + +Here, the IPFS object gets passed on to the constructor of the [ExpressionAdapter](adapter.ts) so it can be used to store expression in IPFS files. diff --git a/bootstrap-languages/language-language/adapter.ts b/bootstrap-languages/language-language/adapter.ts new file mode 100644 index 000000000..dfc5e118e --- /dev/null +++ b/bootstrap-languages/language-language/adapter.ts @@ -0,0 +1,41 @@ +import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext } from "@perspect3vism/ad4m"; +import { CloudflarePutAdapter } from "./putAdapter"; +import axios from "axios"; +import { PROXY_URL } from "."; + +export default class Adapter implements ExpressionAdapter { + putAdapter: PublicSharing; + + constructor(context: LanguageContext) { + this.putAdapter = new CloudflarePutAdapter(context); + } + + async get(address: Address): Promise { + //Check the first two characters of address are equal to Qm + if (address.substring(0, 2) != "Qm") { + console.error("LanguageLanguage.get(): The address is not a valid hash"); + return null; + } + const metaDataKey = `meta-${address}`; + + let presignedUrl; + try { + const getPresignedUrl = await axios.get(PROXY_URL+`?key=${metaDataKey}`); + presignedUrl = getPresignedUrl.data.url; + } catch (e) { + console.error("Get meta information failed at getting presigned url", address); + return null; + } + + let metaObject; + try { + const getMetaObject = await axios.get(presignedUrl); + metaObject = getMetaObject.data; + } catch (e) { + console.error("Get meta information failed at getting meta information", presignedUrl); + return null; + } + + return metaObject; + } +} diff --git a/bootstrap-languages/language-language/index.ts b/bootstrap-languages/language-language/index.ts new file mode 100644 index 000000000..ae7903aa0 --- /dev/null +++ b/bootstrap-languages/language-language/index.ts @@ -0,0 +1,23 @@ +import type { Address, Language, HolochainLanguageDelegate, LanguageContext, Interaction, ExpressionUI } from "@perspect3vism/ad4m"; +import LangAdapter from "./languageAdapter"; +import Adapter from "./adapter"; + +export const name = "languages"; + +export const PROXY_URL = "https://bootstrap-store-gateway.perspect3vism.workers.dev"; + +function interactions(expression: Address): Interaction[] { + return []; +} + +export default async function create(context: LanguageContext): Promise { + const expressionAdapter = new Adapter(context); + const languageAdapter = new LangAdapter(context); + + return { + name, + expressionAdapter, + languageAdapter, + interactions, + } as Language; +} diff --git a/bootstrap-languages/language-language/languageAdapter.ts b/bootstrap-languages/language-language/languageAdapter.ts new file mode 100644 index 000000000..1430a7a3d --- /dev/null +++ b/bootstrap-languages/language-language/languageAdapter.ts @@ -0,0 +1,40 @@ +import type { Address, LanguageAdapter, PublicSharing, LanguageContext } from "@perspect3vism/ad4m"; +import axios from "axios"; +import { PROXY_URL } from "."; +import XMLHttpRequest from 'xhr2'; + +export default class LangAdapter implements LanguageAdapter { + putAdapter: PublicSharing; + + constructor(context: LanguageContext) { + } + + async getLanguageSource(address: Address): Promise { + //Check the first two characters of address are equal to Qm + if (address.substring(0, 2) != "Qm") { + console.error("LanguageLanguage.getLanguageSource(): The address is not a valid hash"); + return ""; + } + const cid = address.toString(); + + let presignedUrl; + try { + const getPresignedUrl = await axios.get(PROXY_URL+`?key=${cid}`); + presignedUrl = getPresignedUrl.data.url; + } catch (e) { + console.error("Get language source failed at getting presigned url", address); + throw (e) + } + + let languageSource; + try { + const getLanguageSource = await axios.get(presignedUrl); + languageSource = getLanguageSource.data; + } catch (e) { + console.error("Get language source failed at getting language source", address); + throw (e) + } + + return languageSource; + } +} diff --git a/bootstrap-languages/language-language/package.json b/bootstrap-languages/language-language/package.json new file mode 100644 index 000000000..a7c893ead --- /dev/null +++ b/bootstrap-languages/language-language/package.json @@ -0,0 +1,36 @@ +{ + "name": "@perspect3vism/language-language", + "version": "0.3.2", + "description": "An AD4M Language for storing of language bundles on Cloudflare", + "main": "index.js", + "scripts": { + "test": "echo \"No language language integration tests\"", + "build": "tsc && rollup -c", + "dev": "tsc && rollup -c rollup.config.icons.js && rollup -c -w" + }, + "author": "joshuadparkin@gmail.com", + "license": "ISC", + "devDependencies": { + "@perspect3vism/ad4m": "*", + "@rollup/plugin-commonjs": "^14.0.0", + "@rollup/plugin-node-resolve": "^8.0.0", + "@rollup/plugin-typescript": "^4.0.0", + "@tsconfig/svelte": "^1.0.0", + "ipfs-core-types": "0.10.1", + "rollup": "^2.3.4", + "rollup-plugin-postcss": "^3.1.8", + "rollup-plugin-string": "^3.0.0", + "rollup-plugin-svelte": "^6.0.0", + "rollup-plugin-terser": "^7.0.0", + "svelte": "^3.0.0", + "svelte-check": "^1.0.0", + "svelte-preprocess": "^4.0.0", + "tslib": "^2.0.0", + "typescript": "^4.2.4" + }, + "dependencies": { + "@types/node": "^18.0.0", + "axios": "^0.26.1", + "xhr2": "^0.2.1" + } +} diff --git a/bootstrap-languages/language-language/putAdapter.ts b/bootstrap-languages/language-language/putAdapter.ts new file mode 100644 index 000000000..03505f4f4 --- /dev/null +++ b/bootstrap-languages/language-language/putAdapter.ts @@ -0,0 +1,60 @@ +import type { Address, AgentService, PublicSharing, LanguageContext, LanguageLanguageInput} from "@perspect3vism/ad4m"; +import type { IPFS } from "ipfs-core-types" +import axios from "axios"; +import https from "https"; +import { PROXY_URL } from "."; + +export class CloudflarePutAdapter implements PublicSharing { + #agent: AgentService; + #IPFS: IPFS; + + constructor(context: LanguageContext) { + this.#agent = context.agent; + this.#IPFS = context.IPFS; + } + + async createPublic(language: LanguageLanguageInput): Promise
{ + const ipfsAddress = await this.#IPFS.add( + { content: language.bundle.toString()}, + { onlyHash: true}, + ); + // @ts-ignore + const hash = ipfsAddress.cid.toString(); + + if(hash != language.meta.address) + throw new Error(`Language Persistence: Can't store language. Address stated in meta differs from actual file\nWanted: ${language.meta.address}\nGot: ${hash}`) + + const agent = this.#agent; + const expression = agent.createSignedExpression(language.meta); + + //Build the key value object for the meta object + const key = `meta-${hash}`; + const metaPostData = { + key: key, + // Content of the new object. + value: JSON.stringify(expression), + }; + //Save the meta information to the KV store + const httpsAgent = new https.Agent({ + rejectUnauthorized: false + }); + const metaPostResult = await axios.post(PROXY_URL, metaPostData, { httpsAgent }); + if (metaPostResult.status != 200) { + console.error("Upload language meta data gets error: ", metaPostResult); + } + + //Build the key value object for the language bundle + const languageBundleBucketParams = { + key: hash, + // Content of the new object. + value: language.bundle.toString(), + }; + //Save the language bundle to the KV store + const bundlePostResult = await axios.post(PROXY_URL, languageBundleBucketParams, { httpsAgent }); + if (bundlePostResult.status != 200) { + console.error("Upload language bundle data gets error: ", metaPostResult); + } + + return hash as Address; + } +} diff --git a/bootstrap-languages/language-language/rollup.config.js b/bootstrap-languages/language-language/rollup.config.js new file mode 100644 index 000000000..983a568e1 --- /dev/null +++ b/bootstrap-languages/language-language/rollup.config.js @@ -0,0 +1,60 @@ +import svelte from "rollup-plugin-svelte"; +import resolve from "@rollup/plugin-node-resolve"; +import commonjs from "@rollup/plugin-commonjs"; +//import { terser } from 'rollup-plugin-terser'; +import sveltePreprocess from "svelte-preprocess"; +import postcss from "rollup-plugin-postcss"; +import { string } from "rollup-plugin-string"; + +const production = !process.env.ROLLUP_WATCH; + +export default { + input: "index.js", + output: { + sourcemap: true, + format: "cjs", + name: "LanguageLanguage", + file: "build/bundle.js", + }, + plugins: [ + string({ + include: "build/*.js", + }), + svelte({ + // enable run-time checks when not in production + dev: !production, + // we'll extract any component CSS out into + // a separate file - better for performance + //css: css => { + // css.write('bundle.css'); + //}, + preprocess: sveltePreprocess(), + }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: false, + dedupe: ["svelte"], + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + [ + "sass", + { + includePaths: ["./src/ui/theme", "./node_modules"], + }, + ], + ], + }) + ], + watch: { + clearScreen: false, + }, +}; diff --git a/bootstrap-languages/language-language/tsconfig.json b/bootstrap-languages/language-language/tsconfig.json new file mode 100644 index 000000000..cfbc9c197 --- /dev/null +++ b/bootstrap-languages/language-language/tsconfig.json @@ -0,0 +1,28 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "Svelte", + "compilerOptions": { + "moduleResolution": "node", + "target": "es2017", + /** + Svelte Preprocess cannot figure out whether you have a value or a type, so tell TypeScript + to enforce using `import type` instead of `import` for Types. + */ + "importsNotUsedAsValues": "error", + "isolatedModules": true, + /** + To have warnings/errors of the Svelte compiler at the correct position, + enable source maps by default. + */ + "sourceMap": true, + /** Requests the runtime types from the svelte modules by default. Needed for TS files or else you get errors. */ + "types": ["svelte", "node"], + + "strict": false, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true + }, + "include": ["*.ts"], + "exclude": ["node_modules/*", "__sapper__/*", "public/*"], +} \ No newline at end of file diff --git a/bootstrap-languages/language-language/utils.ts b/bootstrap-languages/language-language/utils.ts new file mode 100644 index 000000000..7aa0c9d24 --- /dev/null +++ b/bootstrap-languages/language-language/utils.ts @@ -0,0 +1,10 @@ +import type { Readable } from "stream"; + +export async function streamToString(stream: Readable): Promise { + return await new Promise((resolve, reject) => { + const chunks: Uint8Array[] = []; + stream.on('data', (chunk) => chunks.push(chunk)); + stream.on('error', reject); + stream.on('end', () => resolve(Buffer.concat(chunks).toString('utf-8'))); + }) +} diff --git a/bootstrap-languages/neighbourhood-language/.gitignore b/bootstrap-languages/neighbourhood-language/.gitignore new file mode 100644 index 000000000..b99cc4259 --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/.gitignore @@ -0,0 +1,12 @@ +*.dna +hc-dna/zomes/tests/node_modules +hc-dna/.cargo +hc-dna/target +build/* + +*.js +*.js.map +!rollup.config.js +!dna.js + +node_modules \ No newline at end of file diff --git a/bootstrap-languages/neighbourhood-language/adapter.ts b/bootstrap-languages/neighbourhood-language/adapter.ts new file mode 100644 index 000000000..8a42b2dd6 --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/adapter.ts @@ -0,0 +1,75 @@ +import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext, AgentService } from "@perspect3vism/ad4m"; +import type { IPFS } from "ipfs-core-types" +import axios from "axios"; +import https from "https"; +import { PROXY_URL } from "."; + +class NeighbourhoodPutAdapter implements PublicSharing { + #agent: AgentService; + #IPFS: IPFS + + constructor(context: LanguageContext) { + this.#agent = context.agent; + this.#IPFS = context.IPFS; + } + + async createPublic(neighbourhood: object): Promise
{ + const ipfsAddress = await this.#IPFS.add( + { content: JSON.stringify(neighbourhood)}, + { onlyHash: true}, + ); + // @ts-ignore + const hash = ipfsAddress.cid.toString(); + + const agent = this.#agent; + const expression = agent.createSignedExpression(neighbourhood); + + //Build the key value object for the neighbourhood object + const key = hash; + const neighbourhoodPostData = { + key: key, + // Content of the new object. + value: JSON.stringify(expression), + }; + //Save the neighbourhood information to the KV store + const httpsAgent = new https.Agent({ + rejectUnauthorized: false + }); + const neighbourhoodPostResult = await axios.post(PROXY_URL, neighbourhoodPostData, { httpsAgent }); + if (neighbourhoodPostResult.status != 200) { + console.error("Upload neighbourhood data gets error: ", neighbourhoodPostResult); + } + + return hash as Address; + } +} + +export default class Adapter implements ExpressionAdapter { + putAdapter: PublicSharing; + + constructor(context: LanguageContext) { + this.putAdapter = new NeighbourhoodPutAdapter(context); + } + + async get(address: Address): Promise { + const cid = address.toString(); + + let presignedUrl; + try { + const getPresignedUrl = await axios.get(PROXY_URL+`?key=${cid}`); + presignedUrl = getPresignedUrl.data.url; + } catch (e) { + console.error("Get neighbourhood failed at getting presigned url", e); + } + + let neighbourhoodObject; + try { + const getneighbourhoodObject = await axios.get(presignedUrl); + neighbourhoodObject = getneighbourhoodObject.data; + } catch (e) { + console.error("Get meta information failed at getting meta information", e); + } + + return neighbourhoodObject; + } +} diff --git a/bootstrap-languages/neighbourhood-language/index.ts b/bootstrap-languages/neighbourhood-language/index.ts new file mode 100644 index 000000000..cc7c7c032 --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/index.ts @@ -0,0 +1,34 @@ +import type { Address, Language, LanguageContext, ExpressionUI, Interaction } from "@perspect3vism/ad4m"; +import Adapter from "./adapter"; + +function interactions(expression: Address): Interaction[] { + return []; +} + +export class UI implements ExpressionUI { + icon(): string { + return ""; + } + + constructorIcon(): string { + return ""; + } +} + +export const name = "neighbourhood-store"; + +export const PROXY_URL = "https://bootstrap-store-gateway.perspect3vism.workers.dev/"; + +export default async function create(context: LanguageContext): Promise { + //const Holochain = context.Holochain as HolochainLanguageDelegate; + //await Holochain.registerDNAs([{ file: DNA, nick: DNA_NICK }]); + const expressionAdapter = new Adapter(context); + //const expressionUI = new UI(); + + return { + name, + expressionAdapter, + //expressionUI, + interactions, + } as Language; +} diff --git a/bootstrap-languages/neighbourhood-language/package.json b/bootstrap-languages/neighbourhood-language/package.json new file mode 100644 index 000000000..55dcc2213 --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/package.json @@ -0,0 +1,35 @@ +{ + "name": "@perspect3vism/neighbourhood-language", + "version": "0.5.0", + "description": "This is a Language for storing AD4M neighbourhood objects", + "main": "index.js", + "scripts": { + "test": "echo \"No neighbourhood language integration tests\"", + "build": "tsc && rollup -c", + "dev": "tsc && rollup -c -w" + }, + "author": "joshuadparkin@gmail.com", + "license": "ISC", + "devDependencies": { + "@perspect3vism/ad4m": "*", + "@rollup/plugin-commonjs": "^14.0.0", + "@rollup/plugin-node-resolve": "^8.0.0", + "@rollup/plugin-typescript": "^4.0.0", + "@tsconfig/svelte": "^1.0.0", + "ipfs-core-types": "0.10.1", + "rollup": "^2.3.4", + "rollup-plugin-postcss": "^3.1.8", + "rollup-plugin-string": "^3.0.0", + "rollup-plugin-svelte": "^6.0.0", + "rollup-plugin-terser": "^7.0.0", + "svelte": "^3.0.0", + "svelte-check": "^1.0.0", + "svelte-preprocess": "^4.0.0", + "tslib": "^2.0.0", + "typescript": "^4.5.5" + }, + "dependencies": { + "@types/node": "^18.0.0", + "axios": "^0.26.1" + } +} diff --git a/bootstrap-languages/neighbourhood-language/rollup.config.js b/bootstrap-languages/neighbourhood-language/rollup.config.js new file mode 100644 index 000000000..86f4995c4 --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/rollup.config.js @@ -0,0 +1,59 @@ +import svelte from 'rollup-plugin-svelte'; +import resolve from '@rollup/plugin-node-resolve'; +import commonjs from '@rollup/plugin-commonjs'; +import sveltePreprocess from 'svelte-preprocess'; +import postcss from "rollup-plugin-postcss"; +import { string } from 'rollup-plugin-string' + +const production = !process.env.ROLLUP_WATCH; + +export default { + input: 'index.js', + output: { + sourcemap: true, + format: 'cjs', + name: 'NoteIpfs', + file: 'build/bundle.js' + }, + plugins: [ + string({ + include: 'build/*.js' + }), + svelte({ + // enable run-time checks when not in production + dev: !production, + // we'll extract any component CSS out into + // a separate file - better for performance + //css: css => { + // css.write('bundle.css'); + //}, + preprocess: sveltePreprocess(), + }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: false, + dedupe: ['svelte'] + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + ['sass', { + includePaths: [ + './src/ui/theme', + './node_modules' + ] + }] + ] + }) + ], + watch: { + clearScreen: false + } +} diff --git a/bootstrap-languages/neighbourhood-language/tsconfig.json b/bootstrap-languages/neighbourhood-language/tsconfig.json new file mode 100644 index 000000000..cfbc9c197 --- /dev/null +++ b/bootstrap-languages/neighbourhood-language/tsconfig.json @@ -0,0 +1,28 @@ +{ + "$schema": "https://json.schemastore.org/tsconfig", + "display": "Svelte", + "compilerOptions": { + "moduleResolution": "node", + "target": "es2017", + /** + Svelte Preprocess cannot figure out whether you have a value or a type, so tell TypeScript + to enforce using `import type` instead of `import` for Types. + */ + "importsNotUsedAsValues": "error", + "isolatedModules": true, + /** + To have warnings/errors of the Svelte compiler at the correct position, + enable source maps by default. + */ + "sourceMap": true, + /** Requests the runtime types from the svelte modules by default. Needed for TS files or else you get errors. */ + "types": ["svelte", "node"], + + "strict": false, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true + }, + "include": ["*.ts"], + "exclude": ["node_modules/*", "__sapper__/*", "public/*"], +} \ No newline at end of file diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/commit.rs b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/commit.rs index 6d36e3f5c..e766de24b 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/commit.rs +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/link_adapter/commit.rs @@ -143,21 +143,7 @@ pub fn broadcast_current() -> SocialContext }; let recent_agents = get_active_agents()?; - - let now = get_now()?.time(); remote_signal(signal_data.get_sb()?, recent_agents.clone())?; - let after = get_now()?.time(); - - if get_now()?.second() % 10 == 0 { - debug!( - "===PerspectiveDiffSync.broadcast_current(): Sending signal to agents: {:#?}\nme: {:#?}\nrevision: {:#?}", - recent_agents, agent_info()?.agent_latest_pubkey, current_revision.hash - ); - debug!( - "===PerspectiveDiffSync.send_revision_signal() - Profiling: Took {} to send signal to active agents", - (after - now).num_milliseconds() - ); - }; }; Ok(current.map(|rev| rev.hash)) } diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/telepresence/signal.rs b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/telepresence/signal.rs index 2b4edeac9..3fa833b36 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/telepresence/signal.rs +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/perspective_diff_sync/src/telepresence/signal.rs @@ -7,7 +7,10 @@ use crate::{errors::SocialContextResult, inputs::SignalData}; pub fn send_signal(signal_data: SignalData) -> SocialContextResult { let agent = get_dids_agent_key(signal_data.remote_agent_did.clone())?; - debug!("PerspectiveDiffSync.send_signal() to DID: {:?} / HC: {:?}", signal_data.remote_agent_did, agent); + // debug!( + // "PerspectiveDiffSync.send_signal() to DID: {:?} / HC: {:?}", + // signal_data.remote_agent_did, agent + // ); match agent { Some(agent) => remote_signal(signal_data.payload.clone().get_sb()?, vec![agent])?, None => { @@ -20,7 +23,7 @@ pub fn send_signal(signal_data: SignalData) -> SocialContextResult SocialContextResult { let active_agents = get_active_agents()?; - debug!("PerspectiveDiffSync.send_broadcast() to: {:?}", active_agents); + //debug!("PerspectiveDiffSync.send_broadcast() to: {:?}", active_agents); remote_signal(data.clone().get_sb()?, active_agents)?; Ok(data) diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/package-lock.json b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/package-lock.json deleted file mode 100644 index 5ee7da332..000000000 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/package-lock.json +++ /dev/null @@ -1,4687 +0,0 @@ -{ - "name": "perspective-diff-sync-tests", - "version": "0.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "perspective-diff-sync-tests", - "version": "0.0.0", - "license": "ISC", - "dependencies": { - "@holochain/client": "0.12.0", - "@holochain/tryorama": "0.11.1", - "@perspect3vism/ad4m": "^0.2.12", - "@types/lodash": "^4.14.158", - "@types/node": "^14.0.14", - "blake2b": "^2.1.3", - "divide-bigint": "^1.0.4", - "faker": "5.5.3", - "lodash": "^4.17.19", - "tape-promise": "^4.0.0", - "ts-node": "^10.8.0", - "typescript": "^4.2.4" - }, - "devDependencies": { - "@types/faker": "^5.5.3", - "@types/tape-promise": "^4.0.1", - "tape": "^5.5.3" - } - }, - "node_modules/@apollo/client": { - "version": "3.6.9", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.6.9.tgz", - "integrity": "sha512-Y1yu8qa2YeaCUBVuw08x8NHenFi0sw2I3KCu7Kw9mDSu86HmmtHJkCAifKVrN2iPgDTW/BbP3EpSV8/EQCcxZA==", - "dependencies": { - "@graphql-typed-document-node/core": "^3.1.1", - "@wry/context": "^0.6.0", - "@wry/equality": "^0.5.0", - "@wry/trie": "^0.3.0", - "graphql-tag": "^2.12.6", - "hoist-non-react-statics": "^3.3.2", - "optimism": "^0.16.1", - "prop-types": "^15.7.2", - "symbol-observable": "^4.0.0", - "ts-invariant": "^0.10.3", - "tslib": "^2.3.0", - "zen-observable-ts": "^1.2.5" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0", - "graphql-ws": "^5.5.5", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "subscriptions-transport-ws": "^0.9.0 || ^0.11.0" - }, - "peerDependenciesMeta": { - "graphql-ws": { - "optional": true - }, - "react": { - "optional": true - }, - "subscriptions-transport-ws": { - "optional": true - } - } - }, - "node_modules/@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@dabh/diagnostics": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", - "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", - "dependencies": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.0.0" - } - }, - "node_modules/@graphql-typed-document-node/core": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz", - "integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==", - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/@holochain/client": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@holochain/client/-/client-0.12.0.tgz", - "integrity": "sha512-pvrB6Gdc6488iR3VZXoq5QKzoAPTGi0y69Ktrtgr/IZEvtSSHBqHeMhyEjXCa7iS8b1gXsL/HAvq47rs8mu50A==", - "dependencies": { - "@holochain/serialization": "^0.1.0-beta-rc.3", - "@msgpack/msgpack": "^2.7.2", - "@tauri-apps/api": "^1.2.0", - "emittery": "^1.0.1", - "isomorphic-ws": "^5.0.0", - "js-base64": "^3.7.3", - "lodash-es": "^4.17.21", - "tweetnacl": "^1.0.3" - }, - "engines": { - "node": "^14.13.1 || >=16.0.0 || >=18.0.0" - } - }, - "node_modules/@holochain/serialization": { - "version": "0.1.0-beta-rc.3", - "resolved": "https://registry.npmjs.org/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz", - "integrity": "sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw==" - }, - "node_modules/@holochain/tryorama": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/@holochain/tryorama/-/tryorama-0.11.1.tgz", - "integrity": "sha512-L9xJUI7U0aP0K2TSa5kIpOx5wx8n66DeuD06CSVmoZeJTv5lpiDhzEtpdOqyiXHXISZKmLIsN/HW9kGkSGURcw==", - "dependencies": { - "@holochain/client": "^0.12.0", - "get-port": "^6.1.2", - "lodash": "^4.17.21", - "uuid": "^8.3.2", - "winston": "^3.8.2", - "ws": "^8.11.0" - }, - "engines": { - "node": "^14.13.1 || >=16.0.0 || >=18.0.0" - } - }, - "node_modules/@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "dependencies": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@msgpack/msgpack": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.7.2.tgz", - "integrity": "sha512-rYEi46+gIzufyYUAoHDnRzkWGxajpD9vVXFQ3g1vbjrBm6P7MBmm+s/fqPa46sxa+8FOUdEuRQKaugo5a4JWpw==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/@perspect3vism/ad4m": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/@perspect3vism/ad4m/-/ad4m-0.2.15.tgz", - "integrity": "sha512-hIJV5j064SQyxJXiMoHzZGQ5QowA+bxDuXsWGcfAXBN6EpxpFSoqvRuYqGR7VjENg5CV9hL9gjOVUYdhFdRt4Q==", - "dependencies": { - "@apollo/client": "3.6.9", - "@holochain/client": "0.12.0", - "@types/jest": "^26.0.14", - "class-validator": "^0.13.1", - "express": "^4.18.1", - "graphql": "^15.7.2", - "reflect-metadata": "^0.1.13", - "type-graphql": "^1.1.1" - } - }, - "node_modules/@tauri-apps/api": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-1.2.0.tgz", - "integrity": "sha512-lsI54KI6HGf7VImuf/T9pnoejfgkNoXveP14pVV7XarrQ46rOejIVJLFqHI9sRReJMGdh2YuCoI3cc/yCWCsrw==", - "engines": { - "node": ">= 14.6.0", - "npm": ">= 6.6.0", - "yarn": ">= 1.19.1" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/tauri" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" - }, - "node_modules/@types/faker": { - "version": "5.5.9", - "resolved": "https://registry.npmjs.org/@types/faker/-/faker-5.5.9.tgz", - "integrity": "sha512-uCx6mP3UY5SIO14XlspxsGjgaemrxpssJI0Ol+GfhxtcKpv9pgRZYsS4eeKeHVLje6Qtc8lGszuBI461+gVZBA==", - "dev": true - }, - "node_modules/@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" - }, - "node_modules/@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "dependencies": { - "@types/istanbul-lib-coverage": "*" - } - }, - "node_modules/@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "dependencies": { - "@types/istanbul-lib-report": "*" - } - }, - "node_modules/@types/jest": { - "version": "26.0.24", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.24.tgz", - "integrity": "sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w==", - "dependencies": { - "jest-diff": "^26.0.0", - "pretty-format": "^26.0.0" - } - }, - "node_modules/@types/lodash": { - "version": "4.14.182", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz", - "integrity": "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==" - }, - "node_modules/@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" - }, - "node_modules/@types/node": { - "version": "14.18.22", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.22.tgz", - "integrity": "sha512-qzaYbXVzin6EPjghf/hTdIbnVW1ErMx8rPzwRNJhlbyJhu2SyqlvjGOY/tbUt6VFyzg56lROcOeSQRInpt63Yw==" - }, - "node_modules/@types/semver": { - "version": "7.3.12", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.12.tgz", - "integrity": "sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==" - }, - "node_modules/@types/tape": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@types/tape/-/tape-4.13.2.tgz", - "integrity": "sha512-V1ez/RtYRGN9cNYApw5xf27DpMkTB0033X6a2i3KUmKhSojBfbWN0i3EgZxboUG96WJLHLdOyZ01aiZwVW5aSA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/tape-promise": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/tape-promise/-/tape-promise-4.0.1.tgz", - "integrity": "sha512-1yBeq9y0EmJ2RpxfXMPrFeD3yMetBapY9zArTexp/wCRdBToJac/y//rtcZZjmiArgodTqz0RrK0VxxySoKyVg==", - "dev": true, - "dependencies": { - "@types/tape": "*" - } - }, - "node_modules/@types/triple-beam": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.2.tgz", - "integrity": "sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==" - }, - "node_modules/@types/yargs": { - "version": "15.0.15", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz", - "integrity": "sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==", - "dependencies": { - "@types/yargs-parser": "*" - } - }, - "node_modules/@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" - }, - "node_modules/@wry/context": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.6.1.tgz", - "integrity": "sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@wry/equality": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.3.tgz", - "integrity": "sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@wry/trie": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.2.tgz", - "integrity": "sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dependencies": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" - }, - "node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "node_modules/array.prototype.every": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/array.prototype.every/-/array.prototype.every-1.1.3.tgz", - "integrity": "sha512-vWnriJI//SOMOWtXbU/VXhJ/InfnNHPF6BLKn5WfY8xXy+NWql0fUy20GO3sdqBhCAO+qw8S/E5nJiZX+QFdCA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "is-string": "^1.0.7" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" - }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/b4a": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.0.tgz", - "integrity": "sha512-fsTxXxj1081Yq5MOQ06gZ5+e2QcSyP2U6NofdOWyq+lrNI4IjkZ+fLVmoQ6uUCiNg1NWePMMVq93vOTdbJmErw==" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/blake2b": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/blake2b/-/blake2b-2.1.4.tgz", - "integrity": "sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A==", - "dependencies": { - "blake2b-wasm": "^2.4.0", - "nanoassert": "^2.0.0" - } - }, - "node_modules/blake2b-wasm": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz", - "integrity": "sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w==", - "dependencies": { - "b4a": "^1.0.1", - "nanoassert": "^2.0.0" - } - }, - "node_modules/body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", - "dependencies": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/class-validator": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.13.2.tgz", - "integrity": "sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw==", - "dependencies": { - "libphonenumber-js": "^1.9.43", - "validator": "^13.7.0" - } - }, - "node_modules/color": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", - "dependencies": { - "color-convert": "^1.9.3", - "color-string": "^1.6.0" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/color/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/colorspace": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", - "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", - "dependencies": { - "color": "^3.1.3", - "text-hex": "1.0.x" - } - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dependencies": { - "safe-buffer": "5.2.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" - }, - "node_modules/deep-equal": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz", - "integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "es-get-iterator": "^1.1.1", - "get-intrinsic": "^1.0.1", - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.2", - "is-regex": "^1.1.1", - "isarray": "^2.0.5", - "object-is": "^1.1.4", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.3.0", - "side-channel": "^1.0.3", - "which-boxed-primitive": "^1.0.1", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==", - "dev": true - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "engines": { - "node": ">= 0.8", - "npm": "1.2.8000 || >= 1.4.16" - } - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/divide-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/divide-bigint/-/divide-bigint-1.0.4.tgz", - "integrity": "sha512-4BuHUgA1+iICOm6JZlourP3Zo/EQHh42/cSHP2hhoVGmgp6Pd1eJ8wt9c8v4gGfy8vBUFhQoO+BrZ90vuaugyg==" - }, - "node_modules/dotignore": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", - "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", - "dev": true, - "dependencies": { - "minimatch": "^3.0.4" - }, - "bin": { - "ignored": "bin/ignored" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "node_modules/emittery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-1.0.1.tgz", - "integrity": "sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ==", - "engines": { - "node": ">=14.16" - }, - "funding": { - "url": "https://github.com/sindresorhus/emittery?sponsor=1" - } - }, - "node_modules/enabled": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-get-iterator": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", - "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", - "dependencies": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/faker": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz", - "integrity": "sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g==" - }, - "node_modules/fecha": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" - }, - "node_modules/finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/fn.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" - }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.3" - } - }, - "node_modules/forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/get-port": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-6.1.2.tgz", - "integrity": "sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw==", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/graphql": { - "version": "15.8.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", - "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==", - "engines": { - "node": ">= 10.x" - } - }, - "node_modules/graphql-query-complexity": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz", - "integrity": "sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ==", - "dependencies": { - "lodash.get": "^4.4.2" - }, - "peerDependencies": { - "graphql": "^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/graphql-subscriptions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz", - "integrity": "sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g==", - "dependencies": { - "iterall": "^1.3.0" - }, - "peerDependencies": { - "graphql": "^0.10.5 || ^0.11.3 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0" - } - }, - "node_modules/graphql-tag": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", - "dependencies": { - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-dynamic-import": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-dynamic-import/-/has-dynamic-import-2.0.1.tgz", - "integrity": "sha512-X3fbtsZmwb6W7fJGR9o7x65fZoodygCrZ3TVycvghP62yYQfS0t4RS0Qcz+j5tQYUKeSWS09tHkWW6WhFV3XhQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - }, - "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "dependencies": { - "has-bigints": "^1.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "dependencies": { - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz", - "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "node_modules/isomorphic-ws": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", - "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", - "peerDependencies": { - "ws": "*" - } - }, - "node_modules/iterall": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", - "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" - }, - "node_modules/jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - }, - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", - "engines": { - "node": ">= 10.14.2" - } - }, - "node_modules/js-base64": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz", - "integrity": "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" - }, - "node_modules/libphonenumber-js": { - "version": "1.10.13", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.13.tgz", - "integrity": "sha512-b74iyWmwb4GprAUPjPkJ11GTC7KX4Pd3onpJfKxYyY8y9Rbb4ERY47LvCMEDM09WD3thiLDMXtkfDK/AX+zT7Q==" - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" - }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" - }, - "node_modules/logform": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.5.1.tgz", - "integrity": "sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==", - "dependencies": { - "@colors/colors": "1.5.0", - "@types/triple-beam": "^1.3.2", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - } - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/nanoassert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-2.0.0.tgz", - "integrity": "sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA==" - }, - "node_modules/negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/one-time": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", - "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", - "dependencies": { - "fn.name": "1.x.x" - } - }, - "node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/optimism": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz", - "integrity": "sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==", - "dependencies": { - "@wry/context": "^0.6.0", - "@wry/trie": "^0.3.0" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "node_modules/pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "dependencies": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/pretty-format/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dependencies": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "dependencies": { - "side-channel": "^1.0.4" - }, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/readable-stream": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz", - "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/resumer": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", - "integrity": "sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w==", - "dev": true, - "dependencies": { - "through": "~2.3.4" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/safe-stable-stringify": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz", - "integrity": "sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dependencies": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - }, - "node_modules/serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", - "engines": { - "node": "*" - } - }, - "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string.prototype.trim": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.6.tgz", - "integrity": "sha512-8lMR2m+U0VJTPp6JjvJTtGyc4FIGq9CdRt7O9p6T0e6K4vjU+OP+SQJpbe/SBmRcCUIvNUnjsbmY6lnMp8MhsQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/symbol-observable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/tape": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/tape/-/tape-5.5.3.tgz", - "integrity": "sha512-hPBJZBL9S7bH9vECg/KSM24slGYV589jJr4dmtiJrLD71AL66+8o4b9HdZazXZyvnilqA7eE8z5/flKiy0KsBg==", - "dev": true, - "dependencies": { - "array.prototype.every": "^1.1.3", - "call-bind": "^1.0.2", - "deep-equal": "^2.0.5", - "defined": "^1.0.0", - "dotignore": "^0.1.2", - "for-each": "^0.3.3", - "get-package-type": "^0.1.0", - "glob": "^7.2.0", - "has": "^1.0.3", - "has-dynamic-import": "^2.0.1", - "inherits": "^2.0.4", - "is-regex": "^1.1.4", - "minimist": "^1.2.6", - "object-inspect": "^1.12.0", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "resolve": "^2.0.0-next.3", - "resumer": "^0.0.0", - "string.prototype.trim": "^1.2.5", - "through": "^2.3.8" - }, - "bin": { - "tape": "bin/tape" - } - }, - "node_modules/tape-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tape-promise/-/tape-promise-4.0.0.tgz", - "integrity": "sha512-mNi5yhWAKDuNgZCfFKeZbsXvraVOf+I8UZG+lf+aoRrzX4+jd4mpNBjYh16/VcpEMUtS0iFndBgnfxxZbtyLFw==", - "dependencies": { - "is-promise": "^2.1.0", - "onetime": "^2.0.0" - } - }, - "node_modules/tape/node_modules/resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", - "dev": true, - "dependencies": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/text-hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" - }, - "node_modules/ts-invariant": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz", - "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==", - "dependencies": { - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - }, - "node_modules/type-graphql": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/type-graphql/-/type-graphql-1.1.1.tgz", - "integrity": "sha512-iOOWVn0ehCYMukmnXStbkRwFE9dcjt7/oDcBS1JyQZo9CbhlIll4lHHps54HMEk4A4c8bUPd+DjK8w1/ZrxB4A==", - "hasInstallScript": true, - "dependencies": { - "@types/glob": "^7.1.3", - "@types/node": "*", - "@types/semver": "^7.3.3", - "glob": "^7.1.6", - "graphql-query-complexity": "^0.7.0", - "graphql-subscriptions": "^1.1.0", - "semver": "^7.3.2", - "tslib": "^2.0.1" - }, - "engines": { - "node": ">= 10.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typegraphql" - }, - "peerDependencies": { - "class-validator": ">=0.12.0", - "graphql": "^15.3.0" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" - }, - "node_modules/validator": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", - "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "dev": true, - "dependencies": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/which-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz", - "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==", - "dev": true, - "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/winston": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz", - "integrity": "sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==", - "dependencies": { - "@colors/colors": "1.5.0", - "@dabh/diagnostics": "^2.0.2", - "async": "^3.2.3", - "is-stream": "^2.0.0", - "logform": "^2.4.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "safe-stable-stringify": "^2.3.1", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.5.0" - }, - "engines": { - "node": ">= 12.0.0" - } - }, - "node_modules/winston-transport": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", - "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", - "dependencies": { - "logform": "^2.3.2", - "readable-stream": "^3.6.0", - "triple-beam": "^1.3.0" - }, - "engines": { - "node": ">= 6.4.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/ws": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz", - "integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "engines": { - "node": ">=6" - } - }, - "node_modules/zen-observable": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" - }, - "node_modules/zen-observable-ts": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz", - "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==", - "dependencies": { - "zen-observable": "0.8.15" - } - } - }, - "dependencies": { - "@apollo/client": { - "version": "3.6.9", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.6.9.tgz", - "integrity": "sha512-Y1yu8qa2YeaCUBVuw08x8NHenFi0sw2I3KCu7Kw9mDSu86HmmtHJkCAifKVrN2iPgDTW/BbP3EpSV8/EQCcxZA==", - "requires": { - "@graphql-typed-document-node/core": "^3.1.1", - "@wry/context": "^0.6.0", - "@wry/equality": "^0.5.0", - "@wry/trie": "^0.3.0", - "graphql-tag": "^2.12.6", - "hoist-non-react-statics": "^3.3.2", - "optimism": "^0.16.1", - "prop-types": "^15.7.2", - "symbol-observable": "^4.0.0", - "ts-invariant": "^0.10.3", - "tslib": "^2.3.0", - "zen-observable-ts": "^1.2.5" - } - }, - "@colors/colors": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", - "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==" - }, - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - } - }, - "@dabh/diagnostics": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", - "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", - "requires": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.0.0" - } - }, - "@graphql-typed-document-node/core": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.1.1.tgz", - "integrity": "sha512-NQ17ii0rK1b34VZonlmT2QMJFI70m0TRwbknO/ihlbatXyaktDhN/98vBiUU6kNBPljqGqyIrl2T4nY2RpFANg==", - "requires": {} - }, - "@holochain/client": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/@holochain/client/-/client-0.12.0.tgz", - "integrity": "sha512-pvrB6Gdc6488iR3VZXoq5QKzoAPTGi0y69Ktrtgr/IZEvtSSHBqHeMhyEjXCa7iS8b1gXsL/HAvq47rs8mu50A==", - "requires": { - "@holochain/serialization": "^0.1.0-beta-rc.3", - "@msgpack/msgpack": "^2.7.2", - "@tauri-apps/api": "^1.2.0", - "emittery": "^1.0.1", - "isomorphic-ws": "^5.0.0", - "js-base64": "^3.7.3", - "lodash-es": "^4.17.21", - "tweetnacl": "^1.0.3" - } - }, - "@holochain/serialization": { - "version": "0.1.0-beta-rc.3", - "resolved": "https://registry.npmjs.org/@holochain/serialization/-/serialization-0.1.0-beta-rc.3.tgz", - "integrity": "sha512-DJx4V2KXHVLciyOGjOYKTM/JLBpBEZ3RsPIRCgf7qmwhQdxXvhi2p+oFFRD51yUT5uC1/MzIVeJCl/R60PwFbw==" - }, - "@holochain/tryorama": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/@holochain/tryorama/-/tryorama-0.11.1.tgz", - "integrity": "sha512-L9xJUI7U0aP0K2TSa5kIpOx5wx8n66DeuD06CSVmoZeJTv5lpiDhzEtpdOqyiXHXISZKmLIsN/HW9kGkSGURcw==", - "requires": { - "@holochain/client": "^0.12.0", - "get-port": "^6.1.2", - "lodash": "^4.17.21", - "uuid": "^8.3.2", - "winston": "^3.8.2", - "ws": "^8.11.0" - } - }, - "@jest/types": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", - "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", - "requires": { - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", - "@types/node": "*", - "@types/yargs": "^15.0.0", - "chalk": "^4.0.0" - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", - "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.14", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", - "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" - }, - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@msgpack/msgpack": { - "version": "2.7.2", - "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.7.2.tgz", - "integrity": "sha512-rYEi46+gIzufyYUAoHDnRzkWGxajpD9vVXFQ3g1vbjrBm6P7MBmm+s/fqPa46sxa+8FOUdEuRQKaugo5a4JWpw==" - }, - "@perspect3vism/ad4m": { - "version": "0.2.15", - "resolved": "https://registry.npmjs.org/@perspect3vism/ad4m/-/ad4m-0.2.15.tgz", - "integrity": "sha512-hIJV5j064SQyxJXiMoHzZGQ5QowA+bxDuXsWGcfAXBN6EpxpFSoqvRuYqGR7VjENg5CV9hL9gjOVUYdhFdRt4Q==", - "requires": { - "@apollo/client": "3.6.9", - "@holochain/client": "0.12.0", - "@types/jest": "^26.0.14", - "class-validator": "^0.13.1", - "express": "^4.18.1", - "graphql": "^15.7.2", - "reflect-metadata": "^0.1.13", - "type-graphql": "^1.1.1" - } - }, - "@tauri-apps/api": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-1.2.0.tgz", - "integrity": "sha512-lsI54KI6HGf7VImuf/T9pnoejfgkNoXveP14pVV7XarrQ46rOejIVJLFqHI9sRReJMGdh2YuCoI3cc/yCWCsrw==" - }, - "@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" - }, - "@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" - }, - "@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" - }, - "@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" - }, - "@types/faker": { - "version": "5.5.9", - "resolved": "https://registry.npmjs.org/@types/faker/-/faker-5.5.9.tgz", - "integrity": "sha512-uCx6mP3UY5SIO14XlspxsGjgaemrxpssJI0Ol+GfhxtcKpv9pgRZYsS4eeKeHVLje6Qtc8lGszuBI461+gVZBA==", - "dev": true - }, - "@types/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==", - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/istanbul-lib-coverage": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", - "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==" - }, - "@types/istanbul-lib-report": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", - "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", - "requires": { - "@types/istanbul-lib-coverage": "*" - } - }, - "@types/istanbul-reports": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", - "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", - "requires": { - "@types/istanbul-lib-report": "*" - } - }, - "@types/jest": { - "version": "26.0.24", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-26.0.24.tgz", - "integrity": "sha512-E/X5Vib8BWqZNRlDxj9vYXhsDwPYbPINqKF9BsnSoon4RQ0D9moEuLD8txgyypFLH7J4+Lho9Nr/c8H0Fi+17w==", - "requires": { - "jest-diff": "^26.0.0", - "pretty-format": "^26.0.0" - } - }, - "@types/lodash": { - "version": "4.14.182", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.182.tgz", - "integrity": "sha512-/THyiqyQAP9AfARo4pF+aCGcyiQ94tX/Is2I7HofNRqoYLgN1PBoOWu2/zTA5zMxzP5EFutMtWtGAFRKUe961Q==" - }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==" - }, - "@types/node": { - "version": "14.18.22", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.22.tgz", - "integrity": "sha512-qzaYbXVzin6EPjghf/hTdIbnVW1ErMx8rPzwRNJhlbyJhu2SyqlvjGOY/tbUt6VFyzg56lROcOeSQRInpt63Yw==" - }, - "@types/semver": { - "version": "7.3.12", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.12.tgz", - "integrity": "sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==" - }, - "@types/tape": { - "version": "4.13.2", - "resolved": "https://registry.npmjs.org/@types/tape/-/tape-4.13.2.tgz", - "integrity": "sha512-V1ez/RtYRGN9cNYApw5xf27DpMkTB0033X6a2i3KUmKhSojBfbWN0i3EgZxboUG96WJLHLdOyZ01aiZwVW5aSA==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/tape-promise": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/tape-promise/-/tape-promise-4.0.1.tgz", - "integrity": "sha512-1yBeq9y0EmJ2RpxfXMPrFeD3yMetBapY9zArTexp/wCRdBToJac/y//rtcZZjmiArgodTqz0RrK0VxxySoKyVg==", - "dev": true, - "requires": { - "@types/tape": "*" - } - }, - "@types/triple-beam": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.2.tgz", - "integrity": "sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==" - }, - "@types/yargs": { - "version": "15.0.15", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.15.tgz", - "integrity": "sha512-IziEYMU9XoVj8hWg7k+UJrXALkGFjWJhn5QFEv9q4p+v40oZhSuC135M38st8XPjICL7Ey4TV64ferBGUoJhBg==", - "requires": { - "@types/yargs-parser": "*" - } - }, - "@types/yargs-parser": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz", - "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==" - }, - "@wry/context": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.6.1.tgz", - "integrity": "sha512-LOmVnY1iTU2D8tv4Xf6MVMZZ+juIJ87Kt/plMijjN20NMAXGmH4u8bS1t0uT74cZ5gwpocYueV58YwyI8y+GKw==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@wry/equality": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.3.tgz", - "integrity": "sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@wry/trie": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.2.tgz", - "integrity": "sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==", - "requires": { - "tslib": "^2.3.0" - } - }, - "accepts": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", - "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "requires": { - "mime-types": "~2.1.34", - "negotiator": "0.6.3" - } - }, - "acorn": { - "version": "8.8.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz", - "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==" - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" - }, - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" - }, - "array.prototype.every": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/array.prototype.every/-/array.prototype.every-1.1.3.tgz", - "integrity": "sha512-vWnriJI//SOMOWtXbU/VXhJ/InfnNHPF6BLKn5WfY8xXy+NWql0fUy20GO3sdqBhCAO+qw8S/E5nJiZX+QFdCA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "is-string": "^1.0.7" - } - }, - "async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==" - }, - "available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", - "dev": true - }, - "b4a": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.0.tgz", - "integrity": "sha512-fsTxXxj1081Yq5MOQ06gZ5+e2QcSyP2U6NofdOWyq+lrNI4IjkZ+fLVmoQ6uUCiNg1NWePMMVq93vOTdbJmErw==" - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "blake2b": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/blake2b/-/blake2b-2.1.4.tgz", - "integrity": "sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A==", - "requires": { - "blake2b-wasm": "^2.4.0", - "nanoassert": "^2.0.0" - } - }, - "blake2b-wasm": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz", - "integrity": "sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w==", - "requires": { - "b4a": "^1.0.1", - "nanoassert": "^2.0.0" - } - }, - "body-parser": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", - "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", - "requires": { - "bytes": "3.1.2", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.10.3", - "raw-body": "2.5.1", - "type-is": "~1.6.18", - "unpipe": "1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "bytes": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", - "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==" - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "class-validator": { - "version": "0.13.2", - "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.13.2.tgz", - "integrity": "sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw==", - "requires": { - "libphonenumber-js": "^1.9.43", - "validator": "^13.7.0" - } - }, - "color": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", - "requires": { - "color-convert": "^1.9.3", - "color-string": "^1.6.0" - }, - "dependencies": { - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - } - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "colorspace": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", - "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", - "requires": { - "color": "^3.1.3", - "text-hex": "1.0.x" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "content-disposition": { - "version": "0.5.4", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", - "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "requires": { - "safe-buffer": "5.2.1" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==" - }, - "cookie": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", - "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==" - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" - }, - "deep-equal": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz", - "integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "es-get-iterator": "^1.1.1", - "get-intrinsic": "^1.0.1", - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.2", - "is-regex": "^1.1.1", - "isarray": "^2.0.5", - "object-is": "^1.1.4", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.3.0", - "side-channel": "^1.0.3", - "which-boxed-primitive": "^1.0.1", - "which-collection": "^1.0.1", - "which-typed-array": "^1.1.2" - } - }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha512-Y2caI5+ZwS5c3RiNDJ6u53VhQHv+hHKwhkI1iHvceKUHw9Df6EK2zRLfjejRgMuCuxK7PfSWIMwWecceVvThjQ==", - "dev": true - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, - "destroy": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", - "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==" - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" - }, - "diff-sequences": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", - "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==" - }, - "divide-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/divide-bigint/-/divide-bigint-1.0.4.tgz", - "integrity": "sha512-4BuHUgA1+iICOm6JZlourP3Zo/EQHh42/cSHP2hhoVGmgp6Pd1eJ8wt9c8v4gGfy8vBUFhQoO+BrZ90vuaugyg==" - }, - "dotignore": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/dotignore/-/dotignore-0.1.2.tgz", - "integrity": "sha512-UGGGWfSauusaVJC+8fgV+NVvBXkCTmVv7sk6nojDZZvuOUNGUy0Zk4UpHQD6EDjS0jpBwcACvH4eofvyzBcRDw==", - "dev": true, - "requires": { - "minimatch": "^3.0.4" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" - }, - "emittery": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-1.0.1.tgz", - "integrity": "sha512-2ID6FdrMD9KDLldGesP6317G78K7km/kMcwItRtVFva7I/cSEOIaLpewaUb+YLXVwdAp3Ctfxh/V5zIl1sj7dQ==" - }, - "enabled": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==" - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==" - }, - "es-abstract": { - "version": "1.20.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", - "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.1", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.4", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "regexp.prototype.flags": "^1.4.3", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - } - }, - "es-get-iterator": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz", - "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.0", - "has-symbols": "^1.0.1", - "is-arguments": "^1.1.0", - "is-map": "^2.0.2", - "is-set": "^2.0.2", - "is-string": "^1.0.5", - "isarray": "^2.0.5" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==" - }, - "express": { - "version": "4.18.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", - "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", - "requires": { - "accepts": "~1.3.8", - "array-flatten": "1.1.1", - "body-parser": "1.20.0", - "content-disposition": "0.5.4", - "content-type": "~1.0.4", - "cookie": "0.5.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "2.0.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "1.2.0", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.7", - "qs": "6.10.3", - "range-parser": "~1.2.1", - "safe-buffer": "5.2.1", - "send": "0.18.0", - "serve-static": "1.15.0", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "faker": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/faker/-/faker-5.5.3.tgz", - "integrity": "sha512-wLTv2a28wjUyWkbnX7u/ABZBkUkIF2fCd73V6P2oFqEGEktDfzWx4UxrSqtPRw0xPRAcjeAOIiJWqZm3pP4u3g==" - }, - "fecha": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", - "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==" - }, - "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - }, - "fn.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==" - }, - "for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "dev": true, - "requires": { - "is-callable": "^1.1.3" - } - }, - "forwarded": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", - "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==" - }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", - "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "get-package-type": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", - "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", - "dev": true - }, - "get-port": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-6.1.2.tgz", - "integrity": "sha512-BrGGraKm2uPqurfGVj/z97/zv8dPleC6x9JBNRTrDNtCkkRF4rPwrQXFgL7+I+q8QSdU4ntLQX2D7KIxSy8nGw==" - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "graphql": { - "version": "15.8.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-15.8.0.tgz", - "integrity": "sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw==" - }, - "graphql-query-complexity": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/graphql-query-complexity/-/graphql-query-complexity-0.7.2.tgz", - "integrity": "sha512-+VgmrfxGEjHI3zuojWOR8bsz7Ycz/BZjNjxnlUieTz5DsB92WoIrYCSZdWG7UWZ3rfcA1Gb2Nf+wB80GsaZWuQ==", - "requires": { - "lodash.get": "^4.4.2" - } - }, - "graphql-subscriptions": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/graphql-subscriptions/-/graphql-subscriptions-1.2.1.tgz", - "integrity": "sha512-95yD/tKi24q8xYa7Q9rhQN16AYj5wPbrb8tmHGM3WRc9EBmWrG/0kkMl+tQG8wcEuE9ibR4zyOM31p5Sdr2v4g==", - "requires": { - "iterall": "^1.3.0" - } - }, - "graphql-tag": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", - "requires": { - "tslib": "^2.1.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true - }, - "has-dynamic-import": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-dynamic-import/-/has-dynamic-import-2.0.1.tgz", - "integrity": "sha512-X3fbtsZmwb6W7fJGR9o7x65fZoodygCrZ3TVycvghP62yYQfS0t4RS0Qcz+j5tQYUKeSWS09tHkWW6WhFV3XhQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" - } - }, - "http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "requires": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" - } - }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { - "safer-buffer": ">= 2.1.2 < 3" - } - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==" - }, - "is-arguments": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", - "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", - "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", - "dev": true - }, - "is-core-module": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", - "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-map": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz", - "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-set": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz", - "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==", - "dev": true - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-stream": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", - "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-typed-array": { - "version": "1.1.9", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz", - "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0" - } - }, - "is-weakmap": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", - "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==", - "dev": true - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-weakset": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz", - "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "isarray": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", - "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", - "dev": true - }, - "isomorphic-ws": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", - "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", - "requires": {} - }, - "iterall": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.3.0.tgz", - "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==" - }, - "jest-diff": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", - "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", - "requires": { - "chalk": "^4.0.0", - "diff-sequences": "^26.6.2", - "jest-get-type": "^26.3.0", - "pretty-format": "^26.6.2" - } - }, - "jest-get-type": { - "version": "26.3.0", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", - "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==" - }, - "js-base64": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz", - "integrity": "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==" - }, - "libphonenumber-js": { - "version": "1.10.13", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.13.tgz", - "integrity": "sha512-b74iyWmwb4GprAUPjPkJ11GTC7KX4Pd3onpJfKxYyY8y9Rbb4ERY47LvCMEDM09WD3thiLDMXtkfDK/AX+zT7Q==" - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash-es": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.21.tgz", - "integrity": "sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==" - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==" - }, - "logform": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.5.1.tgz", - "integrity": "sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==", - "requires": { - "@colors/colors": "1.5.0", - "@types/triple-beam": "^1.3.2", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - } - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==" - }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" - }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==" - }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==" - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==", - "dev": true - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "nanoassert": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-2.0.0.tgz", - "integrity": "sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA==" - }, - "negotiator": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", - "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==" - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" - }, - "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==" - }, - "object-is": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz", - "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - } - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { - "wrappy": "1" - } - }, - "one-time": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", - "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", - "requires": { - "fn.name": "1.x.x" - } - }, - "onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha512-oyyPpiMaKARvvcgip+JV+7zci5L8D1W9RZIz2l1o08AM3pfspitVWnPt3mzHcBPp12oYMTy0pqrFs/C+m3EwsQ==", - "requires": { - "mimic-fn": "^1.0.0" - } - }, - "optimism": { - "version": "0.16.1", - "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.1.tgz", - "integrity": "sha512-64i+Uw3otrndfq5kaoGNoY7pvOhSsjFEN4bdEFh80MWVk/dbgJfMv7VFDeCT8LxNAlEVhQmdVEbfE7X2nWNIIg==", - "requires": { - "@wry/context": "^0.6.0", - "@wry/trie": "^0.3.0" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" - }, - "pretty-format": { - "version": "26.6.2", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", - "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", - "requires": { - "@jest/types": "^26.6.2", - "ansi-regex": "^5.0.0", - "ansi-styles": "^4.0.0", - "react-is": "^17.0.1" - }, - "dependencies": { - "react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" - } - } - }, - "prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "proxy-addr": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", - "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "requires": { - "forwarded": "0.2.0", - "ipaddr.js": "1.9.1" - } - }, - "qs": { - "version": "6.10.3", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", - "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", - "requires": { - "side-channel": "^1.0.4" - } - }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" - }, - "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "requires": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - } - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "readable-stream": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.1.tgz", - "integrity": "sha512-+rQmrWMYGA90yenhTYsLWAsLsqVC8osOw6PKE1HDYiO0gdPeKe/xDHNzIAIn4C91YQ6oenEhfYqqc1883qHbjQ==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==" - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "resumer": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", - "integrity": "sha512-Fn9X8rX8yYF4m81rZCK/5VmrmsSbqS/i3rDLl6ZZHAXgC2nTAx3dhwG8q8odP/RmdLa2YrybDJaAMg+X1ajY3w==", - "dev": true, - "requires": { - "through": "~2.3.4" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - }, - "safe-stable-stringify": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.2.tgz", - "integrity": "sha512-gMxvPJYhP0O9n2pvcfYfIuYgbledAOJFcqRThtPRmjscaipiwcwPPKLytpVzMkG2HAN87Qmo2d4PtGiri1dSLA==" - }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" - }, - "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "requires": { - "lru-cache": "^6.0.0" - } - }, - "send": { - "version": "0.18.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", - "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "requires": { - "debug": "2.6.9", - "depd": "2.0.0", - "destroy": "1.2.0", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", - "mime": "1.6.0", - "ms": "2.1.3", - "on-finished": "2.4.1", - "range-parser": "~1.2.1", - "statuses": "2.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" - } - } - } - } - }, - "serve-static": { - "version": "1.15.0", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", - "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.18.0" - } - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", - "requires": { - "is-arrayish": "^0.3.1" - } - }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==" - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==" - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string.prototype.trim": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.6.tgz", - "integrity": "sha512-8lMR2m+U0VJTPp6JjvJTtGyc4FIGq9CdRt7O9p6T0e6K4vjU+OP+SQJpbe/SBmRcCUIvNUnjsbmY6lnMp8MhsQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "symbol-observable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==" - }, - "tape": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/tape/-/tape-5.5.3.tgz", - "integrity": "sha512-hPBJZBL9S7bH9vECg/KSM24slGYV589jJr4dmtiJrLD71AL66+8o4b9HdZazXZyvnilqA7eE8z5/flKiy0KsBg==", - "dev": true, - "requires": { - "array.prototype.every": "^1.1.3", - "call-bind": "^1.0.2", - "deep-equal": "^2.0.5", - "defined": "^1.0.0", - "dotignore": "^0.1.2", - "for-each": "^0.3.3", - "get-package-type": "^0.1.0", - "glob": "^7.2.0", - "has": "^1.0.3", - "has-dynamic-import": "^2.0.1", - "inherits": "^2.0.4", - "is-regex": "^1.1.4", - "minimist": "^1.2.6", - "object-inspect": "^1.12.0", - "object-is": "^1.1.5", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "resolve": "^2.0.0-next.3", - "resumer": "^0.0.0", - "string.prototype.trim": "^1.2.5", - "through": "^2.3.8" - }, - "dependencies": { - "resolve": { - "version": "2.0.0-next.4", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-2.0.0-next.4.tgz", - "integrity": "sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - } - } - }, - "tape-promise": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tape-promise/-/tape-promise-4.0.0.tgz", - "integrity": "sha512-mNi5yhWAKDuNgZCfFKeZbsXvraVOf+I8UZG+lf+aoRrzX4+jd4mpNBjYh16/VcpEMUtS0iFndBgnfxxZbtyLFw==", - "requires": { - "is-promise": "^2.1.0", - "onetime": "^2.0.0" - } - }, - "text-hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", - "dev": true - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==" - }, - "ts-invariant": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz", - "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==", - "requires": { - "tslib": "^2.1.0" - } - }, - "ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - } - }, - "tslib": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", - "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" - }, - "tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - }, - "type-graphql": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/type-graphql/-/type-graphql-1.1.1.tgz", - "integrity": "sha512-iOOWVn0ehCYMukmnXStbkRwFE9dcjt7/oDcBS1JyQZo9CbhlIll4lHHps54HMEk4A4c8bUPd+DjK8w1/ZrxB4A==", - "requires": { - "@types/glob": "^7.1.3", - "@types/node": "*", - "@types/semver": "^7.3.3", - "glob": "^7.1.6", - "graphql-query-complexity": "^0.7.0", - "graphql-subscriptions": "^1.1.0", - "semver": "^7.3.2", - "tslib": "^2.0.1" - } - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - } - }, - "typescript": { - "version": "4.7.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", - "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==" - }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==" - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" - }, - "validator": { - "version": "13.7.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.7.0.tgz", - "integrity": "sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==" - }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==" - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "which-collection": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz", - "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==", - "dev": true, - "requires": { - "is-map": "^2.0.1", - "is-set": "^2.0.1", - "is-weakmap": "^2.0.1", - "is-weakset": "^2.0.1" - } - }, - "which-typed-array": { - "version": "1.1.8", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz", - "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==", - "dev": true, - "requires": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", - "es-abstract": "^1.20.0", - "for-each": "^0.3.3", - "has-tostringtag": "^1.0.0", - "is-typed-array": "^1.1.9" - } - }, - "winston": { - "version": "3.8.2", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.8.2.tgz", - "integrity": "sha512-MsE1gRx1m5jdTTO9Ld/vND4krP2To+lgDoMEHGGa4HIlAUyXJtfc7CxQcGXVyz2IBpw5hbFkj2b/AtUdQwyRew==", - "requires": { - "@colors/colors": "1.5.0", - "@dabh/diagnostics": "^2.0.2", - "async": "^3.2.3", - "is-stream": "^2.0.0", - "logform": "^2.4.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "safe-stable-stringify": "^2.3.1", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.5.0" - } - }, - "winston-transport": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", - "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", - "requires": { - "logform": "^2.3.2", - "readable-stream": "^3.6.0", - "triple-beam": "^1.3.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "ws": { - "version": "8.12.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.1.tgz", - "integrity": "sha512-1qo+M9Ba+xNhPB+YTWUlK6M17brTut5EXbcBaMRN5pH5dFrXz7lzz1ChFSUq3bOUl8yEvSenhHmYUNJxFzdJew==", - "requires": {} - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" - }, - "zen-observable": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" - }, - "zen-observable-ts": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz", - "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==", - "requires": { - "zen-observable": "0.8.15" - } - } - } -} diff --git a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/package.json b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/package.json index 1c488a5c2..13a126dd5 100644 --- a/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/package.json +++ b/bootstrap-languages/p-diff-sync/hc-dna/zomes/tests/package.json @@ -22,7 +22,7 @@ "@holochain/tryorama": "0.11.1", "@perspect3vism/ad4m": "^0.2.12", "@types/lodash": "^4.14.158", - "@types/node": "^14.0.14", + "@types/node": "^18.0.0", "blake2b": "^2.1.3", "divide-bigint": "^1.0.4", "faker": "5.5.3", diff --git a/bootstrap-languages/p-diff-sync/package.json b/bootstrap-languages/p-diff-sync/package.json index 59163c3f5..2d28b9a63 100644 --- a/bootstrap-languages/p-diff-sync/package.json +++ b/bootstrap-languages/p-diff-sync/package.json @@ -1,13 +1,13 @@ { "name": "@perspect3vism/perspective-diff-sync", - "version": "0.3.4", + "version": "0.5.0", "description": "An AD4M language for syncing mutations to a share perspective", "main": "index.js", "scripts": { "build-dna": "cd hc-dna && ./build.sh && cd ..", "build": "run-script-os", - "build:linux": "npm run build-dna && tsc && rollup -c", - "build:macos": "npm run build-dna && tsc && rollup -c", + "build:linux": "yarn run build-dna && tsc && rollup -c", + "build:macos": "yarn run build-dna && tsc && rollup -c", "build:windows": "cd hc-dna && powershell -ExecutionPolicy Bypass -File ./build.ps1 && cd .. && tsc && rollup -c", "build-lang": "tsc && rollup -c", "dev": "tsc && rollup -c -w", @@ -24,7 +24,7 @@ "@rollup/plugin-node-resolve": "^8.0.0", "@rollup/plugin-typescript": "^4.0.0", "@tsconfig/svelte": "^1.0.0", - "@types/node": "^14.11.2", + "@types/node": "^18.0.0", "faker": "^5.5.3", "rollup": "^2.3.4", "rollup-plugin-postcss": "^3.1.8", diff --git a/bootstrap-languages/perspective-language/.gitignore b/bootstrap-languages/perspective-language/.gitignore new file mode 100644 index 000000000..75022ca18 --- /dev/null +++ b/bootstrap-languages/perspective-language/.gitignore @@ -0,0 +1,7 @@ +node_modules +*.js +*.js.map +build + +!rollup.config.js +!rollup.config.icons.js \ No newline at end of file diff --git a/bootstrap-languages/perspective-language/ConstructorIcon.svelte b/bootstrap-languages/perspective-language/ConstructorIcon.svelte new file mode 100644 index 000000000..94f188722 --- /dev/null +++ b/bootstrap-languages/perspective-language/ConstructorIcon.svelte @@ -0,0 +1,11 @@ + + + + +
+
+ + + \ No newline at end of file diff --git a/bootstrap-languages/perspective-language/Icon.svelte b/bootstrap-languages/perspective-language/Icon.svelte new file mode 100644 index 000000000..554dd1916 --- /dev/null +++ b/bootstrap-languages/perspective-language/Icon.svelte @@ -0,0 +1,32 @@ + + + + +
+ {#if expression} +

{JSON.stringify(perspectiveExpression.links)}

+ {/if} +
+ + + \ No newline at end of file diff --git a/bootstrap-languages/perspective-language/README.md b/bootstrap-languages/perspective-language/README.md new file mode 100644 index 000000000..18e3cc3eb --- /dev/null +++ b/bootstrap-languages/perspective-language/README.md @@ -0,0 +1 @@ +# Perspective Language diff --git a/bootstrap-languages/perspective-language/adapter.ts b/bootstrap-languages/perspective-language/adapter.ts new file mode 100644 index 000000000..c368d4a2d --- /dev/null +++ b/bootstrap-languages/perspective-language/adapter.ts @@ -0,0 +1,32 @@ +import type { Address, Expression, ExpressionAdapter, PublicSharing, LanguageContext } from "@perspect3vism/ad4m"; +import { IpfsPutAdapter } from './putAdapter' +import { toString as uint8ArrayToString } from 'uint8arrays/to-string' +import { concat as uint8ArrayConcat } from 'uint8arrays/concat'; +import type { IPFS } from "ipfs-core-types"; + +export default class Adapter implements ExpressionAdapter { + #IPFS: IPFS + + putAdapter: PublicSharing + + constructor(context: LanguageContext) { + this.#IPFS = context.IPFS + this.putAdapter = new IpfsPutAdapter(context) + } + + async get(address: Address): Promise { + const cid = address.toString() + + const chunks = [] + // @ts-ignore + for await (const chunk of this.#IPFS.cat(cid)) { + chunks.push(chunk) + } + + const fileString = uint8ArrayToString(uint8ArrayConcat(chunks)); + const fileJson = JSON.parse(fileString) + //pin file to help persistence + await this.#IPFS.pin.add(cid); + return fileJson + } +} \ No newline at end of file diff --git a/bootstrap-languages/perspective-language/index.ts b/bootstrap-languages/perspective-language/index.ts new file mode 100644 index 000000000..3a34f51af --- /dev/null +++ b/bootstrap-languages/perspective-language/index.ts @@ -0,0 +1,21 @@ +import type { Address, Interaction, Agent, Language, LanguageContext } from "@perspect3vism/ad4m"; +import Adapter from './adapter' +import { NoteExpressionUI } from './noteExpressionUI' + +function interactions(expression: Address): Interaction[] { + return [] +} + +export default function create(context: LanguageContext): Language { + const expressionAdapter = new Adapter(context) + const expressionUI = new NoteExpressionUI() + + return { + name: 'perspective-language', + expressionAdapter, + expressionUI, + interactions, + } as Language +} + +export const name: string = "perspective-language" \ No newline at end of file diff --git a/bootstrap-languages/perspective-language/noteExpressionUI.ts b/bootstrap-languages/perspective-language/noteExpressionUI.ts new file mode 100644 index 000000000..713f0542a --- /dev/null +++ b/bootstrap-languages/perspective-language/noteExpressionUI.ts @@ -0,0 +1,13 @@ +import type { ExpressionUI } from "@perspect3vism/ad4m"; +import Icon from './build/Icon.js' +import ConstructorIcon from './build/ConstructorIcon.js' + +export class NoteExpressionUI implements ExpressionUI { + icon(): string { + return Icon + } + + constructorIcon(): string { + return ConstructorIcon + } +} \ No newline at end of file diff --git a/bootstrap-languages/perspective-language/package.json b/bootstrap-languages/perspective-language/package.json new file mode 100644 index 000000000..3e1f6b809 --- /dev/null +++ b/bootstrap-languages/perspective-language/package.json @@ -0,0 +1,34 @@ +{ + "name": "@perspect3vism/perspective-language", + "version": "0.5.0", + "description": "An AD4M Language for perspective snapshot expressions stored on IPFS", + "main": "index.js", + "scripts": { + "test": "echo \"No perspective language integration tests\"", + "build-icons": "rollup -c rollup.config.icons.js", + "build": "yarn run build-icons && tsc && rollup -c", + "dev": "tsc && rollup -c rollup.config.icons.js && rollup -c -w" + }, + "author": "", + "license": "ISC", + "devDependencies": { + "@perspect3vism/ad4m": "*", + "@rollup/plugin-commonjs": "^14.0.0", + "@rollup/plugin-json": "^4.1.0", + "@rollup/plugin-node-resolve": "^8.0.0", + "@rollup/plugin-typescript": "^4.0.0", + "@tsconfig/svelte": "^1.0.0", + "ipfs-core-types": "0.10.1", + "rollup": "^2.3.4", + "rollup-plugin-postcss": "^3.1.8", + "rollup-plugin-string": "^3.0.0", + "rollup-plugin-svelte": "^6.0.0", + "rollup-plugin-terser": "^7.0.0", + "svelte": "^3.0.0", + "svelte-check": "^1.0.0", + "svelte-preprocess": "^4.0.0", + "tslib": "^2.0.0", + "typescript": "^4.5.5", + "uint8arrays": "^3.0.0" + } +} diff --git a/bootstrap-languages/perspective-language/putAdapter.ts b/bootstrap-languages/perspective-language/putAdapter.ts new file mode 100644 index 000000000..831b1cedf --- /dev/null +++ b/bootstrap-languages/perspective-language/putAdapter.ts @@ -0,0 +1,37 @@ +import type { Address, AgentService, PublicSharing, LanguageContext, Perspective } from "@perspect3vism/ad4m"; +import type { IPFS } from "ipfs-core-types"; + +export class IpfsPutAdapter implements PublicSharing { + #agent: AgentService + #IPFS: IPFS + + constructor(context: LanguageContext) { + this.#agent = context.agent + this.#IPFS = context.IPFS + } + + async createPublic(perspective: object): Promise
{ + try { + //@ts-ignore + perspective = JSON.parse(perspective) + }catch(e){ + + } + if (typeof perspective === "object" && perspective.hasOwnProperty('links')) { + const P = perspective as Perspective + if (typeof P.links !== "object") { + throw new Error('invalid link property type') + } + } + else { + throw new Error('invalid object type') + } + + const agent = this.#agent + const expression = agent.createSignedExpression(perspective) + const content = JSON.stringify(expression) + const result = await this.#IPFS.add({content}) + // @ts-ignore + return result.cid.toString() as Address + } +} \ No newline at end of file diff --git a/bootstrap-languages/perspective-language/rollup.config.icons.js b/bootstrap-languages/perspective-language/rollup.config.icons.js new file mode 100644 index 000000000..500ea3f14 --- /dev/null +++ b/bootstrap-languages/perspective-language/rollup.config.icons.js @@ -0,0 +1,107 @@ +import svelte from 'rollup-plugin-svelte'; +import resolve from '@rollup/plugin-node-resolve'; +import commonjs from '@rollup/plugin-commonjs'; +//import { terser } from 'rollup-plugin-terser'; +import sveltePreprocess from 'svelte-preprocess'; +import postcss from "rollup-plugin-postcss"; + +const production = !process.env.ROLLUP_WATCH; + +export default [ +{ + input: 'ConstructorIcon.svelte', + output: { + sourcemap: true, + format: 'cjs', + name: 'ConstructorIcon', + file: 'build/ConstructorIcon.js' + }, + plugins: [ + svelte({ + // enable run-time checks when not in production + dev: !production, + preprocess: sveltePreprocess(), + customElement: true, + }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ['svelte'] + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + ['sass', { + includePaths: [ + './src/ui/theme', + './node_modules' + ] + }] + ] + }), + //typescript({ sourceMap: !production }), + + // If we're building for production (npm run build + // instead of npm run dev), minify + //production && terser() + ], + watch: { + clearScreen: false + } +}, +{ + input: 'Icon.svelte', + output: { + sourcemap: true, + format: 'cjs', + name: 'Icon', + file: 'build/Icon.js' + }, + plugins: [ + svelte({ + // enable run-time checks when not in production + dev: !production, + preprocess: sveltePreprocess(), + customElement: true, + }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ['svelte'] + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + ['sass', { + includePaths: [ + './src/ui/theme', + './node_modules' + ] + }] + ] + }), + //typescript({ sourceMap: !production }), + + // If we're building for production (npm run build + // instead of npm run dev), minify + //production && terser() + ], + watch: { + clearScreen: false + } +} +] diff --git a/bootstrap-languages/perspective-language/rollup.config.js b/bootstrap-languages/perspective-language/rollup.config.js new file mode 100644 index 000000000..18e1ed4c4 --- /dev/null +++ b/bootstrap-languages/perspective-language/rollup.config.js @@ -0,0 +1,60 @@ +import svelte from 'rollup-plugin-svelte'; +import resolve from '@rollup/plugin-node-resolve'; +import commonjs from '@rollup/plugin-commonjs'; +//import { terser } from 'rollup-plugin-terser'; +import sveltePreprocess from 'svelte-preprocess'; +import postcss from "rollup-plugin-postcss"; +import { string } from 'rollup-plugin-string' + +const production = !process.env.ROLLUP_WATCH; + +export default { + input: 'index.js', + output: { + sourcemap: true, + format: 'cjs', + name: 'NoteIpfs', + file: 'build/bundle.js' + }, + plugins: [ + string({ + include: 'build/*.js' + }), + svelte({ + // enable run-time checks when not in production + dev: !production, + // we'll extract any component CSS out into + // a separate file - better for performance + //css: css => { + // css.write('bundle.css'); + //}, + preprocess: sveltePreprocess(), + }), + + // If you have external dependencies installed from + // npm, you'll most likely need these plugins. In + // some cases you'll need additional configuration - + // consult the documentation for details: + // https://github.com/rollup/plugins/tree/master/packages/commonjs + resolve({ + browser: true, + dedupe: ['svelte'] + }), + commonjs(), + postcss({ + extract: true, + minimize: true, + use: [ + ['sass', { + includePaths: [ + './src/ui/theme', + './node_modules' + ] + }] + ] + }), + ], + watch: { + clearScreen: false + } +} diff --git a/bootstrap-languages/perspective-language/tsconfig.json b/bootstrap-languages/perspective-language/tsconfig.json new file mode 100644 index 000000000..72375c5dc --- /dev/null +++ b/bootstrap-languages/perspective-language/tsconfig.json @@ -0,0 +1,6 @@ +{ + "extends": "@tsconfig/svelte/tsconfig.json", + + "include": ["*.ts"], + "exclude": ["node_modules/*", "__sapper__/*", "public/*"], +} \ No newline at end of file diff --git a/cli/.gitignore b/cli/.gitignore new file mode 100644 index 000000000..064254721 --- /dev/null +++ b/cli/.gitignore @@ -0,0 +1 @@ +agent.json \ No newline at end of file diff --git a/cli/Cargo.toml b/cli/Cargo.toml index 920ecf812..851ac2c16 100644 --- a/cli/Cargo.toml +++ b/cli/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m" -version = "0.3.4" +version = "0.5.0" edition = "2021" authors = ["Nicolas Luck "] description = "A command-line interface to AD4M (i.e. the AD4M executor) - https://ad4m.dev" @@ -12,7 +12,7 @@ documentation = "https://docs.ad4m.dev" readme = "README.md" [dependencies] -ad4m-client = { path = "../rust-client", version = "0.3.4" } +ad4m-client = { path = "../rust-client", version = "0.5.0" } anyhow = "1.0.65" clap = { version = "4.0.8", features = ["derive"] } futures = "0.3" diff --git a/cli/seed_proto.json b/cli/seed_proto.json index e7506098e..6eff62b50 100644 --- a/cli/seed_proto.json +++ b/cli/seed_proto.json @@ -1,5 +1,5 @@ { - "languageLanguageRef": "/Users/josh/dev/language-persistence/build/bundle.js", + "languageLanguageRef": "../bootstrap-languages/language-language/build/bundle.js", "linkLanguages": [ { "meta": { @@ -8,7 +8,7 @@ "sourceCodeLink": "https://github.com/perspect3vism/perspective-diff-sync", "possibleTemplateParams": ["uid", "name", "description"] }, - "resource": "/Users/josh/dev/perspective-diff-sync/build/bundle.js" + "resource": "../bootstrap-languages/p-diff-sync/build/bundle.js" } ], "agentLanguage": { @@ -18,7 +18,7 @@ "sourceCodeLink": "https://github.com/perspect3vism/agent-language", "possibleTemplateParams": ["uid", "name", "description"] }, - "resource": "/Users/josh/dev/agent-language/build//bundle.js" + "resource": "../bootstrap-languages/agent-language/build//bundle.js" }, "directMessageLanguage": { "meta": { @@ -27,7 +27,7 @@ "sourceCodeLink": "https://github.com/perspect3vism/direct-message-language", "possibleTemplateParams": ["recipient_did", "recipient_hc_agent_pubkey"] }, - "resource": "/Users/josh/dev/direct-message-language/build/bundle.js" + "resource": "../bootstrap-languages/direct-message-language/build/bundle.js" }, "neighbourhoodLanguage": { "meta": { @@ -36,7 +36,7 @@ "sourceCodeLink": "https://github.com/fluxsocial/neighbourhood-language", "possibleTemplateParams": ["uid", "name", "description"] }, - "resource": "/Users/josh/dev/neighbourhood-language/build/bundle.js" + "resource": "../bootstrap-languages/neighbourhood-language/build/bundle.js" }, "perspectiveLanguage": { "meta": { @@ -45,17 +45,17 @@ "sourceCodeLink": "https://github.com/perspect3vism/perspective-language", "possibleTemplateParams": ["uid", "name", "description"] }, - "resource": "/Users/josh/dev/perspective-language/build/bundle.js" + "resource": "../bootstrap-languages/perspective-language/build/bundle.js" }, "alsoPublish": [ { "meta": { - "name": "note-ipfs", - "description": "IPFS based language for storing metadata", - "sourceCodeLink": "https://github.com/perspect3vism/note-ipfs", - "possibleTemplateParams": [] + "name": "fileStorageLanguage", + "description": "Holochain based language for storing files", + "sourceCodeLink": "https://github.com/perspect3vism/file-storage-language", + "possibleTemplateParams": ["uid", "name", "description"] }, - "resource": "/Users/josh/Downloads/bundle.js" + "resource": "../bootstrap-languages/file-storage/build/bundle.js" } ] } \ No newline at end of file diff --git a/cli/src/perspectives.rs b/cli/src/perspectives.rs index 55d465559..8ad80efc1 100644 --- a/cli/src/perspectives.rs +++ b/cli/src/perspectives.rs @@ -44,6 +44,7 @@ pub enum PerspectiveFunctions { source: String, target: String, predicate: Option, + status: Option, }, /// Query links from perspective with given uuid @@ -146,10 +147,11 @@ pub async fn run(ad4m_client: Ad4mClient, command: Option) source, target, predicate, + status, } => { ad4m_client .perspectives - .add_link(id, source, target, predicate) + .add_link(id, source, target, predicate, status) .await?; } PerspectiveFunctions::QueryLinks(args) => { diff --git a/cli/src/repl.rs b/cli/src/repl.rs index e498fed6b..2f778ff9d 100644 --- a/cli/src/repl.rs +++ b/cli/src/repl.rs @@ -12,12 +12,13 @@ use crate::formatting::{print_link, print_prolog_results}; async fn add_link(perspective: &PerspectiveProxy, line: &String) -> bool { // add_link(source, predicate, target) let add_link = - Regex::new(r"add_link\((?P\S+),\s*(?P\S+),\s*(?P\S+)\)").expect("Error parsing add_link regex"); + Regex::new(r"add_link\((?P\S+),\s*(?P\S+),\s*(?P\S+),\s*(?P\S+)\)").expect("Error parsing add_link regex"); let caps = add_link.captures(&line); if let Some(caps) = caps { let source = caps.name("source").unwrap().as_str().to_string(); let predicate = caps.name("predicate").unwrap().as_str().to_string(); let target = caps.name("target").unwrap().as_str().to_string(); + let status = caps.name("status").unwrap().as_str().to_string(); let predicate = if predicate == "_" { None @@ -25,7 +26,13 @@ async fn add_link(perspective: &PerspectiveProxy, line: &String) -> bool { Some(predicate) }; - if let Err(e) = perspective.add_link(source, target, predicate).await { + let status = if status == "_" { + None + } else { + Some(status) + }; + + if let Err(e) = perspective.add_link(source, target, predicate, status).await { println!("Error adding link: {}", e); } true diff --git a/cli/src/util.rs b/cli/src/util.rs index feea407aa..c29ef8660 100644 --- a/cli/src/util.rs +++ b/cli/src/util.rs @@ -93,6 +93,7 @@ pub async fn string_2_perspective_snapshot( "ad4m://self".to_string(), format!("literal://string:{}", urlencoding::encode(&string)), None, + None, ) .await?; println!("Added status link to temporary perspective"); diff --git a/connect/README.md b/connect/README.md index edee3521a..7e96f4f42 100644 --- a/connect/README.md +++ b/connect/README.md @@ -32,27 +32,24 @@ This package makes it easy for AD4M apps to connect to a local or remote AD4M ex ```js import Ad4mConnectUI from "@perspect3vism/ad4m-connect"; -const ui = Ad4mConnectUI({ - appName: "ad4m-connect-example", - appDesc: "hello", - appDomain: "dev.ad4m.connect.example", - +const ui = Ad4mConnect({ + appName: "Example", + appDesc: "This is a sample app.", + appDomain: "ad4m.dev", appIconPath: "https://i.ibb.co/GnqjPJP/icon.png", - capabilities: [ - { - with: { domain: "*", pointers: ["*"] }, - can: ["*"], - }, - ], + capabilities: [{ with: { domain: "*", pointers: ["*"] }, can: ["*"] }], }); -ui.connect(); - ui.addEventListener("authstatechange", (e) => { - if (auth.authState === "connected") { - console.log("connected"); + if (e.detail === "authenticated") { + // We are authenticated } }); + +// Open popup and save the client when we are done +ui.connect().then((client) => { + // Save the client +}); ``` ## Usage (from Node / Electron) diff --git a/connect/example/electron/package-lock.json b/connect/example/electron/package-lock.json deleted file mode 100644 index 472be747d..000000000 --- a/connect/example/electron/package-lock.json +++ /dev/null @@ -1,1444 +0,0 @@ -{ - "name": "electron", - "version": "1.0.0", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "electron", - "version": "1.0.0", - "license": "ISC", - "dependencies": { - "ad4m-connect": "file:../../", - "electron": "^20.0.3" - } - }, - "../..": { - "name": "@perspect3vism/ad4m-connect", - "version": "0.0.11-11", - "license": "CAL-1.0", - "dependencies": { - "auto-bind": "^5.0.1", - "electron": "^20.0.3", - "esbuild-plugin-inline-image": "^0.0.8", - "html5-qrcode": "^2.2.1", - "lit": "^2.3.1" - }, - "devDependencies": { - "@apollo/client": "^3.6.9", - "@perspect3vism/ad4m": "0.1.37", - "@rollup/plugin-commonjs": "^14.0.0", - "@rollup/plugin-node-resolve": "^8.0.0", - "@rollup/plugin-typescript": "^4.0.0", - "@tsconfig/svelte": "^1.0.0", - "esbuild": "^0.15.5", - "esbuild-plugin-lit": "^0.0.10", - "graphql-ws": "^5.10.1", - "ipfs-core-types": "^0.8.4", - "node-sass": "^7.0.0", - "np": "^7.6.2", - "npm-run-all": "^4.1.5", - "rollup": "^2.3.4", - "rollup-plugin-postcss": "^3.1.8", - "rollup-plugin-string": "^3.0.0", - "rollup-plugin-svelte": "^6.0.0", - "rollup-plugin-terser": "^7.0.0", - "subscriptions-transport-ws": "^0.9.19", - "svelte": "^3.0.0", - "svelte-check": "^1.0.0", - "svelte-preprocess": "^4.0.0", - "tslib": "^2.0.0", - "typescript": "^3.9.3", - "uint8arrays": "^3.0.0" - } - }, - "node_modules/@electron/get": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.14.1.tgz", - "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", - "dependencies": { - "debug": "^4.1.1", - "env-paths": "^2.2.0", - "fs-extra": "^8.1.0", - "got": "^9.6.0", - "progress": "^2.0.3", - "semver": "^6.2.0", - "sumchecker": "^3.0.1" - }, - "engines": { - "node": ">=8.6" - }, - "optionalDependencies": { - "global-agent": "^3.0.0", - "global-tunnel-ng": "^2.7.1" - } - }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@types/node": { - "version": "16.11.68", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.68.tgz", - "integrity": "sha512-JkRpuVz3xCNCWaeQ5EHLR/6woMbHZz/jZ7Kmc63AkU+1HxnoUugzSWMck7dsR4DvNYX8jp9wTi9K7WvnxOIQZQ==" - }, - "node_modules/@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", - "optional": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ad4m-connect": { - "resolved": "../..", - "link": true - }, - "node_modules/boolean": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", - "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", - "optional": true - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", - "engines": { - "node": "*" - } - }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "optional": true, - "dependencies": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, - "node_modules/define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "optional": true, - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "optional": true - }, - "node_modules/duplexer3": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", - "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" - }, - "node_modules/electron": { - "version": "20.3.2", - "resolved": "https://registry.npmjs.org/electron/-/electron-20.3.2.tgz", - "integrity": "sha512-px5/bcxsHbyByIB+kQKi3goPMXA/oVEojqP7gJ+6NxESNNYWYUR4FfzBjxTJ7I8X/Cn0BuAAWKKrCQKqJRHPQQ==", - "hasInstallScript": true, - "dependencies": { - "@electron/get": "^1.14.1", - "@types/node": "^16.11.26", - "extract-zip": "^2.0.1" - }, - "bin": { - "electron": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - } - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "optional": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", - "engines": { - "node": ">=6" - } - }, - "node_modules/es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "optional": true - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "dependencies": { - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - }, - "bin": { - "extract-zip": "cli.js" - }, - "engines": { - "node": ">= 10.17.0" - }, - "optionalDependencies": { - "@types/yauzl": "^2.9.1" - } - }, - "node_modules/fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "dependencies": { - "pend": "~1.2.0" - } - }, - "node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "optional": true - }, - "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "optional": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/global-agent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", - "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", - "optional": true, - "dependencies": { - "boolean": "^3.0.1", - "es6-error": "^4.1.1", - "matcher": "^3.0.0", - "roarr": "^2.15.3", - "semver": "^7.3.2", - "serialize-error": "^7.0.1" - }, - "engines": { - "node": ">=10.0" - } - }, - "node_modules/global-agent/node_modules/semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "optional": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/global-tunnel-ng": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", - "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", - "optional": true, - "dependencies": { - "encodeurl": "^1.0.2", - "lodash": "^4.17.10", - "npm-conf": "^1.1.3", - "tunnel": "^0.0.6" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "optional": true, - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/got/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "optional": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "optional": true, - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "optional": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "node_modules/ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "optional": true - }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "optional": true - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "optional": true - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/matcher": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", - "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", - "optional": true, - "dependencies": { - "escape-string-regexp": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/npm-conf": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", - "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", - "optional": true, - "dependencies": { - "config-chain": "^1.1.11", - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "optional": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" - }, - "node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==", - "engines": { - "node": ">=4" - } - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "optional": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/roarr": { - "version": "2.15.4", - "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", - "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", - "optional": true, - "dependencies": { - "boolean": "^3.0.1", - "detect-node": "^2.0.4", - "globalthis": "^1.0.1", - "json-stringify-safe": "^5.0.1", - "semver-compare": "^1.0.0", - "sprintf-js": "^1.1.2" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", - "optional": true - }, - "node_modules/serialize-error": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", - "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", - "optional": true, - "dependencies": { - "type-fest": "^0.13.1" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "optional": true - }, - "node_modules/sumchecker": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", - "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", - "dependencies": { - "debug": "^4.1.0" - }, - "engines": { - "node": ">= 8.0" - } - }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "engines": { - "node": ">=6" - } - }, - "node_modules/tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "optional": true, - "engines": { - "node": ">=0.6.11 <=0.7.0 || >=0.7.3" - } - }, - "node_modules/type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", - "optional": true, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true - }, - "node_modules/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "dependencies": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - } - }, - "dependencies": { - "@electron/get": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.14.1.tgz", - "integrity": "sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==", - "requires": { - "debug": "^4.1.1", - "env-paths": "^2.2.0", - "fs-extra": "^8.1.0", - "global-agent": "^3.0.0", - "global-tunnel-ng": "^2.7.1", - "got": "^9.6.0", - "progress": "^2.0.3", - "semver": "^6.2.0", - "sumchecker": "^3.0.1" - } - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@types/node": { - "version": "16.11.68", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.68.tgz", - "integrity": "sha512-JkRpuVz3xCNCWaeQ5EHLR/6woMbHZz/jZ7Kmc63AkU+1HxnoUugzSWMck7dsR4DvNYX8jp9wTi9K7WvnxOIQZQ==" - }, - "@types/yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==", - "optional": true, - "requires": { - "@types/node": "*" - } - }, - "ad4m-connect": { - "version": "file:../..", - "requires": { - "@apollo/client": "^3.6.9", - "@perspect3vism/ad4m": "0.1.37", - "@rollup/plugin-commonjs": "^14.0.0", - "@rollup/plugin-node-resolve": "^8.0.0", - "@rollup/plugin-typescript": "^4.0.0", - "@tsconfig/svelte": "^1.0.0", - "auto-bind": "^5.0.1", - "electron": "^20.0.3", - "esbuild": "^0.15.5", - "esbuild-plugin-inline-image": "^0.0.8", - "esbuild-plugin-lit": "^0.0.10", - "graphql-ws": "^5.10.1", - "html5-qrcode": "^2.2.1", - "ipfs-core-types": "^0.8.4", - "lit": "^2.3.1", - "node-sass": "^7.0.0", - "np": "^7.6.2", - "npm-run-all": "^4.1.5", - "rollup": "^2.3.4", - "rollup-plugin-postcss": "^3.1.8", - "rollup-plugin-string": "^3.0.0", - "rollup-plugin-svelte": "^6.0.0", - "rollup-plugin-terser": "^7.0.0", - "subscriptions-transport-ws": "^0.9.19", - "svelte": "^3.0.0", - "svelte-check": "^1.0.0", - "svelte-preprocess": "^4.0.0", - "tslib": "^2.0.0", - "typescript": "^3.9.3", - "uint8arrays": "^3.0.0" - } - }, - "boolean": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", - "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", - "optional": true - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==" - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" - } - } - }, - "clone-response": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", - "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "config-chain": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", - "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", - "optional": true, - "requires": { - "ini": "^1.3.4", - "proto-list": "~1.2.1" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha512-BzRPQuY1ip+qDonAOz42gRm/pg9F768C+npV/4JOsxRC2sq+Rlk+Q4ZCAsOhnIaMrgarILY+RMUIvMmmX1qAEA==", - "requires": { - "mimic-response": "^1.0.0" - } - }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" - }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "optional": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "detect-node": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", - "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", - "optional": true - }, - "duplexer3": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz", - "integrity": "sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA==" - }, - "electron": { - "version": "20.3.2", - "resolved": "https://registry.npmjs.org/electron/-/electron-20.3.2.tgz", - "integrity": "sha512-px5/bcxsHbyByIB+kQKi3goPMXA/oVEojqP7gJ+6NxESNNYWYUR4FfzBjxTJ7I8X/Cn0BuAAWKKrCQKqJRHPQQ==", - "requires": { - "@electron/get": "^1.14.1", - "@types/node": "^16.11.26", - "extract-zip": "^2.0.1" - } - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "optional": true - }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "requires": { - "once": "^1.4.0" - } - }, - "env-paths": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", - "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==" - }, - "es6-error": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", - "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", - "optional": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "optional": true - }, - "extract-zip": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", - "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", - "requires": { - "@types/yauzl": "^2.9.1", - "debug": "^4.1.1", - "get-stream": "^5.1.0", - "yauzl": "^2.10.0" - } - }, - "fd-slicer": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", - "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", - "requires": { - "pend": "~1.2.0" - } - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "optional": true - }, - "get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "optional": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "requires": { - "pump": "^3.0.0" - } - }, - "global-agent": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-3.0.0.tgz", - "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", - "optional": true, - "requires": { - "boolean": "^3.0.1", - "es6-error": "^4.1.1", - "matcher": "^3.0.0", - "roarr": "^2.15.3", - "semver": "^7.3.2", - "serialize-error": "^7.0.1" - }, - "dependencies": { - "semver": { - "version": "7.3.8", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", - "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } - } - } - }, - "global-tunnel-ng": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", - "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", - "optional": true, - "requires": { - "encodeurl": "^1.0.2", - "lodash": "^4.17.10", - "npm-conf": "^1.1.3", - "tunnel": "^0.0.6" - } - }, - "globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "optional": true, - "requires": { - "define-properties": "^1.1.3" - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "dependencies": { - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "requires": { - "pump": "^3.0.0" - } - } - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "optional": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "optional": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "optional": true - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", - "optional": true - }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha512-CuUqjv0FUZIdXkHPI8MezCnFCdaTAacej1TZYulLoAg1h/PhwkdXFN4V/gzY4g+fMBCOV2xF+rp7t2XD2ns/NQ==" - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", - "optional": true - }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "requires": { - "json-buffer": "3.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", - "optional": true - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "optional": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "matcher": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", - "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", - "optional": true, - "requires": { - "escape-string-regexp": "^4.0.0" - } - }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "normalize-url": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.1.tgz", - "integrity": "sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==" - }, - "npm-conf": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", - "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", - "optional": true, - "requires": { - "config-chain": "^1.1.11", - "pify": "^3.0.0" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "optional": true - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { - "wrappy": "1" - } - }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" - }, - "pend": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", - "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==" - }, - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "optional": true - }, - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha512-ravE6m9Atw9Z/jjttRUZ+clIXogdghyZAuWJ3qEzjT+jI/dL1ifAqhZeC5VHzQp1MSt1+jxKkFNemj/iO7tVUA==" - }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" - }, - "proto-list": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", - "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", - "optional": true - }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha512-/Fpe5guzJk1gPqdJLJR5u7eG/gNY4nImjbRDaVWVMRhne55TCmj2i9Q+54PBRfatRC8v/rIiv9BN0pMd9OV5EQ==", - "requires": { - "lowercase-keys": "^1.0.0" - } - }, - "roarr": { - "version": "2.15.4", - "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.4.tgz", - "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", - "optional": true, - "requires": { - "boolean": "^3.0.1", - "detect-node": "^2.0.4", - "globalthis": "^1.0.1", - "json-stringify-safe": "^5.0.1", - "semver-compare": "^1.0.0", - "sprintf-js": "^1.1.2" - } - }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", - "optional": true - }, - "serialize-error": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", - "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", - "optional": true, - "requires": { - "type-fest": "^0.13.1" - } - }, - "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "optional": true - }, - "sumchecker": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", - "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", - "requires": { - "debug": "^4.1.0" - } - }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" - }, - "tunnel": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", - "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", - "optional": true - }, - "type-fest": { - "version": "0.13.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", - "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", - "optional": true - }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" - }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha512-NjFKA0DidqPa5ciFcSrXnAltTtzz84ogy+NebPvfEgAck0+TNg4UJ4IN+fB7zRZfbgUf0syOo9MDxFkDSMuFaQ==", - "requires": { - "prepend-http": "^2.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "optional": true - }, - "yauzl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", - "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", - "requires": { - "buffer-crc32": "~0.2.3", - "fd-slicer": "~1.1.0" - } - } - } -} diff --git a/connect/package.json b/connect/package.json index d2cd0609a..a0c5b569c 100644 --- a/connect/package.json +++ b/connect/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-connect", - "version": "0.3.4", + "version": "0.5.0", "description": "Lib for handling everything needed to setup a connection to a local or remote ad4m-executor", "license": "CAL-1.0", "main": "dist/web.js", @@ -37,7 +37,7 @@ "release:beta": "np --no-2fa --no-tests --tag=beta --any-branch", "dev": "NODE_ENV=dev && vite dev", "serve": "npx serve", - "build": "npm run build:core && npm run build:web && npm run build:electron && npm run build:utils && tsc", + "build": "yarn run build:core && yarn run build:web && yarn run build:electron && yarn run build:utils && tsc", "build:core": "tsc --project tsconfig.json && node scripts/esbuild.js", "build:web": "tsc --project tsconfig.json && node scripts/esbuild_web.js", "build:utils": "tsc --project tsconfig.json && node scripts/esbuild_utils.js", @@ -60,8 +60,11 @@ }, "dependencies": { "@undecaf/barcode-detector-polyfill": "^0.9.15", + "@undecaf/zbar-wasm": "^0.9.12", "auto-bind": "^5.0.1", "electron": "^20.0.3", + "esbuild-plugin-copy": "^2.1.1", + "esbuild-plugin-replace": "^1.4.0", "lit": "^2.3.1" } } diff --git a/connect/public/dialog.html b/connect/public/dialog.html index c4460f487..4fd48388b 100644 --- a/connect/public/dialog.html +++ b/connect/public/dialog.html @@ -12,6 +12,7 @@ - - - {% for resource in plugins.resources.js %} - {% if resource.url %} - - {% else %} - - {% endif %} - {% endfor %} -{% endblock %} - -{% block body %} -
-
- -
-
v{{book.ad4mVersion}}
-
- - {% block book_sidebar %} - {% block search_input %}{% endblock %} - {% block book_summary %} - - {% endblock %} - {% endblock %} -
- -
- {% block book_body %} -
- {% block book_inner %} - {% include "website/header.html" %} - -
-
- {% block search_results %} -
- {% block page %} - {{ page.content|safe }} - {% endblock %} -
- {% endblock %} -
-
- {% endblock %} -
- - {% block book_navigation %} - {% if page.previous and page.previous.path %} - - - - {% endif %} - {% if page.next and page.next.path %} - - - - {% endif %} - {% endblock %} - {% endblock %} -
- - -
-{% endblock %} diff --git a/docs-src/_layouts/website/summary.html b/docs-src/_layouts/website/summary.html deleted file mode 100644 index b7eaf49be..000000000 --- a/docs-src/_layouts/website/summary.html +++ /dev/null @@ -1,61 +0,0 @@ -{% macro articles(_articles) %} - {% for article in _articles %} -
  • - {% if article.path and getPageByPath(article.path) %} - - {% elif article.url %} - - {% else %} - - {% endif %} - {% if article.level != "0" and config.pluginsConfig['theme-default'].showLevel %} - {{ article.level }}. - {% endif %} - {{ article.title }} - {% if article.path or article.url %} - - {% else %} - - {% endif %} - - {% if article.articles.length > 0 %} -
      - {{ articles(article.articles, file, config) }} -
    - {% endif %} -
  • - {% endfor %} -{% endmacro %} - -
      - {% set _divider = false %} - {% if config.links.sidebar %} - {% for linkTitle, link in config.links.sidebar %} - {% set _divider = true %} -
    • - {{ linkTitle }} -
    • - {% endfor %} - {% endif %} - - {% if _divider %} -
    • - {% endif %} - - {% for part in summary.parts %} - {% if part.title %} -
    • {{ part.title }}
    • - {% elif not loop.first %} -
    • - {% endif %} - {{ articles(part.articles, file, config) }} - {% endfor %} - -
    • - -
    • - - by Perspect3vism Foundation - -
    • -
    diff --git a/docs-src/book.json b/docs-src/book.json deleted file mode 100644 index 9ae97265b..000000000 --- a/docs-src/book.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "title": "AD4M Documentation", - "author": "Nicolas Luck", - "variables": { - "ad4mVersion": "0.3.4" - } -} diff --git a/docs-src/concepts.md b/docs-src/concepts.md deleted file mode 100644 index b132086c5..000000000 --- a/docs-src/concepts.md +++ /dev/null @@ -1,17 +0,0 @@ -# AD4M Concepts -COMING SOON -## Agents -## Languages -## Perspectives -## Neighbourhoods -## Social DNA -## Social Organism - - -* [Concepts](concepts.md) - * [Agents](concepts.md#Agents) - * [Languages](concepts.md#Languages) - * [Perspectives](concepts.md#Perspectives) - * [Neighbourhoods](concepts.md#Neighbourhoods) - * [Social DNA](concepts.md#SocialDNA) - * [Social Organisms](concepts.md#SocialOrganism) \ No newline at end of file diff --git a/docs-src/header.hbs b/docs-src/header.hbs deleted file mode 100644 index 28a0b4097..000000000 --- a/docs-src/header.hbs +++ /dev/null @@ -1,3 +0,0 @@ - - -{{>heading-indent}}{{>sig-name}} diff --git a/docs-src/language.md b/docs-src/language.md deleted file mode 100644 index b1cf7b211..000000000 --- a/docs-src/language.md +++ /dev/null @@ -1,14 +0,0 @@ -# Creating AD4M Languages -COMING SOON - -### Languages -For creating an expression we need to select a language that we create an expression in: -```js -const languages = await ad4mClient.languages.all() -const noteIpfsAddress = languages.find(l => l.name === 'note-ipfs').address -``` -### Creating an Expression - -```js -const exprAddress = await ad4mClient.expression.create("A new text note", noteIpfsAddress) -``` \ No newline at end of file diff --git a/docs-src/sdna.md b/docs-src/sdna.md deleted file mode 100644 index ed71ada93..000000000 --- a/docs-src/sdna.md +++ /dev/null @@ -1,2 +0,0 @@ -# Writing and using Social DNA -COMING SOON \ No newline at end of file diff --git a/docs-src/start.md b/docs-src/start.md deleted file mode 100644 index a490fe544..000000000 --- a/docs-src/start.md +++ /dev/null @@ -1,129 +0,0 @@ -# Getting Started - -## 1. Install AD4M Launcher -Download the latest version of the AD4M launcher from -its [GitHub release page](https://github.com/perspect3vism/ad4min/releases) and run/install it. - -After successful agent initialization you should see an AD4M system-tray icon which will -bring up an AD4M pop-up window on click: -![ad4min-screenshots](ad4min-screenshots.png) - -## 2. Setup app to connect to AD4M -First, install npm dependencies to your app/UI project: -``` -npm install -s @perspect3vism/ad4m @perspect3vism/ad4m-connect -``` -### Connect UI client using `ad4m-connect` - -The AD4M-executor serves a GraphQL interface for UIs to connect to -and remote control the executor to use Languages, query and modify Perspectives etc. -That interface implements a capability-based security mechanism which allows for -making the local interface available publicly via a proxy ("setup proxy" button) -so that mobile UIs can call in to your ad4m-executor run at home, -but also to manage access to certain Perspectives/Neighbourhoods only to certain UIs. - -Anyway, to not confront you with the complexity of writing code for requesting a -capability token and injecting it into a GraphQL client -right at the start of your AD4M journey, -there is [ad4m-connect](https://github.com/perspect3vism/ad4m-connect) -to do all of this for you and just deliver an initialized and usable -[Ad4mClient](api.md#class-ad4mclient) object. - -#### Web/Browser UI - -import it in the context of your root UI/component -```js -import '@perspect3vism/ad4m-connect' -``` -and then add the `ad4m-connect` web component to your markup: -```html - -``` - -This web component will create a modal dialog over your UI, -but only if there is no capability token in the browsers localStorage yet. -After the first successful hand-shake, `ad4m-connect` will put the token there -and on next start-up of your app will check if the token still works and -not prompt the user again. - -This is what your user will see when the app is not connected yet: -![ad4m-connect-1](images/ad4m-connect-1.png) - -Since all the users's data is stored locally in AD4M Perspectives, -using a new app/UI and granting it access to all or parts of these perspectives -and AD4M functionality is potentially risky. -`ad4m-connect` not only makes it easy for app developers to connect to the users AD4M-executor, -it also provides a recognizable interface/wizard for the user. - -Like in this example, an app/UI should provide its name and an icon for the user -to quickly understand what is going on. - -The `capabilities` property must hold a string that defines what capability -(access to which perspectives and interface functions) should be requested. -This example requests all which might a good first step when starting to familiarize -yourself with AD4M, but should be restricted to what you really need for a production release. - -If the user clicks authorize, `ad4m-connect` will connect to the AD4M-executor and request a capability token. -This will make the AD4M launcher bring up its pop-up window: -![ad4m-connect-pop-up](images/ad4m-connect-pop-up.png) -Here the user has to confirm the request to their AD4M instance. -Next, AD4M will then show a six-digit random secret code that needs to be entered into the app UI. -That way we have safely established that the network agent initiating the capability request (as seen from -the AD4M-executor) really is the UI the users wants to use. - -If all steps were completed successfully, the `ad4m-connect` modal dialog closes and your app is shown. -Now you just need to get the `Ad4mClient` out of `ad4m-connect`. - -Then somewhere in the initialization part of your app, do something like: -```typescript -import { Ad4mClient } from '@perspect3vism/ad4m' -import { getAd4mClient, onAuthStateChanged } from "@perspect3vism/ad4m-connect/web"; - -let ad4m: Ad4mClient = await new Promise((resolve, reject) => { - onAuthStateChanged(async (status) => { - if (status === "connected_with_capabilities") { - alert("Connected to Ad4m!"); - resolve(getAd4mClient()) - } else { - alert("Not connected to Ad4m!"); - } - }) -}) -``` -Now you are ready to go and use the `ad4m` object to talk to the users AD4M-executor. -#### Node/Electron UI -`ad4m-connect` also works within an Electron app, but needs to be used a bit differently. -Instead of adding a web component to your UI, `ad4m-connect` will open its own Electron window -with that same UI component in it. -All you got to do is importing one function from `dist/electron` -(best done in your) main Node/Electron start-up file) -```js -const { ad4mConnect } = require('@perspect3vism/ad4m-connect/dist/electron') -const path = require('path') - -let ad4m: Ad4mClient = await new Promise((resolve, reject) => { - ad4mConnect({ - appName: "Perspect3ve", - appIconPath: path.join(__dirname, "graphics", "Logo.png"), - capabilities: [{"with":{"domain":"*","pointers":["*"]},"can":["*"]}], - dataPath: path.join(homedir(), '.perspect3ve') - }) - .then(({client, capabilityToken, executorUrl}) => { - resolve(client) - }) - .catch(() => reject()) - } -}) -``` - -There is one addition: `dataPath`. -The Node/Electron version of `ad4m-connect` stores the capability token (and executor URL) -to a file in the directory provided as `dataPath`. - - diff --git a/docs-src/tutorial.md b/docs-src/tutorial.md deleted file mode 100644 index 75451a6a8..000000000 --- a/docs-src/tutorial.md +++ /dev/null @@ -1,223 +0,0 @@ -# Tutorial -This will get you to a shared Neighbourhood on Holochain in less than 20 minutes! -The code assumes an `ad4m` variable was setup as described in [Getting Started](start.md). - -## 1. Create a Perspective and add content -Adding a new perspective is as easy as -```js -const myPerspective = await ad4m.perspective.add("My new perspective") -``` -The returned object is of type [PerspectiveProxy](api.md#class-perspectiveproxy), -which hides all the remote calls to the AD4M executor and can be treated like a -local database object. - -Perspectives are basically local graph databases. -We can query all links on that proxy object with `get`: -```js -const allLinks = await myPerspective.get(new LinkQuery({})) // => [] -``` -In this case it should return an empty array since we just created that perspective. - -So let's add something! -With the following code I'm creating an adhoc semantic statement -representing what I think about AD4M... -```js -import { Literal } from '@perspect3vism/ad4m' - -const me = await ad4m.agent.me() -const source = me.did -const predicate = Literal.from("thinks").toUrl() -const target = Literal.from("AD4M will be the last social network").toUrl() - -const linkExpresion = await myPerspective.add({source, predicate, target}) -``` - -Links consist of 3 URIs pointing to Expressions of Languages. -For this example, we made life easy by using the agent's DID and AD4M's `Literal` Language. - -### Agent DID -For the source of our link, we got the user's DID URI by first getting -the users [Agent](api.md#class-agent) object with `ad4m.agent.me()`. -That has a DID property and DID URIs are considered valid URIs in AD4M -(they can be looked-up using the Agent bootstrap language which resolves -to the same Agent object we got through `ad4m.agent.me()` - just even if -that agent behind the resolved DID isn't me). - -### Literal -The `Literal` Language is an AD4M Language without back-end. -It stores JavaScript literals (i.e. strings, numbers and objects) -by encoding them into the Expression URL. -So, -```js -Literal.from("thinks").toUrl() -``` -returns `literal://string:thinks` - which is a valid URI - -and -```js -Literal.from("AD4M will be the last social network").toUrl() -``` -returns `literal://string:AD4M%20will%20be%20the%20last%20social%20network`. -This is basically like URL parameters and let's us get around introducing Languages -before using Perspectives and Links. - -We can decode the URL into a JavaScript literal like so: -```js -const string = Literal.fromUrl('literal://string:thinks').get() -// string == 'thinks' -``` - -### LinkExpression -We have put in a [Link](api.md#class-link) object into `myPerspective.add()` -(`{source, predicate, target}`), -but what this function returns is a [LinkExpression](api.md#class-linkexpression). - -Even though this Perspective is not shared (yet) but just our private, local -graph database, we might want to share it [later](#2-publish-perspective-as-neighbourhood) -as Neighbourhood. -Then, all links added by some agent to their local Perspective will be shared -with the other agents using a LinkLanguage - a Language which defines Expressions -representing Links. That is LinkExpressions. - -Using the [generic Expression template](api.html#expressiongeneric), -LinkExpressions wrap Links with author, timestamp and signature: -```js -{ - author: "did:key:zQ3shNWd4bg67ktTVg9EMnnrsRjhkH6cRNCjRRxfTaTqBniAf", - timestamp: "Sun Oct 23 2022 15:31:52 GMT+0200 (Central European Summer Time)", - data: { - source: "did:key:zQ3shNWd4bg67ktTVg9EMnnrsRjhkH6cRNCjRRxfTaTqBniAf", - predicate: "literal://string:thinks", - target: "literal://string:AD4M%20will%20be%20the%20last%20social%20network", - }, - proof: { - key: "#zQ3shNWd4bg67ktTVg9EMnnrsRjhkH6cRNCjRRxfTaTqBniAf", - signature: "xxxx", - } -} -``` - - - - -## 2. Publish Perspective as Neighbourhood -The back-bone of a Neighbourhood is a *LinkLanguage* - a Language that enables the sharing -and thus synchronizing of links (see [LinksAdapter](api.html#linksadapter)). -While there can and will be many different implementations -with different trade-offs and features (like membranes etc.), -there currently is one [fully implemented and Holochain based LinkLanguage with the name *Perspective Diff Sync*](https://github.com/perspect3vism/perspective-diff-sync). - -It is deployed on the current test network (Language Language v0.0.15, included in [current network seed](https://github.com/perspect3vism/ad4m-seeds/blob/main/mainnetSeed.json)) under the address: -`QmeBD9n9Z5yZsegxArToww5zmwtPpojXN6zXJsi7WwMUa8`. - -#### Creating our unique LinkLanguage clone through templating -But we should not just use this publicly known Language as the back-bone for our new Neighbourhood, -if we don't want to have everybody following this guide end up in the same network. - -So what we want is to use this existing Language as a template and create a new copy with the same code -but different UUID and/name in order to create a fresh space for our new Neighbourhood. - -What parameters can we adjust when using it as template? -Let's have a look at the Language's meta information: - -```js -const socialContextMeta = await ad4m.languages.meta( - "QmeBD9n9Z5yZsegxArToww5zmwtPpojXN6zXJsi7WwMUa8" -) -console.log(socialContextMeta) -``` - -Which should yield something like this: -``` - { - name: 'Perspective Diff Sync', - address: 'QmeBD9n9Z5yZsegxArToww5zmwtPpojXN6zXJsi7WwMUa8', - description: 'Holochain based LinkLanguage. First full implementation of a LinkLanguage, for collaborative Neighbourhoods where every agent can add links. No membrane. Basic template for all custom Neighbourhoods in this first iteration of the Perspect3vism test network.', - author: 'did:key:zQ3shkkuZLvqeFgHdgZgFMUx8VGkgVWsLA83w2oekhZxoCW2n', - templated: false, - templateSourceLanguageAddress: null, - templateAppliedParams: null, - possibleTemplateParams: [ 'uuid', 'name', 'description' ], - sourceCodeLink: 'https://github.com/perspect3vism/perspective-diff-sync' -} -``` - -The field `possibleTemplateParams` tells us that we can set a `UUID` and override `name` and `description`. -Let's leave description but change the name. -The function `languages.applyTemplateAndPublish()` takes an object as JSON as second parameter like so: - - -```js -const uniqueLinkLanguage = await ad4m.languages.applyTemplateAndPublish( - "QmeBD9n9Z5yZsegxArToww5zmwtPpojXN6zXJsi7WwMUa8", - JSON.stringify({ - "uuid": "84a329-77384c-1510fb", - "name": "Perspective Diff Sync clone for demo Neighbourhood" - })); -``` - -This function call has done a lot for us: -1. It took the source language (first parameter) and made sure we got the code, -i.e. potentially downloading it from the Language of Languages. -2. The provided template parameters have been applied. In the case of a Language using Holochain, it has unpacked the Holochain DNA, changed the DNA variables according to the values given as template parameters and packed the DNA again (not touching the WASM code) -3. The resulting Language was published with meta information showing that it was templated, providing the source hash and template parameters. - -So the new templated Language is ready to be used. - -### Creating the Neighbourhood -With that new LinkLanguage, actually creating the Neighbourhood is simple. -We just have to provide the id of the perspective we want to upgrade to a -Neighbourhood and the address of the LinkLanguage used for that: -```js -const meta = new Perspective() -const neighbourhoodUrl = await ad4m.neighbourhood.publishFromPerspective( - myPerspective.uuid, - uniqueLinkLanguage.address, - meta -) -console.log(neighbourhoodUrl) // => neighbourhood://Qm123456789abcdef -``` - -The `meta` field a (static/snapshotted) Perspective that is immutably stored with -the Neighbourhood. It can hold arbitrary/semantic meta information about the -Neighbourhood but can technically stay empty, just like we did here. - -## 3. Joining a Neighbourhood (on another node/agent) -Assume everything above happened on Alice's agent. -Alice now shares the Neighbourhood's URL with Bob. -This is what Bob does to join the Neigbourhood, access it as a (local) Perspective -and retrieve the Expression Alice created and linked there: -```js -const joinedNeighbourhood = await ad4m.neighbourhood.joinFromUrl(neighbourhoodUrl) -const myPerspective = await ad4m.perspective.byUUID(joinedNeighbourhood.uuid) -const links = await myPerspective.get(new LinkQuery({ - predicate: Literal.from("thinks").toUrl() -})) -links.forEach(async link => { - const who = link.data.source - const what = Literal.fromUrl(link.data.target).get() - console.log(who, " thinks that ", what) -}) -``` - -## 4. Listening to Perspective changes -Perspectives that have been turned into Neighbourhoods are like entangled particles. -Every agent still has their local copy of the Perspective, but a change from any agent -will be shared with all other agents immediately, -resulting in AD4M automatically updating the local Perspective with the changes by -the others. - -Even with Perspectives that are not shared as Neighbourhood, -a different UI could have access to the same Perspective and cause mutations -on it. - -Apps/UIs can simply register a listener function on that -[PerspectiveProxy](api.md#class-perspectiveproxy) object: -```js -myPerspective.addListener('link-added', (addedLink: LinkExpression) => { - console.log("Got a new link:", addedLink) -}) - -myPerspective.addListener('link-removed', (removedLink: LinkExpression) => { - console.log("A link was removed:", removedLink) -}) -``` \ No newline at end of file diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 000000000..d1c9cdbd6 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,5 @@ +.next +node_modules +pages/jsdoc +!next.config.js +/out/**/* \ No newline at end of file diff --git a/docs/ad4m-ontology.png b/docs/ad4m-ontology.png deleted file mode 100644 index 0a8168fe4..000000000 Binary files a/docs/ad4m-ontology.png and /dev/null differ diff --git a/docs/ad4m-spanning-layer.png b/docs/ad4m-spanning-layer.png deleted file mode 100644 index a4f8a5288..000000000 Binary files a/docs/ad4m-spanning-layer.png and /dev/null differ diff --git a/docs/ad4min-screenshot1.png b/docs/ad4min-screenshot1.png deleted file mode 100644 index c81fce93c..000000000 Binary files a/docs/ad4min-screenshot1.png and /dev/null differ diff --git a/docs/ad4min-screenshot2.png b/docs/ad4min-screenshot2.png deleted file mode 100644 index e3aeda4bf..000000000 Binary files a/docs/ad4min-screenshot2.png and /dev/null differ diff --git a/docs/ad4min-screenshots.png b/docs/ad4min-screenshots.png deleted file mode 100644 index cd1b94010..000000000 Binary files a/docs/ad4min-screenshots.png and /dev/null differ diff --git a/docs/ad4mlogo_green_angle2_colouremblem.png b/docs/ad4mlogo_green_angle2_colouremblem.png deleted file mode 100644 index 46d3b85f7..000000000 Binary files a/docs/ad4mlogo_green_angle2_colouremblem.png and /dev/null differ diff --git a/docs/api.html b/docs/api.html deleted file mode 100644 index a0eecb943..000000000 --- a/docs/api.html +++ /dev/null @@ -1,12200 +0,0 @@ - - - - - - API Reference · AD4M Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - -
    -
    v0.2.12
    -
    - - - - - - - -
    - -
    - -
    - - - - - - - - -
    -
    - -
    - -

    -

    @perspect3vism/ad4m / Exports

    -

    AD4M

    -

    The Agent-Centric Distributed Application Meta-ontology -or just: -*Agent-Centric DApp Meta-ontology*

    -
      -
    • A new meta-ontology for interoperable, decentralized application design
    • -
    • A spanning-layer to enable seamless integration between Holochain DNAs, blockchains, linked-data structures/ontologies and centralized back-ends
    • -
    • The basis for turning distinct, monolithic and siloed apps into a global, open and interoperable sense-making network
    • -
    -
    -

    Ok, let's go...

    -

    To build an app/UI against Ad4m, you need to make sure that an -ad4m-executor is running -on the user's machine.

    -

    The easiest way to get that is to use ad4m-cli:

    -
    npm install -g @perspect3vism/ad4m-cli
    -ad4m executor run &
    -
    -

    Then use Ad4mClient to connect to and work with the running ad4m-executor like this:

    -
    npm install --save @perspect3vism/ad4m
    -npm install --save-exact @apollo/client@3.6.9
    -npm install --save graphql-ws
    -npm install --save ws
    -

    In your code:

    -
    import { Ad4mClient } from '@perspect3vism/ad4m'
    -import { ApolloClient, InMemoryCache } from "@apollo/client/core";
    -import { GraphQLWsLink } from "@apollo/client/link/subscriptions";
    -import { createClient } from 'graphql-ws';
    -import Websocket from "ws";
    -
    -const wsLink = new GraphQLWsLink(createClient({
    -    url: `ws://localhost:4000/graphql`,
    -    webSocketImpl: Websocket
    -}));
    -
    -const apolloClient = new ApolloClient({
    -    link: wsLink,
    -    cache: new InMemoryCache(),
    -    defaultOptions: {
    -        watchQuery: {
    -            fetchPolicy: 'network-only',
    -            nextFetchPolicy: 'network-only'
    -        },
    -    }
    -});
    -
    -ad4mClient = new Ad4mClient(apolloClient)
    -
    -

    Unlocking / initializing the agent

    -

    You can't do much with the Ad4m runtime as long as the agent is not initialized. -So first get the agent status to see if we either need to create new DID or unlock -an existing keystore.

    -
    const { isInitialized, isUnlocked, did } = await ad4mClient.agent.status()
    -
    -

    If isInitialized is false (and then did is empty) we need to create or import -a DID and keys. generate() will create a new DID with method key and lock the -keystore with the given passphrase.

    -
    const { did } = await ad4mClient.agent.generate("passphrase")
    -
    -

    In following runs of the exectuor, ad4mClient.agent.status() will return a did -and isInitialized true, but if isUnlocked is false, we need to unlock the keystore -providing the passphrase:

    -
    const { isUnlocked, did } = await ad4mClient.agent.unlock("passphrase")
    -
    -

    Languages

    -

    For creating an expression we need to select a language that we create an expression in:

    -
    const languages = await ad4mClient.languages.all()
    -const noteIpfsAddress = languages.find(l => l.name === 'note-ipfs').address
    -
    -

    Creating an Expression

    -
    const exprAddress = await ad4mClient.expression.create("A new text note", noteIpfsAddress)
    -
    -

    Creating a Perspective and linking that new Expression

    -
    const perspectiveHandle = await ad4mClient.perspective.add("A new perspective on apps...")
    -await ad4mClient.perspective.addLink(
    -    perspectiveHandle.uuid,
    -    new Link({
    -        source: 'root',
    -        target: exprAddress
    -    })
    -)
    -
    -

    Publishing that local Perspective by turning it into a Neighbourhood

    -

    The back-bone of a Neighbourhood is a LinkLanguage - a Language that enables the sharing -and thus synchronizing of links (see LinksAdapter in Language.ts). -While there can and should be many different implementations -with different trade-offs and features (like membranes etc.), -there currently is one fully implemented and Holochain based LinkLanguage with the name Social Context.

    -

    It is deployed on the current test network (Language Language v0.0.5) under the address: -QmZ1mkoY8nLvpxY3Mizx8UkUiwUzjxJxsqSTPPdH8sHxCQ.

    -

    Creating our unique LinkLanguage clone through templating

    -

    But we should not just use this publicly known Language as the back-bone for our new Neighbourhood, -since we need a unique clone. -So what we want is to use this existing Language as a template and create a new copy with the same code -but different UUID and/name in order to create a fresh space for our new Neighbourhood.

    -

    What parameters can we adjust when using it as template? -Let's have a look at the Language's meta information:

    -
    const socialContextMeta = await ad4mClient.languages.meta("QmZ1mkoY8nLvpxY3Mizx8UkUiwUzjxJxsqSTPPdH8sHxCQ") 
    -
    -console.log(socialContextMeta)
    -
    -

    Which should yield something like this:

    -
     {
    -  name: 'social-context',
    -  address: 'QmZ1mkoY8nLvpxY3Mizx8UkUiwUzjxJxsqSTPPdH8sHxCQ',
    -  description: 'Holochain based LinkLanguage. First full implementation of a LinkLanguage, for collaborative Neighbourhoods where every agent can add links. No membrane. Basic template for all custom Neighbourhoods in this first iteration of the Perspect3vism test network.',
    -  author: 'did:key:zQ3shkkuZLvqeFgHdgZgFMUx8VGkgVWsLA83w2oekhZxoCW2n',
    -  templated: false,
    -  templateSourceLanguageAddress: null,
    -  templateAppliedParams: null,
    -  possibleTemplateParams: [ 'uuid', 'name', 'description' ],
    -  sourceCodeLink: 'https://github.com/juntofoundation/Social-Context'
    -}
    -

    The field possibleTemplateParams tells us that we can set a UUID and override name and description. -Let's leave description but change the name. -The function languages.applyTemplateAndPublish() takes an object as JSON as second parameter like so:

    -
    const uniqueLinkLanguage = await ad4mClient.languages.applyTemplateAndPublish("QmZ1mkoY8nLvpxY3Mizx8UkUiwUzjxJxsqSTPPdH8sHxCQ", JSON.stringify({"uuid": "84a329-77384c-1510fb", "name": "Social Context clone for demo Neighbourhood"}));
    -
    -

    And then use this new LinkLanguage in our Neighbourhood:

    -
    const meta = new Perspective()
    -const neighbourhoodUrl = await ad4mClient.neighbourhood.publishFromPerspective(
    -    perspectiveHandle.uuid,
    -    uniqueLinkLanguage.address,
    -    meta
    -)
    -console.log(neighbourhoodUrl) // => neighbourhood://Qm123456789abcdef
    -
    -

    Joining a Neighbourhood (on another node/agent)

    -

    Assume everything above happened on Alice's agent. -Alice now shares the Neighbourhood's URL with Bob. -This is what Bob does to join the Neigbourhood, access it as a (local) Perspective -and retrieve the Expression Alice created and linked there:

    -
    const joinedNeighbourhood = await ad4mClient.neighbourhood.joinFromUrl(neighbourhoodUrl)
    -const links = await ad4mClient.perspective.queryLinks(joinedNeighbourhood.uuid, new LinkQuery({source: 'a'}))
    -links.forEach(async link => {
    -    const address = link.data.target
    -    const expression = await ad4mClient.expression.get(address)
    -    const data = JSON.parse(expression.data)
    -    console.log(data) //=> "A new text note"
    -})
    -
    -

    Building from source

    -

    Run:

    -
    npm i && npm run build
    -

    -

    Wait, what?!

    -

    The central claim of AD4M is that any single- but also specifically multi-user application can be bootstrapped out of a meta-ontology consisting of 3 quintessential ontological units:

    -
      -
    • Agents
    • -
    • Languages
    • -
    • and Perspectives
    • -
    -

    This is a meta-ontology since it doesn't make any assumptions about the specific ontologies implemented in those bootstrapped apps. But since apps bootstrapped from it share the same meta-ontology, they are mutualy interoperable.

    -

    -

    Agents...

    -

    ...represent humans with their devices, which is what the internet actually is. Technically represented as Decentralized Identifiers - DIDs.

    -

    Languages...

    -

    ...encapsulate the actual technology used to communicate, like Holochain or IPFS, but what they provide to the high-level layers is this: Languages define Expressions, which are the atoms of what Agents communicate. Expressions are always created, and thus signed, by an agent. Expressions are referenced via a URL of the kind <language>://<language specific expression address>. That URL and the Expression itself is the only objective part in AD4M.

    -

    Perspectives...

    -

    ...belong to a specific agent. They represent context and association between expressions. They consist of a list of RDF/semantic web like triplets (subject-predicate-object) called links because all three items are just URLs pointing to expressions. Perspectives are like Solid's pods, but they are agent-centric. There is no such thing as a Perspective that does not belong to an agent. It is like the canvas on which an agent perceives and onto which they create anything. To the next layer above (either the very general UI built in Perspectivism - or any other special purpose UI), they are like a database scope.

    -
    -

    Bootstrapping

    -

    Any AD4M implementation will have to include at least 3 reflexive system Languages to enable the dynamic bootstrapping of apps and interconnected sense-making networks:

    -
      -
    • A Language of Agents, i.e. where the expressions represent agents, and which uses DIDs as the expression URLs.
    • -
    • A Language of Languages, i.e. a way to talk about Languages so Languages can be created by users and shared.
    • -
    • A Language of Perspectives which implies the concept of Shared Perspectives a.k.a. Neighbourhoods, i.e. a way to share an otherwise local and private Perspective with others which constitutes the basic building block of any collaboration context.
    • -
    -

    Having these Languages means Agents can author expressions that represent Agents, Languages and Perspectives. These expressions get linked from inside Perspectives. That way we can model primitives like friends-lists (Perspective including agent expressions), app-stores (Perspective including Languages) and more.

    -

    How do I build an app on/with AD4M?

    -

    Building an AD4M app actually means extending the AD4M ecosystem with the

    -
      -
    • Languages
    • -
    • and link-ontologies
    • -
    -

    needed for the app's domain - and then creating expressions from those Languages and linking them inside Perspectives.

    -

    The latter means creating RDF/semantic web style triplets that associate expressions in order to represent app specific semantics - not too different to how Solid style linked-data would work.

    -

    Classes

    -

    -

    @perspect3vism/ad4m / Exports / Ad4mClient / Ad4mClient

    -

    Class: Ad4mClient

    -

    Ad4mClient.Ad4mClient

    -

    Client for the Ad4m interface wrapping GraphQL queryies -for convenient use in user facing code.

    -

    Aggregates the six sub-clients: -AgentClient, ExpressionClient, LanguageClient, -NeighbourhoodClient, PerspectiveClient and RuntimeClient -for the respective functionality.

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Accessors

    - -

    Constructors

    -

    constructor

    -

    new Ad4mClient(client, subscribe?)

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - -
    NameTypeDefault value
    clientApolloClient<any>undefined
    subscribebooleantrue
    -
    Defined in
    -

    Ad4mClient.ts:28

    -

    Properties

    -

    #agentClient

    -

    Private #agentClient: AgentClient

    -
    Defined in
    -

    Ad4mClient.ts:20

    -
    -

    #apolloClient

    -

    Private #apolloClient: ApolloClient<any>

    -
    Defined in
    -

    Ad4mClient.ts:19

    -
    -

    #expressionClient

    -

    Private #expressionClient: ExpressionClient

    -
    Defined in
    -

    Ad4mClient.ts:21

    -
    -

    #languageClient

    -

    Private #languageClient: LanguageClient

    -
    Defined in
    -

    Ad4mClient.ts:22

    -
    -

    #neighbourhoodClient

    -

    Private #neighbourhoodClient: NeighbourhoodClient

    -
    Defined in
    -

    Ad4mClient.ts:23

    -
    -

    #perspectiveClient

    -

    Private #perspectiveClient: PerspectiveClient

    -
    Defined in
    -

    Ad4mClient.ts:24

    -
    -

    #runtimeClient

    -

    Private #runtimeClient: RuntimeClient

    -
    Defined in
    -

    Ad4mClient.ts:25

    -

    Accessors

    -

    agent

    -

    get agent(): AgentClient

    -
    Returns
    -

    AgentClient

    -
    Defined in
    -

    Ad4mClient.ts:40

    -
    -

    expression

    -

    get expression(): ExpressionClient

    -
    Returns
    -

    ExpressionClient

    -
    Defined in
    -

    Ad4mClient.ts:44

    -
    -

    languages

    -

    get languages(): LanguageClient

    -
    Returns
    -

    LanguageClient

    -
    Defined in
    -

    Ad4mClient.ts:48

    -
    -

    neighbourhood

    -

    get neighbourhood(): NeighbourhoodClient

    -
    Returns
    -

    NeighbourhoodClient

    -
    Defined in
    -

    Ad4mClient.ts:52

    -
    -

    perspective

    -

    get perspective(): PerspectiveClient

    -
    Returns
    -

    PerspectiveClient

    -
    Defined in
    -

    Ad4mClient.ts:56

    -
    -

    runtime

    -

    get runtime(): RuntimeClient

    -
    Returns
    -

    RuntimeClient

    -
    Defined in
    -

    Ad4mClient.ts:60

    -

    -

    @perspect3vism/ad4m / Exports / Literal / Literal

    -

    Class: Literal

    -

    Literal.Literal

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Methods

    - -

    Constructors

    -

    constructor

    -

    new Literal()

    -

    Properties

    -

    #literal

    -

    Private Optional #literal: any

    -
    Defined in
    -

    Literal.ts:10

    -
    -

    #url

    -

    Private Optional #url: string

    -
    Defined in
    -

    Literal.ts:11

    -

    Methods

    -

    get

    -

    get(): any

    -
    Returns
    -

    any

    -
    Defined in
    -

    Literal.ts:49

    -
    -

    toUrl

    -

    toUrl(): string

    -
    Returns
    -

    string

    -
    Defined in
    -

    Literal.ts:27

    -
    -

    from

    -

    Static from(literal): Literal

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    literalany
    -
    Returns
    -

    Literal

    -
    Defined in
    -

    Literal.ts:21

    -
    -

    fromUrl

    -

    Static fromUrl(url): Literal

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    urlstring
    -
    Returns
    -

    Literal

    -
    Defined in
    -

    Literal.ts:13

    -

    -

    @perspect3vism/ad4m / Exports / SmartLiteral / SmartLiteral

    -

    Class: SmartLiteral

    -

    SmartLiteral.SmartLiteral

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Accessors

    - -

    Methods

    - -

    Constructors

    -

    constructor

    -

    new SmartLiteral(perspective, base)

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    perspectivePerspectiveProxy
    basestring
    -
    Defined in
    -

    SmartLiteral.ts:23

    -

    Properties

    -

    #base

    -

    Private #base: string

    -
    Defined in
    -

    SmartLiteral.ts:21

    -
    -

    #perspective

    -

    Private #perspective: PerspectiveProxy

    -
    Defined in
    -

    SmartLiteral.ts:20

    -

    Accessors

    -

    base

    -

    get base(): string

    -
    Returns
    -

    string

    -
    Defined in
    -

    SmartLiteral.ts:28

    -

    Methods

    -

    get

    -

    get(): Promise<any>

    -
    Returns
    -

    Promise<any>

    -
    Defined in
    -

    SmartLiteral.ts:54

    -
    -

    set

    -

    set(content): Promise<void>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    contentany
    -
    Returns
    -

    Promise<void>

    -
    Defined in
    -

    SmartLiteral.ts:67

    -
    -

    create

    -

    Static create(perspective, literal): Promise<SmartLiteral>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    perspectivePerspectiveProxy
    literalany
    -
    Returns
    -

    Promise<SmartLiteral>

    -
    Defined in
    -

    SmartLiteral.ts:32

    -
    -

    getAllSmartLiterals

    -

    Static getAllSmartLiterals(perspective): Promise<SmartLiteral[]>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    perspectivePerspectiveProxy
    -
    Returns
    -

    Promise<SmartLiteral[]>

    -
    Defined in
    -

    SmartLiteral.ts:47

    -
    -

    isSmartLiteralBase

    -

    Static isSmartLiteralBase(perspective, base): Promise<boolean>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    perspectivePerspectiveProxy
    basestring
    -
    Returns
    -

    Promise<boolean>

    -
    Defined in
    -

    SmartLiteral.ts:39

    -

    -

    @perspect3vism/ad4m / Exports / agent/Agent / Agent

    -

    Class: Agent

    -

    agent/Agent.Agent

    -

    AD4M's representation of an Agent

    -

    AD4M Agents are build around DIDs, which are used to identify and authenticate the Agent. -Conceptually, an Agent is regarded as something that can speak and that can listen.

    -

    Agents speak by creating Expressions in AD4M Languages which are signed by the Agent's DID key, -And they also speak (broadcast) by putting semantic statements into their public "Agent Perspective". -They listen (can receive messages) through their "direct message Language".

    -

    These three aspects are represented by the three fields of this class.

    -

    This class is used as format for the Expressions in the Agent language. -Since AD4M treats DID URIs as addresses for the Agent Language, -DIDs are resolved to Expressions that are objects of this class. -Thus, this is how agents see (other) agents.

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new Agent(did, perspective?)

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    didstring
    perspective?Perspective
    -
    Defined in
    -

    agent/Agent.ts:42

    -

    Properties

    -

    did

    -

    did: string

    -

    The DID of the Agent -All epxressions authored by them are signed with the keys mentioned -in the DID document behind this DID URI.

    -
    Defined in
    -

    agent/Agent.ts:28

    -
    -

    directMessageLanguage

    -

    Optional directMessageLanguage: string

    -

    Address of the Language by which the Agent will receive DMs

    -
    Defined in
    -

    agent/Agent.ts:40

    -
    -

    perspective

    -

    Optional perspective: Perspective

    -

    The Perspective that holds the public-facing semantics/statements of the Agent -Holds and shares a Perspective that links all information -this agent wants to offer as public-facing semantics. -This should be used for any kind of user profile information.

    -
    Defined in
    -

    agent/Agent.ts:36

    -

    -

    @perspect3vism/ad4m / Exports / agent/Agent / AgentExpression

    -

    Class: AgentExpression

    -

    agent/Agent.AgentExpression

    -

    Hierarchy

    -
      -
    • any

      -

      AgentExpression

      -
    • -
    -

    Table of contents

    -

    Constructors

    - -

    Constructors

    -

    constructor

    -

    new AgentExpression()

    -
    Inherited from
    -

    ExpressionGeneric(Agent).constructor

    -

    -

    @perspect3vism/ad4m / Exports / agent/Agent / AgentSignature

    -

    Class: AgentSignature

    -

    agent/Agent.AgentSignature

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new AgentSignature(signature, publicKey)

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    signaturestring
    publicKeystring
    -
    Defined in
    -

    agent/Agent.ts:123

    -

    Properties

    -

    publicKey

    -

    publicKey: string

    -
    Defined in
    -

    agent/Agent.ts:121

    -
    -

    signature

    -

    signature: string

    -
    Defined in
    -

    agent/Agent.ts:118

    -

    -

    @perspect3vism/ad4m / Exports / agent/Agent / Apps

    -

    Class: Apps

    -

    agent/Agent.Apps

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new Apps(requestId, auth, token, revoked?)

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameType
    requestIdstring
    authAuthInfo
    tokenstring
    revoked?boolean
    -
    Defined in
    -

    agent/Agent.ts:194

    -

    Properties

    -

    auth

    -

    auth: AuthInfo

    -
    Defined in
    -

    agent/Agent.ts:192

    -
    -

    requestId

    -

    requestId: string

    -
    Defined in
    -

    agent/Agent.ts:183

    -
    -

    revoked

    -

    Optional revoked: boolean

    -
    Defined in
    -

    agent/Agent.ts:189

    -
    -

    token

    -

    token: string

    -
    Defined in
    -

    agent/Agent.ts:186

    -

    -

    @perspect3vism/ad4m / Exports / agent/Agent / AuthInfo

    -

    Class: AuthInfo

    -

    agent/Agent.AuthInfo

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new AuthInfo(appName, appDesc, appUrl, capabilities)

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameType
    appNamestring
    appDescstring
    appUrlstring
    capabilitiesCapability[]
    -
    Defined in
    -

    agent/Agent.ts:172

    -

    Properties

    -

    appDesc

    -

    appDesc: string

    -
    Defined in
    -

    agent/Agent.ts:164

    -
    -

    appName

    -

    appName: string

    -
    Defined in
    -

    agent/Agent.ts:161

    -
    -

    appUrl

    -

    appUrl: string

    -
    Defined in
    -

    agent/Agent.ts:167

    -
    -

    capabilities

    -

    capabilities: Capability[]

    -
    Defined in
    -

    agent/Agent.ts:170

    -

    -

    @perspect3vism/ad4m / Exports / agent/Agent / Capability

    -

    Class: Capability

    -

    agent/Agent.Capability

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new Capability(withF, can)

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    withFResource
    canstring[]
    -
    Defined in
    -

    agent/Agent.ts:151

    -

    Properties

    -

    can

    -

    can: string[]

    -
    Defined in
    -

    agent/Agent.ts:149

    -
    -

    with

    -

    with: Resource

    -
    Defined in
    -

    agent/Agent.ts:146

    -

    -

    @perspect3vism/ad4m / Exports / agent/Agent / EntanglementProof

    -

    Class: EntanglementProof

    -

    agent/Agent.EntanglementProof

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new EntanglementProof(did, didSigningKeyId, deviceKeyType, deviceKey, deviceKeySignedByDid, didSignedByDeviceKey?)

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameType
    didstring
    didSigningKeyIdstring
    deviceKeyTypestring
    deviceKeystring
    deviceKeySignedByDidstring
    didSignedByDeviceKey?string
    -
    Defined in
    -

    agent/Agent.ts:75

    -

    Properties

    -

    deviceKey

    -

    deviceKey: string

    -
    Defined in
    -

    agent/Agent.ts:67

    -
    -

    deviceKeySignedByDid

    -

    deviceKeySignedByDid: string

    -
    Defined in
    -

    agent/Agent.ts:70

    -
    -

    deviceKeyType

    -

    deviceKeyType: string

    -
    Defined in
    -

    agent/Agent.ts:64

    -
    -

    did

    -

    did: string

    -
    Defined in
    -

    agent/Agent.ts:58

    -
    -

    didSignedByDeviceKey

    -

    Optional didSignedByDeviceKey: string

    -
    Defined in
    -

    agent/Agent.ts:73

    -
    -

    didSigningKeyId

    -

    didSigningKeyId: string

    -
    Defined in
    -

    agent/Agent.ts:61

    -

    -

    @perspect3vism/ad4m / Exports / agent/Agent / EntanglementProofInput

    -

    Class: EntanglementProofInput

    -

    agent/Agent.EntanglementProofInput

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new EntanglementProofInput(did, didSigningKeyId, deviceKeyType, deviceKey, deviceKeySignedByDid, didSignedByDeviceKey)

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameType
    didstring
    didSigningKeyIdstring
    deviceKeyTypestring
    deviceKeystring
    deviceKeySignedByDidstring
    didSignedByDeviceKeystring
    -
    Defined in
    -

    agent/Agent.ts:105

    -

    Properties

    -

    deviceKey

    -

    deviceKey: string

    -
    Defined in
    -

    agent/Agent.ts:97

    -
    -

    deviceKeySignedByDid

    -

    deviceKeySignedByDid: string

    -
    Defined in
    -

    agent/Agent.ts:100

    -
    -

    deviceKeyType

    -

    deviceKeyType: string

    -
    Defined in
    -

    agent/Agent.ts:94

    -
    -

    did

    -

    did: string

    -
    Defined in
    -

    agent/Agent.ts:88

    -
    -

    didSignedByDeviceKey

    -

    didSignedByDeviceKey: string

    -
    Defined in
    -

    agent/Agent.ts:103

    -
    -

    didSigningKeyId

    -

    didSigningKeyId: string

    -
    Defined in
    -

    agent/Agent.ts:91

    -

    -

    @perspect3vism/ad4m / Exports / agent/Agent / Resource

    -

    Class: Resource

    -

    agent/Agent.Resource

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new Resource(domain, pointers)

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    domainstring
    pointersstring[]
    -
    Defined in
    -

    agent/Agent.ts:137

    -

    Properties

    -

    domain

    -

    domain: string

    -
    Defined in
    -

    agent/Agent.ts:132

    -
    -

    pointers

    -

    pointers: string[]

    -
    Defined in
    -

    agent/Agent.ts:135

    -

    -

    @perspect3vism/ad4m / Exports / agent/AgentClient / AgentClient

    -

    Class: AgentClient

    -

    agent/AgentClient.AgentClient

    -

    Provides access to all functions regarding the local agent, -such as generating, locking, unlocking, importing the DID keystore, -as well as updating the publicly shared Agent expression.

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Methods

    - -

    Constructors

    -

    constructor

    -

    new AgentClient(client, subscribe?)

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - -
    NameTypeDefault value
    clientApolloClient<any>undefined
    subscribebooleantrue
    -
    Defined in
    -

    agent/AgentClient.ts:84

    -

    Properties

    -

    #agentStatusChangedCallbacks

    -

    Private #agentStatusChangedCallbacks: AgentStatusChangedCallback[]

    -
    Defined in
    -

    agent/AgentClient.ts:82

    -
    -

    #apolloClient

    -

    Private #apolloClient: ApolloClient<any>

    -
    Defined in
    -

    agent/AgentClient.ts:80

    -
    -

    #updatedCallbacks

    -

    Private #updatedCallbacks: AgentUpdatedCallback[]

    -
    Defined in
    -

    agent/AgentClient.ts:81

    -

    Methods

    -

    addAgentStatusChangedListener

    -

    addAgentStatusChangedListener(listener): void

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    listenerany
    -
    Returns
    -

    void

    -
    Defined in
    -

    agent/AgentClient.ts:324

    -
    -

    addEntanglementProofs

    -

    addEntanglementProofs(proofs): Promise<EntanglementProof[]>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    proofsEntanglementProofInput[]
    -
    Returns
    -

    Promise<EntanglementProof[]>

    -
    Defined in
    -

    agent/AgentClient.ts:257

    -
    -

    addUpdatedListener

    -

    addUpdatedListener(listener): void

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    listenerany
    -
    Returns
    -

    void

    -
    Defined in
    -

    agent/AgentClient.ts:304

    -
    -

    byDID

    -

    byDID(did): Promise<Agent>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    didstring
    -
    Returns
    -

    Promise<Agent>

    -
    Defined in
    -

    agent/AgentClient.ts:178

    -
    -

    deleteEntanglementProofs

    -

    deleteEntanglementProofs(proofs): Promise<EntanglementProof[]>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    proofsEntanglementProofInput[]
    -
    Returns
    -

    Promise<EntanglementProof[]>

    -
    Defined in
    -

    agent/AgentClient.ts:269

    -
    -

    entanglementProofPreFlight

    -

    entanglementProofPreFlight(deviceKey, deviceKeyType): Promise<EntanglementProof>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    deviceKeystring
    deviceKeyTypestring
    -
    Returns
    -

    Promise<EntanglementProof>

    -
    Defined in
    -

    agent/AgentClient.ts:292

    -
    -

    generate

    -

    generate(passphrase): Promise<AgentStatus>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    passphrasestring
    -
    Returns
    -

    Promise<AgentStatus>

    -
    Defined in
    -

    agent/AgentClient.ts:121

    -
    -

    generateJwt

    -

    generateJwt(requestId, rand): Promise<string>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    requestIdstring
    randstring
    -
    Returns
    -

    Promise<string>

    -
    Defined in
    -

    agent/AgentClient.ts:364

    -
    -

    getApps

    -

    getApps(): Promise<Apps[]>

    -
    Returns
    -

    Promise<Apps[]>

    -
    Defined in
    -

    agent/AgentClient.ts:374

    -
    -

    getEntanglementProofs

    -

    getEntanglementProofs(): Promise<string[]>

    -
    Returns
    -

    Promise<string[]>

    -
    Defined in
    -

    agent/AgentClient.ts:281

    -
    -

    import

    -

    import(args): Promise<AgentStatus>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    argsInitializeArgs
    -
    Returns
    -

    Promise<AgentStatus>

    -
    Defined in
    -

    agent/AgentClient.ts:135

    -
    -

    isLocked

    -

    isLocked(): Promise<boolean>

    -
    Returns
    -

    Promise<boolean>

    -
    Defined in
    -

    agent/AgentClient.ts:410

    -
    -

    lock

    -

    lock(passphrase): Promise<AgentStatus>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    passphrasestring
    -
    Returns
    -

    Promise<AgentStatus>

    -
    Defined in
    -

    agent/AgentClient.ts:153

    -
    -

    me

    -

    me(): Promise<Agent>

    -

    Returns the Agent expression of the local agent as it is shared -publicly via the AgentLanguage.

    -

    I.e. this is the users profile.

    -
    Returns
    -

    Promise<Agent>

    -
    Defined in
    -

    agent/AgentClient.ts:101

    -
    -

    mutatePublicPerspective

    -

    mutatePublicPerspective(mutations): Promise<Agent>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    mutationsLinkMutations
    -
    Returns
    -

    Promise<Agent>

    -
    Defined in
    -

    agent/AgentClient.ts:213

    -
    -

    permitCapability

    -

    permitCapability(auth): Promise<string>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    authstring
    -
    Returns
    -

    Promise<string>

    -
    Defined in
    -

    agent/AgentClient.ts:354

    -
    -

    removeApp

    -

    removeApp(requestId): Promise<Apps[]>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    requestIdstring
    -
    Returns
    -

    Promise<Apps[]>

    -
    Defined in
    -

    agent/AgentClient.ts:386

    -
    -

    requestCapability

    -

    requestCapability(appName, appDesc, appUrl, capabilities): Promise<string>

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameType
    appNamestring
    appDescstring
    appUrlstring
    capabilitiesstring
    -
    Returns
    -

    Promise<string>

    -
    Defined in
    -

    agent/AgentClient.ts:344

    -
    -

    revokeToken

    -

    revokeToken(requestId): Promise<Apps[]>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    requestIdstring
    -
    Returns
    -

    Promise<Apps[]>

    -
    Defined in
    -

    agent/AgentClient.ts:398

    -
    -

    signMessage

    -

    signMessage(message): Promise<string>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    messagestring
    -
    Returns
    -

    Promise<string>

    -
    Defined in
    -

    agent/AgentClient.ts:419

    -
    -

    status

    -

    status(): Promise<AgentStatus>

    -
    Returns
    -

    Promise<AgentStatus>

    -
    Defined in
    -

    agent/AgentClient.ts:110

    -
    -

    subscribeAgentStatusChanged

    -

    subscribeAgentStatusChanged(): void

    -
    Returns
    -

    void

    -
    Defined in
    -

    agent/AgentClient.ts:328

    -
    -

    subscribeAgentUpdated

    -

    subscribeAgentUpdated(): void

    -
    Returns
    -

    void

    -
    Defined in
    -

    agent/AgentClient.ts:308

    -
    -

    unlock

    -

    unlock(passphrase): Promise<AgentStatus>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    passphrasestring
    -
    Returns
    -

    Promise<AgentStatus>

    -
    Defined in
    -

    agent/AgentClient.ts:165

    -
    -

    updateDirectMessageLanguage

    -

    updateDirectMessageLanguage(directMessageLanguage): Promise<Agent>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    directMessageLanguagestring
    -
    Returns
    -

    Promise<Agent>

    -
    Defined in
    -

    agent/AgentClient.ts:242

    -
    -

    updatePublicPerspective

    -

    updatePublicPerspective(perspective): Promise<Agent>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    perspectivePerspectiveInput
    -
    Returns
    -

    Promise<Agent>

    -
    Defined in
    -

    agent/AgentClient.ts:190

    -

    -

    @perspect3vism/ad4m / Exports / agent/AgentResolver / default

    -

    Class: default

    -

    agent/AgentResolver.default

    -

    Table of contents

    -

    Constructors

    - -

    Methods

    - -

    Constructors

    -

    constructor

    -

    new default()

    -

    Methods

    -

    agent

    -

    agent(): Agent

    -
    Returns
    -

    Agent

    -
    Defined in
    -

    agent/AgentResolver.ts:11

    -
    -

    agentAddEntanglementProofs

    -

    agentAddEntanglementProofs(proofs): EntanglementProof[]

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    proofsEntanglementProofInput[]
    -
    Returns
    -

    EntanglementProof[]

    -
    Defined in
    -

    agent/AgentResolver.ts:93

    -
    -

    agentByDID

    -

    agentByDID(did): Agent

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    didstring
    -
    Returns
    -

    Agent

    -
    Defined in
    -

    agent/AgentResolver.ts:62

    -
    -

    agentDeleteEntanglementProofs

    -

    agentDeleteEntanglementProofs(proofs): EntanglementProof[]

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    proofsEntanglementProofInput[]
    -
    Returns
    -

    EntanglementProof[]

    -
    Defined in
    -

    agent/AgentResolver.ts:98

    -
    -

    agentEntanglementProofPreFlight

    -

    agentEntanglementProofPreFlight(deviceKey, deviceKeyType): EntanglementProof

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    deviceKeystring
    deviceKeyTypestring
    -
    Returns
    -

    EntanglementProof

    -
    Defined in
    -

    agent/AgentResolver.ts:108

    -
    -

    agentGenerate

    -

    agentGenerate(passphrase, pubSub): AgentStatus

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    passphrasestring
    pubSubany
    -
    Returns
    -

    AgentStatus

    -
    Defined in
    -

    agent/AgentResolver.ts:21

    -
    -

    agentGenerateJwt

    -

    agentGenerateJwt(requestId, rand): String

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    requestIdstring
    randstring
    -
    Returns
    -

    String

    -
    Defined in
    -

    agent/AgentResolver.ts:128

    -
    -

    agentGetApps

    -

    agentGetApps(): []

    -
    Returns
    -

    []

    -
    Defined in
    -

    agent/AgentResolver.ts:138

    -
    -

    agentGetEntanglementProofs

    -

    agentGetEntanglementProofs(): EntanglementProof[]

    -
    Returns
    -

    EntanglementProof[]

    -
    Defined in
    -

    agent/AgentResolver.ts:103

    -
    -

    agentImport

    -

    agentImport(did, didDocument, keystore, passphrase): AgentStatus

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameType
    didstring
    didDocumentstring
    keystorestring
    passphrasestring
    -
    Returns
    -

    AgentStatus

    -
    Defined in
    -

    agent/AgentResolver.ts:31

    -
    -

    agentIsLocked

    -

    agentIsLocked(): Boolean

    -
    Returns
    -

    Boolean

    -
    Defined in
    -

    agent/AgentResolver.ts:133

    -
    -

    agentLock

    -

    agentLock(passphrase, pubSub): AgentStatus

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    passphrasestring
    pubSubany
    -
    Returns
    -

    AgentStatus

    -
    Defined in
    -

    agent/AgentResolver.ts:41

    -
    -

    agentPermitCapability

    -

    agentPermitCapability(auth): String

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    authstring
    -
    Returns
    -

    String

    -
    Defined in
    -

    agent/AgentResolver.ts:123

    -
    -

    agentRemoveApp

    -

    agentRemoveApp(requestId): []

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    requestIdstring
    -
    Returns
    -

    []

    -
    Defined in
    -

    agent/AgentResolver.ts:143

    -
    -

    agentRequestCapability

    -

    agentRequestCapability(appName, appDesc, appUrl, capabilities): String

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameType
    appNamestring
    appDescstring
    appUrlstring
    capabilitiesstring
    -
    Returns
    -

    String

    -
    Defined in
    -

    agent/AgentResolver.ts:113

    -
    -

    agentRevokeToken

    -

    agentRevokeToken(requestId): any[]

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    requestIdstring
    -
    Returns
    -

    any[]

    -
    Defined in
    -

    agent/AgentResolver.ts:148

    -
    -

    agentSignMessage

    -

    agentSignMessage(message): AgentSignature

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    messagestring
    -
    Returns
    -

    AgentSignature

    -
    Defined in
    -

    agent/AgentResolver.ts:176

    -
    -

    agentStatus

    -

    agentStatus(): AgentStatus

    -
    Returns
    -

    AgentStatus

    -
    Defined in
    -

    agent/AgentResolver.ts:16

    -
    -

    agentStatusChanged

    -

    agentStatusChanged(): AgentStatus

    -
    Returns
    -

    AgentStatus

    -
    Defined in
    -

    agent/AgentResolver.ts:88

    -
    -

    agentUnlock

    -

    agentUnlock(passphrase, pubSub): AgentStatus

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    passphrasestring
    pubSubany
    -
    Returns
    -

    AgentStatus

    -
    Defined in
    -

    agent/AgentResolver.ts:51

    -
    -

    agentUpdateDirectMessageLanguage

    -

    agentUpdateDirectMessageLanguage(directMessageLanguage, pubSub): Agent

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    directMessageLanguagestring
    pubSubany
    -
    Returns
    -

    Agent

    -
    Defined in
    -

    agent/AgentResolver.ts:75

    -
    -

    agentUpdatePublicPerspective

    -

    agentUpdatePublicPerspective(perspective, pubSub): Agent

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    perspectivePerspectiveInput
    pubSubany
    -
    Returns
    -

    Agent

    -
    Defined in
    -

    agent/AgentResolver.ts:67

    -
    -

    agentUpdated

    -

    agentUpdated(): Agent

    -
    Returns
    -

    Agent

    -
    Defined in
    -

    agent/AgentResolver.ts:83

    -

    -

    @perspect3vism/ad4m / Exports / agent/AgentStatus / AgentStatus

    -

    Class: AgentStatus

    -

    agent/AgentStatus.AgentStatus

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new AgentStatus(obj?)

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    obj?object
    -
    Defined in
    -

    agent/AgentStatus.ts:20

    -

    Properties

    -

    did

    -

    Optional did: string

    -
    Defined in
    -

    agent/AgentStatus.ts:12

    -
    -

    didDocument

    -

    Optional didDocument: string

    -
    Defined in
    -

    agent/AgentStatus.ts:15

    -
    -

    error

    -

    Optional error: string

    -
    Defined in
    -

    agent/AgentStatus.ts:18

    -
    -

    isInitialized

    -

    isInitialized: Boolean

    -
    Defined in
    -

    agent/AgentStatus.ts:6

    -
    -

    isUnlocked

    -

    isUnlocked: Boolean

    -
    Defined in
    -

    agent/AgentStatus.ts:9

    -

    -

    @perspect3vism/ad4m / Exports / expression/Expression / Expression

    -

    Class: Expression

    -

    expression/Expression.Expression

    -

    Hierarchy

    -
      -
    • any

      -

      Expression

      -
    • -
    -

    Table of contents

    -

    Constructors

    - -

    Constructors

    -

    constructor

    -

    new Expression()

    -
    Inherited from
    -

    ExpressionGeneric(Object).constructor

    -

    -

    @perspect3vism/ad4m / Exports / expression/Expression / ExpressionProof

    -

    Class: ExpressionProof

    -

    expression/Expression.ExpressionProof

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new ExpressionProof(sig, k)

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    sigstring
    kstring
    -
    Defined in
    -

    expression/Expression.ts:20

    -

    Properties

    -

    invalid

    -

    Optional invalid: boolean

    -
    Defined in
    -

    expression/Expression.ts:18

    -
    -

    key

    -

    key: string

    -
    Defined in
    -

    expression/Expression.ts:12

    -
    -

    signature

    -

    signature: string

    -
    Defined in
    -

    expression/Expression.ts:9

    -
    -

    valid

    -

    Optional valid: boolean

    -
    Defined in
    -

    expression/Expression.ts:15

    -

    -

    @perspect3vism/ad4m / Exports / expression/Expression / ExpressionProofInput

    -

    Class: ExpressionProofInput

    -

    expression/Expression.ExpressionProofInput

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new ExpressionProofInput()

    -

    Properties

    -

    invalid

    -

    Optional invalid: boolean

    -
    Defined in
    -

    expression/Expression.ts:38

    -
    -

    key

    -

    key: string

    -
    Defined in
    -

    expression/Expression.ts:32

    -
    -

    signature

    -

    signature: string

    -
    Defined in
    -

    expression/Expression.ts:29

    -
    -

    valid

    -

    Optional valid: boolean

    -
    Defined in
    -

    expression/Expression.ts:35

    -

    -

    @perspect3vism/ad4m / Exports / expression/Expression / ExpressionRendered

    -

    Class: ExpressionRendered

    -

    expression/Expression.ExpressionRendered

    -

    Hierarchy

    -
      -
    • any

      -

      ExpressionRendered

      -
    • -
    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new ExpressionRendered()

    -
    Inherited from
    -

    ExpressionGeneric(String).constructor

    -

    Properties

    -

    icon

    -

    icon: Icon

    -
    Defined in
    -

    expression/Expression.ts:94

    -
    -

    language

    -

    language: LanguageRef

    -
    Defined in
    -

    expression/Expression.ts:91

    -

    -

    @perspect3vism/ad4m / Exports / expression/ExpressionClient / ExpressionClient

    -

    Class: ExpressionClient

    -

    expression/ExpressionClient.ExpressionClient

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Methods

    - -

    Constructors

    -

    constructor

    -

    new ExpressionClient(client)

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    clientApolloClient<any>
    -
    Defined in
    -

    expression/ExpressionClient.ts:9

    -

    Properties

    -

    #apolloClient

    -

    Private #apolloClient: ApolloClient<any>

    -
    Defined in
    -

    expression/ExpressionClient.ts:7

    -

    Methods

    -

    create

    -

    create(content, languageAddress): Promise<string>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    contentany
    languageAddressstring
    -
    Returns
    -

    Promise<string>

    -
    Defined in
    -

    expression/ExpressionClient.ts:65

    -
    -

    get

    -

    get(url): Promise<ExpressionRendered>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    urlstring
    -
    Returns
    -

    Promise<ExpressionRendered>

    -
    Defined in
    -

    expression/ExpressionClient.ts:13

    -
    -

    getMany

    -

    getMany(urls): Promise<ExpressionRendered[]>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    urlsstring[]
    -
    Returns
    -

    Promise<ExpressionRendered[]>

    -
    Defined in
    -

    expression/ExpressionClient.ts:34

    -
    -

    getRaw

    -

    getRaw(url): Promise<string>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    urlstring
    -
    Returns
    -

    Promise<string>

    -
    Defined in
    -

    expression/ExpressionClient.ts:55

    -
    -

    interact

    -

    interact(url, interactionCall): Promise<string>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    urlstring
    interactionCallInteractionCall
    -
    Returns
    -

    Promise<string>

    -
    Defined in
    -

    expression/ExpressionClient.ts:90

    -
    -

    interactions

    -

    interactions(url): Promise<InteractionMeta[]>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    urlstring
    -
    Returns
    -

    Promise<InteractionMeta[]>

    -
    Defined in
    -

    expression/ExpressionClient.ts:76

    -

    -

    @perspect3vism/ad4m / Exports / expression/ExpressionRef / ExpressionRef

    -

    Class: ExpressionRef

    -

    expression/ExpressionRef.ExpressionRef

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new ExpressionRef(lang, expr)

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    langLanguageRef
    exprstring
    -
    Defined in
    -

    expression/ExpressionRef.ts:14

    -

    Properties

    -

    expression

    -

    expression: string

    -
    Defined in
    -

    expression/ExpressionRef.ts:12

    -
    -

    language

    -

    language: LanguageRef

    -
    Defined in
    -

    expression/ExpressionRef.ts:9

    -

    -

    @perspect3vism/ad4m / Exports / expression/ExpressionResolver / default

    -

    Class: default

    -

    expression/ExpressionResolver.default

    -

    Table of contents

    -

    Constructors

    - -

    Methods

    - -

    Constructors

    -

    constructor

    -

    new default()

    -

    Methods

    -

    expression

    -

    expression(url): ExpressionRendered

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    urlstring
    -
    Returns
    -

    ExpressionRendered

    -
    Defined in
    -

    expression/ExpressionResolver.ts:16

    -
    -

    expressionCreate

    -

    expressionCreate(content, languageAddress): string

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    contentstring
    languageAddressstring
    -
    Returns
    -

    string

    -
    Defined in
    -

    expression/ExpressionResolver.ts:39

    -
    -

    expressionInteract

    -

    expressionInteract(url, interactionCall): string

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    urlstring
    interactionCallInteractionCall
    -
    Returns
    -

    string

    -
    Defined in
    -

    expression/ExpressionResolver.ts:57

    -
    -

    expressionInteractions

    -

    expressionInteractions(url): InteractionMeta[]

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    urlstring
    -
    Returns
    -

    InteractionMeta[]

    -
    Defined in
    -

    expression/ExpressionResolver.ts:47

    -
    -

    expressionMany

    -

    expressionMany(urls): ExpressionRendered[]

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    urlsstring[]
    -
    Returns
    -

    ExpressionRendered[]

    -
    Defined in
    -

    expression/ExpressionResolver.ts:25

    -
    -

    expressionRaw

    -

    expressionRaw(url): string

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    urlstring
    -
    Returns
    -

    string

    -
    Defined in
    -

    expression/ExpressionResolver.ts:30

    -

    -

    @perspect3vism/ad4m / Exports / language/Icon / Icon

    -

    Class: Icon

    -

    language/Icon.Icon

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new Icon(code)

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    codestring
    -
    Defined in
    -

    language/Icon.ts:8

    -

    Properties

    -

    code

    -

    code: string

    -
    Defined in
    -

    language/Icon.ts:6

    -

    -

    @perspect3vism/ad4m / Exports / language/Language / InteractionCall

    -

    Class: InteractionCall

    -

    language/Language.InteractionCall

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Accessors

    - -

    Constructors

    -

    constructor

    -

    new InteractionCall(name, parameters)

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    namestring
    parametersobject
    -
    Defined in
    -

    language/Language.ts:239

    -

    Properties

    -

    name

    -

    name: string

    -
    Defined in
    -

    language/Language.ts:231

    -
    -

    parametersStringified

    -

    parametersStringified: string

    -
    Defined in
    -

    language/Language.ts:233

    -

    Accessors

    -

    parameters

    -

    get parameters(): object

    -
    Returns
    -

    object

    -
    Defined in
    -

    language/Language.ts:235

    -

    -

    @perspect3vism/ad4m / Exports / language/Language / InteractionMeta

    -

    Class: InteractionMeta

    -

    language/Language.InteractionMeta

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new InteractionMeta()

    -

    Properties

    -

    label

    -

    label: string

    -
    Defined in
    -

    language/Language.ts:213

    -
    -

    name

    -

    name: string

    -
    Defined in
    -

    language/Language.ts:216

    -
    -

    parameters

    -

    parameters: InteractionParameter[]

    -
    Defined in
    -

    language/Language.ts:219

    -

    -

    @perspect3vism/ad4m / Exports / language/Language / InteractionParameter

    -

    Class: InteractionParameter

    -

    language/Language.InteractionParameter

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new InteractionParameter()

    -

    Properties

    -

    name

    -

    name: string

    -
    Defined in
    -

    language/Language.ts:204

    -
    -

    type

    -

    type: string

    -
    Defined in
    -

    language/Language.ts:207

    -

    -

    @perspect3vism/ad4m / Exports / language/Language / OnlineAgent

    -

    Class: OnlineAgent

    -

    language/Language.OnlineAgent

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new OnlineAgent()

    -

    Properties

    -

    did

    -

    did: string

    -
    Defined in
    -

    language/Language.ts:248

    -
    -

    status

    -

    status: PerspectiveExpression

    -
    Defined in
    -

    language/Language.ts:250

    -

    -

    @perspect3vism/ad4m / Exports / language/LanguageClient / LanguageClient

    -

    Class: LanguageClient

    -

    language/LanguageClient.LanguageClient

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Methods

    - -

    Constructors

    -

    constructor

    -

    new LanguageClient(apolloClient)

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    apolloClientApolloClient<any>
    -
    Defined in
    -

    language/LanguageClient.ts:31

    -

    Properties

    -

    #apolloClient

    -

    Private #apolloClient: ApolloClient<any>

    -
    Defined in
    -

    language/LanguageClient.ts:29

    -

    Methods

    -

    all

    -

    all(): Promise<LanguageHandle[]>

    -
    Returns
    -

    Promise<LanguageHandle[]>

    -
    Defined in
    -

    language/LanguageClient.ts:59

    -
    -

    applyTemplateAndPublish

    -

    applyTemplateAndPublish(sourceLanguageHash, templateData): Promise<LanguageRef>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    sourceLanguageHashstring
    templateDatastring
    -
    Returns
    -

    Promise<LanguageRef>

    -
    Defined in
    -

    language/LanguageClient.ts:76

    -
    -

    byAddress

    -

    byAddress(address): Promise<LanguageHandle>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    addressstring
    -
    Returns
    -

    Promise<LanguageHandle>

    -
    Defined in
    -

    language/LanguageClient.ts:35

    -
    -

    byFilter

    -

    byFilter(filter): Promise<LanguageHandle[]>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    filterstring
    -
    Returns
    -

    Promise<LanguageHandle[]>

    -
    Defined in
    -

    language/LanguageClient.ts:47

    -
    -

    meta

    -

    meta(address): Promise<LanguageMeta>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    addressstring
    -
    Returns
    -

    Promise<LanguageMeta>

    -
    Defined in
    -

    language/LanguageClient.ts:114

    -
    -

    publish

    -

    publish(languagePath, languageMeta): Promise<LanguageMeta>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    languagePathstring
    languageMetaLanguageMetaInput
    -
    Returns
    -

    Promise<LanguageMeta>

    -
    Defined in
    -

    language/LanguageClient.ts:95

    -
    -

    remove

    -

    remove(address): Promise<Boolean>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    addressstring
    -
    Returns
    -

    Promise<Boolean>

    -
    Defined in
    -

    language/LanguageClient.ts:146

    -
    -

    source

    -

    source(address): Promise<string>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    addressstring
    -
    Returns
    -

    Promise<string>

    -
    Defined in
    -

    language/LanguageClient.ts:131

    -
    -

    writeSettings

    -

    writeSettings(languageAddress, settings): Promise<Boolean>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    languageAddressstring
    settingsstring
    -
    Returns
    -

    Promise<Boolean>

    -
    Defined in
    -

    language/LanguageClient.ts:63

    -

    -

    @perspect3vism/ad4m / Exports / language/LanguageContext / Dna

    -

    Class: Dna

    -

    language/LanguageContext.Dna

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new Dna()

    -

    Properties

    -

    file

    -

    file: Buffer

    -
    Defined in
    -

    language/LanguageContext.ts:25

    -
    -

    nick

    -

    nick: string

    -
    Defined in
    -

    language/LanguageContext.ts:26

    -
    -

    zomeCalls

    -

    zomeCalls: [string, string][]

    -
    Defined in
    -

    language/LanguageContext.ts:27

    -

    -

    @perspect3vism/ad4m / Exports / language/LanguageHandle / LanguageHandle

    -

    Class: LanguageHandle

    -

    language/LanguageHandle.LanguageHandle

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new LanguageHandle()

    -

    Properties

    -

    address

    -

    address: string

    -
    Defined in
    -

    language/LanguageHandle.ts:10

    -
    -

    constructorIcon

    -

    Optional constructorIcon: Icon

    -
    Defined in
    -

    language/LanguageHandle.ts:19

    -
    -

    icon

    -

    Optional icon: Icon

    -
    Defined in
    -

    language/LanguageHandle.ts:16

    -
    -

    name

    -

    name: string

    -
    Defined in
    -

    language/LanguageHandle.ts:7

    -
    -

    settings

    -

    Optional settings: string

    -
    Defined in
    -

    language/LanguageHandle.ts:13

    -
    -

    settingsIcon

    -

    Optional settingsIcon: Icon

    -
    Defined in
    -

    language/LanguageHandle.ts:22

    -

    -

    @perspect3vism/ad4m / Exports / language/LanguageMeta / LanguageExpression

    -

    Class: LanguageExpression

    -

    language/LanguageMeta.LanguageExpression

    -

    Hierarchy

    -
      -
    • any

      -

      LanguageExpression

      -
    • -
    -

    Table of contents

    -

    Constructors

    - -

    Constructors

    -

    constructor

    -

    new LanguageExpression()

    -
    Inherited from
    -

    ExpressionGeneric(LanguageMetaInternal).constructor

    -

    -

    @perspect3vism/ad4m / Exports / language/LanguageMeta / LanguageLanguageInput

    -

    Class: LanguageLanguageInput

    -

    language/LanguageMeta.LanguageLanguageInput

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new LanguageLanguageInput()

    -

    Properties

    -

    bundle

    -

    bundle: string

    -
    Defined in
    -

    language/LanguageMeta.ts:68

    -
    -

    meta

    -

    meta: LanguageMetaInternal

    -
    Defined in
    -

    language/LanguageMeta.ts:69

    -

    -

    @perspect3vism/ad4m / Exports / language/LanguageMeta / LanguageMeta

    -

    Class: LanguageMeta

    -

    language/LanguageMeta.LanguageMeta

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new LanguageMeta()

    -

    Properties

    -

    address

    -

    address: string

    -
    Defined in
    -

    language/LanguageMeta.ts:10

    -
    -

    author

    -

    author: string

    -
    Defined in
    -

    language/LanguageMeta.ts:16

    -
    -

    description

    -

    description: string

    -
    Defined in
    -

    language/LanguageMeta.ts:13

    -
    -

    name

    -

    name: string

    -
    Defined in
    -

    language/LanguageMeta.ts:7

    -
    -

    possibleTemplateParams

    -

    Optional possibleTemplateParams: string[]

    -
    Defined in
    -

    language/LanguageMeta.ts:28

    -
    - -

    Optional sourceCodeLink: string

    -
    Defined in
    -

    language/LanguageMeta.ts:31

    -
    -

    templateAppliedParams

    -

    Optional templateAppliedParams: string

    -
    Defined in
    -

    language/LanguageMeta.ts:25

    -
    -

    templateSourceLanguageAddress

    -

    Optional templateSourceLanguageAddress: string

    -
    Defined in
    -

    language/LanguageMeta.ts:22

    -
    -

    templated

    -

    templated: boolean

    -
    Defined in
    -

    language/LanguageMeta.ts:19

    -

    -

    @perspect3vism/ad4m / Exports / language/LanguageMeta / LanguageMetaInput

    -

    Class: LanguageMetaInput

    -

    language/LanguageMeta.LanguageMetaInput

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new LanguageMetaInput(name?, description?)

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    name?string
    description?string
    -
    Defined in
    -

    language/LanguageMeta.ts:48

    -

    Properties

    -

    description

    -

    description: string

    -
    Defined in
    -

    language/LanguageMeta.ts:40

    -
    -

    name

    -

    name: string

    -
    Defined in
    -

    language/LanguageMeta.ts:37

    -
    -

    possibleTemplateParams

    -

    Optional possibleTemplateParams: string[]

    -
    Defined in
    -

    language/LanguageMeta.ts:43

    -
    - -

    Optional sourceCodeLink: string

    -
    Defined in
    -

    language/LanguageMeta.ts:46

    -

    -

    @perspect3vism/ad4m / Exports / language/LanguageMeta / LanguageMetaInternal

    -

    Class: LanguageMetaInternal

    -

    language/LanguageMeta.LanguageMetaInternal

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new LanguageMetaInternal()

    -

    Properties

    -

    address

    -

    address: string

    -
    Defined in
    -

    language/LanguageMeta.ts:57

    -
    -

    description

    -

    description: string

    -
    Defined in
    -

    language/LanguageMeta.ts:58

    -
    -

    name

    -

    name: string

    -
    Defined in
    -

    language/LanguageMeta.ts:56

    -
    -

    possibleTemplateParams

    -

    Optional possibleTemplateParams: string[]

    -
    Defined in
    -

    language/LanguageMeta.ts:61

    -
    - -

    Optional sourceCodeLink: string

    -
    Defined in
    -

    language/LanguageMeta.ts:62

    -
    -

    templateAppliedParams

    -

    Optional templateAppliedParams: string

    -
    Defined in
    -

    language/LanguageMeta.ts:60

    -
    -

    templateSourceLanguageAddress

    -

    Optional templateSourceLanguageAddress: string

    -
    Defined in
    -

    language/LanguageMeta.ts:59

    -

    -

    @perspect3vism/ad4m / Exports / language/LanguageRef / LanguageRef

    -

    Class: LanguageRef

    -

    language/LanguageRef.LanguageRef

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new LanguageRef(address?, name?)

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    address?string
    name?string
    -
    Defined in
    -

    language/LanguageRef.ts:14

    -

    Properties

    -

    address

    -

    address: string

    -
    Defined in
    -

    language/LanguageRef.ts:9

    -
    -

    name

    -

    name: string

    -
    Defined in
    -

    language/LanguageRef.ts:12

    -

    -

    @perspect3vism/ad4m / Exports / language/LanguageResolver / default

    -

    Class: default

    -

    language/LanguageResolver.default

    -

    Resolver classes are used here to define the GraphQL schema -(through the type-graphql annotations) -and are spawned in the client tests in Ad4mClient.test.ts. -For the latter, they return test fixtures.

    -

    Table of contents

    -

    Constructors

    - -

    Methods

    - -

    Constructors

    -

    constructor

    -

    new default()

    -

    Methods

    -

    language

    -

    language(address): LanguageHandle

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    addressstring
    -
    Returns
    -

    LanguageHandle

    -
    Defined in
    -

    language/LanguageResolver.ts:16

    -
    -

    languageApplyTemplateAndPublish

    -

    languageApplyTemplateAndPublish(sourceLanguageHash, templateData): LanguageRef

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    sourceLanguageHashstring
    templateDatastring
    -
    Returns
    -

    LanguageRef

    -
    Defined in
    -

    language/LanguageResolver.ts:49

    -
    -

    languageMeta

    -

    languageMeta(address): LanguageMeta

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    addressstring
    -
    Returns
    -

    LanguageMeta

    -
    Defined in
    -

    language/LanguageResolver.ts:75

    -
    -

    languagePublish

    -

    languagePublish(languagePath, languageMeta): LanguageMeta

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    languagePathstring
    languageMetaLanguageMetaInput
    -
    Returns
    -

    LanguageMeta

    -
    Defined in
    -

    language/LanguageResolver.ts:57

    -
    -

    languageRemove

    -

    languageRemove(address): Boolean

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    addressstring
    -
    Returns
    -

    Boolean

    -
    Defined in
    -

    language/LanguageResolver.ts:95

    -
    -

    languageSource

    -

    languageSource(address): string

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    addressstring
    -
    Returns
    -

    string

    -
    Defined in
    -

    language/LanguageResolver.ts:90

    -
    -

    languageWriteSettings

    -

    languageWriteSettings(languageAddress, settings): Boolean

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    languageAddressstring
    settingsstring
    -
    Returns
    -

    Boolean

    -
    Defined in
    -

    language/LanguageResolver.ts:41

    -
    -

    languages

    -

    languages(filter): LanguageHandle[]

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    filterstring
    -
    Returns
    -

    LanguageHandle[]

    -
    Defined in
    -

    language/LanguageResolver.ts:29

    -

    -

    @perspect3vism/ad4m / Exports / links/Links / Link

    - -

    links/Links.Link

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new Link(obj)

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    objany
    -
    Defined in
    -

    links/Links.ts:15

    -

    Properties

    -

    predicate

    -

    Optional predicate: string

    -
    Defined in
    -

    links/Links.ts:13

    -
    -

    source

    -

    source: string

    -
    Defined in
    -

    links/Links.ts:7

    -
    -

    target

    -

    target: string

    -
    Defined in
    -

    links/Links.ts:10

    -

    -

    @perspect3vism/ad4m / Exports / links/Links / LinkExpression

    -

    Class: LinkExpression

    -

    links/Links.LinkExpression

    -

    Hierarchy

    -
      -
    • any

      -

      LinkExpression

      -
    • -
    -

    Table of contents

    -

    Constructors

    - -

    Methods

    - -

    Constructors

    -

    constructor

    -

    new LinkExpression()

    -
    Inherited from
    -

    ExpressionGeneric(Link).constructor

    -

    Methods

    -

    hash

    -

    hash(): number

    -
    Returns
    -

    number

    -
    Defined in
    -

    links/Links.ts:58

    -

    -

    @perspect3vism/ad4m / Exports / links/Links / LinkExpressionInput

    -

    Class: LinkExpressionInput

    -

    links/Links.LinkExpressionInput

    -

    Hierarchy

    -
      -
    • any

      -

      LinkExpressionInput

      -
    • -
    -

    Table of contents

    -

    Constructors

    - -

    Constructors

    -

    constructor

    -

    new LinkExpressionInput()

    -
    Inherited from
    -

    ExpressionGenericInput(LinkInput).constructor

    -

    -

    @perspect3vism/ad4m / Exports / links/Links / LinkExpressionMutations

    -

    Class: LinkExpressionMutations

    -

    links/Links.LinkExpressionMutations

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new LinkExpressionMutations(additions, removals)

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    additionsLinkExpression[]
    removalsLinkExpression[]
    -
    Defined in
    -

    links/Links.ts:38

    -

    Properties

    -

    additions

    -

    additions: LinkExpression[]

    -
    Defined in
    -

    links/Links.ts:33

    -
    -

    removals

    -

    removals: LinkExpression[]

    -
    Defined in
    -

    links/Links.ts:36

    -

    -

    @perspect3vism/ad4m / Exports / links/Links / LinkExpressionUpdated

    -

    Class: LinkExpressionUpdated

    -

    links/Links.LinkExpressionUpdated

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new LinkExpressionUpdated(oldLink, newLink)

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    oldLinkLinkExpression
    newLinkLinkExpression
    -
    Defined in
    -

    links/Links.ts:94

    -

    Properties

    - -

    newLink: LinkExpression

    -
    Defined in
    -

    links/Links.ts:92

    -
    - -

    oldLink: LinkExpression

    -
    Defined in
    -

    links/Links.ts:89

    -

    -

    @perspect3vism/ad4m / Exports / links/Links / LinkInput

    -

    Class: LinkInput

    -

    links/Links.LinkInput

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new LinkInput()

    -

    Properties

    -

    predicate

    -

    Optional predicate: string

    -
    Defined in
    -

    links/Links.ts:53

    -
    -

    source

    -

    source: string

    -
    Defined in
    -

    links/Links.ts:47

    -
    -

    target

    -

    target: string

    -
    Defined in
    -

    links/Links.ts:50

    -

    -

    @perspect3vism/ad4m / Exports / links/Links / LinkMutations

    -

    Class: LinkMutations

    -

    links/Links.LinkMutations

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new LinkMutations()

    -

    Properties

    -

    additions

    -

    additions: LinkInput[]

    -
    Defined in
    -

    links/Links.ts:25

    -
    -

    removals

    -

    removals: LinkExpressionInput[]

    -
    Defined in
    -

    links/Links.ts:28

    -

    -

    @perspect3vism/ad4m / Exports / neighbourhood/Neighbourhood / Neighbourhood

    -

    Class: Neighbourhood

    -

    neighbourhood/Neighbourhood.Neighbourhood

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new Neighbourhood(linkLanguage, meta)

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    linkLanguagestring
    metaPerspective
    -
    Defined in
    -

    neighbourhood/Neighbourhood.ts:15

    -

    Properties

    -

    linkLanguage

    -

    linkLanguage: string

    -
    Defined in
    -

    neighbourhood/Neighbourhood.ts:10

    -
    -

    meta

    -

    meta: Perspective

    -
    Defined in
    -

    neighbourhood/Neighbourhood.ts:13

    -

    -

    @perspect3vism/ad4m / Exports / neighbourhood/Neighbourhood / NeighbourhoodExpression

    -

    Class: NeighbourhoodExpression

    -

    neighbourhood/Neighbourhood.NeighbourhoodExpression

    -

    Hierarchy

    -
      -
    • any

      -

      NeighbourhoodExpression

      -
    • -
    -

    Table of contents

    -

    Constructors

    - -

    Constructors

    -

    constructor

    -

    new NeighbourhoodExpression()

    -
    Inherited from
    -

    ExpressionGeneric(Neighbourhood).constructor

    -

    -

    @perspect3vism/ad4m / Exports / neighbourhood/NeighbourhoodClient / NeighbourhoodClient

    -

    Class: NeighbourhoodClient

    -

    neighbourhood/NeighbourhoodClient.NeighbourhoodClient

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Methods

    - -

    Constructors

    -

    constructor

    -

    new NeighbourhoodClient(client)

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    clientApolloClient<any>
    -
    Defined in
    -

    neighbourhood/NeighbourhoodClient.ts:13

    -

    Properties

    -

    #apolloClient

    -

    Private #apolloClient: ApolloClient<any>

    -
    Defined in
    -

    neighbourhood/NeighbourhoodClient.ts:11

    -

    Methods

    -

    addSignalHandler

    -

    addSignalHandler(perspectiveUUID, handler): Promise<void>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    perspectiveUUIDstring
    handlerTelepresenceSignalCallback
    -
    Returns
    -

    Promise<void>

    -
    Defined in
    -

    neighbourhood/NeighbourhoodClient.ts:164

    -
    -

    hasTelepresenceAdapter

    -

    hasTelepresenceAdapter(perspectiveUUID): Promise<boolean>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    perspectiveUUIDstring
    -
    Returns
    -

    Promise<boolean>

    -
    Defined in
    -

    neighbourhood/NeighbourhoodClient.ts:76

    -
    -

    joinFromUrl

    -

    joinFromUrl(url): Promise<PerspectiveHandle>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    urlstring
    -
    Returns
    -

    Promise<PerspectiveHandle>

    -
    Defined in
    -

    neighbourhood/NeighbourhoodClient.ts:39

    -
    -

    onlineAgents

    -

    onlineAgents(perspectiveUUID): Promise<OnlineAgent[]>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    perspectiveUUIDstring
    -
    Returns
    -

    Promise<OnlineAgent[]>

    -
    Defined in
    -

    neighbourhood/NeighbourhoodClient.ts:86

    -
    -

    otherAgents

    -

    otherAgents(perspectiveUUID): Promise<string[]>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    perspectiveUUIDstring
    -
    Returns
    -

    Promise<string[]>

    -
    Defined in
    -

    neighbourhood/NeighbourhoodClient.ts:66

    -
    -

    publishFromPerspective

    -

    publishFromPerspective(perspectiveUUID, linkLanguage, meta): Promise<string>

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - -
    NameType
    perspectiveUUIDstring
    linkLanguagestring
    metaPerspective
    -
    Returns
    -

    Promise<string>

    -
    Defined in
    -

    neighbourhood/NeighbourhoodClient.ts:17

    -
    -

    sendBroadcast

    -

    sendBroadcast(perspectiveUUID, payload): Promise<boolean>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    perspectiveUUIDstring
    payloadPerspective
    -
    Returns
    -

    Promise<boolean>

    -
    Defined in
    -

    neighbourhood/NeighbourhoodClient.ts:147

    -
    -

    sendSignal

    -

    sendSignal(perspectiveUUID, remoteAgentDid, payload): Promise<boolean>

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - -
    NameType
    perspectiveUUIDstring
    remoteAgentDidstring
    payloadPerspective
    -
    Returns
    -

    Promise<boolean>

    -
    Defined in
    -

    neighbourhood/NeighbourhoodClient.ts:128

    -
    -

    setOnlineStatus

    -

    setOnlineStatus(perspectiveUUID, status): Promise<boolean>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    perspectiveUUIDstring
    statusPerspective
    -
    Returns
    -

    Promise<boolean>

    -
    Defined in
    -

    neighbourhood/NeighbourhoodClient.ts:111

    -

    -

    @perspect3vism/ad4m / Exports / neighbourhood/NeighbourhoodProxy / NeighbourhoodProxy

    -

    Class: NeighbourhoodProxy

    -

    neighbourhood/NeighbourhoodProxy.NeighbourhoodProxy

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Methods

    - -

    Constructors

    -

    constructor

    -

    new NeighbourhoodProxy(client, pID)

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    clientNeighbourhoodClient
    pIDstring
    -
    Defined in
    -

    neighbourhood/NeighbourhoodProxy.ts:10

    -

    Properties

    -

    #client

    -

    Private #client: NeighbourhoodClient

    -
    Defined in
    -

    neighbourhood/NeighbourhoodProxy.ts:7

    -
    -

    #pID

    -

    Private #pID: string

    -
    Defined in
    -

    neighbourhood/NeighbourhoodProxy.ts:8

    -

    Methods

    -

    addSignalHandler

    -

    addSignalHandler(handler): Promise<void>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    handler(payload: PerspectiveExpression) => void
    -
    Returns
    -

    Promise<void>

    -
    Defined in
    -

    neighbourhood/NeighbourhoodProxy.ts:39

    -
    -

    hasTelepresenceAdapter

    -

    hasTelepresenceAdapter(): Promise<boolean>

    -
    Returns
    -

    Promise<boolean>

    -
    Defined in
    -

    neighbourhood/NeighbourhoodProxy.ts:19

    -
    -

    onlineAgents

    -

    onlineAgents(): Promise<OnlineAgent[]>

    -
    Returns
    -

    Promise<OnlineAgent[]>

    -
    Defined in
    -

    neighbourhood/NeighbourhoodProxy.ts:23

    -
    -

    otherAgents

    -

    otherAgents(): Promise<string[]>

    -
    Returns
    -

    Promise<string[]>

    -
    Defined in
    -

    neighbourhood/NeighbourhoodProxy.ts:15

    -
    -

    sendBroadcast

    -

    sendBroadcast(payload): Promise<boolean>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    payloadPerspective
    -
    Returns
    -

    Promise<boolean>

    -
    Defined in
    -

    neighbourhood/NeighbourhoodProxy.ts:35

    -
    -

    sendSignal

    -

    sendSignal(remoteAgentDid, payload): Promise<boolean>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    remoteAgentDidstring
    payloadPerspective
    -
    Returns
    -

    Promise<boolean>

    -
    Defined in
    -

    neighbourhood/NeighbourhoodProxy.ts:31

    -
    -

    setOnlineStatus

    -

    setOnlineStatus(status): Promise<boolean>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    statusPerspective
    -
    Returns
    -

    Promise<boolean>

    -
    Defined in
    -

    neighbourhood/NeighbourhoodProxy.ts:27

    -

    -

    @perspect3vism/ad4m / Exports / neighbourhood/NeighbourhoodResolver / default

    -

    Class: default

    -

    neighbourhood/NeighbourhoodResolver.default

    -

    Resolver classes are used here to define the GraphQL schema -(through the type-graphql annotations) -and are spawned in the client tests in Ad4mClient.test.ts. -For the latter, they return test fixtures.

    -

    Table of contents

    -

    Constructors

    - -

    Methods

    - -

    Constructors

    -

    constructor

    -

    new default()

    -

    Methods

    -

    neighbourhoodHasTelepresenceAdapter

    -

    neighbourhoodHasTelepresenceAdapter(perspectiveUUID): boolean

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    perspectiveUUIDstring
    -
    Returns
    -

    boolean

    -
    Defined in
    -

    neighbourhood/NeighbourhoodResolver.ts:53

    -
    -

    neighbourhoodJoinFromUrl

    -

    neighbourhoodJoinFromUrl(url, pubSub): PerspectiveHandle

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    urlstring
    pubSubany
    -
    Returns
    -

    PerspectiveHandle

    -
    Defined in
    -

    neighbourhood/NeighbourhoodResolver.ts:37

    -
    -

    neighbourhoodOnlineAgents

    -

    neighbourhoodOnlineAgents(perspectiveUUID): OnlineAgent[]

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    perspectiveUUIDstring
    -
    Returns
    -

    OnlineAgent[]

    -
    Defined in
    -

    neighbourhood/NeighbourhoodResolver.ts:58

    -
    -

    neighbourhoodOtherAgents

    -

    neighbourhoodOtherAgents(perspectiveUUID): string[]

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    perspectiveUUIDstring
    -
    Returns
    -

    string[]

    -
    Defined in
    -

    neighbourhood/NeighbourhoodResolver.ts:48

    -
    -

    neighbourhoodPublishFromPerspective

    -

    neighbourhoodPublishFromPerspective(perspectiveUUID, linkLanguage, meta): string

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - -
    NameType
    perspectiveUUIDstring
    linkLanguagestring
    metaPerspectiveInput
    -
    Returns
    -

    string

    -
    Defined in
    -

    neighbourhood/NeighbourhoodResolver.ts:28

    -
    -

    neighbourhoodSendBroadcast

    -

    neighbourhoodSendBroadcast(perspectiveUUID, signal): boolean

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    perspectiveUUIDstring
    signalPerspectiveInput
    -
    Returns
    -

    boolean

    -
    Defined in
    -

    neighbourhood/NeighbourhoodResolver.ts:76

    -
    -

    neighbourhoodSendSignal

    -

    neighbourhoodSendSignal(perspectiveUUID, recipient, signal): boolean

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - -
    NameType
    perspectiveUUIDstring
    recipientstring
    signalPerspectiveInput
    -
    Returns
    -

    boolean

    -
    Defined in
    -

    neighbourhood/NeighbourhoodResolver.ts:71

    -
    -

    neighbourhoodSetOnlineStatus

    -

    neighbourhoodSetOnlineStatus(perspectiveUUID, status): boolean

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    perspectiveUUIDstring
    statusPerspectiveInput
    -
    Returns
    -

    boolean

    -
    Defined in
    -

    neighbourhood/NeighbourhoodResolver.ts:66

    -
    -

    neighbourhoodSignal

    -

    neighbourhoodSignal(pID): PerspectiveExpression

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    pIDstring
    -
    Returns
    -

    PerspectiveExpression

    -
    Defined in
    -

    neighbourhood/NeighbourhoodResolver.ts:81

    -

    -

    @perspect3vism/ad4m / Exports / perspectives/LinkQuery / LinkQuery

    -

    Class: LinkQuery

    -

    perspectives/LinkQuery.LinkQuery

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Methods

    - -

    Constructors

    -

    constructor

    -

    new LinkQuery(obj)

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    objobject
    -
    Defined in
    -

    perspectives/LinkQuery.ts:25

    -

    Properties

    -

    fromDate

    -

    Optional fromDate: Date

    -
    Defined in
    -

    perspectives/LinkQuery.ts:17

    -
    -

    limit

    -

    Optional limit: number

    -
    Defined in
    -

    perspectives/LinkQuery.ts:23

    -
    -

    predicate

    -

    Optional predicate: string

    -
    Defined in
    -

    perspectives/LinkQuery.ts:14

    -
    -

    source

    -

    Optional source: string

    -
    Defined in
    -

    perspectives/LinkQuery.ts:8

    -
    -

    target

    -

    Optional target: string

    -
    Defined in
    -

    perspectives/LinkQuery.ts:11

    -
    -

    untilDate

    -

    Optional untilDate: Date

    -
    Defined in
    -

    perspectives/LinkQuery.ts:20

    -

    Methods

    -

    isMatch

    -

    isMatch(l): boolean

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    lLink
    -
    Returns
    -

    boolean

    -
    Defined in
    -

    perspectives/LinkQuery.ts:51

    -

    -

    @perspect3vism/ad4m / Exports / perspectives/Perspective / Perspective

    -

    Class: Perspective

    -

    perspectives/Perspective.Perspective

    -

    A Perspective represents subjective meaning, encoded through -associations between expressions, a.k.a. Links, that is a graph -over the objective Expressions of any subset of Languages.

    -

    This type represents the clean onotological concept of a Perspective. -An instance of this class can be regarded as an immutable snapshot of -a mutable perspective.

    -

    The types PerspectiveProxy and PerspectiveHandle are used when dealing -with an instantiated mutable perspective as is done through most of -the GraphQL mutations.

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Methods

    - -

    Constructors

    -

    constructor

    -

    new Perspective(links?)

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    links?LinkExpression[]
    -
    Defined in
    -

    perspectives/Perspective.ts:24

    -

    Properties

    - -

    links: LinkExpression[]

    -

    The content of the perspective, a list/graph of links

    -
    Defined in
    -

    perspectives/Perspective.ts:22

    -

    Methods

    -

    get

    -

    get(query): LinkExpression[]

    -

    Convenience function for filtering links just like with PerspectiveProxy

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    queryLinkQuery
    -
    Returns
    -

    LinkExpression[]

    -
    Defined in
    -

    perspectives/Perspective.ts:33

    -
    -

    getSingleTarget

    -

    getSingleTarget(query): string | void

    -

    Convenience function to get the target of the first link that matches the given query -This makes sense when the query is expected to return only one link -and the target of that link is what you are looking for.

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    queryLinkQuery
    -
    Returns
    -

    string | void

    -
    Defined in
    -

    perspectives/Perspective.ts:81

    -

    -

    @perspect3vism/ad4m / Exports / perspectives/Perspective / PerspectiveExpression

    -

    Class: PerspectiveExpression

    -

    perspectives/Perspective.PerspectiveExpression

    -

    Hierarchy

    -
      -
    • any

      -

      PerspectiveExpression

      -
    • -
    -

    Table of contents

    -

    Constructors

    - -

    Constructors

    -

    constructor

    -

    new PerspectiveExpression()

    -
    Inherited from
    -

    ExpressionGeneric(Perspective).constructor

    -

    -

    @perspect3vism/ad4m / Exports / perspectives/Perspective / PerspectiveInput

    -

    Class: PerspectiveInput

    -

    perspectives/Perspective.PerspectiveInput

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new PerspectiveInput()

    -

    Properties

    - -

    links: LinkExpressionInput[]

    -
    Defined in
    -

    perspectives/Perspective.ts:95

    -

    -

    @perspect3vism/ad4m / Exports / perspectives/PerspectiveClient / PerspectiveClient

    -

    Class: PerspectiveClient

    -

    perspectives/PerspectiveClient.PerspectiveClient

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Methods

    - -

    Constructors

    -

    constructor

    -

    new PerspectiveClient(client, subscribe?)

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - -
    NameTypeDefault value
    clientApolloClient<any>undefined
    subscribebooleantrue
    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:50

    -

    Properties

    -

    #apolloClient

    -

    Private #apolloClient: ApolloClient<any>

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:43

    -
    -

    #expressionClient

    -

    Private Optional #expressionClient: ExpressionClient

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:47

    -
    -

    #neighbourhoodClient

    -

    Private Optional #neighbourhoodClient: NeighbourhoodClient

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:48

    -
    -

    #perspectiveAddedCallbacks

    -

    Private #perspectiveAddedCallbacks: PerspectiveHandleCallback[]

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:44

    -
    -

    #perspectiveRemovedCallbacks

    -

    Private #perspectiveRemovedCallbacks: UuidCallback[]

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:46

    -
    -

    #perspectiveUpdatedCallbacks

    -

    Private #perspectiveUpdatedCallbacks: PerspectiveHandleCallback[]

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:45

    -

    Methods

    -

    add

    -

    add(name): Promise<PerspectiveProxy>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    namestring
    -
    Returns
    -

    Promise<PerspectiveProxy>

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:140

    -
    - -

    addLink(uuid, link): Promise<LinkExpression>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    uuidstring
    linkLink
    -
    Returns
    -

    Promise<LinkExpression>

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:173

    -
    -

    addLinkExpression

    -

    addLinkExpression(uuid, link): Promise<LinkExpression>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    uuidstring
    linkLinkExpressionInput
    -
    Returns
    -

    Promise<LinkExpression>

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:226

    -
    - -

    addLinks(uuid, links): Promise<LinkExpression[]>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    uuidstring
    linksLink[]
    -
    Returns
    -

    Promise<LinkExpression[]>

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:185

    -
    -

    addPerspectiveAddedListener

    -

    addPerspectiveAddedListener(cb): void

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    cbPerspectiveHandleCallback
    -
    Returns
    -

    void

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:283

    -
    -

    addPerspectiveLinkAddedListener

    -

    addPerspectiveLinkAddedListener(uuid, cb): Promise<void>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    uuidString
    cbLinkCallback[]
    -
    Returns
    -

    Promise<void>

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:340

    -
    -

    addPerspectiveLinkRemovedListener

    -

    addPerspectiveLinkRemovedListener(uuid, cb): Promise<void>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    uuidString
    cbLinkCallback[]
    -
    Returns
    -

    Promise<void>

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:357

    -
    -

    addPerspectiveLinkUpdatedListener

    -

    addPerspectiveLinkUpdatedListener(uuid, cb): Promise<void>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    uuidString
    cbLinkCallback[]
    -
    Returns
    -

    Promise<void>

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:374

    -
    -

    addPerspectiveRemovedListener

    -

    addPerspectiveRemovedListener(cb): void

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    cbUuidCallback
    -
    Returns
    -

    void

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:321

    -
    -

    addPerspectiveUpdatedListener

    -

    addPerspectiveUpdatedListener(cb): void

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    cbPerspectiveHandleCallback
    -
    Returns
    -

    void

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:302

    -
    -

    all

    -

    all(): Promise<PerspectiveProxy[]>

    -
    Returns
    -

    Promise<PerspectiveProxy[]>

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:71

    -
    -

    byUUID

    -

    byUUID(uuid): Promise<PerspectiveProxy>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    uuidstring
    -
    Returns
    -

    Promise<PerspectiveProxy>

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:83

    -
    -

    createExpression

    -

    createExpression(content, languageAddress): Promise<string>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    contentany
    languageAddressstring
    -
    Returns
    -

    Promise<string>

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:278

    -
    -

    getExpression

    -

    getExpression(expressionURI): Promise<ExpressionRendered>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    expressionURIstring
    -
    Returns
    -

    Promise<ExpressionRendered>

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:274

    -
    -

    getNeighbourhoodProxy

    -

    getNeighbourhoodProxy(uuid): NeighbourhoodProxy

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    uuidstring
    -
    Returns
    -

    NeighbourhoodProxy

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:398

    -
    -

    linkMutations

    -

    linkMutations(uuid, mutations): Promise<LinkExpressionMutations>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    uuidstring
    mutationsLinkMutations
    -
    Returns
    -

    Promise<LinkExpressionMutations>

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:209

    -
    -

    publishSnapshotByUUID

    -

    publishSnapshotByUUID(uuid): Promise<string>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    uuidstring
    -
    Returns
    -

    Promise<string>

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:107

    -
    - -

    queryLinks(uuid, query): Promise<LinkExpression[]>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    uuidstring
    queryLinkQuery
    -
    Returns
    -

    Promise<LinkExpression[]>

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:117

    -
    -

    queryProlog

    -

    queryProlog(uuid, query): Promise<any>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    uuidstring
    querystring
    -
    Returns
    -

    Promise<any>

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:129

    -
    -

    remove

    -

    remove(uuid): Promise<{ perspectiveRemove: boolean }>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    uuidstring
    -
    Returns
    -

    Promise<{ perspectiveRemove: boolean }>

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:164

    -
    - -

    removeLink(uuid, link): Promise<{ perspectiveRemoveLink: boolean }>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    uuidstring
    linkLinkExpressionInput
    -
    Returns
    -

    Promise<{ perspectiveRemoveLink: boolean }>

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:261

    -
    - -

    removeLinks(uuid, links): Promise<LinkExpression[]>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    uuidstring
    linksLinkExpressionInput[]
    -
    Returns
    -

    Promise<LinkExpression[]>

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:197

    -
    -

    setExpressionClient

    -

    setExpressionClient(client): void

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    clientExpressionClient
    -
    Returns
    -

    void

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:63

    -
    -

    setNeighbourhoodClient

    -

    setNeighbourhoodClient(client): void

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    clientNeighbourhoodClient
    -
    Returns
    -

    void

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:67

    -
    -

    snapshotByUUID

    -

    snapshotByUUID(uuid): Promise<Perspective>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    uuidstring
    -
    Returns
    -

    Promise<Perspective>

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:96

    -
    -

    subscribePerspectiveAdded

    -

    subscribePerspectiveAdded(): void

    -
    Returns
    -

    void

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:287

    -
    -

    subscribePerspectiveRemoved

    -

    subscribePerspectiveRemoved(): void

    -
    Returns
    -

    void

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:325

    -
    -

    subscribePerspectiveUpdated

    -

    subscribePerspectiveUpdated(): void

    -
    Returns
    -

    void

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:306

    -
    -

    update

    -

    update(uuid, name): Promise<PerspectiveProxy>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    uuidstring
    namestring
    -
    Returns
    -

    Promise<PerspectiveProxy>

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:152

    -
    - -

    updateLink(uuid, oldLink, newLink): Promise<LinkExpression>

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - -
    NameType
    uuidstring
    oldLinkLinkExpressionInput
    newLinkLinkInput
    -
    Returns
    -

    Promise<LinkExpression>

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:238

    -

    -

    @perspect3vism/ad4m / Exports / perspectives/PerspectiveDiff / PerspectiveDiff

    -

    Class: PerspectiveDiff

    -

    perspectives/PerspectiveDiff.PerspectiveDiff

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new PerspectiveDiff()

    -

    Properties

    -

    additions

    -

    additions: LinkExpression[]

    -
    Defined in
    -

    perspectives/PerspectiveDiff.ts:8

    -
    -

    removals

    -

    removals: LinkExpression[]

    -
    Defined in
    -

    perspectives/PerspectiveDiff.ts:11

    -

    -

    @perspect3vism/ad4m / Exports / perspectives/PerspectiveDiff / PerspectiveDiffExpression

    -

    Class: PerspectiveDiffExpression

    -

    perspectives/PerspectiveDiff.PerspectiveDiffExpression

    -

    Hierarchy

    -
      -
    • any

      -

      PerspectiveDiffExpression

      -
    • -
    -

    Table of contents

    -

    Constructors

    - -

    Constructors

    -

    constructor

    -

    new PerspectiveDiffExpression()

    -
    Inherited from
    -

    ExpressionGeneric(PerspectiveDiff).constructor

    -

    -

    @perspect3vism/ad4m / Exports / perspectives/PerspectiveHandle / PerspectiveHandle

    -

    Class: PerspectiveHandle

    -

    perspectives/PerspectiveHandle.PerspectiveHandle

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new PerspectiveHandle(uuid?, name?, state?)

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - -
    NameType
    uuid?string
    name?string
    state?PerspectiveState
    -
    Defined in
    -

    perspectives/PerspectiveHandle.ts:30

    -

    Properties

    -

    name

    -

    name: string

    -
    Defined in
    -

    perspectives/PerspectiveHandle.ts:20

    -
    -

    neighbourhood

    -

    Optional neighbourhood: Neighbourhood

    -
    Defined in
    -

    perspectives/PerspectiveHandle.ts:28

    -
    -

    sharedUrl

    -

    Optional sharedUrl: string

    -
    Defined in
    -

    perspectives/PerspectiveHandle.ts:25

    -
    -

    state

    -

    state: PerspectiveState

    -
    Defined in
    -

    perspectives/PerspectiveHandle.ts:22

    -
    -

    uuid

    -

    uuid: string

    -
    Defined in
    -

    perspectives/PerspectiveHandle.ts:18

    -

    -

    @perspect3vism/ad4m / Exports / perspectives/PerspectiveProxy / PerspectiveProxy

    -

    Class: PerspectiveProxy

    -

    perspectives/PerspectiveProxy.PerspectiveProxy

    -

    Perspective UI proxy object

    -

    Convenience object for UIs to interact with a perspective. -It is created by some of the methods in the PerspectiveClient class and includes -a reference to the PerspectiveClient object that created it.

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Accessors

    - -

    Methods

    - -

    Constructors

    -

    constructor

    -

    new PerspectiveProxy(handle, ad4m)

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    handlePerspectiveHandle
    ad4mPerspectiveClient
    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:33

    -

    Properties

    -

    #client

    -

    Private #client: PerspectiveClient

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:28

    -
    -

    #handle

    -

    Private #handle: PerspectiveHandle

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:27

    -
    -

    #perspectiveLinkAddedCallbacks

    -

    Private #perspectiveLinkAddedCallbacks: LinkCallback[]

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:29

    -
    -

    #perspectiveLinkRemovedCallbacks

    -

    Private #perspectiveLinkRemovedCallbacks: LinkCallback[]

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:30

    -
    -

    #perspectiveLinkUpdatedCallbacks

    -

    Private #perspectiveLinkUpdatedCallbacks: LinkCallback[]

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:31

    -

    Accessors

    -

    name

    -

    get name(): string

    -

    Given name of the perspective

    -
    Returns
    -

    string

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:95

    -
    -

    neighbourhood

    -

    get neighbourhood(): void | Neighbourhood

    -

    If the perspective is shared as a Neighbourhood, this is the Neighbourhood Expression

    -
    Returns
    -

    void | Neighbourhood

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:105

    -
    -

    sharedUrl

    -

    get sharedUrl(): string | void

    -

    If the perspective is shared as a Neighbourhood, this is the Neighbourhood URL

    -
    Returns
    -

    string | void

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:100

    -
    -

    state

    -

    get state(): PerspectiveState

    -

    Returns the state of the perspective *

    -
    Returns
    -

    PerspectiveState

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:110

    -
    -

    uuid

    -

    get uuid(): string

    -

    Unique ID of the perspective

    -
    Returns
    -

    string

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:90

    -

    Methods

    -

    add

    -

    add(link): Promise<LinkExpression>

    -

    Adds a link to this perspective

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    linkLink
    -
    Returns
    -

    Promise<LinkExpression>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:125

    -
    -

    addLinkExpression

    -

    addLinkExpression(link): Promise<LinkExpression>

    -

    Adds a linkExpression to this perspective

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    linkLinkExpressionInput
    -
    Returns
    -

    Promise<LinkExpression>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:145

    -
    - -

    addLinks(links): Promise<LinkExpression[]>

    -

    Adds multiple links to this perspective *

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    linksLink[]
    -
    Returns
    -

    Promise<LinkExpression[]>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:130

    -
    -

    addListener

    -

    addListener(type, cb): Promise<void>

    -

    Adds a link listener

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - -
    NameTypeDescription
    typePerspectiveListenerTypesCan be 'link-added' or 'link-removed'
    cbLinkCallbackCallback function that is called when a link is added to the perspective
    -
    Returns
    -

    Promise<void>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:169

    -
    -

    addSdna

    -

    addSdna(sdnaCode): Promise<void>

    -

    Adds the given Social DNA code to the perspective's SDNA code

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    sdnaCodestring
    -
    Returns
    -

    Promise<void>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:328

    -
    -

    availableFlows

    -

    availableFlows(exprAddr): Promise<string[]>

    -

    Returns all Social DNA flows that can be started from the given expression

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    exprAddrstring
    -
    Returns
    -

    Promise<string[]>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:265

    -
    -

    createExpression

    -

    createExpression(content, languageAddress): Promise<string>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    contentany
    languageAddressstring
    -
    Returns
    -

    Promise<string>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:161

    -
    -

    createSubject

    -

    createSubject<T>(subjectClass, exprAddr): Promise<T>

    -

    Creates a new subject instance by running its (SDNA defined) constructor, -which means adding links around the given expression address so that it -conforms to the given subject class.

    -
    Type parameters
    - - - - - - - - - - - -
    Name
    T
    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - -
    NameTypeDescription
    subjectClassTEither a string with the name of the subject class, or an object with the properties of the subject class. In the latter case, the first subject class that matches the given properties will be used.
    exprAddrstringThe address of the expression to be turned into a subject instance
    -
    Returns
    -

    Promise<T>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:368

    -
    -

    ensureSDNASubjectClass

    -

    ensureSDNASubjectClass(jsClass): Promise<void>

    -

    Takes a JS class (its constructor) and assumes that it was decorated by -the

    -

    Subject Class

    -

    etc. decorators. It then tests if there is a subject class -already present in the perspective's SDNA that matches the given class. -If there is no such class, it gets the JS class's SDNA by calling its -static generateSDNA() function and adds it to the perspective's SDNA.

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    jsClassany
    -
    Returns
    -

    Promise<void>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:506

    -
    -

    executeAction

    -

    executeAction(actions, expression, parameters): Promise<void>

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - -
    NameType
    actionsany
    expressionany
    parametersParameter[]
    -
    Returns
    -

    Promise<void>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:44

    -
    -

    expressionsInFlowState

    -

    expressionsInFlowState(flowName, flowState): Promise<string[]>

    -

    Returns all expressions in the given state of given Social DNA flow

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    flowNamestring
    flowStatenumber
    -
    Returns
    -

    Promise<string[]>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:279

    -
    -

    flowActions

    -

    flowActions(flowName, exprAddr): Promise<string[]>

    -

    Returns available action names, with regard to Social DNA flow and expression's flow state

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    flowNamestring
    exprAddrstring
    -
    Returns
    -

    Promise<string[]>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:291

    -
    -

    flowState

    -

    flowState(flowName, exprAddr): Promise<number>

    -

    Returns the given expression's flow state with regard to given Social DNA flow

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    flowNamestring
    exprAddrstring
    -
    Returns
    -

    Promise<number>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:285

    -
    -

    get

    -

    get(query): Promise<LinkExpression[]>

    -

    Returns all the links of this perspective that matches the LinkQuery

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    queryLinkQuery
    -
    Returns
    -

    Promise<LinkExpression[]>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:115

    -
    -

    getAllSubjectInstances

    -

    getAllSubjectInstances<T>(subjectClass): Promise<T[]>

    -

    Returns all subject instances of the given subject class as proxy objects.

    -
    Type parameters
    - - - - - - - - - - - -
    Name
    T
    -
    Parameters
    - - - - - - - - - - - - - - - -
    NameTypeDescription
    subjectClassTEither a string with the name of the subject class, or an object with the properties of the subject class. In the latter case, all subject classes that match the given properties will be used.
    -
    Returns
    -

    Promise<T[]>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:416

    -
    -

    getExpression

    -

    getExpression(expressionURI): Promise<ExpressionRendered>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    expressionURIstring
    -
    Returns
    -

    Promise<ExpressionRendered>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:157

    -
    -

    getNeighbourhoodProxy

    -

    getNeighbourhoodProxy(): NeighbourhoodProxy

    -
    Returns
    -

    NeighbourhoodProxy

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:514

    -
    -

    getSdna

    -

    getSdna(): Promise<string[]>

    -

    Returns the perspective's Social DNA code -This will return all SDNA code elements in an array.

    -
    Returns
    -

    Promise<string[]>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:318

    -
    -

    getSingleTarget

    -

    getSingleTarget(query): Promise<string | void>

    -

    Convenience function to get the target of the first link that matches the given query -This makes sense when the query is expected to return only one link -and the target of that link is what you are looking for.

    -

    Works best together with

    -

    Member

    -

    setSingelTarget()

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    queryLinkQuery
    -
    Returns
    -

    Promise<string | void>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:227

    -
    -

    getSubjectProxy

    -

    getSubjectProxy<T>(base, subjectClass): Promise<T>

    -

    For an existing subject instance (existing in the perspective's links) -this function returns a proxy object that can be used to access the subject's -properties and methods.

    -
    Type parameters
    - - - - - - - - - - - -
    Name
    T
    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - -
    NameTypeDescription
    basestringURI of the subject's root expression
    subjectClassTEither a string with the name of the subject class, or an object with the properties of the subject class. In the latter case, the first subject class that matches the given properties will be used.
    -
    Returns
    -

    Promise<T>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:401

    -
    -

    infer

    -

    infer(query): Promise<any>

    -

    Runs a Prolog query on the perspective's Prolog engine

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    querystring
    -
    Returns
    -

    Promise<any>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:120

    -
    -

    isSubjectInstance

    -

    isSubjectInstance<T>(expression, subjectClass): Promise<boolean>

    -

    Checks if the given expression is a subject instance of the given subject class

    -
    Type parameters
    - - - - - - - - - - - -
    Name
    T
    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - -
    NameTypeDescription
    expressionstringThe expression to be checked
    subjectClassTEither a string with the name of the subject class, or an object with the properties of the subject class. In the latter case, the first subject class that matches the given properties will be used.
    -
    Returns
    -

    Promise<boolean>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:386

    -
    -

    linkMutations

    -

    linkMutations(mutations): Promise<LinkExpressionMutations>

    -

    Adds and removes multiple links from this perspective *

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    mutationsLinkMutations
    -
    Returns
    -

    Promise<LinkExpressionMutations>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:140

    -
    -

    loadSnapshot

    -

    loadSnapshot(snapshot): Promise<void>

    -

    Take and load all the links from the given snapshot

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    snapshotPerspective
    -
    Returns
    -

    Promise<void>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:208

    -
    -

    remove

    -

    remove(link): Promise<{ perspectiveRemoveLink: boolean }>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    linkLinkExpressionInput
    -
    Returns
    -

    Promise<{ perspectiveRemoveLink: boolean }>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:153

    -
    - -

    removeLinks(links): Promise<LinkExpression[]>

    -

    Removes multiple links from this perspective *

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    linksLinkExpressionInput[]
    -
    Returns
    -

    Promise<LinkExpression[]>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:135

    -
    -

    removeListener

    -

    removeListener(type, cb): Promise<void>

    -

    Removes a previously added link listener

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - -
    NameTypeDescription
    typePerspectiveListenerTypesCan be 'link-added' or 'link-removed'
    cbLinkCallbackCallback function that is called when a link is added to the perspective
    -
    Returns
    -

    Promise<void>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:183

    -
    -

    runFlowAction

    -

    runFlowAction(flowName, exprAddr, actionName): Promise<void>

    -

    Runs given Social DNA flow action

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - -
    NameType
    flowNamestring
    exprAddrstring
    actionNamestring
    -
    Returns
    -

    Promise<void>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:297

    -
    -

    sdnaFlows

    -

    sdnaFlows(): Promise<string[]>

    -

    Returns all the Social DNA flows defined in this perspective

    -
    Returns
    -

    Promise<string[]>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:259

    -
    -

    setSdna

    -

    setSdna(sdnaCode): Promise<void>

    -

    Set the perspective's Social DNA code to the given string. -This will replace all previous SDNA code elements with the new one.

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    sdnaCodestring
    -
    Returns
    -

    Promise<void>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:307

    -
    -

    setSingleTarget

    -

    setSingleTarget(link): Promise<void>

    -

    Convenience function to ensure there is only one link with given source and predicate -This function will remove all links with the same source and predicate as the given link, -and then add the given link. -This ensures there is only one target for the given source and predicate.

    -

    Works best together with

    -

    Member

    -

    getSingleTarget()

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    linkLink
    -
    Returns
    -

    Promise<void>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:243

    -
    -

    snapshot

    -

    snapshot(): Promise<Perspective>

    -

    Create and return a snapshot of this perspective -A snapshot is a rendered Perspectie object that contains all the links of the perspective.

    -
    Returns
    -

    Promise<Perspective>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:203

    -
    -

    startFlow

    -

    startFlow(flowName, exprAddr): Promise<void>

    -

    Starts the Social DNA flow

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - -
    NameTypeDescription
    flowNamestringon the expression
    exprAddrstring
    -
    Returns
    -

    Promise<void>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:271

    -
    -

    stringOrTemplateObjectToSubjectClass

    -

    stringOrTemplateObjectToSubjectClass<T>(subjectClass): Promise<string>

    -
    Type parameters
    - - - - - - - - - - - -
    Name
    T
    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    subjectClassT
    -
    Returns
    -

    Promise<string>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:345

    -
    -

    subjectClasses

    -

    subjectClasses(): Promise<string[]>

    -

    Returns all the Subject classes defined in this perspectives SDNA

    -
    Returns
    -

    Promise<string[]>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:337

    -
    -

    subjectClassesByTemplate

    -

    subjectClassesByTemplate(obj): Promise<string[]>

    -

    Returns all subject classes that match the given template object. -This function looks at the properties of the template object and -its setters and collections to create a Prolog query that finds -all subject classes that would be converted to a proxy object -with exactly the same properties and collections.

    -

    Since there could be multiple subject classes that match the given -criteria, this function returns a list of class names.

    -
    Parameters
    - - - - - - - - - - - - - - - -
    NameTypeDescription
    objobjectThe template object
    -
    Returns
    -

    Promise<string[]>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:444

    -
    -

    update

    -

    update(oldLink, newLink): Promise<LinkExpression>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    oldLinkLinkExpressionInput
    newLinkLink
    -
    Returns
    -

    Promise<LinkExpression>

    -
    Defined in
    -

    perspectives/PerspectiveProxy.ts:149

    -

    -

    @perspect3vism/ad4m / Exports / perspectives/PerspectiveResolver / default

    -

    Class: default

    -

    perspectives/PerspectiveResolver.default

    -

    Resolver classes are used here to define the GraphQL schema -(through the type-graphql annotations) -and are spawned in the client tests in Ad4mClient.test.ts. -For the latter, they return test fixtures.

    -

    Table of contents

    -

    Constructors

    - -

    Methods

    - -

    Constructors

    -

    constructor

    -

    new default()

    -

    Methods

    -

    perspective

    -

    perspective(uuid): PerspectiveHandle

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    uuidstring
    -
    Returns
    -

    PerspectiveHandle

    -
    Defined in
    -

    perspectives/PerspectiveResolver.ts:44

    -
    -

    perspectiveAdd

    -

    perspectiveAdd(name, pubSub): PerspectiveHandle

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    namestring
    pubSubany
    -
    Returns
    -

    PerspectiveHandle

    -
    Defined in
    -

    perspectives/PerspectiveResolver.ts:69

    -
    - -

    perspectiveAddLink(uuid, link, pubSub): LinkExpression

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - -
    NameType
    uuidstring
    linkLinkInput
    pubSubany
    -
    Returns
    -

    LinkExpression

    -
    Defined in
    -

    perspectives/PerspectiveResolver.ts:90

    -
    -

    perspectiveAddLinkExpression

    -

    perspectiveAddLinkExpression(uuid, link, pubSub): LinkExpression

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - -
    NameType
    uuidstring
    linkLinkExpressionInput
    pubSubany
    -
    Returns
    -

    LinkExpression

    -
    Defined in
    -

    perspectives/PerspectiveResolver.ts:147

    -
    - -

    perspectiveAddLinks(uuid, links, pubSub): LinkExpression[]

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - -
    NameType
    uuidstring
    linksLinkInput[]
    pubSubany
    -
    Returns
    -

    LinkExpression[]

    -
    Defined in
    -

    perspectives/PerspectiveResolver.ts:102

    -
    -

    perspectiveAdded

    -

    perspectiveAdded(): PerspectiveHandle

    -
    Returns
    -

    PerspectiveHandle

    -
    Defined in
    -

    perspectives/PerspectiveResolver.ts:172

    -
    -

    perspectiveLinkAdded

    -

    perspectiveLinkAdded(uuid): LinkExpression

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    uuidstring
    -
    Returns
    -

    LinkExpression

    -
    Defined in
    -

    perspectives/PerspectiveResolver.ts:188

    -
    -

    perspectiveLinkMutations

    -

    perspectiveLinkMutations(uuid, mutations, pubSub): LinkExpressionMutations

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - -
    NameType
    uuidstring
    mutationsLinkMutations
    pubSubany
    -
    Returns
    -

    LinkExpressionMutations

    -
    Defined in
    -

    perspectives/PerspectiveResolver.ts:140

    -
    -

    perspectiveLinkRemoved

    -

    perspectiveLinkRemoved(uuid): LinkExpression

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    uuidstring
    -
    Returns
    -

    LinkExpression

    -
    Defined in
    -

    perspectives/PerspectiveResolver.ts:193

    -
    -

    perspectiveLinkUpdated

    -

    perspectiveLinkUpdated(uuid): LinkExpressionUpdated

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    uuidstring
    -
    Returns
    -

    LinkExpressionUpdated

    -
    Defined in
    -

    perspectives/PerspectiveResolver.ts:198

    -
    -

    perspectivePublishSnapshot

    -

    perspectivePublishSnapshot(uuid): String

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    uuidstring
    -
    Returns
    -

    String

    -
    Defined in
    -

    perspectives/PerspectiveResolver.ts:54

    -
    - -

    perspectiveQueryLinks(uuid, query): LinkExpression[]

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    uuidstring
    queryLinkQuery
    -
    Returns
    -

    LinkExpression[]

    -
    Defined in
    -

    perspectives/PerspectiveResolver.ts:59

    -
    -

    perspectiveQueryProlog

    -

    perspectiveQueryProlog(uuid, query): string

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    uuidstring
    queryString
    -
    Returns
    -

    string

    -
    Defined in
    -

    perspectives/PerspectiveResolver.ts:64

    -
    -

    perspectiveRemove

    -

    perspectiveRemove(uuid, pubSub): boolean

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    uuidstring
    pubSubany
    -
    Returns
    -

    boolean

    -
    Defined in
    -

    perspectives/PerspectiveResolver.ts:83

    -
    - -

    perspectiveRemoveLink(uuid, link, pubSub): Boolean

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - -
    NameType
    uuidstring
    linkLinkExpressionInput
    pubSubany
    -
    Returns
    -

    Boolean

    -
    Defined in
    -

    perspectives/PerspectiveResolver.ts:166

    -
    - -

    perspectiveRemoveLinks(uuid, links, pubSub): LinkExpression[]

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - -
    NameType
    uuidstring
    linksLinkExpressionInput[]
    pubSubany
    -
    Returns
    -

    LinkExpression[]

    -
    Defined in
    -

    perspectives/PerspectiveResolver.ts:121

    -
    -

    perspectiveRemoved

    -

    perspectiveRemoved(): string

    -
    Returns
    -

    string

    -
    Defined in
    -

    perspectives/PerspectiveResolver.ts:183

    -
    -

    perspectiveSnapshot

    -

    perspectiveSnapshot(uuid): Perspective

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    uuidstring
    -
    Returns
    -

    Perspective

    -
    Defined in
    -

    perspectives/PerspectiveResolver.ts:49

    -
    -

    perspectiveUpdate

    -

    perspectiveUpdate(uuid, name, pubSub): PerspectiveHandle

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - -
    NameType
    uuidstring
    namestring
    pubSubany
    -
    Returns
    -

    PerspectiveHandle

    -
    Defined in
    -

    perspectives/PerspectiveResolver.ts:76

    -
    - -

    perspectiveUpdateLink(uuid, oldlink, newlink, pubSub): LinkExpression

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameType
    uuidstring
    oldlinkLinkExpressionInput
    newlinkLinkInput
    pubSubany
    -
    Returns
    -

    LinkExpression

    -
    Defined in
    -

    perspectives/PerspectiveResolver.ts:153

    -
    -

    perspectiveUpdated

    -

    perspectiveUpdated(): PerspectiveHandle

    -
    Returns
    -

    PerspectiveHandle

    -
    Defined in
    -

    perspectives/PerspectiveResolver.ts:178

    -
    -

    perspectives

    -

    perspectives(): PerspectiveHandle[]

    -
    Returns
    -

    PerspectiveHandle[]

    -
    Defined in
    -

    perspectives/PerspectiveResolver.ts:30

    -

    -

    @perspect3vism/ad4m / Exports / runtime/RuntimeClient / RuntimeClient

    -

    Class: RuntimeClient

    -

    runtime/RuntimeClient.RuntimeClient

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Methods

    - -

    Constructors

    -

    constructor

    -

    new RuntimeClient(client, subscribe?)

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - -
    NameTypeDefault value
    clientApolloClient<any>undefined
    subscribebooleantrue
    -
    Defined in
    -

    runtime/RuntimeClient.ts:28

    -

    Properties

    -

    #apolloClient

    -

    Private #apolloClient: ApolloClient<any>

    -
    Defined in
    -

    runtime/RuntimeClient.ts:24

    -
    -

    #exceptionOccurredCallbacks

    -

    Private #exceptionOccurredCallbacks: ExceptionCallback[]

    -
    Defined in
    -

    runtime/RuntimeClient.ts:26

    -
    -

    #messageReceivedCallbacks

    -

    Private #messageReceivedCallbacks: MessageCallback[]

    -
    Defined in
    -

    runtime/RuntimeClient.ts:25

    -

    Methods

    -

    addExceptionCallback

    -

    addExceptionCallback(cb): void

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    cbExceptionCallback
    -
    Returns
    -

    void

    -
    Defined in
    -

    runtime/RuntimeClient.ts:260

    -
    -

    addFriends

    -

    addFriends(dids): Promise<string[]>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    didsstring[]
    -
    Returns
    -

    Promise<string[]>

    -
    Defined in
    -

    runtime/RuntimeClient.ts:128

    -
    -

    addKnownLinkLanguageTemplates

    -

    addKnownLinkLanguageTemplates(addresses): Promise<string[]>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    addressesstring[]
    -
    Returns
    -

    Promise<string[]>

    -
    Defined in
    -

    runtime/RuntimeClient.ts:99

    -
    -

    addMessageCallback

    -

    addMessageCallback(cb): void

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    cbMessageCallback
    -
    Returns
    -

    void

    -
    Defined in
    -

    runtime/RuntimeClient.ts:241

    -
    -

    addTrustedAgents

    -

    addTrustedAgents(agents): Promise<string[]>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    agentsstring[]
    -
    Returns
    -

    Promise<string[]>

    -
    Defined in
    -

    runtime/RuntimeClient.ts:70

    -
    -

    deleteTrustedAgents

    -

    deleteTrustedAgents(agents): Promise<string[]>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    agentsstring[]
    -
    Returns
    -

    Promise<string[]>

    -
    Defined in
    -

    runtime/RuntimeClient.ts:80

    -
    -

    friendSendMessage

    -

    friendSendMessage(did, message): Promise<boolean>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    didstring
    messagePerspective
    -
    Returns
    -

    Promise<boolean>

    -
    Defined in
    -

    runtime/RuntimeClient.ts:206

    -
    -

    friendStatus

    -

    friendStatus(did): Promise<PerspectiveExpression>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    didstring
    -
    Returns
    -

    Promise<PerspectiveExpression>

    -
    Defined in
    -

    runtime/RuntimeClient.ts:196

    -
    -

    friends

    -

    friends(): Promise<string[]>

    -
    Returns
    -

    Promise<string[]>

    -
    Defined in
    -

    runtime/RuntimeClient.ts:148

    -
    -

    getTrustedAgents

    -

    getTrustedAgents(): Promise<string[]>

    -
    Returns
    -

    Promise<string[]>

    -
    Defined in
    -

    runtime/RuntimeClient.ts:90

    -
    -

    hcAddAgentInfos

    -

    hcAddAgentInfos(agentInfos): Promise<void>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    agentInfosString
    -
    Returns
    -

    Promise<void>

    -
    Defined in
    -

    runtime/RuntimeClient.ts:166

    -
    -

    hcAgentInfos

    -

    hcAgentInfos(): Promise<String>

    -
    Returns
    -

    Promise<String>

    -
    Defined in
    -

    runtime/RuntimeClient.ts:157

    -
    -

    info

    -

    info(): Promise<RuntimeInfo>

    -
    Returns
    -

    Promise<RuntimeInfo>

    -
    Defined in
    -

    runtime/RuntimeClient.ts:39

    -
    -

    knownLinkLanguageTemplates

    -

    knownLinkLanguageTemplates(): Promise<string[]>

    -
    Returns
    -

    Promise<string[]>

    -
    Defined in
    -

    runtime/RuntimeClient.ts:119

    -
    -

    messageInbox

    -

    messageInbox(filter?): Promise<PerspectiveExpression[]>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    filter?string
    -
    Returns
    -

    Promise<PerspectiveExpression[]>

    -
    Defined in
    -

    runtime/RuntimeClient.ts:216

    -
    -

    messageOutbox

    -

    messageOutbox(filter?): Promise<SentMessage[]>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    filter?string
    -
    Returns
    -

    Promise<SentMessage[]>

    -
    Defined in
    -

    runtime/RuntimeClient.ts:226

    -
    - -

    openLink(url): Promise<Boolean>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    urlstring
    -
    Returns
    -

    Promise<Boolean>

    -
    Defined in
    -

    runtime/RuntimeClient.ts:60

    -
    -

    quit

    -

    quit(): Promise<Boolean>

    -
    Returns
    -

    Promise<Boolean>

    -
    Defined in
    -

    runtime/RuntimeClient.ts:52

    -
    -

    removeFriends

    -

    removeFriends(dids): Promise<string[]>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    didsstring[]
    -
    Returns
    -

    Promise<string[]>

    -
    Defined in
    -

    runtime/RuntimeClient.ts:138

    -
    -

    removeKnownLinkLanguageTemplates

    -

    removeKnownLinkLanguageTemplates(addresses): Promise<string[]>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    addressesstring[]
    -
    Returns
    -

    Promise<string[]>

    -
    Defined in
    -

    runtime/RuntimeClient.ts:109

    -
    -

    setStatus

    -

    setStatus(perspective): Promise<boolean>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    perspectivePerspective
    -
    Returns
    -

    Promise<boolean>

    -
    Defined in
    -

    runtime/RuntimeClient.ts:186

    -
    -

    subscribeExceptionOccurred

    -

    subscribeExceptionOccurred(): void

    -
    Returns
    -

    void

    -
    Defined in
    -

    runtime/RuntimeClient.ts:264

    -
    -

    subscribeMessageReceived

    -

    subscribeMessageReceived(): void

    -
    Returns
    -

    void

    -
    Defined in
    -

    runtime/RuntimeClient.ts:245

    -
    -

    verifyStringSignedByDid

    -

    verifyStringSignedByDid(did, didSigningKeyId, data, signedData): Promise<boolean>

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameType
    didstring
    didSigningKeyIdstring
    datastring
    signedDatastring
    -
    Returns
    -

    Promise<boolean>

    -
    Defined in
    -

    runtime/RuntimeClient.ts:176

    -

    -

    @perspect3vism/ad4m / Exports / runtime/RuntimeResolver / ExceptionInfo

    -

    Class: ExceptionInfo

    -

    runtime/RuntimeResolver.ExceptionInfo

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new ExceptionInfo()

    -

    Properties

    -

    addon

    -

    Optional addon: string

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:54

    -
    -

    message

    -

    message: string

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:50

    -
    -

    title

    -

    title: string

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:48

    -
    -

    type

    -

    type: ExceptionType

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:52

    -

    -

    @perspect3vism/ad4m / Exports / runtime/RuntimeResolver / RuntimeInfo

    -

    Class: RuntimeInfo

    -

    runtime/RuntimeResolver.RuntimeInfo

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new RuntimeInfo()

    -

    Properties

    -

    ad4mExecutorVersion

    -

    ad4mExecutorVersion: string

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:38

    -
    -

    isInitialized

    -

    isInitialized: Boolean

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:40

    -
    -

    isUnlocked

    -

    isUnlocked: Boolean

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:42

    -

    -

    @perspect3vism/ad4m / Exports / runtime/RuntimeResolver / SentMessage

    -

    Class: SentMessage

    -

    runtime/RuntimeResolver.SentMessage

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new SentMessage()

    -

    Properties

    -

    message

    -

    message: PerspectiveExpression

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:32

    -
    -

    recipient

    -

    recipient: string

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:30

    -

    -

    @perspect3vism/ad4m / Exports / runtime/RuntimeResolver / default

    -

    Class: default

    -

    runtime/RuntimeResolver.default

    -

    Resolver classes are used here to define the GraphQL schema -(through the type-graphql annotations) -and are spawned in the client tests in Ad4mClient.test.ts. -For the latter, they return test fixtures.

    -

    Table of contents

    -

    Constructors

    - -

    Methods

    - -

    Constructors

    -

    constructor

    -

    new default()

    -

    Methods

    -

    addTrustedAgents

    -

    addTrustedAgents(agents): string[]

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    agentsstring[]
    -
    Returns
    -

    string[]

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:84

    -
    -

    deleteTrustedAgents

    -

    deleteTrustedAgents(agents): string[]

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    agentsstring[]
    -
    Returns
    -

    string[]

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:89

    -
    -

    exceptionOccurred

    -

    exceptionOccurred(): ExceptionInfo

    -
    Returns
    -

    ExceptionInfo

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:185

    -
    -

    getTrustedAgents

    -

    getTrustedAgents(): string[]

    -
    Returns
    -

    string[]

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:94

    -
    -

    runtimeAddFriends

    -

    runtimeAddFriends(dids): string[]

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    didsstring[]
    -
    Returns
    -

    string[]

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:119

    -
    -

    runtimeAddKnownLinkLanguageTemplates

    -

    runtimeAddKnownLinkLanguageTemplates(addresses): string[]

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    addressesstring[]
    -
    Returns
    -

    string[]

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:104

    -
    -

    runtimeFriendSendMessage

    -

    runtimeFriendSendMessage(did, message): boolean

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    didstring
    messagePerspectiveInput
    -
    Returns
    -

    boolean

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:158

    -
    -

    runtimeFriendStatus

    -

    runtimeFriendStatus(did): PerspectiveExpression

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    didstring
    -
    Returns
    -

    PerspectiveExpression

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:153

    -
    -

    runtimeFriends

    -

    runtimeFriends(): string[]

    -
    Returns
    -

    string[]

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:114

    -
    -

    runtimeHcAddAgentInfos

    -

    runtimeHcAddAgentInfos(agentInfos): boolean

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    agentInfosany
    -
    Returns
    -

    boolean

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:134

    -
    -

    runtimeHcAgentInfos

    -

    runtimeHcAgentInfos(): String

    -
    Returns
    -

    String

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:129

    -
    -

    runtimeInfo

    -

    runtimeInfo(): RuntimeInfo

    -
    Returns
    -

    RuntimeInfo

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:75

    -
    -

    runtimeKnownLinkLanguageTemplates

    -

    runtimeKnownLinkLanguageTemplates(): string[]

    -
    Returns
    -

    string[]

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:99

    -
    -

    runtimeMessageInbox

    -

    runtimeMessageInbox(filter?): PerspectiveExpression[]

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    filter?string
    -
    Returns
    -

    PerspectiveExpression[]

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:166

    -
    -

    runtimeMessageOutbox

    -

    runtimeMessageOutbox(filter?): SentMessage[]

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    filter?string
    -
    Returns
    -

    SentMessage[]

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:171

    -
    -

    runtimeMessageReceived

    -

    runtimeMessageReceived(): PerspectiveExpression

    -
    Returns
    -

    PerspectiveExpression

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:180

    -
    - -

    runtimeOpenLink(url): Boolean

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    urlstring
    -
    Returns
    -

    Boolean

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:70

    -
    -

    runtimeQuit

    -

    runtimeQuit(): Boolean

    -
    Returns
    -

    Boolean

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:65

    -
    -

    runtimeRemoveFriends

    -

    runtimeRemoveFriends(dids): string[]

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    didsstring[]
    -
    Returns
    -

    string[]

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:124

    -
    -

    runtimeRemoveKnownLinkLanguageTemplates

    -

    runtimeRemoveKnownLinkLanguageTemplates(addresses): string[]

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    addressesstring[]
    -
    Returns
    -

    string[]

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:109

    -
    -

    runtimeSetStatus

    -

    runtimeSetStatus(status): boolean

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    statusPerspective
    -
    Returns
    -

    boolean

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:148

    -
    -

    runtimeVerifyStringSignedByDid

    -

    runtimeVerifyStringSignedByDid(did, didSigningKeyId, data, signedData): boolean

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameType
    didstring
    didSigningKeyIdstring
    datastring
    signedDatastring
    -
    Returns
    -

    boolean

    -
    Defined in
    -

    runtime/RuntimeResolver.ts:139

    -

    -

    @perspect3vism/ad4m / Exports / subject/SDNADecorators / PerspectiveAction

    -

    Class: PerspectiveAction

    -

    subject/SDNADecorators.PerspectiveAction

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Constructors

    -

    constructor

    -

    new PerspectiveAction()

    -

    Properties

    -

    action

    -

    action: string

    -
    Defined in
    -

    subject/SDNADecorators.ts:6

    -
    -

    predicate

    -

    predicate: string

    -
    Defined in
    -

    subject/SDNADecorators.ts:8

    -
    -

    source

    -

    source: string

    -
    Defined in
    -

    subject/SDNADecorators.ts:7

    -
    -

    target

    -

    target: string

    -
    Defined in
    -

    subject/SDNADecorators.ts:9

    -

    -

    @perspect3vism/ad4m / Exports / subject/Subject / Subject

    -

    Class: Subject

    -

    subject/Subject.Subject

    -

    Table of contents

    -

    Constructors

    - -

    Properties

    - -

    Accessors

    - -

    Methods

    - -

    Constructors

    -

    constructor

    -

    new Subject(perspective, baseExpression, subjectClass)

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - -
    NameType
    perspectivePerspectiveProxy
    baseExpressionstring
    subjectClassstring
    -
    Defined in
    -

    subject/Subject.ts:9

    -

    Properties

    -

    #baseExpression

    -

    Private #baseExpression: string

    -
    Defined in
    -

    subject/Subject.ts:5

    -
    -

    #perspective

    -

    Private #perspective: PerspectiveProxy

    -
    Defined in
    -

    subject/Subject.ts:7

    -
    -

    #subjectClass

    -

    Private #subjectClass: string

    -
    Defined in
    -

    subject/Subject.ts:6

    -

    Accessors

    -

    baseExpression

    -

    get baseExpression(): string

    -
    Returns
    -

    string

    -
    Defined in
    -

    subject/Subject.ts:15

    -

    Methods

    -

    init

    -

    init(): Promise<void>

    -
    Returns
    -

    Promise<void>

    -
    Defined in
    -

    subject/Subject.ts:19

    -

    Enums

    -

    -

    @perspect3vism/ad4m / Exports / Exception / ExceptionType

    -

    Enumeration: ExceptionType

    -

    Exception.ExceptionType

    -

    Table of contents

    -

    Enumeration Members

    - -

    Enumeration Members

    -

    AgentIsUntrusted

    -

    AgentIsUntrusted = 2

    -
    Defined in
    -

    Exception.ts:4

    -
    -

    CapabilityRequested

    -

    CapabilityRequested = 3

    -
    Defined in
    -

    Exception.ts:5

    -
    -

    ExpressionIsNotVerified

    -

    ExpressionIsNotVerified = 1

    -
    Defined in
    -

    Exception.ts:3

    -
    -

    LanguageIsNotLoaded

    -

    LanguageIsNotLoaded = 0

    -
    Defined in
    -

    Exception.ts:2

    -

    -

    @perspect3vism/ad4m / Exports / perspectives/PerspectiveHandle / PerspectiveState

    -

    Enumeration: PerspectiveState

    -

    perspectives/PerspectiveHandle.PerspectiveState

    -

    Table of contents

    -

    Enumeration Members

    - -

    Enumeration Members

    -

    LinkLanguageFailedToInstall

    -

    LinkLanguageFailedToInstall = "LinkLanguageFailedToInstall"

    -
    Defined in
    -

    perspectives/PerspectiveHandle.ts:7

    -
    -

    LinkLanguageInstalledButNotSynced

    -

    LinkLanguageInstalledButNotSynced = "LinkLanguageInstalledButNotSynced"

    -
    Defined in
    -

    perspectives/PerspectiveHandle.ts:8

    -
    -

    NeighbourhoodJoinInitiated

    -

    NeighbourhoodJoinInitiated = "NeighbourhoodJoinInitiated"

    -
    Defined in
    -

    perspectives/PerspectiveHandle.ts:6

    -
    -

    Private

    -

    Private = "Private"

    -
    Defined in
    -

    perspectives/PerspectiveHandle.ts:5

    -
    -

    Synced

    -

    Synced = "Synced"

    -
    Defined in
    -

    perspectives/PerspectiveHandle.ts:9

    -

    Interfaces

    -

    -

    @perspect3vism/ad4m / Exports / agent/AgentClient / InitializeArgs

    -

    Interface: InitializeArgs

    -

    agent/AgentClient.InitializeArgs

    -

    Table of contents

    -

    Properties

    - -

    Properties

    -

    did

    -

    did: string

    -
    Defined in
    -

    agent/AgentClient.ts:66

    -
    -

    didDocument

    -

    didDocument: string

    -
    Defined in
    -

    agent/AgentClient.ts:67

    -
    -

    keystore

    -

    keystore: string

    -
    Defined in
    -

    agent/AgentClient.ts:68

    -
    -

    passphrase

    -

    passphrase: string

    -
    Defined in
    -

    agent/AgentClient.ts:69

    -

    -

    @perspect3vism/ad4m / Exports / language/Language / DirectMessageAdapter

    -

    Interface: DirectMessageAdapter

    -

    language/Language.DirectMessageAdapter

    -

    Table of contents

    -

    Methods

    - -

    Methods

    -

    addMessageCallback

    -

    addMessageCallback(callback): any

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    callbackMessageCallback
    -
    Returns
    -

    any

    -
    Defined in
    -

    language/Language.ts:198

    -
    -

    inbox

    -

    inbox(filter?): Promise<PerspectiveExpression[]>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    filter?string
    -
    Returns
    -

    Promise<PerspectiveExpression[]>

    -
    Defined in
    -

    language/Language.ts:197

    -
    -

    recipient

    -

    recipient(): string

    -
    Returns
    -

    string

    -
    Defined in
    -

    language/Language.ts:190

    -
    -

    sendInbox

    -

    sendInbox(message): Promise<void | PerspectiveExpression>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    messagePerspective
    -
    Returns
    -

    Promise<void | PerspectiveExpression>

    -
    Defined in
    -

    language/Language.ts:194

    -
    -

    sendP2P

    -

    sendP2P(message): Promise<void | PerspectiveExpression>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    messagePerspective
    -
    Returns
    -

    Promise<void | PerspectiveExpression>

    -
    Defined in
    -

    language/Language.ts:193

    -
    -

    setStatus

    -

    setStatus(status): any

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    statusPerspectiveExpression
    -
    Returns
    -

    any

    -
    Defined in
    -

    language/Language.ts:196

    -
    -

    status

    -

    status(): Promise<void | PerspectiveExpression>

    -
    Returns
    -

    Promise<void | PerspectiveExpression>

    -
    Defined in
    -

    language/Language.ts:192

    -

    -

    @perspect3vism/ad4m / Exports / language/Language / ExpressionAdapter

    -

    Interface: ExpressionAdapter

    -

    language/Language.ExpressionAdapter

    -

    Interface for the most common Expression Languages

    -

    Table of contents

    -

    Properties

    - -

    Methods

    - -

    Properties

    -

    putAdapter

    -

    putAdapter: PublicSharing | ReadOnlyLanguage

    -

    Strategy for putting an expression with needs to be different -for those two cases:

    -
      -
    1. PublicSharing means that this language supports the creation -and sharing of Expressions, which is the common use-case
    2. -
    3. ReadOnlyLanguage means that the Language implements a pre-defined -set of expressions (which can be infinite or finite). -For example the url-iframe Language which directly maps URLs to -addresses - meaning every well formed URL is an address in this -Language. Or a potential Language implementing the verbs/predicates -of a spec like FOAF.
    4. -
    -
    Defined in
    -

    language/Language.ts:105

    -

    Methods

    -

    get

    -

    get(address): Promise<Expression>

    -

    Returns an Expression by address, or null if there is no Expression -with that given address

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    addressstring
    -
    Returns
    -

    Promise<Expression>

    -
    Defined in
    -

    language/Language.ts:92

    -

    -

    @perspect3vism/ad4m / Exports / language/Language / ExpressionUI

    -

    Interface: ExpressionUI

    -

    language/Language.ExpressionUI

    -

    UI factories returning web components

    -

    Table of contents

    -

    Methods

    - -

    Methods

    -

    constructorIcon

    -

    constructorIcon(): string

    -

    Returns JS code of a web component used to create new expressions

    -
    Returns
    -

    string

    -
    Defined in
    -

    language/Language.ts:81

    -
    -

    icon

    -

    icon(): string

    -

    Returns JS code of a web component that renders the given expression

    -
    Returns
    -

    string

    -
    Defined in
    -

    language/Language.ts:79

    -

    -

    @perspect3vism/ad4m / Exports / language/Language / GetAllAdapter

    -

    Interface: GetAllAdapter

    -

    language/Language.GetAllAdapter

    -

    Table of contents

    -

    Methods

    - -

    Methods

    -

    getAll

    -

    getAll(filter, count, page): Promise<Expression[]>

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - -
    NameType
    filterany
    countnumber
    pagenumber
    -
    Returns
    -

    Promise<Expression[]>

    -
    Defined in
    -

    language/Language.ts:147

    -

    -

    @perspect3vism/ad4m / Exports / language/Language / GetByAuthorAdapter

    -

    Interface: GetByAuthorAdapter

    -

    language/Language.GetByAuthorAdapter

    -

    Table of contents

    -

    Methods

    - -

    Methods

    -

    getByAuthor

    -

    getByAuthor(author, count, page): Promise<Expression[]>

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - -
    NameType
    authorstring
    countnumber
    pagenumber
    -
    Returns
    -

    Promise<Expression[]>

    -
    Defined in
    -

    language/Language.ts:138

    -

    -

    @perspect3vism/ad4m / Exports / language/Language / Interaction

    -

    Interface: Interaction

    -

    language/Language.Interaction

    -

    Table of contents

    -

    Properties

    - -

    Methods

    - -

    Properties

    -

    label

    -

    Readonly label: string

    -
    Defined in
    -

    language/Language.ts:222

    -
    -

    name

    -

    Readonly name: string

    -
    Defined in
    -

    language/Language.ts:223

    -
    -

    parameters

    -

    Readonly parameters: InteractionParameter[]

    -
    Defined in
    -

    language/Language.ts:224

    -

    Methods

    -

    execute

    -

    execute(parameters): Promise<string>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    parametersobject
    -
    Returns
    -

    Promise<string>

    -
    Defined in
    -

    language/Language.ts:225

    -

    -

    @perspect3vism/ad4m / Exports / language/Language / Language

    -

    Interface: Language

    -

    language/Language.Language

    -

    Interface of AD4M Languages

    -

    Any JavaScript module that implements a create() function that returns an object that implements this interface -is a valid AD4M language. -So the AD4M-internal representation of a language is an object that implements this interface.

    -

    Since there are a few different kinds of languages, this interface is split into optional sub-interfaces. -The only required property is the name of the language.

    -

    The most usual kind of language is the "Expression Language", which is a language that can be used to create -and share Expressions. -For that, implement the expressionsAdapter and expressionUI interface.

    -

    The second most common kind of language is the "Link Language", which is a language that builds the core -of AD4M Neighbourhoods. -For that, implement the linksAdapter interface.

    -

    Table of contents

    -

    Properties

    - -

    Methods

    - -

    Properties

    -

    directMessageAdapter

    -

    Optional Readonly directMessageAdapter: DirectMessageAdapter

    -

    Optional adapter for direct messaging between agents

    -
    Defined in
    -

    language/Language.ts:64

    -
    -

    expressionAdapter

    -

    Optional Readonly expressionAdapter: ExpressionAdapter

    -

    ExpressionAdapter implements means of getting an Expression -by address and putting an expression

    -
    Defined in
    -

    language/Language.ts:38

    -
    -

    expressionUI

    -

    Optional Readonly expressionUI: ExpressionUI

    -

    Interface for getting UI/web components for rendering Expressions of this Language

    -
    Defined in
    -

    language/Language.ts:41

    -
    -

    getAllAdapter

    -

    Optional Readonly getAllAdapter: GetAllAdapter

    -

    Optional adapter for getting all Expressions

    -
    Defined in
    -

    language/Language.ts:61

    -
    -

    getByAuthorAdapter

    -

    Optional Readonly getByAuthorAdapter: GetByAuthorAdapter

    -

    Optional adapter for getting Expressions by author

    -
    Defined in
    -

    language/Language.ts:59

    -
    -

    languageAdapter

    -

    Optional Readonly languageAdapter: LanguageAdapter

    -

    Implementation of a Language that defines and stores Languages

    -
    Defined in
    -

    language/Language.ts:56

    -
    -

    linksAdapter

    -

    Optional Readonly linksAdapter: LinkSyncAdapter

    -

    Interface of LinkLanguages for the core implementation of Neighbourhoods

    -
    Defined in
    -

    language/Language.ts:44

    -
    -

    name

    -

    Readonly name: string

    -
    Defined in
    -

    language/Language.ts:26

    -
    -

    settingsUI

    -

    Optional Readonly settingsUI: SettingsUI

    -

    Interface for providing UI components for the settings of this Language

    -
    Defined in
    -

    language/Language.ts:67

    -
    -

    teardown

    -

    Optional Readonly teardown: () => void

    -
    Type declaration
    -

    ▸ (): void

    -

    Optional function to make any cleanup/teardown if your language gets deleting in the ad4m-executor

    -
    Returns
    -

    void

    -
    Defined in
    -

    language/Language.ts:70

    -
    -

    telepresenceAdapter

    -

    Optional Readonly telepresenceAdapter: TelepresenceAdapter

    -

    Additional Interface of LinkLanguages that support telepresence features, -that is:

    -
      -
    • seeing who is online and getting a status
    • -
    • sending/receiveing p2p signals to other online agents without affecting -the shared Perspective of the Neighbourhood -(see TelepresenceAdapter for more details)
    • -
    -
    Defined in
    -

    language/Language.ts:53

    -

    Methods

    -

    interactions

    -

    interactions(expression): Interaction[]

    -

    All available interactions this agent could execute on given expression

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    expressionstring
    -
    Returns
    -

    Interaction[]

    -
    Defined in
    -

    language/Language.ts:73

    -
    -

    isImmutableExpression

    -

    Optional isImmutableExpression(expression): boolean

    -

    Flagging expressions as immutable to enable -expression caching in the ad4m-executor

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    expressionstring
    -
    Returns
    -

    boolean

    -
    Defined in
    -

    language/Language.ts:31

    -

    -

    @perspect3vism/ad4m / Exports / language/Language / LanguageAdapter

    -

    Interface: LanguageAdapter

    -

    language/Language.LanguageAdapter

    -

    Table of contents

    -

    Methods

    - -

    Methods

    -

    getLanguageSource

    -

    getLanguageSource(address): Promise<string>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    addressstring
    -
    Returns
    -

    Promise<string>

    -
    Defined in
    -

    language/Language.ts:131

    -

    -

    @perspect3vism/ad4m / Exports / language/Language / LinkSyncAdapter

    -

    Interface: LinkSyncAdapter

    -

    language/Language.LinkSyncAdapter

    -

    Interface for "Link Languages" that facilitate the synchronization -between agents' local Perspectives inside a Neighbourhood. -The assumption is that every version of the shared Perspective -is labeled with a unique revision string. -Changes are committed and retrieved through diffs. -Think of a LinkSyncAdapter as a git branch to which agents commit -their changes to and pull diffs from their current revision -to the latest one.

    -

    Table of contents

    -

    Methods

    - -

    Methods

    -

    addCallback

    -

    addCallback(callback): any

    -

    Get push notification when a diff got published

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    callbackPerspectiveDiffObserver
    -
    Returns
    -

    any

    -
    Defined in
    -

    language/Language.ts:184

    -
    -

    commit

    -

    commit(diff): Promise<string>

    -

    Publish changes

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    diffPerspectiveDiff
    -
    Returns
    -

    Promise<string>

    -
    Defined in
    -

    language/Language.ts:181

    -
    -

    currentRevision

    -

    currentRevision(): Promise<string>

    -

    What revision are we on now -> what changes are included in output of render()

    -
    Returns
    -

    Promise<string>

    -
    Defined in
    -

    language/Language.ts:172

    -
    -

    latestRevision

    -

    latestRevision(): Promise<string>

    -

    Call this to check if there are new changes -(compare returned revision with last one that was pulled)

    -
    Returns
    -

    Promise<string>

    -
    Defined in
    -

    language/Language.ts:169

    -
    -

    others

    -

    others(): Promise<string[]>

    -
    Returns
    -

    Promise<string[]>

    -
    Defined in
    -

    language/Language.ts:164

    -
    -

    public

    -

    public(): boolean

    -
    Returns
    -

    boolean

    -
    Defined in
    -

    language/Language.ts:163

    -
    -

    pull

    -

    pull(): Promise<PerspectiveDiff>

    -

    Check for and get new changes

    -
    Returns
    -

    Promise<PerspectiveDiff>

    -
    Defined in
    -

    language/Language.ts:175

    -
    -

    render

    -

    render(): Promise<Perspective>

    -

    Returns the full, rendered Perspective at currentRevision

    -
    Returns
    -

    Promise<Perspective>

    -
    Defined in
    -

    language/Language.ts:178

    -
    -

    writable

    -

    writable(): boolean

    -
    Returns
    -

    boolean

    -
    Defined in
    -

    language/Language.ts:162

    -

    -

    @perspect3vism/ad4m / Exports / language/Language / PublicSharing

    -

    Interface: PublicSharing

    -

    language/Language.PublicSharing

    -

    Implement this interface if your Language supports creation of sharing -of Expressions. -See ExpressionAdapter

    -

    Table of contents

    -

    Methods

    - -

    Methods

    -

    createPublic

    -

    createPublic(content): Promise<string>

    -

    Create an Expression and shares it. -Return the Expression's address.

    -
    Parameters
    - - - - - - - - - - - - - - - -
    NameTypeDescription
    contentobjectis the object created by the constructorIcon component
    -
    Returns
    -

    Promise<string>

    -
    Defined in
    -

    language/Language.ts:117

    -

    -

    @perspect3vism/ad4m / Exports / language/Language / ReadOnlyLanguage

    -

    Interface: ReadOnlyLanguage

    -

    language/Language.ReadOnlyLanguage

    -

    Implement this interface if your Language is defined over a static -set of pre-defined Expressions.

    -

    Table of contents

    -

    Methods

    - -

    Methods

    -

    addressOf

    -

    addressOf(content): Promise<string>

    -

    This just calculates the address of an object

    -
    Parameters
    - - - - - - - - - - - - - - - -
    NameTypeDescription
    contentobjectis the object created by the constructorIcon component
    -
    Returns
    -

    Promise<string>

    -
    Defined in
    -

    language/Language.ts:127

    -

    -

    @perspect3vism/ad4m / Exports / language/Language / SettingsUI

    -

    Interface: SettingsUI

    -

    language/Language.SettingsUI

    -

    Table of contents

    -

    Methods

    - -

    Methods

    -

    settingsIcon

    -

    settingsIcon(): string

    -
    Returns
    -

    string

    -
    Defined in
    -

    language/Language.ts:85

    -

    -

    @perspect3vism/ad4m / Exports / language/Language / TelepresenceAdapter

    -

    Interface: TelepresenceAdapter

    -

    language/Language.TelepresenceAdapter

    -

    Table of contents

    -

    Methods

    - -

    Methods

    -

    getOnlineAgents

    -

    getOnlineAgents(): Promise<OnlineAgent[]>

    -
    Returns
    -

    Promise<OnlineAgent[]>

    -
    Defined in
    -

    language/Language.ts:256

    -
    -

    registerSignalCallback

    -

    registerSignalCallback(callback): Promise<void>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    callbackTelepresenceSignalCallback
    -
    Returns
    -

    Promise<void>

    -
    Defined in
    -

    language/Language.ts:260

    -
    -

    sendBroadcast

    -

    sendBroadcast(payload): Promise<object>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    payloadPerspectiveExpression
    -
    Returns
    -

    Promise<object>

    -
    Defined in
    -

    language/Language.ts:259

    -
    -

    sendSignal

    -

    sendSignal(remoteAgentDid, payload): Promise<object>

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    remoteAgentDidstring
    payloadPerspectiveExpression
    -
    Returns
    -

    Promise<object>

    -
    Defined in
    -

    language/Language.ts:258

    -
    -

    setOnlineStatus

    -

    setOnlineStatus(status): Promise<void>

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    statusPerspectiveExpression
    -
    Returns
    -

    Promise<void>

    -
    Defined in
    -

    language/Language.ts:255

    -

    -

    @perspect3vism/ad4m / Exports / language/LanguageContext / AgentService

    -

    Interface: AgentService

    -

    language/LanguageContext.AgentService

    -

    Table of contents

    -

    Properties

    - -

    Methods

    - -

    Properties

    -

    did

    -

    Readonly did: string

    -
    Defined in
    -

    language/LanguageContext.ts:6

    -

    Methods

    -

    createSignedExpression

    -

    createSignedExpression(data): Expression

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    dataany
    -
    Returns
    -

    Expression

    -
    Defined in
    -

    language/LanguageContext.ts:7

    -

    -

    @perspect3vism/ad4m / Exports / language/LanguageContext / HolochainLanguageDelegate

    -

    Interface: HolochainLanguageDelegate

    -

    language/LanguageContext.HolochainLanguageDelegate

    -

    Table of contents

    -

    Methods

    - -

    Methods

    -

    call

    -

    call(dnaNick, zomeName, fnName, params): Promise<any>

    -

    Makes a single call to a given holochain DNA. Underlying implementation puts these calls into a sync fifo queue

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameType
    dnaNickstring
    zomeNamestring
    fnNamestring
    paramsstring \object
    -
    Returns
    -

    Promise<any>

    -
    Defined in
    -

    language/LanguageContext.ts:34

    -
    -

    callAsync

    -

    callAsync(calls, timeoutMs?): Promise<any[]>

    -

    Makes all supplied calls in parallel to the provided holochain dna... Should only be called on read operations to avoid source chain async mutation errors

    -
    Parameters
    - - - - - - - - - - - - - - - - - - -
    NameType
    calls{ dnaNick: string ; fnName: string ; params: string \object ; zomeName: string }[]
    timeoutMs?number
    -
    Returns
    -

    Promise<any[]>

    -
    Defined in
    -

    language/LanguageContext.ts:36

    -
    -

    registerDNAs

    -

    registerDNAs(dnas, holochainSignalCallback?): Promise<void>

    -

    Installs/registers a given DNA in the ad4m-executor

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    dnasDna[]
    holochainSignalCallback?AppSignalCb
    -
    Returns
    -

    Promise<void>

    -
    Defined in
    -

    language/LanguageContext.ts:32

    -

    -

    @perspect3vism/ad4m / Exports / language/LanguageContext / LanguageContext

    -

    Interface: LanguageContext

    -

    language/LanguageContext.LanguageContext

    -

    Table of contents

    -

    Properties

    - -

    Properties

    -

    Holochain

    -

    Holochain: HolochainLanguageDelegate

    -
    Defined in
    -

    language/LanguageContext.ts:20

    -
    -

    IPFS

    -

    IPFS: IPFS<{}>

    -
    Defined in
    -

    language/LanguageContext.ts:16

    -
    -

    ad4mSignal

    -

    ad4mSignal: Ad4mSignalCB

    -
    Defined in
    -

    language/LanguageContext.ts:21

    -
    -

    agent

    -

    agent: AgentService

    -
    Defined in
    -

    language/LanguageContext.ts:15

    -
    -

    customSettings

    -

    customSettings: object

    -
    Defined in
    -

    language/LanguageContext.ts:19

    -
    -

    signatures

    -

    signatures: SignaturesService

    -
    Defined in
    -

    language/LanguageContext.ts:17

    -
    -

    storageDirectory

    -

    storageDirectory: string

    -
    Defined in
    -

    language/LanguageContext.ts:18

    -

    -

    @perspect3vism/ad4m / Exports / language/LanguageContext / SignaturesService

    -

    Interface: SignaturesService

    -

    language/LanguageContext.SignaturesService

    -

    Table of contents

    -

    Methods

    - -

    Methods

    -

    verify

    -

    verify(expr): boolean

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    exprExpression
    -
    Returns
    -

    boolean

    -
    Defined in
    -

    language/LanguageContext.ts:11

    -

    -

    @perspect3vism/ad4m / Exports

    -

    @perspect3vism/ad4m

    -

    Table of contents

    -

    Modules

    - -

    Modules

    -

    -

    @perspect3vism/ad4m / Exports / Ad4mClient

    -

    Module: Ad4mClient

    -

    Table of contents

    -

    Classes

    - -

    -

    @perspect3vism/ad4m / Exports / Address

    -

    Module: Address

    -

    Table of contents

    -

    Type Aliases

    - -

    Type Aliases

    -

    Address

    -

    Ƭ Address: string

    -
    Defined in
    -

    Address.ts:1

    -

    -

    @perspect3vism/ad4m / Exports / DID

    -

    Module: DID

    -

    Table of contents

    -

    Type Aliases

    - -

    Type Aliases

    -

    DID

    -

    Ƭ DID: string

    -
    Defined in
    -

    DID.ts:1

    -

    -

    @perspect3vism/ad4m / Exports / Exception

    -

    Module: Exception

    -

    Table of contents

    -

    Enumerations

    - -

    -

    @perspect3vism/ad4m / Exports / Literal

    -

    Module: Literal

    -

    Table of contents

    -

    Classes

    - -

    -

    @perspect3vism/ad4m / Exports / PubSub

    -

    Module: PubSub

    -

    Table of contents

    -

    Variables

    - -

    Variables

    -

    AGENT_STATUS_CHANGED

    -

    Const AGENT_STATUS_CHANGED: "agent-status-changed-topic"

    -
    Defined in
    -

    PubSub.ts:2

    -
    -

    AGENT_UPDATED

    -

    Const AGENT_UPDATED: "agent-updated-topic"

    -
    Defined in
    -

    PubSub.ts:1

    -
    -

    DIRECT_MESSAGE_RECEIVED

    -

    Const DIRECT_MESSAGE_RECEIVED: "direct-message-received-topic"

    -
    Defined in
    -

    PubSub.ts:3

    -
    -

    EXCEPTION_OCCURRED_TOPIC

    -

    Const EXCEPTION_OCCURRED_TOPIC: "exception-occurred-topic"

    -
    Defined in
    -

    PubSub.ts:11

    -
    -

    LINK_ADDED_TOPIC

    -

    Const LINK_ADDED_TOPIC: "link-added-topic"

    -
    Defined in
    -

    PubSub.ts:7

    -
    -

    LINK_REMOVED_TOPIC

    -

    Const LINK_REMOVED_TOPIC: "link-removed-topic"

    -
    Defined in
    -

    PubSub.ts:8

    -
    -

    LINK_UDATED_TOPIC

    -

    Const LINK_UDATED_TOPIC: "link-updated-topic"

    -
    Defined in
    -

    PubSub.ts:9

    -
    -

    NEIGHBOURHOOD_SIGNAL_RECEIVED_TOPIC

    -

    Const NEIGHBOURHOOD_SIGNAL_RECEIVED_TOPIC: "neighbourhood-signal-received-topic"

    -
    Defined in
    -

    PubSub.ts:12

    -
    -

    PERSPECTIVE_ADDED_TOPIC

    -

    Const PERSPECTIVE_ADDED_TOPIC: "perspective-added-topic"

    -
    Defined in
    -

    PubSub.ts:4

    -
    -

    PERSPECTIVE_REMOVED_TOPIC

    -

    Const PERSPECTIVE_REMOVED_TOPIC: "perspective-removed-topic"

    -
    Defined in
    -

    PubSub.ts:6

    -
    -

    PERSPECTIVE_UPDATED_TOPIC

    -

    Const PERSPECTIVE_UPDATED_TOPIC: "perspective-updated-topic"

    -
    Defined in
    -

    PubSub.ts:5

    -
    -

    SIGNAL

    -

    Const SIGNAL: "signal"

    -
    Defined in
    -

    PubSub.ts:10

    -

    -

    @perspect3vism/ad4m / Exports / SmartLiteral

    -

    Module: SmartLiteral

    -

    Table of contents

    -

    Classes

    - -

    Variables

    - -

    Variables

    -

    SMART_LITERAL_CONTENT_PREDICATE

    -

    Const SMART_LITERAL_CONTENT_PREDICATE: "smart_literal://content"

    -
    Defined in
    -

    SmartLiteral.ts:6

    -

    -

    @perspect3vism/ad4m / Exports / agent/Agent

    -

    Module: agent/Agent

    -

    Table of contents

    -

    Classes

    - -

    -

    @perspect3vism/ad4m / Exports / agent/AgentClient

    -

    Module: agent/AgentClient

    -

    Table of contents

    -

    Classes

    - -

    Interfaces

    - -

    Type Aliases

    - -

    Type Aliases

    -

    AgentStatusChangedCallback

    -

    Ƭ AgentStatusChangedCallback: (agent: Agent) => null

    -
    Type declaration
    -

    ▸ (agent): null

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    agentAgent
    -
    Returns
    -

    null

    -
    Defined in
    -

    agent/AgentClient.ts:73

    -
    -

    AgentUpdatedCallback

    -

    Ƭ AgentUpdatedCallback: (agent: Agent) => null

    -
    Type declaration
    -

    ▸ (agent): null

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    agentAgent
    -
    Returns
    -

    null

    -
    Defined in
    -

    agent/AgentClient.ts:72

    -

    -

    @perspect3vism/ad4m / Exports / agent/AgentResolver

    -

    Module: agent/AgentResolver

    -

    Table of contents

    -

    Classes

    - -

    Variables

    - -

    Variables

    -

    TEST_AGENT_DID

    -

    Const TEST_AGENT_DID: "did:ad4m:test"

    -
    Defined in
    -

    agent/AgentResolver.ts:7

    -

    -

    @perspect3vism/ad4m / Exports / agent/AgentStatus

    -

    Module: agent/AgentStatus

    -

    Table of contents

    -

    Classes

    - -

    -

    @perspect3vism/ad4m / Exports / buildSchema

    -

    Module: buildSchema

    -

    -

    @perspect3vism/ad4m / Exports / expression/Expression

    -

    Module: expression/Expression

    -

    Table of contents

    -

    Classes

    - -

    Functions

    - -

    Functions

    -

    ExpressionGeneric

    -

    ExpressionGeneric<DataType>(DataTypeClass): any

    -
    Type parameters
    - - - - - - - - - - - -
    Name
    DataType
    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    DataTypeClassClassType<DataType>
    -
    Returns
    -

    any

    -
    Defined in
    -

    expression/Expression.ts:42

    -
    -

    ExpressionGenericInput

    -

    ExpressionGenericInput<DataType>(DataTypeClass): any

    -
    Type parameters
    - - - - - - - - - - - -
    Name
    DataType
    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    DataTypeClassClassType<DataType>
    -
    Returns
    -

    any

    -
    Defined in
    -

    expression/Expression.ts:67

    -
    -

    isExpression

    -

    isExpression(e): boolean

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    eany
    -
    Returns
    -

    boolean

    -
    Defined in
    -

    expression/Expression.ts:97

    -

    -

    @perspect3vism/ad4m / Exports / expression/ExpressionClient

    -

    Module: expression/ExpressionClient

    -

    Table of contents

    -

    Classes

    - -

    -

    @perspect3vism/ad4m / Exports / expression/ExpressionRef

    -

    Module: expression/ExpressionRef

    -

    Table of contents

    -

    Classes

    - -

    Functions

    - -

    Functions

    -

    exprRef2String

    -

    exprRef2String(ref): string

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    refExpressionRef
    -
    Returns
    -

    string

    -
    Defined in
    -

    expression/ExpressionRef.ts:22

    -
    -

    parseExprUrl

    -

    parseExprUrl(url): ExpressionRef

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    urlstring
    -
    Returns
    -

    ExpressionRef

    -
    Defined in
    -

    expression/ExpressionRef.ts:29

    -

    -

    @perspect3vism/ad4m / Exports / expression/ExpressionResolver

    -

    Module: expression/ExpressionResolver

    -

    Table of contents

    -

    Classes

    - -

    -

    @perspect3vism/ad4m / Exports / jestSetup

    -

    Module: jestSetup

    -

    -

    @perspect3vism/ad4m / Exports / language/Icon

    -

    Module: language/Icon

    -

    Table of contents

    -

    Classes

    - -

    -

    @perspect3vism/ad4m / Exports / language/Language

    -

    Module: language/Language

    -

    Table of contents

    -

    Classes

    - -

    Interfaces

    - -

    Type Aliases

    - -

    Type Aliases

    -

    MessageCallback

    -

    Ƭ MessageCallback: (message: PerspectiveExpression) => void

    -
    Type declaration
    -

    ▸ (message): void

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    messagePerspectiveExpression
    -
    Returns
    -

    void

    -
    Defined in
    -

    language/Language.ts:187

    -
    -

    PerspectiveDiffObserver

    -

    Ƭ PerspectiveDiffObserver: (diff: PerspectiveDiff) => void

    -
    Type declaration
    -

    ▸ (diff): void

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    diffPerspectiveDiff
    -
    Returns
    -

    void

    -
    Defined in
    -

    language/Language.ts:150

    -
    -

    StatusCallback

    -

    Ƭ StatusCallback: (caller: DID) => Perspective

    -
    Type declaration
    -

    ▸ (caller): Perspective

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    callerDID
    -
    Returns
    -

    Perspective

    -
    Defined in
    -

    language/Language.ts:188

    -
    -

    TelepresenceSignalCallback

    -

    Ƭ TelepresenceSignalCallback: (payload: PerspectiveExpression) => void

    -
    Type declaration
    -

    ▸ (payload): void

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    payloadPerspectiveExpression
    -
    Returns
    -

    void

    -
    Defined in
    -

    language/Language.ts:253

    -

    -

    @perspect3vism/ad4m / Exports / language/LanguageClient

    -

    Module: language/LanguageClient

    -

    Table of contents

    -

    Classes

    - -

    -

    @perspect3vism/ad4m / Exports / language/LanguageContext

    -

    Module: language/LanguageContext

    -

    Table of contents

    -

    Classes

    - -

    Interfaces

    - -

    Type Aliases

    - -

    Type Aliases

    -

    Ad4mSignalCB

    -

    Ƭ Ad4mSignalCB: (signal: any) => void

    -
    Type declaration
    -

    ▸ (signal): void

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    signalany
    -
    Returns
    -

    void

    -
    Defined in
    -

    language/LanguageContext.ts:39

    -

    -

    @perspect3vism/ad4m / Exports / language/LanguageHandle

    -

    Module: language/LanguageHandle

    -

    Table of contents

    -

    Classes

    - -

    -

    @perspect3vism/ad4m / Exports / language/LanguageMeta

    -

    Module: language/LanguageMeta

    -

    Table of contents

    -

    Classes

    - -

    -

    @perspect3vism/ad4m / Exports / language/LanguageRef

    -

    Module: language/LanguageRef

    -

    Table of contents

    -

    Classes

    - -

    -

    @perspect3vism/ad4m / Exports / language/LanguageResolver

    -

    Module: language/LanguageResolver

    -

    Table of contents

    -

    Classes

    - -

    -

    @perspect3vism/ad4m / Exports / links/Links

    - -

    Table of contents

    -

    Classes

    - -

    Functions

    - -

    Functions

    - -

    isLink(l): boolean

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    lany
    -
    Returns
    -

    boolean

    -
    Defined in
    -

    links/Links.ts:82

    -
    -

    linkEqual

    -

    linkEqual(l1, l2): boolean

    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    l1LinkExpression
    l2LinkExpression
    -
    Returns
    -

    boolean

    -
    Defined in
    -

    links/Links.ts:74

    -

    -

    @perspect3vism/ad4m / Exports / neighbourhood/Neighbourhood

    -

    Module: neighbourhood/Neighbourhood

    -

    Table of contents

    -

    Classes

    - -

    -

    @perspect3vism/ad4m / Exports / neighbourhood/NeighbourhoodClient

    -

    Module: neighbourhood/NeighbourhoodClient

    -

    Table of contents

    -

    Classes

    - -

    -

    @perspect3vism/ad4m / Exports / neighbourhood/NeighbourhoodProxy

    -

    Module: neighbourhood/NeighbourhoodProxy

    -

    Table of contents

    -

    Classes

    - -

    -

    @perspect3vism/ad4m / Exports / neighbourhood/NeighbourhoodResolver

    -

    Module: neighbourhood/NeighbourhoodResolver

    -

    Table of contents

    -

    Classes

    - -

    -

    @perspect3vism/ad4m / Exports / perspectives/LinkQuery

    -

    Module: perspectives/LinkQuery

    -

    Table of contents

    -

    Classes

    - -

    -

    @perspect3vism/ad4m / Exports / perspectives/Perspective

    -

    Module: perspectives/Perspective

    -

    Table of contents

    -

    Classes

    - -

    -

    @perspect3vism/ad4m / Exports / perspectives/PerspectiveClient

    -

    Module: perspectives/PerspectiveClient

    -

    Table of contents

    -

    Classes

    - -

    Type Aliases

    - -

    Type Aliases

    -

    LinkCallback

    -

    Ƭ LinkCallback: (link: LinkExpression) => null

    -
    Type declaration
    -

    ▸ (link): null

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    linkLinkExpression
    -
    Returns
    -

    null

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:41

    -
    -

    PerspectiveHandleCallback

    -

    Ƭ PerspectiveHandleCallback: (perspective: PerspectiveHandle) => null

    -
    Type declaration
    -

    ▸ (perspective): null

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    perspectivePerspectiveHandle
    -
    Returns
    -

    null

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:39

    -
    -

    UuidCallback

    -

    Ƭ UuidCallback: (uuid: string) => null

    -
    Type declaration
    -

    ▸ (uuid): null

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    uuidstring
    -
    Returns
    -

    null

    -
    Defined in
    -

    perspectives/PerspectiveClient.ts:40

    -

    -

    @perspect3vism/ad4m / Exports / perspectives/PerspectiveDiff

    -

    Module: perspectives/PerspectiveDiff

    -

    Table of contents

    -

    Classes

    - -

    -

    @perspect3vism/ad4m / Exports / perspectives/PerspectiveHandle

    -

    Module: perspectives/PerspectiveHandle

    -

    Table of contents

    -

    Enumerations

    - -

    Classes

    - -

    -

    @perspect3vism/ad4m / Exports / perspectives/PerspectiveProxy

    -

    Module: perspectives/PerspectiveProxy

    -

    Table of contents

    -

    Classes

    - -

    -

    @perspect3vism/ad4m / Exports / perspectives/PerspectiveResolver

    -

    Module: perspectives/PerspectiveResolver

    -

    Table of contents

    -

    Classes

    - -

    Variables

    - -

    Variables

    - -

    Const testLink: LinkExpression

    -
    Defined in
    -

    perspectives/PerspectiveResolver.ts:9

    -

    -

    @perspect3vism/ad4m / Exports / runtime/RuntimeClient

    -

    Module: runtime/RuntimeClient

    -

    Table of contents

    -

    Classes

    - -

    Type Aliases

    - -

    Type Aliases

    -

    ExceptionCallback

    -

    Ƭ ExceptionCallback: (info: ExceptionInfo) => null

    -
    Type declaration
    -

    ▸ (info): null

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    infoExceptionInfo
    -
    Returns
    -

    null

    -
    Defined in
    -

    runtime/RuntimeClient.ts:21

    -
    -

    MessageCallback

    -

    Ƭ MessageCallback: (message: PerspectiveExpression) => null

    -
    Type declaration
    -

    ▸ (message): null

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    messagePerspectiveExpression
    -
    Returns
    -

    null

    -
    Defined in
    -

    runtime/RuntimeClient.ts:20

    -

    -

    @perspect3vism/ad4m / Exports / runtime/RuntimeResolver

    -

    Module: runtime/RuntimeResolver

    -

    Table of contents

    -

    Classes

    - -

    -

    @perspect3vism/ad4m / Exports / subject/SDNADecorators

    -

    Module: subject/SDNADecorators

    -

    Table of contents

    -

    Classes

    - -

    Functions

    - -

    Functions

    -

    SDNAClass

    -

    SDNAClass(opts): (target: any) => void

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    optsSDNAClassOptions
    -
    Returns
    -

    fn

    -

    ▸ (target): void

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    targetany
    -
    Returns
    -

    void

    -
    Defined in
    -

    subject/SDNADecorators.ts:153

    -
    - -

    addLink(source, predicate, target): PerspectiveAction

    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - -
    NameType
    sourcestring
    predicatestring
    targetstring
    -
    Returns
    -

    PerspectiveAction

    -
    Defined in
    -

    subject/SDNADecorators.ts:12

    -
    - -

    hasLink(predicate): string

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    predicatestring
    -
    Returns
    -

    string

    -
    Defined in
    -

    subject/SDNADecorators.ts:21

    -
    -

    instanceQuery

    -

    instanceQuery(options?): (target: T, key: keyof T, descriptor: PropertyDescriptor) => void

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    options?InstanceQueryParams
    -
    Returns
    -

    fn

    -

    ▸ <T>(target, key, descriptor): void

    -
    Type parameters
    - - - - - - - - - - - -
    Name
    T
    -
    Parameters
    - - - - - - - - - - - - - - - - - - - - - -
    NameType
    targetT
    keykeyof T
    descriptorPropertyDescriptor
    -
    Returns
    -

    void

    -
    Defined in
    -

    subject/SDNADecorators.ts:30

    -
    -

    subjectCollection

    -

    subjectCollection(opts): (target: T, key: keyof T) => void

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    optsCollectionOptions
    -
    Returns
    -

    fn

    -

    ▸ <T>(target, key): void

    -
    Type parameters
    - - - - - - - - - - - -
    Name
    T
    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    targetT
    keykeyof T
    -
    Returns
    -

    void

    -
    Defined in
    -

    subject/SDNADecorators.ts:126

    -
    -

    subjectFlag

    -

    subjectFlag(opts): (target: T, key: keyof T) => void

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    optsFlagOptions
    -
    Returns
    -

    fn

    -

    ▸ <T>(target, key): void

    -
    Type parameters
    - - - - - - - - - - - -
    Name
    T
    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    targetT
    keykeyof T
    -
    Returns
    -

    void

    -
    Defined in
    -

    subject/SDNADecorators.ts:99

    -
    -

    subjectProperty

    -

    subjectProperty(opts): (target: T, key: keyof T) => void

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    optsPropertyOptions
    -
    Returns
    -

    fn

    -

    ▸ <T>(target, key): void

    -
    Type parameters
    - - - - - - - - - - - -
    Name
    T
    -
    Parameters
    - - - - - - - - - - - - - - - - - -
    NameType
    targetT
    keykeyof T
    -
    Returns
    -

    void

    -
    Defined in
    -

    subject/SDNADecorators.ts:80

    -

    -

    @perspect3vism/ad4m / Exports / subject/Subject

    -

    Module: subject/Subject

    -

    Table of contents

    -

    Classes

    - -

    -

    @perspect3vism/ad4m / Exports / subject/util

    -

    Module: subject/util

    -

    Table of contents

    -

    Functions

    - -

    Functions

    -

    capitalize

    -

    capitalize(str): string

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    strstring
    -
    Returns
    -

    string

    -
    Defined in
    -

    subject/util.ts:1

    -
    -

    collectionAdderToName

    -

    collectionAdderToName(adderName): string

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    adderNamestring
    -
    Returns
    -

    string

    -
    Defined in
    -

    subject/util.ts:39

    -
    -

    collectionSetterToName

    -

    collectionSetterToName(adderName): string

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    adderNamestring
    -
    Returns
    -

    string

    -
    Defined in
    -

    subject/util.ts:45

    -
    -

    collectionToAdderName

    -

    collectionToAdderName(collection): string

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    collectionstring
    -
    Returns
    -

    string

    -
    Defined in
    -

    subject/util.ts:34

    -
    -

    collectionToSetterName

    -

    collectionToSetterName(collection): string

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    collectionstring
    -
    Returns
    -

    string

    -
    Defined in
    -

    subject/util.ts:52

    -
    -

    pluralToSingular

    -

    pluralToSingular(plural): string

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    pluralstring
    -
    Returns
    -

    string

    -
    Defined in
    -

    subject/util.ts:23

    -
    -

    propertyNameToSetterName

    -

    propertyNameToSetterName(property): string

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    propertystring
    -
    Returns
    -

    string

    -
    Defined in
    -

    subject/util.ts:6

    -
    -

    setterNameToPropertyName

    -

    setterNameToPropertyName(setter): string

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    setterstring
    -
    Returns
    -

    string

    -
    Defined in
    -

    subject/util.ts:11

    -
    -

    singularToPlural

    -

    singularToPlural(singular): string

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    singularstring
    -
    Returns
    -

    string

    -
    Defined in
    -

    subject/util.ts:15

    -
    -

    stringifyObjectLiteral

    -

    stringifyObjectLiteral(obj): any

    -
    Parameters
    - - - - - - - - - - - - - -
    NameType
    objany
    -
    Returns
    -

    any

    -
    Defined in
    -

    subject/util.ts:57

    -

    -

    @perspect3vism/ad4m / Exports / typeDefs

    -

    Module: typeDefs

    -

    Table of contents

    -

    Variables

    - -

    Variables

    -

    typeDefsString

    -

    Const typeDefsString: ""

    -
    Defined in
    -

    typeDefs.ts:6

    -

    -

    @perspect3vism/ad4m / Exports / unwrapApolloResult

    -

    Module: unwrapApolloResult

    -

    Table of contents

    -

    Functions

    - -

    Functions

    -

    default

    -

    default(result): any

    -
    Parameters
    - - - - - - - - - - - - - - -
    NameType
    resultApolloQueryResult<any> \FetchResult<any, Record<string, any>, Record<string, any>>
    -
    Returns
    -

    any

    -
    Defined in
    -

    unwrapApolloResult.ts:3

    - - -
    - -
    -
    - -
    - - - - - - - - - - -
    - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/concepts.html b/docs/concepts.html deleted file mode 100644 index e5dd5b56b..000000000 --- a/docs/concepts.html +++ /dev/null @@ -1,554 +0,0 @@ - - - - - - Concepts · AD4M Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - -
    -
    v0.1.37
    -
    - - - - - - - -
    - -
    - -
    - - - - - - - - -
    -
    - -
    - -

    AD4M Concepts

    -

    COMING SOON

    -

    Agents

    -

    Languages

    -

    Perspectives

    -

    Neighbourhoods

    -

    Social DNA

    -

    Social Organism

    - - -
    - -
    -
    - -
    - - - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/concepts.md b/docs/concepts.md deleted file mode 100644 index b132086c5..000000000 --- a/docs/concepts.md +++ /dev/null @@ -1,17 +0,0 @@ -# AD4M Concepts -COMING SOON -## Agents -## Languages -## Perspectives -## Neighbourhoods -## Social DNA -## Social Organism - - -* [Concepts](concepts.md) - * [Agents](concepts.md#Agents) - * [Languages](concepts.md#Languages) - * [Perspectives](concepts.md#Perspectives) - * [Neighbourhoods](concepts.md#Neighbourhoods) - * [Social DNA](concepts.md#SocialDNA) - * [Social Organisms](concepts.md#SocialOrganism) \ No newline at end of file diff --git a/docs/gitbook/@honkit/honkit-plugin-highlight/ebook.css b/docs/gitbook/@honkit/honkit-plugin-highlight/ebook.css deleted file mode 100644 index ff94a6690..000000000 --- a/docs/gitbook/@honkit/honkit-plugin-highlight/ebook.css +++ /dev/null @@ -1,96 +0,0 @@ -pre, -code { - /* From highlight.js@10.7.3/styles/tomorrow.css */ - /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ - /* Tomorrow Comment */ - /* Tomorrow Red */ - /* Tomorrow Orange */ - /* Tomorrow Yellow */ - /* Tomorrow Green */ - /* Tomorrow Blue */ - /* Tomorrow Purple */ -} -pre .hljs-comment, -code .hljs-comment, -pre .hljs-quote, -code .hljs-quote { - color: #8e908c; -} -pre .hljs-variable, -code .hljs-variable, -pre .hljs-template-variable, -code .hljs-template-variable, -pre .hljs-tag, -code .hljs-tag, -pre .hljs-name, -code .hljs-name, -pre .hljs-selector-id, -code .hljs-selector-id, -pre .hljs-selector-class, -code .hljs-selector-class, -pre .hljs-regexp, -code .hljs-regexp, -pre .hljs-deletion, -code .hljs-deletion { - color: #c82829; -} -pre .hljs-number, -code .hljs-number, -pre .hljs-built_in, -code .hljs-built_in, -pre .hljs-builtin-name, -code .hljs-builtin-name, -pre .hljs-literal, -code .hljs-literal, -pre .hljs-type, -code .hljs-type, -pre .hljs-params, -code .hljs-params, -pre .hljs-meta, -code .hljs-meta, -pre .hljs-link, -code .hljs-link { - color: #f5871f; -} -pre .hljs-attribute, -code .hljs-attribute { - color: #eab700; -} -pre .hljs-string, -code .hljs-string, -pre .hljs-symbol, -code .hljs-symbol, -pre .hljs-bullet, -code .hljs-bullet, -pre .hljs-addition, -code .hljs-addition { - color: #718c00; -} -pre .hljs-title, -code .hljs-title, -pre .hljs-section, -code .hljs-section { - color: #4271ae; -} -pre .hljs-keyword, -code .hljs-keyword, -pre .hljs-selector-tag, -code .hljs-selector-tag { - color: #8959a8; -} -pre .hljs, -code .hljs { - display: block; - overflow-x: auto; - background: white; - color: #4d4d4c; - padding: 0.5em; -} -pre .hljs-emphasis, -code .hljs-emphasis { - font-style: italic; -} -pre .hljs-strong, -code .hljs-strong { - font-weight: bold; -} diff --git a/docs/gitbook/@honkit/honkit-plugin-highlight/website.css b/docs/gitbook/@honkit/honkit-plugin-highlight/website.css deleted file mode 100644 index 667d0e9f1..000000000 --- a/docs/gitbook/@honkit/honkit-plugin-highlight/website.css +++ /dev/null @@ -1,307 +0,0 @@ -.book .book-body .page-wrapper .page-inner section.normal pre, -.book .book-body .page-wrapper .page-inner section.normal code { - /* From highlight.js@10.7.3/styles/tomorrow.css */ - /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ - /* Tomorrow Comment */ - /* Tomorrow Red */ - /* Tomorrow Orange */ - /* Tomorrow Yellow */ - /* Tomorrow Green */ - /* Tomorrow Blue */ - /* Tomorrow Purple */ -} -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-comment, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-comment, -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-quote, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-quote { - color: #8e908c; -} -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-variable, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-variable, -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-template-variable, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-template-variable, -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-tag, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-tag, -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-name, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-name, -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-id, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-selector-id, -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-class, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-selector-class, -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-regexp, -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-deletion, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-deletion { - color: #c82829; -} -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-number, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-number, -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-built_in, -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-builtin-name, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-builtin-name, -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-literal, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-literal, -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-type, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-type, -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-params, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-params, -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-meta, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-meta, -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-link, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-link { - color: #f5871f; -} -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-attribute { - color: #eab700; -} -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-string, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-string, -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-symbol, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-symbol, -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-bullet, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-bullet, -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-addition, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-addition { - color: #718c00; -} -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-title, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-title, -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-section, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-section { - color: #4271ae; -} -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-keyword, -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-tag, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-selector-tag { - color: #8959a8; -} -.book .book-body .page-wrapper .page-inner section.normal pre .hljs, -.book .book-body .page-wrapper .page-inner section.normal code .hljs { - display: block; - overflow-x: auto; - background: white; - color: #4d4d4c; - padding: 0.5em; -} -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-emphasis, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-emphasis { - font-style: italic; -} -.book .book-body .page-wrapper .page-inner section.normal pre .hljs-strong, -.book .book-body .page-wrapper .page-inner section.normal code .hljs-strong { - font-weight: bold; -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code { - /* From highlight.js@10.7.3/styles/solarized-light.css */ - /* - -Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull - -*/ - /* Solarized Green */ - /* Solarized Cyan */ - /* Solarized Blue */ - /* Solarized Yellow */ - /* Solarized Orange */ - /* Solarized Red */ -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs { - display: block; - overflow-x: auto; - padding: 0.5em; - background: #fdf6e3; - color: #657b83; -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-comment, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-comment, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-quote, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-quote { - color: #93a1a1; -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-keyword, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-tag, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-tag, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-addition, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-addition { - color: #859900; -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-number, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-number, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-string, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-string, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-meta .hljs-meta-string, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-meta .hljs-meta-string, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-literal, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-literal, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-doctag, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-doctag, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-regexp { - color: #2aa198; -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-title, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-title, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-section, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-section, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-name, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-name, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-id, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-id, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-class, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-class { - color: #268bd2; -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-attribute, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-attr, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-attr, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-variable, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-variable, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-template-variable, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-template-variable, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-class .hljs-title, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-class .hljs-title, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-type, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-type { - color: #b58900; -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-symbol, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-symbol, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-bullet, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-bullet, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-subst, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-subst, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-meta, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-meta, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-meta .hljs-keyword, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-meta .hljs-keyword, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-attr, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-attr, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-pseudo, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-pseudo, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-link, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-link { - color: #cb4b16; -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-built_in, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-deletion, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-deletion { - color: #dc322f; -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-formula, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-formula { - background: #eee8d5; -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-emphasis, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-emphasis { - font-style: italic; -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-strong, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-strong { - font-weight: bold; -} -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code { - /* From highlight.js@10.7.3/styles/tomorrow-night-bright.css */ - /* Tomorrow Night Bright Theme */ - /* Original theme - https://github.com/chriskempson/tomorrow-theme */ - /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ - /* Tomorrow Comment */ - /* Tomorrow Red */ - /* Tomorrow Orange */ - /* Tomorrow Yellow */ - /* Tomorrow Green */ - /* Tomorrow Blue */ - /* Tomorrow Purple */ -} -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-comment, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-comment, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-quote, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-quote { - color: #969896; -} -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-variable, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-variable, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-template-variable, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-template-variable, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-tag, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-tag, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-name, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-name, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-id, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-id, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-class, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-class, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-regexp, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-deletion, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-deletion { - color: #d54e53; -} -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-number, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-number, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-built_in, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-builtin-name, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-builtin-name, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-literal, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-literal, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-type, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-type, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-params, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-params, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-meta, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-meta, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-link, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-link { - color: #e78c45; -} -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-attribute { - color: #e7c547; -} -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-string, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-string, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-symbol, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-symbol, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-bullet, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-bullet, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-addition, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-addition { - color: #b9ca4a; -} -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-title, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-title, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-section, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-section { - color: #7aa6da; -} -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-keyword, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-selector-tag, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-selector-tag { - color: #c397d8; -} -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs { - display: block; - overflow-x: auto; - background: black; - color: #eaeaea; - padding: 0.5em; -} -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-emphasis, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-emphasis { - font-style: italic; -} -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-strong, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-strong { - font-weight: bold; -} diff --git a/docs/gitbook/fonts/fontawesome/FontAwesome.otf b/docs/gitbook/fonts/fontawesome/FontAwesome.otf deleted file mode 100644 index d4de13e83..000000000 Binary files a/docs/gitbook/fonts/fontawesome/FontAwesome.otf and /dev/null differ diff --git a/docs/gitbook/fonts/fontawesome/fontawesome-webfont.eot b/docs/gitbook/fonts/fontawesome/fontawesome-webfont.eot deleted file mode 100644 index c7b00d2ba..000000000 Binary files a/docs/gitbook/fonts/fontawesome/fontawesome-webfont.eot and /dev/null differ diff --git a/docs/gitbook/fonts/fontawesome/fontawesome-webfont.svg b/docs/gitbook/fonts/fontawesome/fontawesome-webfont.svg deleted file mode 100644 index 8b66187fe..000000000 --- a/docs/gitbook/fonts/fontawesome/fontawesome-webfont.svg +++ /dev/null @@ -1,685 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/gitbook/fonts/fontawesome/fontawesome-webfont.ttf b/docs/gitbook/fonts/fontawesome/fontawesome-webfont.ttf deleted file mode 100644 index f221e50a2..000000000 Binary files a/docs/gitbook/fonts/fontawesome/fontawesome-webfont.ttf and /dev/null differ diff --git a/docs/gitbook/fonts/fontawesome/fontawesome-webfont.woff b/docs/gitbook/fonts/fontawesome/fontawesome-webfont.woff deleted file mode 100644 index 6e7483cf6..000000000 Binary files a/docs/gitbook/fonts/fontawesome/fontawesome-webfont.woff and /dev/null differ diff --git a/docs/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 b/docs/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 deleted file mode 100644 index 7eb74fd12..000000000 Binary files a/docs/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 and /dev/null differ diff --git a/docs/gitbook/gitbook-plugin-fontsettings/website.css b/docs/gitbook/gitbook-plugin-fontsettings/website.css deleted file mode 100644 index 26591fe81..000000000 --- a/docs/gitbook/gitbook-plugin-fontsettings/website.css +++ /dev/null @@ -1,291 +0,0 @@ -/* - * Theme 1 - */ -.color-theme-1 .dropdown-menu { - background-color: #111111; - border-color: #7e888b; -} -.color-theme-1 .dropdown-menu .dropdown-caret .caret-inner { - border-bottom: 9px solid #111111; -} -.color-theme-1 .dropdown-menu .buttons { - border-color: #7e888b; -} -.color-theme-1 .dropdown-menu .button { - color: #afa790; -} -.color-theme-1 .dropdown-menu .button:hover { - color: #73553c; -} -/* - * Theme 2 - */ -.color-theme-2 .dropdown-menu { - background-color: #2d3143; - border-color: #272a3a; -} -.color-theme-2 .dropdown-menu .dropdown-caret .caret-inner { - border-bottom: 9px solid #2d3143; -} -.color-theme-2 .dropdown-menu .buttons { - border-color: #272a3a; -} -.color-theme-2 .dropdown-menu .button { - color: #62677f; -} -.color-theme-2 .dropdown-menu .button:hover { - color: #f4f4f5; -} -.book .book-header .font-settings .font-enlarge { - line-height: 30px; - font-size: 1.4em; -} -.book .book-header .font-settings .font-reduce { - line-height: 30px; - font-size: 1em; -} -.book.color-theme-1 .book-body { - color: #704214; - background: #f3eacb; -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section { - background: #f3eacb; -} -.book.color-theme-2 .book-body { - color: #bdcadb; - background: #1c1f2b; -} -.book.color-theme-2 .book-body .page-wrapper .page-inner section { - background: #1c1f2b; -} -.book.font-size-0 .book-body .page-inner section { - font-size: 1.2rem; -} -.book.font-size-1 .book-body .page-inner section { - font-size: 1.4rem; -} -.book.font-size-2 .book-body .page-inner section { - font-size: 1.6rem; -} -.book.font-size-3 .book-body .page-inner section { - font-size: 2.2rem; -} -.book.font-size-4 .book-body .page-inner section { - font-size: 4rem; -} -.book.font-family-0 { - font-family: Georgia, serif; -} -.book.font-family-1 { - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal { - color: #704214; -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal a { - color: inherit; -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h1, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h2, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h3, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h4, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h5, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h6 { - color: inherit; -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h1, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h2 { - border-color: inherit; -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h6 { - color: inherit; -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal hr { - background-color: inherit; -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal blockquote { - border-color: inherit; -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code { - background: #fdf6e3; - color: #657b83; - border-color: #f8df9c; -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal .highlight { - background-color: inherit; -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table th, -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table td { - border-color: #f5d06c; -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table tr { - color: inherit; - background-color: #fdf6e3; - border-color: #444444; -} -.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table tr:nth-child(2n) { - background-color: #fbeecb; -} -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal { - color: #bdcadb; -} -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal a { - color: #3eb1d0; -} -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h1, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h2, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h3, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h4, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h5, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h6 { - color: #fffffa; -} -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h1, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h2 { - border-color: #373b4e; -} -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h6 { - color: #373b4e; -} -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal hr { - background-color: #373b4e; -} -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal blockquote { - border-color: #373b4e; -} -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code { - color: #9dbed8; - background: #2d3143; - border-color: #2d3143; -} -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal .highlight { - background-color: #282a39; -} -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table th, -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table td { - border-color: #3b3f54; -} -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table tr { - color: #b6c2d2; - background-color: #2d3143; - border-color: #3b3f54; -} -.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table tr:nth-child(2n) { - background-color: #35394b; -} -.book.color-theme-1 .book-header { - color: #afa790; - background: transparent; -} -.book.color-theme-1 .book-header .btn { - color: #afa790; -} -.book.color-theme-1 .book-header .btn:hover { - color: #73553c; - background: none; -} -.book.color-theme-1 .book-header h1 { - color: #704214; -} -.book.color-theme-2 .book-header { - color: #7e888b; - background: transparent; -} -.book.color-theme-2 .book-header .btn { - color: #3b3f54; -} -.book.color-theme-2 .book-header .btn:hover { - color: #fffff5; - background: none; -} -.book.color-theme-2 .book-header h1 { - color: #bdcadb; -} -.book.color-theme-1 .book-body .navigation { - color: #afa790; -} -.book.color-theme-1 .book-body .navigation:hover { - color: #73553c; -} -.book.color-theme-2 .book-body .navigation { - color: #383f52; -} -.book.color-theme-2 .book-body .navigation:hover { - color: #fffff5; -} -/* - * Theme 1 - */ -.book.color-theme-1 .book-summary { - color: #afa790; - background: #111111; - border-right: 1px solid rgba(0, 0, 0, 0.07); -} -.book.color-theme-1 .book-summary .book-search { - background: transparent; -} -.book.color-theme-1 .book-summary .book-search input, -.book.color-theme-1 .book-summary .book-search input:focus { - border: 1px solid transparent; -} -.book.color-theme-1 .book-summary ul.summary li.divider { - background: #7e888b; - box-shadow: none; -} -.book.color-theme-1 .book-summary ul.summary li i.fa-check { - color: #33cc33; -} -.book.color-theme-1 .book-summary ul.summary li.done > a { - color: #877f6a; -} -.book.color-theme-1 .book-summary ul.summary li a, -.book.color-theme-1 .book-summary ul.summary li span { - color: #877f6a; - background: transparent; - font-weight: normal; -} -.book.color-theme-1 .book-summary ul.summary li.active > a, -.book.color-theme-1 .book-summary ul.summary li a:hover { - color: #704214; - background: transparent; - font-weight: normal; -} -/* - * Theme 2 - */ -.book.color-theme-2 .book-summary { - color: #bcc1d2; - background: #2d3143; - border-right: none; -} -.book.color-theme-2 .book-summary .book-search { - background: transparent; -} -.book.color-theme-2 .book-summary .book-search input, -.book.color-theme-2 .book-summary .book-search input:focus { - border: 1px solid transparent; -} -.book.color-theme-2 .book-summary ul.summary li.divider { - background: #272a3a; - box-shadow: none; -} -.book.color-theme-2 .book-summary ul.summary li i.fa-check { - color: #33cc33; -} -.book.color-theme-2 .book-summary ul.summary li.done > a { - color: #62687f; -} -.book.color-theme-2 .book-summary ul.summary li a, -.book.color-theme-2 .book-summary ul.summary li span { - color: #c1c6d7; - background: transparent; - font-weight: 600; -} -.book.color-theme-2 .book-summary ul.summary li.active > a, -.book.color-theme-2 .book-summary ul.summary li a:hover { - color: #f4f4f5; - background: #252737; - font-weight: 600; -} diff --git a/docs/gitbook/gitbook-plugin-search/search.css b/docs/gitbook/gitbook-plugin-search/search.css deleted file mode 100644 index 5d47a3ce9..000000000 --- a/docs/gitbook/gitbook-plugin-search/search.css +++ /dev/null @@ -1,35 +0,0 @@ -/* - This CSS only styled the search results section, not the search input - It defines the basic interraction to hide content when displaying results, etc -*/ -#book-search-results .search-results { - display: none; -} -#book-search-results .search-results ul.search-results-list { - list-style-type: none; - padding-left: 0; -} -#book-search-results .search-results ul.search-results-list li { - margin-bottom: 1.5rem; - padding-bottom: 0.5rem; - /* Highlight results */ -} -#book-search-results .search-results ul.search-results-list li p em { - background-color: rgba(255, 220, 0, 0.4); - font-style: normal; -} -#book-search-results .search-results .no-results { - display: none; -} -#book-search-results.open .search-results { - display: block; -} -#book-search-results.open .search-noresults { - display: none; -} -#book-search-results.no-results .search-results .has-results { - display: none; -} -#book-search-results.no-results .search-results .no-results { - display: block; -} diff --git a/docs/gitbook/images/apple-touch-icon-precomposed-152.png b/docs/gitbook/images/apple-touch-icon-precomposed-152.png deleted file mode 100644 index 8e6972b5c..000000000 Binary files a/docs/gitbook/images/apple-touch-icon-precomposed-152.png and /dev/null differ diff --git a/docs/gitbook/images/favicon.ico b/docs/gitbook/images/favicon.ico deleted file mode 100644 index e94c1d6ad..000000000 Binary files a/docs/gitbook/images/favicon.ico and /dev/null differ diff --git a/docs/gitbook/style.css b/docs/gitbook/style.css deleted file mode 100644 index 7f8c5abe7..000000000 --- a/docs/gitbook/style.css +++ /dev/null @@ -1,10 +0,0 @@ -/*! normalize.css v2.1.0 | MIT License | git.io/normalize */article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,video{display:inline-block}audio:not([controls]){display:none;height:0}[hidden]{display:none}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:focus{outline:thin dotted}a:active,a:hover{outline:0}h1{font-size:2em;margin:.67em 0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}mark{background:#ff0;color:#000}code,kbd,pre,samp{font-family:monospace,serif;font-size:1em}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:0}fieldset{border:1px solid silver;margin:0 2px;padding:.35em .625em .75em}legend{border:0;padding:0}button,input,select,textarea{font-family:inherit;font-size:100%;margin:0}button,input{line-height:normal}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}textarea{overflow:auto;vertical-align:top}table{border-collapse:collapse;border-spacing:0}.link-inherit{color:inherit}.link-inherit:focus,.link-inherit:hover{color:inherit}.hidden{display:none}.alert{padding:15px;margin-bottom:20px;color:#444;background:#eee;border-bottom:5px solid #ddd}.alert-success{background:#dff0d8;border-color:#d6e9c6;color:#3c763d}.alert-info{background:#d9edf7;border-color:#bce8f1;color:#31708f}.alert-danger{background:#f2dede;border-color:#ebccd1;color:#a94442}.alert-warning{background:#fcf8e3;border-color:#faebcc;color:#8a6d3b}/*! - * Font Awesome 4.6.3 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome/fontawesome-webfont.eot?v=4.6.3);src:url(fonts/fontawesome/fontawesome-webfont.eot?#iefix&v=4.6.3) format('embedded-opentype'),url(fonts/fontawesome/fontawesome-webfont.woff2?v=4.6.3) format('woff2'),url(fonts/fontawesome/fontawesome-webfont.woff?v=4.6.3) format('woff'),url(fonts/fontawesome/fontawesome-webfont.ttf?v=4.6.3) format('truetype'),url(fonts/fontawesome/fontawesome-webfont.svg?v=4.6.3#fontawesomeregular) format('svg');font-weight:400;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-chain-broken:before,.fa-unlink:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-bed:before,.fa-hotel:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-y-combinator:before,.fa-yc:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-television:before,.fa-tv:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:"\f2a3"}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-sign-language:before,.fa-signing:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}/*! - * Preboot v2 - * git+https://github.com/mdo/preboot.git#4aab4edd85f076d50609cbe28e4fe66cc0771701 - * - * Open sourced under MIT license by @mdo. - * Some variables and mixins from Bootstrap (Apache 2 license). - */.book-langs-index{width:100%;height:100%;padding:40px 0;margin:0;overflow:auto}@media (max-width:600px){.book-langs-index{padding:0}}.book-langs-index .inner{max-width:600px;width:100%;margin:0 auto;padding:30px;background:#fff;border-radius:3px}.book-langs-index .inner h3{margin:0}.book-langs-index .inner .languages{list-style:none;padding:20px 30px;margin-top:20px;border-top:1px solid #eee}.book-langs-index .inner .languages:after,.book-langs-index .inner .languages:before{content:" ";display:table;line-height:0}.book-langs-index .inner .languages:after{clear:both}.book-langs-index .inner .languages li{width:50%;float:left;padding:10px 5px;font-size:16px}@media (max-width:600px){.book-langs-index .inner .languages li{width:100%;max-width:100%}}.book-header{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;overflow:visible;height:50px;padding:0 8px;z-index:2;font-size:.85em;color:#7e888b;background:0 0}.book-header .btn{display:block;height:50px;padding:0 15px;border-bottom:none;color:#ccc;text-transform:uppercase;line-height:50px;-webkit-box-shadow:none!important;box-shadow:none!important;position:relative;font-size:14px}.book-header .btn:hover{position:relative;text-decoration:none;color:#444;background:0 0}.book-header .btn:focus{outline:0}.book-header h1{margin:0;font-size:20px;font-weight:200;text-align:center;line-height:50px;opacity:0;-webkit-transition:opacity ease .4s;-moz-transition:opacity ease .4s;-o-transition:opacity ease .4s;transition:opacity ease .4s;padding-left:200px;padding-right:200px;-webkit-transition:opacity .2s ease;-moz-transition:opacity .2s ease;-o-transition:opacity .2s ease;transition:opacity .2s ease;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-header h1 a,.book-header h1 a:hover{color:inherit;text-decoration:none}@media screen and (max-width:1000px){.book-header h1{display:none}}.book-header h1 i{display:none}.book-header:hover h1{opacity:1}.book.is-loading .book-header h1 i{display:inline-block}.book.is-loading .book-header h1 a{display:none}@media print{.book-header{display:none}}.dropdown{position:relative}.dropdown-menu{position:absolute;top:100%;left:0;z-index:100;display:none;float:left;min-width:160px;padding:0;margin:2px 0 0;list-style:none;font-size:14px;background-color:#fafafa;border:1px solid rgba(0,0,0,.07);border-radius:1px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);background-clip:padding-box}.dropdown-menu.open{display:block}.dropdown-menu.dropdown-left{left:auto;right:4%}.dropdown-menu.dropdown-left .dropdown-caret{right:14px;left:auto}.dropdown-menu .dropdown-caret{position:absolute;top:-8px;left:14px;width:18px;height:10px;float:left;overflow:hidden}.dropdown-menu .dropdown-caret .caret-outer{position:absolute;border-left:9px solid transparent;border-right:9px solid transparent;border-bottom:9px solid rgba(0,0,0,.1);height:auto;left:0;top:0;width:auto;display:inline-block;margin-left:-1px}.dropdown-menu .dropdown-caret .caret-inner{position:absolute;display:inline-block;margin-top:-1px;top:0;top:1px;border-left:9px solid transparent;border-right:9px solid transparent;border-bottom:9px solid #fafafa}.dropdown-menu .buttons{border-bottom:1px solid rgba(0,0,0,.07)}.dropdown-menu .buttons:after,.dropdown-menu .buttons:before{content:" ";display:table;line-height:0}.dropdown-menu .buttons:after{clear:both}.dropdown-menu .buttons:last-child{border-bottom:none}.dropdown-menu .buttons .button{border:0;background-color:transparent;color:#a6a6a6;width:100%;text-align:center;float:left;line-height:1.42857143;padding:8px 4px}.dropdown-menu .buttons .button:hover{color:#444}.dropdown-menu .buttons .button:focus,.dropdown-menu .buttons .button:hover{outline:0}.dropdown-menu .buttons .button.size-2{width:50%}.dropdown-menu .buttons .button.size-3{width:33%}.book-summary{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;position:absolute;top:0;left:-300px;bottom:0;z-index:1;overflow-y:auto;width:300px;color:#364149;background:#fafafa;border-right:1px solid rgba(0,0,0,.07);-webkit-transition:left 250ms ease;-moz-transition:left 250ms ease;-o-transition:left 250ms ease;transition:left 250ms ease}.book-summary ul.summary{list-style:none;margin:0;padding:0;-webkit-transition:top .5s ease;-moz-transition:top .5s ease;-o-transition:top .5s ease;transition:top .5s ease}.book-summary ul.summary li{list-style:none}.book-summary ul.summary li.header{padding:10px 15px;padding-top:20px;text-transform:uppercase;color:#939da3}.book-summary ul.summary li.divider{height:1px;margin:7px 0;overflow:hidden;background:rgba(0,0,0,.07)}.book-summary ul.summary li i.fa-check{display:none;position:absolute;right:9px;top:16px;font-size:9px;color:#3c3}.book-summary ul.summary li.done>a{color:#364149;font-weight:400}.book-summary ul.summary li.done>a i{display:inline}.book-summary ul.summary li a,.book-summary ul.summary li span{display:block;padding:10px 15px;border-bottom:none;color:#364149;background:0 0;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;position:relative}.book-summary ul.summary li a:hover{text-decoration:underline}.book-summary ul.summary li a:focus{outline:0}.book-summary ul.summary li.active>a{color:#008cff;background:0 0;text-decoration:none}.book-summary ul.summary li ul{padding-left:20px}@media screen and (max-width:600px){.book-summary{width:calc(100% - 60px);bottom:0;left:-100%}}.book.with-summary .book-summary{left:0}.book.without-animation .book-summary{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;transition:none!important}@media print{.book-summary{display:none}.book-body{left:0}}.book{position:relative;width:100%;height:100%}@media screen and (min-width:600px){.book.with-summary .book-body{left:300px}}@media screen and (max-width:600px){.book.with-summary{overflow:hidden}.book.with-summary .book-body{-webkit-transform:translate(calc(100% - 60px),0);-moz-transform:translate(calc(100% - 60px),0);-ms-transform:translate(calc(100% - 60px),0);-o-transform:translate(calc(100% - 60px),0);transform:translate(calc(100% - 60px),0)}}.book.without-animation .book-body{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;transition:none!important}.book-body{position:absolute;top:0;right:0;left:0;bottom:0;overflow-y:auto;color:#000;background:#fff;-webkit-transition:left 250ms ease;-moz-transition:left 250ms ease;-o-transition:left 250ms ease;transition:left 250ms ease}.book-body .body-inner{position:absolute;top:0;right:0;left:0;bottom:0;overflow-y:auto}@media screen and (max-width:1240px){.book-body{-webkit-transition:-webkit-transform 250ms ease;-moz-transition:-moz-transform 250ms ease;-o-transition:-o-transform 250ms ease;transition:transform 250ms ease;padding-bottom:20px}.book-body .body-inner{position:static;min-height:calc(100% - 50px)}}.honkit-cloak{display:none}@media print{.book{position:static}.book-body{position:static}.book-body .body-inner{position:static}}.page-wrapper{position:relative;outline:0}.page-inner{position:relative;max-width:800px;margin:0 auto;padding:20px 15px 40px 15px}.page-inner .btn-group .btn{border-radius:0;background:#eee;border:0}.buttons:after,.buttons:before{content:" ";display:table;line-height:0}.buttons:after{clear:both}.button{border:0;background-color:transparent;background:#eee;color:#666;width:100%;text-align:center;float:left;line-height:1.42857143;padding:8px 4px}.button:hover{color:#444}.button:focus,.button:hover{outline:0}.button.size-2{width:50%}.button.size-3{width:33%}.markdown-section{display:block;word-wrap:break-word;overflow:hidden;color:#333;line-height:1.7;text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%}.markdown-section *{box-sizing:border-box;-webkit-box-sizing:border-box;font-size:inherit}.markdown-section>:first-child{margin-top:0!important}.markdown-section>:last-child{margin-bottom:0!important}.markdown-section blockquote,.markdown-section code,.markdown-section figure,.markdown-section img,.markdown-section pre,.markdown-section table,.markdown-section tr{page-break-inside:avoid}.markdown-section h2,.markdown-section h3,.markdown-section h4,.markdown-section h5,.markdown-section p{orphans:3;widows:3}.markdown-section h1,.markdown-section h2,.markdown-section h3,.markdown-section h4,.markdown-section h5{page-break-after:avoid}.markdown-section b,.markdown-section strong{font-weight:700}.markdown-section em{font-style:italic}.markdown-section blockquote,.markdown-section dl,.markdown-section ol,.markdown-section p,.markdown-section table,.markdown-section ul{margin-top:0;margin-bottom:.85em}.markdown-section a{color:#4183c4;text-decoration:none;background:0 0}.markdown-section a:active,.markdown-section a:focus,.markdown-section a:hover{outline:0;text-decoration:underline}.markdown-section img{border:0;max-width:100%}.markdown-section hr{height:4px;padding:0;margin:1.7em 0;overflow:hidden;background-color:#e7e7e7;border:none}.markdown-section hr:after,.markdown-section hr:before{display:table;content:" "}.markdown-section hr:after{clear:both}.markdown-section h1,.markdown-section h2,.markdown-section h3,.markdown-section h4,.markdown-section h5,.markdown-section h6{margin-top:1.275em;margin-bottom:.85em;font-weight:700}.markdown-section h1{font-size:2em}.markdown-section h2{font-size:1.75em}.markdown-section h3{font-size:1.5em}.markdown-section h4{font-size:1.25em}.markdown-section h5{font-size:1em}.markdown-section h6{font-size:1em;color:#777}.markdown-section code,.markdown-section pre{font-family:Consolas,"Liberation Mono",Menlo,Courier,monospace;direction:ltr;margin:0;padding:0;border:none;color:inherit}.markdown-section pre{overflow:auto;word-wrap:normal;margin:0;padding:.85em 1em;margin-bottom:1.275em;background:#f7f7f7}.markdown-section pre>code{display:inline;max-width:initial;padding:0;margin:0;overflow:initial;line-height:inherit;font-size:.85em;white-space:pre;background:0 0}.markdown-section pre>code:after,.markdown-section pre>code:before{content:normal}.markdown-section code{padding:.2em;margin:0;font-size:.85em;background-color:#f7f7f7}.markdown-section code:after,.markdown-section code:before{letter-spacing:-.2em;content:"\00a0"}.markdown-section table{display:table;width:100%;border-collapse:collapse;border-spacing:0;overflow:auto}.markdown-section table td,.markdown-section table th{padding:6px 13px;border:1px solid #ddd}.markdown-section table tr{background-color:#fff;border-top:1px solid #ccc}.markdown-section table tr:nth-child(2n){background-color:#f8f8f8}.markdown-section table th{font-weight:700}.markdown-section ol,.markdown-section ul{padding:0;margin:0;margin-bottom:.85em;padding-left:2em}.markdown-section ol ol,.markdown-section ol ul,.markdown-section ul ol,.markdown-section ul ul{margin-top:0;margin-bottom:0}.markdown-section ol ol{list-style-type:lower-roman}.markdown-section blockquote{margin:0;margin-bottom:.85em;padding:0 15px;color:#858585;border-left:4px solid #e5e5e5}.markdown-section blockquote:first-child{margin-top:0}.markdown-section blockquote:last-child{margin-bottom:0}.markdown-section dl{padding:0}.markdown-section dl dt{padding:0;margin-top:.85em;font-style:italic;font-weight:700}.markdown-section dl dd{padding:0 .85em;margin-bottom:.85em}.markdown-section dd{margin-left:0}.markdown-section .glossary-term{cursor:help;text-decoration:underline}.navigation{position:absolute;top:50px;bottom:0;margin:0;max-width:150px;min-width:90px;display:flex;justify-content:center;align-content:center;flex-direction:column;font-size:40px;color:#ccc;text-align:center;-webkit-transition:all 350ms ease;-moz-transition:all 350ms ease;-o-transition:all 350ms ease;transition:all 350ms ease}.navigation:hover{text-decoration:none;color:#444}.navigation.navigation-next{right:0}.navigation.navigation-prev{left:0}@media screen and (max-width:1240px){.navigation{position:static;top:auto;max-width:50%;width:50%;display:inline-block;float:left}.navigation.navigation-unique{max-width:100%;width:100%}}@media print{.navigation{display:none}}#book-search-input{padding:6px;background:0 0;transition:top .5s ease;background:#fff;border-bottom:1px solid rgba(0,0,0,.07);border-top:1px solid rgba(0,0,0,.07);margin-bottom:10px;margin-top:-1px}#book-search-input input,#book-search-input input:focus,#book-search-input input:hover{width:100%;background:0 0;border:1px solid transparent;box-shadow:none;outline:0;line-height:22px;padding:7px 7px;color:inherit}#book-search-results{opacity:1}#book-search-results .search-results .search-results-title{text-transform:uppercase;text-align:center;font-weight:200;margin-bottom:35px;opacity:.6}#book-search-results .search-results .has-results .search-results-item{display:block;word-wrap:break-word;overflow:hidden;color:#333;line-height:1.7;text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%}#book-search-results .search-results .has-results .search-results-item *{box-sizing:border-box;-webkit-box-sizing:border-box;font-size:inherit}#book-search-results .search-results .has-results .search-results-item>:first-child{margin-top:0!important}#book-search-results .search-results .has-results .search-results-item>:last-child{margin-bottom:0!important}#book-search-results .search-results .has-results .search-results-item blockquote,#book-search-results .search-results .has-results .search-results-item code,#book-search-results .search-results .has-results .search-results-item figure,#book-search-results .search-results .has-results .search-results-item img,#book-search-results .search-results .has-results .search-results-item pre,#book-search-results .search-results .has-results .search-results-item table,#book-search-results .search-results .has-results .search-results-item tr{page-break-inside:avoid}#book-search-results .search-results .has-results .search-results-item h2,#book-search-results .search-results .has-results .search-results-item h3,#book-search-results .search-results .has-results .search-results-item h4,#book-search-results .search-results .has-results .search-results-item h5,#book-search-results .search-results .has-results .search-results-item p{orphans:3;widows:3}#book-search-results .search-results .has-results .search-results-item h1,#book-search-results .search-results .has-results .search-results-item h2,#book-search-results .search-results .has-results .search-results-item h3,#book-search-results .search-results .has-results .search-results-item h4,#book-search-results .search-results .has-results .search-results-item h5{page-break-after:avoid}#book-search-results .search-results .has-results .search-results-item b,#book-search-results .search-results .has-results .search-results-item strong{font-weight:700}#book-search-results .search-results .has-results .search-results-item em{font-style:italic}#book-search-results .search-results .has-results .search-results-item blockquote,#book-search-results .search-results .has-results .search-results-item dl,#book-search-results .search-results .has-results .search-results-item ol,#book-search-results .search-results .has-results .search-results-item p,#book-search-results .search-results .has-results .search-results-item table,#book-search-results .search-results .has-results .search-results-item ul{margin-top:0;margin-bottom:.85em}#book-search-results .search-results .has-results .search-results-item a{color:#4183c4;text-decoration:none;background:0 0}#book-search-results .search-results .has-results .search-results-item a:active,#book-search-results .search-results .has-results .search-results-item a:focus,#book-search-results .search-results .has-results .search-results-item a:hover{outline:0;text-decoration:underline}#book-search-results .search-results .has-results .search-results-item img{border:0;max-width:100%}#book-search-results .search-results .has-results .search-results-item hr{height:4px;padding:0;margin:1.7em 0;overflow:hidden;background-color:#e7e7e7;border:none}#book-search-results .search-results .has-results .search-results-item hr:after,#book-search-results .search-results .has-results .search-results-item hr:before{display:table;content:" "}#book-search-results .search-results .has-results .search-results-item hr:after{clear:both}#book-search-results .search-results .has-results .search-results-item h1,#book-search-results .search-results .has-results .search-results-item h2,#book-search-results .search-results .has-results .search-results-item h3,#book-search-results .search-results .has-results .search-results-item h4,#book-search-results .search-results .has-results .search-results-item h5,#book-search-results .search-results .has-results .search-results-item h6{margin-top:1.275em;margin-bottom:.85em;font-weight:700}#book-search-results .search-results .has-results .search-results-item h1{font-size:2em}#book-search-results .search-results .has-results .search-results-item h2{font-size:1.75em}#book-search-results .search-results .has-results .search-results-item h3{font-size:1.5em}#book-search-results .search-results .has-results .search-results-item h4{font-size:1.25em}#book-search-results .search-results .has-results .search-results-item h5{font-size:1em}#book-search-results .search-results .has-results .search-results-item h6{font-size:1em;color:#777}#book-search-results .search-results .has-results .search-results-item code,#book-search-results .search-results .has-results .search-results-item pre{font-family:Consolas,"Liberation Mono",Menlo,Courier,monospace;direction:ltr;margin:0;padding:0;border:none;color:inherit}#book-search-results .search-results .has-results .search-results-item pre{overflow:auto;word-wrap:normal;margin:0;padding:.85em 1em;margin-bottom:1.275em;background:#f7f7f7}#book-search-results .search-results .has-results .search-results-item pre>code{display:inline;max-width:initial;padding:0;margin:0;overflow:initial;line-height:inherit;font-size:.85em;white-space:pre;background:0 0}#book-search-results .search-results .has-results .search-results-item pre>code:after,#book-search-results .search-results .has-results .search-results-item pre>code:before{content:normal}#book-search-results .search-results .has-results .search-results-item code{padding:.2em;margin:0;font-size:.85em;background-color:#f7f7f7}#book-search-results .search-results .has-results .search-results-item code:after,#book-search-results .search-results .has-results .search-results-item code:before{letter-spacing:-.2em;content:"\00a0"}#book-search-results .search-results .has-results .search-results-item table{display:table;width:100%;border-collapse:collapse;border-spacing:0;overflow:auto}#book-search-results .search-results .has-results .search-results-item table td,#book-search-results .search-results .has-results .search-results-item table th{padding:6px 13px;border:1px solid #ddd}#book-search-results .search-results .has-results .search-results-item table tr{background-color:#fff;border-top:1px solid #ccc}#book-search-results .search-results .has-results .search-results-item table tr:nth-child(2n){background-color:#f8f8f8}#book-search-results .search-results .has-results .search-results-item table th{font-weight:700}#book-search-results .search-results .has-results .search-results-item ol,#book-search-results .search-results .has-results .search-results-item ul{padding:0;margin:0;margin-bottom:.85em;padding-left:2em}#book-search-results .search-results .has-results .search-results-item ol ol,#book-search-results .search-results .has-results .search-results-item ol ul,#book-search-results .search-results .has-results .search-results-item ul ol,#book-search-results .search-results .has-results .search-results-item ul ul{margin-top:0;margin-bottom:0}#book-search-results .search-results .has-results .search-results-item ol ol{list-style-type:lower-roman}#book-search-results .search-results .has-results .search-results-item blockquote{margin:0;margin-bottom:.85em;padding:0 15px;color:#858585;border-left:4px solid #e5e5e5}#book-search-results .search-results .has-results .search-results-item blockquote:first-child{margin-top:0}#book-search-results .search-results .has-results .search-results-item blockquote:last-child{margin-bottom:0}#book-search-results .search-results .has-results .search-results-item dl{padding:0}#book-search-results .search-results .has-results .search-results-item dl dt{padding:0;margin-top:.85em;font-style:italic;font-weight:700}#book-search-results .search-results .has-results .search-results-item dl dd{padding:0 .85em;margin-bottom:.85em}#book-search-results .search-results .has-results .search-results-item dd{margin-left:0}#book-search-results .search-results .has-results .search-results-item h3{margin-top:0;margin-bottom:0}#book-search-results .search-results .no-results{padding:40px 0}body.search-loading #book-search-results{opacity:.3}body.with-search .navigation{display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-overflow-scrolling:touch;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:none;-webkit-touch-callout:none;-webkit-font-smoothing:antialiased}a{text-decoration:none}body,html{height:100%}html{font-size:62.5%}body{text-rendering:optimizeLegibility;font-smoothing:antialiased;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;letter-spacing:.2px;text-size-adjust:100%;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%} \ No newline at end of file diff --git a/docs/header.hbs b/docs/header.hbs deleted file mode 100644 index 28a0b4097..000000000 --- a/docs/header.hbs +++ /dev/null @@ -1,3 +0,0 @@ - - -{{>heading-indent}}{{>sig-name}} diff --git a/docs/images/ad4m-connect-1.png b/docs/images/ad4m-connect-1.png deleted file mode 100644 index ddd59a998..000000000 Binary files a/docs/images/ad4m-connect-1.png and /dev/null differ diff --git a/docs/images/ad4m-connect-pop-up.png b/docs/images/ad4m-connect-pop-up.png deleted file mode 100644 index 42d0ad9f5..000000000 Binary files a/docs/images/ad4m-connect-pop-up.png and /dev/null differ diff --git a/docs/index.html b/docs/index.html deleted file mode 100644 index 18cb90a70..000000000 --- a/docs/index.html +++ /dev/null @@ -1,643 +0,0 @@ - - - - - - Introduction · AD4M Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - -
    -
    v0.2.12
    -
    - - - - - - - -
    - -
    - -
    - - - - - - - - -
    -
    - -
    - -

    Introduction

    -

    The name AD4M is an ackronym for -The Agent-Centric Distributed Application Meta-ontology -or just: -Agent-Centric DApp Meta-ontology.

    -

    AD4M is a meta-ontology and a spanning layer - an upper extension to the TCP/IP stack. -But AD4M is also a framework for building apps - mainly social apps, -which renders it an engine (like a game engine) for social networks and collaboration apps. -With its ability to bootstrap specific ontologies from its meta-ontology, -it is a malleable social network itself. -It could be the last one.

    -

    At its core, AD4M is just an idea, -a formalization of a different approach, -a complete set of basic concepts that together span a new paradigm of (distributed) software architecture.

    -

    It tries to capture the quintessence of what really goes on in human communication networks, -in order to shape the digital space around that reality - instead of having the technology dictate how we communicate.

    -

    Putting the human first and starting from a pure agent-centric approach, -AD4M deconstructs the concept of applications and suggests a different principle -for the creation and maintenance of coherence in communication networks: -social contexts (who am I talking to?) and shared subjective meaning, -instead of assumed objectivity implied by monolithic apps that don't differentiate -between agents' different renderings and associations of the same data or event or subject.

    -

    Meta-Ontology

    -

    What really goes on is that agents/humans exchange expressions of various (and evolving) languages -in order to share their partial perspectives/associations with each other and thus convey meaning, -build meaning, make sense of things together.

    -

    AD4M ontology

    -

    In order to suggest a minimal assumption for maximum buy-in, -AD4M carves out this quintessence of what human networks and the internet have in common, -by postulating an ontology of three basic and irreducible concepts:

    -
      -
    • Agents
    • -
    • Languages, and
    • -
    • Perspectives.
    • -
    -

    Languages include Expressions in their definition, and Perspectives include Links (Link Expressions, to be precise).

    -

    Through combination of these basic principles, two important derived concepts -are constructed:

    -
      -
    • Neighbourhoods (i.e. shared Perspectives)
    • -
    • Social Organisms (i.e. fractal, super agents, defined through shared perspectives and shared interaction patterns/social DNA).
    • -
    -

    All these are discussed in detail in the Concepts section.

    -

    Spanning Layer

    -

    Similar to how the IP layer decouples application protocols from physical links -and allows many-to-many combinations between them by capturing the quintessence -of computer networks through the assignment of a unique address to each and -every node, -AD4M integrates DID to assume a unique and independent/sovereign address per human/agent -and decouple application specific semantics from data storage and integrity layers.

    -

    spanning layer

    -

    AD4M is an interoperability layer that sits between an app's UI and the -(centralized or decentralized) back-end components or p2p networks. -Using AD4M, an app can be built without being coupled to a specific storage -technology. -Both app developers and users are able to switch Languages and with them storage -layers while keeping the other components of their running app.

    -

    The sections Getting started and Writing and using Social DNA -cover the uper parts of the stack, -Creating AD4M Languages shows how to wrap existing storage layers -and create new ones as Languages.

    -

    Why?

    -

    The goal is to arrive at scalable and interoparable communication infrastructure -that enables group agency, i.e. super agents (here called Social Organisms) -without imposing a bias on how a group manages itself -(and how it defines its coherence) to have agency -and which technological details or semantic slaings they have chosen.

    -

    This is the real problem we're facing when trying to provide a -technological solution to the web's fractured sense-making.

    -

    AD4M is a sense-making network disguised as app development framework. -AD4M apps don't have to leak any of the AD4M concepts at all, -and they would still be interoperable with each other to the degree -of just being different views/portals into the same agent-centric semantic web.

    -

    AD4M brings Game B qualities to web3.

    -

    It's web B.

    - - -
    - -
    -
    - -
    - - - - - - - - - - -
    - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/language.html b/docs/language.html deleted file mode 100644 index f7d0d7c47..000000000 --- a/docs/language.html +++ /dev/null @@ -1,584 +0,0 @@ - - - - - - Creating AD4M Languages · AD4M Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - -
    -
    v0.2.12
    -
    - - - - - - - -
    - -
    - -
    - - - - - - - - -
    -
    - -
    - -

    Creating AD4M Languages

    -

    COMING SOON

    -

    Languages

    -

    For creating an expression we need to select a language that we create an expression in:

    -
    const languages = await ad4mClient.languages.all()
    -const noteIpfsAddress = languages.find(l => l.name === 'note-ipfs').address
    -
    -

    Creating an Expression

    -
    const exprAddress = await ad4mClient.expression.create("A new text note", noteIpfsAddress)
    -
    - - -
    - -
    -
    - -
    - - - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/next-env.d.ts b/docs/next-env.d.ts new file mode 100644 index 000000000..4f11a03dc --- /dev/null +++ b/docs/next-env.d.ts @@ -0,0 +1,5 @@ +/// +/// + +// NOTE: This file should not be edited +// see https://nextjs.org/docs/basic-features/typescript for more information. diff --git a/docs/next.config.js b/docs/next.config.js new file mode 100644 index 000000000..b3131690e --- /dev/null +++ b/docs/next.config.js @@ -0,0 +1,13 @@ +const withNextra = require("nextra")({ + theme: "nextra-theme-docs", + themeConfig: "./theme.config.tsx", +}); + +module.exports = withNextra({ + images: { unoptimized: true }, + output: "export", + trailingSlash: true, +}); + +// If you have other Next.js configurations, you can pass them as the parameter: +// module.exports = withNextra({ /* other next.js config */ }) diff --git a/docs/out/.nojekyll b/docs/out/.nojekyll new file mode 100644 index 000000000..e69de29bb diff --git a/docs/CNAME b/docs/out/CNAME similarity index 100% rename from docs/CNAME rename to docs/out/CNAME diff --git a/docs/package.json b/docs/package.json new file mode 100644 index 000000000..f3555951c --- /dev/null +++ b/docs/package.json @@ -0,0 +1,26 @@ +{ + "name": "@perspect3vism/ad4m-docs", + "version": "0.5.0", + "description": "Documentation for AD4M", + "license": "CAL-1.0", + "homepage": "./", + "scripts": { + "dev": "next dev", + "start": "next start", + "build": "yarn run typedoc && next build", + "typedoc": "typedoc --options typedoc.json ../core/src" + }, + "dependencies": { + "next": "^13.0.6", + "nextra": "latest", + "nextra-theme-docs": "latest", + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/node": "18.11.10", + "typedoc": "^0.24.4", + "typedoc-plugin-markdown": "^3.15.2", + "typescript": "^4.9.3" + } +} diff --git a/docs/pages/_meta.json b/docs/pages/_meta.json new file mode 100644 index 000000000..a483d9a69 --- /dev/null +++ b/docs/pages/_meta.json @@ -0,0 +1,43 @@ +{ + "--start": { + "type": "separator", + "title": "Getting Started" + }, + "index": "Introduction", + "installation": "Installation", + "quick-start": "Quick Start", + "--essentials": { + "type": "separator", + "title": "Essentials" + }, + "auth": "Authentication", + "agents": "Agents", + "expressions": "Expressions", + "languages": "Languages", + "perspectives": "Perspectives", + "neighbourhoods": "Neighbourhoods", + "social-dna": "Social DNA", + "--build": { + "type": "separator", + "title": "Tutorials" + }, + "make-lang": "Create your own language", + "todo-app": "Create a Todo App", + "--api": { + "type": "separator", + "title": "API Reference" + }, + "jsdoc": "API Reference", + "download": { + "title": "AD4M Website", + "type": "page", + "href": "https://ad4m.dev", + "newWindow": true + }, + "community": { + "title": "Community", + "type": "page", + "href": "https://ad4m.dev/community/", + "newWindow": true + } +} diff --git a/docs/pages/agents.mdx b/docs/pages/agents.mdx new file mode 100644 index 000000000..6d1c6af13 --- /dev/null +++ b/docs/pages/agents.mdx @@ -0,0 +1,25 @@ +# Agents + +In ADAM, individuals are referred to as "Agents" instead of "Users" to +highlight their active role and contribution. They are not simply users who use the +network, but actively participate by operating as nodes, facilitating communication +and enhancing network security. + +In the same way computers have their own unique IP address on the internet, +each agent in ADAM has their own [Decentralized Identifier](https://en.wikipedia.org/wiki/Decentralized_identifier). Users can either use their +existing identity or create a new one: + +```js +await ad4m.agent.generate("Password123"); +``` + +To retrieve your own Decentralized Identifier (DID) you can call `me()` on the AgentClient: + +```js +const { did, perspective } = await ad4m.agent.me(); +``` + +Each Agent also has their own [Perspective](/essentials/perspectives) that can +contain public information about the Agent. + +[Agent class definition](/jsdoc/classes/Agent) diff --git a/docs/pages/auth.mdx b/docs/pages/auth.mdx new file mode 100644 index 000000000..ac1c5fa36 --- /dev/null +++ b/docs/pages/auth.mdx @@ -0,0 +1,53 @@ +# Authentication + +Apps need to be granted capabilities to be able to access your agents data. + +To avoid the complexity of setting up this authentication flow [ad4m-connect](https://github.com/perspect3vism/ad4m/tree/main/connect) +will do all of this for you and just deliver an initialized and usable +[Ad4mClient](/jsdoc/classes/Ad4mClient) object. + +```js +import Ad4mConnect from "@perspect3vism/ad4m-connect"; + +const ui = Ad4mConnect({ + appName: "My First ADAM App", + appDesc: "This is my first app here.", + appDomain: "ad4m.dev", + appIconPath: "https://i.ibb.co/GnqjPJP/icon.png", + capabilities: [{ with: { domain: "*", pointers: ["*"] }, can: ["*"] }], +}); + +// .connect() will show the authentication pop up +ui.connect().then((client) => { + // Save the client after authentication is done +}); +``` + +This will create a popup that takes the agent through the authentication process: + +![ad4m-connect-1](/images/connect.jpg) + +Since all the users's data is stored locally in AD4M Perspectives, +using a new app/UI and granting it access to all or parts of these perspectives +and AD4M functionality is potentially risky. +`ad4m-connect` not only makes it easy for app developers to connect to the users AD4M-executor, +it also provides a recognizable interface/wizard for the user. + +The `capabilities` property must hold a string that defines what capability +(access to which perspectives and interface functions) should be requested. +This example requests all which might a good first step when starting to familiarize +yourself with AD4M, but should be restricted to what you really need for a production release. + +If the user clicks authorize, `ad4m-connect` will connect to the AD4M-executor and request a capability token. +This will make the AD4M launcher bring up its pop-up window: + +![ad4m-connect-pop-up](/images/authorize.jpg) + +Here the user has to confirm the request to their AD4M instance. +Next, AD4M will then show a six-digit random secret code that needs to be entered into the app UI. +That way we have safely established that the network agent initiating the capability request (as seen from +the AD4M-executor) really is the UI the users wants to use. + +Now you are ready to use the AD4MClient to communicate with the agent. + +More info is found in the [docs](https://github.com/perspect3vism/ad4m/tree/main/connect) diff --git a/docs/pages/data-modelling.mdx b/docs/pages/data-modelling.mdx new file mode 100644 index 000000000..1ae0f4835 --- /dev/null +++ b/docs/pages/data-modelling.mdx @@ -0,0 +1 @@ +# Data Modelling diff --git a/docs/pages/expressions.mdx b/docs/pages/expressions.mdx new file mode 100644 index 000000000..dee4682da --- /dev/null +++ b/docs/pages/expressions.mdx @@ -0,0 +1,79 @@ +# Expressions + +In any social network, people need to be able to communicate. +In ADAM, Agents communicate by creating Expressions using [Languages](concepts/#languages): + +```js +const url = await ad4m.expression.create(content, language); +``` + +The resulting URL are identified like this: `://`. + +To ensure authenticity Expressions will be signed by the Agent that created it. Any Agent can then retrieve +the expression, get the data and validate the signature: + +```js +const expression = await ad4m.expression.get(url); +``` + +The content of the `expression` result will look something like this: + +```js +{ + author: "did:key:zQ3shv5VUAbtY5P1jGsPzy7L27FTxeDv2hnhVp9QT3ALNCnQ2", + timestamp: "2023-06-21T14:47:48.935Z", + data: "Hello World!", + language: { + "address": "literal" + }, + proof: { + "valid": true, + "invalid": false + } +} +``` + +## Creating an Expression + +We will go into depth on how to use other languages or how to create your own, but for now let's +use the simplest language that is included in ADAM – the `Literal` language. The `Literal` Language is an AD4M Language without back-end. +It stores JavaScript literals (i.e. strings, numbers and objects) by encoding them into the Expression URLs. + +```ts +const url = await ad4m.expression.create("Hello World!", "literal"); +``` + +When running `create` the data will be created using the language, and automatically signed +by your agent. The result when creating an expression will be a URL formatted like this `://`. + +## Retrieving an Expression + +By using the URL of the expression, you can retrieve it's data: + +```ts +const expression = await ad4m.expression.get(expressionUrl); +``` + +The result will look something like this: + +```json +{ + "author": "did:key:zQ3shv5VUAbtY5P1jGsPzy7L27FTxeDv2hnhVp9QT3ALNCnQ2", + "timestamp": "2023-06-21T14:47:48.935Z", + "data": "Hello World!", + "language": { + "address": "literal" + }, + "proof": { + "valid": true, + "invalid": false + } +} +``` + +For now we have only created something we could call **objective** data. What we mean with this is that +any agent with the URL of the Expression will be able to resolve it. + +In the next chapter we will learn how to organize these expression in something +called [Perspectives](/concepts/#perspectives). These are essentially local graph databases that in +turn can be turned into [Neighbourhoods](/essentials/neighbourhoods) (Shared social spaces). diff --git a/docs/pages/index.mdx b/docs/pages/index.mdx new file mode 100644 index 000000000..fa889af3c --- /dev/null +++ b/docs/pages/index.mdx @@ -0,0 +1,97 @@ +import { Callout } from "nextra-theme-docs"; +import { Tab, Tabs } from "nextra-theme-docs"; + +# Introduction + +## What is ADAM? + +The internet has evolved from creating and sharing simple documents to highly social digital experiences. +Yet, there is still no social infrastructure baked into the fabric of the web. + +The lack of a social protocol has resulted in companies taking the role of building out these social networks +in silos, harvesting and profiting on the content created within these social spaces. + +ADAM tries to solve this problem, by putting agents and their social spaces +at the core of our digital communication. + + + + A person has several user accounts on several + social media networks, creating silos between data, and ownership at the app + level. + + + + An agent participate in several social spaces, and apps ask for permission to + access these spaces – giving ownership to agents and their social spaces. + + + +## Why should I build on ADAM? + +ADAM solves a lot of common challenges when developing social applications: + +- **Cold Start**: When a new social platform has limited content and a small user base, it is challenging to attract users and engagement. By interacting with already existing agents and their social groups, you don't need to onboard users. +- **Authentication**: Authentication is already taken care of, reducing the overload of having to implement authentication flows and user management. +- **Privacy by default**: Each social group in ADAM is it's own private network, making communication private by default. +- **Database management**: ADAM is completely decentralized, hence there is no database to manage, and no infrastructure you need to scale. +- **Interoperability**: You are not locked into using one kind of storage technology, + and you can switch out your tech stack incrementally. With ADAMs Language implementation, you are able to interact with any existing centralized or decentralized system. +- **Smart Contracts without fees**: With ADAMs Social DNA, social spaces can easily add their own small programs (smart contracts) using prolog. + +## How does it work? + +ADAM defines a minimal set of assumptions of what is needed to create **any** type of social application. + +| Definition | Description | +| ---------------------------------------- | ------------------------------------------------------------------ | +| [Agents](/essentials/agents) | The agents (users) in the network. | +| [Languages](/essentials/languages) | The different ways agents can express ideas. | +| [Perspectives](/essentials/perspectives) | The collection of these expressions organized in a meaningful way. | + +Through a combination of these basic principles, two important concepts are constructed: + +| Definition | Description | +| ----------------------------------------- | ----------------------------------------------- | +| [Neighbourhoods](/essentials/agents) | Shared Perspectives. | +| [Social Organisms](/essentials/languages) | A Neighbourhood acting like a collective Agent. | + +Here is a visualization of how these concepts interact with each other: + +![Spanning Layer](/images/spanning-layer.png) + +You can read more about these concepts in the "Essentials" section. + +## How does this differ from Nostr / Bluesky / Mastadon / etc? + +There are many similarities between ADAM and Nostr, Bluesky, and other social protocols, +but there are also some key differences: + +- **Agent-Centric**: Nostr, Mastadon and Bluesky all are federated systems. In + federated systems, there are still servers that control the users access to their data. + In contrast, ADAM is a true P2P network. + +- **Capability grants**: ADAM implements a capability token system. Every app needs to be granted access + to an Agents data, by obtaining a temporary token. At any + time the agent can revoke these tokens in their ADAM instance. On the other hand, + each Nostr app needs to keep the secret key locally. This makes the attack vectors + greater. If an attacker steals the secret key, all the users data could be leaked. + +- **Interoperability**: Languages in ADAM is a powerful concept that makes any Expression an Agent creates resolvable by + another Agent through the URL of that Expression. Having a generic way of resolving data independent of the underlying + protocol makes ADAM interoparable with any kind of centralized, or decentralized system. + +- **Validation rules**: More info coming. + +## Why? + +The goal is to arrive at scalable and interoparable communication infrastructure +that enables **group agency without imposing a bias on how a group manages itself**. + +_This is the real problem we're facing when trying to provide a +technological solution to the web's fractured sense-making._ + +AD4M is a sense-making network disguised as an app development framework. +AD4M apps don't have to leak any of the AD4M concepts at all, +and they would still be interoperable with each other to the degree +of just being different views over the same agent-centric semantic web. diff --git a/docs/pages/installation.mdx b/docs/pages/installation.mdx new file mode 100644 index 000000000..31b71b147 --- /dev/null +++ b/docs/pages/installation.mdx @@ -0,0 +1,24 @@ +# Installation + +System Requirements: + +- Node.js 16.8 or later. +- macOS, Windows (including WSL), and Linux are supported. + +### Install AD4M Launcher + +Download the latest version of the AD4M launcher from +its [GitHub release page](https://github.com/perspect3vism/ad4min/releases) and run/install it. + +After creating an agent, you should see an AD4M system-tray icon which will +bring up an AD4M pop-up window when you click it: + +![ad4min-screenshots](/images/launcher.jpg) + +### Install dependencies in your app + +Install npm dependencies in your project: + +``` +npm install -s @perspect3vism/ad4m @perspect3vism/ad4m-connect +``` diff --git a/docs/pages/languages.mdx b/docs/pages/languages.mdx new file mode 100644 index 000000000..cb4c6b2f9 --- /dev/null +++ b/docs/pages/languages.mdx @@ -0,0 +1,56 @@ +# Languages + +Languages are essentially Node.js modules that encapsulate how to retrieve +and create content. You can think of them as **small edge functions** that are executed on the Agents device and that can communicate with different backends and technologies. + +## Creating a Language + +There are several types of Languages, but let's start with the most common one – an Expression Language. +Let's create a super simple `Readonly` Language that gives you the Open Graph data for a given website. + +```js filename="adapter.js" +import type { + Address, + Expression, + ExpressionAdapter, + ReadonlyLanguage, + LanguageContext, +} from "@perspect3vism/ad4m"; +import PutAdapter from "./putAdapter.js"; +import openGraph from "open-graph-scraper"; + +class PutAdapter implements ReadonlyLanguage { + getAddress(url: string) { + return url; + } +} + +class Adapter implements ExpressionAdapter { + putAdapter: ReadonlyLanguage; + + constructor() { + this.putAdapter = new PutAdapter(); + } + + async get(address: Address): Promise { + const url = address.toString(); + const data = await openGraph({ url }); + return data; + } +} +``` + +```js +import type { LanguageContext, Language} from '@perspect3vism/ad4m' + + +export default function create(context: LanguageContext): Language { + return { + name: 'open-graph', + expressionAdapter: new Adapter(context), + isImmutableExpression: true + } as Language +} +``` + +[Language interface](/jsdoc/interfaces/Language) diff --git a/docs/pages/neighbourhoods.mdx b/docs/pages/neighbourhoods.mdx new file mode 100644 index 000000000..416525b1e --- /dev/null +++ b/docs/pages/neighbourhoods.mdx @@ -0,0 +1,80 @@ +# Neighbourhoods + +Neighbourhoods are essentially just [Perspectives](/perspectives) (graph databases) that are +shared and synced between Agents. + +Every Neighborhood needs to use a **Link Language** to decide what technology it uses to store +the associations (links) between the Expressions. + +Currently, there is one Link Language implemented called [Perspective Diff Sync](https://github.com/perspect3vism/perspective-diff-sync) +based on Holochain: + +```js +const langs = await client.runtime.knownLinkLanguageTemplates(); +console.log(langs[0]); // The uuid of the default Link Language +``` + +## Creating a Neighborhood + +As mentioned before, the Link Language is responsible for storing and synchronizing +the links in a Neighborhood. If we want to avoid storing the links in the same +location as everyone else following this guide, we should create a duplicate of +the language. By giving it a unique ID, we can ensure that the links are saved +in a new and private network: + +```js +const uniqueLinkLanguage = await ad4m.languages.applyTemplateAndPublish( + langs[0], + JSON.stringify({ + uuid: "84a329-77384c-1510fb", + name: "Perspective Diff Sync clone", + }) +); +``` + +With that new Link Language, actually creating the Neighbourhood is simple. +We just have to provide the ID of the perspective we want to upgrade to a +Neighbourhood and the address of the Link Language: + +```js +const meta = new Perspective(); + +const neighbourhoodUrl = await ad4m.neighbourhood.publishFromPerspective( + myNotes.uuid, + uniqueLinkLanguage.address, + meta +); + +console.log(neighbourhoodUrl); // => neighbourhood://Qm123456789abcdef +``` + +The `meta` field is a Perspective that is immutably stored with +the Neighbourhood. It can hold arbitrary meta information about the +Neighbourhood but can technically stay empty, just like we did here. + +## Joining a Neighborhood + +Assume everything above happened on Alice's agent. Alice now shares the Neighbourhood's URL with Bob. +This is what Bob does to join the Neigbourhood: + +```js +const { uuid } = await ad4m.neighbourhood.joinFromUrl(neighbourhoodUrl); + +const sharedNotes = await ad4m.perspective.byUUID(uuid); +``` + +Now Bob can read what used to be Alice's private notes: + +```js +const links = await sharedNotes.get( + new LinkQuery({ + predicate: "sioc://likes", + }) +); + +links.forEach(async (link) => { + const { data: who } = await ad4m.expression.get(link.source); + const { data: what } = await ad4m.expression.get(link.target); + console.log(who, "likes", what); +}); +``` diff --git a/docs/pages/perspectives.mdx b/docs/pages/perspectives.mdx new file mode 100644 index 000000000..5b8804216 --- /dev/null +++ b/docs/pages/perspectives.mdx @@ -0,0 +1,74 @@ +import { Callout } from "nextra-theme-docs"; + +# Perspectives + +A Perspective is essentially a **local graph database** that +contain the associations between [Expressions](/essentials/expressions). + +While Expressions contain "objective data", Perspectives can associate meaning between Expressions +by linking them together. + +## Creating a Perspective + +Creating a new Perspective is easy: + +```ts +const myNotes = ad4m.perspective.add("My private notes"); +``` + +The returning object will be an instance of [PerspectiveProxy](/jsdoc/classes/PerspectiveProxy/) +– which essentially will work as your database instance. + +## Adding a Link + +Perspectives only consist of a collection of **links**, which connect +three Expression URLs: + +- **Subject**: The Expression that you want to store or retrieve information about. +- **Predicate**: Describes the relationship between the subject and the target. +- **Target**: The Expression that is connected to the subject. + +```ts +const link = { + subject: "did:key:zQ3shv5VUAbtY5P1jGsPzy7L27FTxeDv2hnhVp9QT3ALNCnQ2", + predicate: "sioc://likes", + target: "literal://ad4m", +}; + +myNotes.add(link); +``` + +[Perspective class definition](/jsdoc/classes/Agent) + +## Query Links + +We can query all links on a [PerspectiveProxy](/jsdoc/classes/PerspectiveProxy/) using the `get` function: + +```js +const allLinks = await myNotes.get( + new LinkQuery({ predicate: "sioc://likes" }) +); +``` + +What you get back will be an array of [LinkExpressions](/jsdoc/classes/LinkExpression/): + +```json +[ + { + "author": "did:key:zQ3shv5VUAbtY5P1jGsPzy7L27FTxeDv2hnhVp9QT3ALNCnQ2", + "timestamp": "2023-06-21T14:47:48.935Z", + "data": { + "subject": "did:key:zQ3shv5VUAbtY5P1jGsPzy7L27FTxeDv2hnhVp9QT3ALNCnQ2", + "predicate": "sioc://likes", + "target": "literal://ad4m" + }, + "proof": { + "key": "#zQ3shNWd4bg67ktTVg9EMnnrsRjhkH6cRNCjRRxfTaTqBniAf", + "signature": "xxxx" + } + } +] +``` + +Even though this Perspective is not shared (yet) but just our private, local +graph database, we might want to share it as [Neighbourhood](/neighbourhoods). diff --git a/docs/pages/quick-start/_meta.json b/docs/pages/quick-start/_meta.json new file mode 100644 index 000000000..00e5152cb --- /dev/null +++ b/docs/pages/quick-start/_meta.json @@ -0,0 +1,5 @@ +{ + "vanilla": "Vanilla", + "react": "React", + "vue": "Vue" +} diff --git a/docs/pages/quick-start/react.mdx b/docs/pages/quick-start/react.mdx new file mode 100644 index 000000000..2cda56cea --- /dev/null +++ b/docs/pages/quick-start/react.mdx @@ -0,0 +1,3 @@ +# React + +Coming soon! diff --git a/docs/pages/quick-start/react_backup b/docs/pages/quick-start/react_backup new file mode 100644 index 000000000..0d12a443b --- /dev/null +++ b/docs/pages/quick-start/react_backup @@ -0,0 +1,251 @@ +This guide will get you up and running with AD4m and React. + +### Installing + +``` +npm install @perspect3vism/ad4m @perspect3vism/ad4m-connect @ad4m/react +``` + +### Initializing + +Create a new React app and authorize AD4M using [ad4m-connect](https://github.com/perspect3vism/ad4m/tree/dev/connect): + +```jsx filename="App.ts" +import Ad4mConnect from "@perspect3vism/ad4m-connect"; +import { useEffect } from "react"; + +const options = { + appName: "my-ad4m-app", + appDesc: "My AD4M app", + appDomain: "dev.ad4m.connect.example", + appIconPath: "https://i.ibb.co/GnqjPJP/icon.png", + capabilities: [{ with: { domain: "*", pointers: ["*"] }, can: ["*"] }], +}; + +export default function App() { + const ui = Ad4mConnect(options); + + useEffect(() => { + // Connect to ADAM on mount + ui.connect(); + }, []); + + return ( +
    +

    My AD4M APP

    +
    + ); +} +``` + +### Display perspectives + +The above code will display the ad4m connection dialog the first time you run the app, but that's about it. + +Let's fetch and display your [perspectives](/perspectives/) from ad4m using the react helpers. + +To do this we'll also need to save a ref to the AD4m Client returned in `.connect()`. + +```jsx filename="App.ts" {2, 7, 8, 13, 16-18, 22-24} +import Ad4mConnect from "@perspect3vism/ad4m-connect"; +import { useEffect, useState } from "react"; + +const options = {...}; + +export default function App() { + const [client, setClient] = useState(); + const [perspectives, setPerspectives] = useState([]); + + const ui = Ad4mConnect(options); + + useEffect(() => { + Ad4mConnect(options).then(setClient); + }, []); + + useEffect(() => { + client.perspective.all().then(setPerspectives); + }, [client]); + + return ( +
    + {perspectives.map((p) => ( +
  • {p.name}
  • + ))} +
    + ); +} +``` + +### Create perspectives + +If this is your first ADAM app, the list will be empty. Let's create a button that creates a new perspective for us: + +```jsx filename="App.ts" {20-22, 30} +import Ad4mConnect from "@perspect3vism/ad4m-connect"; +import { useEffect, useState } from "react"; + +const options = {...}; + +export default function App() { + const [client, setClient] = useState(); + const [perspectives, setPerspectives] = useState([]); + + const ui = Ad4mConnect(options); + + useEffect(() => { + Ad4mConnect(options).then(setClient); + }, []); + + useEffect(() => { + client.perspective.all().then(setPerspectives); + }, [client]); + + const onCreate = () => { + await client.perspective.add("My new perspective"); + } + + return ( +
    + {perspectives.map((p) => ( +
  • {p.name}
  • + ))} + + +
    + ); +} +``` + +### Creating data + +Let's say we want to create a list of tasks to be completed. + +First, we need a task model. We can use the [SDNA](/social-dna/) helpers to create this: + +```jsx filename="models/Task.ts" +import { SDNAClass, subjectProperty, subjectFlag } from "@perspect3vism/ad4m"; + +@SDNAClass({ + name: "Task", +}) +export default class Task { + @subjectFlag({ + through: "flux://entry_type", + value: "flux://has_task", + }) + type: string; + + @subjectProperty({ + through: "rdf://title", + writable: true, + resolveLanguage: "literal", + }) + title: string; + + @subjectProperty({ + through: "rdf://status", + writable: true, + resolveLanguage: "literal", + }) + done: boolean; +} +``` + +Cool! Now let's clean things up a bit. + +First we'll create a new `PerspectiveDetails` component that takes in the ID of a perspective. In this file we'll use our new Task model to display all tasks in the current perspective: + +```jsx filename="PerspectiveDetails.ts" +import { usePerspective } from "@adam/react"; +import { useEntries } from "@fluxapp/react"; +import Task from "./models/Task"; + +export default function PerspectiveDetails({ id: string }) { + const myPerspective = usePerspective(id); + + const { entries: tasks } = useEntries({ + perspective: myPerspective, + model: Model, + }); + + return ( +
    +

    {myPerspective.name}

    +

    Tasks:

    +
      + {tasks.map((task) => ( +
    • + {task.name} - {task.status} +
    • + ))} +
    +
    + ); +} +``` + +Include the newly created component in our `App.ts` file: + +```jsx filename="App.ts" {4,14} +import Ad4mConnect from "@perspect3vism/ad4m-connect"; +import { useEffect } from "react"; +import { usePerspectives } from "@adam/react"; +import PerspectiveDetails from "/components/PerspectiveDetails"; + +const options = {...}; + +export default function App() { + // ... + + return ( +
    + {myPerspectives.map((p) => ( + + ))} + + +
    + ); +} +``` + +Finally, let's add a simple form to allow us to create new tasks inside PerspectiveDetails: + +```jsx filename="PerspectiveDetails.ts" {1, 8, 15-18, 32-33} +import { useState } from "react"; +import { usePerspective } from "@adam/react"; +import { useEntries } from "@fluxapp/react"; +import Task from "./models/Task"; + +export default function PerspectiveDetails({ id: string }) { + const myPerspective = usePerspective(id); + const [taskName, setTaskName] = useState(""); + + const { entries: tasks } = useEntries({ + perspective, + model: Model, + }); + + function createTask() { + model.create({ title: taskName, status: "incomplete" }); + setTaskName(""); + } + + return ( +
    +

    {myPerspective.name}

    +

    Tasks:

    +
      + {tasks.map((task) => ( +
    • + {task.name} - {task.status} +
    • + ))} +
    + + setTaskName(e.target.value)} /> + +
    + ); +} +``` diff --git a/docs/pages/quick-start/vanilla.mdx b/docs/pages/quick-start/vanilla.mdx new file mode 100644 index 000000000..1d2f65247 --- /dev/null +++ b/docs/pages/quick-start/vanilla.mdx @@ -0,0 +1,3 @@ +# Vanilla JS + +Coming soon! diff --git a/docs/pages/quick-start/vue.mdx b/docs/pages/quick-start/vue.mdx new file mode 100644 index 000000000..2cda56cea --- /dev/null +++ b/docs/pages/quick-start/vue.mdx @@ -0,0 +1,3 @@ +# React + +Coming soon! diff --git a/docs/pages/social-dna.mdx b/docs/pages/social-dna.mdx new file mode 100644 index 000000000..7c05d743c --- /dev/null +++ b/docs/pages/social-dna.mdx @@ -0,0 +1,128 @@ +import { Tab, Tabs } from "nextra-theme-docs"; +import { Callout } from "nextra/components"; + +# Social DNA + +ADAMs goal is to create a communication infrastructure that enables +**group agency without imposing a bias on how a group manages itself**. + +In a social group this could mean many different things like: + +- **Rating systems**: Deciding how a Post or a Comment's rating is calculated. +- **Access rights**: Allowing certain Agents to do certain actions when certain conditions in the graph are met. +- **Shared definitions**: Defining data structures in the graph that have a certain meaning. + +Social DNA enable Neigbourhoods to add shared computer programs that run on the Agents device, +based on the structure of the graph data. Using [Prolog](https://en.wikipedia.org/wiki/Prolog), a +turing complete logical programming language, any kind of alorithm can be run based on the +state of the graph. + +
    + +Quick Intro to Prolog + + +Prolog is a declarative programming language commonly used for logic programming. +It revolves around defining logical facts and rules to solve problems through logical inference. +Here's a super quick introduction to the basics of Prolog with code examples: + +**Facts**: Facts are statements that define relationships or properties. + +```prolog +likes(john, pizza). +``` + +**Rules**: Rules define logical implications or conditions using predicates and logical operators. + +```prolog +likes(john, X) :- pizza(X). +``` + +Variables are denoted with uppercase letters or by starting with an underscore (\_). + +**Queries**: You can ask Prolog queries to find solutions that satisfy a +specific condition or to retrieve information. + +```prolog +?- likes(john, pizza). +``` + +Will return `true` + +
    + +## Creating Social DNA + +Let's say we want to define `top_posts` as any post in the Perspective with **more than 5 likes**. + +First let's create an Perspective, and add a post: + +```js +const myPosts = await ad4m.perspective.add("My Posts"); +const expressionURL = await ad4m.expression.create("My first Post", "literal"); + +myPosts.add({ + source: "ad4m://self", + predicate: "sioc://has_post", + target: expressionURL, +}); +``` + +Then let's use our Agent's DID to say that we like our own post 10 times: + +```js +const { did } = await ad4m.agent.me(); + +for (let i = 0; i < 10; i++) { + myPosts.add({ + source: did, + predicate: "sioc://likes", + target: expressionURL, + }); +} +``` + +Great! Now we have one post with 10 likes in our Perspective. Now let's define what `top_comments` mean +to use in this Perspective: + + + Don't worry if this looks very unfamiliar for now. You will normally either + use AI to write it for you, or you will use some of our abstraction layers to + avoid writing Prolog code yourself. (Think of ORMs vs raw SQL). + + +```prolog filename="top_posts.pl" +top_posts(Post) :- + triple(Source, "sioc://has_post", Post), + link(Source, "sioc://likes", Post, Author, Timestamp), + count_likes(Post, Count), + Count > 5. + +count_likes(Post, Count) :- + findall(_, link(_, "sioc://likes", Post, _, _), Likes), + length(Likes, Count). +``` + +After writing the Prolog definition, you can add the definition as Social DNA to any Perspective: + +```js +perspective.addSDNA(prologCode); +``` + +## Querying the Social DNA + +The Social DNA is now added to the Perspective, and we can easily ask the Perspective +to give us the top comments: + +```js +const res = await perspective.infer( + `top_comments(Source, Target, Author, Timestamp)` +); +``` + +What is interesting here is that the `top_comments` definition could have a different +algorithm in a different Perspective, but the developer wanting to display these comments, would not +need to worry about the actually reasoning behind what `top_comments` actually mean for this +specific Perspective. + +This gives us **complete group agency**! diff --git a/docs/pages/subject-classes.mdx b/docs/pages/subject-classes.mdx new file mode 100644 index 000000000..eda4aa491 --- /dev/null +++ b/docs/pages/subject-classes.mdx @@ -0,0 +1,280 @@ +import { Tab, Tabs } from "nextra-theme-docs"; + +# Subject Classes + +One of the first use cases of Social DNA is for Neigbourhoods to be able to agree that a certain +collection of links represent one thing. + +Consider the following example for Todo definition: + + + + + ```js + @SDNAClass({ + name: "Todo", + }) + export default class Todo { + @subjectProperty({ + through: "rdf://title", + writable: true, + required: true, + resolveLanguage: "literal", + value: "" + }) + title: string; + + @subjectProperty({ + through: "rdf://done", + writable: true, + required: true, + resolveLanguage: "literal", + value: false, + }) + isDone: boolean; + } + ``` + + + + ```prolog + subject_class("Todo", c). + constructor(c, '[ + {action: "addLink", source: "this", predicate: "rdf://title", target: "literal://string:''"}, + {action: "addLink", source: "this", predicate: "rdf://state", target: "literal://boolean:true"} + ]'). + instance(c, Base) :- triple(Base, "rdf://state", *), triple(Base, "rdf://title", *). + + property(c, "title"). + property_resolve(c, "title"). + property_resolve_language(c, "title", "literal"). + property_getter(c, Base, "title", Value) :- triple(Base, "rdf://has_title", Value). + property_setter(c, "title", '[{action: "setSingleTarget", source: "this", predicate: "rdf://has_title", target: "value"}]'). + + property(c, "isDone"). + property_resolve(c, "isDone"). + property_resolve_language(c, "isDone", "literal"). + property_getter(c, Base, "isDone", Value) :- triple(Base, "rdf://done", Value). + property_setter(c, "isDone", '[{action: "setSingleTarget", source: "this", predicate: "rdf://done", target: "value"}]'). + ``` + + + + +It defines a Subject Class called "Todo" with two properties: "state" and "title". The used predicates "subject_class", "property" and "property_getter" etc. enable a generic way for ADAM and UIs to interface with these classes and reflect on their properties. We've developed tooling around Subject Classes that is designed to make it seamless for app developers to leverage this power. With these tools, developers can define and interact with their app-specific ontology based on ADAM's meta-ontology easily, thus ensuring interoperability. + +The concept of Subject Classes shares a close relationship with SHACL shapes, a standard for validating RDF graphs against a set of conditions. Just like SHACL shapes, Subject Classes allow for the definition of triple-based associations which get grouped to form higher-level virtual objects, or "subjects". Tooling for compatibility with SHACL is not implemented yet, but planned. + +This approach provides an ergonomic way for developers to define complex and meaningful relationships within their data. + +Learning prolog to define structure and rules to create SDNA's can be diffcult thats why a4dm comes with decorators that helps convert a class to a SDNA class, there are two ways they can be used Repository & Record implementation. + +## Decorators + +Decorators are needed to create sdna class but not if the snda is already created (NOTE: class signature should match for it to fetch the snda). + +There are 4 Decorators that are needed to create Subject classes. + +## SDNAClass + +Every class must be Decorated using the decorator inorder for it to have the correct subject name. + +Properties: + +Name: Name of the Subject class (When the js class goes through a minfiner it can change the class name so needed this) +subjectProperty +All the properties on the subject class that are not collections should use this decorator to define the property. Atleast one property should be an instance property for the class to function meaning it should define through, initial & required. + +Properties: + +- through: Indicates the predicate for the property +- initial: Initial value for the property (needed to declare the property as a instance/ flag property) +- required: Is the property required (needed to declare the property as a instance/ flag property) +- writable: Is this property writable, also should a setter be generated for this property. +- resolveLanguage: What language should this property use to store itself, defaults to literal language. +- getter: Overrides the default getter, a prolog query. +- setter: Overrides the default setter, a prolog query. + +## subjectFlag + +This decorator simplifies the creation of an instance property. Unlike subjectProperty this is not writable mean once define can't be changed so if you are planning to add an instance property that can be overridden use subjectProperty. + +through: Indicates the predicate for the property +value: Initial value for the property +subjectCollection +This decorator can be used to define collections/ arrays and comes with some additional functions unlike subjectProperty. With this decorator you can set, push & remove items from the collections. + +through: Indicates the predicate for the property +where: +isInstance: You can pass in the subject class directly instead of using a prolog query. +condition: prolog query to add a condition +Vanilla JS way +The above implementation can be writen below as js class using the decorator. + +```js +@SDNAClass({ name: "Todo" }) +class Todo { + @subjectProperty({ + through: "todo://state", + initial: "todo://ready", + writable: true, + required: true, + }) + state: string = ""; + + @subjectProperty({ + through: "todo://has_title", + writable: true, + resolveLanguage: "literal", + }) + title: string = ""; +} +``` + +Generate subject class (): + +```js +// this will write the sdna to the perspective +Todo.generateSDNA(); +``` + +To create a new subject instance: + +```js +// this checks if the sdna was written to the perspective or not and throws an error +// Takes two parameter the SubjectClass & a baseExpression this can be any string +await perspective!.createSubject(new Todo(), root) + +``` + +Get the subject proxy: + +```js +// this checks if the subject instance was created or not and throws an error +// Takes two parameter the a baseExpression this can be any string & SubjectClass +await perspective!.getSubjectProxy(root, new Todo()) +``` + +Check if the instance was created for this subject class + +```js +// this checks if the subject instance was created or not and throws an error +// Takes two parameter the a baseExpression this can be any string & SubjectClass +await perspective!.isSubjectInstance(root, new Todo())) +``` + +To remove a subject instance: + +```js +// this checks if the sdna was written to the perspective or not and throws an error +// Takes two parameter the SubjectClass & a baseExpression this can be any string +await perspective!.removeSubject(new Todo(), root) +``` + +Get all subject proxies for this class: + +```js +await perspective!.getAllSubjectProxies(new Todo()) +``` + +Update properties/ collections: + +Decorating the class will add new functions for each property & collection that can be used to update them. For property it will create new method with set prefix to the property name. ex. title will add setTitle function & for collection it will add 3 functions ex. ingredient will add setIngredient, addIngredient & removeIngredient.. + +```js +const todod = await perspective!.getSubjectProxy(root, new Todo()) +await todo.setTitle("New title"); +``` + +## Repository implementation (move the subjectRepo flux implementation to ad4m) + +### Record implementation + +If the above way of doing thing seems cumbersome, ad4m also implements an Active record implementation for SubjectClasses, which simplfies the whole process. + +All you need is to extend the above class with SubjectEntity. + +```js +@SDNAClass({ name: "Todo" }) +class Todo extends SubjectEntity { + @subjectProperty({ + through: "todo://state", + initial: "todo://ready", + writable: true, + required: true, + }) + state: string = ""; + + @subjectProperty({ + through: "todo://has_title", + writable: true, + resolveLanguage: "literal", + }) + title: string = ""; +} +``` + +Generate subject class (): +This will generate the subject class when you create a new instance of the class automatically so need to call generateSdna anymore. + +```js +const todo = new Todo(perspective, baseExpression); +``` + +To create a new subject instance: + +```js +// this checks if the sdna was written to the perspective or not and throws an error +// Takes two parameter the perspective & a baseExpression this can be any string +const todo = new Todo(perspective, baseExpression); + +// Just call save on the todo object to create a new instance +todo.save(); +``` + +```js +Get the subject proxy: +// this checks if the subject instance was created or not and throws an error +// Takes two parameter the perspective & a baseExpression this can be any string +const todo = new Todo(perspective, baseExpression); + +// Just call get on the todo object to get the instance, this will throw an error if an instance is not found. +await todo.get() +``` + +To remove a subject instance: + +```js +// this checks if the sdna was written to the perspective or not and throws an error +// Takes two parameter the perspective & a baseExpression this can be any string +const todo = new Todo(perspective, baseExpression); + +// Just call delete on the todo object to remove it +await todo.delete(); +``` + +Get all subject proxies for this class: + +```js +// This will get all the instances of the subject class +await Todo.all(); +``` + +Update properties/ collections: + +```js +const todo = new Todo(perspective, baseExpression); +todo.title = "New Title"; + +// Just update the properties that you want to change and than call update +await todo.update(); + +// To update collection you can directly set the property like so +todo.ingredients = ["test1", "test2"]; + +// or you can use pass in an object +todo.ingredients = { + action: "add", // can also be remove + value: "test3", +}; +``` diff --git a/docs/pages/tutorial/1-perspective.mdx b/docs/pages/tutorial/1-perspective.mdx new file mode 100644 index 000000000..9414579f1 --- /dev/null +++ b/docs/pages/tutorial/1-perspective.mdx @@ -0,0 +1,118 @@ +import { Callout } from "nextra-theme-docs"; + +# Tutorial + + + This will get you to a shared Neighbourhood on Holochain in less than 20 + minutes! The code assumes an `ad4m` variable was setup as described in + [Getting Started](/getting-started). + + +## Create a Perspective and add content + +Adding a new perspective is as easy as + +```js +const myPerspective = await ad4m.perspective.add("My new perspective"); +``` + +The returned object is of type [PerspectiveProxy](api.md#class-perspectiveproxy), +which hides all the remote calls to the AD4M executor and can be treated like a +local database object. + +Perspectives are basically local graph databases. +We can query all links on that proxy object with `get`: + +```js +const allLinks = await myPerspective.get(new LinkQuery({})); // => [] +``` + +In this case it should return an empty array since we just created that perspective. + +So let's add something! +With the following code I'm creating an adhoc semantic statement +representing what I think about AD4M... + +```js +import { Literal } from "@perspect3vism/ad4m"; + +const me = await ad4m.agent.me(); +const source = me.did; +const predicate = Literal.from("thinks").toUrl(); +const target = Literal.from("AD4M will be the last social network").toUrl(); + +const linkExpresion = await myPerspective.add({ source, predicate, target }); +``` + +Links consist of 3 URIs pointing to Expressions of Languages. +For this example, we made life easy by using the agent's DID and AD4M's `Literal` Language. + +### Agent DID + +For the source of our link, we got the user's DID URI by first getting +the users [Agent](api.md#class-agent) object with `ad4m.agent.me()`. +That has a DID property and DID URIs are considered valid URIs in AD4M +(they can be looked-up using the Agent bootstrap language which resolves +to the same Agent object we got through `ad4m.agent.me()` - just even if +that agent behind the resolved DID isn't me). + +### Literal + +The `Literal` Language is an AD4M Language without back-end. +It stores JavaScript literals (i.e. strings, numbers and objects) +by encoding them into the Expression URL. +So, + +```js +Literal.from("thinks").toUrl(); +``` + +returns `literal://string:thinks` - which is a valid URI - +and + +```js +Literal.from("AD4M will be the last social network").toUrl(); +``` + +returns `literal://string:AD4M%20will%20be%20the%20last%20social%20network`. +This is basically like URL parameters and let's us get around introducing Languages +before using Perspectives and Links. + +We can decode the URL into a JavaScript literal like so: + +```js +const string = Literal.fromUrl("literal://string:thinks").get(); +// string == 'thinks' +``` + +### LinkExpression + +We have put in a [Link](api.md#class-link) object into `myPerspective.add()` +(`{source, predicate, target}`), +but what this function returns is a [LinkExpression](api.md#class-linkexpression). + +Even though this Perspective is not shared (yet) but just our private, local +graph database, we might want to share it [later](#2-publish-perspective-as-neighbourhood) +as Neighbourhood. +Then, all links added by some agent to their local Perspective will be shared +with the other agents using a LinkLanguage - a Language which defines Expressions +representing Links. That is LinkExpressions. + +Using the [generic Expression template](api.html#expressiongeneric), +LinkExpressions wrap Links with author, timestamp and signature: + +```js +{ + author: "did:key:zQ3shNWd4bg67ktTVg9EMnnrsRjhkH6cRNCjRRxfTaTqBniAf", + timestamp: "Sun Oct 23 2022 15:31:52 GMT+0200 (Central European Summer Time)", + data: { + source: "did:key:zQ3shNWd4bg67ktTVg9EMnnrsRjhkH6cRNCjRRxfTaTqBniAf", + predicate: "literal://string:thinks", + target: "literal://string:AD4M%20will%20be%20the%20last%20social%20network", + }, + proof: { + key: "#zQ3shNWd4bg67ktTVg9EMnnrsRjhkH6cRNCjRRxfTaTqBniAf", + signature: "xxxx", + } +} +``` diff --git a/docs/pages/tutorial/2-neighbourhood-publish.mdx b/docs/pages/tutorial/2-neighbourhood-publish.mdx new file mode 100644 index 000000000..a877af4c5 --- /dev/null +++ b/docs/pages/tutorial/2-neighbourhood-publish.mdx @@ -0,0 +1,87 @@ +# Publish Perspective as Neighbourhood + +The back-bone of a Neighbourhood is a _LinkLanguage_ - a Language that enables the sharing +and thus synchronizing of links (see [LinksAdapter](api.html#linksadapter)). +While there can and will be many different implementations +with different trade-offs and features (like membranes etc.), +there currently is one [fully implemented and Holochain based LinkLanguage with the name _Perspective Diff Sync_](https://github.com/perspect3vism/perspective-diff-sync). + +It is deployed on the current test network (Language Language v0.0.15, included in [current network seed](https://github.com/perspect3vism/ad4m-seeds/blob/main/mainnetSeed.json)) under the address: +`QmeBD9n9Z5yZsegxArToww5zmwtPpojXN6zXJsi7WwMUa8`. + +#### Creating our unique LinkLanguage clone through templating + +But we should not just use this publicly known Language as the back-bone for our new Neighbourhood, +if we don't want to have everybody following this guide end up in the same network. + +So what we want is to use this existing Language as a template and create a new copy with the same code +but different UUID and/name in order to create a fresh space for our new Neighbourhood. + +What parameters can we adjust when using it as template? +Let's have a look at the Language's meta information: + +```js +const socialContextMeta = await ad4m.languages.meta( + "QmeBD9n9Z5yZsegxArToww5zmwtPpojXN6zXJsi7WwMUa8" +); +console.log(socialContextMeta); +``` + +Which should yield something like this: + +``` + { + name: 'Perspective Diff Sync', + address: 'QmeBD9n9Z5yZsegxArToww5zmwtPpojXN6zXJsi7WwMUa8', + description: 'Holochain based LinkLanguage. First full implementation of a LinkLanguage, for collaborative Neighbourhoods where every agent can add links. No membrane. Basic template for all custom Neighbourhoods in this first iteration of the Perspect3vism test network.', + author: 'did:key:zQ3shkkuZLvqeFgHdgZgFMUx8VGkgVWsLA83w2oekhZxoCW2n', + templated: false, + templateSourceLanguageAddress: null, + templateAppliedParams: null, + possibleTemplateParams: [ 'uuid', 'name', 'description' ], + sourceCodeLink: 'https://github.com/perspect3vism/perspective-diff-sync' +} +``` + +The field `possibleTemplateParams` tells us that we can set a `UUID` and override `name` and `description`. +Let's leave description but change the name. +The function `languages.applyTemplateAndPublish()` takes an object as JSON as second parameter like so: + +```js +const uniqueLinkLanguage = await ad4m.languages.applyTemplateAndPublish( + "QmeBD9n9Z5yZsegxArToww5zmwtPpojXN6zXJsi7WwMUa8", + JSON.stringify({ + uuid: "84a329-77384c-1510fb", + name: "Perspective Diff Sync clone for demo Neighbourhood", + }) +); +``` + +This function call has done a lot for us: + +1. It took the source language (first parameter) and made sure we got the code, + i.e. potentially downloading it from the Language of Languages. +2. The provided template parameters have been applied. In the case of a Language using Holochain, it has unpacked the Holochain DNA, changed the DNA variables according to the values given as template parameters and packed the DNA again (not touching the WASM code) +3. The resulting Language was published with meta information showing that it was templated, providing the source hash and template parameters. + +So the new templated Language is ready to be used. + +### Creating the Neighbourhood + +With that new LinkLanguage, actually creating the Neighbourhood is simple. +We just have to provide the id of the perspective we want to upgrade to a +Neighbourhood and the address of the LinkLanguage used for that: + +```js +const meta = new Perspective(); +const neighbourhoodUrl = await ad4m.neighbourhood.publishFromPerspective( + myPerspective.uuid, + uniqueLinkLanguage.address, + meta +); +console.log(neighbourhoodUrl); // => neighbourhood://Qm123456789abcdef +``` + +The `meta` field a (static/snapshotted) Perspective that is immutably stored with +the Neighbourhood. It can hold arbitrary/semantic meta information about the +Neighbourhood but can technically stay empty, just like we did here. diff --git a/docs/pages/tutorial/3-neighbourhood-join.mdx b/docs/pages/tutorial/3-neighbourhood-join.mdx new file mode 100644 index 000000000..3546d79e7 --- /dev/null +++ b/docs/pages/tutorial/3-neighbourhood-join.mdx @@ -0,0 +1,23 @@ +# Joining a Neighbourhood (on another node/agent) + +Assume everything above happened on Alice's agent. +Alice now shares the Neighbourhood's URL with Bob. +This is what Bob does to join the Neigbourhood, access it as a (local) Perspective +and retrieve the Expression Alice created and linked there: + +```js +const joinedNeighbourhood = await ad4m.neighbourhood.joinFromUrl( + neighbourhoodUrl +); +const myPerspective = await ad4m.perspective.byUUID(joinedNeighbourhood.uuid); +const links = await myPerspective.get( + new LinkQuery({ + predicate: Literal.from("thinks").toUrl(), + }) +); +links.forEach(async (link) => { + const who = link.data.source; + const what = Literal.fromUrl(link.data.target).get(); + console.log(who, " thinks that ", what); +}); +``` diff --git a/docs/pages/tutorial/4-change-listener.mdx b/docs/pages/tutorial/4-change-listener.mdx new file mode 100644 index 000000000..cdecf95b7 --- /dev/null +++ b/docs/pages/tutorial/4-change-listener.mdx @@ -0,0 +1,24 @@ +# Listening to Perspective changes + +Perspectives that have been turned into Neighbourhoods are like entangled particles. +Every agent still has their local copy of the Perspective, but a change from any agent +will be shared with all other agents immediately, +resulting in AD4M automatically updating the local Perspective with the changes by +the others. + +Even with Perspectives that are not shared as Neighbourhood, +a different UI could have access to the same Perspective and cause mutations +on it. + +Apps/UIs can simply register a listener function on that +[PerspectiveProxy](api.md#class-perspectiveproxy) object: + +```js +myPerspective.addListener("link-added", (addedLink: LinkExpression) => { + console.log("Got a new link:", addedLink); +}); + +myPerspective.addListener("link-removed", (removedLink: LinkExpression) => { + console.log("A link was removed:", removedLink); +}); +``` diff --git a/docs/public/.nojekyll b/docs/public/.nojekyll new file mode 100644 index 000000000..e69de29bb diff --git a/docs/public/CNAME b/docs/public/CNAME new file mode 100644 index 000000000..74051093b --- /dev/null +++ b/docs/public/CNAME @@ -0,0 +1 @@ +docs.ad4m.dev \ No newline at end of file diff --git a/docs/public/favicon-dark.ico b/docs/public/favicon-dark.ico new file mode 100644 index 000000000..0facb2866 Binary files /dev/null and b/docs/public/favicon-dark.ico differ diff --git a/docs/public/favicon-light.ico b/docs/public/favicon-light.ico new file mode 100644 index 000000000..d4f1ae94a Binary files /dev/null and b/docs/public/favicon-light.ico differ diff --git a/docs-src/images/ad4m-connect-1.png b/docs/public/images/ad4m-connect-1.png similarity index 100% rename from docs-src/images/ad4m-connect-1.png rename to docs/public/images/ad4m-connect-1.png diff --git a/docs-src/images/ad4m-connect-pop-up.png b/docs/public/images/ad4m-connect-pop-up.png similarity index 100% rename from docs-src/images/ad4m-connect-pop-up.png rename to docs/public/images/ad4m-connect-pop-up.png diff --git a/docs/public/images/ad4m-og-card.jpg b/docs/public/images/ad4m-og-card.jpg new file mode 100644 index 000000000..398c9e28f Binary files /dev/null and b/docs/public/images/ad4m-og-card.jpg differ diff --git a/docs-src/ad4m-ontology.png b/docs/public/images/ad4m-ontology.png similarity index 100% rename from docs-src/ad4m-ontology.png rename to docs/public/images/ad4m-ontology.png diff --git a/docs-src/ad4m-spanning-layer.png b/docs/public/images/ad4m-spanning-layer.png similarity index 100% rename from docs-src/ad4m-spanning-layer.png rename to docs/public/images/ad4m-spanning-layer.png diff --git a/docs-src/ad4min-screenshots.png b/docs/public/images/ad4min-screenshots.png similarity index 100% rename from docs-src/ad4min-screenshots.png rename to docs/public/images/ad4min-screenshots.png diff --git a/docs-src/ad4mlogo_green_angle2_colouremblem.png b/docs/public/images/ad4mlogo_green_angle2_colouremblem.png similarity index 100% rename from docs-src/ad4mlogo_green_angle2_colouremblem.png rename to docs/public/images/ad4mlogo_green_angle2_colouremblem.png diff --git a/docs/public/images/authorize.jpg b/docs/public/images/authorize.jpg new file mode 100644 index 000000000..f073ceb42 Binary files /dev/null and b/docs/public/images/authorize.jpg differ diff --git a/docs/public/images/connect.jpg b/docs/public/images/connect.jpg new file mode 100644 index 000000000..16761edd7 Binary files /dev/null and b/docs/public/images/connect.jpg differ diff --git a/docs/public/images/launcher.jpg b/docs/public/images/launcher.jpg new file mode 100644 index 000000000..9440dcbd6 Binary files /dev/null and b/docs/public/images/launcher.jpg differ diff --git a/docs/public/images/logo.svg b/docs/public/images/logo.svg new file mode 100644 index 000000000..fd84270d0 --- /dev/null +++ b/docs/public/images/logo.svg @@ -0,0 +1,4 @@ + + + + diff --git a/docs/public/images/spanning-layer.png b/docs/public/images/spanning-layer.png new file mode 100644 index 000000000..9d0402862 Binary files /dev/null and b/docs/public/images/spanning-layer.png differ diff --git a/docs/public/images/web-a.png b/docs/public/images/web-a.png new file mode 100644 index 000000000..ac3583c5d Binary files /dev/null and b/docs/public/images/web-a.png differ diff --git a/docs/public/images/web-b.png b/docs/public/images/web-b.png new file mode 100644 index 000000000..030f4dfb0 Binary files /dev/null and b/docs/public/images/web-b.png differ diff --git a/docs/sdna.html b/docs/sdna.html deleted file mode 100644 index db05f9502..000000000 --- a/docs/sdna.html +++ /dev/null @@ -1,576 +0,0 @@ - - - - - - Writing and using Social DNA · AD4M Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - -
    -
    v0.2.12
    -
    - - - - - - - -
    - -
    - -
    - - - - - - - - -
    -
    - -
    - -

    Writing and using Social DNA

    -

    COMING SOON

    - - -
    - -
    -
    - -
    - - - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/search_index.json b/docs/search_index.json deleted file mode 100644 index 28d8d9e66..000000000 --- a/docs/search_index.json +++ /dev/null @@ -1 +0,0 @@ -{"index":{"version":"0.5.12","fields":[{"name":"title","boost":10},{"name":"keywords","boost":15},{"name":"body","boost":1}],"ref":"url","documentStore":{"store":{"./":["(and","(central","(distributed)","(here","(i.e.","(like","(link","(who","abil","ackronym","ad4m","ad4m,","address","agenc","agency,","agent","agents'","agents,","agents/human","all,","allow","app","app'","app.","applic","approach,","apps,","apps.","architecture.","around","arriv","assign","associ","assum","assumpt","b","b.","back","basic","be","between","bia","bootstrap","both","bring","build","built","buy","call","captur","carv","centric","chosen.","coher","coherence)","collabor","combin","common,","commun","communicate.","complet","compon","comput","concept","concepts:","constructed:","context","convey","core,","coupl","cover","creat","creation","dapp","data","decentralized)","deconstruct","decoupl","defin","definition,","degre","deriv","detail","develop","dictat","differ","differenti","digit","discuss","disguis","distribut","dna","dna).","don't","each","enabl","end","engin","engine)","event","evolving)","exchang","exist","express","expressions,","extens","face","first","formal","fractal,","fractur","framework","framework.","game","get","goal","goe","group","have","human","human/ag","i.e.","idea,","impli","import","impos","in,","includ","independent/sovereign","infrastructur","instead","integr","interact","internet","interopar","interoper","introduct","ip","irreduc","it'","itself","itself.","just:","keep","languag","languages,","languages.","last","layer","layers.","leak","link","mainli","mainten","make","making.","malleabl","manag","mani","maximum","meaning,","meta","minim","monolith","name","neighbourhood","network","networks,","networks.","networks:","new","node,","object","on","one.","ontolog","ontology,","ontology.","order","organ","organisms)","out","p2p","paradigm","part","partial","patterns/soci","per","perspect","perspectives)","perspectives.","perspectives/associ","physic","postul","precise).","principl","principles,","problem","protocol","provid","pure","put","qualiti","quintess","real","realiti","realli","render","run","same","scalabl","section","section.","semant","sens","set","shape","share","show","similar","sit","sla","social","softwar","solut","space","span","specif","stack,","stack.","start","still","storag","subject","subject.","suggest","super","switch","talk","tcp/ip","technolog","technology.","thing","three","through","thu","to?)","togeth","together.","tri","two","ui","uniqu","uper","upper","us","user","variou","views/port","we'r","web","web'","web.","web3.","why?","without","wrap","write"],"start.html":["\"@perspect3vism/ad4m","\"connected_with_capabilities\")","\"graphics\",","\"logo.png\"),","\"perspect3ve\",","'.perspect3ve')","'@perspect3vism/ad4m","'@perspect3vism/ad4m'","(\"setup","(a","(access","(and","(best","(statu","(status)",".catch(()",".then(({client,","1.","2.","=","===","=>","@perspect3vism/ad4m","[{\"with\":{\"domain\":\"*\",\"pointers\":[\"*\"]},\"can\":[\"*\"]}],","access","ad","ad4m","ad4m!\");","ad4m,","ad4m:","ad4mclient","ad4mconnect","ad4mconnect({","add","addition:","again.","agent","alert(\"connect","alert(\"not","allow","anyway,","app","app,","app/ui","appiconpath:","appname:","authorize,","avail","await","base","bit","bring","browser","button)","call","capabilities:","capabilitytoken,","capabl","certain","check","click","click:","client","close","code","complet","complex","compon","confirm","confront","connect","connect'","connect.","connect/dist/electron')","connect/web\";","const","context","control","creat","data","datapath.","datapath:","defin","deliv","depend","develop","dialog","differently.","digit","directori","dist/electron","done","download","easi","electron","enter","establish","etc.","exampl","example,","executor","executor)","executor,","executor.","executorurl})","familiar","file","file)","first","first,","function","functions)","get","getad4mclient,","github","go","good","grant","graphql","hand","here","hold","home,","icon","implement","import","initi","inject","instal","instance.","instead","interfac","interface/wizard","it.","journey,","languages,","latest","launcher","like:","local","localstorag","main","make","manag","markup:","mechan","mobil","modal","modifi","name","need","network","new","next","next,","node/electron","now","npm","object","object.","on","on.","onauthstatechang","onauthstatechanged(async","open","out","over","page","part","path","path.join(__dirname,","path.join(homedir(),","perspect","perspectives,","perspectives/neighbourhood","pop","potenti","product","project:","promise((resolve,","prompt","properti","provid","proxi","proxy\"","publicli","put","queri","quickli","random","readi","realli","recogniz","reject())","reject)","releas","release.","remot","request","requested.","require('@perspect3vism/ad4m","require('path')","resolve(client)","resolve(getad4mclient())","restrict","right","risky.","root","run","run/instal","s","safe","same","secret","secur","see","seen","serv","setup","shake,","show","shown.","six","someth","somewher","start","step","still","store","string","success","successfully,","system","talk","token","token.","tray","ui","ui,","ui.","ui/compon","uis.","understand","up","url)","us","usabl","use.","user","user.","users'","version","via","way","web","web/brows","window","window:","within","work","write","yet.","yet:","your)","yourself","{","}","})"],"tutorial.html":["\"","\"#zq3shnwd4bg67kttvg9emnnrsrjhkh6crncjrrxftatqbniaf\",","\",","\"84a329","\"did:key:zq3shnwd4bg67kttvg9emnnrsrjhkh6crncjrrxftatqbniaf\",","\"literal://string:ad4m%20will%20be%20the%20last%20social%20network\",","\"literal://string:thinks\",","\"name\":","\"perspect","\"qmebd9n9z5yzsegxartoww5zmwtppojxn6zxjsi7wwmua8\"","\"qmebd9n9z5yzsegxartoww5zmwtppojxn6zxjsi7wwmua8\",","\"sun","\"uuid\":","\"xxxx\",","'@perspect3vism/ad4m'","'description'","'did:key:zq3shkkuzlvqefghdgzgfmux8vgkgvwsla83w2oekhzxocw2n',","'holochain","'https://github.com/perspect3vism/perspect","'name',","'perspect","'qmebd9n9z5yzsegxartoww5zmwtppojxn6zxjsi7wwmua8',","'thinks'","'uuid',","(addedlink:","(central","(first","(i.e.","(languag","(like","(local)","(not","(on","(removedlink:","(see","(static/snapshotted)","(they","(yet)","({source,",")","//","1.","1510fb\",","15:31:52","2.","20","2022","23","3","3.","4.","77384c","=","==","=>","[","[]","],","abov","access","accord","actual","ad","ad4m","ad4m'","ad4m...","ad4m.agent.me()","ad4m.agent.me().","ad4m.languages.applytemplateandpublish(","ad4m.languages.meta(","ad4m.neighbourhood.joinfromurl(neighbourhoodurl)","ad4m.neighbourhood.publishfromperspective(","ad4m.perspective.add(\"mi","ad4m.perspective.byuuid(joinedneighbourhood.uuid)","add","added',","addedlink)","address","address:","adhoc","adjust","again","agent","agent'","agent.","alic","alice'","alllink","and/nam","anoth","applied.","apps/ui","arbitrary/semant","around","array","assum","author,","author:","automat","await","back","base","basic","befor","behind","bob","bob.","bone","bootstrap","call","case","caus","chang","clone","code","code)","code,","collabor","consid","consist","console.log(\"a","console.log(\"got","console.log(neighbourhoodurl)","console.log(socialcontextmeta)","console.log(who,","const","content","copi","creat","current","custom","data:","databas","database,","databases.","decod","defin","demo","deploy","describ","descript","description.","description:","diff","differ","dna","dna,","don't","done","download","easi","empti","empty,","enabl","encod","end","end.","entangl","etc.),","european","even","everybodi","everyth","example,","executor","exist","express","false,","featur","field","first","follow","fresh","full","fulli","function","gener","get","get:","given","gmt+0200","graph","guid","happen","hash","here.","hide","hold","holochain","holochain,","i'm","i.e.","id","immediately,","immut","implement","import","includ","inform","information:","introduc","isn't","it.","iter","javascript","join","joinedneighbourhood","json","json.stringify({","key:","known","languag","language'","language.","languages.","languages.applytemplateandpublish()","last","later","leav","less","let'","life","link","link,","link.data.sourc","link:\",","linkexpres","linkexpress","linkexpression)","linkexpression.","linkexpressions.","linklanguag","linklanguage,","linklanguage.","linkquery({","linkquery({}))","links.","links.foreach(async","linksadapter).","listen","liter","literal.from(\"ad4m","literal.from(\"thinks\").tourl()","literal.fromurl('literal://string:thinks').get()","literal.fromurl(link.data.target).get()","literal://string:ad4m%20will%20be%20the%20last%20social%20network.","literal://string:think","local","look","lot","made","mani","me).","me.did","membran","membrane.","meta","minutes!","mutat","myperspect","myperspective.add()","myperspective.add({source,","myperspective.addlistener('link","myperspective.get(new","myperspective.uuid,","name","name.","name:","neigbourhood,","neighbourhood","neighbourhood\"","neighbourhood'","neighbourhood,","neighbourhood.","neighbourhood://qm123456789abcdef","neighbourhoodurl","network","network\").tourl()","network.","network.',","new","node/agent)","now","null,","number","object","object.","object:","objects)","oct","off","on","order","others.","overrid","pack","paramet","parameter)","parameters.","particles.","perspect","perspect3v","perspective\")","perspective()","perspective,","perspective.","perspectiveproxi","perspectiveproxy,","point","possibletemplateparam","possibletemplateparams:","potenti","predic","predicate,","predicate:","private,","proof:","properti","provid","proxi","publicli","publish","put","qmebd9n9z5yzsegxartoww5zmwtppojxn6zxjsi7wwmua8.","queri","readi","regist","remot","removed',","removed:\",","removedlink)","repres","resolv","result","retriev","return","same","second","seed)","semant","set","setup","share","show","signature:","simple.","simpli","so,","so:","social","socialcontextmeta","someth","something!","sourc","source:","sourcecodelink:","space","started.","statement","stay","still","store","string","strings,","summer","sure","sync","sync'","sync',","sync.","synchron","take","target","target:","target})","target}),","technic","tell","templat","template,","template?","templateappliedparams:","templated,","templated:","templatesourcelanguageaddress:","test","that:","then,","there:","think","this:","though","through","thu","time)\",","timestamp","timestamp:","took","touch","trade","treat","turn","tutori","type","ui","under","uniqu","uniquelinklanguag","uniquelinklanguage.address,","unpack","up","updat","upgrad","uri","url","url.","us","us:","used.","user","user'","uuid","v0.0.15,","valid","valu","variabl","want","wasm","what)","without","wrap","yield","{","}","})","}))","}));","},"],"language.html":["'note","=","===","=>","ad4m","ad4mclient.expression.create(\"a","ad4mclient.languages.all()","await","come","const","creat","expraddress","express","in:","ipfs').address","l.name","languag","languages.find(l","need","new","note\",","noteipfsaddress","noteipfsaddress)","select","soon","text"],"sdna.html":["come","dna","social","soon","us","write"],"api.html":["\"\"","\"84a329","\"@apollo/client/core\";","\"@apollo/client/link/subscriptions\";","\"a","\"agent","\"did:ad4m:test\"","\"direct","\"except","\"express","\"link","\"linklanguagefailedtoinstall\"","\"linklanguageinstalledbutnotsynced\"","\"name\":","\"neighbourhood","\"neighbourhoodjoininitiated\"","\"perspect","\"private\"","\"signal\"","\"smart_literal://content\"","\"social","\"synced\"","\"ws\";","#agentcli","#agentclient:","#agentstatuschangedcallback","#agentstatuschangedcallbacks:","#apollocli","#apolloclient:","#base","#base:","#baseexpress","#baseexpression:","#client","#client:","#exceptionoccurredcallback","#exceptionoccurredcallbacks:","#expressioncli","#expressionclient:","#handl","#handle:","#languagecli","#languageclient:","#liter","#literal:","#messagereceivedcallback","#messagereceivedcallbacks:","#neighbourhoodcli","#neighbourhoodclient:","#perspect","#perspective:","#perspectiveaddedcallback","#perspectiveaddedcallbacks:","#perspectivecli","#perspectiveclient:","#perspectivelinkaddedcallback","#perspectivelinkaddedcallbacks:","#perspectivelinkremovedcallback","#perspectivelinkremovedcallbacks:","#perspectivelinkupdatedcallback","#perspectivelinkupdatedcallbacks:","#perspectiveremovedcallback","#perspectiveremovedcallbacks:","#perspectiveupdatedcallback","#perspectiveupdatedcallbacks:","#pid","#pid:","#runtimecli","#runtimeclient:","#subjectclass","#subjectclass:","#updatedcallback","#updatedcallbacks:","#url","#url:","&","&&","'@perspect3vism/ad4m'","'a'}))","'description'","'did:key:zq3shkkuzlvqefghdgzgfmux8vgkgvwsla83w2oekhzxocw2n',","'graphql","'holochain","'https://github.com/juntofoundation/soci","'link","'name',","'network","'note","'qmz1mkoy8nlvpxy3mizx8ukuiwuzjxjxsqstppdh8shxcq',","'root',","'social","'uuid',","()","():","(agent):","(agent:","(and","(broadcast)","(caller):","(caller:","(can","(compar","(diff):","(diff:","(either","(exist","(info):","(info:","(it","(languag","(like","(link):","(link:","(local)","(message):","(message:","(on","(other)","(payload):","(payload:","(perspect","(perspective):","(perspective:","(sdna","(see","(signal):","(signal:","(subject","(target):","(target:","(through","(uuid):","(uuid:","(which",")","*","*agent","...belong","...encapsul","...repres","/","//","//=>","0","1","1510fb\",","2","3","77384c","://.",";","=","===","=>",">","@apollo/client@3.6.9","@perspect3vism/ad4m","[","[]","[string,","\\","],","`ws://localhost:4000/graphql`,","a.k.a.","abov","access","accessor","action","action:","actionnam","actionname):","actual","ad","ad4m","ad4m'","ad4m)","ad4m,","ad4m.","ad4m?","ad4mclient","ad4mclient(apolloclient)","ad4mclient(client,","ad4mclient.ad4mcli","ad4mclient.agent.generate(\"passphrase\")","ad4mclient.agent.status()","ad4mclient.agent.unlock(\"passphrase\")","ad4mclient.expression.create(\"a","ad4mclient.expression.get(address)","ad4mclient.languages.all()","ad4mclient.languages.applytemplateandpublish(\"qmz1mkoy8nlvpxy3mizx8ukuiwuzjxjxsqstppdh8shxcq\",","ad4mclient.languages.meta(\"qmz1mkoy8nlvpxy3mizx8ukuiwuzjxjxsqstppdh8shxcq\")","ad4mclient.neighbourhood.joinfromurl(neighbourhoodurl)","ad4mclient.neighbourhood.publishfromperspective(","ad4mclient.perspective.add(\"a","ad4mclient.perspective.addlink(","ad4mclient.perspective.querylinks(joinedneighbourhood.uuid,","ad4mclient.test.ts.","ad4mclient.ts:19","ad4mclient.ts:20","ad4mclient.ts:21","ad4mclient.ts:22","ad4mclient.ts:23","ad4mclient.ts:24","ad4mclient.ts:25","ad4mclient.ts:28","ad4mclient.ts:40","ad4mclient.ts:44","ad4mclient.ts:48","ad4mclient.ts:52","ad4mclient.ts:56","ad4mclient.ts:60","ad4mexecutorvers","ad4mexecutorversion:","ad4msign","ad4msignal:","ad4msignalcb","ad4msignalcb:","adapt","add","add(link):","add(name):","addagentstatuschangedlisten","addagentstatuschangedlistener(listener):","addcallback","addcallback(callback):","added'","addentanglementproof","addentanglementproofs(proofs):","addernam","addexceptioncallback","addexceptioncallback(cb):","addfriend","addfriends(dids):","addit","additions:","addknownlinklanguagetempl","addknownlinklanguagetemplates(addresses):","addlink","addlink(source,","addlink(uuid,","addlinkexpress","addlinkexpression(link):","addlinkexpression(uuid,","addlinks(links):","addlinks(uuid,","addlisten","addlistener(type,","addmessagecallback","addmessagecallback(callback):","addmessagecallback(cb):","addon","addon:","addperspectiveaddedlisten","addperspectiveaddedlistener(cb):","addperspectivelinkaddedlisten","addperspectivelinkaddedlistener(uuid,","addperspectivelinkremovedlisten","addperspectivelinkremovedlistener(uuid,","addperspectivelinkupdatedlisten","addperspectivelinkupdatedlistener(uuid,","addperspectiveremovedlisten","addperspectiveremovedlistener(cb):","addperspectiveupdatedlisten","addperspectiveupdatedlistener(cb):","address","address,","address.","address.ts:1","address:","address?","addressof","addressof(content):","addsdna","addsdna(sdnacode):","addsignalhandl","addsignalhandler(handler):","addsignalhandler(perspectiveuuid,","addtrustedag","addtrustedagents(agents):","addupdatedlisten","addupdatedlistener(listener):","adjust","affect","against","agent","agent'","agent():","agent(did,","agent)","agent,","agent.","agent/ag","agent/agent.ag","agent/agent.agentexpress","agent/agent.agentsignatur","agent/agent.app","agent/agent.authinfo","agent/agent.cap","agent/agent.entanglementproof","agent/agent.entanglementproofinput","agent/agent.resourc","agent/agent.ts:100","agent/agent.ts:103","agent/agent.ts:105","agent/agent.ts:118","agent/agent.ts:121","agent/agent.ts:123","agent/agent.ts:132","agent/agent.ts:135","agent/agent.ts:137","agent/agent.ts:146","agent/agent.ts:149","agent/agent.ts:151","agent/agent.ts:161","agent/agent.ts:164","agent/agent.ts:167","agent/agent.ts:170","agent/agent.ts:172","agent/agent.ts:183","agent/agent.ts:186","agent/agent.ts:189","agent/agent.ts:192","agent/agent.ts:194","agent/agent.ts:28","agent/agent.ts:36","agent/agent.ts:40","agent/agent.ts:42","agent/agent.ts:58","agent/agent.ts:61","agent/agent.ts:64","agent/agent.ts:67","agent/agent.ts:70","agent/agent.ts:73","agent/agent.ts:75","agent/agent.ts:88","agent/agent.ts:91","agent/agent.ts:94","agent/agent.ts:97","agent/agentcli","agent/agentclient.agentcli","agent/agentclient.initializearg","agent/agentclient.ts:101","agent/agentclient.ts:110","agent/agentclient.ts:121","agent/agentclient.ts:135","agent/agentclient.ts:153","agent/agentclient.ts:165","agent/agentclient.ts:178","agent/agentclient.ts:190","agent/agentclient.ts:213","agent/agentclient.ts:242","agent/agentclient.ts:257","agent/agentclient.ts:269","agent/agentclient.ts:281","agent/agentclient.ts:292","agent/agentclient.ts:304","agent/agentclient.ts:308","agent/agentclient.ts:324","agent/agentclient.ts:328","agent/agentclient.ts:344","agent/agentclient.ts:354","agent/agentclient.ts:364","agent/agentclient.ts:374","agent/agentclient.ts:386","agent/agentclient.ts:398","agent/agentclient.ts:410","agent/agentclient.ts:419","agent/agentclient.ts:66","agent/agentclient.ts:67","agent/agentclient.ts:68","agent/agentclient.ts:69","agent/agentclient.ts:72","agent/agentclient.ts:73","agent/agentclient.ts:80","agent/agentclient.ts:81","agent/agentclient.ts:82","agent/agentclient.ts:84","agent/agentresolv","agent/agentresolver.default","agent/agentresolver.ts:103","agent/agentresolver.ts:108","agent/agentresolver.ts:11","agent/agentresolver.ts:113","agent/agentresolver.ts:123","agent/agentresolver.ts:128","agent/agentresolver.ts:133","agent/agentresolver.ts:138","agent/agentresolver.ts:143","agent/agentresolver.ts:148","agent/agentresolver.ts:16","agent/agentresolver.ts:176","agent/agentresolver.ts:21","agent/agentresolver.ts:31","agent/agentresolver.ts:41","agent/agentresolver.ts:51","agent/agentresolver.ts:62","agent/agentresolver.ts:67","agent/agentresolver.ts:7","agent/agentresolver.ts:75","agent/agentresolver.ts:83","agent/agentresolver.ts:88","agent/agentresolver.ts:93","agent/agentresolver.ts:98","agent/agentstatu","agent/agentstatus.agentstatu","agent/agentstatus.ts:12","agent/agentstatus.ts:15","agent/agentstatus.ts:18","agent/agentstatus.ts:20","agent/agentstatus.ts:6","agent/agentstatus.ts:9","agent:","agent_status_chang","agent_status_changed:","agent_upd","agent_updated:","agentaddentanglementproof","agentaddentanglementproofs(proofs):","agentbydid","agentbydid(did):","agentcli","agentclient(client,","agentclient,","agentdeleteentanglementproof","agentdeleteentanglementproofs(proofs):","agententanglementproofpreflight","agententanglementproofpreflight(devicekey,","agentexpress","agentexpression()","agentgener","agentgenerate(passphrase,","agentgeneratejwt","agentgeneratejwt(requestid,","agentgetapp","agentgetapps():","agentgetentanglementproof","agentgetentanglementproofs():","agentimport","agentimport(did,","agentinfo","agentislock","agentislocked():","agentisuntrust","agentlanguage.","agentlock","agentlock(passphrase,","agentpermitcap","agentpermitcapability(auth):","agentremoveapp","agentremoveapp(requestid):","agentrequestcap","agentrequestcapability(appname,","agentrevoketoken","agentrevoketoken(requestid):","agents'","agents,","agents.","agents...","agentservic","agentsignatur","agentsignature(signature,","agentsignmessag","agentsignmessage(message):","agentstatu","agentstatus():","agentstatus(obj?)","agentstatuschang","agentstatuschanged():","agentstatuschangedcallback","agentstatuschangedcallback:","agentstatuschangedcallback[]","agentunlock","agentunlock(passphrase,","agentupd","agentupdated():","agentupdatedcallback","agentupdatedcallback:","agentupdatedcallback[]","agentupdatedirectmessagelanguag","agentupdatedirectmessagelanguage(directmessagelanguage,","agentupdatepublicperspect","agentupdatepublicperspective(perspective,","aggreg","alias","alic","alice'","all():","alreadi","alway","and/nam","annotations)","anoth","any)","any>,","any>>","any[]","anything.","api","apollocli","apolloclient({","apolloclient,","apolloclientany>","apolloqueryresultany>","app","app'","app/ui","appdesc","appdesc,","appdesc:","applic","applytemplateandpublish","applytemplateandpublish(sourcelanguagehash,","appnam","appname:","apps(requestid,","apps.","apps...\")","appsignalcb","appurl","appurl,","appurl:","arg","around","array.","aspect","associ","assum","assumpt","async","atom","auth","auth,","auth:","authent","authinfo","authinfo(appname,","author","author:","avail","availableflow","availableflows(expraddr):","avoid","await","back","base","base():","base)","base):","baseexpress","baseexpression():","baseexpression,","basi","basic","behind","belong","best","between","block","blockchains,","bob","bob.","bone","boolean","bootstrap","branch","buffer","build","buildschema","built","bundl","bundle:","byaddress","byaddress(address):","bydid","bydid(did):","byfilt","byfilter(filter):","byuuid","byuuid(uuid):","cach","cache:","calcul","call","call(dnanick,","callasync","callasync(calls,","callback","caller","can't","can)","can:","canva","capabilities)","capabilities):","capabilities:","capability(withf,","capability[]","capabilityrequest","capabl","capit","capitalize(str):","case","case,","cases:","cb","cb):","central","centric","centric.","chain","chang","check","claim","class","class'","class,","class.","class:","classtypedatatype>","clean","cleanup/teardown","cli","cli:","client","clients:","clone","clone.","code","code.","code:","collabor","collect","collectionaddertonam","collectionaddertoname(addername):","collectionopt","collections.","collectionsettertonam","collectionsettertoname(addername):","collectiontoaddernam","collectiontoaddername(collection):","collectiontosetternam","collectiontosettername(collection):","commit","commit(diff):","common","communicate,","communicate.","compon","concept","conceptually,","conform","connect","consist","console.log(data)","console.log(neighbourhoodurl)","console.log(socialcontextmeta)","const","constitut","constructor","constructor)","constructor,","constructoricon","constructoricon():","constructoricon:","contain","content","context","context'","context',","context.","conveni","convert","copi","core","count","count,","creat","create()","create(content,","create(perspective,","createcli","created,","createexpress","createexpression(content,","createpubl","createpublic(content):","createsignedexpress","createsignedexpression(data):","createsubject","createsubjectt>(subjectclass,","creation","criteria,","current","currentrevis","currentrevision():","custom","customset","customsettings:","dapp","data","data,","databas","datatyp","datatypeclass","date","deal","decentr","declar","decor","decorators.","default","default()","default(result):","defaultoptions:","defin","defined)","delet","deleteentanglementproof","deleteentanglementproofs(proofs):","deletetrustedag","deletetrustedagents(agents):","demo","deploy","descript","description.","description:","description?","description?)","descriptor","descriptor):","descriptor:","design","details)","devicekey","devicekey,","devicekey:","devicekeysignedbydid","devicekeysignedbydid,","devicekeysignedbydid:","devicekeytyp","devicekeytype):","devicekeytype,","devicekeytype:","devices,","did","did)","did.ts:1","did:","diddocu","diddocument,","diddocument:","dids,","dids.","didsignedbydevicekey","didsignedbydevicekey)","didsignedbydevicekey:","didsignedbydevicekey?","didsignedbydevicekey?)","didsigningkeyid","didsigningkeyid,","didsigningkeyid:","diff","differ","diffs.","direct","direct_message_receiv","direct_message_received:","directli","directmessageadapt","directmessageadapter:","directmessagelanguag","directmessagelanguage:","distinct,","distribut","dm","dna","dna()","dna.","dna...","dna[]","dnanick","dnanick:","dnas,","document","doesn't","domain","domain:","done","dynam","e","easiest","ecosystem","element","empty)","enabl","encod","end","engin","ensur","ensuresdnasubjectclass","ensuresdnasubjectclass(jsclass):","entanglementproof","entanglementproof(did,","entanglementproof[]","entanglementproofinput","entanglementproofinput(did,","entanglementproofinput[]","entanglementproofpreflight","entanglementproofpreflight(devicekey,","enum","enumer","enumeration:","epxress","error","error:","etc.","etc.),","everyth","exact","exactli","exampl","except","exception.exceptiontyp","exception.ts:2","exception.ts:3","exception.ts:4","exception.ts:5","exception_occurred_top","exception_occurred_topic:","exceptioncallback","exceptioncallback:","exceptioncallback[]","exceptioninfo","exceptioninfo()","exceptioninfo)","exceptionoccur","exceptionoccurred():","exceptiontyp","exectuor,","execut","execute(parameters):","executeact","executeaction(actions,","executor","exist","expect","export","expr","expr)","expraddr","expraddr):","expraddr,","expraddress","express","expression'","expression()","expression():","expression(url):","expression,","expression.","expression/express","expression/expression.express","expression/expression.expressionproof","expression/expression.expressionproofinput","expression/expression.expressionrend","expression/expression.ts:12","expression/expression.ts:15","expression/expression.ts:18","expression/expression.ts:20","expression/expression.ts:29","expression/expression.ts:32","expression/expression.ts:35","expression/expression.ts:38","expression/expression.ts:42","expression/expression.ts:67","expression/expression.ts:9","expression/expression.ts:91","expression/expression.ts:94","expression/expression.ts:97","expression/expressioncli","expression/expressionclient.expressioncli","expression/expressionclient.ts:13","expression/expressionclient.ts:34","expression/expressionclient.ts:55","expression/expressionclient.ts:65","expression/expressionclient.ts:7","expression/expressionclient.ts:76","expression/expressionclient.ts:9","expression/expressionclient.ts:90","expression/expressionref","expression/expressionref.expressionref","expression/expressionref.ts:12","expression/expressionref.ts:14","expression/expressionref.ts:22","expression/expressionref.ts:29","expression/expressionref.ts:9","expression/expressionresolv","expression/expressionresolver.default","expression/expressionresolver.ts:16","expression/expressionresolver.ts:25","expression/expressionresolver.ts:30","expression/expressionresolver.ts:39","expression/expressionresolver.ts:47","expression/expressionresolver.ts:57","expression:","expressionadapt","expressionadapter:","expressioncli","expressionclient(client)","expressionclient,","expressioncr","expressioncreate(content,","expressiongener","expressiongeneric(agent).constructor","expressiongeneric(languagemetainternal).constructor","expressiongeneric(link).constructor","expressiongeneric(neighbourhood).constructor","expressiongeneric(object).constructor","expressiongeneric(perspective).constructor","expressiongeneric(perspectivediff).constructor","expressiongeneric(string).constructor","expressiongenericdatatype>(datatypeclass):","expressiongenericinput","expressiongenericinput(linkinput).constructor","expressiongenericinputdatatype>(datatypeclass):","expressioninteract","expressioninteract(url,","expressioninteractions(url):","expressionisnotverifi","expressionmani","expressionmany(urls):","expressionproof","expressionproof(sig,","expressionproofinput","expressionproofinput()","expressionraw","expressionraw(url):","expressionref","expressionref(lang,","expressionrend","expressionrendered()","expressionrendered[]","expressions),","expressions,","expressions.","expressionsadapt","expressionsinflowst","expressionsinflowstate(flowname,","expressionui","expressionui:","expressionuri","exprref2str","exprref2string(ref):","extend","face","facilit","factori","fals","false,","featur","features,","fetchpolicy:","fetchresultany,","few","field","fifo","file","file:","filter","filter?","find","finite).","first","fixtures.","flag","flagopt","flow","flowact","flowactions(flowname,","flownam","flowstat","flowstate(flowname,","flowstate):","fn","fnname","fnname,","fnname:","foaf.","follow","for.","form","format","fresh","friend","friends():","friendsendmessag","friendsendmessage(did,","friendstatu","friendstatus(did):","from(literal):","fromdat","fromdate:","fromurl","fromurl(url):","full","full,","fulli","function","functionality.","g","gener","generate()","generate(passphrase):","generatejwt","generatejwt(requestid,","generatesdna()","generating,","get","get():","get(address):","get(query):","get(url):","getal","getall(filter,","getalladapt","getalladapter:","getallsmartliter","getallsmartliterals(perspective):","getallsubjectinst","getallsubjectinstancest>(subjectclass):","getapp","getapps():","getbyauthor","getbyauthor(author,","getbyauthoradapt","getbyauthoradapter:","getentanglementproof","getentanglementproofs():","getexpress","getexpression(expressionuri):","getlanguagesourc","getlanguagesource(address):","getmani","getmany(urls):","getneighbourhoodproxi","getneighbourhoodproxy():","getneighbourhoodproxy(uuid):","getonlineag","getonlineagents():","getraw","getraw(url):","getsdna","getsdna():","getsingletarget","getsingletarget()","getsingletarget(query):","getsubjectproxi","getsubjectproxyt>(base,","gettrustedag","gettrustedagents():","git","given","global,","go...","graph","graphql","graphqlwslink","graphqlwslink(createclient({","handl","handler","handler):","happen","hash","hash():","haslink","haslink(predicate):","hastelepresenceadapt","hastelepresenceadapter():","hastelepresenceadapter(perspectiveuuid):","have","hcaddagentinfo","hcaddagentinfos(agentinfos):","hcagentinfo","hcagentinfos():","here","hierarchi","high","hold","holochain","holochain:","holochainlanguagedeleg","holochainsignalcallback?","holochainsignalcallback?):","human","i.e.","icon","icon():","icon(code)","icon:","id","identifi","ifram","immut","implement","impli","import","import(args):","in:","inbox","inbox(filter?):","includ","infer","infer(query):","infinit","info","info():","inform","information.","information:","inherit","init","init():","initi","initializearg","initialized.","inmemorycach","inmemorycache(),","insid","instal","installs/regist","instanc","instancequeri","instancequery(options?):","instancequeryparam","instanti","integr","interact","interact(url,","interaction[]","interactioncal","interactioncall(name,","interactioncall):","interactionmeta","interactionmeta()","interactionmeta[]","interactionparamet","interactionparameter()","interactionparameter[]","interactions(expression):","interactions(url):","interconnect","interfac","interface.","interface:","interfaces.","intern","internet","interoper","interoperable,","interoperable.","invalid","invalid:","ipf","ipfs').address","ipfs,","ipfs:","is.","is:","isexpress","isexpression(e):","isimmutableexpress","isimmutableexpression(expression):","isiniti","isinitialized,","isinitialized:","islink","islink(l):","islock","islocked():","ismatch","ismatch(l):","issmartliteralbas","issmartliteralbase(perspective,","issubjectinst","issubjectinstancet>(expression,","isunlock","isunlocked,","isunlocked:","it.","item","iter","itself","javascript","jestsetup","join","joinedneighbourhood","joinfromurl","joinfromurl(url):","js","jsclass","json","json.parse(expression.data)","json.stringify({\"uuid\":","just:","k","k)","key","key):","key,","key:","keyof","keys.","keystor","keystore,","keystore.","keystore:","kind","known","knownlinklanguagetempl","knownlinklanguagetemplates():","l","l.name","l1","l2","l2):","label","label:","lang","languag","language\",","language\".","language'","language(address):","language,","language.","language.ts).","language/icon","language/icon.icon","language/icon.ts:6","language/icon.ts:8","language/languag","language/language.directmessageadapt","language/language.expressionadapt","language/language.expressionui","language/language.getalladapt","language/language.getbyauthoradapt","language/language.interact","language/language.interactioncal","language/language.interactionmeta","language/language.interactionparamet","language/language.languag","language/language.languageadapt","language/language.linksyncadapt","language/language.onlineag","language/language.publicshar","language/language.readonlylanguag","language/language.settingsui","language/language.telepresenceadapt","language/language.ts:105","language/language.ts:117","language/language.ts:127","language/language.ts:131","language/language.ts:138","language/language.ts:147","language/language.ts:150","language/language.ts:162","language/language.ts:163","language/language.ts:164","language/language.ts:169","language/language.ts:172","language/language.ts:175","language/language.ts:178","language/language.ts:181","language/language.ts:184","language/language.ts:187","language/language.ts:188","language/language.ts:190","language/language.ts:192","language/language.ts:193","language/language.ts:194","language/language.ts:196","language/language.ts:197","language/language.ts:198","language/language.ts:204","language/language.ts:207","language/language.ts:213","language/language.ts:216","language/language.ts:219","language/language.ts:222","language/language.ts:223","language/language.ts:224","language/language.ts:225","language/language.ts:231","language/language.ts:233","language/language.ts:235","language/language.ts:239","language/language.ts:248","language/language.ts:250","language/language.ts:253","language/language.ts:255","language/language.ts:256","language/language.ts:258","language/language.ts:259","language/language.ts:26","language/language.ts:260","language/language.ts:31","language/language.ts:38","language/language.ts:41","language/language.ts:44","language/language.ts:53","language/language.ts:56","language/language.ts:59","language/language.ts:61","language/language.ts:64","language/language.ts:67","language/language.ts:70","language/language.ts:73","language/language.ts:79","language/language.ts:81","language/language.ts:85","language/language.ts:92","language/languagecli","language/languageclient.languagecli","language/languageclient.ts:114","language/languageclient.ts:131","language/languageclient.ts:146","language/languageclient.ts:29","language/languageclient.ts:31","language/languageclient.ts:35","language/languageclient.ts:47","language/languageclient.ts:59","language/languageclient.ts:63","language/languageclient.ts:76","language/languageclient.ts:95","language/languagecontext","language/languagecontext.agentservic","language/languagecontext.dna","language/languagecontext.holochainlanguagedeleg","language/languagecontext.languagecontext","language/languagecontext.signaturesservic","language/languagecontext.ts:11","language/languagecontext.ts:15","language/languagecontext.ts:16","language/languagecontext.ts:17","language/languagecontext.ts:18","language/languagecontext.ts:19","language/languagecontext.ts:20","language/languagecontext.ts:21","language/languagecontext.ts:25","language/languagecontext.ts:26","language/languagecontext.ts:27","language/languagecontext.ts:32","language/languagecontext.ts:34","language/languagecontext.ts:36","language/languagecontext.ts:39","language/languagecontext.ts:6","language/languagecontext.ts:7","language/languagehandl","language/languagehandle.languagehandl","language/languagehandle.ts:10","language/languagehandle.ts:13","language/languagehandle.ts:16","language/languagehandle.ts:19","language/languagehandle.ts:22","language/languagehandle.ts:7","language/languagemeta","language/languagemeta.languageexpress","language/languagemeta.languagelanguageinput","language/languagemeta.languagemeta","language/languagemeta.languagemetainput","language/languagemeta.languagemetaintern","language/languagemeta.ts:10","language/languagemeta.ts:13","language/languagemeta.ts:16","language/languagemeta.ts:19","language/languagemeta.ts:22","language/languagemeta.ts:25","language/languagemeta.ts:28","language/languagemeta.ts:31","language/languagemeta.ts:37","language/languagemeta.ts:40","language/languagemeta.ts:43","language/languagemeta.ts:46","language/languagemeta.ts:48","language/languagemeta.ts:56","language/languagemeta.ts:57","language/languagemeta.ts:58","language/languagemeta.ts:59","language/languagemeta.ts:60","language/languagemeta.ts:61","language/languagemeta.ts:62","language/languagemeta.ts:68","language/languagemeta.ts:69","language/languagemeta.ts:7","language/languageref","language/languageref.languageref","language/languageref.ts:12","language/languageref.ts:14","language/languageref.ts:9","language/languageresolv","language/languageresolver.default","language/languageresolver.ts:16","language/languageresolver.ts:29","language/languageresolver.ts:41","language/languageresolver.ts:49","language/languageresolver.ts:57","language/languageresolver.ts:75","language/languageresolver.ts:90","language/languageresolver.ts:95","language:","languageadapt","languageadapter:","languageaddress","languageaddress):","languageapplytemplateandpublish","languageapplytemplateandpublish(sourcelanguagehash,","languagecli","languageclient(apolloclient)","languageclient,","languagecontext","languageexpress","languageexpression()","languagehandl","languagehandle()","languagehandle[]","languageisnotload","languagelanguageinput","languagelanguageinput()","languagemeta","languagemeta()","languagemeta(address):","languagemeta):","languagemetainput","languagemetainput(name?,","languagemetaintern","languagemetainternal()","languagepath","languagepublish","languagepublish(languagepath,","languageref","languageref(address?,","languageremov","languageremove(address):","languages\"","languages():","languages(filter):","languages)","languages,","languages.","languages...","languages.applytemplateandpublish()","languages.find(l","languagesourc","languagesource(address):","languagewriteset","languagewritesettings(languageaddress,","last","latest","latestrevis","latestrevision():","latter","latter,","layer","leav","let'","level","limit","limit:","link","link(obj)","link({","link):","link,","link.","link.data.target","link:","link[]","link_added_top","link_added_topic:","link_removed_top","link_removed_topic:","link_udated_top","link_udated_topic:","linkcallback","linkcallback:","linkcallback[]","linkequ","linkequal(l1,","linkexpress","linkexpression()","linkexpression)","linkexpression[]","linkexpressioninput","linkexpressioninput()","linkexpressioninput[]","linkexpressionmut","linkexpressionmutations(additions,","linkexpressionupd","linkexpressionupdated(oldlink,","linkinput","linkinput()","linkinput[]","linklanguag","linklanguage,","linklanguage.","linklanguage:","linklanguagefailedtoinstal","linklanguageinstalledbutnotsync","linkmut","linkmutations()","linkmutations(mutations):","linkmutations(uuid,","linkqueri","linkquery(obj)","linkquery({source:","links)","links):","links,","links.","links.foreach(async","links/link","links/links.link","links/links.linkexpress","links/links.linkexpressioninput","links/links.linkexpressionmut","links/links.linkexpressionupd","links/links.linkinput","links/links.linkmut","links/links.ts:10","links/links.ts:13","links/links.ts:15","links/links.ts:25","links/links.ts:28","links/links.ts:33","links/links.ts:36","links/links.ts:38","links/links.ts:47","links/links.ts:50","links/links.ts:53","links/links.ts:58","links/links.ts:7","links/links.ts:74","links/links.ts:82","links/links.ts:89","links/links.ts:92","links/links.ts:94","links:","links?","linksadapt","linksadapter:","linksyncadapt","list","list/graph","listen","listen.","liter","literal()","literal):","literal.liter","literal.ts:10","literal.ts:11","literal.ts:13","literal.ts:21","literal.ts:27","literal.ts:49","load","loadsnapshot","loadsnapshot(snapshot):","local","lock","lock(passphrase):","locking,","long","look","machine.","make","mani","map","match","me():","mean","meaning,","member","membran","membrane.","mention","messag","message):","message:","messagecallback","messagecallback:","messagecallback[]","messageinbox","messageinbox(filter?):","messageoutbox","messageoutbox(filter?):","messages)","meta","meta(address):","meta)","meta):","meta:","method","methods.","model","modul","module:","monolith","more","more.","much","multi","multipl","mutabl","mutat","mutatepublicperspect","mutatepublicperspective(mutations):","mutations):","mutations,","mutations.","mutuali","name","name():","name):","name,","name.","name:","name?","name?)","name?,","names,","names.","need","neigbourhood,","neighbourhood","neighbourhood\"}));","neighbourhood'","neighbourhood():","neighbourhood(linklanguage,","neighbourhood,","neighbourhood.","neighbourhood/neighbourhood","neighbourhood/neighbourhood.neighbourhood","neighbourhood/neighbourhood.neighbourhoodexpress","neighbourhood/neighbourhood.ts:10","neighbourhood/neighbourhood.ts:13","neighbourhood/neighbourhood.ts:15","neighbourhood/neighbourhoodcli","neighbourhood/neighbourhoodclient.neighbourhoodcli","neighbourhood/neighbourhoodclient.ts:11","neighbourhood/neighbourhoodclient.ts:111","neighbourhood/neighbourhoodclient.ts:128","neighbourhood/neighbourhoodclient.ts:13","neighbourhood/neighbourhoodclient.ts:147","neighbourhood/neighbourhoodclient.ts:164","neighbourhood/neighbourhoodclient.ts:17","neighbourhood/neighbourhoodclient.ts:39","neighbourhood/neighbourhoodclient.ts:66","neighbourhood/neighbourhoodclient.ts:76","neighbourhood/neighbourhoodclient.ts:86","neighbourhood/neighbourhoodproxi","neighbourhood/neighbourhoodproxy.neighbourhoodproxi","neighbourhood/neighbourhoodproxy.ts:10","neighbourhood/neighbourhoodproxy.ts:15","neighbourhood/neighbourhoodproxy.ts:19","neighbourhood/neighbourhoodproxy.ts:23","neighbourhood/neighbourhoodproxy.ts:27","neighbourhood/neighbourhoodproxy.ts:31","neighbourhood/neighbourhoodproxy.ts:35","neighbourhood/neighbourhoodproxy.ts:39","neighbourhood/neighbourhoodproxy.ts:7","neighbourhood/neighbourhoodproxy.ts:8","neighbourhood/neighbourhoodresolv","neighbourhood/neighbourhoodresolver.default","neighbourhood/neighbourhoodresolver.ts:28","neighbourhood/neighbourhoodresolver.ts:37","neighbourhood/neighbourhoodresolver.ts:48","neighbourhood/neighbourhoodresolver.ts:53","neighbourhood/neighbourhoodresolver.ts:58","neighbourhood/neighbourhoodresolver.ts:66","neighbourhood/neighbourhoodresolver.ts:71","neighbourhood/neighbourhoodresolver.ts:76","neighbourhood/neighbourhoodresolver.ts:81","neighbourhood:","neighbourhood://qm123456789abcdef","neighbourhood_signal_received_top","neighbourhood_signal_received_topic:","neighbourhoodcli","neighbourhoodclient(client)","neighbourhoodclient,","neighbourhoodexpress","neighbourhoodexpression()","neighbourhoodhastelepresenceadapt","neighbourhoodhastelepresenceadapter(perspectiveuuid):","neighbourhoodjoinfromurl","neighbourhoodjoinfromurl(url,","neighbourhoodjoininiti","neighbourhoodonlineag","neighbourhoodonlineagents(perspectiveuuid):","neighbourhoodotherag","neighbourhoodotheragents(perspectiveuuid):","neighbourhoodproxi","neighbourhoodproxy(client,","neighbourhoodpublishfromperspect","neighbourhoodpublishfromperspective(perspectiveuuid,","neighbourhoods,","neighbourhoods.","neighbourhoodsendbroadcast","neighbourhoodsendbroadcast(perspectiveuuid,","neighbourhoodsendsign","neighbourhoodsendsignal(perspectiveuuid,","neighbourhoodsetonlinestatu","neighbourhoodsetonlinestatus(perspectiveuuid,","neighbourhoodsign","neighbourhoodsignal(pid):","neighbourhoodurl","network","network.',","networks:","new","newlink","newlink)","newlink):","newlink,","newlink:","next","nextfetchpolicy:","nick","nick:","node/agent)","note\"","note\",","noteipfsaddress","noteipfsaddress)","notif","now","npm","null","null,","number","obj","obj?","object","object)","object.","objects.","occur","off","offer","ok,","oldlink","oldlink,","oldlink:","on","on/with","one.","onlin","onlineag","onlineagent()","onlineagent[]","onlineagents():","onlineagents(perspectiveuuid):","only'","only',","onotolog","onto","ontolog","ontology*","ontology,","open","openlink","openlink(url):","oper","opt","option","options?","order","other","otherag","otheragents():","otheragents(perspectiveuuid):","others():","otherwis","out","output","over","overrid","p2p","page","page):","parallel","param","paramet","parameter[]","parameters():","parameters)","parameters):","parameters:","parametersstringifi","parametersstringified:","params):","params:","parseexprurl","parseexprurl(url):","part","passphras","passphrase):","passphrase.","passphrase:","payload","payload):","perceiv","permitcap","permitcapability(auth):","perspect","perspect3v","perspecti","perspectiv","perspective\".","perspective'","perspective()","perspective():","perspective(links?)","perspective(uuid):","perspective,","perspective.","perspective:","perspective?","perspective?)","perspective_added_top","perspective_added_topic:","perspective_removed_top","perspective_removed_topic:","perspective_updated_top","perspective_updated_topic:","perspectiveact","perspectiveaction()","perspectivead","perspectiveadd","perspectiveadd(name,","perspectiveadded():","perspectiveaddlink","perspectiveaddlink(uuid,","perspectiveaddlinkexpress","perspectiveaddlinkexpression(uuid,","perspectiveaddlinks(uuid,","perspectivecli","perspectiveclient(client,","perspectivediff","perspectivediff()","perspectivediff)","perspectivediffexpress","perspectivediffexpression()","perspectivediffobserv","perspectivediffobserver:","perspectiveexpress","perspectiveexpression()","perspectiveexpression)","perspectiveexpression>","perspectiveexpression[]","perspectivehandl","perspectivehandle(uuid?,","perspectivehandle)","perspectivehandle.uuid,","perspectivehandle[]","perspectivehandlecallback","perspectivehandlecallback:","perspectivehandlecallback[]","perspectiveinput","perspectiveinput()","perspectivelinkad","perspectivelinkadded(uuid):","perspectivelinkmut","perspectivelinkmutations(uuid,","perspectivelinkremov","perspectivelinkremoved(uuid):","perspectivelinkupd","perspectivelinkupdated(uuid):","perspectivelistenertyp","perspectiveproxi","perspectiveproxy(handle,","perspectivepublishsnapshot","perspectivepublishsnapshot(uuid):","perspectivequerylink","perspectivequerylinks(uuid,","perspectivequeryprolog","perspectivequeryprolog(uuid,","perspectiveremov","perspectiveremove(uuid,","perspectiveremoved():","perspectiveremovelink","perspectiveremovelink(uuid,","perspectiveremovelinks(uuid,","perspectives():","perspectives.","perspectives...","perspectives/linkqueri","perspectives/linkquery.linkqueri","perspectives/linkquery.ts:11","perspectives/linkquery.ts:14","perspectives/linkquery.ts:17","perspectives/linkquery.ts:20","perspectives/linkquery.ts:23","perspectives/linkquery.ts:25","perspectives/linkquery.ts:51","perspectives/linkquery.ts:8","perspectives/perspect","perspectives/perspective.perspect","perspectives/perspective.perspectiveexpress","perspectives/perspective.perspectiveinput","perspectives/perspective.ts:22","perspectives/perspective.ts:24","perspectives/perspective.ts:33","perspectives/perspective.ts:81","perspectives/perspective.ts:95","perspectives/perspectivecli","perspectives/perspectiveclient.perspectivecli","perspectives/perspectiveclient.ts:107","perspectives/perspectiveclient.ts:117","perspectives/perspectiveclient.ts:129","perspectives/perspectiveclient.ts:140","perspectives/perspectiveclient.ts:152","perspectives/perspectiveclient.ts:164","perspectives/perspectiveclient.ts:173","perspectives/perspectiveclient.ts:185","perspectives/perspectiveclient.ts:197","perspectives/perspectiveclient.ts:209","perspectives/perspectiveclient.ts:226","perspectives/perspectiveclient.ts:238","perspectives/perspectiveclient.ts:261","perspectives/perspectiveclient.ts:274","perspectives/perspectiveclient.ts:278","perspectives/perspectiveclient.ts:283","perspectives/perspectiveclient.ts:287","perspectives/perspectiveclient.ts:302","perspectives/perspectiveclient.ts:306","perspectives/perspectiveclient.ts:321","perspectives/perspectiveclient.ts:325","perspectives/perspectiveclient.ts:340","perspectives/perspectiveclient.ts:357","perspectives/perspectiveclient.ts:374","perspectives/perspectiveclient.ts:39","perspectives/perspectiveclient.ts:398","perspectives/perspectiveclient.ts:40","perspectives/perspectiveclient.ts:41","perspectives/perspectiveclient.ts:43","perspectives/perspectiveclient.ts:44","perspectives/perspectiveclient.ts:45","perspectives/perspectiveclient.ts:46","perspectives/perspectiveclient.ts:47","perspectives/perspectiveclient.ts:48","perspectives/perspectiveclient.ts:50","perspectives/perspectiveclient.ts:63","perspectives/perspectiveclient.ts:67","perspectives/perspectiveclient.ts:71","perspectives/perspectiveclient.ts:83","perspectives/perspectiveclient.ts:96","perspectives/perspectivediff","perspectives/perspectivediff.perspectivediff","perspectives/perspectivediff.perspectivediffexpress","perspectives/perspectivediff.ts:11","perspectives/perspectivediff.ts:8","perspectives/perspectivehandl","perspectives/perspectivehandle.perspectivehandl","perspectives/perspectivehandle.perspectivest","perspectives/perspectivehandle.ts:18","perspectives/perspectivehandle.ts:20","perspectives/perspectivehandle.ts:22","perspectives/perspectivehandle.ts:25","perspectives/perspectivehandle.ts:28","perspectives/perspectivehandle.ts:30","perspectives/perspectivehandle.ts:5","perspectives/perspectivehandle.ts:6","perspectives/perspectivehandle.ts:7","perspectives/perspectivehandle.ts:8","perspectives/perspectivehandle.ts:9","perspectives/perspectiveproxi","perspectives/perspectiveproxy.perspectiveproxi","perspectives/perspectiveproxy.ts:100","perspectives/perspectiveproxy.ts:105","perspectives/perspectiveproxy.ts:110","perspectives/perspectiveproxy.ts:115","perspectives/perspectiveproxy.ts:120","perspectives/perspectiveproxy.ts:125","perspectives/perspectiveproxy.ts:130","perspectives/perspectiveproxy.ts:135","perspectives/perspectiveproxy.ts:140","perspectives/perspectiveproxy.ts:145","perspectives/perspectiveproxy.ts:149","perspectives/perspectiveproxy.ts:153","perspectives/perspectiveproxy.ts:157","perspectives/perspectiveproxy.ts:161","perspectives/perspectiveproxy.ts:169","perspectives/perspectiveproxy.ts:183","perspectives/perspectiveproxy.ts:203","perspectives/perspectiveproxy.ts:208","perspectives/perspectiveproxy.ts:227","perspectives/perspectiveproxy.ts:243","perspectives/perspectiveproxy.ts:259","perspectives/perspectiveproxy.ts:265","perspectives/perspectiveproxy.ts:27","perspectives/perspectiveproxy.ts:271","perspectives/perspectiveproxy.ts:279","perspectives/perspectiveproxy.ts:28","perspectives/perspectiveproxy.ts:285","perspectives/perspectiveproxy.ts:29","perspectives/perspectiveproxy.ts:291","perspectives/perspectiveproxy.ts:297","perspectives/perspectiveproxy.ts:30","perspectives/perspectiveproxy.ts:307","perspectives/perspectiveproxy.ts:31","perspectives/perspectiveproxy.ts:318","perspectives/perspectiveproxy.ts:328","perspectives/perspectiveproxy.ts:33","perspectives/perspectiveproxy.ts:337","perspectives/perspectiveproxy.ts:345","perspectives/perspectiveproxy.ts:368","perspectives/perspectiveproxy.ts:386","perspectives/perspectiveproxy.ts:401","perspectives/perspectiveproxy.ts:416","perspectives/perspectiveproxy.ts:44","perspectives/perspectiveproxy.ts:444","perspectives/perspectiveproxy.ts:506","perspectives/perspectiveproxy.ts:514","perspectives/perspectiveproxy.ts:90","perspectives/perspectiveproxy.ts:95","perspectives/perspectiveresolv","perspectives/perspectiveresolver.default","perspectives/perspectiveresolver.ts:102","perspectives/perspectiveresolver.ts:121","perspectives/perspectiveresolver.ts:140","perspectives/perspectiveresolver.ts:147","perspectives/perspectiveresolver.ts:153","perspectives/perspectiveresolver.ts:166","perspectives/perspectiveresolver.ts:172","perspectives/perspectiveresolver.ts:178","perspectives/perspectiveresolver.ts:183","perspectives/perspectiveresolver.ts:188","perspectives/perspectiveresolver.ts:193","perspectives/perspectiveresolver.ts:198","perspectives/perspectiveresolver.ts:30","perspectives/perspectiveresolver.ts:44","perspectives/perspectiveresolver.ts:49","perspectives/perspectiveresolver.ts:54","perspectives/perspectiveresolver.ts:59","perspectives/perspectiveresolver.ts:64","perspectives/perspectiveresolver.ts:69","perspectives/perspectiveresolver.ts:76","perspectives/perspectiveresolver.ts:83","perspectives/perspectiveresolver.ts:9","perspectives/perspectiveresolver.ts:90","perspectivesnapshot","perspectivesnapshot(uuid):","perspectivest","perspectiveupd","perspectiveupdate(uuid,","perspectiveupdated():","perspectiveupdatelink","perspectiveupdatelink(uuid,","perspectiveuuid","pid","pid)","plural","pluraltosingular","pluraltosingular(plural):","pods,","point","pointer","pointers)","pointers:","possibletemplateparam","possibletemplateparams:","potenti","pre","predic","predicate,","predicate.","predicate:","present","previou","previous","primit","privat","profil","profile.","prolog","promiseagent>","promiseagentstatus>","promiseany>","promiseany[]>","promiseapps[]>","promiseboolean>","promiseentanglementproof>","promiseentanglementproof[]>","promiseexpression>","promiseexpression[]>","promiseexpressionrendered>","promiseexpressionrendered[]>","promiseinteractionmeta[]>","promiselanguagehandle>","promiselanguagehandle[]>","promiselanguagemeta>","promiselanguageref>","promiselinkexpression>","promiselinkexpression[]>","promiselinkexpressionmutations>","promisenumber>","promiseobject>","promiseonlineagent[]>","promiseperspective>","promiseperspectivediff>","promiseperspectiveexpression>","promiseperspectiveexpression[]>","promiseperspectivehandle>","promiseperspectiveproxy>","promiseperspectiveproxy[]>","promiseperspectiveremove:","promiseperspectiveremovelink:","promiseruntimeinfo>","promisesentmessage[]>","promisesmartliteral>","promisesmartliteral[]>","promisestr","promisestring>","promisestring[]>","promiset>","promiset[]>","promisevoid","promisevoid>","proof","properti","propertydescriptor","propertydescriptor)","propertynametosetternam","propertynametosettername(property):","propertyopt","provid","proxi","public","public():","publickey","publickey)","publickey:","publicli","publicshar","publish","publish(languagepath,","publishfromperspect","publishfromperspective(perspectiveuuid,","publishsnapshotbyuuid","publishsnapshotbyuuid(uuid):","pubsub","pubsub):","pubsub.ts:1","pubsub.ts:10","pubsub.ts:11","pubsub.ts:12","pubsub.ts:2","pubsub.ts:3","pubsub.ts:4","pubsub.ts:5","pubsub.ts:6","pubsub.ts:7","pubsub.ts:8","pubsub.ts:9","pull","pull():","pulled)","purpos","push","put","putadapt","putadapter:","qmz1mkoy8nlvpxy3mizx8ukuiwuzjxjxsqstppdh8shxcq.","queri","query):","queryi","querylink","querylinks(uuid,","queryprolog","queryprolog(uuid,","queue","quintessenti","quit","quit():","rand","rand):","rdf/semant","read","readonli","readonlylanguag","receiv","recipi","recipient():","recipient,","recipient:","recordstring,","ref","refer","referenc","reflex","regard","registerdna","registerdnas(dnas,","registersignalcallback","registersignalcallback(callback):","remoteagentdid","remoteagentdid,","remov","removals)","removals:","remove(address):","remove(link):","remove(uuid):","removeapp","removeapp(requestid):","removed'","removefriend","removefriends(dids):","removeknownlinklanguagetempl","removeknownlinklanguagetemplates(addresses):","removelink","removelink(uuid,","removelinks(links):","removelinks(uuid,","removelisten","removelistener(type,","render","render()","render():","replac","repres","represent","requestcap","requestcapability(appname,","requestid","requestid:","requir","resolv","resourc","resource(domain,","respect","result","retriev","return","revis","revok","revoked:","revoked?","revoked?)","revoketoken","revoketoken(requestid):","root","run","run:","runflowact","runflowaction(flowname,","runtim","runtime():","runtime/runtimecli","runtime/runtimeclient.runtimecli","runtime/runtimeclient.ts:109","runtime/runtimeclient.ts:119","runtime/runtimeclient.ts:128","runtime/runtimeclient.ts:138","runtime/runtimeclient.ts:148","runtime/runtimeclient.ts:157","runtime/runtimeclient.ts:166","runtime/runtimeclient.ts:176","runtime/runtimeclient.ts:186","runtime/runtimeclient.ts:196","runtime/runtimeclient.ts:20","runtime/runtimeclient.ts:206","runtime/runtimeclient.ts:21","runtime/runtimeclient.ts:216","runtime/runtimeclient.ts:226","runtime/runtimeclient.ts:24","runtime/runtimeclient.ts:241","runtime/runtimeclient.ts:245","runtime/runtimeclient.ts:25","runtime/runtimeclient.ts:26","runtime/runtimeclient.ts:260","runtime/runtimeclient.ts:264","runtime/runtimeclient.ts:28","runtime/runtimeclient.ts:39","runtime/runtimeclient.ts:52","runtime/runtimeclient.ts:60","runtime/runtimeclient.ts:70","runtime/runtimeclient.ts:80","runtime/runtimeclient.ts:90","runtime/runtimeclient.ts:99","runtime/runtimeresolv","runtime/runtimeresolver.default","runtime/runtimeresolver.exceptioninfo","runtime/runtimeresolver.runtimeinfo","runtime/runtimeresolver.sentmessag","runtime/runtimeresolver.ts:104","runtime/runtimeresolver.ts:109","runtime/runtimeresolver.ts:114","runtime/runtimeresolver.ts:119","runtime/runtimeresolver.ts:124","runtime/runtimeresolver.ts:129","runtime/runtimeresolver.ts:134","runtime/runtimeresolver.ts:139","runtime/runtimeresolver.ts:148","runtime/runtimeresolver.ts:153","runtime/runtimeresolver.ts:158","runtime/runtimeresolver.ts:166","runtime/runtimeresolver.ts:171","runtime/runtimeresolver.ts:180","runtime/runtimeresolver.ts:185","runtime/runtimeresolver.ts:30","runtime/runtimeresolver.ts:32","runtime/runtimeresolver.ts:38","runtime/runtimeresolver.ts:40","runtime/runtimeresolver.ts:42","runtime/runtimeresolver.ts:48","runtime/runtimeresolver.ts:50","runtime/runtimeresolver.ts:52","runtime/runtimeresolver.ts:54","runtime/runtimeresolver.ts:65","runtime/runtimeresolver.ts:70","runtime/runtimeresolver.ts:75","runtime/runtimeresolver.ts:84","runtime/runtimeresolver.ts:89","runtime/runtimeresolver.ts:94","runtime/runtimeresolver.ts:99","runtimeaddfriend","runtimeaddfriends(dids):","runtimeaddknownlinklanguagetempl","runtimeaddknownlinklanguagetemplates(addresses):","runtimecli","runtimeclient(client,","runtimefriend","runtimefriends():","runtimefriendsendmessag","runtimefriendsendmessage(did,","runtimefriendstatu","runtimefriendstatus(did):","runtimehcaddagentinfo","runtimehcaddagentinfos(agentinfos):","runtimehcagentinfo","runtimehcagentinfos():","runtimeinfo","runtimeinfo()","runtimeinfo():","runtimeknownlinklanguagetempl","runtimeknownlinklanguagetemplates():","runtimemessageinbox","runtimemessageinbox(filter?):","runtimemessageoutbox","runtimemessageoutbox(filter?):","runtimemessagereceiv","runtimemessagereceived():","runtimeopenlink","runtimeopenlink(url):","runtimequit","runtimequit():","runtimeremovefriend","runtimeremovefriends(dids):","runtimeremoveknownlinklanguagetempl","runtimeremoveknownlinklanguagetemplates(addresses):","runtimesetstatu","runtimesetstatus(status):","runtimeverifystringsignedbydid","runtimeverifystringsignedbydid(did,","same","save","schema","scope.","sdna","sdna.","sdnaclass","sdnaclass(opts):","sdnaclassopt","sdnacod","sdnaflow","sdnaflows():","seamless","second","see","select","semant","semantics.","semantics/stat","sendbroadcast","sendbroadcast(payload):","sendbroadcast(perspectiveuuid,","sendinbox","sendinbox(message):","sending/rec","sendp2p","sendp2p(message):","sendsign","sendsignal(perspectiveuuid,","sendsignal(remoteagentdid,","sens","sentmessag","sentmessage()","sentmessage[]","set","set(content):","setexpressioncli","setexpressionclient(client):","setneighbourhoodcli","setneighbourhoodclient(client):","setonlinestatu","setonlinestatus(perspectiveuuid,","setonlinestatus(status):","setsdna","setsdna(sdnacode):","setsingeltarget()","setsingletarget","setsingletarget(link):","setstatu","setstatus(perspective):","setstatus(status):","setter","setternametopropertynam","setternametopropertyname(setter):","settings):","settings:","settingsicon","settingsicon():","settingsicon:","settingsui","settingsui:","share","shared.","sharedurl","sharedurl():","sharedurl:","sig","sign","signal","signal):","signal:","signatur","signature:","signatures:","signaturesservic","signed,","signeddata","signeddata):","signmessag","signmessage(message):","silo","singl","singular","singulartoplur","singulartoplural(singular):","six","smart_literal_content_pred","smart_literal_content_predicate:","smartliter","smartliteral(perspective,","smartliteral.smartliter","smartliteral.ts:20","smartliteral.ts:21","smartliteral.ts:23","smartliteral.ts:28","smartliteral.ts:32","smartliteral.ts:39","smartliteral.ts:47","smartliteral.ts:54","smartliteral.ts:6","smartliteral.ts:67","snapshot","snapshot():","snapshotbyuuid","snapshotbyuuid(uuid):","so:","social","socialcontextmeta","solid","solid'","someth","sourc","source(address):","source:","sourcecodelink","sourcecodelink:","sourcelanguagehash","space","span","spawn","speak","spec","special","specif","split","start","startflow","startflow(flowname,","state","state():","state:","state?","state?)","statement","static","statu","status():","status):","status:","statuscallback","statuscallback:","storagedirectori","storagedirectory:","store","str","strategi","string","string)","string.","string[]","string][]","stringifyobjectliter","stringifyobjectliteral(obj):","stringortemplateobjecttosubjectclass","stringortemplateobjecttosubjectclasst>(subjectclass):","structures/ontolog","style","sub","subject","subject'","subject(perspective,","subject/sdnadecor","subject/sdnadecorators.perspectiveact","subject/sdnadecorators.ts:12","subject/sdnadecorators.ts:126","subject/sdnadecorators.ts:153","subject/sdnadecorators.ts:21","subject/sdnadecorators.ts:30","subject/sdnadecorators.ts:6","subject/sdnadecorators.ts:7","subject/sdnadecorators.ts:8","subject/sdnadecorators.ts:80","subject/sdnadecorators.ts:9","subject/sdnadecorators.ts:99","subject/subject","subject/subject.subject","subject/subject.ts:15","subject/subject.ts:19","subject/subject.ts:5","subject/subject.ts:6","subject/subject.ts:7","subject/subject.ts:9","subject/util","subject/util.ts:1","subject/util.ts:11","subject/util.ts:15","subject/util.ts:23","subject/util.ts:34","subject/util.ts:39","subject/util.ts:45","subject/util.ts:52","subject/util.ts:57","subject/util.ts:6","subjectclass","subjectclass)","subjectclass):","subjectclasses():","subjectclassesbytempl","subjectclassesbytemplate(obj):","subjectcollect","subjectcollection(opts):","subjectflag","subjectflag(opts):","subjectproperti","subjectproperty(opts):","subscrib","subscribe?)","subscribeagentstatuschang","subscribeagentstatuschanged():","subscribeagentupd","subscribeagentupdated():","subscribeexceptionoccur","subscribeexceptionoccurred():","subscribemessagereceiv","subscribemessagereceived():","subscribeperspectivead","subscribeperspectiveadded():","subscribeperspectiveremov","subscribeperspectiveremoved():","subscribeperspectiveupd","subscribeperspectiveupdated():","subset","such","suppli","support","sure","sync","synchron","system","t","t)","t,","t>(target,","tabl","take","talk","target","target):","target:","teardown","teardown:","technic","technolog","telepres","telepresenceadapt","telepresenceadapter:","telepresencesignalcallback","telepresencesignalcallback:","tell","templat","template?","templateappliedparam","templateappliedparams:","templated:","templatedata","templatedata):","templatesourcelanguageaddress","templatesourcelanguageaddress:","test","test_agent_did","test_agent_did:","testlink","testlink:","text","that,","there:","thing","think","this:","those","three","through","thu","thus,","timeoutms?","timeoutms?):","titl","title:","togeth","token","token,","token:","topic\"","tourl","tourl():","trade","treat","triplet","true","true,","turn","two","type","type:","typedef","typedefs.ts:6","typedefsstr","typedefsstring:","ui","ui),","ui/web","undefin","under","underli","uniqu","uniquelinklanguag","uniquelinklanguage.address,","units:","unlock","unlock(passphrase):","unlocking,","untild","untildate:","unwrapapolloresult","unwrapapolloresult.ts:3","updat","update(oldlink,","update(uuid,","updatedirectmessagelanguag","updatedirectmessagelanguage(directmessagelanguage):","updatelink","updatelink(uuid,","updatepublicperspect","updatepublicperspective(perspective):","uri","uri.","url","url:","urls.","us","used.","user","user'","usual","uuid","uuid():","uuid:","uuid?","uuidcallback","uuidcallback:","uuidcallback[]","v0.0.5)","valid","valid:","valu","variabl","verbs/pred","veri","verifi","verify(expr):","verifystringsignedbydid","verifystringsignedbydid(did,","version","via","void","void>","wait,","want","watchquery:","way","web","websocket","websocketimpl:","well","what?!","with:","withf","without","work","work.","wrap","writabl","writable():","writeset","writesettings(languageaddress,","ws","ws';","wslink","wslink,","yield","zomecal","zomecalls:","zomenam","zomename,","zomename:","{","|","}","})","}));","});","},","}>","}[]","ƭ","•","↳","▸"]},"length":6},"tokenStore":{"root":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"1":{"5":{"1":{"0":{"docs":{},"f":{"docs":{},"b":{"docs":{},"\"":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"docs":{}},"docs":{},":":{"3":{"1":{"docs":{},":":{"5":{"2":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"docs":{}},"docs":{}}},"docs":{}},"docs":{}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},".":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"2":{"0":{"2":{"2":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"docs":{}},"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"3":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},".":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"3":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.00026350461133069827}},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"4":{"docs":{},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"7":{"7":{"3":{"8":{"4":{"docs":{},"c":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{},"(":{"docs":{},"a":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"d":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}}}}}}},"f":{"docs":{},"f":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}},"i":{"docs":{},".":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"l":{"docs":{},"i":{"docs":{},"k":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"n":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"w":{"docs":{},"h":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},"i":{"docs":{},"c":{"docs":{},"h":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"\"":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"p":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}},"b":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}},"r":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"c":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}},"s":{"docs":{},")":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}},"i":{"docs":{},"c":{"docs":{},"/":{"docs":{},"s":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"e":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},"d":{"docs":{},"n":{"docs":{},"a":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}},"o":{"docs":{},"n":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"y":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}}}},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}}}}}}}}},"y":{"docs":{},"e":{"docs":{},"t":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}},"{":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"e":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"x":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"y":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"a":{"docs":{},"b":{"docs":{},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}},"o":{"docs":{},"v":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}},"c":{"docs":{},"k":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"y":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}}},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207},"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"o":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.000878348704435661}}}}}}},"o":{"docs":{},"r":{"docs":{},"d":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}},"t":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"d":{"4":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.03217821782178218},"start.html":{"ref":"start.html","tf":0.0625},"tutorial.html":{"ref":"tutorial.html","tf":0.0066844919786096255},"language.html":{"ref":"language.html","tf":3.3589743589743586},"api.html":{"ref":"api.html","tf":0.001932367149758454}},",":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"!":{"docs":{},"\"":{"docs":{},")":{"docs":{},";":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207}}}}}},":":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"start.html":{"ref":"start.html","tf":0.010775862068965518},"api.html":{"ref":"api.html","tf":0.000878348704435661}},".":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"a":{"docs":{"language.html":{"ref":"language.html","tf":0.02564102564102564},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"(":{"docs":{},")":{"docs":{"language.html":{"ref":"language.html","tf":0.02564102564102564},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"q":{"docs":{},"m":{"docs":{},"z":{"1":{"docs":{},"m":{"docs":{},"k":{"docs":{},"o":{"docs":{},"y":{"8":{"docs":{},"n":{"docs":{},"l":{"docs":{},"v":{"docs":{},"p":{"docs":{},"x":{"docs":{},"y":{"3":{"docs":{},"m":{"docs":{},"i":{"docs":{},"z":{"docs":{},"x":{"8":{"docs":{},"u":{"docs":{},"k":{"docs":{},"u":{"docs":{},"i":{"docs":{},"w":{"docs":{},"u":{"docs":{},"z":{"docs":{},"j":{"docs":{},"x":{"docs":{},"j":{"docs":{},"x":{"docs":{},"s":{"docs":{},"q":{"docs":{},"s":{"docs":{},"t":{"docs":{},"p":{"docs":{},"p":{"docs":{},"d":{"docs":{},"h":{"8":{"docs":{},"s":{"docs":{},"h":{"docs":{},"x":{"docs":{},"c":{"docs":{},"q":{"docs":{},"\"":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}}}},"docs":{}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"q":{"docs":{},"m":{"docs":{},"z":{"1":{"docs":{},"m":{"docs":{},"k":{"docs":{},"o":{"docs":{},"y":{"8":{"docs":{},"n":{"docs":{},"l":{"docs":{},"v":{"docs":{},"p":{"docs":{},"x":{"docs":{},"y":{"3":{"docs":{},"m":{"docs":{},"i":{"docs":{},"z":{"docs":{},"x":{"8":{"docs":{},"u":{"docs":{},"k":{"docs":{},"u":{"docs":{},"i":{"docs":{},"w":{"docs":{},"u":{"docs":{},"z":{"docs":{},"j":{"docs":{},"x":{"docs":{},"j":{"docs":{},"x":{"docs":{},"s":{"docs":{},"q":{"docs":{},"s":{"docs":{},"t":{"docs":{},"p":{"docs":{},"p":{"docs":{},"d":{"docs":{},"h":{"8":{"docs":{},"s":{"docs":{},"h":{"docs":{},"x":{"docs":{},"c":{"docs":{},"q":{"docs":{},"\"":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}}}},"docs":{}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"d":{"4":{"docs":{},"m":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"docs":{}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"p":{"docs":{},"h":{"docs":{},"r":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"\"":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"p":{"docs":{},"h":{"docs":{},"r":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},"\"":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"b":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{},".":{"docs":{},"j":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"(":{"docs":{},"n":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"b":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},".":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"a":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"(":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"s":{"docs":{},"(":{"docs":{},"j":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"d":{"docs":{},"n":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"b":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{},".":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},".":{"docs":{},"t":{"docs":{},"s":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}}}}},"s":{"docs":{},":":{"1":{"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}}}}},"(":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}},"(":{"docs":{},"{":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}}}},"'":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},".":{"docs":{},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{},"m":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385}},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{},"(":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"(":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"b":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{},".":{"docs":{},"j":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"(":{"docs":{},"n":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"b":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},".":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"m":{"docs":{},"i":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}},"b":{"docs":{},"y":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},"(":{"docs":{},"j":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"d":{"docs":{},"n":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"b":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{},".":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"?":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"e":{"docs":{},"x":{"docs":{},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"l":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"c":{"docs":{},"b":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"d":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.004010695187165776},"api.html":{"ref":"api.html","tf":0.0011418533157663592}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0032498902064119453}},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0006148440931049627}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}}}},"?":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"o":{"docs":{},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0007026789635485288}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}},"s":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}}}}}},"e":{"docs":{},"d":{"docs":{},"'":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"f":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"c":{"docs":{},"b":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}},"(":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"d":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"k":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"e":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0007026789635485288}},"(":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"s":{"docs":{},"(":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"(":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"b":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"d":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"b":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"d":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"b":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"c":{"docs":{},"b":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"d":{"docs":{},"n":{"docs":{},"a":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"s":{"docs":{},"d":{"docs":{},"n":{"docs":{},"a":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"o":{"docs":{},"c":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}},"j":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.01485148514851485},"start.html":{"ref":"start.html","tf":0.004310344827586207},"tutorial.html":{"ref":"tutorial.html","tf":0.014705882352941176},"api.html":{"ref":"api.html","tf":0.004918752744839701}},"s":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},",":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.00026350461133069827}}},"/":{"docs":{},"h":{"docs":{},"u":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},".":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"api.html":{"ref":"api.html","tf":0.0014931927975406236}},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"?":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}},"'":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0004391743522178305}}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"/":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.001054018445322793}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"p":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"c":{"docs":{},"a":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"0":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"1":{"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"8":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"9":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}},"2":{"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"8":{"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"9":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"0":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"1":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"9":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}},"2":{"1":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"8":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"9":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}},"3":{"0":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"8":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"9":{"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}},"4":{"1":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}},"6":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"8":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"l":{"docs":{},"v":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"0":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"1":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"2":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}},"2":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"9":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"s":{"docs":{},".":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}}}}}}}}}}}}}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"_":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"_":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"f":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"y":{"docs":{},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"f":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"f":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"p":{"docs":{},"h":{"docs":{},"r":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}},"s":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"p":{"docs":{},"h":{"docs":{},"r":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"a":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"b":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"(":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"c":{"docs":{},"a":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"b":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"(":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"p":{"docs":{},"h":{"docs":{},"r":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"(":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}},".":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}},"s":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"l":{"docs":{},"l":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},"o":{"docs":{},"w":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}}},"i":{"docs":{},"c":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"'":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"a":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0012296881862099253}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"p":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.01485148514851485},"start.html":{"ref":"start.html","tf":0.01293103448275862},"api.html":{"ref":"api.html","tf":0.000878348704435661}},"'":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.009900990099009901},"api.html":{"ref":"api.html","tf":0.00026350461133069827}}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"h":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506}}}}}}}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},".":{"docs":{},".":{"docs":{},"\"":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"/":{"docs":{},"u":{"docs":{},"i":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"b":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},",":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207}}},"/":{"docs":{},"u":{"docs":{},"i":{"docs":{"start.html":{"ref":"start.html","tf":0.00646551724137931},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"i":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},":":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"e":{"docs":{},":":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"i":{"docs":{"api.html":{"ref":"api.html","tf":5}}},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"{":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0012296881862099253}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}},"a":{"docs":{},"y":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"b":{"docs":{},"i":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"y":{"docs":{},"/":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}}}}}}}}},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}},"u":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"p":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"n":{"docs":{},"y":{"docs":{},"w":{"docs":{},"a":{"docs":{},"y":{"docs":{},",":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},">":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"d":{"docs":{},"/":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"o":{"docs":{},"t":{"docs":{},"h":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"o":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},",":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"(":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}},"v":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"w":{"docs":{},"a":{"docs":{},"i":{"docs":{},"t":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207},"tutorial.html":{"ref":"tutorial.html","tf":0.013368983957219251},"language.html":{"ref":"language.html","tf":0.05128205128205128},"api.html":{"ref":"api.html","tf":0.0011418533157663592}}}}}},".":{"docs":{},"k":{"docs":{},".":{"docs":{},"a":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"b":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"tutorial.html":{"ref":"tutorial.html","tf":0.004010695187165776},"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}},"s":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"c":{"docs":{"./":{"ref":"./","tf":0.007425742574257425},"tutorial.html":{"ref":"tutorial.html","tf":0.004010695187165776},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},"e":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0006148440931049627}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"e":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506}},"t":{"docs":{},"w":{"docs":{},"e":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.007425742574257425},"api.html":{"ref":"api.html","tf":0.0004391743522178305}}}}}}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"l":{"docs":{},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"s":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}},"i":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},"t":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0004391743522178305}}}}}}}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.005884936319718929}}}}}}},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}},"b":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"n":{"docs":{},"e":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.004310344827586207}}}}},"o":{"docs":{},"w":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"u":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"api.html":{"ref":"api.html","tf":0.0007026789635485288}},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"y":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},"t":{"docs":{},"t":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}},"f":{"docs":{},"f":{"docs":{},"e":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"y":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.001054018445322793}},"(":{"docs":{},"d":{"docs":{},"n":{"docs":{},"a":{"docs":{},"n":{"docs":{},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"a":{"docs":{},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"s":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}}}}}},"e":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"c":{"docs":{},"u":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"p":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506}}}}},"a":{"docs":{},"b":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},":":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}},"y":{"docs":{},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{},",":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}},"(":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"f":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}}}}}}}}}}},"l":{"docs":{"start.html":{"ref":"start.html","tf":0.017241379310344827},"api.html":{"ref":"api.html","tf":0.0007026789635485288}}}}},"i":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"r":{"docs":{},"v":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}},"s":{"docs":{},"e":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}},"s":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"u":{"docs":{},"s":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"c":{"docs":{},"h":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"v":{"docs":{},"a":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.009900990099009901},"api.html":{"ref":"api.html","tf":0.0001756697408871322}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"a":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}},"r":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207}}}}}}}},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}},"e":{"docs":{},"c":{"docs":{},"k":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.0066844919786096255},"api.html":{"ref":"api.html","tf":0.0007026789635485288}}}},"i":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"o":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}}}}},"l":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"o":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"o":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"s":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"e":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"o":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"b":{"docs":{},"i":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506}}}}},"m":{"docs":{},"o":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},",":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}},"u":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.007425742574257425}},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"i":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"(":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"f":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.0021551724137931034}}},"x":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"start.html":{"ref":"start.html","tf":0.008620689655172414},"api.html":{"ref":"api.html","tf":0.0006148440931049627}}}},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}},"e":{"docs":{"language.html":{"ref":"language.html","tf":0.02564102564102564},"sdna.html":{"ref":"sdna.html","tf":0.16666666666666666}}}},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.012376237623762377},"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207},"tutorial.html":{"ref":"tutorial.html","tf":0.022727272727272728},"language.html":{"ref":"language.html","tf":0.07692307692307693},"api.html":{"ref":"api.html","tf":0.002986385595081247}},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}},"o":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.02318840579710145}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"i":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{},"u":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"i":{"docs":{},"d":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"s":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"a":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"g":{"docs":{},"o":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}},"n":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"b":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}},"w":{"docs":{},"h":{"docs":{},"o":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"'":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}},"n":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.012033377250768555}}}}},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"v":{"docs":{},"e":{"docs":{},"y":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},"n":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}}}},"r":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"f":{"docs":{},"i":{"docs":{},"r":{"docs":{},"m":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"start.html":{"ref":"start.html","tf":0.03879310344827586},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"'":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}},".":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}},"/":{"docs":{},"d":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"/":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{},"'":{"docs":{},")":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}}}}}}}}}},"w":{"docs":{},"e":{"docs":{},"b":{"docs":{},"\"":{"docs":{},";":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},",":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}},"u":{"docs":{},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}},"n":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}},"d":{"docs":{},"e":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207},"tutorial.html":{"ref":"tutorial.html","tf":0.004010695187165776},"api.html":{"ref":"api.html","tf":0.001054018445322793}},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}},"p":{"docs":{},"i":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.012032085561497326},"language.html":{"ref":"language.html","tf":3.4358974358974357},"api.html":{"ref":"api.html","tf":0.002635046113306983}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"c":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"t":{"docs":{},">":{"docs":{},"(":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"a":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"c":{"docs":{},"k":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}},":":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207},"api.html":{"ref":"api.html","tf":0.0012296881862099253}},"s":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}},"n":{"docs":{},"e":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0001756697408871322}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"a":{"docs":{},"i":{"docs":{},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.005006587615283268}},"'":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0007026789635485288}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.005797101449275362}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}}}}}}},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"u":{"docs":{},"p":{"docs":{},"/":{"docs":{},"t":{"docs":{},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.004010695187165776},"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"r":{"docs":{},"e":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"m":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"b":{"docs":{"api.html":{"ref":"api.html","tf":0.000878348704435661}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}}}}}},"d":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"t":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},".":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207}}},":":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"s":{"docs":{},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}},"e":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}},"e":{"docs":{},"c":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506}}}}},"d":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0011418533157663592}}}}}},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.053227931488801054}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}}},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.002108036890645586}},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"g":{"docs":{},"r":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506}},"s":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"api.html":{"ref":"api.html","tf":0.0007026789635485288}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"e":{"docs":{},"d":{"docs":{},"b":{"docs":{},"y":{"docs":{},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0007026789635485288}},"e":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}},"s":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"l":{"docs":{},"i":{"docs":{},"v":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}},"e":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"f":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}},"l":{"docs":{},"o":{"docs":{},"y":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"m":{"docs":{},"o":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"p":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0014931927975406236}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0003513394817742644}}},"?":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"o":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"a":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}},"f":{"docs":{},"f":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.0053475935828877},"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.009900990099009901},"tutorial.html":{"ref":"tutorial.html","tf":0.0053475935828877},"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},"l":{"docs":{},"y":{"docs":{},".":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}}},"s":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}},"s":{"docs":{},"c":{"docs":{},"u":{"docs":{},"s":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}},"g":{"docs":{},"u":{"docs":{},"i":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"/":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207}}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}},"_":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},".":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0007026789635485288}}},"d":{"docs":{},"o":{"docs":{},"c":{"docs":{},"u":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}},"s":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"e":{"docs":{},"d":{"docs":{},"b":{"docs":{},"y":{"docs":{},"d":{"docs":{},"e":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"?":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},"i":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0007026789635485288}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"sdna.html":{"ref":"sdna.html","tf":2.6666666666666665},"api.html":{"ref":"api.html","tf":0.0013175230566534915}},")":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},".":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"n":{"docs":{},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"s":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"o":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"e":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"w":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}},"c":{"docs":{},"u":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"e":{"docs":{},"s":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"e":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.007425742574257425}}}},"s":{"docs":{},"i":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"n":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}},"d":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"g":{"docs":{},"i":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"(":{"docs":{},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}}}},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"(":{"docs":{},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},"l":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"d":{"docs":{},"e":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{},"e":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"s":{"docs":{},"u":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"s":{"docs":{},"d":{"docs":{},"n":{"docs":{},"a":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"j":{"docs":{},"s":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.004010695187165776}},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}},"r":{"docs":{},"y":{"docs":{},"b":{"docs":{},"o":{"docs":{},"d":{"docs":{},"i":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}},"t":{"docs":{},"h":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"o":{"docs":{},"l":{"docs":{},"v":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}}}}},"x":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"e":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}}}},"_":{"docs":{},"o":{"docs":{},"c":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"c":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"o":{"docs":{},"c":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}},"p":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"tutorial.html":{"ref":"tutorial.html","tf":0.0066844919786096255},"language.html":{"ref":"language.html","tf":0.07692307692307693},"api.html":{"ref":"api.html","tf":0.005445761967501098}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.00026350461133069827}}},")":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}}},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},"s":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}},"'":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"/":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0006148440931049627}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"9":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},".":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}}}}},"s":{"docs":{},"o":{"docs":{},"l":{"docs":{},"v":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0007026789635485288}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0007026789635485288}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"c":{"docs":{},"(":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},")":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},")":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"b":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{},")":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},")":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},")":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"f":{"docs":{},")":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},")":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},">":{"docs":{},"(":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{},")":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},">":{"docs":{},"(":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"(":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"(":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"y":{"docs":{},"(":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"(":{"docs":{},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"e":{"docs":{},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"(":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"n":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0006148440931049627}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"r":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"language.html":{"ref":"language.html","tf":0.02564102564102564},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"r":{"docs":{},"e":{"docs":{},"f":{"2":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"docs":{}}}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.011594202898550725}}}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},",":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"e":{"docs":{},"c":{"docs":{},"u":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"o":{"docs":{},"r":{"docs":{"start.html":{"ref":"start.html","tf":0.010775862068965518},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0005270092226613965}},")":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}},",":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}},".":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"}":{"docs":{},")":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}},"e":{"docs":{},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"u":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207}}}}}}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}}},"t":{"docs":{},"c":{"docs":{},".":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},")":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"m":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"y":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"u":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"s":{"docs":{},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"p":{"docs":{},"x":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"r":{"docs":{},"r":{"docs":{},"o":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.00026350461133069827}}},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"m":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"a":{"docs":{},"r":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}},"l":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}},"i":{"docs":{},"r":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.004310344827586207},"tutorial.html":{"ref":"tutorial.html","tf":0.004010695187165776},"api.html":{"ref":"api.html","tf":0.0007026789635485288}},",":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}},"l":{"docs":{},"e":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0001756697408871322}},")":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"?":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}}}}}}},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}},"f":{"docs":{},"o":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"n":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},")":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"x":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"a":{"docs":{},"f":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}},"m":{"docs":{},"e":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}}}}},"e":{"docs":{},"s":{"docs":{},"h":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"(":{"docs":{},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207},"tutorial.html":{"ref":"tutorial.html","tf":0.0053475935828877},"api.html":{"ref":"api.html","tf":0.0023715415019762848}},"s":{"docs":{},")":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"l":{"docs":{},"l":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"i":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"p":{"docs":{},"o":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"y":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"y":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"w":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"o":{"docs":{},"w":{"docs":{"api.html":{"ref":"api.html","tf":0.0007905138339920949}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"(":{"docs":{},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"e":{"docs":{},"(":{"docs":{},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506}}}}},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":5.002155172413793},"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0006148440931049627}},"a":{"docs":{},"d":{"4":{"docs":{},"m":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}}}},"docs":{}},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"l":{"docs":{},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"s":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},">":{"docs":{},"(":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"b":{"docs":{},"y":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"u":{"docs":{},"r":{"docs":{},"i":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"y":{"docs":{},"(":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"b":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}},"y":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"r":{"docs":{},"a":{"docs":{},"w":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"s":{"docs":{},"d":{"docs":{},"n":{"docs":{},"a":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"y":{"docs":{},"t":{"docs":{},">":{"docs":{},"(":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"p":{"docs":{},"h":{"docs":{},"r":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"j":{"docs":{},"w":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"s":{"docs":{},"d":{"docs":{},"n":{"docs":{},"a":{"docs":{},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"o":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207}},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}},"e":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506}}},"o":{"docs":{},"d":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}},".":{"docs":{},".":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"r":{"docs":{},"o":{"docs":{},"u":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506}}}}},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}},"p":{"docs":{},"h":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"q":{"docs":{},"l":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207},"api.html":{"ref":"api.html","tf":0.000966183574879227}},"w":{"docs":{},"s":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"(":{"docs":{},"c":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"{":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}},"v":{"docs":{},"e":{"docs":{},"n":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.002986385595081247}}}}}},"m":{"docs":{},"t":{"docs":{},"+":{"0":{"2":{"0":{"0":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}},"l":{"docs":{},"o":{"docs":{},"b":{"docs":{},"a":{"docs":{},"l":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"v":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"n":{"docs":{},"d":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"p":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"s":{"docs":{},"h":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.007425742574257425},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"/":{"docs":{},"a":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0003513394817742644}},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}},"o":{"docs":{},"l":{"docs":{},"d":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"o":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.004010695187165776},"api.html":{"ref":"api.html","tf":0.0006148440931049627}},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},"?":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}},"i":{"docs":{},"d":{"docs":{},"e":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"r":{"docs":{},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0007905138339920949}}}}}}}}},"g":{"docs":{},"h":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"c":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"i":{"docs":{},".":{"docs":{},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}},"d":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},"a":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.004010695187165776},"api.html":{"ref":"api.html","tf":0.0015810276679841897}}}}}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.010775862068965518},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0007905138339920949}},"(":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"s":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}},"n":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},"c":{"docs":{},"l":{"docs":{},"u":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0004391743522178305}}}}}},"d":{"docs":{},"e":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}}}}}}},"o":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"r":{"docs":{},"m":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"e":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}},"a":{"docs":{},"l":{"docs":{"start.html":{"ref":"start.html","tf":0.00646551724137931},"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"l":{"docs":{},"s":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"n":{"docs":{},"c":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"e":{"docs":{},".":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"y":{"docs":{},"(":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"?":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"i":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}},"t":{"docs":{},"e":{"docs":{},"g":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.000966183574879227}},"(":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0006148440931049627}},"l":{"docs":{},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}},"s":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"o":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"f":{"docs":{},"a":{"docs":{},"c":{"docs":{"start.html":{"ref":"start.html","tf":0.008620689655172414},"api.html":{"ref":"api.html","tf":0.0014053579270970576}},"e":{"docs":{},"/":{"docs":{},"w":{"docs":{},"i":{"docs":{},"z":{"docs":{},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0015810276679841897}}},"s":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"r":{"docs":{},"o":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}},"t":{"docs":{"./":{"ref":"./","tf":10.002475247524753}}}}}}}}},"i":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{"start.html":{"ref":"start.html","tf":0.008620689655172414},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}},"d":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}},":":{"docs":{"language.html":{"ref":"language.html","tf":0.02564102564102564},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"?":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0007905138339920949}}}}}}},"m":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"r":{"docs":{},"y":{"docs":{},"c":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}},"p":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"s":{"docs":{},"'":{"docs":{},")":{"docs":{},".":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"language.html":{"ref":"language.html","tf":0.02564102564102564},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}}},"t":{"docs":{},"'":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}},".":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"e":{"docs":{},"r":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207},"api.html":{"ref":"api.html","tf":0.0011418533157663592}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}},"'":{"docs":{},"m":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"s":{"docs":{},"n":{"docs":{},"'":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"i":{"docs":{},"m":{"docs":{},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"z":{"docs":{},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"l":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"l":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"s":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"(":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"t":{"docs":{},">":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"j":{"docs":{},"u":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{},"e":{"docs":{},"y":{"docs":{},",":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}},"i":{"docs":{},"n":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"d":{"docs":{},"n":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"b":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"a":{"docs":{},"v":{"docs":{},"a":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"o":{"docs":{},"n":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},".":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"i":{"docs":{},"f":{"docs":{},"y":{"docs":{},"(":{"docs":{},"{":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}},"\"":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},".":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"u":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}}}}}}}},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},"e":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}},"y":{"docs":{"api.html":{"ref":"api.html","tf":0.000878348704435661}},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0005270092226613965}}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"o":{"docs":{},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.0007026789635485288}}}},"s":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}}}}}},"l":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.009900990099009901},"tutorial.html":{"ref":"tutorial.html","tf":0.01871657754010695},"language.html":{"ref":"language.html","tf":3.4358974358974357},"api.html":{"ref":"api.html","tf":0.004567413263065437}},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{},"(":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{},"d":{"docs":{},"(":{"docs":{},"l":{"docs":{"language.html":{"ref":"language.html","tf":0.02564102564102564},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},".":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"\"":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"'":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"t":{"docs":{},"s":{"docs":{},")":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"\"":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"/":{"docs":{},"i":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},".":{"docs":{},"i":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.001756697408871322}},"e":{"docs":{},".":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"u":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"b":{"docs":{},"y":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"o":{"docs":{},"n":{"docs":{},"l":{"docs":{},"y":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"u":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"s":{"docs":{},":":{"1":{"0":{"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"1":{"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"8":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"9":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}},"2":{"0":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"1":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"8":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"9":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"1":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}},"2":{"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"9":{"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0007026789635485288}},".":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"d":{"docs":{},"n":{"docs":{},"a":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"h":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},".":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"api.html":{"ref":"api.html","tf":0.0007026789635485288}},".":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},".":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}}}}},"s":{"docs":{},"o":{"docs":{},"l":{"docs":{},"v":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"9":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}}}}}},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"h":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}},"i":{"docs":{},"s":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"api.html":{"ref":"api.html","tf":0.000966183574879227}},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"?":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"a":{"docs":{},"l":{"docs":{},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.0007026789635485288}},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"?":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"(":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"y":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.01485148514851485},"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"s":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"r":{"docs":{},"e":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"r":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}}},"u":{"docs":{},"n":{"docs":{},"c":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"start.html":{"ref":"start.html","tf":0.00646551724137931}}}}}}}},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}},"e":{"docs":{},"a":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},"v":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"s":{"docs":{},"s":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"t":{"docs":{},"'":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.0053475935828877},"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}},"v":{"docs":{},"e":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"tutorial.html":{"ref":"tutorial.html","tf":0.013368983957219251},"api.html":{"ref":"api.html","tf":0.005533596837944664}},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0003513394817742644}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},".":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"\"":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}},"s":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.00202020202020202}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"s":{"docs":{},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0014053579270970576}}}},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0011418533157663592}},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}}}}}}}}},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"o":{"docs":{},"l":{"docs":{},"d":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"l":{"docs":{},"(":{"docs":{},"l":{"1":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"docs":{}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.0066844919786096255},"api.html":{"ref":"api.html","tf":0.000966183574879227}},"e":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.00026350461133069827}}},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"f":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"d":{"docs":{},"t":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"d":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"(":{"docs":{},"{":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}},"}":{"docs":{},")":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.000878348704435661}}}}}}},"s":{"docs":{},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.004010695187165776},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"f":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"c":{"docs":{},"h":{"docs":{},"(":{"docs":{},"a":{"docs":{},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}},"/":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.000878348704435661}},"s":{"docs":{},".":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"9":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}}}}}}}}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"?":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}}}}}}}}}}},"(":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"{":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"c":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"c":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"u":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"c":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.000966183574879227}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}},"k":{"docs":{},"e":{"docs":{},":":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}},"f":{"docs":{},"e":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"s":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"e":{"docs":{},"n":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0004391743522178305}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"/":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"h":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.008021390374331552},"api.html":{"ref":"api.html","tf":0.0011418533157663592}},"a":{"docs":{},"l":{"docs":{},".":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"(":{"docs":{},"\"":{"docs":{},"a":{"docs":{},"d":{"4":{"docs":{},"m":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385}}}},"docs":{}}},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{},".":{"docs":{},"t":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"(":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.004010695187165776}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"(":{"docs":{},"'":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"s":{"docs":{},"'":{"docs":{},")":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},".":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{},".":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},")":{"docs":{},".":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}}}}},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{},"a":{"docs":{},"d":{"4":{"docs":{},"m":{"docs":{},"%":{"2":{"0":{"docs":{},"w":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"%":{"2":{"0":{"docs":{},"b":{"docs":{},"e":{"docs":{},"%":{"2":{"0":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"%":{"2":{"0":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"%":{"2":{"0":{"docs":{},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"%":{"2":{"0":{"docs":{},"n":{"docs":{},"e":{"docs":{},"t":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}},"docs":{}},"docs":{}}}}}}},"docs":{}},"docs":{}}}}}},"docs":{}},"docs":{}}}}},"docs":{}},"docs":{}}}}}}},"docs":{}},"docs":{}}}},"docs":{}}},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207},"tutorial.html":{"ref":"tutorial.html","tf":0.008021390374331552},"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"s":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"g":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}}},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"p":{"docs":{},"h":{"docs":{},"r":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"o":{"docs":{},"k":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"a":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"s":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"s":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"t":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},".":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"language.html":{"ref":"language.html","tf":0.02564102564102564},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}},"l":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}},"k":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"start.html":{"ref":"start.html","tf":0.00646551724137931},"api.html":{"ref":"api.html","tf":0.0007905138339920949}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}}},"n":{"docs":{},"a":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}},"i":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"x":{"docs":{},"i":{"docs":{},"m":{"docs":{},"u":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}},"r":{"docs":{},"k":{"docs":{},"u":{"docs":{},"p":{"docs":{},":":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}},"d":{"docs":{},"e":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385}}}},"c":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"api.html":{"ref":"api.html","tf":0.000878348704435661}}}}}},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0007026789635485288}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.007425742574257425},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"t":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.012376237623762377},"tutorial.html":{"ref":"tutorial.html","tf":0.008021390374331552},"api.html":{"ref":"api.html","tf":0.0015810276679841897}},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},"h":{"docs":{},"o":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.006499780412823891}},"s":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}},")":{"docs":{},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},".":{"docs":{},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}},"m":{"docs":{},"b":{"docs":{},"r":{"docs":{},"a":{"docs":{},"n":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"e":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}}}}}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0013175230566534915}},"e":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"?":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"?":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"s":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}},"u":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"!":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"o":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"b":{"docs":{},"i":{"docs":{},"l":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}},"d":{"docs":{},"a":{"docs":{},"l":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207}}}},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}},"e":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"u":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"e":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.003864734299516908}}}}}}},"r":{"docs":{},"e":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"u":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"e":{"docs":{},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"b":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"c":{"docs":{},"h":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"l":{"docs":{},"t":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"p":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},".":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"{":{"docs":{},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"'":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},"n":{"docs":{},"e":{"docs":{},"w":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385}}}}}}}}},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.030566534914361003}},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.001054018445322793}}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"?":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"s":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"b":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"tutorial.html":{"ref":"tutorial.html","tf":0.014705882352941176},"api.html":{"ref":"api.html","tf":0.001844532279314888}},"\"":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}},"}":{"docs":{},")":{"docs":{},")":{"docs":{},";":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"'":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.00026350461133069827}}},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.004010695187165776},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"/":{"docs":{},"/":{"docs":{},"q":{"docs":{},"m":{"1":{"2":{"3":{"4":{"5":{"6":{"7":{"8":{"9":{"docs":{},"a":{"docs":{},"b":{"docs":{},"c":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"/":{"docs":{},"n":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"b":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"b":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"b":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"1":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"2":{"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"8":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}},"y":{"docs":{},".":{"docs":{},"n":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"b":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"l":{"docs":{},"v":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"2":{"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"8":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}}}},"_":{"docs":{},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"_":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"c":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.000878348704435661}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"j":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0006148440931049627}}},"y":{"docs":{},"(":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"b":{"docs":{},"r":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"c":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"l":{"docs":{},"(":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"o":{"docs":{},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"l":{"docs":{},"(":{"docs":{},"p":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}},"b":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"t":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.012376237623762377},"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},":":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"\"":{"docs":{},")":{"docs":{},".":{"docs":{},"t":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},"(":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385}}}}}}}}}}}},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}},"'":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"w":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"start.html":{"ref":"start.html","tf":0.00646551724137931},"tutorial.html":{"ref":"tutorial.html","tf":0.012032085561497326},"language.html":{"ref":"language.html","tf":0.02564102564102564},"api.html":{"ref":"api.html","tf":0.007817303469477382}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"e":{"docs":{},"d":{"docs":{"start.html":{"ref":"start.html","tf":0.008620689655172414},"language.html":{"ref":"language.html","tf":0.02564102564102564},"api.html":{"ref":"api.html","tf":0.0007026789635485288}}}},"x":{"docs":{},"t":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},",":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}},"f":{"docs":{},"e":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"p":{"docs":{},"o":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"y":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},"/":{"docs":{},"e":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{"start.html":{"ref":"start.html","tf":0.00646551724137931}}}}}}}}}},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"w":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},",":{"docs":{"language.html":{"ref":"language.html","tf":0.02564102564102564},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"i":{"docs":{},"p":{"docs":{},"f":{"docs":{},"s":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"language.html":{"ref":"language.html","tf":0.02564102564102564},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},")":{"docs":{"language.html":{"ref":"language.html","tf":0.02564102564102564},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"i":{"docs":{},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"p":{"docs":{},"m":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207},"api.html":{"ref":"api.html","tf":0.0006148440931049627}}}},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.001932367149758454}},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}},"m":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0007905138339920949}}}}}}},"i":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.008021390374331552},"api.html":{"ref":"api.html","tf":0.002898550724637681}},".":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"s":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"?":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"n":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.004310344827586207},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"e":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},"t":{"docs":{},"o":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.012376237623762377},"api.html":{"ref":"api.html","tf":0.0006148440931049627}},"y":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},"*":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},".":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"a":{"docs":{},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}}}}}}}}}}}}}}}}},"/":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0006148440931049627}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"y":{"docs":{},"'":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"o":{"docs":{},"t":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"r":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.007425742574257425},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}},"g":{"docs":{},"a":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}},"i":{"docs":{},"s":{"docs":{},"m":{"docs":{},"s":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.004918752744839701}},"s":{"docs":{},"?":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"r":{"docs":{},"i":{"docs":{},"d":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"c":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"f":{"docs":{},"f":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"s":{"docs":{},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}},"w":{"docs":{},"i":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"k":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"l":{"docs":{},"d":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"p":{"2":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"d":{"docs":{},"i":{"docs":{},"g":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.0066844919786096255},"api.html":{"ref":"api.html","tf":0.028282828282828285}},"e":{"docs":{},"r":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"s":{"docs":{},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"i":{"docs":{},"f":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.004310344827586207},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}},"c":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"s":{"docs":{},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}}}}}}},"h":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}},".":{"docs":{},"j":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"(":{"docs":{},"_":{"docs":{},"_":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}}}}},"h":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"(":{"docs":{},")":{"docs":{},",":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0001756697408871322}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}},"c":{"docs":{},"k":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"s":{"docs":{},"s":{"docs":{},"p":{"docs":{},"h":{"docs":{},"r":{"docs":{},"a":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0007905138339920949}},"e":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}},"y":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0006148440931049627}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}}}}}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"3":{"docs":{},"v":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"start.html":{"ref":"start.html","tf":0.00646551724137931},"tutorial.html":{"ref":"tutorial.html","tf":0.0213903743315508},"api.html":{"ref":"api.html","tf":0.00676328502415459}},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"v":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},"s":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.00026350461133069827}},".":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"/":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}}},"n":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"b":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}},"y":{"docs":{},".":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},".":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"2":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"8":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"9":{"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"0":{"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"1":{"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"8":{"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"9":{"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}},"2":{"0":{"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"8":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}},"3":{"0":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"9":{"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"8":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"9":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},".":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"e":{"docs":{},".":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"s":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}},"y":{"docs":{},".":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"0":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"1":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"8":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}},"2":{"0":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"0":{"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"1":{"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"2":{"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"8":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}},"4":{"0":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"1":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"0":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"1":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}},"9":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"l":{"docs":{},"v":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"0":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"8":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"9":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}},"3":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"8":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"9":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}}}},",":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0006148440931049627}}}},"\"":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"(":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"s":{"docs":{},"?":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0003513394817742644}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"i":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.001054018445322793}}},"y":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"(":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"s":{"docs":{},"h":{"docs":{},"s":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}},"'":{"docs":{"api.html":{"ref":"api.html","tf":0.0006148440931049627}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"?":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"_":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"c":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"c":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"c":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"s":{"docs":{},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.000966183574879227}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"o":{"docs":{},"b":{"docs":{},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0016688625384277558}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.001756697408871322}},"e":{"docs":{},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},"?":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},".":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"p":{"docs":{},"u":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.000878348704435661}},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"a":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"d":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"s":{"docs":{},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0013175230566534915}}}}}}}}}}}}}},"c":{"docs":{},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"a":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"b":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"(":{"docs":{},"a":{"docs":{},"u":{"docs":{},"t":{"docs":{},"h":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"y":{"docs":{},"s":{"docs":{},"i":{"docs":{},"c":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},"u":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}},"s":{"docs":{},"i":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0006148440931049627}},"s":{"docs":{},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207}}},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"s":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"d":{"docs":{},"s":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"r":{"docs":{},"e":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"c":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},")":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}}},"d":{"docs":{},"i":{"docs":{},"c":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0011418533157663592}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0003513394817742644}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"v":{"docs":{},"i":{"docs":{},"o":{"docs":{},"u":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"i":{"docs":{},"n":{"docs":{},"c":{"docs":{},"i":{"docs":{},"p":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}},"e":{"docs":{},"s":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}}}}},"v":{"docs":{},"a":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.003513394817742644}},"e":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}},"m":{"docs":{},"i":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"o":{"docs":{},"b":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}},"t":{"docs":{},"o":{"docs":{},"c":{"docs":{},"o":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}},"v":{"docs":{},"i":{"docs":{},"d":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.00646551724137931},"tutorial.html":{"ref":"tutorial.html","tf":0.004010695187165776},"api.html":{"ref":"api.html","tf":0.0004391743522178305}}}}},"d":{"docs":{},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},":":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}},"m":{"docs":{},"i":{"docs":{},"s":{"docs":{},"e":{"docs":{},"(":{"docs":{},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"l":{"docs":{},"v":{"docs":{},"e":{"docs":{},",":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207}}}}}}}}}}}},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.000878348704435661}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.000878348704435661}}}}}}}}}}}}},"n":{"docs":{},"y":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0007026789635485288}}},"[":{"docs":{},"]":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}},"p":{"docs":{},"p":{"docs":{},"s":{"docs":{},"[":{"docs":{},"]":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}}}}}}}}},"b":{"docs":{},"o":{"docs":{},"o":{"docs":{},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"n":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0031620553359683794}}}}}}}}}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{},"e":{"docs":{},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"f":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"[":{"docs":{},"]":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}}}}}}}}}}}}}}}}},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"[":{"docs":{},"]":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}},"r":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}}},"[":{"docs":{},"]":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"[":{"docs":{},"]":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"[":{"docs":{},"]":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}}},"r":{"docs":{},"e":{"docs":{},"f":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.001054018445322793}}},"[":{"docs":{},"]":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.001054018445322793}}}}},"m":{"docs":{},"u":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"u":{"docs":{},"m":{"docs":{},"b":{"docs":{},"e":{"docs":{},"r":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}}}},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"[":{"docs":{},"]":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}}},"d":{"docs":{},"i":{"docs":{},"f":{"docs":{},"f":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"[":{"docs":{},"]":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{},"e":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"x":{"docs":{},"y":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}}},"[":{"docs":{},"]":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"[":{"docs":{},"]":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"[":{"docs":{},"]":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.003689064558629776}}},"[":{"docs":{},"]":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.003513394817742644}}}}}}}}}}},"t":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}},"[":{"docs":{},"]":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}},"v":{"docs":{},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},">":{"docs":{"api.html":{"ref":"api.html","tf":0.003689064558629776}}}}}}}}}},"p":{"docs":{},"t":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.011330698287220026}}},"y":{"docs":{},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"(":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"y":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"x":{"docs":{},"i":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0003513394817742644}}},"y":{"docs":{},"\"":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}},"o":{"docs":{},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}}}},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},"p":{"docs":{},"o":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"l":{"docs":{},"i":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"s":{"docs":{},"h":{"docs":{},"a":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}}}}}}},"s":{"docs":{},"h":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"(":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"t":{"docs":{},"b":{"docs":{},"y":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{"api.html":{"ref":"api.html","tf":0.0016688625384277558}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0014053579270970576}}}},".":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"1":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}}}}}}}},"l":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"e":{"docs":{},"d":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"s":{"docs":{},"h":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"i":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"l":{"docs":{},"u":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.007425742574257425}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"c":{"docs":{},"k":{"docs":{},"l":{"docs":{},"i":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0013175230566534915}}},"y":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"u":{"docs":{},"e":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"m":{"docs":{},"e":{"docs":{},"b":{"docs":{},"d":{"9":{"docs":{},"n":{"9":{"docs":{},"z":{"5":{"docs":{},"y":{"docs":{},"z":{"docs":{},"s":{"docs":{},"e":{"docs":{},"g":{"docs":{},"x":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"o":{"docs":{},"w":{"docs":{},"w":{"5":{"docs":{},"z":{"docs":{},"m":{"docs":{},"w":{"docs":{},"t":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"j":{"docs":{},"x":{"docs":{},"n":{"6":{"docs":{},"z":{"docs":{},"x":{"docs":{},"j":{"docs":{},"s":{"docs":{},"i":{"7":{"docs":{},"w":{"docs":{},"w":{"docs":{},"m":{"docs":{},"u":{"docs":{},"a":{"8":{"docs":{},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"docs":{}}}}}}},"docs":{}}}}}}},"docs":{}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}}},"docs":{}}},"docs":{}}}},"z":{"1":{"docs":{},"m":{"docs":{},"k":{"docs":{},"o":{"docs":{},"y":{"8":{"docs":{},"n":{"docs":{},"l":{"docs":{},"v":{"docs":{},"p":{"docs":{},"x":{"docs":{},"y":{"3":{"docs":{},"m":{"docs":{},"i":{"docs":{},"z":{"docs":{},"x":{"8":{"docs":{},"u":{"docs":{},"k":{"docs":{},"u":{"docs":{},"i":{"docs":{},"w":{"docs":{},"u":{"docs":{},"z":{"docs":{},"j":{"docs":{},"x":{"docs":{},"j":{"docs":{},"x":{"docs":{},"s":{"docs":{},"q":{"docs":{},"s":{"docs":{},"t":{"docs":{},"p":{"docs":{},"p":{"docs":{},"d":{"docs":{},"h":{"8":{"docs":{},"s":{"docs":{},"h":{"docs":{},"x":{"docs":{},"c":{"docs":{},"q":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}}}},"docs":{}}}}}},"docs":{}}}},"r":{"docs":{},"e":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}},"l":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"start.html":{"ref":"start.html","tf":0.004310344827586207}}}}},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"i":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"o":{"docs":{},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0013175230566534915}}},"y":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}}}}}}}}}}}}}}},"n":{"docs":{},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"g":{"docs":{},"n":{"docs":{},"i":{"docs":{},"z":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}},"r":{"docs":{},"d":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}},"i":{"docs":{},"p":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}},")":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207}}}}}}},"l":{"docs":{},"e":{"docs":{},"a":{"docs":{},"s":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}},"e":{"docs":{},".":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}},"m":{"docs":{},"o":{"docs":{},"t":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}},"e":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"v":{"docs":{"api.html":{"ref":"api.html","tf":0.0016688625384277558}},"e":{"docs":{},"d":{"docs":{},"'":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},":":{"docs":{},"\"":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"k":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"e":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"s":{"docs":{},"(":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"r":{"docs":{},"(":{"docs":{},"t":{"docs":{},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"a":{"docs":{},"l":{"docs":{},"s":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"start.html":{"ref":"start.html","tf":0.010775862068965518}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}},"c":{"docs":{},"a":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"b":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"y":{"docs":{},"(":{"docs":{},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0007905138339920949}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"i":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},"(":{"docs":{},"'":{"docs":{},"@":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"3":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"m":{"docs":{},"/":{"docs":{},"a":{"docs":{},"d":{"4":{"docs":{},"m":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}},"docs":{}}}}}}}}},"docs":{}}}}}}}}}},"p":{"docs":{},"a":{"docs":{},"t":{"docs":{},"h":{"docs":{},"'":{"docs":{},")":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}}}}}}}},"s":{"docs":{},"o":{"docs":{},"l":{"docs":{},"v":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"e":{"docs":{},"(":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"d":{"4":{"docs":{},"m":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{},")":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}}}}}},"docs":{}}}}}}}}}},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"e":{"docs":{},"(":{"docs":{},"d":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"c":{"docs":{},"t":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"g":{"docs":{},"i":{"docs":{},"s":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}},"e":{"docs":{},"r":{"docs":{},"d":{"docs":{},"n":{"docs":{},"a":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},"d":{"docs":{},"n":{"docs":{},"a":{"docs":{},"s":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0007026789635485288}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}},"l":{"docs":{},"a":{"docs":{},"c":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"v":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.0066844919786096255},"api.html":{"ref":"api.html","tf":0.03320158102766799}}}}}},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":5.000087834870444}},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"l":{"docs":{},"e":{"docs":{},"x":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}},"o":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"d":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"?":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"t":{"docs":{},"o":{"docs":{},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"r":{"docs":{},"e":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0007026789635485288}},"/":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"/":{"docs":{},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},".":{"docs":{},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"0":{"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"1":{"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"8":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"9":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}},"2":{"0":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"1":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"2":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"6":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"8":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"9":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"o":{"docs":{},"l":{"docs":{},"v":{"docs":{"api.html":{"ref":"api.html","tf":0.0006148440931049627}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"0":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"1":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"2":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"8":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}},"3":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"7":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"8":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"9":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"f":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"k":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"e":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0006148440931049627}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"f":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"(":{"docs":{},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"c":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"f":{"docs":{},"o":{"docs":{"api.html":{"ref":"api.html","tf":0.0006148440931049627}},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"k":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"i":{"docs":{},"n":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"?":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"f":{"docs":{},"i":{"docs":{},"l":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"?":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"q":{"docs":{},"u":{"docs":{},"i":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"f":{"docs":{},"r":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"k":{"docs":{},"n":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"e":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}},"v":{"docs":{},"e":{"docs":{},"r":{"docs":{},"i":{"docs":{},"f":{"docs":{},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"e":{"docs":{},"d":{"docs":{},"b":{"docs":{},"y":{"docs":{},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"o":{"docs":{},"m":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"t":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}},"s":{"docs":{},"k":{"docs":{},"y":{"docs":{},".":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"d":{"docs":{},"f":{"docs":{},"/":{"docs":{},"s":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}},"s":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.0053475935828877},"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}},"f":{"docs":{},"e":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}},"v":{"docs":{},"e":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}},"h":{"docs":{},"e":{"docs":{},"m":{"docs":{},"a":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}},"r":{"docs":{},"e":{"docs":{},"t":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}},"u":{"docs":{},"r":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}},"o":{"docs":{},"n":{"docs":{},"d":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}},"m":{"docs":{},"a":{"docs":{},"n":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.007425742574257425},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"n":{"docs":{},"s":{"docs":{"./":{"ref":"./","tf":0.007425742574257425},"api.html":{"ref":"api.html","tf":0.0003513394817742644}}},"d":{"docs":{},"b":{"docs":{},"r":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},"c":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"y":{"docs":{},"l":{"docs":{},"o":{"docs":{},"a":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"b":{"docs":{},"o":{"docs":{},"x":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"g":{"docs":{},"/":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"p":{"2":{"docs":{},"p":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"docs":{}},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"a":{"docs":{},"l":{"docs":{},"(":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.000966183574879227}},"u":{"docs":{},"p":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"(":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"b":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"(":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"d":{"docs":{},"n":{"docs":{},"a":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"s":{"docs":{},"d":{"docs":{},"n":{"docs":{},"a":{"docs":{},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"l":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"(":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"s":{"docs":{},"(":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"y":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"(":{"docs":{},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"i":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"u":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"e":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207},"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"n":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}},"d":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}},"r":{"docs":{},"v":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"language.html":{"ref":"language.html","tf":0.02564102564102564},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"a":{"docs":{},"m":{"docs":{},"l":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"p":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}},"r":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.012376237623762377},"tutorial.html":{"ref":"tutorial.html","tf":0.0106951871657754},"api.html":{"ref":"api.html","tf":0.0014053579270970576}},"d":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"u":{"docs":{},"r":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"k":{"docs":{},"e":{"docs":{},",":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}},"o":{"docs":{},"w":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}},"n":{"docs":{},".":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}},"i":{"docs":{},"m":{"docs":{},"i":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"i":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},"x":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0007905138339920949}},"e":{"docs":{},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.00026350461133069827}}},"s":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"s":{"docs":{},"e":{"docs":{},"r":{"docs":{},"v":{"docs":{},"i":{"docs":{},"c":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}}}}}}}}},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0006148440931049627}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"e":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"(":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"n":{"docs":{},"g":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"u":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"t":{"docs":{},"o":{"docs":{},"p":{"docs":{},"l":{"docs":{},"u":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"l":{"docs":{},"(":{"docs":{},"s":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"l":{"docs":{},"a":{"docs":{},"r":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.017326732673267328},"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"sdna.html":{"ref":"sdna.html","tf":2.6666666666666665},"api.html":{"ref":"api.html","tf":0.000966183574879227}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"x":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"a":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"f":{"docs":{},"t":{"docs":{},"w":{"docs":{},"a":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}},"l":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}},"i":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"'":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"m":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"!":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}},"w":{"docs":{},"h":{"docs":{},"e":{"docs":{},"r":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.0053475935828877},"api.html":{"ref":"api.html","tf":0.0014053579270970576}},"e":{"docs":{},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0004391743522178305}}},"c":{"docs":{},"o":{"docs":{},"d":{"docs":{},"e":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}}}}}}},"(":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"h":{"docs":{},"a":{"docs":{},"s":{"docs":{},"h":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}}}}}}},"o":{"docs":{},"n":{"docs":{"language.html":{"ref":"language.html","tf":0.02564102564102564},"sdna.html":{"ref":"sdna.html","tf":0.16666666666666666}}}}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"n":{"docs":{"./":{"ref":"./","tf":0.007425742574257425},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"w":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}},"e":{"docs":{},"c":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"i":{"docs":{},"f":{"docs":{"./":{"ref":"./","tf":0.007425742574257425},"api.html":{"ref":"api.html","tf":0.0003513394817742644}}},"a":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"a":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"t":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{},",":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"start.html":{"ref":"start.html","tf":5.010775862068965},"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"d":{"docs":{},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"t":{"docs":{},"e":{"docs":{"api.html":{"ref":"api.html","tf":0.0007026789635485288}},"m":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"?":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"i":{"docs":{},"c":{"docs":{"api.html":{"ref":"api.html","tf":0.0006148440931049627}}}},"u":{"docs":{"api.html":{"ref":"api.html","tf":0.0013175230566534915}},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"y":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}},"o":{"docs":{},"r":{"docs":{},"a":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.009900990099009901}},"e":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"y":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"e":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207},"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}},"e":{"docs":{},"p":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207}}}},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.036275801493192796}},"s":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.00360122968818621}}}},"]":{"docs":{},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"i":{"docs":{},"f":{"docs":{},"y":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"l":{"docs":{},"(":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"t":{"docs":{},"o":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"t":{"docs":{},">":{"docs":{},"(":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"g":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"u":{"docs":{},"c":{"docs":{},"t":{"docs":{},"u":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"/":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"y":{"docs":{},"l":{"docs":{},"e":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}},"u":{"docs":{},"b":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.002635046113306983}},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},"'":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"(":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"/":{"docs":{},"s":{"docs":{},"d":{"docs":{},"n":{"docs":{},"a":{"docs":{},"d":{"docs":{},"e":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"a":{"docs":{},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"s":{"docs":{},".":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"a":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"2":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}},"2":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}}}}}}}}}}}}}}}}},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},".":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"1":{"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}}}}}}}}}}},"u":{"docs":{},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},".":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"1":{"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"2":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"5":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0007026789635485288}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},"e":{"docs":{},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"b":{"docs":{},"y":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"(":{"docs":{},"o":{"docs":{},"b":{"docs":{},"j":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"(":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}},"f":{"docs":{},"l":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"o":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"t":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"y":{"docs":{},"(":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"b":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},"?":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"o":{"docs":{},"c":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"d":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}},"e":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"g":{"docs":{},"g":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506}}}},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}}}},"c":{"docs":{},"c":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207}},"f":{"docs":{},"u":{"docs":{},"l":{"docs":{},"l":{"docs":{},"y":{"docs":{},",":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}}}}},"h":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}},"m":{"docs":{},"m":{"docs":{},"e":{"docs":{},"r":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}},"r":{"docs":{},"e":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}},"y":{"docs":{},"s":{"docs":{},"t":{"docs":{},"e":{"docs":{},"m":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"n":{"docs":{},"c":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"'":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"h":{"docs":{},"r":{"docs":{},"o":{"docs":{},"n":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}},"d":{"docs":{},"n":{"docs":{},"a":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{},"s":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"o":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"o":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}},"f":{"docs":{},"l":{"docs":{},"o":{"docs":{},"w":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},"_":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"_":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0006148440931049627}},"a":{"docs":{},"l":{"docs":{},"(":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},".":{"docs":{},"s":{"docs":{},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"2":{"0":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"1":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"8":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"3":{"2":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"4":{"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"5":{"4":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"6":{"7":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"p":{"docs":{},"s":{"docs":{},"h":{"docs":{},"o":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0006148440931049627}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"b":{"docs":{},"y":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.001932367149758454}},"a":{"docs":{},"l":{"docs":{},"k":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"k":{"docs":{},"e":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0016688625384277558}},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0004391743522178305}}},"}":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"b":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.011330698287220026}}}}},"c":{"docs":{},"p":{"docs":{},"/":{"docs":{},"i":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}},"e":{"docs":{},"c":{"docs":{},"h":{"docs":{},"n":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.007425742574257425},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"y":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}}},"i":{"docs":{},"c":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"l":{"docs":{},"l":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"e":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"a":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0006148440931049627}},"e":{"docs":{},"r":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},"a":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.009358288770053475},"api.html":{"ref":"api.html","tf":0.0007026789635485288}},"e":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"?":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"a":{"docs":{},"p":{"docs":{},"p":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"d":{"docs":{},"p":{"docs":{},"a":{"docs":{},"r":{"docs":{},"a":{"docs":{},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"s":{"docs":{},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}}}}}}}}}}}}},"d":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"a":{"docs":{},"t":{"docs":{},"a":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}},"s":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"c":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"s":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.000966183574879227}},"_":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"_":{"docs":{},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"x":{"docs":{},"t":{"docs":{"language.html":{"ref":"language.html","tf":0.02564102564102564},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},"a":{"docs":{},"r":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"k":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"s":{"docs":{},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}},"r":{"docs":{},"e":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}},"o":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.007425742574257425},"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0004391743522178305}}}}}}},"u":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"a":{"docs":{},"t":{"docs":{},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}},"e":{"docs":{},"n":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"r":{"docs":{},"e":{"docs":{},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"o":{"docs":{},"u":{"docs":{},"g":{"docs":{},"h":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}},"s":{"docs":{},"e":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}}},"o":{"docs":{},"?":{"docs":{},")":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},"h":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"r":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}}}},"k":{"docs":{},"e":{"docs":{},"n":{"docs":{"start.html":{"ref":"start.html","tf":0.010775862068965518},"api.html":{"ref":"api.html","tf":0.00026350461133069827}},".":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"o":{"docs":{},"k":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"u":{"docs":{},"c":{"docs":{},"h":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"r":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"p":{"docs":{},"i":{"docs":{},"c":{"docs":{},"\"":{"docs":{"api.html":{"ref":"api.html","tf":0.000966183574879227}}}}}}},"r":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506}},"p":{"docs":{},"l":{"docs":{},"e":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}},"a":{"docs":{},"y":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}},"d":{"docs":{},"e":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"e":{"docs":{},"a":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"u":{"docs":{},"e":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"w":{"docs":{},"o":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},")":{"docs":{},"\"":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"m":{"docs":{},"p":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{},"m":{"docs":{},"s":{"docs":{},"?":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"t":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"u":{"docs":{},"r":{"docs":{},"n":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}},"t":{"docs":{},"o":{"docs":{},"r":{"docs":{},"i":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":10.001336898395722}}}}}}},"y":{"docs":{},"p":{"docs":{},"e":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.030742204655248132}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"d":{"docs":{},"e":{"docs":{},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},"s":{"docs":{},".":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"6":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},")":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}}},">":{"docs":{},"(":{"docs":{},"t":{"docs":{},"a":{"docs":{},"r":{"docs":{},"g":{"docs":{},"e":{"docs":{},"t":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}}}}}}}},"u":{"docs":{},"i":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.015086206896551725},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0004391743522178305}},",":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207}}},".":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"p":{"docs":{},"o":{"docs":{},"n":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}},"w":{"docs":{},"e":{"docs":{},"b":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"s":{"docs":{},".":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}},")":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"n":{"docs":{},"i":{"docs":{},"q":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},".":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}},"t":{"docs":{},"s":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"d":{"docs":{},"e":{"docs":{},"r":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"f":{"docs":{},"i":{"docs":{},"n":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}}},"p":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"(":{"docs":{},"p":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{},"p":{"docs":{},"h":{"docs":{},"r":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"t":{"docs":{},"i":{"docs":{},"l":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"w":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},".":{"docs":{},"t":{"docs":{},"s":{"docs":{},":":{"3":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{"start.html":{"ref":"start.html","tf":0.01293103448275862},"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0007026789635485288}},"e":{"docs":{},"(":{"docs":{},"o":{"docs":{},"l":{"docs":{},"d":{"docs":{},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"(":{"docs":{},"d":{"docs":{},"i":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"p":{"docs":{},"u":{"docs":{},"b":{"docs":{},"l":{"docs":{},"i":{"docs":{},"c":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"(":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"d":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}},"s":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"start.html":{"ref":"start.html","tf":0.010775862068965518},"tutorial.html":{"ref":"tutorial.html","tf":0.013368983957219251},"sdna.html":{"ref":"sdna.html","tf":2.6666666666666665},"api.html":{"ref":"api.html","tf":0.001844532279314888}},"e":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.017241379310344827},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0004391743522178305}},".":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}},"s":{"docs":{},"'":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}},"'":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},".":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}},"d":{"docs":{},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"u":{"docs":{},"a":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"r":{"docs":{},"l":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.004010695187165776},"api.html":{"ref":"api.html","tf":0.002108036890645586}},")":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}},".":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"s":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"i":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.0066844919786096255},"api.html":{"ref":"api.html","tf":0.0001756697408871322}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.003689064558629776}},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"?":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"v":{"0":{"docs":{},".":{"0":{"docs":{},".":{"1":{"5":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"docs":{}},"5":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"docs":{}}},"docs":{}}},"docs":{},"a":{"docs":{},"r":{"docs":{},"i":{"docs":{},"o":{"docs":{},"u":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.000878348704435661}}}}}}},"l":{"docs":{},"i":{"docs":{},"d":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0004391743522178305}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}},"u":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}},"i":{"docs":{},"e":{"docs":{},"w":{"docs":{},"s":{"docs":{},"/":{"docs":{},"p":{"docs":{},"o":{"docs":{},"r":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}}}}}}}},"a":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"b":{"docs":{},"s":{"docs":{},"/":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"f":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"y":{"docs":{},"(":{"docs":{},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"e":{"docs":{},"d":{"docs":{},"b":{"docs":{},"y":{"docs":{},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"(":{"docs":{},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"i":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.006060606060606061}},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}},"w":{"docs":{},"e":{"docs":{},"'":{"docs":{},"r":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}},"b":{"3":{"docs":{},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}},"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.00646551724137931},"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"'":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},".":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}},"/":{"docs":{},"b":{"docs":{},"r":{"docs":{},"o":{"docs":{},"w":{"docs":{},"s":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"k":{"docs":{},"e":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"m":{"docs":{},"p":{"docs":{},"l":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}},"l":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}},"h":{"docs":{},"y":{"docs":{},"?":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753}}}},"a":{"docs":{},"t":{"docs":{},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"?":{"docs":{},"!":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"o":{"docs":{},"u":{"docs":{},"t":{"docs":{"./":{"ref":"./","tf":0.0049504950495049506},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"i":{"docs":{},"n":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"f":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"n":{"docs":{},"d":{"docs":{},"o":{"docs":{},"w":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207}},":":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{"./":{"ref":"./","tf":0.0024752475247524753},"start.html":{"ref":"start.html","tf":0.0021551724137931034},"sdna.html":{"ref":"sdna.html","tf":2.6666666666666665}},"s":{"docs":{},"e":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"t":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},"s":{"docs":{},"(":{"docs":{},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}},"a":{"docs":{},"b":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"(":{"docs":{},")":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"a":{"docs":{},"y":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"api.html":{"ref":"api.html","tf":0.0003513394817742644}}},"n":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.0053475935828877},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"s":{"docs":{},"m":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"i":{"docs":{},"t":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"q":{"docs":{},"u":{"docs":{},"e":{"docs":{},"r":{"docs":{},"y":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207},"api.html":{"ref":"api.html","tf":0.00026350461133069827}},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"'":{"docs":{},";":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"\"":{"8":{"4":{"docs":{},"a":{"3":{"2":{"9":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}},"docs":{}},"docs":{}}},"docs":{}},"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}},"@":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"3":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"m":{"docs":{},"/":{"docs":{},"a":{"docs":{},"d":{"4":{"docs":{},"m":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}},"docs":{}}}}}}}}},"docs":{}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"r":{"docs":{},"e":{"docs":{},"\"":{"docs":{},";":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"/":{"docs":{},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"s":{"docs":{},"\"":{"docs":{},";":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"n":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"_":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"_":{"docs":{},"c":{"docs":{},"a":{"docs":{},"p":{"docs":{},"a":{"docs":{},"b":{"docs":{},"i":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"e":{"docs":{},"s":{"docs":{},"\"":{"docs":{},")":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"h":{"docs":{},"i":{"docs":{},"c":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}}}}},"l":{"docs":{},"o":{"docs":{},"g":{"docs":{},"o":{"docs":{},".":{"docs":{},"p":{"docs":{},"n":{"docs":{},"g":{"docs":{},"\"":{"docs":{},")":{"docs":{},",":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},":":{"docs":{},"a":{"docs":{},"d":{"4":{"docs":{},"m":{"docs":{},"%":{"2":{"0":{"docs":{},"w":{"docs":{},"i":{"docs":{},"l":{"docs":{},"l":{"docs":{},"%":{"2":{"0":{"docs":{},"b":{"docs":{},"e":{"docs":{},"%":{"2":{"0":{"docs":{},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"%":{"2":{"0":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"t":{"docs":{},"%":{"2":{"0":{"docs":{},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{},"%":{"2":{"0":{"docs":{},"n":{"docs":{},"e":{"docs":{},"t":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{},"\"":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}}}}},"docs":{}},"docs":{}}}}}}}}},"docs":{}},"docs":{}}}}}}},"docs":{}},"docs":{}}}}}},"docs":{}},"docs":{}}}}},"docs":{}},"docs":{}}}}}}},"docs":{}},"docs":{}}}},"docs":{}}},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"s":{"docs":{},"\"":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0004391743522178305}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"f":{"docs":{},"a":{"docs":{},"i":{"docs":{},"l":{"docs":{},"e":{"docs":{},"d":{"docs":{},"t":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"\"":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"i":{"docs":{},"n":{"docs":{},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"e":{"docs":{},"d":{"docs":{},"b":{"docs":{},"u":{"docs":{},"t":{"docs":{},"n":{"docs":{},"o":{"docs":{},"t":{"docs":{},"s":{"docs":{},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"3":{"docs":{},"v":{"docs":{},"e":{"docs":{},"\"":{"docs":{},",":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}},"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}}}}}},"r":{"docs":{},"i":{"docs":{},"v":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"\"":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"#":{"docs":{},"z":{"docs":{},"q":{"3":{"docs":{},"s":{"docs":{},"h":{"docs":{},"n":{"docs":{},"w":{"docs":{},"d":{"4":{"docs":{},"b":{"docs":{},"g":{"6":{"7":{"docs":{},"k":{"docs":{},"t":{"docs":{},"t":{"docs":{},"v":{"docs":{},"g":{"9":{"docs":{},"e":{"docs":{},"m":{"docs":{},"n":{"docs":{},"n":{"docs":{},"r":{"docs":{},"s":{"docs":{},"r":{"docs":{},"j":{"docs":{},"h":{"docs":{},"k":{"docs":{},"h":{"6":{"docs":{},"c":{"docs":{},"r":{"docs":{},"n":{"docs":{},"c":{"docs":{},"j":{"docs":{},"r":{"docs":{},"r":{"docs":{},"x":{"docs":{},"f":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"q":{"docs":{},"b":{"docs":{},"n":{"docs":{},"i":{"docs":{},"a":{"docs":{},"f":{"docs":{},"\"":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"docs":{}}}}}}},"docs":{}},"docs":{}}}},"docs":{}}}}}}},"docs":{}}}},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}},"d":{"docs":{},"i":{"docs":{},"d":{"docs":{},":":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},":":{"docs":{},"z":{"docs":{},"q":{"3":{"docs":{},"s":{"docs":{},"h":{"docs":{},"n":{"docs":{},"w":{"docs":{},"d":{"4":{"docs":{},"b":{"docs":{},"g":{"6":{"7":{"docs":{},"k":{"docs":{},"t":{"docs":{},"t":{"docs":{},"v":{"docs":{},"g":{"9":{"docs":{},"e":{"docs":{},"m":{"docs":{},"n":{"docs":{},"n":{"docs":{},"r":{"docs":{},"s":{"docs":{},"r":{"docs":{},"j":{"docs":{},"h":{"docs":{},"k":{"docs":{},"h":{"6":{"docs":{},"c":{"docs":{},"r":{"docs":{},"n":{"docs":{},"c":{"docs":{},"j":{"docs":{},"r":{"docs":{},"r":{"docs":{},"x":{"docs":{},"f":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"q":{"docs":{},"b":{"docs":{},"n":{"docs":{},"i":{"docs":{},"a":{"docs":{},"f":{"docs":{},"\"":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}}}},"docs":{}}}}}}},"docs":{}},"docs":{}}}},"docs":{}}}}}}},"docs":{}}}}}}},"a":{"docs":{},"d":{"4":{"docs":{},"m":{"docs":{},":":{"docs":{},"t":{"docs":{},"e":{"docs":{},"s":{"docs":{},"t":{"docs":{},"\"":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"docs":{}}}}},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"\"":{"docs":{},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"b":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"j":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"n":{"docs":{},"i":{"docs":{},"t":{"docs":{},"i":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"q":{"docs":{},"m":{"docs":{},"e":{"docs":{},"b":{"docs":{},"d":{"9":{"docs":{},"n":{"9":{"docs":{},"z":{"5":{"docs":{},"y":{"docs":{},"z":{"docs":{},"s":{"docs":{},"e":{"docs":{},"g":{"docs":{},"x":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"o":{"docs":{},"w":{"docs":{},"w":{"5":{"docs":{},"z":{"docs":{},"m":{"docs":{},"w":{"docs":{},"t":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"j":{"docs":{},"x":{"docs":{},"n":{"6":{"docs":{},"z":{"docs":{},"x":{"docs":{},"j":{"docs":{},"s":{"docs":{},"i":{"7":{"docs":{},"w":{"docs":{},"w":{"docs":{},"m":{"docs":{},"u":{"docs":{},"a":{"8":{"docs":{},"\"":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}},"docs":{}}}}}}},"docs":{}}}}}}},"docs":{}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}}},"docs":{}}},"docs":{}}}}}},"s":{"docs":{},"u":{"docs":{},"n":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}},"i":{"docs":{},"g":{"docs":{},"n":{"docs":{},"a":{"docs":{},"l":{"docs":{},"\"":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"m":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"_":{"docs":{},"l":{"docs":{},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"a":{"docs":{},"l":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"c":{"docs":{},"o":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"\"":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"y":{"docs":{},"n":{"docs":{},"c":{"docs":{},"e":{"docs":{},"d":{"docs":{},"\"":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},"\"":{"docs":{},":":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}},"x":{"docs":{},"x":{"docs":{},"x":{"docs":{},"x":{"docs":{},"\"":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}},"\"":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"a":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}}}}}},"e":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"w":{"docs":{},"s":{"docs":{},"\"":{"docs":{},";":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"'":{"docs":{},".":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"3":{"docs":{},"v":{"docs":{},"e":{"docs":{},"'":{"docs":{},")":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}},"docs":{}}}}}}}}}},"@":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"3":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"m":{"docs":{},"/":{"docs":{},"a":{"docs":{},"d":{"4":{"docs":{},"m":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}},"'":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"docs":{}}}}}}}}},"docs":{}}}}}}}}}},"d":{"docs":{},"e":{"docs":{},"s":{"docs":{},"c":{"docs":{},"r":{"docs":{},"i":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"'":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{},":":{"docs":{},"k":{"docs":{},"e":{"docs":{},"y":{"docs":{},":":{"docs":{},"z":{"docs":{},"q":{"3":{"docs":{},"s":{"docs":{},"h":{"docs":{},"k":{"docs":{},"k":{"docs":{},"u":{"docs":{},"z":{"docs":{},"l":{"docs":{},"v":{"docs":{},"q":{"docs":{},"e":{"docs":{},"f":{"docs":{},"g":{"docs":{},"h":{"docs":{},"d":{"docs":{},"g":{"docs":{},"z":{"docs":{},"g":{"docs":{},"f":{"docs":{},"m":{"docs":{},"u":{"docs":{},"x":{"8":{"docs":{},"v":{"docs":{},"g":{"docs":{},"k":{"docs":{},"g":{"docs":{},"v":{"docs":{},"w":{"docs":{},"s":{"docs":{},"l":{"docs":{},"a":{"8":{"3":{"docs":{},"w":{"2":{"docs":{},"o":{"docs":{},"e":{"docs":{},"k":{"docs":{},"h":{"docs":{},"z":{"docs":{},"x":{"docs":{},"o":{"docs":{},"c":{"docs":{},"w":{"2":{"docs":{},"n":{"docs":{},"'":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"docs":{}}}}}}}}}}},"docs":{}}},"docs":{}},"docs":{}}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}}}}}}},"h":{"docs":{},"o":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"t":{"docs":{},"t":{"docs":{},"p":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"g":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"u":{"docs":{},"b":{"docs":{},".":{"docs":{},"c":{"docs":{},"o":{"docs":{},"m":{"docs":{},"/":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"3":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"m":{"docs":{},"/":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}}}}}}}}},"docs":{}}}}}}}}},"j":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"o":{"docs":{},"f":{"docs":{},"o":{"docs":{},"u":{"docs":{},"n":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"/":{"docs":{},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{},"e":{"docs":{},"'":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"o":{"docs":{},"t":{"docs":{},"e":{"docs":{"language.html":{"ref":"language.html","tf":0.02564102564102564},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},"e":{"docs":{},"t":{"docs":{},"w":{"docs":{},"o":{"docs":{},"r":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}}},"q":{"docs":{},"m":{"docs":{},"e":{"docs":{},"b":{"docs":{},"d":{"9":{"docs":{},"n":{"9":{"docs":{},"z":{"5":{"docs":{},"y":{"docs":{},"z":{"docs":{},"s":{"docs":{},"e":{"docs":{},"g":{"docs":{},"x":{"docs":{},"a":{"docs":{},"r":{"docs":{},"t":{"docs":{},"o":{"docs":{},"w":{"docs":{},"w":{"5":{"docs":{},"z":{"docs":{},"m":{"docs":{},"w":{"docs":{},"t":{"docs":{},"p":{"docs":{},"p":{"docs":{},"o":{"docs":{},"j":{"docs":{},"x":{"docs":{},"n":{"6":{"docs":{},"z":{"docs":{},"x":{"docs":{},"j":{"docs":{},"s":{"docs":{},"i":{"7":{"docs":{},"w":{"docs":{},"w":{"docs":{},"m":{"docs":{},"u":{"docs":{},"a":{"8":{"docs":{},"'":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}},"docs":{}}}}}}},"docs":{}}}}}}},"docs":{}}}}}}}}}}}},"docs":{}}}}}}}}}}}}}},"docs":{}}},"docs":{}}},"docs":{}}}},"z":{"1":{"docs":{},"m":{"docs":{},"k":{"docs":{},"o":{"docs":{},"y":{"8":{"docs":{},"n":{"docs":{},"l":{"docs":{},"v":{"docs":{},"p":{"docs":{},"x":{"docs":{},"y":{"3":{"docs":{},"m":{"docs":{},"i":{"docs":{},"z":{"docs":{},"x":{"8":{"docs":{},"u":{"docs":{},"k":{"docs":{},"u":{"docs":{},"i":{"docs":{},"w":{"docs":{},"u":{"docs":{},"z":{"docs":{},"j":{"docs":{},"x":{"docs":{},"j":{"docs":{},"x":{"docs":{},"s":{"docs":{},"q":{"docs":{},"s":{"docs":{},"t":{"docs":{},"p":{"docs":{},"p":{"docs":{},"d":{"docs":{},"h":{"8":{"docs":{},"s":{"docs":{},"h":{"docs":{},"x":{"docs":{},"c":{"docs":{},"q":{"docs":{},"'":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"docs":{}}}}}}}}}}}}}}}}}}}}},"docs":{}}}}}},"docs":{}}}}}}}},"docs":{}}}}}},"docs":{}}}},"t":{"docs":{},"h":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"s":{"docs":{},"'":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}}}}}}}}},"u":{"docs":{},"u":{"docs":{},"i":{"docs":{},"d":{"docs":{},"'":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"a":{"docs":{},"'":{"docs":{},"}":{"docs":{},")":{"docs":{},")":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"h":{"docs":{},"q":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}}}}}},"r":{"docs":{},"o":{"docs":{},"o":{"docs":{},"t":{"docs":{},"'":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"s":{"docs":{},"o":{"docs":{},"c":{"docs":{},"i":{"docs":{},"a":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},".":{"docs":{},"c":{"docs":{},"a":{"docs":{},"t":{"docs":{},"c":{"docs":{},"h":{"docs":{},"(":{"docs":{},"(":{"docs":{},")":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}}},"t":{"docs":{},"h":{"docs":{},"e":{"docs":{},"n":{"docs":{},"(":{"docs":{},"(":{"docs":{},"{":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},",":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}}}}}}}}},".":{"docs":{},".":{"docs":{},"b":{"docs":{},"e":{"docs":{},"l":{"docs":{},"o":{"docs":{},"n":{"docs":{},"g":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"e":{"docs":{},"n":{"docs":{},"c":{"docs":{},"a":{"docs":{},"p":{"docs":{},"s":{"docs":{},"u":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"=":{"docs":{"start.html":{"ref":"start.html","tf":0.008620689655172414},"tutorial.html":{"ref":"tutorial.html","tf":0.022727272727272728},"language.html":{"ref":"language.html","tf":0.07692307692307693},"api.html":{"ref":"api.html","tf":0.0024593763724198507}},"=":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}},"=":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034},"language.html":{"ref":"language.html","tf":0.02564102564102564},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},">":{"docs":{"start.html":{"ref":"start.html","tf":0.010775862068965518},"tutorial.html":{"ref":"tutorial.html","tf":0.0066844919786096255},"language.html":{"ref":"language.html","tf":0.02564102564102564},"api.html":{"ref":"api.html","tf":0.001932367149758454}}}},"@":{"docs":{},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"3":{"docs":{},"v":{"docs":{},"i":{"docs":{},"s":{"docs":{},"m":{"docs":{},"/":{"docs":{},"a":{"docs":{},"d":{"4":{"docs":{},"m":{"docs":{"start.html":{"ref":"start.html","tf":0.004310344827586207},"api.html":{"ref":"api.html","tf":0.011857707509881422}}}},"docs":{}}}}}}}}},"docs":{}}}}}}}}},"a":{"docs":{},"p":{"docs":{},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"/":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"@":{"3":{"docs":{},".":{"6":{"docs":{},".":{"9":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"docs":{}}},"docs":{}}},"docs":{}}}}}}}}}}}}}}}},"[":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"{":{"docs":{},"\"":{"docs":{},"w":{"docs":{},"i":{"docs":{},"t":{"docs":{},"h":{"docs":{},"\"":{"docs":{},":":{"docs":{},"{":{"docs":{},"\"":{"docs":{},"d":{"docs":{},"o":{"docs":{},"m":{"docs":{},"a":{"docs":{},"i":{"docs":{},"n":{"docs":{},"\"":{"docs":{},":":{"docs":{},"\"":{"docs":{},"*":{"docs":{},"\"":{"docs":{},",":{"docs":{},"\"":{"docs":{},"p":{"docs":{},"o":{"docs":{},"i":{"docs":{},"n":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"\"":{"docs":{},":":{"docs":{},"[":{"docs":{},"\"":{"docs":{},"*":{"docs":{},"\"":{"docs":{},"]":{"docs":{},"}":{"docs":{},",":{"docs":{},"\"":{"docs":{},"c":{"docs":{},"a":{"docs":{},"n":{"docs":{},"\"":{"docs":{},":":{"docs":{},"[":{"docs":{},"\"":{"docs":{},"*":{"docs":{},"\"":{"docs":{},"]":{"docs":{},"}":{"docs":{},"]":{"docs":{},",":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"]":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0003513394817742644}}},"s":{"docs":{},"t":{"docs":{},"r":{"docs":{},"i":{"docs":{},"n":{"docs":{},"g":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"y":{"docs":{},"e":{"docs":{},"t":{"docs":{},".":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}},":":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},")":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}},"s":{"docs":{},"e":{"docs":{},"l":{"docs":{},"f":{"docs":{"start.html":{"ref":"start.html","tf":0.0021551724137931034}}}}}}}}},"i":{"docs":{},"e":{"docs":{},"l":{"docs":{},"d":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"{":{"docs":{"start.html":{"ref":"start.html","tf":0.01939655172413793},"tutorial.html":{"ref":"tutorial.html","tf":0.0106951871657754},"api.html":{"ref":"api.html","tf":0.001054018445322793}}},"}":{"docs":{"start.html":{"ref":"start.html","tf":0.01293103448275862},"tutorial.html":{"ref":"tutorial.html","tf":0.0053475935828877},"api.html":{"ref":"api.html","tf":0.0007905138339920949}},")":{"docs":{"start.html":{"ref":"start.html","tf":0.010775862068965518},"tutorial.html":{"ref":"tutorial.html","tf":0.004010695187165776},"api.html":{"ref":"api.html","tf":0.0001756697408871322}},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925}},";":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},";":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0005270092226613965}}},"[":{"docs":{},"]":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}},")":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.00267379679144385},"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"/":{"docs":{"api.html":{"ref":"api.html","tf":0.030654369784804566}},"/":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.004010695187165776},"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"=":{"docs":{},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"]":{"docs":{},",":{"docs":{"tutorial.html":{"ref":"tutorial.html","tf":0.001336898395721925},"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"#":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"s":{"docs":{},"t":{"docs":{},"a":{"docs":{},"t":{"docs":{},"u":{"docs":{},"s":{"docs":{},"c":{"docs":{},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"e":{"docs":{},"d":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"o":{"docs":{},"l":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0012296881862099253}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0006148440931049627}}}}}}}}}}}}}}},"b":{"docs":{},"a":{"docs":{},"s":{"docs":{},"e":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"e":{"docs":{},"x":{"docs":{},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}},"e":{"docs":{},"x":{"docs":{},"c":{"docs":{},"e":{"docs":{},"p":{"docs":{},"t":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"o":{"docs":{},"c":{"docs":{},"c":{"docs":{},"u":{"docs":{},"r":{"docs":{},"r":{"docs":{},"e":{"docs":{},"d":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"r":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"i":{"docs":{},"o":{"docs":{},"n":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}}}}}}}},"h":{"docs":{},"a":{"docs":{},"n":{"docs":{},"d":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"l":{"docs":{},"a":{"docs":{},"n":{"docs":{},"g":{"docs":{},"u":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"i":{"docs":{},"t":{"docs":{},"e":{"docs":{},"r":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"a":{"docs":{},"l":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}},"m":{"docs":{},"e":{"docs":{},"s":{"docs":{},"s":{"docs":{},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"r":{"docs":{},"e":{"docs":{},"c":{"docs":{},"e":{"docs":{},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}},"n":{"docs":{},"e":{"docs":{},"i":{"docs":{},"g":{"docs":{},"h":{"docs":{},"b":{"docs":{},"o":{"docs":{},"u":{"docs":{},"r":{"docs":{},"h":{"docs":{},"o":{"docs":{},"o":{"docs":{},"d":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}}}}}}}}}}}}}}}}}}}}},"p":{"docs":{},"e":{"docs":{},"r":{"docs":{},"s":{"docs":{},"p":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"i":{"docs":{},"v":{"docs":{},"e":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}}},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"d":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}},"l":{"docs":{},"i":{"docs":{},"n":{"docs":{},"k":{"docs":{},"a":{"docs":{},"d":{"docs":{},"d":{"docs":{},"e":{"docs":{},"d":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}},"r":{"docs":{},"e":{"docs":{},"m":{"docs":{},"o":{"docs":{},"v":{"docs":{},"e":{"docs":{},"d":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}}}}}}}}}}}}},"i":{"docs":{},"d":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},"r":{"docs":{},"u":{"docs":{},"n":{"docs":{},"t":{"docs":{},"i":{"docs":{},"m":{"docs":{},"e":{"docs":{},"c":{"docs":{},"l":{"docs":{},"i":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}},"s":{"docs":{},"u":{"docs":{},"b":{"docs":{},"j":{"docs":{},"e":{"docs":{},"c":{"docs":{},"t":{"docs":{},"c":{"docs":{},"l":{"docs":{},"a":{"docs":{},"s":{"docs":{},"s":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}},"u":{"docs":{},"p":{"docs":{},"d":{"docs":{},"a":{"docs":{},"t":{"docs":{},"e":{"docs":{},"d":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"l":{"docs":{},"b":{"docs":{},"a":{"docs":{},"c":{"docs":{},"k":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"s":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}}}}}}},"r":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}},"&":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"&":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}},"*":{"docs":{"api.html":{"ref":"api.html","tf":0.0003513394817742644}},"a":{"docs":{},"g":{"docs":{},"e":{"docs":{},"n":{"docs":{},"t":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},".":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}},";":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}},">":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},"\\":{"docs":{"api.html":{"ref":"api.html","tf":0.00026350461133069827}}},"`":{"docs":{},"w":{"docs":{},"s":{"docs":{},":":{"docs":{},"/":{"docs":{},"/":{"docs":{},"l":{"docs":{},"o":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{},"h":{"docs":{},"o":{"docs":{},"s":{"docs":{},"t":{"docs":{},":":{"4":{"0":{"0":{"0":{"docs":{},"/":{"docs":{},"g":{"docs":{},"r":{"docs":{},"a":{"docs":{},"p":{"docs":{},"h":{"docs":{},"q":{"docs":{},"l":{"docs":{},"`":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}}}},"docs":{}},"docs":{}},"docs":{}},"docs":{}}}}}}}}}}}}}}}}},"z":{"docs":{},"o":{"docs":{},"m":{"docs":{},"e":{"docs":{},"c":{"docs":{},"a":{"docs":{},"l":{"docs":{"api.html":{"ref":"api.html","tf":0.0001756697408871322}},"l":{"docs":{},"s":{"docs":{},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}},"n":{"docs":{},"a":{"docs":{},"m":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}},"e":{"docs":{},",":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}},":":{"docs":{"api.html":{"ref":"api.html","tf":0.0000878348704435661}}}}}}}}}}},"|":{"docs":{"api.html":{"ref":"api.html","tf":0.0013175230566534915}}},"ƭ":{"docs":{"api.html":{"ref":"api.html","tf":0.0012296881862099253}}},"•":{"docs":{"api.html":{"ref":"api.html","tf":0.026262626262626262}}},"↳":{"docs":{"api.html":{"ref":"api.html","tf":0.0007905138339920949}}},"▸":{"docs":{"api.html":{"ref":"api.html","tf":0.02924901185770751}}}},"length":3770},"corpusTokens":["\"","\"\"","\"#zq3shnwd4bg67kttvg9emnnrsrjhkh6crncjrrxftatqbniaf\",","\",","\"84a329","\"@apollo/client/core\";","\"@apollo/client/link/subscriptions\";","\"@perspect3vism/ad4m","\"a","\"agent","\"connected_with_capabilities\")","\"did:ad4m:test\"","\"did:key:zq3shnwd4bg67kttvg9emnnrsrjhkh6crncjrrxftatqbniaf\",","\"direct","\"except","\"express","\"graphics\",","\"link","\"linklanguagefailedtoinstall\"","\"linklanguageinstalledbutnotsynced\"","\"literal://string:ad4m%20will%20be%20the%20last%20social%20network\",","\"literal://string:thinks\",","\"logo.png\"),","\"name\":","\"neighbourhood","\"neighbourhoodjoininitiated\"","\"perspect","\"perspect3ve\",","\"private\"","\"qmebd9n9z5yzsegxartoww5zmwtppojxn6zxjsi7wwmua8\"","\"qmebd9n9z5yzsegxartoww5zmwtppojxn6zxjsi7wwmua8\",","\"signal\"","\"smart_literal://content\"","\"social","\"sun","\"synced\"","\"uuid\":","\"ws\";","\"xxxx\",","#agentcli","#agentclient:","#agentstatuschangedcallback","#agentstatuschangedcallbacks:","#apollocli","#apolloclient:","#base","#base:","#baseexpress","#baseexpression:","#client","#client:","#exceptionoccurredcallback","#exceptionoccurredcallbacks:","#expressioncli","#expressionclient:","#handl","#handle:","#languagecli","#languageclient:","#liter","#literal:","#messagereceivedcallback","#messagereceivedcallbacks:","#neighbourhoodcli","#neighbourhoodclient:","#perspect","#perspective:","#perspectiveaddedcallback","#perspectiveaddedcallbacks:","#perspectivecli","#perspectiveclient:","#perspectivelinkaddedcallback","#perspectivelinkaddedcallbacks:","#perspectivelinkremovedcallback","#perspectivelinkremovedcallbacks:","#perspectivelinkupdatedcallback","#perspectivelinkupdatedcallbacks:","#perspectiveremovedcallback","#perspectiveremovedcallbacks:","#perspectiveupdatedcallback","#perspectiveupdatedcallbacks:","#pid","#pid:","#runtimecli","#runtimeclient:","#subjectclass","#subjectclass:","#updatedcallback","#updatedcallbacks:","#url","#url:","&","&&","'.perspect3ve')","'@perspect3vism/ad4m","'@perspect3vism/ad4m'","'a'}))","'description'","'did:key:zq3shkkuzlvqefghdgzgfmux8vgkgvwsla83w2oekhzxocw2n',","'graphql","'holochain","'https://github.com/juntofoundation/soci","'https://github.com/perspect3vism/perspect","'link","'name',","'network","'note","'perspect","'qmebd9n9z5yzsegxartoww5zmwtppojxn6zxjsi7wwmua8',","'qmz1mkoy8nlvpxy3mizx8ukuiwuzjxjxsqstppdh8shxcq',","'root',","'social","'thinks'","'uuid',","(\"setup","()","():","(a","(access","(addedlink:","(agent):","(agent:","(and","(best","(broadcast)","(caller):","(caller:","(can","(central","(compar","(diff):","(diff:","(distributed)","(either","(exist","(first","(here","(i.e.","(info):","(info:","(it","(languag","(like","(link","(link):","(link:","(local)","(message):","(message:","(not","(on","(other)","(payload):","(payload:","(perspect","(perspective):","(perspective:","(removedlink:","(sdna","(see","(signal):","(signal:","(static/snapshotted)","(statu","(status)","(subject","(target):","(target:","(they","(through","(uuid):","(uuid:","(which","(who","(yet)","({source,",")","*","*agent","...belong","...encapsul","...repres",".catch(()",".then(({client,","/","//","//=>","0","1","1.","1510fb\",","15:31:52","2","2.","20","2022","23","3","3.","4.","77384c","://.",";","=","==","===","=>",">","@apollo/client@3.6.9","@perspect3vism/ad4m","[","[]","[string,","[{\"with\":{\"domain\":\"*\",\"pointers\":[\"*\"]},\"can\":[\"*\"]}],","\\","],","`ws://localhost:4000/graphql`,","a.k.a.","abil","abov","access","accessor","accord","ackronym","action","action:","actionnam","actionname):","actual","ad","ad4m","ad4m!\");","ad4m'","ad4m)","ad4m,","ad4m.","ad4m...","ad4m.agent.me()","ad4m.agent.me().","ad4m.languages.applytemplateandpublish(","ad4m.languages.meta(","ad4m.neighbourhood.joinfromurl(neighbourhoodurl)","ad4m.neighbourhood.publishfromperspective(","ad4m.perspective.add(\"mi","ad4m.perspective.byuuid(joinedneighbourhood.uuid)","ad4m:","ad4m?","ad4mclient","ad4mclient(apolloclient)","ad4mclient(client,","ad4mclient.ad4mcli","ad4mclient.agent.generate(\"passphrase\")","ad4mclient.agent.status()","ad4mclient.agent.unlock(\"passphrase\")","ad4mclient.expression.create(\"a","ad4mclient.expression.get(address)","ad4mclient.languages.all()","ad4mclient.languages.applytemplateandpublish(\"qmz1mkoy8nlvpxy3mizx8ukuiwuzjxjxsqstppdh8shxcq\",","ad4mclient.languages.meta(\"qmz1mkoy8nlvpxy3mizx8ukuiwuzjxjxsqstppdh8shxcq\")","ad4mclient.neighbourhood.joinfromurl(neighbourhoodurl)","ad4mclient.neighbourhood.publishfromperspective(","ad4mclient.perspective.add(\"a","ad4mclient.perspective.addlink(","ad4mclient.perspective.querylinks(joinedneighbourhood.uuid,","ad4mclient.test.ts.","ad4mclient.ts:19","ad4mclient.ts:20","ad4mclient.ts:21","ad4mclient.ts:22","ad4mclient.ts:23","ad4mclient.ts:24","ad4mclient.ts:25","ad4mclient.ts:28","ad4mclient.ts:40","ad4mclient.ts:44","ad4mclient.ts:48","ad4mclient.ts:52","ad4mclient.ts:56","ad4mclient.ts:60","ad4mconnect","ad4mconnect({","ad4mexecutorvers","ad4mexecutorversion:","ad4msign","ad4msignal:","ad4msignalcb","ad4msignalcb:","adapt","add","add(link):","add(name):","addagentstatuschangedlisten","addagentstatuschangedlistener(listener):","addcallback","addcallback(callback):","added'","added',","addedlink)","addentanglementproof","addentanglementproofs(proofs):","addernam","addexceptioncallback","addexceptioncallback(cb):","addfriend","addfriends(dids):","addit","addition:","additions:","addknownlinklanguagetempl","addknownlinklanguagetemplates(addresses):","addlink","addlink(source,","addlink(uuid,","addlinkexpress","addlinkexpression(link):","addlinkexpression(uuid,","addlinks(links):","addlinks(uuid,","addlisten","addlistener(type,","addmessagecallback","addmessagecallback(callback):","addmessagecallback(cb):","addon","addon:","addperspectiveaddedlisten","addperspectiveaddedlistener(cb):","addperspectivelinkaddedlisten","addperspectivelinkaddedlistener(uuid,","addperspectivelinkremovedlisten","addperspectivelinkremovedlistener(uuid,","addperspectivelinkupdatedlisten","addperspectivelinkupdatedlistener(uuid,","addperspectiveremovedlisten","addperspectiveremovedlistener(cb):","addperspectiveupdatedlisten","addperspectiveupdatedlistener(cb):","address","address,","address.","address.ts:1","address:","address?","addressof","addressof(content):","addsdna","addsdna(sdnacode):","addsignalhandl","addsignalhandler(handler):","addsignalhandler(perspectiveuuid,","addtrustedag","addtrustedagents(agents):","addupdatedlisten","addupdatedlistener(listener):","adhoc","adjust","affect","again","again.","against","agenc","agency,","agent","agent'","agent():","agent(did,","agent)","agent,","agent.","agent/ag","agent/agent.ag","agent/agent.agentexpress","agent/agent.agentsignatur","agent/agent.app","agent/agent.authinfo","agent/agent.cap","agent/agent.entanglementproof","agent/agent.entanglementproofinput","agent/agent.resourc","agent/agent.ts:100","agent/agent.ts:103","agent/agent.ts:105","agent/agent.ts:118","agent/agent.ts:121","agent/agent.ts:123","agent/agent.ts:132","agent/agent.ts:135","agent/agent.ts:137","agent/agent.ts:146","agent/agent.ts:149","agent/agent.ts:151","agent/agent.ts:161","agent/agent.ts:164","agent/agent.ts:167","agent/agent.ts:170","agent/agent.ts:172","agent/agent.ts:183","agent/agent.ts:186","agent/agent.ts:189","agent/agent.ts:192","agent/agent.ts:194","agent/agent.ts:28","agent/agent.ts:36","agent/agent.ts:40","agent/agent.ts:42","agent/agent.ts:58","agent/agent.ts:61","agent/agent.ts:64","agent/agent.ts:67","agent/agent.ts:70","agent/agent.ts:73","agent/agent.ts:75","agent/agent.ts:88","agent/agent.ts:91","agent/agent.ts:94","agent/agent.ts:97","agent/agentcli","agent/agentclient.agentcli","agent/agentclient.initializearg","agent/agentclient.ts:101","agent/agentclient.ts:110","agent/agentclient.ts:121","agent/agentclient.ts:135","agent/agentclient.ts:153","agent/agentclient.ts:165","agent/agentclient.ts:178","agent/agentclient.ts:190","agent/agentclient.ts:213","agent/agentclient.ts:242","agent/agentclient.ts:257","agent/agentclient.ts:269","agent/agentclient.ts:281","agent/agentclient.ts:292","agent/agentclient.ts:304","agent/agentclient.ts:308","agent/agentclient.ts:324","agent/agentclient.ts:328","agent/agentclient.ts:344","agent/agentclient.ts:354","agent/agentclient.ts:364","agent/agentclient.ts:374","agent/agentclient.ts:386","agent/agentclient.ts:398","agent/agentclient.ts:410","agent/agentclient.ts:419","agent/agentclient.ts:66","agent/agentclient.ts:67","agent/agentclient.ts:68","agent/agentclient.ts:69","agent/agentclient.ts:72","agent/agentclient.ts:73","agent/agentclient.ts:80","agent/agentclient.ts:81","agent/agentclient.ts:82","agent/agentclient.ts:84","agent/agentresolv","agent/agentresolver.default","agent/agentresolver.ts:103","agent/agentresolver.ts:108","agent/agentresolver.ts:11","agent/agentresolver.ts:113","agent/agentresolver.ts:123","agent/agentresolver.ts:128","agent/agentresolver.ts:133","agent/agentresolver.ts:138","agent/agentresolver.ts:143","agent/agentresolver.ts:148","agent/agentresolver.ts:16","agent/agentresolver.ts:176","agent/agentresolver.ts:21","agent/agentresolver.ts:31","agent/agentresolver.ts:41","agent/agentresolver.ts:51","agent/agentresolver.ts:62","agent/agentresolver.ts:67","agent/agentresolver.ts:7","agent/agentresolver.ts:75","agent/agentresolver.ts:83","agent/agentresolver.ts:88","agent/agentresolver.ts:93","agent/agentresolver.ts:98","agent/agentstatu","agent/agentstatus.agentstatu","agent/agentstatus.ts:12","agent/agentstatus.ts:15","agent/agentstatus.ts:18","agent/agentstatus.ts:20","agent/agentstatus.ts:6","agent/agentstatus.ts:9","agent:","agent_status_chang","agent_status_changed:","agent_upd","agent_updated:","agentaddentanglementproof","agentaddentanglementproofs(proofs):","agentbydid","agentbydid(did):","agentcli","agentclient(client,","agentclient,","agentdeleteentanglementproof","agentdeleteentanglementproofs(proofs):","agententanglementproofpreflight","agententanglementproofpreflight(devicekey,","agentexpress","agentexpression()","agentgener","agentgenerate(passphrase,","agentgeneratejwt","agentgeneratejwt(requestid,","agentgetapp","agentgetapps():","agentgetentanglementproof","agentgetentanglementproofs():","agentimport","agentimport(did,","agentinfo","agentislock","agentislocked():","agentisuntrust","agentlanguage.","agentlock","agentlock(passphrase,","agentpermitcap","agentpermitcapability(auth):","agentremoveapp","agentremoveapp(requestid):","agentrequestcap","agentrequestcapability(appname,","agentrevoketoken","agentrevoketoken(requestid):","agents'","agents,","agents.","agents...","agents/human","agentservic","agentsignatur","agentsignature(signature,","agentsignmessag","agentsignmessage(message):","agentstatu","agentstatus():","agentstatus(obj?)","agentstatuschang","agentstatuschanged():","agentstatuschangedcallback","agentstatuschangedcallback:","agentstatuschangedcallback[]","agentunlock","agentunlock(passphrase,","agentupd","agentupdated():","agentupdatedcallback","agentupdatedcallback:","agentupdatedcallback[]","agentupdatedirectmessagelanguag","agentupdatedirectmessagelanguage(directmessagelanguage,","agentupdatepublicperspect","agentupdatepublicperspective(perspective,","aggreg","alert(\"connect","alert(\"not","alias","alic","alice'","all():","all,","alllink","allow","alreadi","alway","and/nam","annotations)","anoth","any)","any>,","any>>","any[]","anything.","anyway,","api","apollocli","apolloclient({","apolloclient,","apolloclientany>","apolloqueryresultany>","app","app'","app,","app.","app/ui","appdesc","appdesc,","appdesc:","appiconpath:","applic","applied.","applytemplateandpublish","applytemplateandpublish(sourcelanguagehash,","appnam","appname:","approach,","apps(requestid,","apps,","apps.","apps...\")","apps/ui","appsignalcb","appurl","appurl,","appurl:","arbitrary/semant","architecture.","arg","around","array","array.","arriv","aspect","assign","associ","assum","assumpt","async","atom","auth","auth,","auth:","authent","authinfo","authinfo(appname,","author","author,","author:","authorize,","automat","avail","availableflow","availableflows(expraddr):","avoid","await","b","b.","back","base","base():","base)","base):","baseexpress","baseexpression():","baseexpression,","basi","basic","be","befor","behind","belong","best","between","bia","bit","block","blockchains,","bob","bob.","bone","boolean","bootstrap","both","branch","bring","browser","buffer","build","buildschema","built","bundl","bundle:","button)","buy","byaddress","byaddress(address):","bydid","bydid(did):","byfilt","byfilter(filter):","byuuid","byuuid(uuid):","cach","cache:","calcul","call","call(dnanick,","callasync","callasync(calls,","callback","caller","can't","can)","can:","canva","capabilities)","capabilities):","capabilities:","capability(withf,","capability[]","capabilityrequest","capabilitytoken,","capabl","capit","capitalize(str):","captur","carv","case","case,","cases:","caus","cb","cb):","central","centric","centric.","certain","chain","chang","check","chosen.","claim","class","class'","class,","class.","class:","classtypedatatype>","clean","cleanup/teardown","cli","cli:","click","click:","client","clients:","clone","clone.","close","code","code)","code,","code.","code:","coher","coherence)","collabor","collect","collectionaddertonam","collectionaddertoname(addername):","collectionopt","collections.","collectionsettertonam","collectionsettertoname(addername):","collectiontoaddernam","collectiontoaddername(collection):","collectiontosetternam","collectiontosettername(collection):","combin","come","commit","commit(diff):","common","common,","commun","communicate,","communicate.","complet","complex","compon","comput","concept","concepts:","conceptually,","confirm","conform","confront","connect","connect'","connect.","connect/dist/electron')","connect/web\";","consid","consist","console.log(\"a","console.log(\"got","console.log(data)","console.log(neighbourhoodurl)","console.log(socialcontextmeta)","console.log(who,","const","constitut","constructed:","constructor","constructor)","constructor,","constructoricon","constructoricon():","constructoricon:","contain","content","context","context'","context',","context.","control","conveni","convert","convey","copi","core","core,","count","count,","coupl","cover","creat","create()","create(content,","create(perspective,","createcli","created,","createexpress","createexpression(content,","createpubl","createpublic(content):","createsignedexpress","createsignedexpression(data):","createsubject","createsubjectt>(subjectclass,","creation","criteria,","current","currentrevis","currentrevision():","custom","customset","customsettings:","dapp","data","data,","data:","databas","database,","databases.","datapath.","datapath:","datatyp","datatypeclass","date","deal","decentr","decentralized)","declar","decod","deconstruct","decor","decorators.","decoupl","default","default()","default(result):","defaultoptions:","defin","defined)","definition,","degre","delet","deleteentanglementproof","deleteentanglementproofs(proofs):","deletetrustedag","deletetrustedagents(agents):","deliv","demo","depend","deploy","deriv","describ","descript","description.","description:","description?","description?)","descriptor","descriptor):","descriptor:","design","detail","details)","develop","devicekey","devicekey,","devicekey:","devicekeysignedbydid","devicekeysignedbydid,","devicekeysignedbydid:","devicekeytyp","devicekeytype):","devicekeytype,","devicekeytype:","devices,","dialog","dictat","did","did)","did.ts:1","did:","diddocu","diddocument,","diddocument:","dids,","dids.","didsignedbydevicekey","didsignedbydevicekey)","didsignedbydevicekey:","didsignedbydevicekey?","didsignedbydevicekey?)","didsigningkeyid","didsigningkeyid,","didsigningkeyid:","diff","differ","differenti","differently.","diffs.","digit","direct","direct_message_receiv","direct_message_received:","directli","directmessageadapt","directmessageadapter:","directmessagelanguag","directmessagelanguage:","directori","discuss","disguis","dist/electron","distinct,","distribut","dm","dna","dna()","dna).","dna,","dna.","dna...","dna[]","dnanick","dnanick:","dnas,","document","doesn't","domain","domain:","don't","done","download","dynam","e","each","easi","easiest","ecosystem","electron","element","empti","empty)","empty,","enabl","encod","end","end.","engin","engine)","ensur","ensuresdnasubjectclass","ensuresdnasubjectclass(jsclass):","entangl","entanglementproof","entanglementproof(did,","entanglementproof[]","entanglementproofinput","entanglementproofinput(did,","entanglementproofinput[]","entanglementproofpreflight","entanglementproofpreflight(devicekey,","enter","enum","enumer","enumeration:","epxress","error","error:","establish","etc.","etc.),","european","even","event","everybodi","everyth","evolving)","exact","exactli","exampl","example,","except","exception.exceptiontyp","exception.ts:2","exception.ts:3","exception.ts:4","exception.ts:5","exception_occurred_top","exception_occurred_topic:","exceptioncallback","exceptioncallback:","exceptioncallback[]","exceptioninfo","exceptioninfo()","exceptioninfo)","exceptionoccur","exceptionoccurred():","exceptiontyp","exchang","exectuor,","execut","execute(parameters):","executeact","executeaction(actions,","executor","executor)","executor,","executor.","executorurl})","exist","expect","export","expr","expr)","expraddr","expraddr):","expraddr,","expraddress","express","expression'","expression()","expression():","expression(url):","expression,","expression.","expression/express","expression/expression.express","expression/expression.expressionproof","expression/expression.expressionproofinput","expression/expression.expressionrend","expression/expression.ts:12","expression/expression.ts:15","expression/expression.ts:18","expression/expression.ts:20","expression/expression.ts:29","expression/expression.ts:32","expression/expression.ts:35","expression/expression.ts:38","expression/expression.ts:42","expression/expression.ts:67","expression/expression.ts:9","expression/expression.ts:91","expression/expression.ts:94","expression/expression.ts:97","expression/expressioncli","expression/expressionclient.expressioncli","expression/expressionclient.ts:13","expression/expressionclient.ts:34","expression/expressionclient.ts:55","expression/expressionclient.ts:65","expression/expressionclient.ts:7","expression/expressionclient.ts:76","expression/expressionclient.ts:9","expression/expressionclient.ts:90","expression/expressionref","expression/expressionref.expressionref","expression/expressionref.ts:12","expression/expressionref.ts:14","expression/expressionref.ts:22","expression/expressionref.ts:29","expression/expressionref.ts:9","expression/expressionresolv","expression/expressionresolver.default","expression/expressionresolver.ts:16","expression/expressionresolver.ts:25","expression/expressionresolver.ts:30","expression/expressionresolver.ts:39","expression/expressionresolver.ts:47","expression/expressionresolver.ts:57","expression:","expressionadapt","expressionadapter:","expressioncli","expressionclient(client)","expressionclient,","expressioncr","expressioncreate(content,","expressiongener","expressiongeneric(agent).constructor","expressiongeneric(languagemetainternal).constructor","expressiongeneric(link).constructor","expressiongeneric(neighbourhood).constructor","expressiongeneric(object).constructor","expressiongeneric(perspective).constructor","expressiongeneric(perspectivediff).constructor","expressiongeneric(string).constructor","expressiongenericdatatype>(datatypeclass):","expressiongenericinput","expressiongenericinput(linkinput).constructor","expressiongenericinputdatatype>(datatypeclass):","expressioninteract","expressioninteract(url,","expressioninteractions(url):","expressionisnotverifi","expressionmani","expressionmany(urls):","expressionproof","expressionproof(sig,","expressionproofinput","expressionproofinput()","expressionraw","expressionraw(url):","expressionref","expressionref(lang,","expressionrend","expressionrendered()","expressionrendered[]","expressions),","expressions,","expressions.","expressionsadapt","expressionsinflowst","expressionsinflowstate(flowname,","expressionui","expressionui:","expressionuri","exprref2str","exprref2string(ref):","extend","extens","face","facilit","factori","fals","false,","familiar","featur","features,","fetchpolicy:","fetchresultany,","few","field","fifo","file","file)","file:","filter","filter?","find","finite).","first","first,","fixtures.","flag","flagopt","flow","flowact","flowactions(flowname,","flownam","flowstat","flowstate(flowname,","flowstate):","fn","fnname","fnname,","fnname:","foaf.","follow","for.","form","formal","format","fractal,","fractur","framework","framework.","fresh","friend","friends():","friendsendmessag","friendsendmessage(did,","friendstatu","friendstatus(did):","from(literal):","fromdat","fromdate:","fromurl","fromurl(url):","full","full,","fulli","function","functionality.","functions)","g","game","gener","generate()","generate(passphrase):","generatejwt","generatejwt(requestid,","generatesdna()","generating,","get","get():","get(address):","get(query):","get(url):","get:","getad4mclient,","getal","getall(filter,","getalladapt","getalladapter:","getallsmartliter","getallsmartliterals(perspective):","getallsubjectinst","getallsubjectinstancest>(subjectclass):","getapp","getapps():","getbyauthor","getbyauthor(author,","getbyauthoradapt","getbyauthoradapter:","getentanglementproof","getentanglementproofs():","getexpress","getexpression(expressionuri):","getlanguagesourc","getlanguagesource(address):","getmani","getmany(urls):","getneighbourhoodproxi","getneighbourhoodproxy():","getneighbourhoodproxy(uuid):","getonlineag","getonlineagents():","getraw","getraw(url):","getsdna","getsdna():","getsingletarget","getsingletarget()","getsingletarget(query):","getsubjectproxi","getsubjectproxyt>(base,","gettrustedag","gettrustedagents():","git","github","given","global,","gmt+0200","go","go...","goal","goe","good","grant","graph","graphql","graphqlwslink","graphqlwslink(createclient({","group","guid","hand","handl","handler","handler):","happen","hash","hash():","haslink","haslink(predicate):","hastelepresenceadapt","hastelepresenceadapter():","hastelepresenceadapter(perspectiveuuid):","have","hcaddagentinfo","hcaddagentinfos(agentinfos):","hcagentinfo","hcagentinfos():","here","here.","hide","hierarchi","high","hold","holochain","holochain,","holochain:","holochainlanguagedeleg","holochainsignalcallback?","holochainsignalcallback?):","home,","human","human/ag","i'm","i.e.","icon","icon():","icon(code)","icon:","id","idea,","identifi","ifram","immediately,","immut","implement","impli","import","import(args):","impos","in,","in:","inbox","inbox(filter?):","includ","independent/sovereign","infer","infer(query):","infinit","info","info():","inform","information.","information:","infrastructur","inherit","init","init():","initi","initializearg","initialized.","inject","inmemorycach","inmemorycache(),","insid","instal","installs/regist","instanc","instance.","instancequeri","instancequery(options?):","instancequeryparam","instanti","instead","integr","interact","interact(url,","interaction[]","interactioncal","interactioncall(name,","interactioncall):","interactionmeta","interactionmeta()","interactionmeta[]","interactionparamet","interactionparameter()","interactionparameter[]","interactions(expression):","interactions(url):","interconnect","interfac","interface.","interface/wizard","interface:","interfaces.","intern","internet","interopar","interoper","interoperable,","interoperable.","introduc","introduct","invalid","invalid:","ip","ipf","ipfs').address","ipfs,","ipfs:","irreduc","is.","is:","isexpress","isexpression(e):","isimmutableexpress","isimmutableexpression(expression):","isiniti","isinitialized,","isinitialized:","islink","islink(l):","islock","islocked():","ismatch","ismatch(l):","isn't","issmartliteralbas","issmartliteralbase(perspective,","issubjectinst","issubjectinstancet>(expression,","isunlock","isunlocked,","isunlocked:","it'","it.","item","iter","itself","itself.","javascript","jestsetup","join","joinedneighbourhood","joinfromurl","joinfromurl(url):","journey,","js","jsclass","json","json.parse(expression.data)","json.stringify({","json.stringify({\"uuid\":","just:","k","k)","keep","key","key):","key,","key:","keyof","keys.","keystor","keystore,","keystore.","keystore:","kind","known","knownlinklanguagetempl","knownlinklanguagetemplates():","l","l.name","l1","l2","l2):","label","label:","lang","languag","language\",","language\".","language'","language(address):","language,","language.","language.ts).","language/icon","language/icon.icon","language/icon.ts:6","language/icon.ts:8","language/languag","language/language.directmessageadapt","language/language.expressionadapt","language/language.expressionui","language/language.getalladapt","language/language.getbyauthoradapt","language/language.interact","language/language.interactioncal","language/language.interactionmeta","language/language.interactionparamet","language/language.languag","language/language.languageadapt","language/language.linksyncadapt","language/language.onlineag","language/language.publicshar","language/language.readonlylanguag","language/language.settingsui","language/language.telepresenceadapt","language/language.ts:105","language/language.ts:117","language/language.ts:127","language/language.ts:131","language/language.ts:138","language/language.ts:147","language/language.ts:150","language/language.ts:162","language/language.ts:163","language/language.ts:164","language/language.ts:169","language/language.ts:172","language/language.ts:175","language/language.ts:178","language/language.ts:181","language/language.ts:184","language/language.ts:187","language/language.ts:188","language/language.ts:190","language/language.ts:192","language/language.ts:193","language/language.ts:194","language/language.ts:196","language/language.ts:197","language/language.ts:198","language/language.ts:204","language/language.ts:207","language/language.ts:213","language/language.ts:216","language/language.ts:219","language/language.ts:222","language/language.ts:223","language/language.ts:224","language/language.ts:225","language/language.ts:231","language/language.ts:233","language/language.ts:235","language/language.ts:239","language/language.ts:248","language/language.ts:250","language/language.ts:253","language/language.ts:255","language/language.ts:256","language/language.ts:258","language/language.ts:259","language/language.ts:26","language/language.ts:260","language/language.ts:31","language/language.ts:38","language/language.ts:41","language/language.ts:44","language/language.ts:53","language/language.ts:56","language/language.ts:59","language/language.ts:61","language/language.ts:64","language/language.ts:67","language/language.ts:70","language/language.ts:73","language/language.ts:79","language/language.ts:81","language/language.ts:85","language/language.ts:92","language/languagecli","language/languageclient.languagecli","language/languageclient.ts:114","language/languageclient.ts:131","language/languageclient.ts:146","language/languageclient.ts:29","language/languageclient.ts:31","language/languageclient.ts:35","language/languageclient.ts:47","language/languageclient.ts:59","language/languageclient.ts:63","language/languageclient.ts:76","language/languageclient.ts:95","language/languagecontext","language/languagecontext.agentservic","language/languagecontext.dna","language/languagecontext.holochainlanguagedeleg","language/languagecontext.languagecontext","language/languagecontext.signaturesservic","language/languagecontext.ts:11","language/languagecontext.ts:15","language/languagecontext.ts:16","language/languagecontext.ts:17","language/languagecontext.ts:18","language/languagecontext.ts:19","language/languagecontext.ts:20","language/languagecontext.ts:21","language/languagecontext.ts:25","language/languagecontext.ts:26","language/languagecontext.ts:27","language/languagecontext.ts:32","language/languagecontext.ts:34","language/languagecontext.ts:36","language/languagecontext.ts:39","language/languagecontext.ts:6","language/languagecontext.ts:7","language/languagehandl","language/languagehandle.languagehandl","language/languagehandle.ts:10","language/languagehandle.ts:13","language/languagehandle.ts:16","language/languagehandle.ts:19","language/languagehandle.ts:22","language/languagehandle.ts:7","language/languagemeta","language/languagemeta.languageexpress","language/languagemeta.languagelanguageinput","language/languagemeta.languagemeta","language/languagemeta.languagemetainput","language/languagemeta.languagemetaintern","language/languagemeta.ts:10","language/languagemeta.ts:13","language/languagemeta.ts:16","language/languagemeta.ts:19","language/languagemeta.ts:22","language/languagemeta.ts:25","language/languagemeta.ts:28","language/languagemeta.ts:31","language/languagemeta.ts:37","language/languagemeta.ts:40","language/languagemeta.ts:43","language/languagemeta.ts:46","language/languagemeta.ts:48","language/languagemeta.ts:56","language/languagemeta.ts:57","language/languagemeta.ts:58","language/languagemeta.ts:59","language/languagemeta.ts:60","language/languagemeta.ts:61","language/languagemeta.ts:62","language/languagemeta.ts:68","language/languagemeta.ts:69","language/languagemeta.ts:7","language/languageref","language/languageref.languageref","language/languageref.ts:12","language/languageref.ts:14","language/languageref.ts:9","language/languageresolv","language/languageresolver.default","language/languageresolver.ts:16","language/languageresolver.ts:29","language/languageresolver.ts:41","language/languageresolver.ts:49","language/languageresolver.ts:57","language/languageresolver.ts:75","language/languageresolver.ts:90","language/languageresolver.ts:95","language:","languageadapt","languageadapter:","languageaddress","languageaddress):","languageapplytemplateandpublish","languageapplytemplateandpublish(sourcelanguagehash,","languagecli","languageclient(apolloclient)","languageclient,","languagecontext","languageexpress","languageexpression()","languagehandl","languagehandle()","languagehandle[]","languageisnotload","languagelanguageinput","languagelanguageinput()","languagemeta","languagemeta()","languagemeta(address):","languagemeta):","languagemetainput","languagemetainput(name?,","languagemetaintern","languagemetainternal()","languagepath","languagepublish","languagepublish(languagepath,","languageref","languageref(address?,","languageremov","languageremove(address):","languages\"","languages():","languages(filter):","languages)","languages,","languages.","languages...","languages.applytemplateandpublish()","languages.find(l","languagesourc","languagesource(address):","languagewriteset","languagewritesettings(languageaddress,","last","later","latest","latestrevis","latestrevision():","latter","latter,","launcher","layer","layers.","leak","leav","less","let'","level","life","like:","limit","limit:","link","link(obj)","link({","link):","link,","link.","link.data.sourc","link.data.target","link:","link:\",","link[]","link_added_top","link_added_topic:","link_removed_top","link_removed_topic:","link_udated_top","link_udated_topic:","linkcallback","linkcallback:","linkcallback[]","linkequ","linkequal(l1,","linkexpres","linkexpress","linkexpression()","linkexpression)","linkexpression.","linkexpression[]","linkexpressioninput","linkexpressioninput()","linkexpressioninput[]","linkexpressionmut","linkexpressionmutations(additions,","linkexpressions.","linkexpressionupd","linkexpressionupdated(oldlink,","linkinput","linkinput()","linkinput[]","linklanguag","linklanguage,","linklanguage.","linklanguage:","linklanguagefailedtoinstal","linklanguageinstalledbutnotsync","linkmut","linkmutations()","linkmutations(mutations):","linkmutations(uuid,","linkqueri","linkquery(obj)","linkquery({","linkquery({source:","linkquery({}))","links)","links):","links,","links.","links.foreach(async","links/link","links/links.link","links/links.linkexpress","links/links.linkexpressioninput","links/links.linkexpressionmut","links/links.linkexpressionupd","links/links.linkinput","links/links.linkmut","links/links.ts:10","links/links.ts:13","links/links.ts:15","links/links.ts:25","links/links.ts:28","links/links.ts:33","links/links.ts:36","links/links.ts:38","links/links.ts:47","links/links.ts:50","links/links.ts:53","links/links.ts:58","links/links.ts:7","links/links.ts:74","links/links.ts:82","links/links.ts:89","links/links.ts:92","links/links.ts:94","links:","links?","linksadapt","linksadapter).","linksadapter:","linksyncadapt","list","list/graph","listen","listen.","liter","literal()","literal):","literal.from(\"ad4m","literal.from(\"thinks\").tourl()","literal.fromurl('literal://string:thinks').get()","literal.fromurl(link.data.target).get()","literal.liter","literal.ts:10","literal.ts:11","literal.ts:13","literal.ts:21","literal.ts:27","literal.ts:49","literal://string:ad4m%20will%20be%20the%20last%20social%20network.","literal://string:think","load","loadsnapshot","loadsnapshot(snapshot):","local","localstorag","lock","lock(passphrase):","locking,","long","look","lot","machine.","made","main","mainli","mainten","make","making.","malleabl","manag","mani","map","markup:","match","maximum","me():","me).","me.did","mean","meaning,","mechan","member","membran","membrane.","mention","messag","message):","message:","messagecallback","messagecallback:","messagecallback[]","messageinbox","messageinbox(filter?):","messageoutbox","messageoutbox(filter?):","messages)","meta","meta(address):","meta)","meta):","meta:","method","methods.","minim","minutes!","mobil","modal","model","modifi","modul","module:","monolith","more","more.","much","multi","multipl","mutabl","mutat","mutatepublicperspect","mutatepublicperspective(mutations):","mutations):","mutations,","mutations.","mutuali","myperspect","myperspective.add()","myperspective.add({source,","myperspective.addlistener('link","myperspective.get(new","myperspective.uuid,","name","name():","name):","name,","name.","name:","name?","name?)","name?,","names,","names.","need","neigbourhood,","neighbourhood","neighbourhood\"","neighbourhood\"}));","neighbourhood'","neighbourhood():","neighbourhood(linklanguage,","neighbourhood,","neighbourhood.","neighbourhood/neighbourhood","neighbourhood/neighbourhood.neighbourhood","neighbourhood/neighbourhood.neighbourhoodexpress","neighbourhood/neighbourhood.ts:10","neighbourhood/neighbourhood.ts:13","neighbourhood/neighbourhood.ts:15","neighbourhood/neighbourhoodcli","neighbourhood/neighbourhoodclient.neighbourhoodcli","neighbourhood/neighbourhoodclient.ts:11","neighbourhood/neighbourhoodclient.ts:111","neighbourhood/neighbourhoodclient.ts:128","neighbourhood/neighbourhoodclient.ts:13","neighbourhood/neighbourhoodclient.ts:147","neighbourhood/neighbourhoodclient.ts:164","neighbourhood/neighbourhoodclient.ts:17","neighbourhood/neighbourhoodclient.ts:39","neighbourhood/neighbourhoodclient.ts:66","neighbourhood/neighbourhoodclient.ts:76","neighbourhood/neighbourhoodclient.ts:86","neighbourhood/neighbourhoodproxi","neighbourhood/neighbourhoodproxy.neighbourhoodproxi","neighbourhood/neighbourhoodproxy.ts:10","neighbourhood/neighbourhoodproxy.ts:15","neighbourhood/neighbourhoodproxy.ts:19","neighbourhood/neighbourhoodproxy.ts:23","neighbourhood/neighbourhoodproxy.ts:27","neighbourhood/neighbourhoodproxy.ts:31","neighbourhood/neighbourhoodproxy.ts:35","neighbourhood/neighbourhoodproxy.ts:39","neighbourhood/neighbourhoodproxy.ts:7","neighbourhood/neighbourhoodproxy.ts:8","neighbourhood/neighbourhoodresolv","neighbourhood/neighbourhoodresolver.default","neighbourhood/neighbourhoodresolver.ts:28","neighbourhood/neighbourhoodresolver.ts:37","neighbourhood/neighbourhoodresolver.ts:48","neighbourhood/neighbourhoodresolver.ts:53","neighbourhood/neighbourhoodresolver.ts:58","neighbourhood/neighbourhoodresolver.ts:66","neighbourhood/neighbourhoodresolver.ts:71","neighbourhood/neighbourhoodresolver.ts:76","neighbourhood/neighbourhoodresolver.ts:81","neighbourhood:","neighbourhood://qm123456789abcdef","neighbourhood_signal_received_top","neighbourhood_signal_received_topic:","neighbourhoodcli","neighbourhoodclient(client)","neighbourhoodclient,","neighbourhoodexpress","neighbourhoodexpression()","neighbourhoodhastelepresenceadapt","neighbourhoodhastelepresenceadapter(perspectiveuuid):","neighbourhoodjoinfromurl","neighbourhoodjoinfromurl(url,","neighbourhoodjoininiti","neighbourhoodonlineag","neighbourhoodonlineagents(perspectiveuuid):","neighbourhoodotherag","neighbourhoodotheragents(perspectiveuuid):","neighbourhoodproxi","neighbourhoodproxy(client,","neighbourhoodpublishfromperspect","neighbourhoodpublishfromperspective(perspectiveuuid,","neighbourhoods,","neighbourhoods.","neighbourhoodsendbroadcast","neighbourhoodsendbroadcast(perspectiveuuid,","neighbourhoodsendsign","neighbourhoodsendsignal(perspectiveuuid,","neighbourhoodsetonlinestatu","neighbourhoodsetonlinestatus(perspectiveuuid,","neighbourhoodsign","neighbourhoodsignal(pid):","neighbourhoodurl","network","network\").tourl()","network.","network.',","networks,","networks.","networks:","new","newlink","newlink)","newlink):","newlink,","newlink:","next","next,","nextfetchpolicy:","nick","nick:","node,","node/agent)","node/electron","note\"","note\",","noteipfsaddress","noteipfsaddress)","notif","now","npm","null","null,","number","obj","obj?","object","object)","object.","object:","objects)","objects.","occur","oct","off","offer","ok,","oldlink","oldlink,","oldlink:","on","on.","on/with","onauthstatechang","onauthstatechanged(async","one.","onlin","onlineag","onlineagent()","onlineagent[]","onlineagents():","onlineagents(perspectiveuuid):","only'","only',","onotolog","onto","ontolog","ontology*","ontology,","ontology.","open","openlink","openlink(url):","oper","opt","option","options?","order","organ","organisms)","other","otherag","otheragents():","otheragents(perspectiveuuid):","others():","others.","otherwis","out","output","over","overrid","p2p","pack","page","page):","paradigm","parallel","param","paramet","parameter)","parameter[]","parameters():","parameters)","parameters):","parameters.","parameters:","parametersstringifi","parametersstringified:","params):","params:","parseexprurl","parseexprurl(url):","part","partial","particles.","passphras","passphrase):","passphrase.","passphrase:","path","path.join(__dirname,","path.join(homedir(),","patterns/soci","payload","payload):","per","perceiv","permitcap","permitcapability(auth):","perspect","perspect3v","perspecti","perspectiv","perspective\")","perspective\".","perspective'","perspective()","perspective():","perspective(links?)","perspective(uuid):","perspective,","perspective.","perspective:","perspective?","perspective?)","perspective_added_top","perspective_added_topic:","perspective_removed_top","perspective_removed_topic:","perspective_updated_top","perspective_updated_topic:","perspectiveact","perspectiveaction()","perspectivead","perspectiveadd","perspectiveadd(name,","perspectiveadded():","perspectiveaddlink","perspectiveaddlink(uuid,","perspectiveaddlinkexpress","perspectiveaddlinkexpression(uuid,","perspectiveaddlinks(uuid,","perspectivecli","perspectiveclient(client,","perspectivediff","perspectivediff()","perspectivediff)","perspectivediffexpress","perspectivediffexpression()","perspectivediffobserv","perspectivediffobserver:","perspectiveexpress","perspectiveexpression()","perspectiveexpression)","perspectiveexpression>","perspectiveexpression[]","perspectivehandl","perspectivehandle(uuid?,","perspectivehandle)","perspectivehandle.uuid,","perspectivehandle[]","perspectivehandlecallback","perspectivehandlecallback:","perspectivehandlecallback[]","perspectiveinput","perspectiveinput()","perspectivelinkad","perspectivelinkadded(uuid):","perspectivelinkmut","perspectivelinkmutations(uuid,","perspectivelinkremov","perspectivelinkremoved(uuid):","perspectivelinkupd","perspectivelinkupdated(uuid):","perspectivelistenertyp","perspectiveproxi","perspectiveproxy(handle,","perspectiveproxy,","perspectivepublishsnapshot","perspectivepublishsnapshot(uuid):","perspectivequerylink","perspectivequerylinks(uuid,","perspectivequeryprolog","perspectivequeryprolog(uuid,","perspectiveremov","perspectiveremove(uuid,","perspectiveremoved():","perspectiveremovelink","perspectiveremovelink(uuid,","perspectiveremovelinks(uuid,","perspectives():","perspectives)","perspectives,","perspectives.","perspectives...","perspectives/associ","perspectives/linkqueri","perspectives/linkquery.linkqueri","perspectives/linkquery.ts:11","perspectives/linkquery.ts:14","perspectives/linkquery.ts:17","perspectives/linkquery.ts:20","perspectives/linkquery.ts:23","perspectives/linkquery.ts:25","perspectives/linkquery.ts:51","perspectives/linkquery.ts:8","perspectives/neighbourhood","perspectives/perspect","perspectives/perspective.perspect","perspectives/perspective.perspectiveexpress","perspectives/perspective.perspectiveinput","perspectives/perspective.ts:22","perspectives/perspective.ts:24","perspectives/perspective.ts:33","perspectives/perspective.ts:81","perspectives/perspective.ts:95","perspectives/perspectivecli","perspectives/perspectiveclient.perspectivecli","perspectives/perspectiveclient.ts:107","perspectives/perspectiveclient.ts:117","perspectives/perspectiveclient.ts:129","perspectives/perspectiveclient.ts:140","perspectives/perspectiveclient.ts:152","perspectives/perspectiveclient.ts:164","perspectives/perspectiveclient.ts:173","perspectives/perspectiveclient.ts:185","perspectives/perspectiveclient.ts:197","perspectives/perspectiveclient.ts:209","perspectives/perspectiveclient.ts:226","perspectives/perspectiveclient.ts:238","perspectives/perspectiveclient.ts:261","perspectives/perspectiveclient.ts:274","perspectives/perspectiveclient.ts:278","perspectives/perspectiveclient.ts:283","perspectives/perspectiveclient.ts:287","perspectives/perspectiveclient.ts:302","perspectives/perspectiveclient.ts:306","perspectives/perspectiveclient.ts:321","perspectives/perspectiveclient.ts:325","perspectives/perspectiveclient.ts:340","perspectives/perspectiveclient.ts:357","perspectives/perspectiveclient.ts:374","perspectives/perspectiveclient.ts:39","perspectives/perspectiveclient.ts:398","perspectives/perspectiveclient.ts:40","perspectives/perspectiveclient.ts:41","perspectives/perspectiveclient.ts:43","perspectives/perspectiveclient.ts:44","perspectives/perspectiveclient.ts:45","perspectives/perspectiveclient.ts:46","perspectives/perspectiveclient.ts:47","perspectives/perspectiveclient.ts:48","perspectives/perspectiveclient.ts:50","perspectives/perspectiveclient.ts:63","perspectives/perspectiveclient.ts:67","perspectives/perspectiveclient.ts:71","perspectives/perspectiveclient.ts:83","perspectives/perspectiveclient.ts:96","perspectives/perspectivediff","perspectives/perspectivediff.perspectivediff","perspectives/perspectivediff.perspectivediffexpress","perspectives/perspectivediff.ts:11","perspectives/perspectivediff.ts:8","perspectives/perspectivehandl","perspectives/perspectivehandle.perspectivehandl","perspectives/perspectivehandle.perspectivest","perspectives/perspectivehandle.ts:18","perspectives/perspectivehandle.ts:20","perspectives/perspectivehandle.ts:22","perspectives/perspectivehandle.ts:25","perspectives/perspectivehandle.ts:28","perspectives/perspectivehandle.ts:30","perspectives/perspectivehandle.ts:5","perspectives/perspectivehandle.ts:6","perspectives/perspectivehandle.ts:7","perspectives/perspectivehandle.ts:8","perspectives/perspectivehandle.ts:9","perspectives/perspectiveproxi","perspectives/perspectiveproxy.perspectiveproxi","perspectives/perspectiveproxy.ts:100","perspectives/perspectiveproxy.ts:105","perspectives/perspectiveproxy.ts:110","perspectives/perspectiveproxy.ts:115","perspectives/perspectiveproxy.ts:120","perspectives/perspectiveproxy.ts:125","perspectives/perspectiveproxy.ts:130","perspectives/perspectiveproxy.ts:135","perspectives/perspectiveproxy.ts:140","perspectives/perspectiveproxy.ts:145","perspectives/perspectiveproxy.ts:149","perspectives/perspectiveproxy.ts:153","perspectives/perspectiveproxy.ts:157","perspectives/perspectiveproxy.ts:161","perspectives/perspectiveproxy.ts:169","perspectives/perspectiveproxy.ts:183","perspectives/perspectiveproxy.ts:203","perspectives/perspectiveproxy.ts:208","perspectives/perspectiveproxy.ts:227","perspectives/perspectiveproxy.ts:243","perspectives/perspectiveproxy.ts:259","perspectives/perspectiveproxy.ts:265","perspectives/perspectiveproxy.ts:27","perspectives/perspectiveproxy.ts:271","perspectives/perspectiveproxy.ts:279","perspectives/perspectiveproxy.ts:28","perspectives/perspectiveproxy.ts:285","perspectives/perspectiveproxy.ts:29","perspectives/perspectiveproxy.ts:291","perspectives/perspectiveproxy.ts:297","perspectives/perspectiveproxy.ts:30","perspectives/perspectiveproxy.ts:307","perspectives/perspectiveproxy.ts:31","perspectives/perspectiveproxy.ts:318","perspectives/perspectiveproxy.ts:328","perspectives/perspectiveproxy.ts:33","perspectives/perspectiveproxy.ts:337","perspectives/perspectiveproxy.ts:345","perspectives/perspectiveproxy.ts:368","perspectives/perspectiveproxy.ts:386","perspectives/perspectiveproxy.ts:401","perspectives/perspectiveproxy.ts:416","perspectives/perspectiveproxy.ts:44","perspectives/perspectiveproxy.ts:444","perspectives/perspectiveproxy.ts:506","perspectives/perspectiveproxy.ts:514","perspectives/perspectiveproxy.ts:90","perspectives/perspectiveproxy.ts:95","perspectives/perspectiveresolv","perspectives/perspectiveresolver.default","perspectives/perspectiveresolver.ts:102","perspectives/perspectiveresolver.ts:121","perspectives/perspectiveresolver.ts:140","perspectives/perspectiveresolver.ts:147","perspectives/perspectiveresolver.ts:153","perspectives/perspectiveresolver.ts:166","perspectives/perspectiveresolver.ts:172","perspectives/perspectiveresolver.ts:178","perspectives/perspectiveresolver.ts:183","perspectives/perspectiveresolver.ts:188","perspectives/perspectiveresolver.ts:193","perspectives/perspectiveresolver.ts:198","perspectives/perspectiveresolver.ts:30","perspectives/perspectiveresolver.ts:44","perspectives/perspectiveresolver.ts:49","perspectives/perspectiveresolver.ts:54","perspectives/perspectiveresolver.ts:59","perspectives/perspectiveresolver.ts:64","perspectives/perspectiveresolver.ts:69","perspectives/perspectiveresolver.ts:76","perspectives/perspectiveresolver.ts:83","perspectives/perspectiveresolver.ts:9","perspectives/perspectiveresolver.ts:90","perspectivesnapshot","perspectivesnapshot(uuid):","perspectivest","perspectiveupd","perspectiveupdate(uuid,","perspectiveupdated():","perspectiveupdatelink","perspectiveupdatelink(uuid,","perspectiveuuid","physic","pid","pid)","plural","pluraltosingular","pluraltosingular(plural):","pods,","point","pointer","pointers)","pointers:","pop","possibletemplateparam","possibletemplateparams:","postul","potenti","pre","precise).","predic","predicate,","predicate.","predicate:","present","previou","previous","primit","principl","principles,","privat","private,","problem","product","profil","profile.","project:","prolog","promise((resolve,","promiseagent>","promiseagentstatus>","promiseany>","promiseany[]>","promiseapps[]>","promiseboolean>","promiseentanglementproof>","promiseentanglementproof[]>","promiseexpression>","promiseexpression[]>","promiseexpressionrendered>","promiseexpressionrendered[]>","promiseinteractionmeta[]>","promiselanguagehandle>","promiselanguagehandle[]>","promiselanguagemeta>","promiselanguageref>","promiselinkexpression>","promiselinkexpression[]>","promiselinkexpressionmutations>","promisenumber>","promiseobject>","promiseonlineagent[]>","promiseperspective>","promiseperspectivediff>","promiseperspectiveexpression>","promiseperspectiveexpression[]>","promiseperspectivehandle>","promiseperspectiveproxy>","promiseperspectiveproxy[]>","promiseperspectiveremove:","promiseperspectiveremovelink:","promiseruntimeinfo>","promisesentmessage[]>","promisesmartliteral>","promisesmartliteral[]>","promisestr","promisestring>","promisestring[]>","promiset>","promiset[]>","promisevoid","promisevoid>","prompt","proof","proof:","properti","propertydescriptor","propertydescriptor)","propertynametosetternam","propertynametosettername(property):","propertyopt","protocol","provid","proxi","proxy\"","public","public():","publickey","publickey)","publickey:","publicli","publicshar","publish","publish(languagepath,","publishfromperspect","publishfromperspective(perspectiveuuid,","publishsnapshotbyuuid","publishsnapshotbyuuid(uuid):","pubsub","pubsub):","pubsub.ts:1","pubsub.ts:10","pubsub.ts:11","pubsub.ts:12","pubsub.ts:2","pubsub.ts:3","pubsub.ts:4","pubsub.ts:5","pubsub.ts:6","pubsub.ts:7","pubsub.ts:8","pubsub.ts:9","pull","pull():","pulled)","pure","purpos","push","put","putadapt","putadapter:","qmebd9n9z5yzsegxartoww5zmwtppojxn6zxjsi7wwmua8.","qmz1mkoy8nlvpxy3mizx8ukuiwuzjxjxsqstppdh8shxcq.","qualiti","queri","query):","queryi","querylink","querylinks(uuid,","queryprolog","queryprolog(uuid,","queue","quickli","quintess","quintessenti","quit","quit():","rand","rand):","random","rdf/semant","read","readi","readonli","readonlylanguag","real","realiti","realli","receiv","recipi","recipient():","recipient,","recipient:","recogniz","recordstring,","ref","refer","referenc","reflex","regard","regist","registerdna","registerdnas(dnas,","registersignalcallback","registersignalcallback(callback):","reject())","reject)","releas","release.","remot","remoteagentdid","remoteagentdid,","remov","removals)","removals:","remove(address):","remove(link):","remove(uuid):","removeapp","removeapp(requestid):","removed'","removed',","removed:\",","removedlink)","removefriend","removefriends(dids):","removeknownlinklanguagetempl","removeknownlinklanguagetemplates(addresses):","removelink","removelink(uuid,","removelinks(links):","removelinks(uuid,","removelisten","removelistener(type,","render","render()","render():","replac","repres","represent","request","requestcap","requestcapability(appname,","requested.","requestid","requestid:","requir","require('@perspect3vism/ad4m","require('path')","resolv","resolve(client)","resolve(getad4mclient())","resourc","resource(domain,","respect","restrict","result","retriev","return","revis","revok","revoked:","revoked?","revoked?)","revoketoken","revoketoken(requestid):","right","risky.","root","run","run/instal","run:","runflowact","runflowaction(flowname,","runtim","runtime():","runtime/runtimecli","runtime/runtimeclient.runtimecli","runtime/runtimeclient.ts:109","runtime/runtimeclient.ts:119","runtime/runtimeclient.ts:128","runtime/runtimeclient.ts:138","runtime/runtimeclient.ts:148","runtime/runtimeclient.ts:157","runtime/runtimeclient.ts:166","runtime/runtimeclient.ts:176","runtime/runtimeclient.ts:186","runtime/runtimeclient.ts:196","runtime/runtimeclient.ts:20","runtime/runtimeclient.ts:206","runtime/runtimeclient.ts:21","runtime/runtimeclient.ts:216","runtime/runtimeclient.ts:226","runtime/runtimeclient.ts:24","runtime/runtimeclient.ts:241","runtime/runtimeclient.ts:245","runtime/runtimeclient.ts:25","runtime/runtimeclient.ts:26","runtime/runtimeclient.ts:260","runtime/runtimeclient.ts:264","runtime/runtimeclient.ts:28","runtime/runtimeclient.ts:39","runtime/runtimeclient.ts:52","runtime/runtimeclient.ts:60","runtime/runtimeclient.ts:70","runtime/runtimeclient.ts:80","runtime/runtimeclient.ts:90","runtime/runtimeclient.ts:99","runtime/runtimeresolv","runtime/runtimeresolver.default","runtime/runtimeresolver.exceptioninfo","runtime/runtimeresolver.runtimeinfo","runtime/runtimeresolver.sentmessag","runtime/runtimeresolver.ts:104","runtime/runtimeresolver.ts:109","runtime/runtimeresolver.ts:114","runtime/runtimeresolver.ts:119","runtime/runtimeresolver.ts:124","runtime/runtimeresolver.ts:129","runtime/runtimeresolver.ts:134","runtime/runtimeresolver.ts:139","runtime/runtimeresolver.ts:148","runtime/runtimeresolver.ts:153","runtime/runtimeresolver.ts:158","runtime/runtimeresolver.ts:166","runtime/runtimeresolver.ts:171","runtime/runtimeresolver.ts:180","runtime/runtimeresolver.ts:185","runtime/runtimeresolver.ts:30","runtime/runtimeresolver.ts:32","runtime/runtimeresolver.ts:38","runtime/runtimeresolver.ts:40","runtime/runtimeresolver.ts:42","runtime/runtimeresolver.ts:48","runtime/runtimeresolver.ts:50","runtime/runtimeresolver.ts:52","runtime/runtimeresolver.ts:54","runtime/runtimeresolver.ts:65","runtime/runtimeresolver.ts:70","runtime/runtimeresolver.ts:75","runtime/runtimeresolver.ts:84","runtime/runtimeresolver.ts:89","runtime/runtimeresolver.ts:94","runtime/runtimeresolver.ts:99","runtimeaddfriend","runtimeaddfriends(dids):","runtimeaddknownlinklanguagetempl","runtimeaddknownlinklanguagetemplates(addresses):","runtimecli","runtimeclient(client,","runtimefriend","runtimefriends():","runtimefriendsendmessag","runtimefriendsendmessage(did,","runtimefriendstatu","runtimefriendstatus(did):","runtimehcaddagentinfo","runtimehcaddagentinfos(agentinfos):","runtimehcagentinfo","runtimehcagentinfos():","runtimeinfo","runtimeinfo()","runtimeinfo():","runtimeknownlinklanguagetempl","runtimeknownlinklanguagetemplates():","runtimemessageinbox","runtimemessageinbox(filter?):","runtimemessageoutbox","runtimemessageoutbox(filter?):","runtimemessagereceiv","runtimemessagereceived():","runtimeopenlink","runtimeopenlink(url):","runtimequit","runtimequit():","runtimeremovefriend","runtimeremovefriends(dids):","runtimeremoveknownlinklanguagetempl","runtimeremoveknownlinklanguagetemplates(addresses):","runtimesetstatu","runtimesetstatus(status):","runtimeverifystringsignedbydid","runtimeverifystringsignedbydid(did,","s","safe","same","save","scalabl","schema","scope.","sdna","sdna.","sdnaclass","sdnaclass(opts):","sdnaclassopt","sdnacod","sdnaflow","sdnaflows():","seamless","second","secret","section","section.","secur","see","seed)","seen","select","semant","semantics.","semantics/stat","sendbroadcast","sendbroadcast(payload):","sendbroadcast(perspectiveuuid,","sendinbox","sendinbox(message):","sending/rec","sendp2p","sendp2p(message):","sendsign","sendsignal(perspectiveuuid,","sendsignal(remoteagentdid,","sens","sentmessag","sentmessage()","sentmessage[]","serv","set","set(content):","setexpressioncli","setexpressionclient(client):","setneighbourhoodcli","setneighbourhoodclient(client):","setonlinestatu","setonlinestatus(perspectiveuuid,","setonlinestatus(status):","setsdna","setsdna(sdnacode):","setsingeltarget()","setsingletarget","setsingletarget(link):","setstatu","setstatus(perspective):","setstatus(status):","setter","setternametopropertynam","setternametopropertyname(setter):","settings):","settings:","settingsicon","settingsicon():","settingsicon:","settingsui","settingsui:","setup","shake,","shape","share","shared.","sharedurl","sharedurl():","sharedurl:","show","shown.","sig","sign","signal","signal):","signal:","signatur","signature:","signatures:","signaturesservic","signed,","signeddata","signeddata):","signmessag","signmessage(message):","silo","similar","simple.","simpli","singl","singular","singulartoplur","singulartoplural(singular):","sit","six","sla","smart_literal_content_pred","smart_literal_content_predicate:","smartliter","smartliteral(perspective,","smartliteral.smartliter","smartliteral.ts:20","smartliteral.ts:21","smartliteral.ts:23","smartliteral.ts:28","smartliteral.ts:32","smartliteral.ts:39","smartliteral.ts:47","smartliteral.ts:54","smartliteral.ts:6","smartliteral.ts:67","snapshot","snapshot():","snapshotbyuuid","snapshotbyuuid(uuid):","so,","so:","social","socialcontextmeta","softwar","solid","solid'","solut","someth","something!","somewher","soon","sourc","source(address):","source:","sourcecodelink","sourcecodelink:","sourcelanguagehash","space","span","spawn","speak","spec","special","specif","split","stack,","stack.","start","started.","startflow","startflow(flowname,","state","state():","state:","state?","state?)","statement","static","statu","status():","status):","status:","statuscallback","statuscallback:","stay","step","still","storag","storagedirectori","storagedirectory:","store","str","strategi","string","string)","string.","string[]","string][]","stringifyobjectliter","stringifyobjectliteral(obj):","stringortemplateobjecttosubjectclass","stringortemplateobjecttosubjectclasst>(subjectclass):","strings,","structures/ontolog","style","sub","subject","subject'","subject(perspective,","subject.","subject/sdnadecor","subject/sdnadecorators.perspectiveact","subject/sdnadecorators.ts:12","subject/sdnadecorators.ts:126","subject/sdnadecorators.ts:153","subject/sdnadecorators.ts:21","subject/sdnadecorators.ts:30","subject/sdnadecorators.ts:6","subject/sdnadecorators.ts:7","subject/sdnadecorators.ts:8","subject/sdnadecorators.ts:80","subject/sdnadecorators.ts:9","subject/sdnadecorators.ts:99","subject/subject","subject/subject.subject","subject/subject.ts:15","subject/subject.ts:19","subject/subject.ts:5","subject/subject.ts:6","subject/subject.ts:7","subject/subject.ts:9","subject/util","subject/util.ts:1","subject/util.ts:11","subject/util.ts:15","subject/util.ts:23","subject/util.ts:34","subject/util.ts:39","subject/util.ts:45","subject/util.ts:52","subject/util.ts:57","subject/util.ts:6","subjectclass","subjectclass)","subjectclass):","subjectclasses():","subjectclassesbytempl","subjectclassesbytemplate(obj):","subjectcollect","subjectcollection(opts):","subjectflag","subjectflag(opts):","subjectproperti","subjectproperty(opts):","subscrib","subscribe?)","subscribeagentstatuschang","subscribeagentstatuschanged():","subscribeagentupd","subscribeagentupdated():","subscribeexceptionoccur","subscribeexceptionoccurred():","subscribemessagereceiv","subscribemessagereceived():","subscribeperspectivead","subscribeperspectiveadded():","subscribeperspectiveremov","subscribeperspectiveremoved():","subscribeperspectiveupd","subscribeperspectiveupdated():","subset","success","successfully,","such","suggest","summer","super","suppli","support","sure","switch","sync","sync'","sync',","sync.","synchron","system","t","t)","t,","t>(target,","tabl","take","talk","target","target):","target:","target})","target}),","tcp/ip","teardown","teardown:","technic","technolog","technology.","telepres","telepresenceadapt","telepresenceadapter:","telepresencesignalcallback","telepresencesignalcallback:","tell","templat","template,","template?","templateappliedparam","templateappliedparams:","templated,","templated:","templatedata","templatedata):","templatesourcelanguageaddress","templatesourcelanguageaddress:","test","test_agent_did","test_agent_did:","testlink","testlink:","text","that,","that:","then,","there:","thing","think","this:","those","though","three","through","thu","thus,","time)\",","timeoutms?","timeoutms?):","timestamp","timestamp:","titl","title:","to?)","togeth","together.","token","token,","token.","token:","took","topic\"","touch","tourl","tourl():","trade","tray","treat","tri","triplet","true","true,","turn","tutori","two","type","type:","typedef","typedefs.ts:6","typedefsstr","typedefsstring:","ui","ui),","ui,","ui.","ui/compon","ui/web","uis.","undefin","under","underli","understand","uniqu","uniquelinklanguag","uniquelinklanguage.address,","units:","unlock","unlock(passphrase):","unlocking,","unpack","untild","untildate:","unwrapapolloresult","unwrapapolloresult.ts:3","up","updat","update(oldlink,","update(uuid,","updatedirectmessagelanguag","updatedirectmessagelanguage(directmessagelanguage):","updatelink","updatelink(uuid,","updatepublicperspect","updatepublicperspective(perspective):","uper","upgrad","upper","uri","uri.","url","url)","url.","url:","urls.","us","us:","usabl","use.","used.","user","user'","user.","users'","usual","uuid","uuid():","uuid:","uuid?","uuidcallback","uuidcallback:","uuidcallback[]","v0.0.15,","v0.0.5)","valid","valid:","valu","variabl","variou","verbs/pred","veri","verifi","verify(expr):","verifystringsignedbydid","verifystringsignedbydid(did,","version","via","views/port","void","void>","wait,","want","wasm","watchquery:","way","we'r","web","web'","web.","web/brows","web3.","websocket","websocketimpl:","well","what)","what?!","why?","window","window:","with:","withf","within","without","work","work.","wrap","writabl","writable():","write","writeset","writesettings(languageaddress,","ws","ws';","wslink","wslink,","yet.","yet:","yield","your)","yourself","zomecal","zomecalls:","zomenam","zomename,","zomename:","{","|","}","})","}))","}));","});","},","}>","}[]","ƭ","•","↳","▸"],"pipeline":["stopWordFilter","stemmer"]},"store":{"./":{"url":"./","title":"Introduction","keywords":"","body":"Introduction\nThe name AD4M is an ackronym for\nThe Agent-Centric Distributed Application Meta-ontology \nor just: \nAgent-Centric DApp Meta-ontology.\nAD4M is a meta-ontology and a spanning layer - an upper extension to the TCP/IP stack.\nBut AD4M is also a framework for building apps - mainly social apps,\nwhich renders it an engine (like a game engine) for social networks and collaboration apps.\nWith its ability to bootstrap specific ontologies from its meta-ontology,\nit is a malleable social network itself.\nIt could be the last one.\nAt its core, AD4M is just an idea, \na formalization of a different approach, \na complete set of basic concepts that together span a new paradigm of (distributed) software architecture.\nIt tries to capture the quintessence of what really goes on in human communication networks,\nin order to shape the digital space around that reality - instead of having the technology dictate how we communicate.\nPutting the human first and starting from a pure agent-centric approach,\nAD4M deconstructs the concept of applications and suggests a different principle \nfor the creation and maintenance of coherence in communication networks:\nsocial contexts (who am I talking to?) and shared subjective meaning, \ninstead of assumed objectivity implied by monolithic apps that don't differentiate\nbetween agents' different renderings and associations of the same data or event or subject.\nMeta-Ontology\nWhat really goes on is that agents/humans exchange expressions of various (and evolving) languages\nin order to share their partial perspectives/associations with each other and thus convey meaning, \nbuild meaning, make sense of things together.\n\nIn order to suggest a minimal assumption for maximum buy-in,\nAD4M carves out this quintessence of what human networks and the internet have in common,\nby postulating an ontology of three basic and irreducible concepts:\n\nAgents\nLanguages, and\nPerspectives.\n\nLanguages include Expressions in their definition, and Perspectives include Links (Link Expressions, to be precise).\nThrough combination of these basic principles, two important derived concepts\nare constructed:\n\nNeighbourhoods (i.e. shared Perspectives)\nSocial Organisms (i.e. fractal, super agents, defined through shared perspectives and shared interaction patterns/social DNA).\n\nAll these are discussed in detail in the Concepts section.\nSpanning Layer\nSimilar to how the IP layer decouples application protocols from physical links\nand allows many-to-many combinations between them by capturing the quintessence\nof computer networks through the assignment of a unique address to each and\nevery node,\nAD4M integrates DID to assume a unique and independent/sovereign address per human/agent\nand decouple application specific semantics from data storage and integrity layers.\n\nAD4M is an interoperability layer that sits between an app's UI and the\n(centralized or decentralized) back-end components or p2p networks.\nUsing AD4M, an app can be built without being coupled to a specific storage\ntechnology.\nBoth app developers and users are able to switch Languages and with them storage\nlayers while keeping the other components of their running app.\nThe sections Getting started and Writing and using Social DNA\ncover the uper parts of the stack,\nCreating AD4M Languages shows how to wrap existing storage layers\nand create new ones as Languages.\nWhy?\nThe goal is to arrive at scalable and interoparable communication infrastructure \nthat enables group agency, i.e. super agents (here called Social Organisms)\nwithout imposing a bias on how a group manages itself \n(and how it defines its coherence) to have agency \nand which technological details or semantic slaings they have chosen.\nThis is the real problem we're facing when trying to provide a\ntechnological solution to the web's fractured sense-making.\nAD4M is a sense-making network disguised as app development framework.\nAD4M apps don't have to leak any of the AD4M concepts at all,\nand they would still be interoperable with each other to the degree\nof just being different views/portals into the same agent-centric semantic web.\nAD4M brings Game B qualities to web3.\nIt's web B.\n"},"start.html":{"url":"start.html","title":"Getting Started","keywords":"","body":"Getting Started\n1. Install AD4M Launcher\nDownload the latest version of the AD4M launcher from\nits GitHub release page and run/install it.\nAfter successful agent initialization you should see an AD4M system-tray icon which will\nbring up an AD4M pop-up window on click:\n\n2. Setup app to connect to AD4M\nFirst, install npm dependencies to your app/UI project:\nnpm install -s @perspect3vism/ad4m @perspect3vism/ad4m-connect\nConnect UI client using ad4m-connect\nThe AD4M-executor serves a GraphQL interface for UIs to connect to\nand remote control the executor to use Languages, query and modify Perspectives etc.\nThat interface implements a capability-based security mechanism which allows for\nmaking the local interface available publicly via a proxy (\"setup proxy\" button)\nso that mobile UIs can call in to your ad4m-executor run at home,\nbut also to manage access to certain Perspectives/Neighbourhoods only to certain UIs.\nAnyway, to not confront you with the complexity of writing code for requesting a\ncapability token and injecting it into a GraphQL client \nright at the start of your AD4M journey, \nthere is ad4m-connect\nto do all of this for you and just deliver an initialized and usable\nAd4mClient object.\nWeb/Browser UI\nimport it in the context of your root UI/component\nimport '@perspect3vism/ad4m-connect'\n\nand then add the ad4m-connect web component to your markup:\n\n\nThis web component will create a modal dialog over your UI, \nbut only if there is no capability token in the browsers localStorage yet.\nAfter the first successful hand-shake, ad4m-connect will put the token there\nand on next start-up of your app will check if the token still works and\nnot prompt the user again.\nThis is what your user will see when the app is not connected yet:\n\nSince all the users's data is stored locally in AD4M Perspectives,\nusing a new app/UI and granting it access to all or parts of these perspectives\nand AD4M functionality is potentially risky.\nad4m-connect not only makes it easy for app developers to connect to the users AD4M-executor,\nit also provides a recognizable interface/wizard for the user.\nLike in this example, an app/UI should provide its name and an icon for the user\nto quickly understand what is going on.\nThe capabilities property must hold a string that defines what capability\n(access to which perspectives and interface functions) should be requested.\nThis example requests all which might a good first step when starting to familiarize\nyourself with AD4M, but should be restricted to what you really need for a production release.\nIf the user clicks authorize, ad4m-connect will connect to the AD4M-executor and request a capability token.\nThis will make the AD4M launcher bring up its pop-up window:\n\nHere the user has to confirm the request to their AD4M instance.\nNext, AD4M will then show a six-digit random secret code that needs to be entered into the app UI.\nThat way we have safely established that the network agent initiating the capability request (as seen from\nthe AD4M-executor) really is the UI the users wants to use.\nIf all steps were completed successfully, the ad4m-connect modal dialog closes and your app is shown.\nNow you just need to get the Ad4mClient out of ad4m-connect.\nThen somewhere in the initialization part of your app, do something like:\nimport { Ad4mClient } from '@perspect3vism/ad4m'\nimport { getAd4mClient, onAuthStateChanged } from \"@perspect3vism/ad4m-connect/web\";\n\nlet ad4m: Ad4mClient = await new Promise((resolve, reject) => {\n onAuthStateChanged(async (status) => {\n if (status === \"connected_with_capabilities\") {\n alert(\"Connected to Ad4m!\");\n resolve(getAd4mClient())\n } else {\n alert(\"Not connected to Ad4m!\");\n }\n })\n})\n\nNow you are ready to go and use the ad4m object to talk to the users AD4M-executor.\nNode/Electron UI\nad4m-connect also works within an Electron app, but needs to be used a bit differently.\nInstead of adding a web component to your UI, ad4m-connect will open its own Electron window\nwith that same UI component in it.\nAll you got to do is importing one function from dist/electron \n(best done in your) main Node/Electron start-up file)\nconst { ad4mConnect } = require('@perspect3vism/ad4m-connect/dist/electron')\nconst path = require('path')\n\nlet ad4m: Ad4mClient = await new Promise((resolve, reject) => {\n ad4mConnect({\n appName: \"Perspect3ve\",\n appIconPath: path.join(__dirname, \"graphics\", \"Logo.png\"),\n capabilities: [{\"with\":{\"domain\":\"*\",\"pointers\":[\"*\"]},\"can\":[\"*\"]}],\n dataPath: path.join(homedir(), '.perspect3ve')\n })\n .then(({client, capabilityToken, executorUrl}) => {\n resolve(client)\n })\n .catch(() => reject())\n }\n})\n\nThere is one addition: dataPath.\nThe Node/Electron version of ad4m-connect stores the capability token (and executor URL)\nto a file in the directory provided as dataPath.\n"},"tutorial.html":{"url":"tutorial.html","title":"Tutorial","keywords":"","body":"Tutorial\nThis will get you to a shared Neighbourhood on Holochain in less than 20 minutes!\nThe code assumes an ad4m variable was setup as described in Getting Started.\n1. Create a Perspective and add content\nAdding a new perspective is as easy as\nconst myPerspective = await ad4m.perspective.add(\"My new perspective\")\n\nThe returned object is of type PerspectiveProxy,\nwhich hides all the remote calls to the AD4M executor and can be treated like a\nlocal database object.\nPerspectives are basically local graph databases.\nWe can query all links on that proxy object with get:\nconst allLinks = await myPerspective.get(new LinkQuery({})) // => []\n\nIn this case it should return an empty array since we just created that perspective.\nSo let's add something!\nWith the following code I'm creating an adhoc semantic statement\nrepresenting what I think about AD4M...\nimport { Literal } from '@perspect3vism/ad4m'\n\nconst me = await ad4m.agent.me()\nconst source = me.did\nconst predicate = Literal.from(\"thinks\").toUrl()\nconst target = Literal.from(\"AD4M will be the last social network\").toUrl()\n\nconst linkExpresion = await myPerspective.add({source, predicate, target})\n\nLinks consist of 3 URIs pointing to Expressions of Languages.\nFor this example, we made life easy by using the agent's DID and AD4M's Literal Language.\nAgent DID\nFor the source of our link, we got the user's DID URI by first getting\nthe users Agent object with ad4m.agent.me().\nThat has a DID property and DID URIs are considered valid URIs in AD4M\n(they can be looked-up using the Agent bootstrap language which resolves\nto the same Agent object we got through ad4m.agent.me() - just even if\nthat agent behind the resolved DID isn't me).\nLiteral\nThe Literal Language is an AD4M Language without back-end.\nIt stores JavaScript literals (i.e. strings, numbers and objects)\nby encoding them into the Expression URL.\nSo, \nLiteral.from(\"thinks\").toUrl()\n\nreturns literal://string:thinks - which is a valid URI -\nand \nLiteral.from(\"AD4M will be the last social network\").toUrl()\n\nreturns literal://string:AD4M%20will%20be%20the%20last%20social%20network.\nThis is basically like URL parameters and let's us get around introducing Languages\nbefore using Perspectives and Links.\nWe can decode the URL into a JavaScript literal like so:\nconst string = Literal.fromUrl('literal://string:thinks').get()\n// string == 'thinks'\n\nLinkExpression\nWe have put in a Link object into myPerspective.add() \n({source, predicate, target}),\nbut what this function returns is a LinkExpression.\nEven though this Perspective is not shared (yet) but just our private, local \ngraph database, we might want to share it later\nas Neighbourhood.\nThen, all links added by some agent to their local Perspective will be shared\nwith the other agents using a LinkLanguage - a Language which defines Expressions\nrepresenting Links. That is LinkExpressions.\nUsing the generic Expression template,\nLinkExpressions wrap Links with author, timestamp and signature:\n{\n author: \"did:key:zQ3shNWd4bg67ktTVg9EMnnrsRjhkH6cRNCjRRxfTaTqBniAf\",\n timestamp: \"Sun Oct 23 2022 15:31:52 GMT+0200 (Central European Summer Time)\",\n data: {\n source: \"did:key:zQ3shNWd4bg67ktTVg9EMnnrsRjhkH6cRNCjRRxfTaTqBniAf\",\n predicate: \"literal://string:thinks\",\n target: \"literal://string:AD4M%20will%20be%20the%20last%20social%20network\",\n },\n proof: {\n key: \"#zQ3shNWd4bg67ktTVg9EMnnrsRjhkH6cRNCjRRxfTaTqBniAf\",\n signature: \"xxxx\",\n }\n}\n\n2. Publish Perspective as Neighbourhood\nThe back-bone of a Neighbourhood is a LinkLanguage - a Language that enables the sharing\nand thus synchronizing of links (see LinksAdapter). \nWhile there can and will be many different implementations\nwith different trade-offs and features (like membranes etc.),\nthere currently is one fully implemented and Holochain based LinkLanguage with the name Perspective Diff Sync.\nIt is deployed on the current test network (Language Language v0.0.15, included in current network seed) under the address:\nQmeBD9n9Z5yZsegxArToww5zmwtPpojXN6zXJsi7WwMUa8.\nCreating our unique LinkLanguage clone through templating\nBut we should not just use this publicly known Language as the back-bone for our new Neighbourhood,\nif we don't want to have everybody following this guide end up in the same network.\nSo what we want is to use this existing Language as a template and create a new copy with the same code\nbut different UUID and/name in order to create a fresh space for our new Neighbourhood.\nWhat parameters can we adjust when using it as template?\nLet's have a look at the Language's meta information:\nconst socialContextMeta = await ad4m.languages.meta(\n \"QmeBD9n9Z5yZsegxArToww5zmwtPpojXN6zXJsi7WwMUa8\"\n) \nconsole.log(socialContextMeta)\n\nWhich should yield something like this:\n {\n name: 'Perspective Diff Sync',\n address: 'QmeBD9n9Z5yZsegxArToww5zmwtPpojXN6zXJsi7WwMUa8',\n description: 'Holochain based LinkLanguage. First full implementation of a LinkLanguage, for collaborative Neighbourhoods where every agent can add links. No membrane. Basic template for all custom Neighbourhoods in this first iteration of the Perspect3vism test network.',\n author: 'did:key:zQ3shkkuZLvqeFgHdgZgFMUx8VGkgVWsLA83w2oekhZxoCW2n',\n templated: false,\n templateSourceLanguageAddress: null,\n templateAppliedParams: null,\n possibleTemplateParams: [ 'uuid', 'name', 'description' ],\n sourceCodeLink: 'https://github.com/perspect3vism/perspective-diff-sync'\n}\nThe field possibleTemplateParams tells us that we can set a UUID and override name and description.\nLet's leave description but change the name.\nThe function languages.applyTemplateAndPublish() takes an object as JSON as second parameter like so:\nconst uniqueLinkLanguage = await ad4m.languages.applyTemplateAndPublish(\n \"QmeBD9n9Z5yZsegxArToww5zmwtPpojXN6zXJsi7WwMUa8\", \n JSON.stringify({\n \"uuid\": \"84a329-77384c-1510fb\", \n \"name\": \"Perspective Diff Sync clone for demo Neighbourhood\"\n }));\n\nThis function call has done a lot for us:\n\nIt took the source language (first parameter) and made sure we got the code,\ni.e. potentially downloading it from the Language of Languages.\nThe provided template parameters have been applied. In the case of a Language using Holochain, it has unpacked the Holochain DNA, changed the DNA variables according to the values given as template parameters and packed the DNA again (not touching the WASM code)\nThe resulting Language was published with meta information showing that it was templated, providing the source hash and template parameters.\n\nSo the new templated Language is ready to be used.\nCreating the Neighbourhood\nWith that new LinkLanguage, actually creating the Neighbourhood is simple.\nWe just have to provide the id of the perspective we want to upgrade to a\nNeighbourhood and the address of the LinkLanguage used for that:\nconst meta = new Perspective()\nconst neighbourhoodUrl = await ad4m.neighbourhood.publishFromPerspective(\n myPerspective.uuid,\n uniqueLinkLanguage.address,\n meta\n)\nconsole.log(neighbourhoodUrl) // => neighbourhood://Qm123456789abcdef\n\nThe meta field a (static/snapshotted) Perspective that is immutably stored with\nthe Neighbourhood. It can hold arbitrary/semantic meta information about the\nNeighbourhood but can technically stay empty, just like we did here.\n3. Joining a Neighbourhood (on another node/agent)\nAssume everything above happened on Alice's agent.\nAlice now shares the Neighbourhood's URL with Bob.\nThis is what Bob does to join the Neigbourhood, access it as a (local) Perspective\nand retrieve the Expression Alice created and linked there:\nconst joinedNeighbourhood = await ad4m.neighbourhood.joinFromUrl(neighbourhoodUrl)\nconst myPerspective = await ad4m.perspective.byUUID(joinedNeighbourhood.uuid)\nconst links = await myPerspective.get(new LinkQuery({\n predicate: Literal.from(\"thinks\").toUrl()\n}))\nlinks.forEach(async link => {\n const who = link.data.source\n const what = Literal.fromUrl(link.data.target).get()\n console.log(who, \" thinks that \", what)\n})\n\n4. Listening to Perspective changes\nPerspectives that have been turned into Neighbourhoods are like entangled particles.\nEvery agent still has their local copy of the Perspective, but a change from any agent\nwill be shared with all other agents immediately,\nresulting in AD4M automatically updating the local Perspective with the changes by\nthe others.\nEven with Perspectives that are not shared as Neighbourhood,\na different UI could have access to the same Perspective and cause mutations\non it.\nApps/UIs can simply register a listener function on that \nPerspectiveProxy object:\nmyPerspective.addListener('link-added', (addedLink: LinkExpression) => {\n console.log(\"Got a new link:\", addedLink)\n})\n\nmyPerspective.addListener('link-removed', (removedLink: LinkExpression) => {\n console.log(\"A link was removed:\", removedLink)\n})\n\n"},"language.html":{"url":"language.html","title":"Creating AD4M Languages","keywords":"","body":"Creating AD4M Languages\nCOMING SOON\nLanguages\nFor creating an expression we need to select a language that we create an expression in:\nconst languages = await ad4mClient.languages.all()\nconst noteIpfsAddress = languages.find(l => l.name === 'note-ipfs').address\n\nCreating an Expression\nconst exprAddress = await ad4mClient.expression.create(\"A new text note\", noteIpfsAddress)\n\n"},"sdna.html":{"url":"sdna.html","title":"Writing and using Social DNA","keywords":"","body":"Writing and using Social DNA\nCOMING SOON\n"},"api.html":{"url":"api.html","title":"API Reference","keywords":"","body":"\n@perspect3vism/ad4m / Exports\nAD4M\nThe Agent-Centric Distributed Application Meta-ontology \nor just: \n*Agent-Centric DApp Meta-ontology* \n\nA new meta-ontology for interoperable, decentralized application design\nA spanning-layer to enable seamless integration between Holochain DNAs, blockchains, linked-data structures/ontologies and centralized back-ends\nThe basis for turning distinct, monolithic and siloed apps into a global, open and interoperable sense-making network\n\n\nOk, let's go...\nTo build an app/UI against Ad4m, you need to make sure that an \nad4m-executor is running\non the user's machine.\nThe easiest way to get that is to use ad4m-cli:\nnpm install -g @perspect3vism/ad4m-cli\nad4m executor run &\n\nThen use Ad4mClient to connect to and work with the running ad4m-executor like this:\nnpm install --save @perspect3vism/ad4m\nnpm install --save-exact @apollo/client@3.6.9\nnpm install --save graphql-ws\nnpm install --save ws\nIn your code:\nimport { Ad4mClient } from '@perspect3vism/ad4m'\nimport { ApolloClient, InMemoryCache } from \"@apollo/client/core\";\nimport { GraphQLWsLink } from \"@apollo/client/link/subscriptions\";\nimport { createClient } from 'graphql-ws';\nimport Websocket from \"ws\";\n\nconst wsLink = new GraphQLWsLink(createClient({\n url: `ws://localhost:4000/graphql`,\n webSocketImpl: Websocket\n}));\n\nconst apolloClient = new ApolloClient({\n link: wsLink,\n cache: new InMemoryCache(),\n defaultOptions: {\n watchQuery: {\n fetchPolicy: 'network-only',\n nextFetchPolicy: 'network-only'\n },\n }\n});\n\nad4mClient = new Ad4mClient(apolloClient)\n\nUnlocking / initializing the agent\nYou can't do much with the Ad4m runtime as long as the agent is not initialized.\nSo first get the agent status to see if we either need to create new DID or unlock\nan existing keystore.\nconst { isInitialized, isUnlocked, did } = await ad4mClient.agent.status()\n\nIf isInitialized is false (and then did is empty) we need to create or import\na DID and keys. generate() will create a new DID with method key and lock the\nkeystore with the given passphrase.\nconst { did } = await ad4mClient.agent.generate(\"passphrase\")\n\nIn following runs of the exectuor, ad4mClient.agent.status() will return a did\nand isInitialized true, but if isUnlocked is false, we need to unlock the keystore\nproviding the passphrase:\nconst { isUnlocked, did } = await ad4mClient.agent.unlock(\"passphrase\")\n\nLanguages\nFor creating an expression we need to select a language that we create an expression in:\nconst languages = await ad4mClient.languages.all()\nconst noteIpfsAddress = languages.find(l => l.name === 'note-ipfs').address\n\nCreating an Expression\nconst exprAddress = await ad4mClient.expression.create(\"A new text note\", noteIpfsAddress)\n\nCreating a Perspective and linking that new Expression\nconst perspectiveHandle = await ad4mClient.perspective.add(\"A new perspective on apps...\")\nawait ad4mClient.perspective.addLink(\n perspectiveHandle.uuid,\n new Link({\n source: 'root',\n target: exprAddress\n })\n)\n\nPublishing that local Perspective by turning it into a Neighbourhood\nThe back-bone of a Neighbourhood is a LinkLanguage - a Language that enables the sharing\nand thus synchronizing of links (see LinksAdapter in Language.ts). \nWhile there can and should be many different implementations\nwith different trade-offs and features (like membranes etc.),\nthere currently is one fully implemented and Holochain based LinkLanguage with the name Social Context.\nIt is deployed on the current test network (Language Language v0.0.5) under the address:\nQmZ1mkoY8nLvpxY3Mizx8UkUiwUzjxJxsqSTPPdH8sHxCQ.\nCreating our unique LinkLanguage clone through templating\nBut we should not just use this publicly known Language as the back-bone for our new Neighbourhood,\nsince we need a unique clone.\nSo what we want is to use this existing Language as a template and create a new copy with the same code\nbut different UUID and/name in order to create a fresh space for our new Neighbourhood.\nWhat parameters can we adjust when using it as template?\nLet's have a look at the Language's meta information:\nconst socialContextMeta = await ad4mClient.languages.meta(\"QmZ1mkoY8nLvpxY3Mizx8UkUiwUzjxJxsqSTPPdH8sHxCQ\") \n\nconsole.log(socialContextMeta)\n\nWhich should yield something like this:\n {\n name: 'social-context',\n address: 'QmZ1mkoY8nLvpxY3Mizx8UkUiwUzjxJxsqSTPPdH8sHxCQ',\n description: 'Holochain based LinkLanguage. First full implementation of a LinkLanguage, for collaborative Neighbourhoods where every agent can add links. No membrane. Basic template for all custom Neighbourhoods in this first iteration of the Perspect3vism test network.',\n author: 'did:key:zQ3shkkuZLvqeFgHdgZgFMUx8VGkgVWsLA83w2oekhZxoCW2n',\n templated: false,\n templateSourceLanguageAddress: null,\n templateAppliedParams: null,\n possibleTemplateParams: [ 'uuid', 'name', 'description' ],\n sourceCodeLink: 'https://github.com/juntofoundation/Social-Context'\n}\nThe field possibleTemplateParams tells us that we can set a UUID and override name and description.\nLet's leave description but change the name.\nThe function languages.applyTemplateAndPublish() takes an object as JSON as second parameter like so:\nconst uniqueLinkLanguage = await ad4mClient.languages.applyTemplateAndPublish(\"QmZ1mkoY8nLvpxY3Mizx8UkUiwUzjxJxsqSTPPdH8sHxCQ\", JSON.stringify({\"uuid\": \"84a329-77384c-1510fb\", \"name\": \"Social Context clone for demo Neighbourhood\"}));\n\nAnd then use this new LinkLanguage in our Neighbourhood:\nconst meta = new Perspective()\nconst neighbourhoodUrl = await ad4mClient.neighbourhood.publishFromPerspective(\n perspectiveHandle.uuid,\n uniqueLinkLanguage.address,\n meta\n)\nconsole.log(neighbourhoodUrl) // => neighbourhood://Qm123456789abcdef\n\nJoining a Neighbourhood (on another node/agent)\nAssume everything above happened on Alice's agent.\nAlice now shares the Neighbourhood's URL with Bob.\nThis is what Bob does to join the Neigbourhood, access it as a (local) Perspective\nand retrieve the Expression Alice created and linked there:\nconst joinedNeighbourhood = await ad4mClient.neighbourhood.joinFromUrl(neighbourhoodUrl)\nconst links = await ad4mClient.perspective.queryLinks(joinedNeighbourhood.uuid, new LinkQuery({source: 'a'}))\nlinks.forEach(async link => {\n const address = link.data.target\n const expression = await ad4mClient.expression.get(address)\n const data = JSON.parse(expression.data)\n console.log(data) //=> \"A new text note\"\n})\n\nBuilding from source\nRun:\nnpm i && npm run build\n\nWait, what?!\nThe central claim of AD4M is that any single- but also specifically multi-user application can be bootstrapped out of a meta-ontology consisting of 3 quintessential ontological units:\n\nAgents\nLanguages\nand Perspectives\n\nThis is a meta-ontology since it doesn't make any assumptions about the specific ontologies implemented in those bootstrapped apps. But since apps bootstrapped from it share the same meta-ontology, they are mutualy interoperable.\n\nAgents...\n...represent humans with their devices, which is what the internet actually is. Technically represented as Decentralized Identifiers - DIDs.\nLanguages...\n...encapsulate the actual technology used to communicate, like Holochain or IPFS, but what they provide to the high-level layers is this: Languages define Expressions, which are the atoms of what Agents communicate. Expressions are always created, and thus signed, by an agent. Expressions are referenced via a URL of the kind ://. That URL and the Expression itself is the only objective part in AD4M. \nPerspectives...\n...belong to a specific agent. They represent context and association between expressions. They consist of a list of RDF/semantic web like triplets (subject-predicate-object) called links because all three items are just URLs pointing to expressions. Perspectives are like Solid's pods, but they are agent-centric. There is no such thing as a Perspective that does not belong to an agent. It is like the canvas on which an agent perceives and onto which they create anything. To the next layer above (either the very general UI built in Perspectivism - or any other special purpose UI), they are like a database scope.\n\nBootstrapping\nAny AD4M implementation will have to include at least 3 reflexive system Languages to enable the dynamic bootstrapping of apps and interconnected sense-making networks:\n\nA Language of Agents, i.e. where the expressions represent agents, and which uses DIDs as the expression URLs.\nA Language of Languages, i.e. a way to talk about Languages so Languages can be created by users and shared.\nA Language of Perspectives which implies the concept of Shared Perspectives a.k.a. Neighbourhoods, i.e. a way to share an otherwise local and private Perspective with others which constitutes the basic building block of any collaboration context.\n\nHaving these Languages means Agents can author expressions that represent Agents, Languages and Perspectives. These expressions get linked from inside Perspectives. That way we can model primitives like friends-lists (Perspective including agent expressions), app-stores (Perspective including Languages) and more.\nHow do I build an app on/with AD4M?\nBuilding an AD4M app actually means extending the AD4M ecosystem with the\n\nLanguages\nand link-ontologies\n\nneeded for the app's domain - and then creating expressions from those Languages and linking them inside Perspectives.\nThe latter means creating RDF/semantic web style triplets that associate expressions in order to represent app specific semantics - not too different to how Solid style linked-data would work.\nClasses\n\n@perspect3vism/ad4m / Exports / Ad4mClient / Ad4mClient\nClass: Ad4mClient\nAd4mClient.Ad4mClient\nClient for the Ad4m interface wrapping GraphQL queryies\nfor convenient use in user facing code.\nAggregates the six sub-clients:\nAgentClient, ExpressionClient, LanguageClient,\nNeighbourhoodClient, PerspectiveClient and RuntimeClient\nfor the respective functionality.\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\n#agentClient\n#apolloClient\n#expressionClient\n#languageClient\n#neighbourhoodClient\n#perspectiveClient\n#runtimeClient\n\nAccessors\n\nagent\nexpression\nlanguages\nneighbourhood\nperspective\nruntime\n\nConstructors\nconstructor\n• new Ad4mClient(client, subscribe?)\nParameters\n\n\n\nName\nType\nDefault value\n\n\n\n\nclient\nApolloClientany>\nundefined\n\n\nsubscribe\nboolean\ntrue\n\n\n\nDefined in\nAd4mClient.ts:28\nProperties\n#agentClient\n• Private #agentClient: AgentClient\nDefined in\nAd4mClient.ts:20\n\n#apolloClient\n• Private #apolloClient: ApolloClientany>\nDefined in\nAd4mClient.ts:19\n\n#expressionClient\n• Private #expressionClient: ExpressionClient\nDefined in\nAd4mClient.ts:21\n\n#languageClient\n• Private #languageClient: LanguageClient\nDefined in\nAd4mClient.ts:22\n\n#neighbourhoodClient\n• Private #neighbourhoodClient: NeighbourhoodClient\nDefined in\nAd4mClient.ts:23\n\n#perspectiveClient\n• Private #perspectiveClient: PerspectiveClient\nDefined in\nAd4mClient.ts:24\n\n#runtimeClient\n• Private #runtimeClient: RuntimeClient\nDefined in\nAd4mClient.ts:25\nAccessors\nagent\n• get agent(): AgentClient\nReturns\nAgentClient\nDefined in\nAd4mClient.ts:40\n\nexpression\n• get expression(): ExpressionClient\nReturns\nExpressionClient\nDefined in\nAd4mClient.ts:44\n\nlanguages\n• get languages(): LanguageClient\nReturns\nLanguageClient\nDefined in\nAd4mClient.ts:48\n\nneighbourhood\n• get neighbourhood(): NeighbourhoodClient\nReturns\nNeighbourhoodClient\nDefined in\nAd4mClient.ts:52\n\nperspective\n• get perspective(): PerspectiveClient\nReturns\nPerspectiveClient\nDefined in\nAd4mClient.ts:56\n\nruntime\n• get runtime(): RuntimeClient\nReturns\nRuntimeClient\nDefined in\nAd4mClient.ts:60\n\n@perspect3vism/ad4m / Exports / Literal / Literal\nClass: Literal\nLiteral.Literal\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\n#literal\n#url\n\nMethods\n\nget\ntoUrl\nfrom\nfromUrl\n\nConstructors\nconstructor\n• new Literal()\nProperties\n#literal\n• Private Optional #literal: any\nDefined in\nLiteral.ts:10\n\n#url\n• Private Optional #url: string\nDefined in\nLiteral.ts:11\nMethods\nget\n▸ get(): any\nReturns\nany\nDefined in\nLiteral.ts:49\n\ntoUrl\n▸ toUrl(): string\nReturns\nstring\nDefined in\nLiteral.ts:27\n\nfrom\n▸ Static from(literal): Literal\nParameters\n\n\n\nName\nType\n\n\n\n\nliteral\nany\n\n\n\nReturns\nLiteral\nDefined in\nLiteral.ts:21\n\nfromUrl\n▸ Static fromUrl(url): Literal\nParameters\n\n\n\nName\nType\n\n\n\n\nurl\nstring\n\n\n\nReturns\nLiteral\nDefined in\nLiteral.ts:13\n\n@perspect3vism/ad4m / Exports / SmartLiteral / SmartLiteral\nClass: SmartLiteral\nSmartLiteral.SmartLiteral\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\n#base\n#perspective\n\nAccessors\n\nbase\n\nMethods\n\nget\nset\ncreate\ngetAllSmartLiterals\nisSmartLiteralBase\n\nConstructors\nconstructor\n• new SmartLiteral(perspective, base)\nParameters\n\n\n\nName\nType\n\n\n\n\nperspective\nPerspectiveProxy\n\n\nbase\nstring\n\n\n\nDefined in\nSmartLiteral.ts:23\nProperties\n#base\n• Private #base: string\nDefined in\nSmartLiteral.ts:21\n\n#perspective\n• Private #perspective: PerspectiveProxy\nDefined in\nSmartLiteral.ts:20\nAccessors\nbase\n• get base(): string\nReturns\nstring\nDefined in\nSmartLiteral.ts:28\nMethods\nget\n▸ get(): Promiseany>\nReturns\nPromiseany>\nDefined in\nSmartLiteral.ts:54\n\nset\n▸ set(content): Promisevoid>\nParameters\n\n\n\nName\nType\n\n\n\n\ncontent\nany\n\n\n\nReturns\nPromisevoid>\nDefined in\nSmartLiteral.ts:67\n\ncreate\n▸ Static create(perspective, literal): PromiseSmartLiteral>\nParameters\n\n\n\nName\nType\n\n\n\n\nperspective\nPerspectiveProxy\n\n\nliteral\nany\n\n\n\nReturns\nPromiseSmartLiteral>\nDefined in\nSmartLiteral.ts:32\n\ngetAllSmartLiterals\n▸ Static getAllSmartLiterals(perspective): PromiseSmartLiteral[]>\nParameters\n\n\n\nName\nType\n\n\n\n\nperspective\nPerspectiveProxy\n\n\n\nReturns\nPromiseSmartLiteral[]>\nDefined in\nSmartLiteral.ts:47\n\nisSmartLiteralBase\n▸ Static isSmartLiteralBase(perspective, base): Promiseboolean>\nParameters\n\n\n\nName\nType\n\n\n\n\nperspective\nPerspectiveProxy\n\n\nbase\nstring\n\n\n\nReturns\nPromiseboolean>\nDefined in\nSmartLiteral.ts:39\n\n@perspect3vism/ad4m / Exports / agent/Agent / Agent\nClass: Agent\nagent/Agent.Agent\nAD4M's representation of an Agent\nAD4M Agents are build around DIDs, which are used to identify and authenticate the Agent.\nConceptually, an Agent is regarded as something that can speak and that can listen.\nAgents speak by creating Expressions in AD4M Languages which are signed by the Agent's DID key,\nAnd they also speak (broadcast) by putting semantic statements into their public \"Agent Perspective\".\nThey listen (can receive messages) through their \"direct message Language\".\nThese three aspects are represented by the three fields of this class.\nThis class is used as format for the Expressions in the Agent language.\nSince AD4M treats DID URIs as addresses for the Agent Language,\nDIDs are resolved to Expressions that are objects of this class.\nThus, this is how agents see (other) agents.\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\ndid\ndirectMessageLanguage\nperspective\n\nConstructors\nconstructor\n• new Agent(did, perspective?)\nParameters\n\n\n\nName\nType\n\n\n\n\ndid\nstring\n\n\nperspective?\nPerspective\n\n\n\nDefined in\nagent/Agent.ts:42\nProperties\ndid\n• did: string\nThe DID of the Agent\nAll epxressions authored by them are signed with the keys mentioned\nin the DID document behind this DID URI.\nDefined in\nagent/Agent.ts:28\n\ndirectMessageLanguage\n• Optional directMessageLanguage: string\nAddress of the Language by which the Agent will receive DMs\nDefined in\nagent/Agent.ts:40\n\nperspective\n• Optional perspective: Perspective\nThe Perspective that holds the public-facing semantics/statements of the Agent \nHolds and shares a Perspective that links all information\nthis agent wants to offer as public-facing semantics.\nThis should be used for any kind of user profile information.\nDefined in\nagent/Agent.ts:36\n\n@perspect3vism/ad4m / Exports / agent/Agent / AgentExpression\nClass: AgentExpression\nagent/Agent.AgentExpression\nHierarchy\n\nany\n↳ AgentExpression\n\n\nTable of contents\nConstructors\n\nconstructor\n\nConstructors\nconstructor\n• new AgentExpression()\nInherited from\nExpressionGeneric(Agent).constructor\n\n@perspect3vism/ad4m / Exports / agent/Agent / AgentSignature\nClass: AgentSignature\nagent/Agent.AgentSignature\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\npublicKey\nsignature\n\nConstructors\nconstructor\n• new AgentSignature(signature, publicKey)\nParameters\n\n\n\nName\nType\n\n\n\n\nsignature\nstring\n\n\npublicKey\nstring\n\n\n\nDefined in\nagent/Agent.ts:123\nProperties\npublicKey\n• publicKey: string\nDefined in\nagent/Agent.ts:121\n\nsignature\n• signature: string\nDefined in\nagent/Agent.ts:118\n\n@perspect3vism/ad4m / Exports / agent/Agent / Apps\nClass: Apps\nagent/Agent.Apps\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\nauth\nrequestId\nrevoked\ntoken\n\nConstructors\nconstructor\n• new Apps(requestId, auth, token, revoked?)\nParameters\n\n\n\nName\nType\n\n\n\n\nrequestId\nstring\n\n\nauth\nAuthInfo\n\n\ntoken\nstring\n\n\nrevoked?\nboolean\n\n\n\nDefined in\nagent/Agent.ts:194\nProperties\nauth\n• auth: AuthInfo\nDefined in\nagent/Agent.ts:192\n\nrequestId\n• requestId: string\nDefined in\nagent/Agent.ts:183\n\nrevoked\n• Optional revoked: boolean\nDefined in\nagent/Agent.ts:189\n\ntoken\n• token: string\nDefined in\nagent/Agent.ts:186\n\n@perspect3vism/ad4m / Exports / agent/Agent / AuthInfo\nClass: AuthInfo\nagent/Agent.AuthInfo\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\nappDesc\nappName\nappUrl\ncapabilities\n\nConstructors\nconstructor\n• new AuthInfo(appName, appDesc, appUrl, capabilities)\nParameters\n\n\n\nName\nType\n\n\n\n\nappName\nstring\n\n\nappDesc\nstring\n\n\nappUrl\nstring\n\n\ncapabilities\nCapability[]\n\n\n\nDefined in\nagent/Agent.ts:172\nProperties\nappDesc\n• appDesc: string\nDefined in\nagent/Agent.ts:164\n\nappName\n• appName: string\nDefined in\nagent/Agent.ts:161\n\nappUrl\n• appUrl: string\nDefined in\nagent/Agent.ts:167\n\ncapabilities\n• capabilities: Capability[]\nDefined in\nagent/Agent.ts:170\n\n@perspect3vism/ad4m / Exports / agent/Agent / Capability\nClass: Capability\nagent/Agent.Capability\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\ncan\nwith\n\nConstructors\nconstructor\n• new Capability(withF, can)\nParameters\n\n\n\nName\nType\n\n\n\n\nwithF\nResource\n\n\ncan\nstring[]\n\n\n\nDefined in\nagent/Agent.ts:151\nProperties\ncan\n• can: string[]\nDefined in\nagent/Agent.ts:149\n\nwith\n• with: Resource\nDefined in\nagent/Agent.ts:146\n\n@perspect3vism/ad4m / Exports / agent/Agent / EntanglementProof\nClass: EntanglementProof\nagent/Agent.EntanglementProof\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\ndeviceKey\ndeviceKeySignedByDid\ndeviceKeyType\ndid\ndidSignedByDeviceKey\ndidSigningKeyId\n\nConstructors\nconstructor\n• new EntanglementProof(did, didSigningKeyId, deviceKeyType, deviceKey, deviceKeySignedByDid, didSignedByDeviceKey?)\nParameters\n\n\n\nName\nType\n\n\n\n\ndid\nstring\n\n\ndidSigningKeyId\nstring\n\n\ndeviceKeyType\nstring\n\n\ndeviceKey\nstring\n\n\ndeviceKeySignedByDid\nstring\n\n\ndidSignedByDeviceKey?\nstring\n\n\n\nDefined in\nagent/Agent.ts:75\nProperties\ndeviceKey\n• deviceKey: string\nDefined in\nagent/Agent.ts:67\n\ndeviceKeySignedByDid\n• deviceKeySignedByDid: string\nDefined in\nagent/Agent.ts:70\n\ndeviceKeyType\n• deviceKeyType: string\nDefined in\nagent/Agent.ts:64\n\ndid\n• did: string\nDefined in\nagent/Agent.ts:58\n\ndidSignedByDeviceKey\n• Optional didSignedByDeviceKey: string\nDefined in\nagent/Agent.ts:73\n\ndidSigningKeyId\n• didSigningKeyId: string\nDefined in\nagent/Agent.ts:61\n\n@perspect3vism/ad4m / Exports / agent/Agent / EntanglementProofInput\nClass: EntanglementProofInput\nagent/Agent.EntanglementProofInput\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\ndeviceKey\ndeviceKeySignedByDid\ndeviceKeyType\ndid\ndidSignedByDeviceKey\ndidSigningKeyId\n\nConstructors\nconstructor\n• new EntanglementProofInput(did, didSigningKeyId, deviceKeyType, deviceKey, deviceKeySignedByDid, didSignedByDeviceKey)\nParameters\n\n\n\nName\nType\n\n\n\n\ndid\nstring\n\n\ndidSigningKeyId\nstring\n\n\ndeviceKeyType\nstring\n\n\ndeviceKey\nstring\n\n\ndeviceKeySignedByDid\nstring\n\n\ndidSignedByDeviceKey\nstring\n\n\n\nDefined in\nagent/Agent.ts:105\nProperties\ndeviceKey\n• deviceKey: string\nDefined in\nagent/Agent.ts:97\n\ndeviceKeySignedByDid\n• deviceKeySignedByDid: string\nDefined in\nagent/Agent.ts:100\n\ndeviceKeyType\n• deviceKeyType: string\nDefined in\nagent/Agent.ts:94\n\ndid\n• did: string\nDefined in\nagent/Agent.ts:88\n\ndidSignedByDeviceKey\n• didSignedByDeviceKey: string\nDefined in\nagent/Agent.ts:103\n\ndidSigningKeyId\n• didSigningKeyId: string\nDefined in\nagent/Agent.ts:91\n\n@perspect3vism/ad4m / Exports / agent/Agent / Resource\nClass: Resource\nagent/Agent.Resource\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\ndomain\npointers\n\nConstructors\nconstructor\n• new Resource(domain, pointers)\nParameters\n\n\n\nName\nType\n\n\n\n\ndomain\nstring\n\n\npointers\nstring[]\n\n\n\nDefined in\nagent/Agent.ts:137\nProperties\ndomain\n• domain: string\nDefined in\nagent/Agent.ts:132\n\npointers\n• pointers: string[]\nDefined in\nagent/Agent.ts:135\n\n@perspect3vism/ad4m / Exports / agent/AgentClient / AgentClient\nClass: AgentClient\nagent/AgentClient.AgentClient\nProvides access to all functions regarding the local agent,\nsuch as generating, locking, unlocking, importing the DID keystore,\nas well as updating the publicly shared Agent expression.\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\n#agentStatusChangedCallbacks\n#apolloClient\n#updatedCallbacks\n\nMethods\n\naddAgentStatusChangedListener\naddEntanglementProofs\naddUpdatedListener\nbyDID\ndeleteEntanglementProofs\nentanglementProofPreFlight\ngenerate\ngenerateJwt\ngetApps\ngetEntanglementProofs\nimport\nisLocked\nlock\nme\nmutatePublicPerspective\npermitCapability\nremoveApp\nrequestCapability\nrevokeToken\nsignMessage\nstatus\nsubscribeAgentStatusChanged\nsubscribeAgentUpdated\nunlock\nupdateDirectMessageLanguage\nupdatePublicPerspective\n\nConstructors\nconstructor\n• new AgentClient(client, subscribe?)\nParameters\n\n\n\nName\nType\nDefault value\n\n\n\n\nclient\nApolloClientany>\nundefined\n\n\nsubscribe\nboolean\ntrue\n\n\n\nDefined in\nagent/AgentClient.ts:84\nProperties\n#agentStatusChangedCallbacks\n• Private #agentStatusChangedCallbacks: AgentStatusChangedCallback[]\nDefined in\nagent/AgentClient.ts:82\n\n#apolloClient\n• Private #apolloClient: ApolloClientany>\nDefined in\nagent/AgentClient.ts:80\n\n#updatedCallbacks\n• Private #updatedCallbacks: AgentUpdatedCallback[]\nDefined in\nagent/AgentClient.ts:81\nMethods\naddAgentStatusChangedListener\n▸ addAgentStatusChangedListener(listener): void\nParameters\n\n\n\nName\nType\n\n\n\n\nlistener\nany\n\n\n\nReturns\nvoid\nDefined in\nagent/AgentClient.ts:324\n\naddEntanglementProofs\n▸ addEntanglementProofs(proofs): PromiseEntanglementProof[]>\nParameters\n\n\n\nName\nType\n\n\n\n\nproofs\nEntanglementProofInput[]\n\n\n\nReturns\nPromiseEntanglementProof[]>\nDefined in\nagent/AgentClient.ts:257\n\naddUpdatedListener\n▸ addUpdatedListener(listener): void\nParameters\n\n\n\nName\nType\n\n\n\n\nlistener\nany\n\n\n\nReturns\nvoid\nDefined in\nagent/AgentClient.ts:304\n\nbyDID\n▸ byDID(did): PromiseAgent>\nParameters\n\n\n\nName\nType\n\n\n\n\ndid\nstring\n\n\n\nReturns\nPromiseAgent>\nDefined in\nagent/AgentClient.ts:178\n\ndeleteEntanglementProofs\n▸ deleteEntanglementProofs(proofs): PromiseEntanglementProof[]>\nParameters\n\n\n\nName\nType\n\n\n\n\nproofs\nEntanglementProofInput[]\n\n\n\nReturns\nPromiseEntanglementProof[]>\nDefined in\nagent/AgentClient.ts:269\n\nentanglementProofPreFlight\n▸ entanglementProofPreFlight(deviceKey, deviceKeyType): PromiseEntanglementProof>\nParameters\n\n\n\nName\nType\n\n\n\n\ndeviceKey\nstring\n\n\ndeviceKeyType\nstring\n\n\n\nReturns\nPromiseEntanglementProof>\nDefined in\nagent/AgentClient.ts:292\n\ngenerate\n▸ generate(passphrase): PromiseAgentStatus>\nParameters\n\n\n\nName\nType\n\n\n\n\npassphrase\nstring\n\n\n\nReturns\nPromiseAgentStatus>\nDefined in\nagent/AgentClient.ts:121\n\ngenerateJwt\n▸ generateJwt(requestId, rand): Promisestring>\nParameters\n\n\n\nName\nType\n\n\n\n\nrequestId\nstring\n\n\nrand\nstring\n\n\n\nReturns\nPromisestring>\nDefined in\nagent/AgentClient.ts:364\n\ngetApps\n▸ getApps(): PromiseApps[]>\nReturns\nPromiseApps[]>\nDefined in\nagent/AgentClient.ts:374\n\ngetEntanglementProofs\n▸ getEntanglementProofs(): Promisestring[]>\nReturns\nPromisestring[]>\nDefined in\nagent/AgentClient.ts:281\n\nimport\n▸ import(args): PromiseAgentStatus>\nParameters\n\n\n\nName\nType\n\n\n\n\nargs\nInitializeArgs\n\n\n\nReturns\nPromiseAgentStatus>\nDefined in\nagent/AgentClient.ts:135\n\nisLocked\n▸ isLocked(): Promiseboolean>\nReturns\nPromiseboolean>\nDefined in\nagent/AgentClient.ts:410\n\nlock\n▸ lock(passphrase): PromiseAgentStatus>\nParameters\n\n\n\nName\nType\n\n\n\n\npassphrase\nstring\n\n\n\nReturns\nPromiseAgentStatus>\nDefined in\nagent/AgentClient.ts:153\n\nme\n▸ me(): PromiseAgent>\nReturns the Agent expression of the local agent as it is shared\npublicly via the AgentLanguage.\nI.e. this is the users profile.\nReturns\nPromiseAgent>\nDefined in\nagent/AgentClient.ts:101\n\nmutatePublicPerspective\n▸ mutatePublicPerspective(mutations): PromiseAgent>\nParameters\n\n\n\nName\nType\n\n\n\n\nmutations\nLinkMutations\n\n\n\nReturns\nPromiseAgent>\nDefined in\nagent/AgentClient.ts:213\n\npermitCapability\n▸ permitCapability(auth): Promisestring>\nParameters\n\n\n\nName\nType\n\n\n\n\nauth\nstring\n\n\n\nReturns\nPromisestring>\nDefined in\nagent/AgentClient.ts:354\n\nremoveApp\n▸ removeApp(requestId): PromiseApps[]>\nParameters\n\n\n\nName\nType\n\n\n\n\nrequestId\nstring\n\n\n\nReturns\nPromiseApps[]>\nDefined in\nagent/AgentClient.ts:386\n\nrequestCapability\n▸ requestCapability(appName, appDesc, appUrl, capabilities): Promisestring>\nParameters\n\n\n\nName\nType\n\n\n\n\nappName\nstring\n\n\nappDesc\nstring\n\n\nappUrl\nstring\n\n\ncapabilities\nstring\n\n\n\nReturns\nPromisestring>\nDefined in\nagent/AgentClient.ts:344\n\nrevokeToken\n▸ revokeToken(requestId): PromiseApps[]>\nParameters\n\n\n\nName\nType\n\n\n\n\nrequestId\nstring\n\n\n\nReturns\nPromiseApps[]>\nDefined in\nagent/AgentClient.ts:398\n\nsignMessage\n▸ signMessage(message): Promisestring>\nParameters\n\n\n\nName\nType\n\n\n\n\nmessage\nstring\n\n\n\nReturns\nPromisestring>\nDefined in\nagent/AgentClient.ts:419\n\nstatus\n▸ status(): PromiseAgentStatus>\nReturns\nPromiseAgentStatus>\nDefined in\nagent/AgentClient.ts:110\n\nsubscribeAgentStatusChanged\n▸ subscribeAgentStatusChanged(): void\nReturns\nvoid\nDefined in\nagent/AgentClient.ts:328\n\nsubscribeAgentUpdated\n▸ subscribeAgentUpdated(): void\nReturns\nvoid\nDefined in\nagent/AgentClient.ts:308\n\nunlock\n▸ unlock(passphrase): PromiseAgentStatus>\nParameters\n\n\n\nName\nType\n\n\n\n\npassphrase\nstring\n\n\n\nReturns\nPromiseAgentStatus>\nDefined in\nagent/AgentClient.ts:165\n\nupdateDirectMessageLanguage\n▸ updateDirectMessageLanguage(directMessageLanguage): PromiseAgent>\nParameters\n\n\n\nName\nType\n\n\n\n\ndirectMessageLanguage\nstring\n\n\n\nReturns\nPromiseAgent>\nDefined in\nagent/AgentClient.ts:242\n\nupdatePublicPerspective\n▸ updatePublicPerspective(perspective): PromiseAgent>\nParameters\n\n\n\nName\nType\n\n\n\n\nperspective\nPerspectiveInput\n\n\n\nReturns\nPromiseAgent>\nDefined in\nagent/AgentClient.ts:190\n\n@perspect3vism/ad4m / Exports / agent/AgentResolver / default\nClass: default\nagent/AgentResolver.default\nTable of contents\nConstructors\n\nconstructor\n\nMethods\n\nagent\nagentAddEntanglementProofs\nagentByDID\nagentDeleteEntanglementProofs\nagentEntanglementProofPreFlight\nagentGenerate\nagentGenerateJwt\nagentGetApps\nagentGetEntanglementProofs\nagentImport\nagentIsLocked\nagentLock\nagentPermitCapability\nagentRemoveApp\nagentRequestCapability\nagentRevokeToken\nagentSignMessage\nagentStatus\nagentStatusChanged\nagentUnlock\nagentUpdateDirectMessageLanguage\nagentUpdatePublicPerspective\nagentUpdated\n\nConstructors\nconstructor\n• new default()\nMethods\nagent\n▸ agent(): Agent\nReturns\nAgent\nDefined in\nagent/AgentResolver.ts:11\n\nagentAddEntanglementProofs\n▸ agentAddEntanglementProofs(proofs): EntanglementProof[]\nParameters\n\n\n\nName\nType\n\n\n\n\nproofs\nEntanglementProofInput[]\n\n\n\nReturns\nEntanglementProof[]\nDefined in\nagent/AgentResolver.ts:93\n\nagentByDID\n▸ agentByDID(did): Agent\nParameters\n\n\n\nName\nType\n\n\n\n\ndid\nstring\n\n\n\nReturns\nAgent\nDefined in\nagent/AgentResolver.ts:62\n\nagentDeleteEntanglementProofs\n▸ agentDeleteEntanglementProofs(proofs): EntanglementProof[]\nParameters\n\n\n\nName\nType\n\n\n\n\nproofs\nEntanglementProofInput[]\n\n\n\nReturns\nEntanglementProof[]\nDefined in\nagent/AgentResolver.ts:98\n\nagentEntanglementProofPreFlight\n▸ agentEntanglementProofPreFlight(deviceKey, deviceKeyType): EntanglementProof\nParameters\n\n\n\nName\nType\n\n\n\n\ndeviceKey\nstring\n\n\ndeviceKeyType\nstring\n\n\n\nReturns\nEntanglementProof\nDefined in\nagent/AgentResolver.ts:108\n\nagentGenerate\n▸ agentGenerate(passphrase, pubSub): AgentStatus\nParameters\n\n\n\nName\nType\n\n\n\n\npassphrase\nstring\n\n\npubSub\nany\n\n\n\nReturns\nAgentStatus\nDefined in\nagent/AgentResolver.ts:21\n\nagentGenerateJwt\n▸ agentGenerateJwt(requestId, rand): String\nParameters\n\n\n\nName\nType\n\n\n\n\nrequestId\nstring\n\n\nrand\nstring\n\n\n\nReturns\nString\nDefined in\nagent/AgentResolver.ts:128\n\nagentGetApps\n▸ agentGetApps(): []\nReturns\n[]\nDefined in\nagent/AgentResolver.ts:138\n\nagentGetEntanglementProofs\n▸ agentGetEntanglementProofs(): EntanglementProof[]\nReturns\nEntanglementProof[]\nDefined in\nagent/AgentResolver.ts:103\n\nagentImport\n▸ agentImport(did, didDocument, keystore, passphrase): AgentStatus\nParameters\n\n\n\nName\nType\n\n\n\n\ndid\nstring\n\n\ndidDocument\nstring\n\n\nkeystore\nstring\n\n\npassphrase\nstring\n\n\n\nReturns\nAgentStatus\nDefined in\nagent/AgentResolver.ts:31\n\nagentIsLocked\n▸ agentIsLocked(): Boolean\nReturns\nBoolean\nDefined in\nagent/AgentResolver.ts:133\n\nagentLock\n▸ agentLock(passphrase, pubSub): AgentStatus\nParameters\n\n\n\nName\nType\n\n\n\n\npassphrase\nstring\n\n\npubSub\nany\n\n\n\nReturns\nAgentStatus\nDefined in\nagent/AgentResolver.ts:41\n\nagentPermitCapability\n▸ agentPermitCapability(auth): String\nParameters\n\n\n\nName\nType\n\n\n\n\nauth\nstring\n\n\n\nReturns\nString\nDefined in\nagent/AgentResolver.ts:123\n\nagentRemoveApp\n▸ agentRemoveApp(requestId): []\nParameters\n\n\n\nName\nType\n\n\n\n\nrequestId\nstring\n\n\n\nReturns\n[]\nDefined in\nagent/AgentResolver.ts:143\n\nagentRequestCapability\n▸ agentRequestCapability(appName, appDesc, appUrl, capabilities): String\nParameters\n\n\n\nName\nType\n\n\n\n\nappName\nstring\n\n\nappDesc\nstring\n\n\nappUrl\nstring\n\n\ncapabilities\nstring\n\n\n\nReturns\nString\nDefined in\nagent/AgentResolver.ts:113\n\nagentRevokeToken\n▸ agentRevokeToken(requestId): any[]\nParameters\n\n\n\nName\nType\n\n\n\n\nrequestId\nstring\n\n\n\nReturns\nany[]\nDefined in\nagent/AgentResolver.ts:148\n\nagentSignMessage\n▸ agentSignMessage(message): AgentSignature\nParameters\n\n\n\nName\nType\n\n\n\n\nmessage\nstring\n\n\n\nReturns\nAgentSignature\nDefined in\nagent/AgentResolver.ts:176\n\nagentStatus\n▸ agentStatus(): AgentStatus\nReturns\nAgentStatus\nDefined in\nagent/AgentResolver.ts:16\n\nagentStatusChanged\n▸ agentStatusChanged(): AgentStatus\nReturns\nAgentStatus\nDefined in\nagent/AgentResolver.ts:88\n\nagentUnlock\n▸ agentUnlock(passphrase, pubSub): AgentStatus\nParameters\n\n\n\nName\nType\n\n\n\n\npassphrase\nstring\n\n\npubSub\nany\n\n\n\nReturns\nAgentStatus\nDefined in\nagent/AgentResolver.ts:51\n\nagentUpdateDirectMessageLanguage\n▸ agentUpdateDirectMessageLanguage(directMessageLanguage, pubSub): Agent\nParameters\n\n\n\nName\nType\n\n\n\n\ndirectMessageLanguage\nstring\n\n\npubSub\nany\n\n\n\nReturns\nAgent\nDefined in\nagent/AgentResolver.ts:75\n\nagentUpdatePublicPerspective\n▸ agentUpdatePublicPerspective(perspective, pubSub): Agent\nParameters\n\n\n\nName\nType\n\n\n\n\nperspective\nPerspectiveInput\n\n\npubSub\nany\n\n\n\nReturns\nAgent\nDefined in\nagent/AgentResolver.ts:67\n\nagentUpdated\n▸ agentUpdated(): Agent\nReturns\nAgent\nDefined in\nagent/AgentResolver.ts:83\n\n@perspect3vism/ad4m / Exports / agent/AgentStatus / AgentStatus\nClass: AgentStatus\nagent/AgentStatus.AgentStatus\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\ndid\ndidDocument\nerror\nisInitialized\nisUnlocked\n\nConstructors\nconstructor\n• new AgentStatus(obj?)\nParameters\n\n\n\nName\nType\n\n\n\n\nobj?\nobject\n\n\n\nDefined in\nagent/AgentStatus.ts:20\nProperties\ndid\n• Optional did: string\nDefined in\nagent/AgentStatus.ts:12\n\ndidDocument\n• Optional didDocument: string\nDefined in\nagent/AgentStatus.ts:15\n\nerror\n• Optional error: string\nDefined in\nagent/AgentStatus.ts:18\n\nisInitialized\n• isInitialized: Boolean\nDefined in\nagent/AgentStatus.ts:6\n\nisUnlocked\n• isUnlocked: Boolean\nDefined in\nagent/AgentStatus.ts:9\n\n@perspect3vism/ad4m / Exports / expression/Expression / Expression\nClass: Expression\nexpression/Expression.Expression\nHierarchy\n\nany\n↳ Expression\n\n\nTable of contents\nConstructors\n\nconstructor\n\nConstructors\nconstructor\n• new Expression()\nInherited from\nExpressionGeneric(Object).constructor\n\n@perspect3vism/ad4m / Exports / expression/Expression / ExpressionProof\nClass: ExpressionProof\nexpression/Expression.ExpressionProof\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\ninvalid\nkey\nsignature\nvalid\n\nConstructors\nconstructor\n• new ExpressionProof(sig, k)\nParameters\n\n\n\nName\nType\n\n\n\n\nsig\nstring\n\n\nk\nstring\n\n\n\nDefined in\nexpression/Expression.ts:20\nProperties\ninvalid\n• Optional invalid: boolean\nDefined in\nexpression/Expression.ts:18\n\nkey\n• key: string\nDefined in\nexpression/Expression.ts:12\n\nsignature\n• signature: string\nDefined in\nexpression/Expression.ts:9\n\nvalid\n• Optional valid: boolean\nDefined in\nexpression/Expression.ts:15\n\n@perspect3vism/ad4m / Exports / expression/Expression / ExpressionProofInput\nClass: ExpressionProofInput\nexpression/Expression.ExpressionProofInput\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\ninvalid\nkey\nsignature\nvalid\n\nConstructors\nconstructor\n• new ExpressionProofInput()\nProperties\ninvalid\n• Optional invalid: boolean\nDefined in\nexpression/Expression.ts:38\n\nkey\n• key: string\nDefined in\nexpression/Expression.ts:32\n\nsignature\n• signature: string\nDefined in\nexpression/Expression.ts:29\n\nvalid\n• Optional valid: boolean\nDefined in\nexpression/Expression.ts:35\n\n@perspect3vism/ad4m / Exports / expression/Expression / ExpressionRendered\nClass: ExpressionRendered\nexpression/Expression.ExpressionRendered\nHierarchy\n\nany\n↳ ExpressionRendered\n\n\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\nicon\nlanguage\n\nConstructors\nconstructor\n• new ExpressionRendered()\nInherited from\nExpressionGeneric(String).constructor\nProperties\nicon\n• icon: Icon\nDefined in\nexpression/Expression.ts:94\n\nlanguage\n• language: LanguageRef\nDefined in\nexpression/Expression.ts:91\n\n@perspect3vism/ad4m / Exports / expression/ExpressionClient / ExpressionClient\nClass: ExpressionClient\nexpression/ExpressionClient.ExpressionClient\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\n#apolloClient\n\nMethods\n\ncreate\nget\ngetMany\ngetRaw\ninteract\ninteractions\n\nConstructors\nconstructor\n• new ExpressionClient(client)\nParameters\n\n\n\nName\nType\n\n\n\n\nclient\nApolloClientany>\n\n\n\nDefined in\nexpression/ExpressionClient.ts:9\nProperties\n#apolloClient\n• Private #apolloClient: ApolloClientany>\nDefined in\nexpression/ExpressionClient.ts:7\nMethods\ncreate\n▸ create(content, languageAddress): Promisestring>\nParameters\n\n\n\nName\nType\n\n\n\n\ncontent\nany\n\n\nlanguageAddress\nstring\n\n\n\nReturns\nPromisestring>\nDefined in\nexpression/ExpressionClient.ts:65\n\nget\n▸ get(url): PromiseExpressionRendered>\nParameters\n\n\n\nName\nType\n\n\n\n\nurl\nstring\n\n\n\nReturns\nPromiseExpressionRendered>\nDefined in\nexpression/ExpressionClient.ts:13\n\ngetMany\n▸ getMany(urls): PromiseExpressionRendered[]>\nParameters\n\n\n\nName\nType\n\n\n\n\nurls\nstring[]\n\n\n\nReturns\nPromiseExpressionRendered[]>\nDefined in\nexpression/ExpressionClient.ts:34\n\ngetRaw\n▸ getRaw(url): Promisestring>\nParameters\n\n\n\nName\nType\n\n\n\n\nurl\nstring\n\n\n\nReturns\nPromisestring>\nDefined in\nexpression/ExpressionClient.ts:55\n\ninteract\n▸ interact(url, interactionCall): Promisestring>\nParameters\n\n\n\nName\nType\n\n\n\n\nurl\nstring\n\n\ninteractionCall\nInteractionCall\n\n\n\nReturns\nPromisestring>\nDefined in\nexpression/ExpressionClient.ts:90\n\ninteractions\n▸ interactions(url): PromiseInteractionMeta[]>\nParameters\n\n\n\nName\nType\n\n\n\n\nurl\nstring\n\n\n\nReturns\nPromiseInteractionMeta[]>\nDefined in\nexpression/ExpressionClient.ts:76\n\n@perspect3vism/ad4m / Exports / expression/ExpressionRef / ExpressionRef\nClass: ExpressionRef\nexpression/ExpressionRef.ExpressionRef\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\nexpression\nlanguage\n\nConstructors\nconstructor\n• new ExpressionRef(lang, expr)\nParameters\n\n\n\nName\nType\n\n\n\n\nlang\nLanguageRef\n\n\nexpr\nstring\n\n\n\nDefined in\nexpression/ExpressionRef.ts:14\nProperties\nexpression\n• expression: string\nDefined in\nexpression/ExpressionRef.ts:12\n\nlanguage\n• language: LanguageRef\nDefined in\nexpression/ExpressionRef.ts:9\n\n@perspect3vism/ad4m / Exports / expression/ExpressionResolver / default\nClass: default\nexpression/ExpressionResolver.default\nTable of contents\nConstructors\n\nconstructor\n\nMethods\n\nexpression\nexpressionCreate\nexpressionInteract\nexpressionInteractions\nexpressionMany\nexpressionRaw\n\nConstructors\nconstructor\n• new default()\nMethods\nexpression\n▸ expression(url): ExpressionRendered\nParameters\n\n\n\nName\nType\n\n\n\n\nurl\nstring\n\n\n\nReturns\nExpressionRendered\nDefined in\nexpression/ExpressionResolver.ts:16\n\nexpressionCreate\n▸ expressionCreate(content, languageAddress): string\nParameters\n\n\n\nName\nType\n\n\n\n\ncontent\nstring\n\n\nlanguageAddress\nstring\n\n\n\nReturns\nstring\nDefined in\nexpression/ExpressionResolver.ts:39\n\nexpressionInteract\n▸ expressionInteract(url, interactionCall): string\nParameters\n\n\n\nName\nType\n\n\n\n\nurl\nstring\n\n\ninteractionCall\nInteractionCall\n\n\n\nReturns\nstring\nDefined in\nexpression/ExpressionResolver.ts:57\n\nexpressionInteractions\n▸ expressionInteractions(url): InteractionMeta[]\nParameters\n\n\n\nName\nType\n\n\n\n\nurl\nstring\n\n\n\nReturns\nInteractionMeta[]\nDefined in\nexpression/ExpressionResolver.ts:47\n\nexpressionMany\n▸ expressionMany(urls): ExpressionRendered[]\nParameters\n\n\n\nName\nType\n\n\n\n\nurls\nstring[]\n\n\n\nReturns\nExpressionRendered[]\nDefined in\nexpression/ExpressionResolver.ts:25\n\nexpressionRaw\n▸ expressionRaw(url): string\nParameters\n\n\n\nName\nType\n\n\n\n\nurl\nstring\n\n\n\nReturns\nstring\nDefined in\nexpression/ExpressionResolver.ts:30\n\n@perspect3vism/ad4m / Exports / language/Icon / Icon\nClass: Icon\nlanguage/Icon.Icon\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\ncode\n\nConstructors\nconstructor\n• new Icon(code)\nParameters\n\n\n\nName\nType\n\n\n\n\ncode\nstring\n\n\n\nDefined in\nlanguage/Icon.ts:8\nProperties\ncode\n• code: string\nDefined in\nlanguage/Icon.ts:6\n\n@perspect3vism/ad4m / Exports / language/Language / InteractionCall\nClass: InteractionCall\nlanguage/Language.InteractionCall\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\nname\nparametersStringified\n\nAccessors\n\nparameters\n\nConstructors\nconstructor\n• new InteractionCall(name, parameters)\nParameters\n\n\n\nName\nType\n\n\n\n\nname\nstring\n\n\nparameters\nobject\n\n\n\nDefined in\nlanguage/Language.ts:239\nProperties\nname\n• name: string\nDefined in\nlanguage/Language.ts:231\n\nparametersStringified\n• parametersStringified: string\nDefined in\nlanguage/Language.ts:233\nAccessors\nparameters\n• get parameters(): object\nReturns\nobject\nDefined in\nlanguage/Language.ts:235\n\n@perspect3vism/ad4m / Exports / language/Language / InteractionMeta\nClass: InteractionMeta\nlanguage/Language.InteractionMeta\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\nlabel\nname\nparameters\n\nConstructors\nconstructor\n• new InteractionMeta()\nProperties\nlabel\n• label: string\nDefined in\nlanguage/Language.ts:213\n\nname\n• name: string\nDefined in\nlanguage/Language.ts:216\n\nparameters\n• parameters: InteractionParameter[]\nDefined in\nlanguage/Language.ts:219\n\n@perspect3vism/ad4m / Exports / language/Language / InteractionParameter\nClass: InteractionParameter\nlanguage/Language.InteractionParameter\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\nname\ntype\n\nConstructors\nconstructor\n• new InteractionParameter()\nProperties\nname\n• name: string\nDefined in\nlanguage/Language.ts:204\n\ntype\n• type: string\nDefined in\nlanguage/Language.ts:207\n\n@perspect3vism/ad4m / Exports / language/Language / OnlineAgent\nClass: OnlineAgent\nlanguage/Language.OnlineAgent\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\ndid\nstatus\n\nConstructors\nconstructor\n• new OnlineAgent()\nProperties\ndid\n• did: string\nDefined in\nlanguage/Language.ts:248\n\nstatus\n• status: PerspectiveExpression\nDefined in\nlanguage/Language.ts:250\n\n@perspect3vism/ad4m / Exports / language/LanguageClient / LanguageClient\nClass: LanguageClient\nlanguage/LanguageClient.LanguageClient\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\n#apolloClient\n\nMethods\n\nall\napplyTemplateAndPublish\nbyAddress\nbyFilter\nmeta\npublish\nremove\nsource\nwriteSettings\n\nConstructors\nconstructor\n• new LanguageClient(apolloClient)\nParameters\n\n\n\nName\nType\n\n\n\n\napolloClient\nApolloClientany>\n\n\n\nDefined in\nlanguage/LanguageClient.ts:31\nProperties\n#apolloClient\n• Private #apolloClient: ApolloClientany>\nDefined in\nlanguage/LanguageClient.ts:29\nMethods\nall\n▸ all(): PromiseLanguageHandle[]>\nReturns\nPromiseLanguageHandle[]>\nDefined in\nlanguage/LanguageClient.ts:59\n\napplyTemplateAndPublish\n▸ applyTemplateAndPublish(sourceLanguageHash, templateData): PromiseLanguageRef>\nParameters\n\n\n\nName\nType\n\n\n\n\nsourceLanguageHash\nstring\n\n\ntemplateData\nstring\n\n\n\nReturns\nPromiseLanguageRef>\nDefined in\nlanguage/LanguageClient.ts:76\n\nbyAddress\n▸ byAddress(address): PromiseLanguageHandle>\nParameters\n\n\n\nName\nType\n\n\n\n\naddress\nstring\n\n\n\nReturns\nPromiseLanguageHandle>\nDefined in\nlanguage/LanguageClient.ts:35\n\nbyFilter\n▸ byFilter(filter): PromiseLanguageHandle[]>\nParameters\n\n\n\nName\nType\n\n\n\n\nfilter\nstring\n\n\n\nReturns\nPromiseLanguageHandle[]>\nDefined in\nlanguage/LanguageClient.ts:47\n\nmeta\n▸ meta(address): PromiseLanguageMeta>\nParameters\n\n\n\nName\nType\n\n\n\n\naddress\nstring\n\n\n\nReturns\nPromiseLanguageMeta>\nDefined in\nlanguage/LanguageClient.ts:114\n\npublish\n▸ publish(languagePath, languageMeta): PromiseLanguageMeta>\nParameters\n\n\n\nName\nType\n\n\n\n\nlanguagePath\nstring\n\n\nlanguageMeta\nLanguageMetaInput\n\n\n\nReturns\nPromiseLanguageMeta>\nDefined in\nlanguage/LanguageClient.ts:95\n\nremove\n▸ remove(address): PromiseBoolean>\nParameters\n\n\n\nName\nType\n\n\n\n\naddress\nstring\n\n\n\nReturns\nPromiseBoolean>\nDefined in\nlanguage/LanguageClient.ts:146\n\nsource\n▸ source(address): Promisestring>\nParameters\n\n\n\nName\nType\n\n\n\n\naddress\nstring\n\n\n\nReturns\nPromisestring>\nDefined in\nlanguage/LanguageClient.ts:131\n\nwriteSettings\n▸ writeSettings(languageAddress, settings): PromiseBoolean>\nParameters\n\n\n\nName\nType\n\n\n\n\nlanguageAddress\nstring\n\n\nsettings\nstring\n\n\n\nReturns\nPromiseBoolean>\nDefined in\nlanguage/LanguageClient.ts:63\n\n@perspect3vism/ad4m / Exports / language/LanguageContext / Dna\nClass: Dna\nlanguage/LanguageContext.Dna\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\nfile\nnick\nzomeCalls\n\nConstructors\nconstructor\n• new Dna()\nProperties\nfile\n• file: Buffer\nDefined in\nlanguage/LanguageContext.ts:25\n\nnick\n• nick: string\nDefined in\nlanguage/LanguageContext.ts:26\n\nzomeCalls\n• zomeCalls: [string, string][]\nDefined in\nlanguage/LanguageContext.ts:27\n\n@perspect3vism/ad4m / Exports / language/LanguageHandle / LanguageHandle\nClass: LanguageHandle\nlanguage/LanguageHandle.LanguageHandle\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\naddress\nconstructorIcon\nicon\nname\nsettings\nsettingsIcon\n\nConstructors\nconstructor\n• new LanguageHandle()\nProperties\naddress\n• address: string\nDefined in\nlanguage/LanguageHandle.ts:10\n\nconstructorIcon\n• Optional constructorIcon: Icon\nDefined in\nlanguage/LanguageHandle.ts:19\n\nicon\n• Optional icon: Icon\nDefined in\nlanguage/LanguageHandle.ts:16\n\nname\n• name: string\nDefined in\nlanguage/LanguageHandle.ts:7\n\nsettings\n• Optional settings: string\nDefined in\nlanguage/LanguageHandle.ts:13\n\nsettingsIcon\n• Optional settingsIcon: Icon\nDefined in\nlanguage/LanguageHandle.ts:22\n\n@perspect3vism/ad4m / Exports / language/LanguageMeta / LanguageExpression\nClass: LanguageExpression\nlanguage/LanguageMeta.LanguageExpression\nHierarchy\n\nany\n↳ LanguageExpression\n\n\nTable of contents\nConstructors\n\nconstructor\n\nConstructors\nconstructor\n• new LanguageExpression()\nInherited from\nExpressionGeneric(LanguageMetaInternal).constructor\n\n@perspect3vism/ad4m / Exports / language/LanguageMeta / LanguageLanguageInput\nClass: LanguageLanguageInput\nlanguage/LanguageMeta.LanguageLanguageInput\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\nbundle\nmeta\n\nConstructors\nconstructor\n• new LanguageLanguageInput()\nProperties\nbundle\n• bundle: string\nDefined in\nlanguage/LanguageMeta.ts:68\n\nmeta\n• meta: LanguageMetaInternal\nDefined in\nlanguage/LanguageMeta.ts:69\n\n@perspect3vism/ad4m / Exports / language/LanguageMeta / LanguageMeta\nClass: LanguageMeta\nlanguage/LanguageMeta.LanguageMeta\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\naddress\nauthor\ndescription\nname\npossibleTemplateParams\nsourceCodeLink\ntemplateAppliedParams\ntemplateSourceLanguageAddress\ntemplated\n\nConstructors\nconstructor\n• new LanguageMeta()\nProperties\naddress\n• address: string\nDefined in\nlanguage/LanguageMeta.ts:10\n\nauthor\n• author: string\nDefined in\nlanguage/LanguageMeta.ts:16\n\ndescription\n• description: string\nDefined in\nlanguage/LanguageMeta.ts:13\n\nname\n• name: string\nDefined in\nlanguage/LanguageMeta.ts:7\n\npossibleTemplateParams\n• Optional possibleTemplateParams: string[]\nDefined in\nlanguage/LanguageMeta.ts:28\n\nsourceCodeLink\n• Optional sourceCodeLink: string\nDefined in\nlanguage/LanguageMeta.ts:31\n\ntemplateAppliedParams\n• Optional templateAppliedParams: string\nDefined in\nlanguage/LanguageMeta.ts:25\n\ntemplateSourceLanguageAddress\n• Optional templateSourceLanguageAddress: string\nDefined in\nlanguage/LanguageMeta.ts:22\n\ntemplated\n• templated: boolean\nDefined in\nlanguage/LanguageMeta.ts:19\n\n@perspect3vism/ad4m / Exports / language/LanguageMeta / LanguageMetaInput\nClass: LanguageMetaInput\nlanguage/LanguageMeta.LanguageMetaInput\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\ndescription\nname\npossibleTemplateParams\nsourceCodeLink\n\nConstructors\nconstructor\n• new LanguageMetaInput(name?, description?)\nParameters\n\n\n\nName\nType\n\n\n\n\nname?\nstring\n\n\ndescription?\nstring\n\n\n\nDefined in\nlanguage/LanguageMeta.ts:48\nProperties\ndescription\n• description: string\nDefined in\nlanguage/LanguageMeta.ts:40\n\nname\n• name: string\nDefined in\nlanguage/LanguageMeta.ts:37\n\npossibleTemplateParams\n• Optional possibleTemplateParams: string[]\nDefined in\nlanguage/LanguageMeta.ts:43\n\nsourceCodeLink\n• Optional sourceCodeLink: string\nDefined in\nlanguage/LanguageMeta.ts:46\n\n@perspect3vism/ad4m / Exports / language/LanguageMeta / LanguageMetaInternal\nClass: LanguageMetaInternal\nlanguage/LanguageMeta.LanguageMetaInternal\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\naddress\ndescription\nname\npossibleTemplateParams\nsourceCodeLink\ntemplateAppliedParams\ntemplateSourceLanguageAddress\n\nConstructors\nconstructor\n• new LanguageMetaInternal()\nProperties\naddress\n• address: string\nDefined in\nlanguage/LanguageMeta.ts:57\n\ndescription\n• description: string\nDefined in\nlanguage/LanguageMeta.ts:58\n\nname\n• name: string\nDefined in\nlanguage/LanguageMeta.ts:56\n\npossibleTemplateParams\n• Optional possibleTemplateParams: string[]\nDefined in\nlanguage/LanguageMeta.ts:61\n\nsourceCodeLink\n• Optional sourceCodeLink: string\nDefined in\nlanguage/LanguageMeta.ts:62\n\ntemplateAppliedParams\n• Optional templateAppliedParams: string\nDefined in\nlanguage/LanguageMeta.ts:60\n\ntemplateSourceLanguageAddress\n• Optional templateSourceLanguageAddress: string\nDefined in\nlanguage/LanguageMeta.ts:59\n\n@perspect3vism/ad4m / Exports / language/LanguageRef / LanguageRef\nClass: LanguageRef\nlanguage/LanguageRef.LanguageRef\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\naddress\nname\n\nConstructors\nconstructor\n• new LanguageRef(address?, name?)\nParameters\n\n\n\nName\nType\n\n\n\n\naddress?\nstring\n\n\nname?\nstring\n\n\n\nDefined in\nlanguage/LanguageRef.ts:14\nProperties\naddress\n• address: string\nDefined in\nlanguage/LanguageRef.ts:9\n\nname\n• name: string\nDefined in\nlanguage/LanguageRef.ts:12\n\n@perspect3vism/ad4m / Exports / language/LanguageResolver / default\nClass: default\nlanguage/LanguageResolver.default\nResolver classes are used here to define the GraphQL schema \n(through the type-graphql annotations)\nand are spawned in the client tests in Ad4mClient.test.ts.\nFor the latter, they return test fixtures.\nTable of contents\nConstructors\n\nconstructor\n\nMethods\n\nlanguage\nlanguageApplyTemplateAndPublish\nlanguageMeta\nlanguagePublish\nlanguageRemove\nlanguageSource\nlanguageWriteSettings\nlanguages\n\nConstructors\nconstructor\n• new default()\nMethods\nlanguage\n▸ language(address): LanguageHandle\nParameters\n\n\n\nName\nType\n\n\n\n\naddress\nstring\n\n\n\nReturns\nLanguageHandle\nDefined in\nlanguage/LanguageResolver.ts:16\n\nlanguageApplyTemplateAndPublish\n▸ languageApplyTemplateAndPublish(sourceLanguageHash, templateData): LanguageRef\nParameters\n\n\n\nName\nType\n\n\n\n\nsourceLanguageHash\nstring\n\n\ntemplateData\nstring\n\n\n\nReturns\nLanguageRef\nDefined in\nlanguage/LanguageResolver.ts:49\n\nlanguageMeta\n▸ languageMeta(address): LanguageMeta\nParameters\n\n\n\nName\nType\n\n\n\n\naddress\nstring\n\n\n\nReturns\nLanguageMeta\nDefined in\nlanguage/LanguageResolver.ts:75\n\nlanguagePublish\n▸ languagePublish(languagePath, languageMeta): LanguageMeta\nParameters\n\n\n\nName\nType\n\n\n\n\nlanguagePath\nstring\n\n\nlanguageMeta\nLanguageMetaInput\n\n\n\nReturns\nLanguageMeta\nDefined in\nlanguage/LanguageResolver.ts:57\n\nlanguageRemove\n▸ languageRemove(address): Boolean\nParameters\n\n\n\nName\nType\n\n\n\n\naddress\nstring\n\n\n\nReturns\nBoolean\nDefined in\nlanguage/LanguageResolver.ts:95\n\nlanguageSource\n▸ languageSource(address): string\nParameters\n\n\n\nName\nType\n\n\n\n\naddress\nstring\n\n\n\nReturns\nstring\nDefined in\nlanguage/LanguageResolver.ts:90\n\nlanguageWriteSettings\n▸ languageWriteSettings(languageAddress, settings): Boolean\nParameters\n\n\n\nName\nType\n\n\n\n\nlanguageAddress\nstring\n\n\nsettings\nstring\n\n\n\nReturns\nBoolean\nDefined in\nlanguage/LanguageResolver.ts:41\n\nlanguages\n▸ languages(filter): LanguageHandle[]\nParameters\n\n\n\nName\nType\n\n\n\n\nfilter\nstring\n\n\n\nReturns\nLanguageHandle[]\nDefined in\nlanguage/LanguageResolver.ts:29\n\n@perspect3vism/ad4m / Exports / links/Links / Link\nClass: Link\nlinks/Links.Link\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\npredicate\nsource\ntarget\n\nConstructors\nconstructor\n• new Link(obj)\nParameters\n\n\n\nName\nType\n\n\n\n\nobj\nany\n\n\n\nDefined in\nlinks/Links.ts:15\nProperties\npredicate\n• Optional predicate: string\nDefined in\nlinks/Links.ts:13\n\nsource\n• source: string\nDefined in\nlinks/Links.ts:7\n\ntarget\n• target: string\nDefined in\nlinks/Links.ts:10\n\n@perspect3vism/ad4m / Exports / links/Links / LinkExpression\nClass: LinkExpression\nlinks/Links.LinkExpression\nHierarchy\n\nany\n↳ LinkExpression\n\n\nTable of contents\nConstructors\n\nconstructor\n\nMethods\n\nhash\n\nConstructors\nconstructor\n• new LinkExpression()\nInherited from\nExpressionGeneric(Link).constructor\nMethods\nhash\n▸ hash(): number\nReturns\nnumber\nDefined in\nlinks/Links.ts:58\n\n@perspect3vism/ad4m / Exports / links/Links / LinkExpressionInput\nClass: LinkExpressionInput\nlinks/Links.LinkExpressionInput\nHierarchy\n\nany\n↳ LinkExpressionInput\n\n\nTable of contents\nConstructors\n\nconstructor\n\nConstructors\nconstructor\n• new LinkExpressionInput()\nInherited from\nExpressionGenericInput(LinkInput).constructor\n\n@perspect3vism/ad4m / Exports / links/Links / LinkExpressionMutations\nClass: LinkExpressionMutations\nlinks/Links.LinkExpressionMutations\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\nadditions\nremovals\n\nConstructors\nconstructor\n• new LinkExpressionMutations(additions, removals)\nParameters\n\n\n\nName\nType\n\n\n\n\nadditions\nLinkExpression[]\n\n\nremovals\nLinkExpression[]\n\n\n\nDefined in\nlinks/Links.ts:38\nProperties\nadditions\n• additions: LinkExpression[]\nDefined in\nlinks/Links.ts:33\n\nremovals\n• removals: LinkExpression[]\nDefined in\nlinks/Links.ts:36\n\n@perspect3vism/ad4m / Exports / links/Links / LinkExpressionUpdated\nClass: LinkExpressionUpdated\nlinks/Links.LinkExpressionUpdated\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\nnewLink\noldLink\n\nConstructors\nconstructor\n• new LinkExpressionUpdated(oldLink, newLink)\nParameters\n\n\n\nName\nType\n\n\n\n\noldLink\nLinkExpression\n\n\nnewLink\nLinkExpression\n\n\n\nDefined in\nlinks/Links.ts:94\nProperties\nnewLink\n• newLink: LinkExpression\nDefined in\nlinks/Links.ts:92\n\noldLink\n• oldLink: LinkExpression\nDefined in\nlinks/Links.ts:89\n\n@perspect3vism/ad4m / Exports / links/Links / LinkInput\nClass: LinkInput\nlinks/Links.LinkInput\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\npredicate\nsource\ntarget\n\nConstructors\nconstructor\n• new LinkInput()\nProperties\npredicate\n• Optional predicate: string\nDefined in\nlinks/Links.ts:53\n\nsource\n• source: string\nDefined in\nlinks/Links.ts:47\n\ntarget\n• target: string\nDefined in\nlinks/Links.ts:50\n\n@perspect3vism/ad4m / Exports / links/Links / LinkMutations\nClass: LinkMutations\nlinks/Links.LinkMutations\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\nadditions\nremovals\n\nConstructors\nconstructor\n• new LinkMutations()\nProperties\nadditions\n• additions: LinkInput[]\nDefined in\nlinks/Links.ts:25\n\nremovals\n• removals: LinkExpressionInput[]\nDefined in\nlinks/Links.ts:28\n\n@perspect3vism/ad4m / Exports / neighbourhood/Neighbourhood / Neighbourhood\nClass: Neighbourhood\nneighbourhood/Neighbourhood.Neighbourhood\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\nlinkLanguage\nmeta\n\nConstructors\nconstructor\n• new Neighbourhood(linkLanguage, meta)\nParameters\n\n\n\nName\nType\n\n\n\n\nlinkLanguage\nstring\n\n\nmeta\nPerspective\n\n\n\nDefined in\nneighbourhood/Neighbourhood.ts:15\nProperties\nlinkLanguage\n• linkLanguage: string\nDefined in\nneighbourhood/Neighbourhood.ts:10\n\nmeta\n• meta: Perspective\nDefined in\nneighbourhood/Neighbourhood.ts:13\n\n@perspect3vism/ad4m / Exports / neighbourhood/Neighbourhood / NeighbourhoodExpression\nClass: NeighbourhoodExpression\nneighbourhood/Neighbourhood.NeighbourhoodExpression\nHierarchy\n\nany\n↳ NeighbourhoodExpression\n\n\nTable of contents\nConstructors\n\nconstructor\n\nConstructors\nconstructor\n• new NeighbourhoodExpression()\nInherited from\nExpressionGeneric(Neighbourhood).constructor\n\n@perspect3vism/ad4m / Exports / neighbourhood/NeighbourhoodClient / NeighbourhoodClient\nClass: NeighbourhoodClient\nneighbourhood/NeighbourhoodClient.NeighbourhoodClient\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\n#apolloClient\n\nMethods\n\naddSignalHandler\nhasTelepresenceAdapter\njoinFromUrl\nonlineAgents\notherAgents\npublishFromPerspective\nsendBroadcast\nsendSignal\nsetOnlineStatus\n\nConstructors\nconstructor\n• new NeighbourhoodClient(client)\nParameters\n\n\n\nName\nType\n\n\n\n\nclient\nApolloClientany>\n\n\n\nDefined in\nneighbourhood/NeighbourhoodClient.ts:13\nProperties\n#apolloClient\n• Private #apolloClient: ApolloClientany>\nDefined in\nneighbourhood/NeighbourhoodClient.ts:11\nMethods\naddSignalHandler\n▸ addSignalHandler(perspectiveUUID, handler): Promisevoid>\nParameters\n\n\n\nName\nType\n\n\n\n\nperspectiveUUID\nstring\n\n\nhandler\nTelepresenceSignalCallback\n\n\n\nReturns\nPromisevoid>\nDefined in\nneighbourhood/NeighbourhoodClient.ts:164\n\nhasTelepresenceAdapter\n▸ hasTelepresenceAdapter(perspectiveUUID): Promiseboolean>\nParameters\n\n\n\nName\nType\n\n\n\n\nperspectiveUUID\nstring\n\n\n\nReturns\nPromiseboolean>\nDefined in\nneighbourhood/NeighbourhoodClient.ts:76\n\njoinFromUrl\n▸ joinFromUrl(url): PromisePerspectiveHandle>\nParameters\n\n\n\nName\nType\n\n\n\n\nurl\nstring\n\n\n\nReturns\nPromisePerspectiveHandle>\nDefined in\nneighbourhood/NeighbourhoodClient.ts:39\n\nonlineAgents\n▸ onlineAgents(perspectiveUUID): PromiseOnlineAgent[]>\nParameters\n\n\n\nName\nType\n\n\n\n\nperspectiveUUID\nstring\n\n\n\nReturns\nPromiseOnlineAgent[]>\nDefined in\nneighbourhood/NeighbourhoodClient.ts:86\n\notherAgents\n▸ otherAgents(perspectiveUUID): Promisestring[]>\nParameters\n\n\n\nName\nType\n\n\n\n\nperspectiveUUID\nstring\n\n\n\nReturns\nPromisestring[]>\nDefined in\nneighbourhood/NeighbourhoodClient.ts:66\n\npublishFromPerspective\n▸ publishFromPerspective(perspectiveUUID, linkLanguage, meta): Promisestring>\nParameters\n\n\n\nName\nType\n\n\n\n\nperspectiveUUID\nstring\n\n\nlinkLanguage\nstring\n\n\nmeta\nPerspective\n\n\n\nReturns\nPromisestring>\nDefined in\nneighbourhood/NeighbourhoodClient.ts:17\n\nsendBroadcast\n▸ sendBroadcast(perspectiveUUID, payload): Promiseboolean>\nParameters\n\n\n\nName\nType\n\n\n\n\nperspectiveUUID\nstring\n\n\npayload\nPerspective\n\n\n\nReturns\nPromiseboolean>\nDefined in\nneighbourhood/NeighbourhoodClient.ts:147\n\nsendSignal\n▸ sendSignal(perspectiveUUID, remoteAgentDid, payload): Promiseboolean>\nParameters\n\n\n\nName\nType\n\n\n\n\nperspectiveUUID\nstring\n\n\nremoteAgentDid\nstring\n\n\npayload\nPerspective\n\n\n\nReturns\nPromiseboolean>\nDefined in\nneighbourhood/NeighbourhoodClient.ts:128\n\nsetOnlineStatus\n▸ setOnlineStatus(perspectiveUUID, status): Promiseboolean>\nParameters\n\n\n\nName\nType\n\n\n\n\nperspectiveUUID\nstring\n\n\nstatus\nPerspective\n\n\n\nReturns\nPromiseboolean>\nDefined in\nneighbourhood/NeighbourhoodClient.ts:111\n\n@perspect3vism/ad4m / Exports / neighbourhood/NeighbourhoodProxy / NeighbourhoodProxy\nClass: NeighbourhoodProxy\nneighbourhood/NeighbourhoodProxy.NeighbourhoodProxy\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\n#client\n#pID\n\nMethods\n\naddSignalHandler\nhasTelepresenceAdapter\nonlineAgents\notherAgents\nsendBroadcast\nsendSignal\nsetOnlineStatus\n\nConstructors\nconstructor\n• new NeighbourhoodProxy(client, pID)\nParameters\n\n\n\nName\nType\n\n\n\n\nclient\nNeighbourhoodClient\n\n\npID\nstring\n\n\n\nDefined in\nneighbourhood/NeighbourhoodProxy.ts:10\nProperties\n#client\n• Private #client: NeighbourhoodClient\nDefined in\nneighbourhood/NeighbourhoodProxy.ts:7\n\n#pID\n• Private #pID: string\nDefined in\nneighbourhood/NeighbourhoodProxy.ts:8\nMethods\naddSignalHandler\n▸ addSignalHandler(handler): Promisevoid>\nParameters\n\n\n\nName\nType\n\n\n\n\nhandler\n(payload: PerspectiveExpression) => void\n\n\n\nReturns\nPromisevoid>\nDefined in\nneighbourhood/NeighbourhoodProxy.ts:39\n\nhasTelepresenceAdapter\n▸ hasTelepresenceAdapter(): Promiseboolean>\nReturns\nPromiseboolean>\nDefined in\nneighbourhood/NeighbourhoodProxy.ts:19\n\nonlineAgents\n▸ onlineAgents(): PromiseOnlineAgent[]>\nReturns\nPromiseOnlineAgent[]>\nDefined in\nneighbourhood/NeighbourhoodProxy.ts:23\n\notherAgents\n▸ otherAgents(): Promisestring[]>\nReturns\nPromisestring[]>\nDefined in\nneighbourhood/NeighbourhoodProxy.ts:15\n\nsendBroadcast\n▸ sendBroadcast(payload): Promiseboolean>\nParameters\n\n\n\nName\nType\n\n\n\n\npayload\nPerspective\n\n\n\nReturns\nPromiseboolean>\nDefined in\nneighbourhood/NeighbourhoodProxy.ts:35\n\nsendSignal\n▸ sendSignal(remoteAgentDid, payload): Promiseboolean>\nParameters\n\n\n\nName\nType\n\n\n\n\nremoteAgentDid\nstring\n\n\npayload\nPerspective\n\n\n\nReturns\nPromiseboolean>\nDefined in\nneighbourhood/NeighbourhoodProxy.ts:31\n\nsetOnlineStatus\n▸ setOnlineStatus(status): Promiseboolean>\nParameters\n\n\n\nName\nType\n\n\n\n\nstatus\nPerspective\n\n\n\nReturns\nPromiseboolean>\nDefined in\nneighbourhood/NeighbourhoodProxy.ts:27\n\n@perspect3vism/ad4m / Exports / neighbourhood/NeighbourhoodResolver / default\nClass: default\nneighbourhood/NeighbourhoodResolver.default\nResolver classes are used here to define the GraphQL schema \n(through the type-graphql annotations)\nand are spawned in the client tests in Ad4mClient.test.ts.\nFor the latter, they return test fixtures.\nTable of contents\nConstructors\n\nconstructor\n\nMethods\n\nneighbourhoodHasTelepresenceAdapter\nneighbourhoodJoinFromUrl\nneighbourhoodOnlineAgents\nneighbourhoodOtherAgents\nneighbourhoodPublishFromPerspective\nneighbourhoodSendBroadcast\nneighbourhoodSendSignal\nneighbourhoodSetOnlineStatus\nneighbourhoodSignal\n\nConstructors\nconstructor\n• new default()\nMethods\nneighbourhoodHasTelepresenceAdapter\n▸ neighbourhoodHasTelepresenceAdapter(perspectiveUUID): boolean\nParameters\n\n\n\nName\nType\n\n\n\n\nperspectiveUUID\nstring\n\n\n\nReturns\nboolean\nDefined in\nneighbourhood/NeighbourhoodResolver.ts:53\n\nneighbourhoodJoinFromUrl\n▸ neighbourhoodJoinFromUrl(url, pubSub): PerspectiveHandle\nParameters\n\n\n\nName\nType\n\n\n\n\nurl\nstring\n\n\npubSub\nany\n\n\n\nReturns\nPerspectiveHandle\nDefined in\nneighbourhood/NeighbourhoodResolver.ts:37\n\nneighbourhoodOnlineAgents\n▸ neighbourhoodOnlineAgents(perspectiveUUID): OnlineAgent[]\nParameters\n\n\n\nName\nType\n\n\n\n\nperspectiveUUID\nstring\n\n\n\nReturns\nOnlineAgent[]\nDefined in\nneighbourhood/NeighbourhoodResolver.ts:58\n\nneighbourhoodOtherAgents\n▸ neighbourhoodOtherAgents(perspectiveUUID): string[]\nParameters\n\n\n\nName\nType\n\n\n\n\nperspectiveUUID\nstring\n\n\n\nReturns\nstring[]\nDefined in\nneighbourhood/NeighbourhoodResolver.ts:48\n\nneighbourhoodPublishFromPerspective\n▸ neighbourhoodPublishFromPerspective(perspectiveUUID, linkLanguage, meta): string\nParameters\n\n\n\nName\nType\n\n\n\n\nperspectiveUUID\nstring\n\n\nlinkLanguage\nstring\n\n\nmeta\nPerspectiveInput\n\n\n\nReturns\nstring\nDefined in\nneighbourhood/NeighbourhoodResolver.ts:28\n\nneighbourhoodSendBroadcast\n▸ neighbourhoodSendBroadcast(perspectiveUUID, signal): boolean\nParameters\n\n\n\nName\nType\n\n\n\n\nperspectiveUUID\nstring\n\n\nsignal\nPerspectiveInput\n\n\n\nReturns\nboolean\nDefined in\nneighbourhood/NeighbourhoodResolver.ts:76\n\nneighbourhoodSendSignal\n▸ neighbourhoodSendSignal(perspectiveUUID, recipient, signal): boolean\nParameters\n\n\n\nName\nType\n\n\n\n\nperspectiveUUID\nstring\n\n\nrecipient\nstring\n\n\nsignal\nPerspectiveInput\n\n\n\nReturns\nboolean\nDefined in\nneighbourhood/NeighbourhoodResolver.ts:71\n\nneighbourhoodSetOnlineStatus\n▸ neighbourhoodSetOnlineStatus(perspectiveUUID, status): boolean\nParameters\n\n\n\nName\nType\n\n\n\n\nperspectiveUUID\nstring\n\n\nstatus\nPerspectiveInput\n\n\n\nReturns\nboolean\nDefined in\nneighbourhood/NeighbourhoodResolver.ts:66\n\nneighbourhoodSignal\n▸ neighbourhoodSignal(pID): PerspectiveExpression\nParameters\n\n\n\nName\nType\n\n\n\n\npID\nstring\n\n\n\nReturns\nPerspectiveExpression\nDefined in\nneighbourhood/NeighbourhoodResolver.ts:81\n\n@perspect3vism/ad4m / Exports / perspectives/LinkQuery / LinkQuery\nClass: LinkQuery\nperspectives/LinkQuery.LinkQuery\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\nfromDate\nlimit\npredicate\nsource\ntarget\nuntilDate\n\nMethods\n\nisMatch\n\nConstructors\nconstructor\n• new LinkQuery(obj)\nParameters\n\n\n\nName\nType\n\n\n\n\nobj\nobject\n\n\n\nDefined in\nperspectives/LinkQuery.ts:25\nProperties\nfromDate\n• Optional fromDate: Date\nDefined in\nperspectives/LinkQuery.ts:17\n\nlimit\n• Optional limit: number\nDefined in\nperspectives/LinkQuery.ts:23\n\npredicate\n• Optional predicate: string\nDefined in\nperspectives/LinkQuery.ts:14\n\nsource\n• Optional source: string\nDefined in\nperspectives/LinkQuery.ts:8\n\ntarget\n• Optional target: string\nDefined in\nperspectives/LinkQuery.ts:11\n\nuntilDate\n• Optional untilDate: Date\nDefined in\nperspectives/LinkQuery.ts:20\nMethods\nisMatch\n▸ isMatch(l): boolean\nParameters\n\n\n\nName\nType\n\n\n\n\nl\nLink\n\n\n\nReturns\nboolean\nDefined in\nperspectives/LinkQuery.ts:51\n\n@perspect3vism/ad4m / Exports / perspectives/Perspective / Perspective\nClass: Perspective\nperspectives/Perspective.Perspective\nA Perspective represents subjective meaning, encoded through\nassociations between expressions, a.k.a. Links, that is a graph\nover the objective Expressions of any subset of Languages.\nThis type represents the clean onotological concept of a Perspective.\nAn instance of this class can be regarded as an immutable snapshot of \na mutable perspective.\nThe types PerspectiveProxy and PerspectiveHandle are used when dealing \nwith an instantiated mutable perspective as is done through most of \nthe GraphQL mutations.\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\nlinks\n\nMethods\n\nget\ngetSingleTarget\n\nConstructors\nconstructor\n• new Perspective(links?)\nParameters\n\n\n\nName\nType\n\n\n\n\nlinks?\nLinkExpression[]\n\n\n\nDefined in\nperspectives/Perspective.ts:24\nProperties\nlinks\n• links: LinkExpression[]\nThe content of the perspective, a list/graph of links\nDefined in\nperspectives/Perspective.ts:22\nMethods\nget\n▸ get(query): LinkExpression[]\nConvenience function for filtering links just like with PerspectiveProxy\nParameters\n\n\n\nName\nType\n\n\n\n\nquery\nLinkQuery\n\n\n\nReturns\nLinkExpression[]\nDefined in\nperspectives/Perspective.ts:33\n\ngetSingleTarget\n▸ getSingleTarget(query): string | void\nConvenience function to get the target of the first link that matches the given query\nThis makes sense when the query is expected to return only one link\nand the target of that link is what you are looking for.\nParameters\n\n\n\nName\nType\n\n\n\n\nquery\nLinkQuery\n\n\n\nReturns\nstring | void\nDefined in\nperspectives/Perspective.ts:81\n\n@perspect3vism/ad4m / Exports / perspectives/Perspective / PerspectiveExpression\nClass: PerspectiveExpression\nperspectives/Perspective.PerspectiveExpression\nHierarchy\n\nany\n↳ PerspectiveExpression\n\n\nTable of contents\nConstructors\n\nconstructor\n\nConstructors\nconstructor\n• new PerspectiveExpression()\nInherited from\nExpressionGeneric(Perspective).constructor\n\n@perspect3vism/ad4m / Exports / perspectives/Perspective / PerspectiveInput\nClass: PerspectiveInput\nperspectives/Perspective.PerspectiveInput\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\nlinks\n\nConstructors\nconstructor\n• new PerspectiveInput()\nProperties\nlinks\n• links: LinkExpressionInput[]\nDefined in\nperspectives/Perspective.ts:95\n\n@perspect3vism/ad4m / Exports / perspectives/PerspectiveClient / PerspectiveClient\nClass: PerspectiveClient\nperspectives/PerspectiveClient.PerspectiveClient\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\n#apolloClient\n#expressionClient\n#neighbourhoodClient\n#perspectiveAddedCallbacks\n#perspectiveRemovedCallbacks\n#perspectiveUpdatedCallbacks\n\nMethods\n\nadd\naddLink\naddLinkExpression\naddLinks\naddPerspectiveAddedListener\naddPerspectiveLinkAddedListener\naddPerspectiveLinkRemovedListener\naddPerspectiveLinkUpdatedListener\naddPerspectiveRemovedListener\naddPerspectiveUpdatedListener\nall\nbyUUID\ncreateExpression\ngetExpression\ngetNeighbourhoodProxy\nlinkMutations\npublishSnapshotByUUID\nqueryLinks\nqueryProlog\nremove\nremoveLink\nremoveLinks\nsetExpressionClient\nsetNeighbourhoodClient\nsnapshotByUUID\nsubscribePerspectiveAdded\nsubscribePerspectiveRemoved\nsubscribePerspectiveUpdated\nupdate\nupdateLink\n\nConstructors\nconstructor\n• new PerspectiveClient(client, subscribe?)\nParameters\n\n\n\nName\nType\nDefault value\n\n\n\n\nclient\nApolloClientany>\nundefined\n\n\nsubscribe\nboolean\ntrue\n\n\n\nDefined in\nperspectives/PerspectiveClient.ts:50\nProperties\n#apolloClient\n• Private #apolloClient: ApolloClientany>\nDefined in\nperspectives/PerspectiveClient.ts:43\n\n#expressionClient\n• Private Optional #expressionClient: ExpressionClient\nDefined in\nperspectives/PerspectiveClient.ts:47\n\n#neighbourhoodClient\n• Private Optional #neighbourhoodClient: NeighbourhoodClient\nDefined in\nperspectives/PerspectiveClient.ts:48\n\n#perspectiveAddedCallbacks\n• Private #perspectiveAddedCallbacks: PerspectiveHandleCallback[]\nDefined in\nperspectives/PerspectiveClient.ts:44\n\n#perspectiveRemovedCallbacks\n• Private #perspectiveRemovedCallbacks: UuidCallback[]\nDefined in\nperspectives/PerspectiveClient.ts:46\n\n#perspectiveUpdatedCallbacks\n• Private #perspectiveUpdatedCallbacks: PerspectiveHandleCallback[]\nDefined in\nperspectives/PerspectiveClient.ts:45\nMethods\nadd\n▸ add(name): PromisePerspectiveProxy>\nParameters\n\n\n\nName\nType\n\n\n\n\nname\nstring\n\n\n\nReturns\nPromisePerspectiveProxy>\nDefined in\nperspectives/PerspectiveClient.ts:140\n\naddLink\n▸ addLink(uuid, link): PromiseLinkExpression>\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\nlink\nLink\n\n\n\nReturns\nPromiseLinkExpression>\nDefined in\nperspectives/PerspectiveClient.ts:173\n\naddLinkExpression\n▸ addLinkExpression(uuid, link): PromiseLinkExpression>\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\nlink\nLinkExpressionInput\n\n\n\nReturns\nPromiseLinkExpression>\nDefined in\nperspectives/PerspectiveClient.ts:226\n\naddLinks\n▸ addLinks(uuid, links): PromiseLinkExpression[]>\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\nlinks\nLink[]\n\n\n\nReturns\nPromiseLinkExpression[]>\nDefined in\nperspectives/PerspectiveClient.ts:185\n\naddPerspectiveAddedListener\n▸ addPerspectiveAddedListener(cb): void\nParameters\n\n\n\nName\nType\n\n\n\n\ncb\nPerspectiveHandleCallback\n\n\n\nReturns\nvoid\nDefined in\nperspectives/PerspectiveClient.ts:283\n\naddPerspectiveLinkAddedListener\n▸ addPerspectiveLinkAddedListener(uuid, cb): Promisevoid>\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nString\n\n\ncb\nLinkCallback[]\n\n\n\nReturns\nPromisevoid>\nDefined in\nperspectives/PerspectiveClient.ts:340\n\naddPerspectiveLinkRemovedListener\n▸ addPerspectiveLinkRemovedListener(uuid, cb): Promisevoid>\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nString\n\n\ncb\nLinkCallback[]\n\n\n\nReturns\nPromisevoid>\nDefined in\nperspectives/PerspectiveClient.ts:357\n\naddPerspectiveLinkUpdatedListener\n▸ addPerspectiveLinkUpdatedListener(uuid, cb): Promisevoid>\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nString\n\n\ncb\nLinkCallback[]\n\n\n\nReturns\nPromisevoid>\nDefined in\nperspectives/PerspectiveClient.ts:374\n\naddPerspectiveRemovedListener\n▸ addPerspectiveRemovedListener(cb): void\nParameters\n\n\n\nName\nType\n\n\n\n\ncb\nUuidCallback\n\n\n\nReturns\nvoid\nDefined in\nperspectives/PerspectiveClient.ts:321\n\naddPerspectiveUpdatedListener\n▸ addPerspectiveUpdatedListener(cb): void\nParameters\n\n\n\nName\nType\n\n\n\n\ncb\nPerspectiveHandleCallback\n\n\n\nReturns\nvoid\nDefined in\nperspectives/PerspectiveClient.ts:302\n\nall\n▸ all(): PromisePerspectiveProxy[]>\nReturns\nPromisePerspectiveProxy[]>\nDefined in\nperspectives/PerspectiveClient.ts:71\n\nbyUUID\n▸ byUUID(uuid): PromisePerspectiveProxy>\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\n\nReturns\nPromisePerspectiveProxy>\nDefined in\nperspectives/PerspectiveClient.ts:83\n\ncreateExpression\n▸ createExpression(content, languageAddress): Promisestring>\nParameters\n\n\n\nName\nType\n\n\n\n\ncontent\nany\n\n\nlanguageAddress\nstring\n\n\n\nReturns\nPromisestring>\nDefined in\nperspectives/PerspectiveClient.ts:278\n\ngetExpression\n▸ getExpression(expressionURI): PromiseExpressionRendered>\nParameters\n\n\n\nName\nType\n\n\n\n\nexpressionURI\nstring\n\n\n\nReturns\nPromiseExpressionRendered>\nDefined in\nperspectives/PerspectiveClient.ts:274\n\ngetNeighbourhoodProxy\n▸ getNeighbourhoodProxy(uuid): NeighbourhoodProxy\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\n\nReturns\nNeighbourhoodProxy\nDefined in\nperspectives/PerspectiveClient.ts:398\n\nlinkMutations\n▸ linkMutations(uuid, mutations): PromiseLinkExpressionMutations>\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\nmutations\nLinkMutations\n\n\n\nReturns\nPromiseLinkExpressionMutations>\nDefined in\nperspectives/PerspectiveClient.ts:209\n\npublishSnapshotByUUID\n▸ publishSnapshotByUUID(uuid): Promisestring>\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\n\nReturns\nPromisestring>\nDefined in\nperspectives/PerspectiveClient.ts:107\n\nqueryLinks\n▸ queryLinks(uuid, query): PromiseLinkExpression[]>\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\nquery\nLinkQuery\n\n\n\nReturns\nPromiseLinkExpression[]>\nDefined in\nperspectives/PerspectiveClient.ts:117\n\nqueryProlog\n▸ queryProlog(uuid, query): Promiseany>\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\nquery\nstring\n\n\n\nReturns\nPromiseany>\nDefined in\nperspectives/PerspectiveClient.ts:129\n\nremove\n▸ remove(uuid): PromiseperspectiveRemove: boolean }>\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\n\nReturns\nPromiseperspectiveRemove: boolean }>\nDefined in\nperspectives/PerspectiveClient.ts:164\n\nremoveLink\n▸ removeLink(uuid, link): PromiseperspectiveRemoveLink: boolean }>\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\nlink\nLinkExpressionInput\n\n\n\nReturns\nPromiseperspectiveRemoveLink: boolean }>\nDefined in\nperspectives/PerspectiveClient.ts:261\n\nremoveLinks\n▸ removeLinks(uuid, links): PromiseLinkExpression[]>\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\nlinks\nLinkExpressionInput[]\n\n\n\nReturns\nPromiseLinkExpression[]>\nDefined in\nperspectives/PerspectiveClient.ts:197\n\nsetExpressionClient\n▸ setExpressionClient(client): void\nParameters\n\n\n\nName\nType\n\n\n\n\nclient\nExpressionClient\n\n\n\nReturns\nvoid\nDefined in\nperspectives/PerspectiveClient.ts:63\n\nsetNeighbourhoodClient\n▸ setNeighbourhoodClient(client): void\nParameters\n\n\n\nName\nType\n\n\n\n\nclient\nNeighbourhoodClient\n\n\n\nReturns\nvoid\nDefined in\nperspectives/PerspectiveClient.ts:67\n\nsnapshotByUUID\n▸ snapshotByUUID(uuid): PromisePerspective>\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\n\nReturns\nPromisePerspective>\nDefined in\nperspectives/PerspectiveClient.ts:96\n\nsubscribePerspectiveAdded\n▸ subscribePerspectiveAdded(): void\nReturns\nvoid\nDefined in\nperspectives/PerspectiveClient.ts:287\n\nsubscribePerspectiveRemoved\n▸ subscribePerspectiveRemoved(): void\nReturns\nvoid\nDefined in\nperspectives/PerspectiveClient.ts:325\n\nsubscribePerspectiveUpdated\n▸ subscribePerspectiveUpdated(): void\nReturns\nvoid\nDefined in\nperspectives/PerspectiveClient.ts:306\n\nupdate\n▸ update(uuid, name): PromisePerspectiveProxy>\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\nname\nstring\n\n\n\nReturns\nPromisePerspectiveProxy>\nDefined in\nperspectives/PerspectiveClient.ts:152\n\nupdateLink\n▸ updateLink(uuid, oldLink, newLink): PromiseLinkExpression>\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\noldLink\nLinkExpressionInput\n\n\nnewLink\nLinkInput\n\n\n\nReturns\nPromiseLinkExpression>\nDefined in\nperspectives/PerspectiveClient.ts:238\n\n@perspect3vism/ad4m / Exports / perspectives/PerspectiveDiff / PerspectiveDiff\nClass: PerspectiveDiff\nperspectives/PerspectiveDiff.PerspectiveDiff\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\nadditions\nremovals\n\nConstructors\nconstructor\n• new PerspectiveDiff()\nProperties\nadditions\n• additions: LinkExpression[]\nDefined in\nperspectives/PerspectiveDiff.ts:8\n\nremovals\n• removals: LinkExpression[]\nDefined in\nperspectives/PerspectiveDiff.ts:11\n\n@perspect3vism/ad4m / Exports / perspectives/PerspectiveDiff / PerspectiveDiffExpression\nClass: PerspectiveDiffExpression\nperspectives/PerspectiveDiff.PerspectiveDiffExpression\nHierarchy\n\nany\n↳ PerspectiveDiffExpression\n\n\nTable of contents\nConstructors\n\nconstructor\n\nConstructors\nconstructor\n• new PerspectiveDiffExpression()\nInherited from\nExpressionGeneric(PerspectiveDiff).constructor\n\n@perspect3vism/ad4m / Exports / perspectives/PerspectiveHandle / PerspectiveHandle\nClass: PerspectiveHandle\nperspectives/PerspectiveHandle.PerspectiveHandle\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\nname\nneighbourhood\nsharedUrl\nstate\nuuid\n\nConstructors\nconstructor\n• new PerspectiveHandle(uuid?, name?, state?)\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid?\nstring\n\n\nname?\nstring\n\n\nstate?\nPerspectiveState\n\n\n\nDefined in\nperspectives/PerspectiveHandle.ts:30\nProperties\nname\n• name: string\nDefined in\nperspectives/PerspectiveHandle.ts:20\n\nneighbourhood\n• Optional neighbourhood: Neighbourhood\nDefined in\nperspectives/PerspectiveHandle.ts:28\n\nsharedUrl\n• Optional sharedUrl: string\nDefined in\nperspectives/PerspectiveHandle.ts:25\n\nstate\n• state: PerspectiveState\nDefined in\nperspectives/PerspectiveHandle.ts:22\n\nuuid\n• uuid: string\nDefined in\nperspectives/PerspectiveHandle.ts:18\n\n@perspect3vism/ad4m / Exports / perspectives/PerspectiveProxy / PerspectiveProxy\nClass: PerspectiveProxy\nperspectives/PerspectiveProxy.PerspectiveProxy\nPerspective UI proxy object\nConvenience object for UIs to interact with a perspective.\nIt is created by some of the methods in the PerspectiveClient class and includes\na reference to the PerspectiveClient object that created it.\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\n#client\n#handle\n#perspectiveLinkAddedCallbacks\n#perspectiveLinkRemovedCallbacks\n#perspectiveLinkUpdatedCallbacks\n\nAccessors\n\nname\nneighbourhood\nsharedUrl\nstate\nuuid\n\nMethods\n\nadd\naddLinkExpression\naddLinks\naddListener\naddSdna\navailableFlows\ncreateExpression\ncreateSubject\nensureSDNASubjectClass\nexecuteAction\nexpressionsInFlowState\nflowActions\nflowState\nget\ngetAllSubjectInstances\ngetExpression\ngetNeighbourhoodProxy\ngetSdna\ngetSingleTarget\ngetSubjectProxy\ninfer\nisSubjectInstance\nlinkMutations\nloadSnapshot\nremove\nremoveLinks\nremoveListener\nrunFlowAction\nsdnaFlows\nsetSdna\nsetSingleTarget\nsnapshot\nstartFlow\nstringOrTemplateObjectToSubjectClass\nsubjectClasses\nsubjectClassesByTemplate\nupdate\n\nConstructors\nconstructor\n• new PerspectiveProxy(handle, ad4m)\nParameters\n\n\n\nName\nType\n\n\n\n\nhandle\nPerspectiveHandle\n\n\nad4m\nPerspectiveClient\n\n\n\nDefined in\nperspectives/PerspectiveProxy.ts:33\nProperties\n#client\n• Private #client: PerspectiveClient\nDefined in\nperspectives/PerspectiveProxy.ts:28\n\n#handle\n• Private #handle: PerspectiveHandle\nDefined in\nperspectives/PerspectiveProxy.ts:27\n\n#perspectiveLinkAddedCallbacks\n• Private #perspectiveLinkAddedCallbacks: LinkCallback[]\nDefined in\nperspectives/PerspectiveProxy.ts:29\n\n#perspectiveLinkRemovedCallbacks\n• Private #perspectiveLinkRemovedCallbacks: LinkCallback[]\nDefined in\nperspectives/PerspectiveProxy.ts:30\n\n#perspectiveLinkUpdatedCallbacks\n• Private #perspectiveLinkUpdatedCallbacks: LinkCallback[]\nDefined in\nperspectives/PerspectiveProxy.ts:31\nAccessors\nname\n• get name(): string\nGiven name of the perspective\nReturns\nstring\nDefined in\nperspectives/PerspectiveProxy.ts:95\n\nneighbourhood\n• get neighbourhood(): void | Neighbourhood\nIf the perspective is shared as a Neighbourhood, this is the Neighbourhood Expression\nReturns\nvoid | Neighbourhood\nDefined in\nperspectives/PerspectiveProxy.ts:105\n\nsharedUrl\n• get sharedUrl(): string | void\nIf the perspective is shared as a Neighbourhood, this is the Neighbourhood URL\nReturns\nstring | void\nDefined in\nperspectives/PerspectiveProxy.ts:100\n\nstate\n• get state(): PerspectiveState\nReturns the state of the perspective *\nReturns\nPerspectiveState\nDefined in\nperspectives/PerspectiveProxy.ts:110\n\nuuid\n• get uuid(): string\nUnique ID of the perspective\nReturns\nstring\nDefined in\nperspectives/PerspectiveProxy.ts:90\nMethods\nadd\n▸ add(link): PromiseLinkExpression>\nAdds a link to this perspective\nParameters\n\n\n\nName\nType\n\n\n\n\nlink\nLink\n\n\n\nReturns\nPromiseLinkExpression>\nDefined in\nperspectives/PerspectiveProxy.ts:125\n\naddLinkExpression\n▸ addLinkExpression(link): PromiseLinkExpression>\nAdds a linkExpression to this perspective\nParameters\n\n\n\nName\nType\n\n\n\n\nlink\nLinkExpressionInput\n\n\n\nReturns\nPromiseLinkExpression>\nDefined in\nperspectives/PerspectiveProxy.ts:145\n\naddLinks\n▸ addLinks(links): PromiseLinkExpression[]>\nAdds multiple links to this perspective *\nParameters\n\n\n\nName\nType\n\n\n\n\nlinks\nLink[]\n\n\n\nReturns\nPromiseLinkExpression[]>\nDefined in\nperspectives/PerspectiveProxy.ts:130\n\naddListener\n▸ addListener(type, cb): Promisevoid>\nAdds a link listener\nParameters\n\n\n\nName\nType\nDescription\n\n\n\n\ntype\nPerspectiveListenerTypes\nCan be 'link-added' or 'link-removed'\n\n\ncb\nLinkCallback\nCallback function that is called when a link is added to the perspective\n\n\n\nReturns\nPromisevoid>\nDefined in\nperspectives/PerspectiveProxy.ts:169\n\naddSdna\n▸ addSdna(sdnaCode): Promisevoid>\nAdds the given Social DNA code to the perspective's SDNA code\nParameters\n\n\n\nName\nType\n\n\n\n\nsdnaCode\nstring\n\n\n\nReturns\nPromisevoid>\nDefined in\nperspectives/PerspectiveProxy.ts:328\n\navailableFlows\n▸ availableFlows(exprAddr): Promisestring[]>\nReturns all Social DNA flows that can be started from the given expression\nParameters\n\n\n\nName\nType\n\n\n\n\nexprAddr\nstring\n\n\n\nReturns\nPromisestring[]>\nDefined in\nperspectives/PerspectiveProxy.ts:265\n\ncreateExpression\n▸ createExpression(content, languageAddress): Promisestring>\nParameters\n\n\n\nName\nType\n\n\n\n\ncontent\nany\n\n\nlanguageAddress\nstring\n\n\n\nReturns\nPromisestring>\nDefined in\nperspectives/PerspectiveProxy.ts:161\n\ncreateSubject\n▸ createSubjectT>(subjectClass, exprAddr): PromiseT>\nCreates a new subject instance by running its (SDNA defined) constructor,\nwhich means adding links around the given expression address so that it\nconforms to the given subject class.\nType parameters\n\n\n\nName\n\n\n\n\nT\n\n\n\nParameters\n\n\n\nName\nType\nDescription\n\n\n\n\nsubjectClass\nT\nEither a string with the name of the subject class, or an object with the properties of the subject class. In the latter case, the first subject class that matches the given properties will be used.\n\n\nexprAddr\nstring\nThe address of the expression to be turned into a subject instance\n\n\n\nReturns\nPromiseT>\nDefined in\nperspectives/PerspectiveProxy.ts:368\n\nensureSDNASubjectClass\n▸ ensureSDNASubjectClass(jsClass): Promisevoid>\nTakes a JS class (its constructor) and assumes that it was decorated by\nthe\nSubject Class\netc. decorators. It then tests if there is a subject class\nalready present in the perspective's SDNA that matches the given class.\nIf there is no such class, it gets the JS class's SDNA by calling its\nstatic generateSDNA() function and adds it to the perspective's SDNA.\nParameters\n\n\n\nName\nType\n\n\n\n\njsClass\nany\n\n\n\nReturns\nPromisevoid>\nDefined in\nperspectives/PerspectiveProxy.ts:506\n\nexecuteAction\n▸ executeAction(actions, expression, parameters): Promisevoid>\nParameters\n\n\n\nName\nType\n\n\n\n\nactions\nany\n\n\nexpression\nany\n\n\nparameters\nParameter[]\n\n\n\nReturns\nPromisevoid>\nDefined in\nperspectives/PerspectiveProxy.ts:44\n\nexpressionsInFlowState\n▸ expressionsInFlowState(flowName, flowState): Promisestring[]>\nReturns all expressions in the given state of given Social DNA flow\nParameters\n\n\n\nName\nType\n\n\n\n\nflowName\nstring\n\n\nflowState\nnumber\n\n\n\nReturns\nPromisestring[]>\nDefined in\nperspectives/PerspectiveProxy.ts:279\n\nflowActions\n▸ flowActions(flowName, exprAddr): Promisestring[]>\nReturns available action names, with regard to Social DNA flow and expression's flow state\nParameters\n\n\n\nName\nType\n\n\n\n\nflowName\nstring\n\n\nexprAddr\nstring\n\n\n\nReturns\nPromisestring[]>\nDefined in\nperspectives/PerspectiveProxy.ts:291\n\nflowState\n▸ flowState(flowName, exprAddr): Promisenumber>\nReturns the given expression's flow state with regard to given Social DNA flow\nParameters\n\n\n\nName\nType\n\n\n\n\nflowName\nstring\n\n\nexprAddr\nstring\n\n\n\nReturns\nPromisenumber>\nDefined in\nperspectives/PerspectiveProxy.ts:285\n\nget\n▸ get(query): PromiseLinkExpression[]>\nReturns all the links of this perspective that matches the LinkQuery\nParameters\n\n\n\nName\nType\n\n\n\n\nquery\nLinkQuery\n\n\n\nReturns\nPromiseLinkExpression[]>\nDefined in\nperspectives/PerspectiveProxy.ts:115\n\ngetAllSubjectInstances\n▸ getAllSubjectInstancesT>(subjectClass): PromiseT[]>\nReturns all subject instances of the given subject class as proxy objects.\nType parameters\n\n\n\nName\n\n\n\n\nT\n\n\n\nParameters\n\n\n\nName\nType\nDescription\n\n\n\n\nsubjectClass\nT\nEither a string with the name of the subject class, or an object with the properties of the subject class. In the latter case, all subject classes that match the given properties will be used.\n\n\n\nReturns\nPromiseT[]>\nDefined in\nperspectives/PerspectiveProxy.ts:416\n\ngetExpression\n▸ getExpression(expressionURI): PromiseExpressionRendered>\nParameters\n\n\n\nName\nType\n\n\n\n\nexpressionURI\nstring\n\n\n\nReturns\nPromiseExpressionRendered>\nDefined in\nperspectives/PerspectiveProxy.ts:157\n\ngetNeighbourhoodProxy\n▸ getNeighbourhoodProxy(): NeighbourhoodProxy\nReturns\nNeighbourhoodProxy\nDefined in\nperspectives/PerspectiveProxy.ts:514\n\ngetSdna\n▸ getSdna(): Promisestring[]>\nReturns the perspective's Social DNA code \nThis will return all SDNA code elements in an array.\nReturns\nPromisestring[]>\nDefined in\nperspectives/PerspectiveProxy.ts:318\n\ngetSingleTarget\n▸ getSingleTarget(query): Promisestring | void>\nConvenience function to get the target of the first link that matches the given query\nThis makes sense when the query is expected to return only one link\nand the target of that link is what you are looking for.\nWorks best together with\nMember\nsetSingelTarget()\nParameters\n\n\n\nName\nType\n\n\n\n\nquery\nLinkQuery\n\n\n\nReturns\nPromisestring | void>\nDefined in\nperspectives/PerspectiveProxy.ts:227\n\ngetSubjectProxy\n▸ getSubjectProxyT>(base, subjectClass): PromiseT>\nFor an existing subject instance (existing in the perspective's links)\nthis function returns a proxy object that can be used to access the subject's\nproperties and methods.\nType parameters\n\n\n\nName\n\n\n\n\nT\n\n\n\nParameters\n\n\n\nName\nType\nDescription\n\n\n\n\nbase\nstring\nURI of the subject's root expression\n\n\nsubjectClass\nT\nEither a string with the name of the subject class, or an object with the properties of the subject class. In the latter case, the first subject class that matches the given properties will be used.\n\n\n\nReturns\nPromiseT>\nDefined in\nperspectives/PerspectiveProxy.ts:401\n\ninfer\n▸ infer(query): Promiseany>\nRuns a Prolog query on the perspective's Prolog engine\nParameters\n\n\n\nName\nType\n\n\n\n\nquery\nstring\n\n\n\nReturns\nPromiseany>\nDefined in\nperspectives/PerspectiveProxy.ts:120\n\nisSubjectInstance\n▸ isSubjectInstanceT>(expression, subjectClass): Promiseboolean>\nChecks if the given expression is a subject instance of the given subject class\nType parameters\n\n\n\nName\n\n\n\n\nT\n\n\n\nParameters\n\n\n\nName\nType\nDescription\n\n\n\n\nexpression\nstring\nThe expression to be checked\n\n\nsubjectClass\nT\nEither a string with the name of the subject class, or an object with the properties of the subject class. In the latter case, the first subject class that matches the given properties will be used.\n\n\n\nReturns\nPromiseboolean>\nDefined in\nperspectives/PerspectiveProxy.ts:386\n\nlinkMutations\n▸ linkMutations(mutations): PromiseLinkExpressionMutations>\nAdds and removes multiple links from this perspective *\nParameters\n\n\n\nName\nType\n\n\n\n\nmutations\nLinkMutations\n\n\n\nReturns\nPromiseLinkExpressionMutations>\nDefined in\nperspectives/PerspectiveProxy.ts:140\n\nloadSnapshot\n▸ loadSnapshot(snapshot): Promisevoid>\nTake and load all the links from the given snapshot\nParameters\n\n\n\nName\nType\n\n\n\n\nsnapshot\nPerspective\n\n\n\nReturns\nPromisevoid>\nDefined in\nperspectives/PerspectiveProxy.ts:208\n\nremove\n▸ remove(link): PromiseperspectiveRemoveLink: boolean }>\nParameters\n\n\n\nName\nType\n\n\n\n\nlink\nLinkExpressionInput\n\n\n\nReturns\nPromiseperspectiveRemoveLink: boolean }>\nDefined in\nperspectives/PerspectiveProxy.ts:153\n\nremoveLinks\n▸ removeLinks(links): PromiseLinkExpression[]>\nRemoves multiple links from this perspective *\nParameters\n\n\n\nName\nType\n\n\n\n\nlinks\nLinkExpressionInput[]\n\n\n\nReturns\nPromiseLinkExpression[]>\nDefined in\nperspectives/PerspectiveProxy.ts:135\n\nremoveListener\n▸ removeListener(type, cb): Promisevoid>\nRemoves a previously added link listener\nParameters\n\n\n\nName\nType\nDescription\n\n\n\n\ntype\nPerspectiveListenerTypes\nCan be 'link-added' or 'link-removed'\n\n\ncb\nLinkCallback\nCallback function that is called when a link is added to the perspective\n\n\n\nReturns\nPromisevoid>\nDefined in\nperspectives/PerspectiveProxy.ts:183\n\nrunFlowAction\n▸ runFlowAction(flowName, exprAddr, actionName): Promisevoid>\nRuns given Social DNA flow action\nParameters\n\n\n\nName\nType\n\n\n\n\nflowName\nstring\n\n\nexprAddr\nstring\n\n\nactionName\nstring\n\n\n\nReturns\nPromisevoid>\nDefined in\nperspectives/PerspectiveProxy.ts:297\n\nsdnaFlows\n▸ sdnaFlows(): Promisestring[]>\nReturns all the Social DNA flows defined in this perspective\nReturns\nPromisestring[]>\nDefined in\nperspectives/PerspectiveProxy.ts:259\n\nsetSdna\n▸ setSdna(sdnaCode): Promisevoid>\nSet the perspective's Social DNA code to the given string. \nThis will replace all previous SDNA code elements with the new one.\nParameters\n\n\n\nName\nType\n\n\n\n\nsdnaCode\nstring\n\n\n\nReturns\nPromisevoid>\nDefined in\nperspectives/PerspectiveProxy.ts:307\n\nsetSingleTarget\n▸ setSingleTarget(link): Promisevoid>\nConvenience function to ensure there is only one link with given source and predicate\nThis function will remove all links with the same source and predicate as the given link,\nand then add the given link.\nThis ensures there is only one target for the given source and predicate.\nWorks best together with\nMember\ngetSingleTarget()\nParameters\n\n\n\nName\nType\n\n\n\n\nlink\nLink\n\n\n\nReturns\nPromisevoid>\nDefined in\nperspectives/PerspectiveProxy.ts:243\n\nsnapshot\n▸ snapshot(): PromisePerspective>\nCreate and return a snapshot of this perspective\nA snapshot is a rendered Perspectie object that contains all the links of the perspective.\nReturns\nPromisePerspective>\nDefined in\nperspectives/PerspectiveProxy.ts:203\n\nstartFlow\n▸ startFlow(flowName, exprAddr): Promisevoid>\nStarts the Social DNA flow\nParameters\n\n\n\nName\nType\nDescription\n\n\n\n\nflowName\nstring\non the expression\n\n\nexprAddr\nstring\n\n\n\nReturns\nPromisevoid>\nDefined in\nperspectives/PerspectiveProxy.ts:271\n\nstringOrTemplateObjectToSubjectClass\n▸ stringOrTemplateObjectToSubjectClassT>(subjectClass): Promisestring>\nType parameters\n\n\n\nName\n\n\n\n\nT\n\n\n\nParameters\n\n\n\nName\nType\n\n\n\n\nsubjectClass\nT\n\n\n\nReturns\nPromisestring>\nDefined in\nperspectives/PerspectiveProxy.ts:345\n\nsubjectClasses\n▸ subjectClasses(): Promisestring[]>\nReturns all the Subject classes defined in this perspectives SDNA\nReturns\nPromisestring[]>\nDefined in\nperspectives/PerspectiveProxy.ts:337\n\nsubjectClassesByTemplate\n▸ subjectClassesByTemplate(obj): Promisestring[]>\nReturns all subject classes that match the given template object.\nThis function looks at the properties of the template object and\nits setters and collections to create a Prolog query that finds\nall subject classes that would be converted to a proxy object\nwith exactly the same properties and collections.\nSince there could be multiple subject classes that match the given\ncriteria, this function returns a list of class names.\nParameters\n\n\n\nName\nType\nDescription\n\n\n\n\nobj\nobject\nThe template object\n\n\n\nReturns\nPromisestring[]>\nDefined in\nperspectives/PerspectiveProxy.ts:444\n\nupdate\n▸ update(oldLink, newLink): PromiseLinkExpression>\nParameters\n\n\n\nName\nType\n\n\n\n\noldLink\nLinkExpressionInput\n\n\nnewLink\nLink\n\n\n\nReturns\nPromiseLinkExpression>\nDefined in\nperspectives/PerspectiveProxy.ts:149\n\n@perspect3vism/ad4m / Exports / perspectives/PerspectiveResolver / default\nClass: default\nperspectives/PerspectiveResolver.default\nResolver classes are used here to define the GraphQL schema \n(through the type-graphql annotations)\nand are spawned in the client tests in Ad4mClient.test.ts.\nFor the latter, they return test fixtures.\nTable of contents\nConstructors\n\nconstructor\n\nMethods\n\nperspective\nperspectiveAdd\nperspectiveAddLink\nperspectiveAddLinkExpression\nperspectiveAddLinks\nperspectiveAdded\nperspectiveLinkAdded\nperspectiveLinkMutations\nperspectiveLinkRemoved\nperspectiveLinkUpdated\nperspectivePublishSnapshot\nperspectiveQueryLinks\nperspectiveQueryProlog\nperspectiveRemove\nperspectiveRemoveLink\nperspectiveRemoveLinks\nperspectiveRemoved\nperspectiveSnapshot\nperspectiveUpdate\nperspectiveUpdateLink\nperspectiveUpdated\nperspectives\n\nConstructors\nconstructor\n• new default()\nMethods\nperspective\n▸ perspective(uuid): PerspectiveHandle\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\n\nReturns\nPerspectiveHandle\nDefined in\nperspectives/PerspectiveResolver.ts:44\n\nperspectiveAdd\n▸ perspectiveAdd(name, pubSub): PerspectiveHandle\nParameters\n\n\n\nName\nType\n\n\n\n\nname\nstring\n\n\npubSub\nany\n\n\n\nReturns\nPerspectiveHandle\nDefined in\nperspectives/PerspectiveResolver.ts:69\n\nperspectiveAddLink\n▸ perspectiveAddLink(uuid, link, pubSub): LinkExpression\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\nlink\nLinkInput\n\n\npubSub\nany\n\n\n\nReturns\nLinkExpression\nDefined in\nperspectives/PerspectiveResolver.ts:90\n\nperspectiveAddLinkExpression\n▸ perspectiveAddLinkExpression(uuid, link, pubSub): LinkExpression\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\nlink\nLinkExpressionInput\n\n\npubSub\nany\n\n\n\nReturns\nLinkExpression\nDefined in\nperspectives/PerspectiveResolver.ts:147\n\nperspectiveAddLinks\n▸ perspectiveAddLinks(uuid, links, pubSub): LinkExpression[]\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\nlinks\nLinkInput[]\n\n\npubSub\nany\n\n\n\nReturns\nLinkExpression[]\nDefined in\nperspectives/PerspectiveResolver.ts:102\n\nperspectiveAdded\n▸ perspectiveAdded(): PerspectiveHandle\nReturns\nPerspectiveHandle\nDefined in\nperspectives/PerspectiveResolver.ts:172\n\nperspectiveLinkAdded\n▸ perspectiveLinkAdded(uuid): LinkExpression\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\n\nReturns\nLinkExpression\nDefined in\nperspectives/PerspectiveResolver.ts:188\n\nperspectiveLinkMutations\n▸ perspectiveLinkMutations(uuid, mutations, pubSub): LinkExpressionMutations\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\nmutations\nLinkMutations\n\n\npubSub\nany\n\n\n\nReturns\nLinkExpressionMutations\nDefined in\nperspectives/PerspectiveResolver.ts:140\n\nperspectiveLinkRemoved\n▸ perspectiveLinkRemoved(uuid): LinkExpression\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\n\nReturns\nLinkExpression\nDefined in\nperspectives/PerspectiveResolver.ts:193\n\nperspectiveLinkUpdated\n▸ perspectiveLinkUpdated(uuid): LinkExpressionUpdated\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\n\nReturns\nLinkExpressionUpdated\nDefined in\nperspectives/PerspectiveResolver.ts:198\n\nperspectivePublishSnapshot\n▸ perspectivePublishSnapshot(uuid): String\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\n\nReturns\nString\nDefined in\nperspectives/PerspectiveResolver.ts:54\n\nperspectiveQueryLinks\n▸ perspectiveQueryLinks(uuid, query): LinkExpression[]\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\nquery\nLinkQuery\n\n\n\nReturns\nLinkExpression[]\nDefined in\nperspectives/PerspectiveResolver.ts:59\n\nperspectiveQueryProlog\n▸ perspectiveQueryProlog(uuid, query): string\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\nquery\nString\n\n\n\nReturns\nstring\nDefined in\nperspectives/PerspectiveResolver.ts:64\n\nperspectiveRemove\n▸ perspectiveRemove(uuid, pubSub): boolean\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\npubSub\nany\n\n\n\nReturns\nboolean\nDefined in\nperspectives/PerspectiveResolver.ts:83\n\nperspectiveRemoveLink\n▸ perspectiveRemoveLink(uuid, link, pubSub): Boolean\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\nlink\nLinkExpressionInput\n\n\npubSub\nany\n\n\n\nReturns\nBoolean\nDefined in\nperspectives/PerspectiveResolver.ts:166\n\nperspectiveRemoveLinks\n▸ perspectiveRemoveLinks(uuid, links, pubSub): LinkExpression[]\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\nlinks\nLinkExpressionInput[]\n\n\npubSub\nany\n\n\n\nReturns\nLinkExpression[]\nDefined in\nperspectives/PerspectiveResolver.ts:121\n\nperspectiveRemoved\n▸ perspectiveRemoved(): string\nReturns\nstring\nDefined in\nperspectives/PerspectiveResolver.ts:183\n\nperspectiveSnapshot\n▸ perspectiveSnapshot(uuid): Perspective\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\n\nReturns\nPerspective\nDefined in\nperspectives/PerspectiveResolver.ts:49\n\nperspectiveUpdate\n▸ perspectiveUpdate(uuid, name, pubSub): PerspectiveHandle\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\nname\nstring\n\n\npubSub\nany\n\n\n\nReturns\nPerspectiveHandle\nDefined in\nperspectives/PerspectiveResolver.ts:76\n\nperspectiveUpdateLink\n▸ perspectiveUpdateLink(uuid, oldlink, newlink, pubSub): LinkExpression\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\noldlink\nLinkExpressionInput\n\n\nnewlink\nLinkInput\n\n\npubSub\nany\n\n\n\nReturns\nLinkExpression\nDefined in\nperspectives/PerspectiveResolver.ts:153\n\nperspectiveUpdated\n▸ perspectiveUpdated(): PerspectiveHandle\nReturns\nPerspectiveHandle\nDefined in\nperspectives/PerspectiveResolver.ts:178\n\nperspectives\n▸ perspectives(): PerspectiveHandle[]\nReturns\nPerspectiveHandle[]\nDefined in\nperspectives/PerspectiveResolver.ts:30\n\n@perspect3vism/ad4m / Exports / runtime/RuntimeClient / RuntimeClient\nClass: RuntimeClient\nruntime/RuntimeClient.RuntimeClient\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\n#apolloClient\n#exceptionOccurredCallbacks\n#messageReceivedCallbacks\n\nMethods\n\naddExceptionCallback\naddFriends\naddKnownLinkLanguageTemplates\naddMessageCallback\naddTrustedAgents\ndeleteTrustedAgents\nfriendSendMessage\nfriendStatus\nfriends\ngetTrustedAgents\nhcAddAgentInfos\nhcAgentInfos\ninfo\nknownLinkLanguageTemplates\nmessageInbox\nmessageOutbox\nopenLink\nquit\nremoveFriends\nremoveKnownLinkLanguageTemplates\nsetStatus\nsubscribeExceptionOccurred\nsubscribeMessageReceived\nverifyStringSignedByDid\n\nConstructors\nconstructor\n• new RuntimeClient(client, subscribe?)\nParameters\n\n\n\nName\nType\nDefault value\n\n\n\n\nclient\nApolloClientany>\nundefined\n\n\nsubscribe\nboolean\ntrue\n\n\n\nDefined in\nruntime/RuntimeClient.ts:28\nProperties\n#apolloClient\n• Private #apolloClient: ApolloClientany>\nDefined in\nruntime/RuntimeClient.ts:24\n\n#exceptionOccurredCallbacks\n• Private #exceptionOccurredCallbacks: ExceptionCallback[]\nDefined in\nruntime/RuntimeClient.ts:26\n\n#messageReceivedCallbacks\n• Private #messageReceivedCallbacks: MessageCallback[]\nDefined in\nruntime/RuntimeClient.ts:25\nMethods\naddExceptionCallback\n▸ addExceptionCallback(cb): void\nParameters\n\n\n\nName\nType\n\n\n\n\ncb\nExceptionCallback\n\n\n\nReturns\nvoid\nDefined in\nruntime/RuntimeClient.ts:260\n\naddFriends\n▸ addFriends(dids): Promisestring[]>\nParameters\n\n\n\nName\nType\n\n\n\n\ndids\nstring[]\n\n\n\nReturns\nPromisestring[]>\nDefined in\nruntime/RuntimeClient.ts:128\n\naddKnownLinkLanguageTemplates\n▸ addKnownLinkLanguageTemplates(addresses): Promisestring[]>\nParameters\n\n\n\nName\nType\n\n\n\n\naddresses\nstring[]\n\n\n\nReturns\nPromisestring[]>\nDefined in\nruntime/RuntimeClient.ts:99\n\naddMessageCallback\n▸ addMessageCallback(cb): void\nParameters\n\n\n\nName\nType\n\n\n\n\ncb\nMessageCallback\n\n\n\nReturns\nvoid\nDefined in\nruntime/RuntimeClient.ts:241\n\naddTrustedAgents\n▸ addTrustedAgents(agents): Promisestring[]>\nParameters\n\n\n\nName\nType\n\n\n\n\nagents\nstring[]\n\n\n\nReturns\nPromisestring[]>\nDefined in\nruntime/RuntimeClient.ts:70\n\ndeleteTrustedAgents\n▸ deleteTrustedAgents(agents): Promisestring[]>\nParameters\n\n\n\nName\nType\n\n\n\n\nagents\nstring[]\n\n\n\nReturns\nPromisestring[]>\nDefined in\nruntime/RuntimeClient.ts:80\n\nfriendSendMessage\n▸ friendSendMessage(did, message): Promiseboolean>\nParameters\n\n\n\nName\nType\n\n\n\n\ndid\nstring\n\n\nmessage\nPerspective\n\n\n\nReturns\nPromiseboolean>\nDefined in\nruntime/RuntimeClient.ts:206\n\nfriendStatus\n▸ friendStatus(did): PromisePerspectiveExpression>\nParameters\n\n\n\nName\nType\n\n\n\n\ndid\nstring\n\n\n\nReturns\nPromisePerspectiveExpression>\nDefined in\nruntime/RuntimeClient.ts:196\n\nfriends\n▸ friends(): Promisestring[]>\nReturns\nPromisestring[]>\nDefined in\nruntime/RuntimeClient.ts:148\n\ngetTrustedAgents\n▸ getTrustedAgents(): Promisestring[]>\nReturns\nPromisestring[]>\nDefined in\nruntime/RuntimeClient.ts:90\n\nhcAddAgentInfos\n▸ hcAddAgentInfos(agentInfos): Promisevoid>\nParameters\n\n\n\nName\nType\n\n\n\n\nagentInfos\nString\n\n\n\nReturns\nPromisevoid>\nDefined in\nruntime/RuntimeClient.ts:166\n\nhcAgentInfos\n▸ hcAgentInfos(): PromiseString>\nReturns\nPromiseString>\nDefined in\nruntime/RuntimeClient.ts:157\n\ninfo\n▸ info(): PromiseRuntimeInfo>\nReturns\nPromiseRuntimeInfo>\nDefined in\nruntime/RuntimeClient.ts:39\n\nknownLinkLanguageTemplates\n▸ knownLinkLanguageTemplates(): Promisestring[]>\nReturns\nPromisestring[]>\nDefined in\nruntime/RuntimeClient.ts:119\n\nmessageInbox\n▸ messageInbox(filter?): PromisePerspectiveExpression[]>\nParameters\n\n\n\nName\nType\n\n\n\n\nfilter?\nstring\n\n\n\nReturns\nPromisePerspectiveExpression[]>\nDefined in\nruntime/RuntimeClient.ts:216\n\nmessageOutbox\n▸ messageOutbox(filter?): PromiseSentMessage[]>\nParameters\n\n\n\nName\nType\n\n\n\n\nfilter?\nstring\n\n\n\nReturns\nPromiseSentMessage[]>\nDefined in\nruntime/RuntimeClient.ts:226\n\nopenLink\n▸ openLink(url): PromiseBoolean>\nParameters\n\n\n\nName\nType\n\n\n\n\nurl\nstring\n\n\n\nReturns\nPromiseBoolean>\nDefined in\nruntime/RuntimeClient.ts:60\n\nquit\n▸ quit(): PromiseBoolean>\nReturns\nPromiseBoolean>\nDefined in\nruntime/RuntimeClient.ts:52\n\nremoveFriends\n▸ removeFriends(dids): Promisestring[]>\nParameters\n\n\n\nName\nType\n\n\n\n\ndids\nstring[]\n\n\n\nReturns\nPromisestring[]>\nDefined in\nruntime/RuntimeClient.ts:138\n\nremoveKnownLinkLanguageTemplates\n▸ removeKnownLinkLanguageTemplates(addresses): Promisestring[]>\nParameters\n\n\n\nName\nType\n\n\n\n\naddresses\nstring[]\n\n\n\nReturns\nPromisestring[]>\nDefined in\nruntime/RuntimeClient.ts:109\n\nsetStatus\n▸ setStatus(perspective): Promiseboolean>\nParameters\n\n\n\nName\nType\n\n\n\n\nperspective\nPerspective\n\n\n\nReturns\nPromiseboolean>\nDefined in\nruntime/RuntimeClient.ts:186\n\nsubscribeExceptionOccurred\n▸ subscribeExceptionOccurred(): void\nReturns\nvoid\nDefined in\nruntime/RuntimeClient.ts:264\n\nsubscribeMessageReceived\n▸ subscribeMessageReceived(): void\nReturns\nvoid\nDefined in\nruntime/RuntimeClient.ts:245\n\nverifyStringSignedByDid\n▸ verifyStringSignedByDid(did, didSigningKeyId, data, signedData): Promiseboolean>\nParameters\n\n\n\nName\nType\n\n\n\n\ndid\nstring\n\n\ndidSigningKeyId\nstring\n\n\ndata\nstring\n\n\nsignedData\nstring\n\n\n\nReturns\nPromiseboolean>\nDefined in\nruntime/RuntimeClient.ts:176\n\n@perspect3vism/ad4m / Exports / runtime/RuntimeResolver / ExceptionInfo\nClass: ExceptionInfo\nruntime/RuntimeResolver.ExceptionInfo\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\naddon\nmessage\ntitle\ntype\n\nConstructors\nconstructor\n• new ExceptionInfo()\nProperties\naddon\n• Optional addon: string\nDefined in\nruntime/RuntimeResolver.ts:54\n\nmessage\n• message: string\nDefined in\nruntime/RuntimeResolver.ts:50\n\ntitle\n• title: string\nDefined in\nruntime/RuntimeResolver.ts:48\n\ntype\n• type: ExceptionType\nDefined in\nruntime/RuntimeResolver.ts:52\n\n@perspect3vism/ad4m / Exports / runtime/RuntimeResolver / RuntimeInfo\nClass: RuntimeInfo\nruntime/RuntimeResolver.RuntimeInfo\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\nad4mExecutorVersion\nisInitialized\nisUnlocked\n\nConstructors\nconstructor\n• new RuntimeInfo()\nProperties\nad4mExecutorVersion\n• ad4mExecutorVersion: string\nDefined in\nruntime/RuntimeResolver.ts:38\n\nisInitialized\n• isInitialized: Boolean\nDefined in\nruntime/RuntimeResolver.ts:40\n\nisUnlocked\n• isUnlocked: Boolean\nDefined in\nruntime/RuntimeResolver.ts:42\n\n@perspect3vism/ad4m / Exports / runtime/RuntimeResolver / SentMessage\nClass: SentMessage\nruntime/RuntimeResolver.SentMessage\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\nmessage\nrecipient\n\nConstructors\nconstructor\n• new SentMessage()\nProperties\nmessage\n• message: PerspectiveExpression\nDefined in\nruntime/RuntimeResolver.ts:32\n\nrecipient\n• recipient: string\nDefined in\nruntime/RuntimeResolver.ts:30\n\n@perspect3vism/ad4m / Exports / runtime/RuntimeResolver / default\nClass: default\nruntime/RuntimeResolver.default\nResolver classes are used here to define the GraphQL schema \n(through the type-graphql annotations)\nand are spawned in the client tests in Ad4mClient.test.ts.\nFor the latter, they return test fixtures.\nTable of contents\nConstructors\n\nconstructor\n\nMethods\n\naddTrustedAgents\ndeleteTrustedAgents\nexceptionOccurred\ngetTrustedAgents\nruntimeAddFriends\nruntimeAddKnownLinkLanguageTemplates\nruntimeFriendSendMessage\nruntimeFriendStatus\nruntimeFriends\nruntimeHcAddAgentInfos\nruntimeHcAgentInfos\nruntimeInfo\nruntimeKnownLinkLanguageTemplates\nruntimeMessageInbox\nruntimeMessageOutbox\nruntimeMessageReceived\nruntimeOpenLink\nruntimeQuit\nruntimeRemoveFriends\nruntimeRemoveKnownLinkLanguageTemplates\nruntimeSetStatus\nruntimeVerifyStringSignedByDid\n\nConstructors\nconstructor\n• new default()\nMethods\naddTrustedAgents\n▸ addTrustedAgents(agents): string[]\nParameters\n\n\n\nName\nType\n\n\n\n\nagents\nstring[]\n\n\n\nReturns\nstring[]\nDefined in\nruntime/RuntimeResolver.ts:84\n\ndeleteTrustedAgents\n▸ deleteTrustedAgents(agents): string[]\nParameters\n\n\n\nName\nType\n\n\n\n\nagents\nstring[]\n\n\n\nReturns\nstring[]\nDefined in\nruntime/RuntimeResolver.ts:89\n\nexceptionOccurred\n▸ exceptionOccurred(): ExceptionInfo\nReturns\nExceptionInfo\nDefined in\nruntime/RuntimeResolver.ts:185\n\ngetTrustedAgents\n▸ getTrustedAgents(): string[]\nReturns\nstring[]\nDefined in\nruntime/RuntimeResolver.ts:94\n\nruntimeAddFriends\n▸ runtimeAddFriends(dids): string[]\nParameters\n\n\n\nName\nType\n\n\n\n\ndids\nstring[]\n\n\n\nReturns\nstring[]\nDefined in\nruntime/RuntimeResolver.ts:119\n\nruntimeAddKnownLinkLanguageTemplates\n▸ runtimeAddKnownLinkLanguageTemplates(addresses): string[]\nParameters\n\n\n\nName\nType\n\n\n\n\naddresses\nstring[]\n\n\n\nReturns\nstring[]\nDefined in\nruntime/RuntimeResolver.ts:104\n\nruntimeFriendSendMessage\n▸ runtimeFriendSendMessage(did, message): boolean\nParameters\n\n\n\nName\nType\n\n\n\n\ndid\nstring\n\n\nmessage\nPerspectiveInput\n\n\n\nReturns\nboolean\nDefined in\nruntime/RuntimeResolver.ts:158\n\nruntimeFriendStatus\n▸ runtimeFriendStatus(did): PerspectiveExpression\nParameters\n\n\n\nName\nType\n\n\n\n\ndid\nstring\n\n\n\nReturns\nPerspectiveExpression\nDefined in\nruntime/RuntimeResolver.ts:153\n\nruntimeFriends\n▸ runtimeFriends(): string[]\nReturns\nstring[]\nDefined in\nruntime/RuntimeResolver.ts:114\n\nruntimeHcAddAgentInfos\n▸ runtimeHcAddAgentInfos(agentInfos): boolean\nParameters\n\n\n\nName\nType\n\n\n\n\nagentInfos\nany\n\n\n\nReturns\nboolean\nDefined in\nruntime/RuntimeResolver.ts:134\n\nruntimeHcAgentInfos\n▸ runtimeHcAgentInfos(): String\nReturns\nString\nDefined in\nruntime/RuntimeResolver.ts:129\n\nruntimeInfo\n▸ runtimeInfo(): RuntimeInfo\nReturns\nRuntimeInfo\nDefined in\nruntime/RuntimeResolver.ts:75\n\nruntimeKnownLinkLanguageTemplates\n▸ runtimeKnownLinkLanguageTemplates(): string[]\nReturns\nstring[]\nDefined in\nruntime/RuntimeResolver.ts:99\n\nruntimeMessageInbox\n▸ runtimeMessageInbox(filter?): PerspectiveExpression[]\nParameters\n\n\n\nName\nType\n\n\n\n\nfilter?\nstring\n\n\n\nReturns\nPerspectiveExpression[]\nDefined in\nruntime/RuntimeResolver.ts:166\n\nruntimeMessageOutbox\n▸ runtimeMessageOutbox(filter?): SentMessage[]\nParameters\n\n\n\nName\nType\n\n\n\n\nfilter?\nstring\n\n\n\nReturns\nSentMessage[]\nDefined in\nruntime/RuntimeResolver.ts:171\n\nruntimeMessageReceived\n▸ runtimeMessageReceived(): PerspectiveExpression\nReturns\nPerspectiveExpression\nDefined in\nruntime/RuntimeResolver.ts:180\n\nruntimeOpenLink\n▸ runtimeOpenLink(url): Boolean\nParameters\n\n\n\nName\nType\n\n\n\n\nurl\nstring\n\n\n\nReturns\nBoolean\nDefined in\nruntime/RuntimeResolver.ts:70\n\nruntimeQuit\n▸ runtimeQuit(): Boolean\nReturns\nBoolean\nDefined in\nruntime/RuntimeResolver.ts:65\n\nruntimeRemoveFriends\n▸ runtimeRemoveFriends(dids): string[]\nParameters\n\n\n\nName\nType\n\n\n\n\ndids\nstring[]\n\n\n\nReturns\nstring[]\nDefined in\nruntime/RuntimeResolver.ts:124\n\nruntimeRemoveKnownLinkLanguageTemplates\n▸ runtimeRemoveKnownLinkLanguageTemplates(addresses): string[]\nParameters\n\n\n\nName\nType\n\n\n\n\naddresses\nstring[]\n\n\n\nReturns\nstring[]\nDefined in\nruntime/RuntimeResolver.ts:109\n\nruntimeSetStatus\n▸ runtimeSetStatus(status): boolean\nParameters\n\n\n\nName\nType\n\n\n\n\nstatus\nPerspective\n\n\n\nReturns\nboolean\nDefined in\nruntime/RuntimeResolver.ts:148\n\nruntimeVerifyStringSignedByDid\n▸ runtimeVerifyStringSignedByDid(did, didSigningKeyId, data, signedData): boolean\nParameters\n\n\n\nName\nType\n\n\n\n\ndid\nstring\n\n\ndidSigningKeyId\nstring\n\n\ndata\nstring\n\n\nsignedData\nstring\n\n\n\nReturns\nboolean\nDefined in\nruntime/RuntimeResolver.ts:139\n\n@perspect3vism/ad4m / Exports / subject/SDNADecorators / PerspectiveAction\nClass: PerspectiveAction\nsubject/SDNADecorators.PerspectiveAction\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\naction\npredicate\nsource\ntarget\n\nConstructors\nconstructor\n• new PerspectiveAction()\nProperties\naction\n• action: string\nDefined in\nsubject/SDNADecorators.ts:6\n\npredicate\n• predicate: string\nDefined in\nsubject/SDNADecorators.ts:8\n\nsource\n• source: string\nDefined in\nsubject/SDNADecorators.ts:7\n\ntarget\n• target: string\nDefined in\nsubject/SDNADecorators.ts:9\n\n@perspect3vism/ad4m / Exports / subject/Subject / Subject\nClass: Subject\nsubject/Subject.Subject\nTable of contents\nConstructors\n\nconstructor\n\nProperties\n\n#baseExpression\n#perspective\n#subjectClass\n\nAccessors\n\nbaseExpression\n\nMethods\n\ninit\n\nConstructors\nconstructor\n• new Subject(perspective, baseExpression, subjectClass)\nParameters\n\n\n\nName\nType\n\n\n\n\nperspective\nPerspectiveProxy\n\n\nbaseExpression\nstring\n\n\nsubjectClass\nstring\n\n\n\nDefined in\nsubject/Subject.ts:9\nProperties\n#baseExpression\n• Private #baseExpression: string\nDefined in\nsubject/Subject.ts:5\n\n#perspective\n• Private #perspective: PerspectiveProxy\nDefined in\nsubject/Subject.ts:7\n\n#subjectClass\n• Private #subjectClass: string\nDefined in\nsubject/Subject.ts:6\nAccessors\nbaseExpression\n• get baseExpression(): string\nReturns\nstring\nDefined in\nsubject/Subject.ts:15\nMethods\ninit\n▸ init(): Promisevoid>\nReturns\nPromisevoid>\nDefined in\nsubject/Subject.ts:19\nEnums\n\n@perspect3vism/ad4m / Exports / Exception / ExceptionType\nEnumeration: ExceptionType\nException.ExceptionType\nTable of contents\nEnumeration Members\n\nAgentIsUntrusted\nCapabilityRequested\nExpressionIsNotVerified\nLanguageIsNotLoaded\n\nEnumeration Members\nAgentIsUntrusted\n• AgentIsUntrusted = 2\nDefined in\nException.ts:4\n\nCapabilityRequested\n• CapabilityRequested = 3\nDefined in\nException.ts:5\n\nExpressionIsNotVerified\n• ExpressionIsNotVerified = 1\nDefined in\nException.ts:3\n\nLanguageIsNotLoaded\n• LanguageIsNotLoaded = 0\nDefined in\nException.ts:2\n\n@perspect3vism/ad4m / Exports / perspectives/PerspectiveHandle / PerspectiveState\nEnumeration: PerspectiveState\nperspectives/PerspectiveHandle.PerspectiveState\nTable of contents\nEnumeration Members\n\nLinkLanguageFailedToInstall\nLinkLanguageInstalledButNotSynced\nNeighbourhoodJoinInitiated\nPrivate\nSynced\n\nEnumeration Members\nLinkLanguageFailedToInstall\n• LinkLanguageFailedToInstall = \"LinkLanguageFailedToInstall\"\nDefined in\nperspectives/PerspectiveHandle.ts:7\n\nLinkLanguageInstalledButNotSynced\n• LinkLanguageInstalledButNotSynced = \"LinkLanguageInstalledButNotSynced\"\nDefined in\nperspectives/PerspectiveHandle.ts:8\n\nNeighbourhoodJoinInitiated\n• NeighbourhoodJoinInitiated = \"NeighbourhoodJoinInitiated\"\nDefined in\nperspectives/PerspectiveHandle.ts:6\n\nPrivate\n• Private = \"Private\"\nDefined in\nperspectives/PerspectiveHandle.ts:5\n\nSynced\n• Synced = \"Synced\"\nDefined in\nperspectives/PerspectiveHandle.ts:9\nInterfaces\n\n@perspect3vism/ad4m / Exports / agent/AgentClient / InitializeArgs\nInterface: InitializeArgs\nagent/AgentClient.InitializeArgs\nTable of contents\nProperties\n\ndid\ndidDocument\nkeystore\npassphrase\n\nProperties\ndid\n• did: string\nDefined in\nagent/AgentClient.ts:66\n\ndidDocument\n• didDocument: string\nDefined in\nagent/AgentClient.ts:67\n\nkeystore\n• keystore: string\nDefined in\nagent/AgentClient.ts:68\n\npassphrase\n• passphrase: string\nDefined in\nagent/AgentClient.ts:69\n\n@perspect3vism/ad4m / Exports / language/Language / DirectMessageAdapter\nInterface: DirectMessageAdapter\nlanguage/Language.DirectMessageAdapter\nTable of contents\nMethods\n\naddMessageCallback\ninbox\nrecipient\nsendInbox\nsendP2P\nsetStatus\nstatus\n\nMethods\naddMessageCallback\n▸ addMessageCallback(callback): any\nParameters\n\n\n\nName\nType\n\n\n\n\ncallback\nMessageCallback\n\n\n\nReturns\nany\nDefined in\nlanguage/Language.ts:198\n\ninbox\n▸ inbox(filter?): PromisePerspectiveExpression[]>\nParameters\n\n\n\nName\nType\n\n\n\n\nfilter?\nstring\n\n\n\nReturns\nPromisePerspectiveExpression[]>\nDefined in\nlanguage/Language.ts:197\n\nrecipient\n▸ recipient(): string\nReturns\nstring\nDefined in\nlanguage/Language.ts:190\n\nsendInbox\n▸ sendInbox(message): Promisevoid | PerspectiveExpression>\nParameters\n\n\n\nName\nType\n\n\n\n\nmessage\nPerspective\n\n\n\nReturns\nPromisevoid | PerspectiveExpression>\nDefined in\nlanguage/Language.ts:194\n\nsendP2P\n▸ sendP2P(message): Promisevoid | PerspectiveExpression>\nParameters\n\n\n\nName\nType\n\n\n\n\nmessage\nPerspective\n\n\n\nReturns\nPromisevoid | PerspectiveExpression>\nDefined in\nlanguage/Language.ts:193\n\nsetStatus\n▸ setStatus(status): any\nParameters\n\n\n\nName\nType\n\n\n\n\nstatus\nPerspectiveExpression\n\n\n\nReturns\nany\nDefined in\nlanguage/Language.ts:196\n\nstatus\n▸ status(): Promisevoid | PerspectiveExpression>\nReturns\nPromisevoid | PerspectiveExpression>\nDefined in\nlanguage/Language.ts:192\n\n@perspect3vism/ad4m / Exports / language/Language / ExpressionAdapter\nInterface: ExpressionAdapter\nlanguage/Language.ExpressionAdapter\nInterface for the most common Expression Languages\nTable of contents\nProperties\n\nputAdapter\n\nMethods\n\nget\n\nProperties\nputAdapter\n• putAdapter: PublicSharing | ReadOnlyLanguage\nStrategy for putting an expression with needs to be different\nfor those two cases:\n\nPublicSharing means that this language supports the creation\nand sharing of Expressions, which is the common use-case\nReadOnlyLanguage means that the Language implements a pre-defined\nset of expressions (which can be infinite or finite).\nFor example the url-iframe Language which directly maps URLs to\naddresses - meaning every well formed URL is an address in this\nLanguage. Or a potential Language implementing the verbs/predicates\nof a spec like FOAF.\n\nDefined in\nlanguage/Language.ts:105\nMethods\nget\n▸ get(address): PromiseExpression>\nReturns an Expression by address, or null if there is no Expression\nwith that given address\nParameters\n\n\n\nName\nType\n\n\n\n\naddress\nstring\n\n\n\nReturns\nPromiseExpression>\nDefined in\nlanguage/Language.ts:92\n\n@perspect3vism/ad4m / Exports / language/Language / ExpressionUI\nInterface: ExpressionUI\nlanguage/Language.ExpressionUI\nUI factories returning web components\nTable of contents\nMethods\n\nconstructorIcon\nicon\n\nMethods\nconstructorIcon\n▸ constructorIcon(): string\nReturns JS code of a web component used to create new expressions\nReturns\nstring\nDefined in\nlanguage/Language.ts:81\n\nicon\n▸ icon(): string\nReturns JS code of a web component that renders the given expression\nReturns\nstring\nDefined in\nlanguage/Language.ts:79\n\n@perspect3vism/ad4m / Exports / language/Language / GetAllAdapter\nInterface: GetAllAdapter\nlanguage/Language.GetAllAdapter\nTable of contents\nMethods\n\ngetAll\n\nMethods\ngetAll\n▸ getAll(filter, count, page): PromiseExpression[]>\nParameters\n\n\n\nName\nType\n\n\n\n\nfilter\nany\n\n\ncount\nnumber\n\n\npage\nnumber\n\n\n\nReturns\nPromiseExpression[]>\nDefined in\nlanguage/Language.ts:147\n\n@perspect3vism/ad4m / Exports / language/Language / GetByAuthorAdapter\nInterface: GetByAuthorAdapter\nlanguage/Language.GetByAuthorAdapter\nTable of contents\nMethods\n\ngetByAuthor\n\nMethods\ngetByAuthor\n▸ getByAuthor(author, count, page): PromiseExpression[]>\nParameters\n\n\n\nName\nType\n\n\n\n\nauthor\nstring\n\n\ncount\nnumber\n\n\npage\nnumber\n\n\n\nReturns\nPromiseExpression[]>\nDefined in\nlanguage/Language.ts:138\n\n@perspect3vism/ad4m / Exports / language/Language / Interaction\nInterface: Interaction\nlanguage/Language.Interaction\nTable of contents\nProperties\n\nlabel\nname\nparameters\n\nMethods\n\nexecute\n\nProperties\nlabel\n• Readonly label: string\nDefined in\nlanguage/Language.ts:222\n\nname\n• Readonly name: string\nDefined in\nlanguage/Language.ts:223\n\nparameters\n• Readonly parameters: InteractionParameter[]\nDefined in\nlanguage/Language.ts:224\nMethods\nexecute\n▸ execute(parameters): Promisestring>\nParameters\n\n\n\nName\nType\n\n\n\n\nparameters\nobject\n\n\n\nReturns\nPromisestring>\nDefined in\nlanguage/Language.ts:225\n\n@perspect3vism/ad4m / Exports / language/Language / Language\nInterface: Language\nlanguage/Language.Language\nInterface of AD4M Languages\nAny JavaScript module that implements a create() function that returns an object that implements this interface\nis a valid AD4M language.\nSo the AD4M-internal representation of a language is an object that implements this interface.\nSince there are a few different kinds of languages, this interface is split into optional sub-interfaces.\nThe only required property is the name of the language.\nThe most usual kind of language is the \"Expression Language\", which is a language that can be used to create\nand share Expressions.\nFor that, implement the expressionsAdapter and expressionUI interface.\nThe second most common kind of language is the \"Link Language\", which is a language that builds the core\nof AD4M Neighbourhoods.\nFor that, implement the linksAdapter interface.\nTable of contents\nProperties\n\ndirectMessageAdapter\nexpressionAdapter\nexpressionUI\ngetAllAdapter\ngetByAuthorAdapter\nlanguageAdapter\nlinksAdapter\nname\nsettingsUI\nteardown\ntelepresenceAdapter\n\nMethods\n\ninteractions\nisImmutableExpression\n\nProperties\ndirectMessageAdapter\n• Optional Readonly directMessageAdapter: DirectMessageAdapter\nOptional adapter for direct messaging between agents\nDefined in\nlanguage/Language.ts:64\n\nexpressionAdapter\n• Optional Readonly expressionAdapter: ExpressionAdapter\nExpressionAdapter implements means of getting an Expression\nby address and putting an expression\nDefined in\nlanguage/Language.ts:38\n\nexpressionUI\n• Optional Readonly expressionUI: ExpressionUI\nInterface for getting UI/web components for rendering Expressions of this Language\nDefined in\nlanguage/Language.ts:41\n\ngetAllAdapter\n• Optional Readonly getAllAdapter: GetAllAdapter\nOptional adapter for getting all Expressions\nDefined in\nlanguage/Language.ts:61\n\ngetByAuthorAdapter\n• Optional Readonly getByAuthorAdapter: GetByAuthorAdapter\nOptional adapter for getting Expressions by author\nDefined in\nlanguage/Language.ts:59\n\nlanguageAdapter\n• Optional Readonly languageAdapter: LanguageAdapter\nImplementation of a Language that defines and stores Languages\nDefined in\nlanguage/Language.ts:56\n\nlinksAdapter\n• Optional Readonly linksAdapter: LinkSyncAdapter\nInterface of LinkLanguages for the core implementation of Neighbourhoods\nDefined in\nlanguage/Language.ts:44\n\nname\n• Readonly name: string\nDefined in\nlanguage/Language.ts:26\n\nsettingsUI\n• Optional Readonly settingsUI: SettingsUI\nInterface for providing UI components for the settings of this Language\nDefined in\nlanguage/Language.ts:67\n\nteardown\n• Optional Readonly teardown: () => void\nType declaration\n▸ (): void\nOptional function to make any cleanup/teardown if your language gets deleting in the ad4m-executor\nReturns\nvoid\nDefined in\nlanguage/Language.ts:70\n\ntelepresenceAdapter\n• Optional Readonly telepresenceAdapter: TelepresenceAdapter\nAdditional Interface of LinkLanguages that support telepresence features, \nthat is: \n\nseeing who is online and getting a status\nsending/receiveing p2p signals to other online agents without affecting\nthe shared Perspective of the Neighbourhood\n(see TelepresenceAdapter for more details)\n\nDefined in\nlanguage/Language.ts:53\nMethods\ninteractions\n▸ interactions(expression): Interaction[]\nAll available interactions this agent could execute on given expression\nParameters\n\n\n\nName\nType\n\n\n\n\nexpression\nstring\n\n\n\nReturns\nInteraction[]\nDefined in\nlanguage/Language.ts:73\n\nisImmutableExpression\n▸ Optional isImmutableExpression(expression): boolean\nFlagging expressions as immutable to enable\nexpression caching in the ad4m-executor\nParameters\n\n\n\nName\nType\n\n\n\n\nexpression\nstring\n\n\n\nReturns\nboolean\nDefined in\nlanguage/Language.ts:31\n\n@perspect3vism/ad4m / Exports / language/Language / LanguageAdapter\nInterface: LanguageAdapter\nlanguage/Language.LanguageAdapter\nTable of contents\nMethods\n\ngetLanguageSource\n\nMethods\ngetLanguageSource\n▸ getLanguageSource(address): Promisestring>\nParameters\n\n\n\nName\nType\n\n\n\n\naddress\nstring\n\n\n\nReturns\nPromisestring>\nDefined in\nlanguage/Language.ts:131\n\n@perspect3vism/ad4m / Exports / language/Language / LinkSyncAdapter\nInterface: LinkSyncAdapter\nlanguage/Language.LinkSyncAdapter\nInterface for \"Link Languages\" that facilitate the synchronization\nbetween agents' local Perspectives inside a Neighbourhood.\nThe assumption is that every version of the shared Perspective\nis labeled with a unique revision string.\nChanges are committed and retrieved through diffs.\nThink of a LinkSyncAdapter as a git branch to which agents commit\ntheir changes to and pull diffs from their current revision\nto the latest one.\nTable of contents\nMethods\n\naddCallback\ncommit\ncurrentRevision\nlatestRevision\nothers\npublic\npull\nrender\nwritable\n\nMethods\naddCallback\n▸ addCallback(callback): any\nGet push notification when a diff got published\nParameters\n\n\n\nName\nType\n\n\n\n\ncallback\nPerspectiveDiffObserver\n\n\n\nReturns\nany\nDefined in\nlanguage/Language.ts:184\n\ncommit\n▸ commit(diff): Promisestring>\nPublish changes\nParameters\n\n\n\nName\nType\n\n\n\n\ndiff\nPerspectiveDiff\n\n\n\nReturns\nPromisestring>\nDefined in\nlanguage/Language.ts:181\n\ncurrentRevision\n▸ currentRevision(): Promisestring>\nWhat revision are we on now -> what changes are included in output of render()\nReturns\nPromisestring>\nDefined in\nlanguage/Language.ts:172\n\nlatestRevision\n▸ latestRevision(): Promisestring>\nCall this to check if there are new changes\n(compare returned revision with last one that was pulled)\nReturns\nPromisestring>\nDefined in\nlanguage/Language.ts:169\n\nothers\n▸ others(): Promisestring[]>\nReturns\nPromisestring[]>\nDefined in\nlanguage/Language.ts:164\n\npublic\n▸ public(): boolean\nReturns\nboolean\nDefined in\nlanguage/Language.ts:163\n\npull\n▸ pull(): PromisePerspectiveDiff>\nCheck for and get new changes\nReturns\nPromisePerspectiveDiff>\nDefined in\nlanguage/Language.ts:175\n\nrender\n▸ render(): PromisePerspective>\nReturns the full, rendered Perspective at currentRevision\nReturns\nPromisePerspective>\nDefined in\nlanguage/Language.ts:178\n\nwritable\n▸ writable(): boolean\nReturns\nboolean\nDefined in\nlanguage/Language.ts:162\n\n@perspect3vism/ad4m / Exports / language/Language / PublicSharing\nInterface: PublicSharing\nlanguage/Language.PublicSharing\nImplement this interface if your Language supports creation of sharing\nof Expressions.\nSee ExpressionAdapter\nTable of contents\nMethods\n\ncreatePublic\n\nMethods\ncreatePublic\n▸ createPublic(content): Promisestring>\nCreate an Expression and shares it.\nReturn the Expression's address.\nParameters\n\n\n\nName\nType\nDescription\n\n\n\n\ncontent\nobject\nis the object created by the constructorIcon component\n\n\n\nReturns\nPromisestring>\nDefined in\nlanguage/Language.ts:117\n\n@perspect3vism/ad4m / Exports / language/Language / ReadOnlyLanguage\nInterface: ReadOnlyLanguage\nlanguage/Language.ReadOnlyLanguage\nImplement this interface if your Language is defined over a static\nset of pre-defined Expressions.\nTable of contents\nMethods\n\naddressOf\n\nMethods\naddressOf\n▸ addressOf(content): Promisestring>\nThis just calculates the address of an object\nParameters\n\n\n\nName\nType\nDescription\n\n\n\n\ncontent\nobject\nis the object created by the constructorIcon component\n\n\n\nReturns\nPromisestring>\nDefined in\nlanguage/Language.ts:127\n\n@perspect3vism/ad4m / Exports / language/Language / SettingsUI\nInterface: SettingsUI\nlanguage/Language.SettingsUI\nTable of contents\nMethods\n\nsettingsIcon\n\nMethods\nsettingsIcon\n▸ settingsIcon(): string\nReturns\nstring\nDefined in\nlanguage/Language.ts:85\n\n@perspect3vism/ad4m / Exports / language/Language / TelepresenceAdapter\nInterface: TelepresenceAdapter\nlanguage/Language.TelepresenceAdapter\nTable of contents\nMethods\n\ngetOnlineAgents\nregisterSignalCallback\nsendBroadcast\nsendSignal\nsetOnlineStatus\n\nMethods\ngetOnlineAgents\n▸ getOnlineAgents(): PromiseOnlineAgent[]>\nReturns\nPromiseOnlineAgent[]>\nDefined in\nlanguage/Language.ts:256\n\nregisterSignalCallback\n▸ registerSignalCallback(callback): Promisevoid>\nParameters\n\n\n\nName\nType\n\n\n\n\ncallback\nTelepresenceSignalCallback\n\n\n\nReturns\nPromisevoid>\nDefined in\nlanguage/Language.ts:260\n\nsendBroadcast\n▸ sendBroadcast(payload): Promiseobject>\nParameters\n\n\n\nName\nType\n\n\n\n\npayload\nPerspectiveExpression\n\n\n\nReturns\nPromiseobject>\nDefined in\nlanguage/Language.ts:259\n\nsendSignal\n▸ sendSignal(remoteAgentDid, payload): Promiseobject>\nParameters\n\n\n\nName\nType\n\n\n\n\nremoteAgentDid\nstring\n\n\npayload\nPerspectiveExpression\n\n\n\nReturns\nPromiseobject>\nDefined in\nlanguage/Language.ts:258\n\nsetOnlineStatus\n▸ setOnlineStatus(status): Promisevoid>\nParameters\n\n\n\nName\nType\n\n\n\n\nstatus\nPerspectiveExpression\n\n\n\nReturns\nPromisevoid>\nDefined in\nlanguage/Language.ts:255\n\n@perspect3vism/ad4m / Exports / language/LanguageContext / AgentService\nInterface: AgentService\nlanguage/LanguageContext.AgentService\nTable of contents\nProperties\n\ndid\n\nMethods\n\ncreateSignedExpression\n\nProperties\ndid\n• Readonly did: string\nDefined in\nlanguage/LanguageContext.ts:6\nMethods\ncreateSignedExpression\n▸ createSignedExpression(data): Expression\nParameters\n\n\n\nName\nType\n\n\n\n\ndata\nany\n\n\n\nReturns\nExpression\nDefined in\nlanguage/LanguageContext.ts:7\n\n@perspect3vism/ad4m / Exports / language/LanguageContext / HolochainLanguageDelegate\nInterface: HolochainLanguageDelegate\nlanguage/LanguageContext.HolochainLanguageDelegate\nTable of contents\nMethods\n\ncall\ncallAsync\nregisterDNAs\n\nMethods\ncall\n▸ call(dnaNick, zomeName, fnName, params): Promiseany>\nMakes a single call to a given holochain DNA. Underlying implementation puts these calls into a sync fifo queue\nParameters\n\n\n\nName\nType\n\n\n\n\ndnaNick\nstring\n\n\nzomeName\nstring\n\n\nfnName\nstring\n\n\nparams\nstring \\\nobject\n\n\n\nReturns\nPromiseany>\nDefined in\nlanguage/LanguageContext.ts:34\n\ncallAsync\n▸ callAsync(calls, timeoutMs?): Promiseany[]>\nMakes all supplied calls in parallel to the provided holochain dna... Should only be called on read operations to avoid source chain async mutation errors\nParameters\n\n\n\nName\nType\n\n\n\n\ncalls\n{ dnaNick: string ; fnName: string ; params: string \\\nobject ; zomeName: string }[]\n\n\ntimeoutMs?\nnumber\n\n\n\nReturns\nPromiseany[]>\nDefined in\nlanguage/LanguageContext.ts:36\n\nregisterDNAs\n▸ registerDNAs(dnas, holochainSignalCallback?): Promisevoid>\nInstalls/registers a given DNA in the ad4m-executor\nParameters\n\n\n\nName\nType\n\n\n\n\ndnas\nDna[]\n\n\nholochainSignalCallback?\nAppSignalCb\n\n\n\nReturns\nPromisevoid>\nDefined in\nlanguage/LanguageContext.ts:32\n\n@perspect3vism/ad4m / Exports / language/LanguageContext / LanguageContext\nInterface: LanguageContext\nlanguage/LanguageContext.LanguageContext\nTable of contents\nProperties\n\nHolochain\nIPFS\nad4mSignal\nagent\ncustomSettings\nsignatures\nstorageDirectory\n\nProperties\nHolochain\n• Holochain: HolochainLanguageDelegate\nDefined in\nlanguage/LanguageContext.ts:20\n\nIPFS\n• IPFS: IPFS\nDefined in\nlanguage/LanguageContext.ts:16\n\nad4mSignal\n• ad4mSignal: Ad4mSignalCB\nDefined in\nlanguage/LanguageContext.ts:21\n\nagent\n• agent: AgentService\nDefined in\nlanguage/LanguageContext.ts:15\n\ncustomSettings\n• customSettings: object\nDefined in\nlanguage/LanguageContext.ts:19\n\nsignatures\n• signatures: SignaturesService\nDefined in\nlanguage/LanguageContext.ts:17\n\nstorageDirectory\n• storageDirectory: string\nDefined in\nlanguage/LanguageContext.ts:18\n\n@perspect3vism/ad4m / Exports / language/LanguageContext / SignaturesService\nInterface: SignaturesService\nlanguage/LanguageContext.SignaturesService\nTable of contents\nMethods\n\nverify\n\nMethods\nverify\n▸ verify(expr): boolean\nParameters\n\n\n\nName\nType\n\n\n\n\nexpr\nExpression\n\n\n\nReturns\nboolean\nDefined in\nlanguage/LanguageContext.ts:11\n\n@perspect3vism/ad4m / Exports\n@perspect3vism/ad4m\nTable of contents\nModules\n\nAd4mClient\nAddress\nDID\nException\nLiteral\nPubSub\nSmartLiteral\nagent/Agent\nagent/AgentClient\nagent/AgentResolver\nagent/AgentStatus\nbuildSchema\nexpression/Expression\nexpression/ExpressionClient\nexpression/ExpressionRef\nexpression/ExpressionResolver\njestSetup\nlanguage/Icon\nlanguage/Language\nlanguage/LanguageClient\nlanguage/LanguageContext\nlanguage/LanguageHandle\nlanguage/LanguageMeta\nlanguage/LanguageRef\nlanguage/LanguageResolver\nlinks/Links\nneighbourhood/Neighbourhood\nneighbourhood/NeighbourhoodClient\nneighbourhood/NeighbourhoodProxy\nneighbourhood/NeighbourhoodResolver\nperspectives/LinkQuery\nperspectives/Perspective\nperspectives/PerspectiveClient\nperspectives/PerspectiveDiff\nperspectives/PerspectiveHandle\nperspectives/PerspectiveProxy\nperspectives/PerspectiveResolver\nruntime/RuntimeClient\nruntime/RuntimeResolver\nsubject/SDNADecorators\nsubject/Subject\nsubject/util\ntypeDefs\nunwrapApolloResult\n\nModules\n\n@perspect3vism/ad4m / Exports / Ad4mClient\nModule: Ad4mClient\nTable of contents\nClasses\n\nAd4mClient\n\n\n@perspect3vism/ad4m / Exports / Address\nModule: Address\nTable of contents\nType Aliases\n\nAddress\n\nType Aliases\nAddress\nƬ Address: string\nDefined in\nAddress.ts:1\n\n@perspect3vism/ad4m / Exports / DID\nModule: DID\nTable of contents\nType Aliases\n\nDID\n\nType Aliases\nDID\nƬ DID: string\nDefined in\nDID.ts:1\n\n@perspect3vism/ad4m / Exports / Exception\nModule: Exception\nTable of contents\nEnumerations\n\nExceptionType\n\n\n@perspect3vism/ad4m / Exports / Literal\nModule: Literal\nTable of contents\nClasses\n\nLiteral\n\n\n@perspect3vism/ad4m / Exports / PubSub\nModule: PubSub\nTable of contents\nVariables\n\nAGENT_STATUS_CHANGED\nAGENT_UPDATED\nDIRECT_MESSAGE_RECEIVED\nEXCEPTION_OCCURRED_TOPIC\nLINK_ADDED_TOPIC\nLINK_REMOVED_TOPIC\nLINK_UDATED_TOPIC\nNEIGHBOURHOOD_SIGNAL_RECEIVED_TOPIC\nPERSPECTIVE_ADDED_TOPIC\nPERSPECTIVE_REMOVED_TOPIC\nPERSPECTIVE_UPDATED_TOPIC\nSIGNAL\n\nVariables\nAGENT_STATUS_CHANGED\n• Const AGENT_STATUS_CHANGED: \"agent-status-changed-topic\"\nDefined in\nPubSub.ts:2\n\nAGENT_UPDATED\n• Const AGENT_UPDATED: \"agent-updated-topic\"\nDefined in\nPubSub.ts:1\n\nDIRECT_MESSAGE_RECEIVED\n• Const DIRECT_MESSAGE_RECEIVED: \"direct-message-received-topic\"\nDefined in\nPubSub.ts:3\n\nEXCEPTION_OCCURRED_TOPIC\n• Const EXCEPTION_OCCURRED_TOPIC: \"exception-occurred-topic\"\nDefined in\nPubSub.ts:11\n\nLINK_ADDED_TOPIC\n• Const LINK_ADDED_TOPIC: \"link-added-topic\"\nDefined in\nPubSub.ts:7\n\nLINK_REMOVED_TOPIC\n• Const LINK_REMOVED_TOPIC: \"link-removed-topic\"\nDefined in\nPubSub.ts:8\n\nLINK_UDATED_TOPIC\n• Const LINK_UDATED_TOPIC: \"link-updated-topic\"\nDefined in\nPubSub.ts:9\n\nNEIGHBOURHOOD_SIGNAL_RECEIVED_TOPIC\n• Const NEIGHBOURHOOD_SIGNAL_RECEIVED_TOPIC: \"neighbourhood-signal-received-topic\"\nDefined in\nPubSub.ts:12\n\nPERSPECTIVE_ADDED_TOPIC\n• Const PERSPECTIVE_ADDED_TOPIC: \"perspective-added-topic\"\nDefined in\nPubSub.ts:4\n\nPERSPECTIVE_REMOVED_TOPIC\n• Const PERSPECTIVE_REMOVED_TOPIC: \"perspective-removed-topic\"\nDefined in\nPubSub.ts:6\n\nPERSPECTIVE_UPDATED_TOPIC\n• Const PERSPECTIVE_UPDATED_TOPIC: \"perspective-updated-topic\"\nDefined in\nPubSub.ts:5\n\nSIGNAL\n• Const SIGNAL: \"signal\"\nDefined in\nPubSub.ts:10\n\n@perspect3vism/ad4m / Exports / SmartLiteral\nModule: SmartLiteral\nTable of contents\nClasses\n\nSmartLiteral\n\nVariables\n\nSMART_LITERAL_CONTENT_PREDICATE\n\nVariables\nSMART_LITERAL_CONTENT_PREDICATE\n• Const SMART_LITERAL_CONTENT_PREDICATE: \"smart_literal://content\"\nDefined in\nSmartLiteral.ts:6\n\n@perspect3vism/ad4m / Exports / agent/Agent\nModule: agent/Agent\nTable of contents\nClasses\n\nAgent\nAgentExpression\nAgentSignature\nApps\nAuthInfo\nCapability\nEntanglementProof\nEntanglementProofInput\nResource\n\n\n@perspect3vism/ad4m / Exports / agent/AgentClient\nModule: agent/AgentClient\nTable of contents\nClasses\n\nAgentClient\n\nInterfaces\n\nInitializeArgs\n\nType Aliases\n\nAgentStatusChangedCallback\nAgentUpdatedCallback\n\nType Aliases\nAgentStatusChangedCallback\nƬ AgentStatusChangedCallback: (agent: Agent) => null\nType declaration\n▸ (agent): null\nParameters\n\n\n\nName\nType\n\n\n\n\nagent\nAgent\n\n\n\nReturns\nnull\nDefined in\nagent/AgentClient.ts:73\n\nAgentUpdatedCallback\nƬ AgentUpdatedCallback: (agent: Agent) => null\nType declaration\n▸ (agent): null\nParameters\n\n\n\nName\nType\n\n\n\n\nagent\nAgent\n\n\n\nReturns\nnull\nDefined in\nagent/AgentClient.ts:72\n\n@perspect3vism/ad4m / Exports / agent/AgentResolver\nModule: agent/AgentResolver\nTable of contents\nClasses\n\ndefault\n\nVariables\n\nTEST_AGENT_DID\n\nVariables\nTEST_AGENT_DID\n• Const TEST_AGENT_DID: \"did:ad4m:test\"\nDefined in\nagent/AgentResolver.ts:7\n\n@perspect3vism/ad4m / Exports / agent/AgentStatus\nModule: agent/AgentStatus\nTable of contents\nClasses\n\nAgentStatus\n\n\n@perspect3vism/ad4m / Exports / buildSchema\nModule: buildSchema\n\n@perspect3vism/ad4m / Exports / expression/Expression\nModule: expression/Expression\nTable of contents\nClasses\n\nExpression\nExpressionProof\nExpressionProofInput\nExpressionRendered\n\nFunctions\n\nExpressionGeneric\nExpressionGenericInput\nisExpression\n\nFunctions\nExpressionGeneric\n▸ ExpressionGenericDataType>(DataTypeClass): any\nType parameters\n\n\n\nName\n\n\n\n\nDataType\n\n\n\nParameters\n\n\n\nName\nType\n\n\n\n\nDataTypeClass\nClassTypeDataType>\n\n\n\nReturns\nany\nDefined in\nexpression/Expression.ts:42\n\nExpressionGenericInput\n▸ ExpressionGenericInputDataType>(DataTypeClass): any\nType parameters\n\n\n\nName\n\n\n\n\nDataType\n\n\n\nParameters\n\n\n\nName\nType\n\n\n\n\nDataTypeClass\nClassTypeDataType>\n\n\n\nReturns\nany\nDefined in\nexpression/Expression.ts:67\n\nisExpression\n▸ isExpression(e): boolean\nParameters\n\n\n\nName\nType\n\n\n\n\ne\nany\n\n\n\nReturns\nboolean\nDefined in\nexpression/Expression.ts:97\n\n@perspect3vism/ad4m / Exports / expression/ExpressionClient\nModule: expression/ExpressionClient\nTable of contents\nClasses\n\nExpressionClient\n\n\n@perspect3vism/ad4m / Exports / expression/ExpressionRef\nModule: expression/ExpressionRef\nTable of contents\nClasses\n\nExpressionRef\n\nFunctions\n\nexprRef2String\nparseExprUrl\n\nFunctions\nexprRef2String\n▸ exprRef2String(ref): string\nParameters\n\n\n\nName\nType\n\n\n\n\nref\nExpressionRef\n\n\n\nReturns\nstring\nDefined in\nexpression/ExpressionRef.ts:22\n\nparseExprUrl\n▸ parseExprUrl(url): ExpressionRef\nParameters\n\n\n\nName\nType\n\n\n\n\nurl\nstring\n\n\n\nReturns\nExpressionRef\nDefined in\nexpression/ExpressionRef.ts:29\n\n@perspect3vism/ad4m / Exports / expression/ExpressionResolver\nModule: expression/ExpressionResolver\nTable of contents\nClasses\n\ndefault\n\n\n@perspect3vism/ad4m / Exports / jestSetup\nModule: jestSetup\n\n@perspect3vism/ad4m / Exports / language/Icon\nModule: language/Icon\nTable of contents\nClasses\n\nIcon\n\n\n@perspect3vism/ad4m / Exports / language/Language\nModule: language/Language\nTable of contents\nClasses\n\nInteractionCall\nInteractionMeta\nInteractionParameter\nOnlineAgent\n\nInterfaces\n\nDirectMessageAdapter\nExpressionAdapter\nExpressionUI\nGetAllAdapter\nGetByAuthorAdapter\nInteraction\nLanguage\nLanguageAdapter\nLinkSyncAdapter\nPublicSharing\nReadOnlyLanguage\nSettingsUI\nTelepresenceAdapter\n\nType Aliases\n\nMessageCallback\nPerspectiveDiffObserver\nStatusCallback\nTelepresenceSignalCallback\n\nType Aliases\nMessageCallback\nƬ MessageCallback: (message: PerspectiveExpression) => void\nType declaration\n▸ (message): void\nParameters\n\n\n\nName\nType\n\n\n\n\nmessage\nPerspectiveExpression\n\n\n\nReturns\nvoid\nDefined in\nlanguage/Language.ts:187\n\nPerspectiveDiffObserver\nƬ PerspectiveDiffObserver: (diff: PerspectiveDiff) => void\nType declaration\n▸ (diff): void\nParameters\n\n\n\nName\nType\n\n\n\n\ndiff\nPerspectiveDiff\n\n\n\nReturns\nvoid\nDefined in\nlanguage/Language.ts:150\n\nStatusCallback\nƬ StatusCallback: (caller: DID) => Perspective\nType declaration\n▸ (caller): Perspective\nParameters\n\n\n\nName\nType\n\n\n\n\ncaller\nDID\n\n\n\nReturns\nPerspective\nDefined in\nlanguage/Language.ts:188\n\nTelepresenceSignalCallback\nƬ TelepresenceSignalCallback: (payload: PerspectiveExpression) => void\nType declaration\n▸ (payload): void\nParameters\n\n\n\nName\nType\n\n\n\n\npayload\nPerspectiveExpression\n\n\n\nReturns\nvoid\nDefined in\nlanguage/Language.ts:253\n\n@perspect3vism/ad4m / Exports / language/LanguageClient\nModule: language/LanguageClient\nTable of contents\nClasses\n\nLanguageClient\n\n\n@perspect3vism/ad4m / Exports / language/LanguageContext\nModule: language/LanguageContext\nTable of contents\nClasses\n\nDna\n\nInterfaces\n\nAgentService\nHolochainLanguageDelegate\nLanguageContext\nSignaturesService\n\nType Aliases\n\nAd4mSignalCB\n\nType Aliases\nAd4mSignalCB\nƬ Ad4mSignalCB: (signal: any) => void\nType declaration\n▸ (signal): void\nParameters\n\n\n\nName\nType\n\n\n\n\nsignal\nany\n\n\n\nReturns\nvoid\nDefined in\nlanguage/LanguageContext.ts:39\n\n@perspect3vism/ad4m / Exports / language/LanguageHandle\nModule: language/LanguageHandle\nTable of contents\nClasses\n\nLanguageHandle\n\n\n@perspect3vism/ad4m / Exports / language/LanguageMeta\nModule: language/LanguageMeta\nTable of contents\nClasses\n\nLanguageExpression\nLanguageLanguageInput\nLanguageMeta\nLanguageMetaInput\nLanguageMetaInternal\n\n\n@perspect3vism/ad4m / Exports / language/LanguageRef\nModule: language/LanguageRef\nTable of contents\nClasses\n\nLanguageRef\n\n\n@perspect3vism/ad4m / Exports / language/LanguageResolver\nModule: language/LanguageResolver\nTable of contents\nClasses\n\ndefault\n\n\n@perspect3vism/ad4m / Exports / links/Links\nModule: links/Links\nTable of contents\nClasses\n\nLink\nLinkExpression\nLinkExpressionInput\nLinkExpressionMutations\nLinkExpressionUpdated\nLinkInput\nLinkMutations\n\nFunctions\n\nisLink\nlinkEqual\n\nFunctions\nisLink\n▸ isLink(l): boolean\nParameters\n\n\n\nName\nType\n\n\n\n\nl\nany\n\n\n\nReturns\nboolean\nDefined in\nlinks/Links.ts:82\n\nlinkEqual\n▸ linkEqual(l1, l2): boolean\nParameters\n\n\n\nName\nType\n\n\n\n\nl1\nLinkExpression\n\n\nl2\nLinkExpression\n\n\n\nReturns\nboolean\nDefined in\nlinks/Links.ts:74\n\n@perspect3vism/ad4m / Exports / neighbourhood/Neighbourhood\nModule: neighbourhood/Neighbourhood\nTable of contents\nClasses\n\nNeighbourhood\nNeighbourhoodExpression\n\n\n@perspect3vism/ad4m / Exports / neighbourhood/NeighbourhoodClient\nModule: neighbourhood/NeighbourhoodClient\nTable of contents\nClasses\n\nNeighbourhoodClient\n\n\n@perspect3vism/ad4m / Exports / neighbourhood/NeighbourhoodProxy\nModule: neighbourhood/NeighbourhoodProxy\nTable of contents\nClasses\n\nNeighbourhoodProxy\n\n\n@perspect3vism/ad4m / Exports / neighbourhood/NeighbourhoodResolver\nModule: neighbourhood/NeighbourhoodResolver\nTable of contents\nClasses\n\ndefault\n\n\n@perspect3vism/ad4m / Exports / perspectives/LinkQuery\nModule: perspectives/LinkQuery\nTable of contents\nClasses\n\nLinkQuery\n\n\n@perspect3vism/ad4m / Exports / perspectives/Perspective\nModule: perspectives/Perspective\nTable of contents\nClasses\n\nPerspective\nPerspectiveExpression\nPerspectiveInput\n\n\n@perspect3vism/ad4m / Exports / perspectives/PerspectiveClient\nModule: perspectives/PerspectiveClient\nTable of contents\nClasses\n\nPerspectiveClient\n\nType Aliases\n\nLinkCallback\nPerspectiveHandleCallback\nUuidCallback\n\nType Aliases\nLinkCallback\nƬ LinkCallback: (link: LinkExpression) => null\nType declaration\n▸ (link): null\nParameters\n\n\n\nName\nType\n\n\n\n\nlink\nLinkExpression\n\n\n\nReturns\nnull\nDefined in\nperspectives/PerspectiveClient.ts:41\n\nPerspectiveHandleCallback\nƬ PerspectiveHandleCallback: (perspective: PerspectiveHandle) => null\nType declaration\n▸ (perspective): null\nParameters\n\n\n\nName\nType\n\n\n\n\nperspective\nPerspectiveHandle\n\n\n\nReturns\nnull\nDefined in\nperspectives/PerspectiveClient.ts:39\n\nUuidCallback\nƬ UuidCallback: (uuid: string) => null\nType declaration\n▸ (uuid): null\nParameters\n\n\n\nName\nType\n\n\n\n\nuuid\nstring\n\n\n\nReturns\nnull\nDefined in\nperspectives/PerspectiveClient.ts:40\n\n@perspect3vism/ad4m / Exports / perspectives/PerspectiveDiff\nModule: perspectives/PerspectiveDiff\nTable of contents\nClasses\n\nPerspectiveDiff\nPerspectiveDiffExpression\n\n\n@perspect3vism/ad4m / Exports / perspectives/PerspectiveHandle\nModule: perspectives/PerspectiveHandle\nTable of contents\nEnumerations\n\nPerspectiveState\n\nClasses\n\nPerspectiveHandle\n\n\n@perspect3vism/ad4m / Exports / perspectives/PerspectiveProxy\nModule: perspectives/PerspectiveProxy\nTable of contents\nClasses\n\nPerspectiveProxy\n\n\n@perspect3vism/ad4m / Exports / perspectives/PerspectiveResolver\nModule: perspectives/PerspectiveResolver\nTable of contents\nClasses\n\ndefault\n\nVariables\n\ntestLink\n\nVariables\ntestLink\n• Const testLink: LinkExpression\nDefined in\nperspectives/PerspectiveResolver.ts:9\n\n@perspect3vism/ad4m / Exports / runtime/RuntimeClient\nModule: runtime/RuntimeClient\nTable of contents\nClasses\n\nRuntimeClient\n\nType Aliases\n\nExceptionCallback\nMessageCallback\n\nType Aliases\nExceptionCallback\nƬ ExceptionCallback: (info: ExceptionInfo) => null\nType declaration\n▸ (info): null\nParameters\n\n\n\nName\nType\n\n\n\n\ninfo\nExceptionInfo\n\n\n\nReturns\nnull\nDefined in\nruntime/RuntimeClient.ts:21\n\nMessageCallback\nƬ MessageCallback: (message: PerspectiveExpression) => null\nType declaration\n▸ (message): null\nParameters\n\n\n\nName\nType\n\n\n\n\nmessage\nPerspectiveExpression\n\n\n\nReturns\nnull\nDefined in\nruntime/RuntimeClient.ts:20\n\n@perspect3vism/ad4m / Exports / runtime/RuntimeResolver\nModule: runtime/RuntimeResolver\nTable of contents\nClasses\n\nExceptionInfo\nRuntimeInfo\nSentMessage\ndefault\n\n\n@perspect3vism/ad4m / Exports / subject/SDNADecorators\nModule: subject/SDNADecorators\nTable of contents\nClasses\n\nPerspectiveAction\n\nFunctions\n\nSDNAClass\naddLink\nhasLink\ninstanceQuery\nsubjectCollection\nsubjectFlag\nsubjectProperty\n\nFunctions\nSDNAClass\n▸ SDNAClass(opts): (target: any) => void\nParameters\n\n\n\nName\nType\n\n\n\n\nopts\nSDNAClassOptions\n\n\n\nReturns\nfn\n▸ (target): void\nParameters\n\n\n\nName\nType\n\n\n\n\ntarget\nany\n\n\n\nReturns\nvoid\nDefined in\nsubject/SDNADecorators.ts:153\n\naddLink\n▸ addLink(source, predicate, target): PerspectiveAction\nParameters\n\n\n\nName\nType\n\n\n\n\nsource\nstring\n\n\npredicate\nstring\n\n\ntarget\nstring\n\n\n\nReturns\nPerspectiveAction\nDefined in\nsubject/SDNADecorators.ts:12\n\nhasLink\n▸ hasLink(predicate): string\nParameters\n\n\n\nName\nType\n\n\n\n\npredicate\nstring\n\n\n\nReturns\nstring\nDefined in\nsubject/SDNADecorators.ts:21\n\ninstanceQuery\n▸ instanceQuery(options?): (target: T, key: keyof T, descriptor: PropertyDescriptor) => void\nParameters\n\n\n\nName\nType\n\n\n\n\noptions?\nInstanceQueryParams\n\n\n\nReturns\nfn\n▸ T>(target, key, descriptor): void\nType parameters\n\n\n\nName\n\n\n\n\nT\n\n\n\nParameters\n\n\n\nName\nType\n\n\n\n\ntarget\nT\n\n\nkey\nkeyof T\n\n\ndescriptor\nPropertyDescriptor\n\n\n\nReturns\nvoid\nDefined in\nsubject/SDNADecorators.ts:30\n\nsubjectCollection\n▸ subjectCollection(opts): (target: T, key: keyof T) => void\nParameters\n\n\n\nName\nType\n\n\n\n\nopts\nCollectionOptions\n\n\n\nReturns\nfn\n▸ T>(target, key): void\nType parameters\n\n\n\nName\n\n\n\n\nT\n\n\n\nParameters\n\n\n\nName\nType\n\n\n\n\ntarget\nT\n\n\nkey\nkeyof T\n\n\n\nReturns\nvoid\nDefined in\nsubject/SDNADecorators.ts:126\n\nsubjectFlag\n▸ subjectFlag(opts): (target: T, key: keyof T) => void\nParameters\n\n\n\nName\nType\n\n\n\n\nopts\nFlagOptions\n\n\n\nReturns\nfn\n▸ T>(target, key): void\nType parameters\n\n\n\nName\n\n\n\n\nT\n\n\n\nParameters\n\n\n\nName\nType\n\n\n\n\ntarget\nT\n\n\nkey\nkeyof T\n\n\n\nReturns\nvoid\nDefined in\nsubject/SDNADecorators.ts:99\n\nsubjectProperty\n▸ subjectProperty(opts): (target: T, key: keyof T) => void\nParameters\n\n\n\nName\nType\n\n\n\n\nopts\nPropertyOptions\n\n\n\nReturns\nfn\n▸ T>(target, key): void\nType parameters\n\n\n\nName\n\n\n\n\nT\n\n\n\nParameters\n\n\n\nName\nType\n\n\n\n\ntarget\nT\n\n\nkey\nkeyof T\n\n\n\nReturns\nvoid\nDefined in\nsubject/SDNADecorators.ts:80\n\n@perspect3vism/ad4m / Exports / subject/Subject\nModule: subject/Subject\nTable of contents\nClasses\n\nSubject\n\n\n@perspect3vism/ad4m / Exports / subject/util\nModule: subject/util\nTable of contents\nFunctions\n\ncapitalize\ncollectionAdderToName\ncollectionSetterToName\ncollectionToAdderName\ncollectionToSetterName\npluralToSingular\npropertyNameToSetterName\nsetterNameToPropertyName\nsingularToPlural\nstringifyObjectLiteral\n\nFunctions\ncapitalize\n▸ capitalize(str): string\nParameters\n\n\n\nName\nType\n\n\n\n\nstr\nstring\n\n\n\nReturns\nstring\nDefined in\nsubject/util.ts:1\n\ncollectionAdderToName\n▸ collectionAdderToName(adderName): string\nParameters\n\n\n\nName\nType\n\n\n\n\nadderName\nstring\n\n\n\nReturns\nstring\nDefined in\nsubject/util.ts:39\n\ncollectionSetterToName\n▸ collectionSetterToName(adderName): string\nParameters\n\n\n\nName\nType\n\n\n\n\nadderName\nstring\n\n\n\nReturns\nstring\nDefined in\nsubject/util.ts:45\n\ncollectionToAdderName\n▸ collectionToAdderName(collection): string\nParameters\n\n\n\nName\nType\n\n\n\n\ncollection\nstring\n\n\n\nReturns\nstring\nDefined in\nsubject/util.ts:34\n\ncollectionToSetterName\n▸ collectionToSetterName(collection): string\nParameters\n\n\n\nName\nType\n\n\n\n\ncollection\nstring\n\n\n\nReturns\nstring\nDefined in\nsubject/util.ts:52\n\npluralToSingular\n▸ pluralToSingular(plural): string\nParameters\n\n\n\nName\nType\n\n\n\n\nplural\nstring\n\n\n\nReturns\nstring\nDefined in\nsubject/util.ts:23\n\npropertyNameToSetterName\n▸ propertyNameToSetterName(property): string\nParameters\n\n\n\nName\nType\n\n\n\n\nproperty\nstring\n\n\n\nReturns\nstring\nDefined in\nsubject/util.ts:6\n\nsetterNameToPropertyName\n▸ setterNameToPropertyName(setter): string\nParameters\n\n\n\nName\nType\n\n\n\n\nsetter\nstring\n\n\n\nReturns\nstring\nDefined in\nsubject/util.ts:11\n\nsingularToPlural\n▸ singularToPlural(singular): string\nParameters\n\n\n\nName\nType\n\n\n\n\nsingular\nstring\n\n\n\nReturns\nstring\nDefined in\nsubject/util.ts:15\n\nstringifyObjectLiteral\n▸ stringifyObjectLiteral(obj): any\nParameters\n\n\n\nName\nType\n\n\n\n\nobj\nany\n\n\n\nReturns\nany\nDefined in\nsubject/util.ts:57\n\n@perspect3vism/ad4m / Exports / typeDefs\nModule: typeDefs\nTable of contents\nVariables\n\ntypeDefsString\n\nVariables\ntypeDefsString\n• Const typeDefsString: \"\"\nDefined in\ntypeDefs.ts:6\n\n@perspect3vism/ad4m / Exports / unwrapApolloResult\nModule: unwrapApolloResult\nTable of contents\nFunctions\n\ndefault\n\nFunctions\ndefault\n▸ default(result): any\nParameters\n\n\n\nName\nType\n\n\n\n\nresult\nApolloQueryResultany> \\\nFetchResultany, Recordstring, any>, Recordstring, any>>\n\n\n\nReturns\nany\nDefined in\nunwrapApolloResult.ts:3\n"}}} \ No newline at end of file diff --git a/docs/start.html b/docs/start.html deleted file mode 100644 index 1c33087b6..000000000 --- a/docs/start.html +++ /dev/null @@ -1,679 +0,0 @@ - - - - - - Getting Started · AD4M Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - -
    -
    v0.2.12
    -
    - - - - - - - -
    - -
    - -
    - - - - - - - - -
    -
    - -
    - -

    Getting Started

    -

    1. Install AD4M Launcher

    -

    Download the latest version of the AD4M launcher from -its GitHub release page and run/install it.

    -

    After successful agent initialization you should see an AD4M system-tray icon which will -bring up an AD4M pop-up window on click: -ad4min-screenshots

    -

    2. Setup app to connect to AD4M

    -

    First, install npm dependencies to your app/UI project:

    -
    npm install -s @perspect3vism/ad4m @perspect3vism/ad4m-connect
    -

    Connect UI client using ad4m-connect

    -

    The AD4M-executor serves a GraphQL interface for UIs to connect to -and remote control the executor to use Languages, query and modify Perspectives etc. -That interface implements a capability-based security mechanism which allows for -making the local interface available publicly via a proxy ("setup proxy" button) -so that mobile UIs can call in to your ad4m-executor run at home, -but also to manage access to certain Perspectives/Neighbourhoods only to certain UIs.

    -

    Anyway, to not confront you with the complexity of writing code for requesting a -capability token and injecting it into a GraphQL client -right at the start of your AD4M journey, -there is ad4m-connect -to do all of this for you and just deliver an initialized and usable -Ad4mClient object.

    -

    Web/Browser UI

    -

    import it in the context of your root UI/component

    -
    import '@perspect3vism/ad4m-connect'
    -
    -

    and then add the ad4m-connect web component to your markup:

    -
    <ad4m-connect
    -  appName="Perspect3ve"
    -  appDesc=""
    -  appDomain="org.perspect3vism.perspect3ve"
    -  capabilities='[{"with":{"domain":"*","pointers":["*"]},"can": ["*"]}]'
    -  appiconpath="./images/Perspect3ve-Logo.png"
    -></ad4m-connect>
    -
    -

    This web component will create a modal dialog over your UI, -but only if there is no capability token in the browsers localStorage yet. -After the first successful hand-shake, ad4m-connect will put the token there -and on next start-up of your app will check if the token still works and -not prompt the user again.

    -

    This is what your user will see when the app is not connected yet: -ad4m-connect-1

    -

    Since all the users's data is stored locally in AD4M Perspectives, -using a new app/UI and granting it access to all or parts of these perspectives -and AD4M functionality is potentially risky. -ad4m-connect not only makes it easy for app developers to connect to the users AD4M-executor, -it also provides a recognizable interface/wizard for the user.

    -

    Like in this example, an app/UI should provide its name and an icon for the user -to quickly understand what is going on.

    -

    The capabilities property must hold a string that defines what capability -(access to which perspectives and interface functions) should be requested. -This example requests all which might a good first step when starting to familiarize -yourself with AD4M, but should be restricted to what you really need for a production release.

    -

    If the user clicks authorize, ad4m-connect will connect to the AD4M-executor and request a capability token. -This will make the AD4M launcher bring up its pop-up window: -ad4m-connect-pop-up -Here the user has to confirm the request to their AD4M instance. -Next, AD4M will then show a six-digit random secret code that needs to be entered into the app UI. -That way we have safely established that the network agent initiating the capability request (as seen from -the AD4M-executor) really is the UI the users wants to use.

    -

    If all steps were completed successfully, the ad4m-connect modal dialog closes and your app is shown. -Now you just need to get the Ad4mClient out of ad4m-connect.

    -

    Then somewhere in the initialization part of your app, do something like:

    -
    import { Ad4mClient } from '@perspect3vism/ad4m'
    -import { getAd4mClient, onAuthStateChanged } from "@perspect3vism/ad4m-connect/web";
    -
    -let ad4m: Ad4mClient = await new Promise((resolve, reject) => {
    -    onAuthStateChanged(async (status) => {
    -        if (status === "connected_with_capabilities") {
    -            alert("Connected  to Ad4m!");
    -            resolve(getAd4mClient())
    -        } else {
    -            alert("Not connected to Ad4m!");
    -        }
    -    })
    -})
    -
    -

    Now you are ready to go and use the ad4m object to talk to the users AD4M-executor.

    -

    Node/Electron UI

    -

    ad4m-connect also works within an Electron app, but needs to be used a bit differently. -Instead of adding a web component to your UI, ad4m-connect will open its own Electron window -with that same UI component in it. -All you got to do is importing one function from dist/electron -(best done in your) main Node/Electron start-up file)

    -
    const { ad4mConnect } = require('@perspect3vism/ad4m-connect/dist/electron')
    -const path = require('path')
    -
    -let ad4m: Ad4mClient = await new Promise((resolve, reject) => {
    -    ad4mConnect({
    -        appName: "Perspect3ve",
    -        appIconPath: path.join(__dirname, "graphics", "Logo.png"),
    -        capabilities: [{"with":{"domain":"*","pointers":["*"]},"can":["*"]}],
    -        dataPath: path.join(homedir(), '.perspect3ve')
    -    })
    -        .then(({client, capabilityToken, executorUrl}) => {
    -            resolve(client)
    -        })
    -        .catch(() => reject())
    -    }
    -})
    -
    -

    There is one addition: dataPath. -The Node/Electron version of ad4m-connect stores the capability token (and executor URL) -to a file in the directory provided as dataPath.

    - - -
    - -
    -
    - -
    - - - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/theme.config.tsx b/docs/theme.config.tsx new file mode 100644 index 000000000..8f03f1c0a --- /dev/null +++ b/docs/theme.config.tsx @@ -0,0 +1,61 @@ +import { useConfig } from "nextra-theme-docs"; +import { useRouter } from "next/router"; +import { version } from "../core/package.json"; + +export default { + project: { + link: "https://github.com/perspect3vism/ad4m", + }, + logo: ( + <> + + AD4M Docs {version} + + ), + darkMode: true, + docsRepositoryBase: "https://github.com/perspect3vism/ad4m/blob/dev/docs/", + footer: { + text: "AD4M - The first social network", + }, + search: { + loading: "Loading...", + }, + head: function useHead() { + const config = useConfig<{ description?: string; image?: string }>(); + const description = + config.frontMatter.description || "Documentation site for AD4M"; + const image = + config.frontMatter.image || + "https://docs.ad4m.dev/images/ad4m-og-card.jpg"; + return ( + <> + + + + + + + + + + + + + ); + }, + useNextSeoProps() { + return { + titleTemplate: `%s | AD4M Docs`, + }; + }, +}; diff --git a/docs/tsconfig.json b/docs/tsconfig.json new file mode 100644 index 000000000..3d55fd7e6 --- /dev/null +++ b/docs/tsconfig.json @@ -0,0 +1,21 @@ +{ + "compilerOptions": { + "target": "es5", + "lib": ["dom", "dom.iterable", "esnext"], + "allowJs": true, + "skipLibCheck": true, + "strict": false, + "forceConsistentCasingInFileNames": true, + "noEmit": true, + "incremental": true, + "esModuleInterop": true, + "module": "esnext", + "resolveJsonModule": true, + "isolatedModules": true, + "jsx": "preserve", + "moduleResolution": "node", + "baseUrl": "./" + }, + "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx"], + "exclude": ["node_modules"] +} diff --git a/docs/tutorial.html b/docs/tutorial.html deleted file mode 100644 index 2a462c08d..000000000 --- a/docs/tutorial.html +++ /dev/null @@ -1,754 +0,0 @@ - - - - - - Tutorial · AD4M Documentation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    -
    - -
    -
    v0.2.12
    -
    - - - - - - - -
    - -
    - -
    - - - - - - - - -
    -
    - -
    - -

    Tutorial

    -

    This will get you to a shared Neighbourhood on Holochain in less than 20 minutes! -The code assumes an ad4m variable was setup as described in Getting Started.

    -

    1. Create a Perspective and add content

    -

    Adding a new perspective is as easy as

    -
    const myPerspective = await ad4m.perspective.add("My new perspective")
    -
    -

    The returned object is of type PerspectiveProxy, -which hides all the remote calls to the AD4M executor and can be treated like a -local database object.

    -

    Perspectives are basically local graph databases. -We can query all links on that proxy object with get:

    -
    const allLinks = await myPerspective.get(new LinkQuery({})) // => []
    -
    -

    In this case it should return an empty array since we just created that perspective.

    -

    So let's add something! -With the following code I'm creating an adhoc semantic statement -representing what I think about AD4M...

    -
    import { Literal } from '@perspect3vism/ad4m'
    -
    -const me = await ad4m.agent.me()
    -const source = me.did
    -const predicate = Literal.from("thinks").toUrl()
    -const target = Literal.from("AD4M will be the last social network").toUrl()
    -
    -const linkExpresion = await myPerspective.add({source, predicate, target})
    -
    -

    Links consist of 3 URIs pointing to Expressions of Languages. -For this example, we made life easy by using the agent's DID and AD4M's Literal Language.

    -

    Agent DID

    -

    For the source of our link, we got the user's DID URI by first getting -the users Agent object with ad4m.agent.me(). -That has a DID property and DID URIs are considered valid URIs in AD4M -(they can be looked-up using the Agent bootstrap language which resolves -to the same Agent object we got through ad4m.agent.me() - just even if -that agent behind the resolved DID isn't me).

    -

    Literal

    -

    The Literal Language is an AD4M Language without back-end. -It stores JavaScript literals (i.e. strings, numbers and objects) -by encoding them into the Expression URL. -So,

    -
    Literal.from("thinks").toUrl()
    -
    -

    returns literal://string:thinks - which is a valid URI - -and

    -
    Literal.from("AD4M will be the last social network").toUrl()
    -
    -

    returns literal://string:AD4M%20will%20be%20the%20last%20social%20network. -This is basically like URL parameters and let's us get around introducing Languages -before using Perspectives and Links.

    -

    We can decode the URL into a JavaScript literal like so:

    -
    const string = Literal.fromUrl('literal://string:thinks').get()
    -// string == 'thinks'
    -
    -

    LinkExpression

    -

    We have put in a Link object into myPerspective.add() -({source, predicate, target}), -but what this function returns is a LinkExpression.

    -

    Even though this Perspective is not shared (yet) but just our private, local -graph database, we might want to share it later -as Neighbourhood. -Then, all links added by some agent to their local Perspective will be shared -with the other agents using a LinkLanguage - a Language which defines Expressions -representing Links. That is LinkExpressions.

    -

    Using the generic Expression template, -LinkExpressions wrap Links with author, timestamp and signature:

    -
    {
    -    author: "did:key:zQ3shNWd4bg67ktTVg9EMnnrsRjhkH6cRNCjRRxfTaTqBniAf",
    -    timestamp: "Sun Oct 23 2022 15:31:52 GMT+0200 (Central European Summer Time)",
    -    data: {
    -        source: "did:key:zQ3shNWd4bg67ktTVg9EMnnrsRjhkH6cRNCjRRxfTaTqBniAf",
    -        predicate: "literal://string:thinks",
    -        target: "literal://string:AD4M%20will%20be%20the%20last%20social%20network",
    -    },
    -    proof: {
    -        key: "#zQ3shNWd4bg67ktTVg9EMnnrsRjhkH6cRNCjRRxfTaTqBniAf",
    -        signature: "xxxx",
    -    }
    -}
    -
    -

    2. Publish Perspective as Neighbourhood

    -

    The back-bone of a Neighbourhood is a LinkLanguage - a Language that enables the sharing -and thus synchronizing of links (see LinksAdapter). -While there can and will be many different implementations -with different trade-offs and features (like membranes etc.), -there currently is one fully implemented and Holochain based LinkLanguage with the name Perspective Diff Sync.

    -

    It is deployed on the current test network (Language Language v0.0.15, included in current network seed) under the address: -QmeBD9n9Z5yZsegxArToww5zmwtPpojXN6zXJsi7WwMUa8.

    -

    Creating our unique LinkLanguage clone through templating

    -

    But we should not just use this publicly known Language as the back-bone for our new Neighbourhood, -if we don't want to have everybody following this guide end up in the same network.

    -

    So what we want is to use this existing Language as a template and create a new copy with the same code -but different UUID and/name in order to create a fresh space for our new Neighbourhood.

    -

    What parameters can we adjust when using it as template? -Let's have a look at the Language's meta information:

    -
    const socialContextMeta = await ad4m.languages.meta(
    -    "QmeBD9n9Z5yZsegxArToww5zmwtPpojXN6zXJsi7WwMUa8"
    -) 
    -console.log(socialContextMeta)
    -
    -

    Which should yield something like this:

    -
     {
    -  name: 'Perspective Diff Sync',
    -  address: 'QmeBD9n9Z5yZsegxArToww5zmwtPpojXN6zXJsi7WwMUa8',
    -  description: 'Holochain based LinkLanguage. First full implementation of a LinkLanguage, for collaborative Neighbourhoods where every agent can add links. No membrane. Basic template for all custom Neighbourhoods in this first iteration of the Perspect3vism test network.',
    -  author: 'did:key:zQ3shkkuZLvqeFgHdgZgFMUx8VGkgVWsLA83w2oekhZxoCW2n',
    -  templated: false,
    -  templateSourceLanguageAddress: null,
    -  templateAppliedParams: null,
    -  possibleTemplateParams: [ 'uuid', 'name', 'description' ],
    -  sourceCodeLink: 'https://github.com/perspect3vism/perspective-diff-sync'
    -}
    -

    The field possibleTemplateParams tells us that we can set a UUID and override name and description. -Let's leave description but change the name. -The function languages.applyTemplateAndPublish() takes an object as JSON as second parameter like so:

    -
    const uniqueLinkLanguage = await ad4m.languages.applyTemplateAndPublish(
    -    "QmeBD9n9Z5yZsegxArToww5zmwtPpojXN6zXJsi7WwMUa8", 
    -    JSON.stringify({
    -        "uuid": "84a329-77384c-1510fb", 
    -        "name": "Perspective Diff Sync clone for demo Neighbourhood"
    -    }));
    -
    -

    This function call has done a lot for us:

    -
      -
    1. It took the source language (first parameter) and made sure we got the code, -i.e. potentially downloading it from the Language of Languages.
    2. -
    3. The provided template parameters have been applied. In the case of a Language using Holochain, it has unpacked the Holochain DNA, changed the DNA variables according to the values given as template parameters and packed the DNA again (not touching the WASM code)
    4. -
    5. The resulting Language was published with meta information showing that it was templated, providing the source hash and template parameters.
    6. -
    -

    So the new templated Language is ready to be used.

    -

    Creating the Neighbourhood

    -

    With that new LinkLanguage, actually creating the Neighbourhood is simple. -We just have to provide the id of the perspective we want to upgrade to a -Neighbourhood and the address of the LinkLanguage used for that:

    -
    const meta = new Perspective()
    -const neighbourhoodUrl = await ad4m.neighbourhood.publishFromPerspective(
    -    myPerspective.uuid,
    -    uniqueLinkLanguage.address,
    -    meta
    -)
    -console.log(neighbourhoodUrl) // => neighbourhood://Qm123456789abcdef
    -
    -

    The meta field a (static/snapshotted) Perspective that is immutably stored with -the Neighbourhood. It can hold arbitrary/semantic meta information about the -Neighbourhood but can technically stay empty, just like we did here.

    -

    3. Joining a Neighbourhood (on another node/agent)

    -

    Assume everything above happened on Alice's agent. -Alice now shares the Neighbourhood's URL with Bob. -This is what Bob does to join the Neigbourhood, access it as a (local) Perspective -and retrieve the Expression Alice created and linked there:

    -
    const joinedNeighbourhood = await ad4m.neighbourhood.joinFromUrl(neighbourhoodUrl)
    -const myPerspective = await ad4m.perspective.byUUID(joinedNeighbourhood.uuid)
    -const links = await myPerspective.get(new LinkQuery({
    -    predicate: Literal.from("thinks").toUrl()
    -}))
    -links.forEach(async link => {
    -    const who = link.data.source
    -    const what = Literal.fromUrl(link.data.target).get()
    -    console.log(who, " thinks that ", what)
    -})
    -
    -

    4. Listening to Perspective changes

    -

    Perspectives that have been turned into Neighbourhoods are like entangled particles. -Every agent still has their local copy of the Perspective, but a change from any agent -will be shared with all other agents immediately, -resulting in AD4M automatically updating the local Perspective with the changes by -the others.

    -

    Even with Perspectives that are not shared as Neighbourhood, -a different UI could have access to the same Perspective and cause mutations -on it.

    -

    Apps/UIs can simply register a listener function on that -PerspectiveProxy object:

    -
    myPerspective.addListener('link-added', (addedLink: LinkExpression) => {
    -    console.log("Got a new link:", addedLink)
    -})
    -
    -myPerspective.addListener('link-removed', (removedLink: LinkExpression) => {
    -    console.log("A link was removed:", removedLink)
    -})
    -
    - - -
    - -
    -
    - -
    - - - - - - - - - - - - - - -
    - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docs/typedoc.json b/docs/typedoc.json new file mode 100644 index 000000000..3d2295799 --- /dev/null +++ b/docs/typedoc.json @@ -0,0 +1,11 @@ +{ + "$schema": "https://typedoc.org/schema.json", + "excludeInternal": true, + "entryPoints": ["./core/src/index.ts"], + "entryPointStrategy": "resolve", + "out": "pages/jsdoc/", + "excludeExternals": true, + "plugin": ["typedoc-plugin-markdown"], + "tsconfig": "../core/tsconfig.json", + "exclude": ["**/*+(index|.spec|.e2e|.test).ts"] +} diff --git a/docs/typedoc/.nojekyll b/docs/typedoc/.nojekyll deleted file mode 100644 index e2ac6616a..000000000 --- a/docs/typedoc/.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/typedoc/README.md b/docs/typedoc/README.md deleted file mode 100644 index b68aeb172..000000000 --- a/docs/typedoc/README.md +++ /dev/null @@ -1,225 +0,0 @@ -@perspect3vism/ad4m / [Exports](modules.md) - -# AD4M -*The **A**gent-Centric **D**istributed **A**pplication **M**eta-ontology* -or just: -***A**gent-Centric **DA**pp **M**eta-ontology* -* A new **meta-ontology** for interoperable, decentralized application design -* A **spanning-layer** to enable seamless integration between Holochain DNAs, blockchains, linked-data structures/ontologies and centralized back-ends -* The basis for turning distinct, monolithic and siloed apps into a global, open and interoperable **sense-making network** ---- - -## Ok, let's go... -To build an app/UI against Ad4m, you need to make sure that an -[ad4m-executor](https://github.com/perspect3vism/ad4m-executor) is running -on the user's machine. - -The easiest way to get that is to use ad4m-cli: -```sh -npm install -g @perspect3vism/ad4m-cli -ad4m executor run & -``` - -Then use `Ad4mClient` to connect to and work with the running ad4m-executor like this: -``` -npm install --save @perspect3vism/ad4m -npm install --save-exact @apollo/client@10 -npm install --save graphql-ws -npm install --save ws -``` - -In your code: -```js -import { Ad4mClient } from '@perspect3vism/ad4m' -import { ApolloClient, InMemoryCache } from "@apollo/client/core"; -import { GraphQLWsLink } from "@apollo/client/link/subscriptions"; -import { createClient } from 'graphql-ws'; -import Websocket from "ws"; - -const wsLink = new GraphQLWsLink(createClient({ - url: `ws://localhost:4000/graphql`, - webSocketImpl: Websocket -})); - -const apolloClient = new ApolloClient({ - link: wsLink, - cache: new InMemoryCache(), - defaultOptions: { - watchQuery: { - fetchPolicy: 'network-only', - nextFetchPolicy: 'network-only' - }, - } -}); - -ad4mClient = new Ad4mClient(apolloClient) -``` - -### Unlocking / initializing the agent -You can't do much with the Ad4m runtime as long as the agent is not initialized. -So first get the agent status to see if we either need to create new DID or unlock -an existing keystore. - -```js -const { isInitialized, isUnlocked, did } = await ad4mClient.agent.status() -``` - -If `isInitialized` is `false` (and then `did` is empty) we need to create or import -a DID and keys. `generate()` will create a new DID with method `key` and lock the -keystore with the given passphrase. - -```js -const { did } = await ad4mClient.agent.generate("passphrase") -``` - -In following runs of the exectuor, `ad4mClient.agent.status()` will return a `did` -and `isInitialized` true, but if `isUnlocked` is false, we need to unlock the keystore -providing the passphrase: -```js -const { isUnlocked, did } = await ad4mClient.agent.unlock("passphrase") -``` - -### Languages -For creating an expression we need to select a language that we create an expression in: -```js -const languages = await ad4mClient.languages.all() -const noteIpfsAddress = languages.find(l => l.name === 'note-ipfs').address -``` -### Creating an Expression - -```js -const exprAddress = await ad4mClient.expression.create("A new text note", noteIpfsAddress) -``` - -### Creating a Perspective and linking that new Expression -```js -const perspectiveHandle = await ad4mClient.perspective.add("A new perspective on apps...") -await ad4mClient.perspective.addLink( - perspectiveHandle.uuid, - new Link({ - source: 'root', - target: exprAddress - }) -) -``` - -### Publishing that local Perspective by turning it into a Neighbourhood -The back-bone of a Neighbourhood is a *LinkLanguage* - a Language that enables the sharing -and thus synchronizing of links (see `LinksAdapter` in [Language.ts](src/language/Language.ts)). -While there can and should be many different implementations -with different trade-offs and features (like membranes etc.), -there currently is one fully implemented and Holochain based LinkLanguage with the name *Social Context*. - -It is deployed on the current test network (Language Language v0.0.5) under the address: -`QmZ1mkoY8nLvpxY3Mizx8UkUiwUzjxJxsqSTPPdH8sHxCQ`. - -#### Creating our unique LinkLanguage clone through templating -But we should not just use this publicly known Language as the back-bone for our new Neighbourhood, -since we need a unique clone. -So what we want is to use this existing Language as a template and create a new copy with the same code -but different UUID and/name in order to create a fresh space for our new Neighbourhood. - -What parameters can we adjust when using it as template? -Let's have a look at the Language's meta information: - -```js -const socialContextMeta = await ad4mClient.languages.meta("QmZ1mkoY8nLvpxY3Mizx8UkUiwUzjxJxsqSTPPdH8sHxCQ") - -console.log(socialContextMeta) -``` - -Which should yield something like this: -``` - { - name: 'social-context', - address: 'QmZ1mkoY8nLvpxY3Mizx8UkUiwUzjxJxsqSTPPdH8sHxCQ', - description: 'Holochain based LinkLanguage. First full implementation of a LinkLanguage, for collaborative Neighbourhoods where every agent can add links. No membrane. Basic template for all custom Neighbourhoods in this first iteration of the Perspect3vism test network.', - author: 'did:key:zQ3shkkuZLvqeFgHdgZgFMUx8VGkgVWsLA83w2oekhZxoCW2n', - templated: false, - templateSourceLanguageAddress: null, - templateAppliedParams: null, - possibleTemplateParams: [ 'uuid', 'name', 'description' ], - sourceCodeLink: 'https://github.com/juntofoundation/Social-Context' -} -``` - -The field `possibleTemplateParams` tells us that we can set a `UUID` and override `name` and `description`. -Let's leave description but change the name. -The function `languages.applyTemplateAndPublish()` takes an object as JSON as second parameter like so: - -```js -const uniqueLinkLanguage = await ad4mClient.languages.applyTemplateAndPublish("QmZ1mkoY8nLvpxY3Mizx8UkUiwUzjxJxsqSTPPdH8sHxCQ", JSON.stringify({"uuid": "84a329-77384c-1510fb", "name": "Social Context clone for demo Neighbourhood"})); -``` -And then use this new LinkLanguage in our Neighbourhood: -```js -const meta = new Perspective() -const neighbourhoodUrl = await ad4mClient.neighbourhood.publishFromPerspective( - perspectiveHandle.uuid, - uniqueLinkLanguage.address, - meta -) -console.log(neighbourhoodUrl) // => neighbourhood://Qm123456789abcdef -``` - -### Joining a Neighbourhood (on another node/agent) -Assume everything above happened on Alice's agent. -Alice now shares the Neighbourhood's URL with Bob. -This is what Bob does to join the Neigbourhood, access it as a (local) Perspective -and retrieve the Expression Alice created and linked there: -```js -const joinedNeighbourhood = await ad4mClient.neighbourhood.joinFromUrl(neighbourhoodUrl) -const links = await ad4mClient.perspective.queryLinks(joinedNeighbourhood.uuid, new LinkQuery({source: 'a'})) -links.forEach(async link => { - const address = link.data.target - const expression = await ad4mClient.expression.get(address) - const data = JSON.parse(expression.data) - console.log(data) //=> "A new text note" -}) -``` - -## Building from source -Run: -``` -npm i && npm run build -``` - ---- - -## Wait, what?! -The central claim of AD4M is that any single- but also specifically multi-user application can be bootstrapped out of a meta-ontology consisting of 3 quintessential ontological units: -* Agents -* Languages -* and Perspectives - -This is a *meta*-ontology since it doesn't make any assumptions about the specific ontologies implemented in those bootstrapped apps. But since apps bootstrapped from it share the same meta-ontology, they are mutualy interoperable. - -![](https://i.imgur.com/MXa0ozg.png) - -### Agents... -...represent humans with their devices, which is what the internet actually is. Technically **represented as Decentralized Identifiers - DIDs**. - -### Languages... -...encapsulate the actual technology used to communicate, like Holochain or IPFS, but what they provide to the high-level layers is this: **Languages define Expressions**, which are the atoms of what Agents communicate. Expressions are always created, and thus signed, by an agent. Expressions are referenced via a URL of the kind `://`. That URL and the Expression itself is the only objective part in AD4M. - -### Perspectives... -...belong to a specific agent. They represent context and association between expressions. They consist of a list of RDF/semantic web like triplets (subject-predicate-object) called `links` because all three items are just URLs pointing to expressions. Perspectives are like Solid's pods, but they are agent-centric. There is no such thing as a Perspective that does not belong to an agent. It is like the canvas on which an agent perceives and onto which they create anything. To the next layer above (either the very general UI built in Perspectivism - or any other special purpose UI), they are like a database scope. - ---- -### Bootstrapping - -Any AD4M implementation will have to include at least 3 reflexive system Languages to enable the dynamic bootstrapping of apps and interconnected sense-making networks: -* A Language of Agents, i.e. where the expressions represent agents, and which uses DIDs as the expression URLs. -* A Language of Languages, i.e. a way to talk about Languages so Languages can be created by users and shared. -* A Language of Perspectives which implies the concept of **Shared Perspectives** a.k.a. **Neighbourhoods**, i.e. a way to share an otherwise local and private Perspective with others which constitutes the basic building block of any collaboration context. - -Having these Languages means Agents can author expressions that represent Agents, Languages and Perspectives. These expressions get linked from inside Perspectives. That way we can model primitives like friends-lists (Perspective including agent expressions), app-stores (Perspective including Languages) and more. - -### How do I build an app on/with AD4M? - -Building an AD4M app actually means extending the AD4M ecosystem with the -* Languages -* and link-ontologies - -needed for the app's domain - and then creating expressions from those Languages and linking them inside Perspectives. - -The latter means creating RDF/semantic web style triplets that associate expressions in order to represent app specific semantics - not too different to how Solid style linked-data would work. diff --git a/docs/typedoc/classes/Ad4mClient.Ad4mClient.md b/docs/typedoc/classes/Ad4mClient.Ad4mClient.md deleted file mode 100644 index ac324355b..000000000 --- a/docs/typedoc/classes/Ad4mClient.Ad4mClient.md +++ /dev/null @@ -1,209 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [Ad4mClient](../modules/Ad4mClient.md) / Ad4mClient - -# Class: Ad4mClient - -[Ad4mClient](../modules/Ad4mClient.md).Ad4mClient - -Client for the Ad4m interface wrapping GraphQL queryies -for convenient use in user facing code. - -Aggregates the six sub-clients: -AgentClient, ExpressionClient, LanguageClient, -NeighbourhoodClient, PerspectiveClient and RuntimeClient -for the respective functionality. - -## Table of contents - -### Constructors - -- [constructor](Ad4mClient.Ad4mClient.md#constructor) - -### Properties - -- [#agentClient](Ad4mClient.Ad4mClient.md##agentclient) -- [#apolloClient](Ad4mClient.Ad4mClient.md##apolloclient) -- [#expressionClient](Ad4mClient.Ad4mClient.md##expressionclient) -- [#languageClient](Ad4mClient.Ad4mClient.md##languageclient) -- [#neighbourhoodClient](Ad4mClient.Ad4mClient.md##neighbourhoodclient) -- [#perspectiveClient](Ad4mClient.Ad4mClient.md##perspectiveclient) -- [#runtimeClient](Ad4mClient.Ad4mClient.md##runtimeclient) - -### Accessors - -- [agent](Ad4mClient.Ad4mClient.md#agent) -- [expression](Ad4mClient.Ad4mClient.md#expression) -- [languages](Ad4mClient.Ad4mClient.md#languages) -- [neighbourhood](Ad4mClient.Ad4mClient.md#neighbourhood) -- [perspective](Ad4mClient.Ad4mClient.md#perspective) -- [runtime](Ad4mClient.Ad4mClient.md#runtime) - -## Constructors - -### constructor - -• **new Ad4mClient**(`client`, `subscribe?`) - -#### Parameters - -| Name | Type | Default value | -| :------ | :------ | :------ | -| `client` | `ApolloClient`<`any`\> | `undefined` | -| `subscribe` | `boolean` | `true` | - -#### Defined in - -[Ad4mClient.ts:28](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Ad4mClient.ts#L28) - -## Properties - -### #agentClient - -• `Private` **#agentClient**: [`AgentClient`](agent_AgentClient.AgentClient.md) - -#### Defined in - -[Ad4mClient.ts:20](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Ad4mClient.ts#L20) - -___ - -### #apolloClient - -• `Private` **#apolloClient**: `ApolloClient`<`any`\> - -#### Defined in - -[Ad4mClient.ts:19](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Ad4mClient.ts#L19) - -___ - -### #expressionClient - -• `Private` **#expressionClient**: [`ExpressionClient`](expression_ExpressionClient.ExpressionClient.md) - -#### Defined in - -[Ad4mClient.ts:21](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Ad4mClient.ts#L21) - -___ - -### #languageClient - -• `Private` **#languageClient**: [`LanguageClient`](language_LanguageClient.LanguageClient.md) - -#### Defined in - -[Ad4mClient.ts:22](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Ad4mClient.ts#L22) - -___ - -### #neighbourhoodClient - -• `Private` **#neighbourhoodClient**: [`NeighbourhoodClient`](neighbourhood_NeighbourhoodClient.NeighbourhoodClient.md) - -#### Defined in - -[Ad4mClient.ts:23](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Ad4mClient.ts#L23) - -___ - -### #perspectiveClient - -• `Private` **#perspectiveClient**: [`PerspectiveClient`](perspectives_PerspectiveClient.PerspectiveClient.md) - -#### Defined in - -[Ad4mClient.ts:24](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Ad4mClient.ts#L24) - -___ - -### #runtimeClient - -• `Private` **#runtimeClient**: [`RuntimeClient`](runtime_RuntimeClient.RuntimeClient.md) - -#### Defined in - -[Ad4mClient.ts:25](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Ad4mClient.ts#L25) - -## Accessors - -### agent - -• `get` **agent**(): [`AgentClient`](agent_AgentClient.AgentClient.md) - -#### Returns - -[`AgentClient`](agent_AgentClient.AgentClient.md) - -#### Defined in - -[Ad4mClient.ts:40](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Ad4mClient.ts#L40) - -___ - -### expression - -• `get` **expression**(): [`ExpressionClient`](expression_ExpressionClient.ExpressionClient.md) - -#### Returns - -[`ExpressionClient`](expression_ExpressionClient.ExpressionClient.md) - -#### Defined in - -[Ad4mClient.ts:44](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Ad4mClient.ts#L44) - -___ - -### languages - -• `get` **languages**(): [`LanguageClient`](language_LanguageClient.LanguageClient.md) - -#### Returns - -[`LanguageClient`](language_LanguageClient.LanguageClient.md) - -#### Defined in - -[Ad4mClient.ts:48](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Ad4mClient.ts#L48) - -___ - -### neighbourhood - -• `get` **neighbourhood**(): [`NeighbourhoodClient`](neighbourhood_NeighbourhoodClient.NeighbourhoodClient.md) - -#### Returns - -[`NeighbourhoodClient`](neighbourhood_NeighbourhoodClient.NeighbourhoodClient.md) - -#### Defined in - -[Ad4mClient.ts:52](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Ad4mClient.ts#L52) - -___ - -### perspective - -• `get` **perspective**(): [`PerspectiveClient`](perspectives_PerspectiveClient.PerspectiveClient.md) - -#### Returns - -[`PerspectiveClient`](perspectives_PerspectiveClient.PerspectiveClient.md) - -#### Defined in - -[Ad4mClient.ts:56](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Ad4mClient.ts#L56) - -___ - -### runtime - -• `get` **runtime**(): [`RuntimeClient`](runtime_RuntimeClient.RuntimeClient.md) - -#### Returns - -[`RuntimeClient`](runtime_RuntimeClient.RuntimeClient.md) - -#### Defined in - -[Ad4mClient.ts:60](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Ad4mClient.ts#L60) diff --git a/docs/typedoc/classes/Literal.Literal.md b/docs/typedoc/classes/Literal.Literal.md deleted file mode 100644 index e42655d92..000000000 --- a/docs/typedoc/classes/Literal.Literal.md +++ /dev/null @@ -1,117 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [Literal](../modules/Literal.md) / Literal - -# Class: Literal - -[Literal](../modules/Literal.md).Literal - -## Table of contents - -### Constructors - -- [constructor](Literal.Literal.md#constructor) - -### Properties - -- [#literal](Literal.Literal.md##literal) -- [#url](Literal.Literal.md##url) - -### Methods - -- [get](Literal.Literal.md#get) -- [toUrl](Literal.Literal.md#tourl) -- [from](Literal.Literal.md#from) -- [fromUrl](Literal.Literal.md#fromurl) - -## Constructors - -### constructor - -• **new Literal**() - -## Properties - -### #literal - -• `Private` `Optional` **#literal**: `any` - -#### Defined in - -[Literal.ts:10](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Literal.ts#L10) - -___ - -### #url - -• `Private` `Optional` **#url**: `string` - -#### Defined in - -[Literal.ts:11](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Literal.ts#L11) - -## Methods - -### get - -▸ **get**(): `any` - -#### Returns - -`any` - -#### Defined in - -[Literal.ts:49](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Literal.ts#L49) - -___ - -### toUrl - -▸ **toUrl**(): `string` - -#### Returns - -`string` - -#### Defined in - -[Literal.ts:27](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Literal.ts#L27) - -___ - -### from - -▸ `Static` **from**(`literal`): [`Literal`](Literal.Literal.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `literal` | `any` | - -#### Returns - -[`Literal`](Literal.Literal.md) - -#### Defined in - -[Literal.ts:21](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Literal.ts#L21) - -___ - -### fromUrl - -▸ `Static` **fromUrl**(`url`): [`Literal`](Literal.Literal.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `url` | `string` | - -#### Returns - -[`Literal`](Literal.Literal.md) - -#### Defined in - -[Literal.ts:13](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Literal.ts#L13) diff --git a/docs/typedoc/classes/SmartLiteral.SmartLiteral.md b/docs/typedoc/classes/SmartLiteral.SmartLiteral.md deleted file mode 100644 index 63ef27f82..000000000 --- a/docs/typedoc/classes/SmartLiteral.SmartLiteral.md +++ /dev/null @@ -1,175 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [SmartLiteral](../modules/SmartLiteral.md) / SmartLiteral - -# Class: SmartLiteral - -[SmartLiteral](../modules/SmartLiteral.md).SmartLiteral - -## Table of contents - -### Constructors - -- [constructor](SmartLiteral.SmartLiteral.md#constructor) - -### Properties - -- [#base](SmartLiteral.SmartLiteral.md##base) -- [#perspective](SmartLiteral.SmartLiteral.md##perspective) - -### Accessors - -- [base](SmartLiteral.SmartLiteral.md#base) - -### Methods - -- [get](SmartLiteral.SmartLiteral.md#get) -- [set](SmartLiteral.SmartLiteral.md#set) -- [create](SmartLiteral.SmartLiteral.md#create) -- [getAllSmartLiterals](SmartLiteral.SmartLiteral.md#getallsmartliterals) -- [isSmartLiteralBase](SmartLiteral.SmartLiteral.md#issmartliteralbase) - -## Constructors - -### constructor - -• **new SmartLiteral**(`perspective`, `base`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `perspective` | [`PerspectiveProxy`](perspectives_PerspectiveProxy.PerspectiveProxy.md) | -| `base` | `string` | - -#### Defined in - -[SmartLiteral.ts:23](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/SmartLiteral.ts#L23) - -## Properties - -### #base - -• `Private` **#base**: `string` - -#### Defined in - -[SmartLiteral.ts:21](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/SmartLiteral.ts#L21) - -___ - -### #perspective - -• `Private` **#perspective**: [`PerspectiveProxy`](perspectives_PerspectiveProxy.PerspectiveProxy.md) - -#### Defined in - -[SmartLiteral.ts:20](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/SmartLiteral.ts#L20) - -## Accessors - -### base - -• `get` **base**(): `string` - -#### Returns - -`string` - -#### Defined in - -[SmartLiteral.ts:28](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/SmartLiteral.ts#L28) - -## Methods - -### get - -▸ **get**(): `Promise`<`any`\> - -#### Returns - -`Promise`<`any`\> - -#### Defined in - -[SmartLiteral.ts:54](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/SmartLiteral.ts#L54) - -___ - -### set - -▸ **set**(`content`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `content` | `any` | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[SmartLiteral.ts:67](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/SmartLiteral.ts#L67) - -___ - -### create - -▸ `Static` **create**(`perspective`, `literal`): `Promise`<[`SmartLiteral`](SmartLiteral.SmartLiteral.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `perspective` | [`PerspectiveProxy`](perspectives_PerspectiveProxy.PerspectiveProxy.md) | -| `literal` | `any` | - -#### Returns - -`Promise`<[`SmartLiteral`](SmartLiteral.SmartLiteral.md)\> - -#### Defined in - -[SmartLiteral.ts:32](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/SmartLiteral.ts#L32) - -___ - -### getAllSmartLiterals - -▸ `Static` **getAllSmartLiterals**(`perspective`): `Promise`<[`SmartLiteral`](SmartLiteral.SmartLiteral.md)[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `perspective` | [`PerspectiveProxy`](perspectives_PerspectiveProxy.PerspectiveProxy.md) | - -#### Returns - -`Promise`<[`SmartLiteral`](SmartLiteral.SmartLiteral.md)[]\> - -#### Defined in - -[SmartLiteral.ts:47](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/SmartLiteral.ts#L47) - -___ - -### isSmartLiteralBase - -▸ `Static` **isSmartLiteralBase**(`perspective`, `base`): `Promise`<`boolean`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `perspective` | [`PerspectiveProxy`](perspectives_PerspectiveProxy.PerspectiveProxy.md) | -| `base` | `string` | - -#### Returns - -`Promise`<`boolean`\> - -#### Defined in - -[SmartLiteral.ts:39](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/SmartLiteral.ts#L39) diff --git a/docs/typedoc/classes/agent_Agent.Agent.md b/docs/typedoc/classes/agent_Agent.Agent.md deleted file mode 100644 index b61b8e6ba..000000000 --- a/docs/typedoc/classes/agent_Agent.Agent.md +++ /dev/null @@ -1,91 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [agent/Agent](../modules/agent_Agent.md) / Agent - -# Class: Agent - -[agent/Agent](../modules/agent_Agent.md).Agent - -AD4M's representation of an Agent - -AD4M Agents are build around DIDs, which are used to identify and authenticate the Agent. -Conceptually, an Agent is regarded as something that can speak and that can listen. - -Agents speak by creating Expressions in AD4M Languages which are signed by the Agent's DID key, -And they also speak (broadcast) by putting semantic statements into their public "Agent Perspective". -They listen (can receive messages) through their "direct message Language". - -These three aspects are represented by the three fields of this class. - -This class is used as format for the Expressions in the Agent language. -Since AD4M treats DID URIs as addresses for the Agent Language, -DIDs are resolved to Expressions that are objects of this class. -Thus, this is how agents see (other) agents. - -## Table of contents - -### Constructors - -- [constructor](agent_Agent.Agent.md#constructor) - -### Properties - -- [did](agent_Agent.Agent.md#did) -- [directMessageLanguage](agent_Agent.Agent.md#directmessagelanguage) -- [perspective](agent_Agent.Agent.md#perspective) - -## Constructors - -### constructor - -• **new Agent**(`did`, `perspective?`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `did` | `string` | -| `perspective?` | [`Perspective`](perspectives_Perspective.Perspective.md) | - -#### Defined in - -[agent/Agent.ts:42](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L42) - -## Properties - -### did - -• **did**: `string` - -The DID of the Agent -All epxressions authored by them are signed with the keys mentioned -in the DID document behind this DID URI. - -#### Defined in - -[agent/Agent.ts:28](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L28) - -___ - -### directMessageLanguage - -• `Optional` **directMessageLanguage**: `string` - -Address of the Language by which the Agent will receive DMs - -#### Defined in - -[agent/Agent.ts:40](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L40) - -___ - -### perspective - -• `Optional` **perspective**: [`Perspective`](perspectives_Perspective.Perspective.md) - -The Perspective that holds the public-facing semantics/statements of the Agent -Holds and shares a Perspective that links all information -this agent wants to offer as public-facing semantics. -This should be used for any kind of user profile information. - -#### Defined in - -[agent/Agent.ts:36](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L36) diff --git a/docs/typedoc/classes/agent_Agent.AgentExpression.md b/docs/typedoc/classes/agent_Agent.AgentExpression.md deleted file mode 100644 index 47715ff72..000000000 --- a/docs/typedoc/classes/agent_Agent.AgentExpression.md +++ /dev/null @@ -1,27 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [agent/Agent](../modules/agent_Agent.md) / AgentExpression - -# Class: AgentExpression - -[agent/Agent](../modules/agent_Agent.md).AgentExpression - -## Hierarchy - -- `any` - - ↳ **`AgentExpression`** - -## Table of contents - -### Constructors - -- [constructor](agent_Agent.AgentExpression.md#constructor) - -## Constructors - -### constructor - -• **new AgentExpression**() - -#### Inherited from - -ExpressionGeneric(Agent).constructor diff --git a/docs/typedoc/classes/agent_Agent.AgentSignature.md b/docs/typedoc/classes/agent_Agent.AgentSignature.md deleted file mode 100644 index 3e3460f5f..000000000 --- a/docs/typedoc/classes/agent_Agent.AgentSignature.md +++ /dev/null @@ -1,53 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [agent/Agent](../modules/agent_Agent.md) / AgentSignature - -# Class: AgentSignature - -[agent/Agent](../modules/agent_Agent.md).AgentSignature - -## Table of contents - -### Constructors - -- [constructor](agent_Agent.AgentSignature.md#constructor) - -### Properties - -- [publicKey](agent_Agent.AgentSignature.md#publickey) -- [signature](agent_Agent.AgentSignature.md#signature) - -## Constructors - -### constructor - -• **new AgentSignature**(`signature`, `publicKey`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `signature` | `string` | -| `publicKey` | `string` | - -#### Defined in - -[agent/Agent.ts:123](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L123) - -## Properties - -### publicKey - -• **publicKey**: `string` - -#### Defined in - -[agent/Agent.ts:121](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L121) - -___ - -### signature - -• **signature**: `string` - -#### Defined in - -[agent/Agent.ts:118](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L118) diff --git a/docs/typedoc/classes/agent_Agent.Apps.md b/docs/typedoc/classes/agent_Agent.Apps.md deleted file mode 100644 index 4530bb269..000000000 --- a/docs/typedoc/classes/agent_Agent.Apps.md +++ /dev/null @@ -1,77 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [agent/Agent](../modules/agent_Agent.md) / Apps - -# Class: Apps - -[agent/Agent](../modules/agent_Agent.md).Apps - -## Table of contents - -### Constructors - -- [constructor](agent_Agent.Apps.md#constructor) - -### Properties - -- [auth](agent_Agent.Apps.md#auth) -- [requestId](agent_Agent.Apps.md#requestid) -- [revoked](agent_Agent.Apps.md#revoked) -- [token](agent_Agent.Apps.md#token) - -## Constructors - -### constructor - -• **new Apps**(`requestId`, `auth`, `token`, `revoked?`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `requestId` | `string` | -| `auth` | [`AuthInfo`](agent_Agent.AuthInfo.md) | -| `token` | `string` | -| `revoked?` | `boolean` | - -#### Defined in - -[agent/Agent.ts:194](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L194) - -## Properties - -### auth - -• **auth**: [`AuthInfo`](agent_Agent.AuthInfo.md) - -#### Defined in - -[agent/Agent.ts:192](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L192) - -___ - -### requestId - -• **requestId**: `string` - -#### Defined in - -[agent/Agent.ts:183](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L183) - -___ - -### revoked - -• `Optional` **revoked**: `boolean` - -#### Defined in - -[agent/Agent.ts:189](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L189) - -___ - -### token - -• **token**: `string` - -#### Defined in - -[agent/Agent.ts:186](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L186) diff --git a/docs/typedoc/classes/agent_Agent.AuthInfo.md b/docs/typedoc/classes/agent_Agent.AuthInfo.md deleted file mode 100644 index b9805b08a..000000000 --- a/docs/typedoc/classes/agent_Agent.AuthInfo.md +++ /dev/null @@ -1,77 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [agent/Agent](../modules/agent_Agent.md) / AuthInfo - -# Class: AuthInfo - -[agent/Agent](../modules/agent_Agent.md).AuthInfo - -## Table of contents - -### Constructors - -- [constructor](agent_Agent.AuthInfo.md#constructor) - -### Properties - -- [appDesc](agent_Agent.AuthInfo.md#appdesc) -- [appName](agent_Agent.AuthInfo.md#appname) -- [appUrl](agent_Agent.AuthInfo.md#appurl) -- [capabilities](agent_Agent.AuthInfo.md#capabilities) - -## Constructors - -### constructor - -• **new AuthInfo**(`appName`, `appDesc`, `appUrl`, `capabilities`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `appName` | `string` | -| `appDesc` | `string` | -| `appUrl` | `string` | -| `capabilities` | [`Capability`](agent_Agent.Capability.md)[] | - -#### Defined in - -[agent/Agent.ts:172](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L172) - -## Properties - -### appDesc - -• **appDesc**: `string` - -#### Defined in - -[agent/Agent.ts:164](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L164) - -___ - -### appName - -• **appName**: `string` - -#### Defined in - -[agent/Agent.ts:161](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L161) - -___ - -### appUrl - -• **appUrl**: `string` - -#### Defined in - -[agent/Agent.ts:167](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L167) - -___ - -### capabilities - -• **capabilities**: [`Capability`](agent_Agent.Capability.md)[] - -#### Defined in - -[agent/Agent.ts:170](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L170) diff --git a/docs/typedoc/classes/agent_Agent.Capability.md b/docs/typedoc/classes/agent_Agent.Capability.md deleted file mode 100644 index 4bada35c2..000000000 --- a/docs/typedoc/classes/agent_Agent.Capability.md +++ /dev/null @@ -1,53 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [agent/Agent](../modules/agent_Agent.md) / Capability - -# Class: Capability - -[agent/Agent](../modules/agent_Agent.md).Capability - -## Table of contents - -### Constructors - -- [constructor](agent_Agent.Capability.md#constructor) - -### Properties - -- [can](agent_Agent.Capability.md#can) -- [with](agent_Agent.Capability.md#with) - -## Constructors - -### constructor - -• **new Capability**(`withF`, `can`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `withF` | [`Resource`](agent_Agent.Resource.md) | -| `can` | `string`[] | - -#### Defined in - -[agent/Agent.ts:151](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L151) - -## Properties - -### can - -• **can**: `string`[] - -#### Defined in - -[agent/Agent.ts:149](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L149) - -___ - -### with - -• **with**: [`Resource`](agent_Agent.Resource.md) - -#### Defined in - -[agent/Agent.ts:146](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L146) diff --git a/docs/typedoc/classes/agent_Agent.EntanglementProof.md b/docs/typedoc/classes/agent_Agent.EntanglementProof.md deleted file mode 100644 index e7c8557e0..000000000 --- a/docs/typedoc/classes/agent_Agent.EntanglementProof.md +++ /dev/null @@ -1,101 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [agent/Agent](../modules/agent_Agent.md) / EntanglementProof - -# Class: EntanglementProof - -[agent/Agent](../modules/agent_Agent.md).EntanglementProof - -## Table of contents - -### Constructors - -- [constructor](agent_Agent.EntanglementProof.md#constructor) - -### Properties - -- [deviceKey](agent_Agent.EntanglementProof.md#devicekey) -- [deviceKeySignedByDid](agent_Agent.EntanglementProof.md#devicekeysignedbydid) -- [deviceKeyType](agent_Agent.EntanglementProof.md#devicekeytype) -- [did](agent_Agent.EntanglementProof.md#did) -- [didSignedByDeviceKey](agent_Agent.EntanglementProof.md#didsignedbydevicekey) -- [didSigningKeyId](agent_Agent.EntanglementProof.md#didsigningkeyid) - -## Constructors - -### constructor - -• **new EntanglementProof**(`did`, `didSigningKeyId`, `deviceKeyType`, `deviceKey`, `deviceKeySignedByDid`, `didSignedByDeviceKey?`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `did` | `string` | -| `didSigningKeyId` | `string` | -| `deviceKeyType` | `string` | -| `deviceKey` | `string` | -| `deviceKeySignedByDid` | `string` | -| `didSignedByDeviceKey?` | `string` | - -#### Defined in - -[agent/Agent.ts:75](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L75) - -## Properties - -### deviceKey - -• **deviceKey**: `string` - -#### Defined in - -[agent/Agent.ts:67](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L67) - -___ - -### deviceKeySignedByDid - -• **deviceKeySignedByDid**: `string` - -#### Defined in - -[agent/Agent.ts:70](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L70) - -___ - -### deviceKeyType - -• **deviceKeyType**: `string` - -#### Defined in - -[agent/Agent.ts:64](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L64) - -___ - -### did - -• **did**: `string` - -#### Defined in - -[agent/Agent.ts:58](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L58) - -___ - -### didSignedByDeviceKey - -• `Optional` **didSignedByDeviceKey**: `string` - -#### Defined in - -[agent/Agent.ts:73](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L73) - -___ - -### didSigningKeyId - -• **didSigningKeyId**: `string` - -#### Defined in - -[agent/Agent.ts:61](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L61) diff --git a/docs/typedoc/classes/agent_Agent.EntanglementProofInput.md b/docs/typedoc/classes/agent_Agent.EntanglementProofInput.md deleted file mode 100644 index aba32b202..000000000 --- a/docs/typedoc/classes/agent_Agent.EntanglementProofInput.md +++ /dev/null @@ -1,101 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [agent/Agent](../modules/agent_Agent.md) / EntanglementProofInput - -# Class: EntanglementProofInput - -[agent/Agent](../modules/agent_Agent.md).EntanglementProofInput - -## Table of contents - -### Constructors - -- [constructor](agent_Agent.EntanglementProofInput.md#constructor) - -### Properties - -- [deviceKey](agent_Agent.EntanglementProofInput.md#devicekey) -- [deviceKeySignedByDid](agent_Agent.EntanglementProofInput.md#devicekeysignedbydid) -- [deviceKeyType](agent_Agent.EntanglementProofInput.md#devicekeytype) -- [did](agent_Agent.EntanglementProofInput.md#did) -- [didSignedByDeviceKey](agent_Agent.EntanglementProofInput.md#didsignedbydevicekey) -- [didSigningKeyId](agent_Agent.EntanglementProofInput.md#didsigningkeyid) - -## Constructors - -### constructor - -• **new EntanglementProofInput**(`did`, `didSigningKeyId`, `deviceKeyType`, `deviceKey`, `deviceKeySignedByDid`, `didSignedByDeviceKey`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `did` | `string` | -| `didSigningKeyId` | `string` | -| `deviceKeyType` | `string` | -| `deviceKey` | `string` | -| `deviceKeySignedByDid` | `string` | -| `didSignedByDeviceKey` | `string` | - -#### Defined in - -[agent/Agent.ts:105](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L105) - -## Properties - -### deviceKey - -• **deviceKey**: `string` - -#### Defined in - -[agent/Agent.ts:97](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L97) - -___ - -### deviceKeySignedByDid - -• **deviceKeySignedByDid**: `string` - -#### Defined in - -[agent/Agent.ts:100](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L100) - -___ - -### deviceKeyType - -• **deviceKeyType**: `string` - -#### Defined in - -[agent/Agent.ts:94](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L94) - -___ - -### did - -• **did**: `string` - -#### Defined in - -[agent/Agent.ts:88](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L88) - -___ - -### didSignedByDeviceKey - -• **didSignedByDeviceKey**: `string` - -#### Defined in - -[agent/Agent.ts:103](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L103) - -___ - -### didSigningKeyId - -• **didSigningKeyId**: `string` - -#### Defined in - -[agent/Agent.ts:91](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L91) diff --git a/docs/typedoc/classes/agent_Agent.Resource.md b/docs/typedoc/classes/agent_Agent.Resource.md deleted file mode 100644 index 042e1b39b..000000000 --- a/docs/typedoc/classes/agent_Agent.Resource.md +++ /dev/null @@ -1,53 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [agent/Agent](../modules/agent_Agent.md) / Resource - -# Class: Resource - -[agent/Agent](../modules/agent_Agent.md).Resource - -## Table of contents - -### Constructors - -- [constructor](agent_Agent.Resource.md#constructor) - -### Properties - -- [domain](agent_Agent.Resource.md#domain) -- [pointers](agent_Agent.Resource.md#pointers) - -## Constructors - -### constructor - -• **new Resource**(`domain`, `pointers`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `domain` | `string` | -| `pointers` | `string`[] | - -#### Defined in - -[agent/Agent.ts:137](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L137) - -## Properties - -### domain - -• **domain**: `string` - -#### Defined in - -[agent/Agent.ts:132](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L132) - -___ - -### pointers - -• **pointers**: `string`[] - -#### Defined in - -[agent/Agent.ts:135](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/Agent.ts#L135) diff --git a/docs/typedoc/classes/agent_AgentClient.AgentClient.md b/docs/typedoc/classes/agent_AgentClient.AgentClient.md deleted file mode 100644 index b0a1d3dcd..000000000 --- a/docs/typedoc/classes/agent_AgentClient.AgentClient.md +++ /dev/null @@ -1,585 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [agent/AgentClient](../modules/agent_AgentClient.md) / AgentClient - -# Class: AgentClient - -[agent/AgentClient](../modules/agent_AgentClient.md).AgentClient - -Provides access to all functions regarding the local agent, -such as generating, locking, unlocking, importing the DID keystore, -as well as updating the publicly shared Agent expression. - -## Table of contents - -### Constructors - -- [constructor](agent_AgentClient.AgentClient.md#constructor) - -### Properties - -- [#agentStatusChangedCallbacks](agent_AgentClient.AgentClient.md##agentstatuschangedcallbacks) -- [#apolloClient](agent_AgentClient.AgentClient.md##apolloclient) -- [#updatedCallbacks](agent_AgentClient.AgentClient.md##updatedcallbacks) - -### Methods - -- [addAgentStatusChangedListener](agent_AgentClient.AgentClient.md#addagentstatuschangedlistener) -- [addEntanglementProofs](agent_AgentClient.AgentClient.md#addentanglementproofs) -- [addUpdatedListener](agent_AgentClient.AgentClient.md#addupdatedlistener) -- [byDID](agent_AgentClient.AgentClient.md#bydid) -- [deleteEntanglementProofs](agent_AgentClient.AgentClient.md#deleteentanglementproofs) -- [entanglementProofPreFlight](agent_AgentClient.AgentClient.md#entanglementproofpreflight) -- [generate](agent_AgentClient.AgentClient.md#generate) -- [generateJwt](agent_AgentClient.AgentClient.md#generatejwt) -- [getApps](agent_AgentClient.AgentClient.md#getapps) -- [getEntanglementProofs](agent_AgentClient.AgentClient.md#getentanglementproofs) -- [import](agent_AgentClient.AgentClient.md#import) -- [isLocked](agent_AgentClient.AgentClient.md#islocked) -- [lock](agent_AgentClient.AgentClient.md#lock) -- [me](agent_AgentClient.AgentClient.md#me) -- [mutatePublicPerspective](agent_AgentClient.AgentClient.md#mutatepublicperspective) -- [permitCapability](agent_AgentClient.AgentClient.md#permitcapability) -- [removeApp](agent_AgentClient.AgentClient.md#removeapp) -- [requestCapability](agent_AgentClient.AgentClient.md#requestcapability) -- [revokeToken](agent_AgentClient.AgentClient.md#revoketoken) -- [signMessage](agent_AgentClient.AgentClient.md#signmessage) -- [status](agent_AgentClient.AgentClient.md#status) -- [subscribeAgentStatusChanged](agent_AgentClient.AgentClient.md#subscribeagentstatuschanged) -- [subscribeAgentUpdated](agent_AgentClient.AgentClient.md#subscribeagentupdated) -- [unlock](agent_AgentClient.AgentClient.md#unlock) -- [updateDirectMessageLanguage](agent_AgentClient.AgentClient.md#updatedirectmessagelanguage) -- [updatePublicPerspective](agent_AgentClient.AgentClient.md#updatepublicperspective) - -## Constructors - -### constructor - -• **new AgentClient**(`client`, `subscribe?`) - -#### Parameters - -| Name | Type | Default value | -| :------ | :------ | :------ | -| `client` | `ApolloClient`<`any`\> | `undefined` | -| `subscribe` | `boolean` | `true` | - -#### Defined in - -[agent/AgentClient.ts:84](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L84) - -## Properties - -### #agentStatusChangedCallbacks - -• `Private` **#agentStatusChangedCallbacks**: [`AgentStatusChangedCallback`](../modules/agent_AgentClient.md#agentstatuschangedcallback)[] - -#### Defined in - -[agent/AgentClient.ts:82](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L82) - -___ - -### #apolloClient - -• `Private` **#apolloClient**: `ApolloClient`<`any`\> - -#### Defined in - -[agent/AgentClient.ts:80](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L80) - -___ - -### #updatedCallbacks - -• `Private` **#updatedCallbacks**: [`AgentUpdatedCallback`](../modules/agent_AgentClient.md#agentupdatedcallback)[] - -#### Defined in - -[agent/AgentClient.ts:81](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L81) - -## Methods - -### addAgentStatusChangedListener - -▸ **addAgentStatusChangedListener**(`listener`): `void` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `listener` | `any` | - -#### Returns - -`void` - -#### Defined in - -[agent/AgentClient.ts:324](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L324) - -___ - -### addEntanglementProofs - -▸ **addEntanglementProofs**(`proofs`): `Promise`<[`EntanglementProof`](agent_Agent.EntanglementProof.md)[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `proofs` | [`EntanglementProofInput`](agent_Agent.EntanglementProofInput.md)[] | - -#### Returns - -`Promise`<[`EntanglementProof`](agent_Agent.EntanglementProof.md)[]\> - -#### Defined in - -[agent/AgentClient.ts:257](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L257) - -___ - -### addUpdatedListener - -▸ **addUpdatedListener**(`listener`): `void` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `listener` | `any` | - -#### Returns - -`void` - -#### Defined in - -[agent/AgentClient.ts:304](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L304) - -___ - -### byDID - -▸ **byDID**(`did`): `Promise`<[`Agent`](agent_Agent.Agent.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `did` | `string` | - -#### Returns - -`Promise`<[`Agent`](agent_Agent.Agent.md)\> - -#### Defined in - -[agent/AgentClient.ts:178](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L178) - -___ - -### deleteEntanglementProofs - -▸ **deleteEntanglementProofs**(`proofs`): `Promise`<[`EntanglementProof`](agent_Agent.EntanglementProof.md)[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `proofs` | [`EntanglementProofInput`](agent_Agent.EntanglementProofInput.md)[] | - -#### Returns - -`Promise`<[`EntanglementProof`](agent_Agent.EntanglementProof.md)[]\> - -#### Defined in - -[agent/AgentClient.ts:269](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L269) - -___ - -### entanglementProofPreFlight - -▸ **entanglementProofPreFlight**(`deviceKey`, `deviceKeyType`): `Promise`<[`EntanglementProof`](agent_Agent.EntanglementProof.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `deviceKey` | `string` | -| `deviceKeyType` | `string` | - -#### Returns - -`Promise`<[`EntanglementProof`](agent_Agent.EntanglementProof.md)\> - -#### Defined in - -[agent/AgentClient.ts:292](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L292) - -___ - -### generate - -▸ **generate**(`passphrase`): `Promise`<[`AgentStatus`](agent_AgentStatus.AgentStatus.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `passphrase` | `string` | - -#### Returns - -`Promise`<[`AgentStatus`](agent_AgentStatus.AgentStatus.md)\> - -#### Defined in - -[agent/AgentClient.ts:121](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L121) - -___ - -### generateJwt - -▸ **generateJwt**(`requestId`, `rand`): `Promise`<`string`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `requestId` | `string` | -| `rand` | `string` | - -#### Returns - -`Promise`<`string`\> - -#### Defined in - -[agent/AgentClient.ts:364](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L364) - -___ - -### getApps - -▸ **getApps**(): `Promise`<[`Apps`](agent_Agent.Apps.md)[]\> - -#### Returns - -`Promise`<[`Apps`](agent_Agent.Apps.md)[]\> - -#### Defined in - -[agent/AgentClient.ts:374](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L374) - -___ - -### getEntanglementProofs - -▸ **getEntanglementProofs**(): `Promise`<`string`[]\> - -#### Returns - -`Promise`<`string`[]\> - -#### Defined in - -[agent/AgentClient.ts:281](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L281) - -___ - -### import - -▸ **import**(`args`): `Promise`<[`AgentStatus`](agent_AgentStatus.AgentStatus.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `args` | [`InitializeArgs`](../interfaces/agent_AgentClient.InitializeArgs.md) | - -#### Returns - -`Promise`<[`AgentStatus`](agent_AgentStatus.AgentStatus.md)\> - -#### Defined in - -[agent/AgentClient.ts:135](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L135) - -___ - -### isLocked - -▸ **isLocked**(): `Promise`<`boolean`\> - -#### Returns - -`Promise`<`boolean`\> - -#### Defined in - -[agent/AgentClient.ts:410](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L410) - -___ - -### lock - -▸ **lock**(`passphrase`): `Promise`<[`AgentStatus`](agent_AgentStatus.AgentStatus.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `passphrase` | `string` | - -#### Returns - -`Promise`<[`AgentStatus`](agent_AgentStatus.AgentStatus.md)\> - -#### Defined in - -[agent/AgentClient.ts:153](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L153) - -___ - -### me - -▸ **me**(): `Promise`<[`Agent`](agent_Agent.Agent.md)\> - -Returns the Agent expression of the local agent as it is shared -publicly via the AgentLanguage. - -I.e. this is the users profile. - -#### Returns - -`Promise`<[`Agent`](agent_Agent.Agent.md)\> - -#### Defined in - -[agent/AgentClient.ts:101](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L101) - -___ - -### mutatePublicPerspective - -▸ **mutatePublicPerspective**(`mutations`): `Promise`<[`Agent`](agent_Agent.Agent.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `mutations` | [`LinkMutations`](links_Links.LinkMutations.md) | - -#### Returns - -`Promise`<[`Agent`](agent_Agent.Agent.md)\> - -#### Defined in - -[agent/AgentClient.ts:213](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L213) - -___ - -### permitCapability - -▸ **permitCapability**(`auth`): `Promise`<`string`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `auth` | `string` | - -#### Returns - -`Promise`<`string`\> - -#### Defined in - -[agent/AgentClient.ts:354](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L354) - -___ - -### removeApp - -▸ **removeApp**(`requestId`): `Promise`<[`Apps`](agent_Agent.Apps.md)[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `requestId` | `string` | - -#### Returns - -`Promise`<[`Apps`](agent_Agent.Apps.md)[]\> - -#### Defined in - -[agent/AgentClient.ts:386](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L386) - -___ - -### requestCapability - -▸ **requestCapability**(`appName`, `appDesc`, `appUrl`, `capabilities`): `Promise`<`string`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `appName` | `string` | -| `appDesc` | `string` | -| `appUrl` | `string` | -| `capabilities` | `string` | - -#### Returns - -`Promise`<`string`\> - -#### Defined in - -[agent/AgentClient.ts:344](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L344) - -___ - -### revokeToken - -▸ **revokeToken**(`requestId`): `Promise`<[`Apps`](agent_Agent.Apps.md)[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `requestId` | `string` | - -#### Returns - -`Promise`<[`Apps`](agent_Agent.Apps.md)[]\> - -#### Defined in - -[agent/AgentClient.ts:398](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L398) - -___ - -### signMessage - -▸ **signMessage**(`message`): `Promise`<`string`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `message` | `string` | - -#### Returns - -`Promise`<`string`\> - -#### Defined in - -[agent/AgentClient.ts:419](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L419) - -___ - -### status - -▸ **status**(): `Promise`<[`AgentStatus`](agent_AgentStatus.AgentStatus.md)\> - -#### Returns - -`Promise`<[`AgentStatus`](agent_AgentStatus.AgentStatus.md)\> - -#### Defined in - -[agent/AgentClient.ts:110](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L110) - -___ - -### subscribeAgentStatusChanged - -▸ **subscribeAgentStatusChanged**(): `void` - -#### Returns - -`void` - -#### Defined in - -[agent/AgentClient.ts:328](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L328) - -___ - -### subscribeAgentUpdated - -▸ **subscribeAgentUpdated**(): `void` - -#### Returns - -`void` - -#### Defined in - -[agent/AgentClient.ts:308](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L308) - -___ - -### unlock - -▸ **unlock**(`passphrase`): `Promise`<[`AgentStatus`](agent_AgentStatus.AgentStatus.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `passphrase` | `string` | - -#### Returns - -`Promise`<[`AgentStatus`](agent_AgentStatus.AgentStatus.md)\> - -#### Defined in - -[agent/AgentClient.ts:165](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L165) - -___ - -### updateDirectMessageLanguage - -▸ **updateDirectMessageLanguage**(`directMessageLanguage`): `Promise`<[`Agent`](agent_Agent.Agent.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `directMessageLanguage` | `string` | - -#### Returns - -`Promise`<[`Agent`](agent_Agent.Agent.md)\> - -#### Defined in - -[agent/AgentClient.ts:242](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L242) - -___ - -### updatePublicPerspective - -▸ **updatePublicPerspective**(`perspective`): `Promise`<[`Agent`](agent_Agent.Agent.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `perspective` | [`PerspectiveInput`](perspectives_Perspective.PerspectiveInput.md) | - -#### Returns - -`Promise`<[`Agent`](agent_Agent.Agent.md)\> - -#### Defined in - -[agent/AgentClient.ts:190](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L190) diff --git a/docs/typedoc/classes/agent_AgentResolver.default.md b/docs/typedoc/classes/agent_AgentResolver.default.md deleted file mode 100644 index e9a5edc8a..000000000 --- a/docs/typedoc/classes/agent_AgentResolver.default.md +++ /dev/null @@ -1,474 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [agent/AgentResolver](../modules/agent_AgentResolver.md) / default - -# Class: default - -[agent/AgentResolver](../modules/agent_AgentResolver.md).default - -## Table of contents - -### Constructors - -- [constructor](agent_AgentResolver.default.md#constructor) - -### Methods - -- [agent](agent_AgentResolver.default.md#agent) -- [agentAddEntanglementProofs](agent_AgentResolver.default.md#agentaddentanglementproofs) -- [agentByDID](agent_AgentResolver.default.md#agentbydid) -- [agentDeleteEntanglementProofs](agent_AgentResolver.default.md#agentdeleteentanglementproofs) -- [agentEntanglementProofPreFlight](agent_AgentResolver.default.md#agententanglementproofpreflight) -- [agentGenerate](agent_AgentResolver.default.md#agentgenerate) -- [agentGenerateJwt](agent_AgentResolver.default.md#agentgeneratejwt) -- [agentGetApps](agent_AgentResolver.default.md#agentgetapps) -- [agentGetEntanglementProofs](agent_AgentResolver.default.md#agentgetentanglementproofs) -- [agentImport](agent_AgentResolver.default.md#agentimport) -- [agentIsLocked](agent_AgentResolver.default.md#agentislocked) -- [agentLock](agent_AgentResolver.default.md#agentlock) -- [agentPermitCapability](agent_AgentResolver.default.md#agentpermitcapability) -- [agentRemoveApp](agent_AgentResolver.default.md#agentremoveapp) -- [agentRequestCapability](agent_AgentResolver.default.md#agentrequestcapability) -- [agentRevokeToken](agent_AgentResolver.default.md#agentrevoketoken) -- [agentSignMessage](agent_AgentResolver.default.md#agentsignmessage) -- [agentStatus](agent_AgentResolver.default.md#agentstatus) -- [agentStatusChanged](agent_AgentResolver.default.md#agentstatuschanged) -- [agentUnlock](agent_AgentResolver.default.md#agentunlock) -- [agentUpdateDirectMessageLanguage](agent_AgentResolver.default.md#agentupdatedirectmessagelanguage) -- [agentUpdatePublicPerspective](agent_AgentResolver.default.md#agentupdatepublicperspective) -- [agentUpdated](agent_AgentResolver.default.md#agentupdated) - -## Constructors - -### constructor - -• **new default**() - -## Methods - -### agent - -▸ **agent**(): [`Agent`](agent_Agent.Agent.md) - -#### Returns - -[`Agent`](agent_Agent.Agent.md) - -#### Defined in - -[agent/AgentResolver.ts:11](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentResolver.ts#L11) - -___ - -### agentAddEntanglementProofs - -▸ **agentAddEntanglementProofs**(`proofs`): [`EntanglementProof`](agent_Agent.EntanglementProof.md)[] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `proofs` | [`EntanglementProofInput`](agent_Agent.EntanglementProofInput.md)[] | - -#### Returns - -[`EntanglementProof`](agent_Agent.EntanglementProof.md)[] - -#### Defined in - -[agent/AgentResolver.ts:93](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentResolver.ts#L93) - -___ - -### agentByDID - -▸ **agentByDID**(`did`): [`Agent`](agent_Agent.Agent.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `did` | `string` | - -#### Returns - -[`Agent`](agent_Agent.Agent.md) - -#### Defined in - -[agent/AgentResolver.ts:62](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentResolver.ts#L62) - -___ - -### agentDeleteEntanglementProofs - -▸ **agentDeleteEntanglementProofs**(`proofs`): [`EntanglementProof`](agent_Agent.EntanglementProof.md)[] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `proofs` | [`EntanglementProofInput`](agent_Agent.EntanglementProofInput.md)[] | - -#### Returns - -[`EntanglementProof`](agent_Agent.EntanglementProof.md)[] - -#### Defined in - -[agent/AgentResolver.ts:98](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentResolver.ts#L98) - -___ - -### agentEntanglementProofPreFlight - -▸ **agentEntanglementProofPreFlight**(`deviceKey`, `deviceKeyType`): [`EntanglementProof`](agent_Agent.EntanglementProof.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `deviceKey` | `string` | -| `deviceKeyType` | `string` | - -#### Returns - -[`EntanglementProof`](agent_Agent.EntanglementProof.md) - -#### Defined in - -[agent/AgentResolver.ts:108](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentResolver.ts#L108) - -___ - -### agentGenerate - -▸ **agentGenerate**(`passphrase`, `pubSub`): [`AgentStatus`](agent_AgentStatus.AgentStatus.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `passphrase` | `string` | -| `pubSub` | `any` | - -#### Returns - -[`AgentStatus`](agent_AgentStatus.AgentStatus.md) - -#### Defined in - -[agent/AgentResolver.ts:21](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentResolver.ts#L21) - -___ - -### agentGenerateJwt - -▸ **agentGenerateJwt**(`requestId`, `rand`): `String` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `requestId` | `string` | -| `rand` | `string` | - -#### Returns - -`String` - -#### Defined in - -[agent/AgentResolver.ts:128](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentResolver.ts#L128) - -___ - -### agentGetApps - -▸ **agentGetApps**(): [] - -#### Returns - -[] - -#### Defined in - -[agent/AgentResolver.ts:138](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentResolver.ts#L138) - -___ - -### agentGetEntanglementProofs - -▸ **agentGetEntanglementProofs**(): [`EntanglementProof`](agent_Agent.EntanglementProof.md)[] - -#### Returns - -[`EntanglementProof`](agent_Agent.EntanglementProof.md)[] - -#### Defined in - -[agent/AgentResolver.ts:103](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentResolver.ts#L103) - -___ - -### agentImport - -▸ **agentImport**(`did`, `didDocument`, `keystore`, `passphrase`): [`AgentStatus`](agent_AgentStatus.AgentStatus.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `did` | `string` | -| `didDocument` | `string` | -| `keystore` | `string` | -| `passphrase` | `string` | - -#### Returns - -[`AgentStatus`](agent_AgentStatus.AgentStatus.md) - -#### Defined in - -[agent/AgentResolver.ts:31](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentResolver.ts#L31) - -___ - -### agentIsLocked - -▸ **agentIsLocked**(): `Boolean` - -#### Returns - -`Boolean` - -#### Defined in - -[agent/AgentResolver.ts:133](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentResolver.ts#L133) - -___ - -### agentLock - -▸ **agentLock**(`passphrase`, `pubSub`): [`AgentStatus`](agent_AgentStatus.AgentStatus.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `passphrase` | `string` | -| `pubSub` | `any` | - -#### Returns - -[`AgentStatus`](agent_AgentStatus.AgentStatus.md) - -#### Defined in - -[agent/AgentResolver.ts:41](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentResolver.ts#L41) - -___ - -### agentPermitCapability - -▸ **agentPermitCapability**(`auth`): `String` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `auth` | `string` | - -#### Returns - -`String` - -#### Defined in - -[agent/AgentResolver.ts:123](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentResolver.ts#L123) - -___ - -### agentRemoveApp - -▸ **agentRemoveApp**(`requestId`): [] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `requestId` | `string` | - -#### Returns - -[] - -#### Defined in - -[agent/AgentResolver.ts:143](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentResolver.ts#L143) - -___ - -### agentRequestCapability - -▸ **agentRequestCapability**(`appName`, `appDesc`, `appUrl`, `capabilities`): `String` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `appName` | `string` | -| `appDesc` | `string` | -| `appUrl` | `string` | -| `capabilities` | `string` | - -#### Returns - -`String` - -#### Defined in - -[agent/AgentResolver.ts:113](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentResolver.ts#L113) - -___ - -### agentRevokeToken - -▸ **agentRevokeToken**(`requestId`): `any`[] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `requestId` | `string` | - -#### Returns - -`any`[] - -#### Defined in - -[agent/AgentResolver.ts:148](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentResolver.ts#L148) - -___ - -### agentSignMessage - -▸ **agentSignMessage**(`message`): [`AgentSignature`](agent_Agent.AgentSignature.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `message` | `string` | - -#### Returns - -[`AgentSignature`](agent_Agent.AgentSignature.md) - -#### Defined in - -[agent/AgentResolver.ts:176](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentResolver.ts#L176) - -___ - -### agentStatus - -▸ **agentStatus**(): [`AgentStatus`](agent_AgentStatus.AgentStatus.md) - -#### Returns - -[`AgentStatus`](agent_AgentStatus.AgentStatus.md) - -#### Defined in - -[agent/AgentResolver.ts:16](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentResolver.ts#L16) - -___ - -### agentStatusChanged - -▸ **agentStatusChanged**(): [`AgentStatus`](agent_AgentStatus.AgentStatus.md) - -#### Returns - -[`AgentStatus`](agent_AgentStatus.AgentStatus.md) - -#### Defined in - -[agent/AgentResolver.ts:88](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentResolver.ts#L88) - -___ - -### agentUnlock - -▸ **agentUnlock**(`passphrase`, `pubSub`): [`AgentStatus`](agent_AgentStatus.AgentStatus.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `passphrase` | `string` | -| `pubSub` | `any` | - -#### Returns - -[`AgentStatus`](agent_AgentStatus.AgentStatus.md) - -#### Defined in - -[agent/AgentResolver.ts:51](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentResolver.ts#L51) - -___ - -### agentUpdateDirectMessageLanguage - -▸ **agentUpdateDirectMessageLanguage**(`directMessageLanguage`, `pubSub`): [`Agent`](agent_Agent.Agent.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `directMessageLanguage` | `string` | -| `pubSub` | `any` | - -#### Returns - -[`Agent`](agent_Agent.Agent.md) - -#### Defined in - -[agent/AgentResolver.ts:75](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentResolver.ts#L75) - -___ - -### agentUpdatePublicPerspective - -▸ **agentUpdatePublicPerspective**(`perspective`, `pubSub`): [`Agent`](agent_Agent.Agent.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `perspective` | [`PerspectiveInput`](perspectives_Perspective.PerspectiveInput.md) | -| `pubSub` | `any` | - -#### Returns - -[`Agent`](agent_Agent.Agent.md) - -#### Defined in - -[agent/AgentResolver.ts:67](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentResolver.ts#L67) - -___ - -### agentUpdated - -▸ **agentUpdated**(): [`Agent`](agent_Agent.Agent.md) - -#### Returns - -[`Agent`](agent_Agent.Agent.md) - -#### Defined in - -[agent/AgentResolver.ts:83](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentResolver.ts#L83) diff --git a/docs/typedoc/classes/agent_AgentStatus.AgentStatus.md b/docs/typedoc/classes/agent_AgentStatus.AgentStatus.md deleted file mode 100644 index 73ab170df..000000000 --- a/docs/typedoc/classes/agent_AgentStatus.AgentStatus.md +++ /dev/null @@ -1,85 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [agent/AgentStatus](../modules/agent_AgentStatus.md) / AgentStatus - -# Class: AgentStatus - -[agent/AgentStatus](../modules/agent_AgentStatus.md).AgentStatus - -## Table of contents - -### Constructors - -- [constructor](agent_AgentStatus.AgentStatus.md#constructor) - -### Properties - -- [did](agent_AgentStatus.AgentStatus.md#did) -- [didDocument](agent_AgentStatus.AgentStatus.md#diddocument) -- [error](agent_AgentStatus.AgentStatus.md#error) -- [isInitialized](agent_AgentStatus.AgentStatus.md#isinitialized) -- [isUnlocked](agent_AgentStatus.AgentStatus.md#isunlocked) - -## Constructors - -### constructor - -• **new AgentStatus**(`obj?`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `obj?` | `object` | - -#### Defined in - -[agent/AgentStatus.ts:20](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentStatus.ts#L20) - -## Properties - -### did - -• `Optional` **did**: `string` - -#### Defined in - -[agent/AgentStatus.ts:12](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentStatus.ts#L12) - -___ - -### didDocument - -• `Optional` **didDocument**: `string` - -#### Defined in - -[agent/AgentStatus.ts:15](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentStatus.ts#L15) - -___ - -### error - -• `Optional` **error**: `string` - -#### Defined in - -[agent/AgentStatus.ts:18](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentStatus.ts#L18) - -___ - -### isInitialized - -• **isInitialized**: `Boolean` - -#### Defined in - -[agent/AgentStatus.ts:6](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentStatus.ts#L6) - -___ - -### isUnlocked - -• **isUnlocked**: `Boolean` - -#### Defined in - -[agent/AgentStatus.ts:9](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentStatus.ts#L9) diff --git a/docs/typedoc/classes/expression_Expression.Expression.md b/docs/typedoc/classes/expression_Expression.Expression.md deleted file mode 100644 index 14b64f806..000000000 --- a/docs/typedoc/classes/expression_Expression.Expression.md +++ /dev/null @@ -1,27 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [expression/Expression](../modules/expression_Expression.md) / Expression - -# Class: Expression - -[expression/Expression](../modules/expression_Expression.md).Expression - -## Hierarchy - -- `any` - - ↳ **`Expression`** - -## Table of contents - -### Constructors - -- [constructor](expression_Expression.Expression.md#constructor) - -## Constructors - -### constructor - -• **new Expression**() - -#### Inherited from - -ExpressionGeneric(Object).constructor diff --git a/docs/typedoc/classes/expression_Expression.ExpressionProof.md b/docs/typedoc/classes/expression_Expression.ExpressionProof.md deleted file mode 100644 index 30d0be08f..000000000 --- a/docs/typedoc/classes/expression_Expression.ExpressionProof.md +++ /dev/null @@ -1,75 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [expression/Expression](../modules/expression_Expression.md) / ExpressionProof - -# Class: ExpressionProof - -[expression/Expression](../modules/expression_Expression.md).ExpressionProof - -## Table of contents - -### Constructors - -- [constructor](expression_Expression.ExpressionProof.md#constructor) - -### Properties - -- [invalid](expression_Expression.ExpressionProof.md#invalid) -- [key](expression_Expression.ExpressionProof.md#key) -- [signature](expression_Expression.ExpressionProof.md#signature) -- [valid](expression_Expression.ExpressionProof.md#valid) - -## Constructors - -### constructor - -• **new ExpressionProof**(`sig`, `k`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `sig` | `string` | -| `k` | `string` | - -#### Defined in - -[expression/Expression.ts:20](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/Expression.ts#L20) - -## Properties - -### invalid - -• `Optional` **invalid**: `boolean` - -#### Defined in - -[expression/Expression.ts:18](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/Expression.ts#L18) - -___ - -### key - -• **key**: `string` - -#### Defined in - -[expression/Expression.ts:12](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/Expression.ts#L12) - -___ - -### signature - -• **signature**: `string` - -#### Defined in - -[expression/Expression.ts:9](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/Expression.ts#L9) - -___ - -### valid - -• `Optional` **valid**: `boolean` - -#### Defined in - -[expression/Expression.ts:15](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/Expression.ts#L15) diff --git a/docs/typedoc/classes/expression_Expression.ExpressionProofInput.md b/docs/typedoc/classes/expression_Expression.ExpressionProofInput.md deleted file mode 100644 index c4f0798c3..000000000 --- a/docs/typedoc/classes/expression_Expression.ExpressionProofInput.md +++ /dev/null @@ -1,64 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [expression/Expression](../modules/expression_Expression.md) / ExpressionProofInput - -# Class: ExpressionProofInput - -[expression/Expression](../modules/expression_Expression.md).ExpressionProofInput - -## Table of contents - -### Constructors - -- [constructor](expression_Expression.ExpressionProofInput.md#constructor) - -### Properties - -- [invalid](expression_Expression.ExpressionProofInput.md#invalid) -- [key](expression_Expression.ExpressionProofInput.md#key) -- [signature](expression_Expression.ExpressionProofInput.md#signature) -- [valid](expression_Expression.ExpressionProofInput.md#valid) - -## Constructors - -### constructor - -• **new ExpressionProofInput**() - -## Properties - -### invalid - -• `Optional` **invalid**: `boolean` - -#### Defined in - -[expression/Expression.ts:38](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/Expression.ts#L38) - -___ - -### key - -• **key**: `string` - -#### Defined in - -[expression/Expression.ts:32](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/Expression.ts#L32) - -___ - -### signature - -• **signature**: `string` - -#### Defined in - -[expression/Expression.ts:29](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/Expression.ts#L29) - -___ - -### valid - -• `Optional` **valid**: `boolean` - -#### Defined in - -[expression/Expression.ts:35](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/Expression.ts#L35) diff --git a/docs/typedoc/classes/expression_Expression.ExpressionRendered.md b/docs/typedoc/classes/expression_Expression.ExpressionRendered.md deleted file mode 100644 index ee433efee..000000000 --- a/docs/typedoc/classes/expression_Expression.ExpressionRendered.md +++ /dev/null @@ -1,52 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [expression/Expression](../modules/expression_Expression.md) / ExpressionRendered - -# Class: ExpressionRendered - -[expression/Expression](../modules/expression_Expression.md).ExpressionRendered - -## Hierarchy - -- `any` - - ↳ **`ExpressionRendered`** - -## Table of contents - -### Constructors - -- [constructor](expression_Expression.ExpressionRendered.md#constructor) - -### Properties - -- [icon](expression_Expression.ExpressionRendered.md#icon) -- [language](expression_Expression.ExpressionRendered.md#language) - -## Constructors - -### constructor - -• **new ExpressionRendered**() - -#### Inherited from - -ExpressionGeneric(String).constructor - -## Properties - -### icon - -• **icon**: [`Icon`](language_Icon.Icon.md) - -#### Defined in - -[expression/Expression.ts:94](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/Expression.ts#L94) - -___ - -### language - -• **language**: [`LanguageRef`](language_LanguageRef.LanguageRef.md) - -#### Defined in - -[expression/Expression.ts:91](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/Expression.ts#L91) diff --git a/docs/typedoc/classes/expression_ExpressionClient.ExpressionClient.md b/docs/typedoc/classes/expression_ExpressionClient.ExpressionClient.md deleted file mode 100644 index 078a6e46c..000000000 --- a/docs/typedoc/classes/expression_ExpressionClient.ExpressionClient.md +++ /dev/null @@ -1,172 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [expression/ExpressionClient](../modules/expression_ExpressionClient.md) / ExpressionClient - -# Class: ExpressionClient - -[expression/ExpressionClient](../modules/expression_ExpressionClient.md).ExpressionClient - -## Table of contents - -### Constructors - -- [constructor](expression_ExpressionClient.ExpressionClient.md#constructor) - -### Properties - -- [#apolloClient](expression_ExpressionClient.ExpressionClient.md##apolloclient) - -### Methods - -- [create](expression_ExpressionClient.ExpressionClient.md#create) -- [get](expression_ExpressionClient.ExpressionClient.md#get) -- [getMany](expression_ExpressionClient.ExpressionClient.md#getmany) -- [getRaw](expression_ExpressionClient.ExpressionClient.md#getraw) -- [interact](expression_ExpressionClient.ExpressionClient.md#interact) -- [interactions](expression_ExpressionClient.ExpressionClient.md#interactions) - -## Constructors - -### constructor - -• **new ExpressionClient**(`client`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `client` | `ApolloClient`<`any`\> | - -#### Defined in - -[expression/ExpressionClient.ts:9](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/ExpressionClient.ts#L9) - -## Properties - -### #apolloClient - -• `Private` **#apolloClient**: `ApolloClient`<`any`\> - -#### Defined in - -[expression/ExpressionClient.ts:7](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/ExpressionClient.ts#L7) - -## Methods - -### create - -▸ **create**(`content`, `languageAddress`): `Promise`<`string`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `content` | `any` | -| `languageAddress` | `string` | - -#### Returns - -`Promise`<`string`\> - -#### Defined in - -[expression/ExpressionClient.ts:65](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/ExpressionClient.ts#L65) - -___ - -### get - -▸ **get**(`url`): `Promise`<[`ExpressionRendered`](expression_Expression.ExpressionRendered.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `url` | `string` | - -#### Returns - -`Promise`<[`ExpressionRendered`](expression_Expression.ExpressionRendered.md)\> - -#### Defined in - -[expression/ExpressionClient.ts:13](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/ExpressionClient.ts#L13) - -___ - -### getMany - -▸ **getMany**(`urls`): `Promise`<[`ExpressionRendered`](expression_Expression.ExpressionRendered.md)[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `urls` | `string`[] | - -#### Returns - -`Promise`<[`ExpressionRendered`](expression_Expression.ExpressionRendered.md)[]\> - -#### Defined in - -[expression/ExpressionClient.ts:34](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/ExpressionClient.ts#L34) - -___ - -### getRaw - -▸ **getRaw**(`url`): `Promise`<`string`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `url` | `string` | - -#### Returns - -`Promise`<`string`\> - -#### Defined in - -[expression/ExpressionClient.ts:55](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/ExpressionClient.ts#L55) - -___ - -### interact - -▸ **interact**(`url`, `interactionCall`): `Promise`<`string`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `url` | `string` | -| `interactionCall` | [`InteractionCall`](language_Language.InteractionCall.md) | - -#### Returns - -`Promise`<`string`\> - -#### Defined in - -[expression/ExpressionClient.ts:90](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/ExpressionClient.ts#L90) - -___ - -### interactions - -▸ **interactions**(`url`): `Promise`<[`InteractionMeta`](language_Language.InteractionMeta.md)[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `url` | `string` | - -#### Returns - -`Promise`<[`InteractionMeta`](language_Language.InteractionMeta.md)[]\> - -#### Defined in - -[expression/ExpressionClient.ts:76](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/ExpressionClient.ts#L76) diff --git a/docs/typedoc/classes/expression_ExpressionRef.ExpressionRef.md b/docs/typedoc/classes/expression_ExpressionRef.ExpressionRef.md deleted file mode 100644 index 4412d3e57..000000000 --- a/docs/typedoc/classes/expression_ExpressionRef.ExpressionRef.md +++ /dev/null @@ -1,53 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [expression/ExpressionRef](../modules/expression_ExpressionRef.md) / ExpressionRef - -# Class: ExpressionRef - -[expression/ExpressionRef](../modules/expression_ExpressionRef.md).ExpressionRef - -## Table of contents - -### Constructors - -- [constructor](expression_ExpressionRef.ExpressionRef.md#constructor) - -### Properties - -- [expression](expression_ExpressionRef.ExpressionRef.md#expression) -- [language](expression_ExpressionRef.ExpressionRef.md#language) - -## Constructors - -### constructor - -• **new ExpressionRef**(`lang`, `expr`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `lang` | [`LanguageRef`](language_LanguageRef.LanguageRef.md) | -| `expr` | `string` | - -#### Defined in - -[expression/ExpressionRef.ts:14](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/ExpressionRef.ts#L14) - -## Properties - -### expression - -• **expression**: `string` - -#### Defined in - -[expression/ExpressionRef.ts:12](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/ExpressionRef.ts#L12) - -___ - -### language - -• **language**: [`LanguageRef`](language_LanguageRef.LanguageRef.md) - -#### Defined in - -[expression/ExpressionRef.ts:9](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/ExpressionRef.ts#L9) diff --git a/docs/typedoc/classes/expression_ExpressionResolver.default.md b/docs/typedoc/classes/expression_ExpressionResolver.default.md deleted file mode 100644 index c3c3c61e3..000000000 --- a/docs/typedoc/classes/expression_ExpressionResolver.default.md +++ /dev/null @@ -1,148 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [expression/ExpressionResolver](../modules/expression_ExpressionResolver.md) / default - -# Class: default - -[expression/ExpressionResolver](../modules/expression_ExpressionResolver.md).default - -## Table of contents - -### Constructors - -- [constructor](expression_ExpressionResolver.default.md#constructor) - -### Methods - -- [expression](expression_ExpressionResolver.default.md#expression) -- [expressionCreate](expression_ExpressionResolver.default.md#expressioncreate) -- [expressionInteract](expression_ExpressionResolver.default.md#expressioninteract) -- [expressionInteractions](expression_ExpressionResolver.default.md#expressioninteractions) -- [expressionMany](expression_ExpressionResolver.default.md#expressionmany) -- [expressionRaw](expression_ExpressionResolver.default.md#expressionraw) - -## Constructors - -### constructor - -• **new default**() - -## Methods - -### expression - -▸ **expression**(`url`): [`ExpressionRendered`](expression_Expression.ExpressionRendered.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `url` | `string` | - -#### Returns - -[`ExpressionRendered`](expression_Expression.ExpressionRendered.md) - -#### Defined in - -[expression/ExpressionResolver.ts:16](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/ExpressionResolver.ts#L16) - -___ - -### expressionCreate - -▸ **expressionCreate**(`content`, `languageAddress`): `string` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `content` | `string` | -| `languageAddress` | `string` | - -#### Returns - -`string` - -#### Defined in - -[expression/ExpressionResolver.ts:39](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/ExpressionResolver.ts#L39) - -___ - -### expressionInteract - -▸ **expressionInteract**(`url`, `interactionCall`): `string` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `url` | `string` | -| `interactionCall` | [`InteractionCall`](language_Language.InteractionCall.md) | - -#### Returns - -`string` - -#### Defined in - -[expression/ExpressionResolver.ts:57](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/ExpressionResolver.ts#L57) - -___ - -### expressionInteractions - -▸ **expressionInteractions**(`url`): [`InteractionMeta`](language_Language.InteractionMeta.md)[] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `url` | `string` | - -#### Returns - -[`InteractionMeta`](language_Language.InteractionMeta.md)[] - -#### Defined in - -[expression/ExpressionResolver.ts:47](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/ExpressionResolver.ts#L47) - -___ - -### expressionMany - -▸ **expressionMany**(`urls`): [`ExpressionRendered`](expression_Expression.ExpressionRendered.md)[] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `urls` | `string`[] | - -#### Returns - -[`ExpressionRendered`](expression_Expression.ExpressionRendered.md)[] - -#### Defined in - -[expression/ExpressionResolver.ts:25](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/ExpressionResolver.ts#L25) - -___ - -### expressionRaw - -▸ **expressionRaw**(`url`): `string` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `url` | `string` | - -#### Returns - -`string` - -#### Defined in - -[expression/ExpressionResolver.ts:30](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/ExpressionResolver.ts#L30) diff --git a/docs/typedoc/classes/language_Icon.Icon.md b/docs/typedoc/classes/language_Icon.Icon.md deleted file mode 100644 index aa0a710a7..000000000 --- a/docs/typedoc/classes/language_Icon.Icon.md +++ /dev/null @@ -1,41 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/Icon](../modules/language_Icon.md) / Icon - -# Class: Icon - -[language/Icon](../modules/language_Icon.md).Icon - -## Table of contents - -### Constructors - -- [constructor](language_Icon.Icon.md#constructor) - -### Properties - -- [code](language_Icon.Icon.md#code) - -## Constructors - -### constructor - -• **new Icon**(`code`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `code` | `string` | - -#### Defined in - -[language/Icon.ts:8](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Icon.ts#L8) - -## Properties - -### code - -• **code**: `string` - -#### Defined in - -[language/Icon.ts:6](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Icon.ts#L6) diff --git a/docs/typedoc/classes/language_Language.InteractionCall.md b/docs/typedoc/classes/language_Language.InteractionCall.md deleted file mode 100644 index 159830b41..000000000 --- a/docs/typedoc/classes/language_Language.InteractionCall.md +++ /dev/null @@ -1,71 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/Language](../modules/language_Language.md) / InteractionCall - -# Class: InteractionCall - -[language/Language](../modules/language_Language.md).InteractionCall - -## Table of contents - -### Constructors - -- [constructor](language_Language.InteractionCall.md#constructor) - -### Properties - -- [name](language_Language.InteractionCall.md#name) -- [parametersStringified](language_Language.InteractionCall.md#parametersstringified) - -### Accessors - -- [parameters](language_Language.InteractionCall.md#parameters) - -## Constructors - -### constructor - -• **new InteractionCall**(`name`, `parameters`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `name` | `string` | -| `parameters` | `object` | - -#### Defined in - -[language/Language.ts:239](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L239) - -## Properties - -### name - -• **name**: `string` - -#### Defined in - -[language/Language.ts:231](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L231) - -___ - -### parametersStringified - -• **parametersStringified**: `string` - -#### Defined in - -[language/Language.ts:233](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L233) - -## Accessors - -### parameters - -• `get` **parameters**(): `object` - -#### Returns - -`object` - -#### Defined in - -[language/Language.ts:235](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L235) diff --git a/docs/typedoc/classes/language_Language.InteractionMeta.md b/docs/typedoc/classes/language_Language.InteractionMeta.md deleted file mode 100644 index ec89dad66..000000000 --- a/docs/typedoc/classes/language_Language.InteractionMeta.md +++ /dev/null @@ -1,53 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/Language](../modules/language_Language.md) / InteractionMeta - -# Class: InteractionMeta - -[language/Language](../modules/language_Language.md).InteractionMeta - -## Table of contents - -### Constructors - -- [constructor](language_Language.InteractionMeta.md#constructor) - -### Properties - -- [label](language_Language.InteractionMeta.md#label) -- [name](language_Language.InteractionMeta.md#name) -- [parameters](language_Language.InteractionMeta.md#parameters) - -## Constructors - -### constructor - -• **new InteractionMeta**() - -## Properties - -### label - -• **label**: `string` - -#### Defined in - -[language/Language.ts:213](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L213) - -___ - -### name - -• **name**: `string` - -#### Defined in - -[language/Language.ts:216](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L216) - -___ - -### parameters - -• **parameters**: [`InteractionParameter`](language_Language.InteractionParameter.md)[] - -#### Defined in - -[language/Language.ts:219](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L219) diff --git a/docs/typedoc/classes/language_Language.InteractionParameter.md b/docs/typedoc/classes/language_Language.InteractionParameter.md deleted file mode 100644 index 5e0d767bb..000000000 --- a/docs/typedoc/classes/language_Language.InteractionParameter.md +++ /dev/null @@ -1,42 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/Language](../modules/language_Language.md) / InteractionParameter - -# Class: InteractionParameter - -[language/Language](../modules/language_Language.md).InteractionParameter - -## Table of contents - -### Constructors - -- [constructor](language_Language.InteractionParameter.md#constructor) - -### Properties - -- [name](language_Language.InteractionParameter.md#name) -- [type](language_Language.InteractionParameter.md#type) - -## Constructors - -### constructor - -• **new InteractionParameter**() - -## Properties - -### name - -• **name**: `string` - -#### Defined in - -[language/Language.ts:204](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L204) - -___ - -### type - -• **type**: `string` - -#### Defined in - -[language/Language.ts:207](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L207) diff --git a/docs/typedoc/classes/language_Language.OnlineAgent.md b/docs/typedoc/classes/language_Language.OnlineAgent.md deleted file mode 100644 index 57b9d86b3..000000000 --- a/docs/typedoc/classes/language_Language.OnlineAgent.md +++ /dev/null @@ -1,42 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/Language](../modules/language_Language.md) / OnlineAgent - -# Class: OnlineAgent - -[language/Language](../modules/language_Language.md).OnlineAgent - -## Table of contents - -### Constructors - -- [constructor](language_Language.OnlineAgent.md#constructor) - -### Properties - -- [did](language_Language.OnlineAgent.md#did) -- [status](language_Language.OnlineAgent.md#status) - -## Constructors - -### constructor - -• **new OnlineAgent**() - -## Properties - -### did - -• **did**: `string` - -#### Defined in - -[language/Language.ts:248](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L248) - -___ - -### status - -• **status**: [`PerspectiveExpression`](perspectives_Perspective.PerspectiveExpression.md) - -#### Defined in - -[language/Language.ts:250](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L250) diff --git a/docs/typedoc/classes/language_Language.TelepresenceRpcCall.md b/docs/typedoc/classes/language_Language.TelepresenceRpcCall.md deleted file mode 100644 index 9be40c386..000000000 --- a/docs/typedoc/classes/language_Language.TelepresenceRpcCall.md +++ /dev/null @@ -1,42 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/Language](../modules/language_Language.md) / TelepresenceRpcCall - -# Class: TelepresenceRpcCall - -[language/Language](../modules/language_Language.md).TelepresenceRpcCall - -## Table of contents - -### Constructors - -- [constructor](language_Language.TelepresenceRpcCall.md#constructor) - -### Properties - -- [fn\_name](language_Language.TelepresenceRpcCall.md#fn_name) -- [params](language_Language.TelepresenceRpcCall.md#params) - -## Constructors - -### constructor - -• **new TelepresenceRpcCall**() - -## Properties - -### fn\_name - -• **fn\_name**: `string` - -#### Defined in - -[language/Language.ts:242](https://github.com/perspect3vism/ad4m/blob/e76a46f1/core/src/language/Language.ts#L242) - -___ - -### params - -• **params**: `object` - -#### Defined in - -[language/Language.ts:243](https://github.com/perspect3vism/ad4m/blob/e76a46f1/core/src/language/Language.ts#L243) diff --git a/docs/typedoc/classes/language_LanguageClient.LanguageClient.md b/docs/typedoc/classes/language_LanguageClient.LanguageClient.md deleted file mode 100644 index 772a5456e..000000000 --- a/docs/typedoc/classes/language_LanguageClient.LanguageClient.md +++ /dev/null @@ -1,230 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/LanguageClient](../modules/language_LanguageClient.md) / LanguageClient - -# Class: LanguageClient - -[language/LanguageClient](../modules/language_LanguageClient.md).LanguageClient - -## Table of contents - -### Constructors - -- [constructor](language_LanguageClient.LanguageClient.md#constructor) - -### Properties - -- [#apolloClient](language_LanguageClient.LanguageClient.md##apolloclient) - -### Methods - -- [all](language_LanguageClient.LanguageClient.md#all) -- [applyTemplateAndPublish](language_LanguageClient.LanguageClient.md#applytemplateandpublish) -- [byAddress](language_LanguageClient.LanguageClient.md#byaddress) -- [byFilter](language_LanguageClient.LanguageClient.md#byfilter) -- [meta](language_LanguageClient.LanguageClient.md#meta) -- [publish](language_LanguageClient.LanguageClient.md#publish) -- [remove](language_LanguageClient.LanguageClient.md#remove) -- [source](language_LanguageClient.LanguageClient.md#source) -- [writeSettings](language_LanguageClient.LanguageClient.md#writesettings) - -## Constructors - -### constructor - -• **new LanguageClient**(`apolloClient`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `apolloClient` | `ApolloClient`<`any`\> | - -#### Defined in - -[language/LanguageClient.ts:31](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageClient.ts#L31) - -## Properties - -### #apolloClient - -• `Private` **#apolloClient**: `ApolloClient`<`any`\> - -#### Defined in - -[language/LanguageClient.ts:29](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageClient.ts#L29) - -## Methods - -### all - -▸ **all**(): `Promise`<[`LanguageHandle`](language_LanguageHandle.LanguageHandle.md)[]\> - -#### Returns - -`Promise`<[`LanguageHandle`](language_LanguageHandle.LanguageHandle.md)[]\> - -#### Defined in - -[language/LanguageClient.ts:59](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageClient.ts#L59) - -___ - -### applyTemplateAndPublish - -▸ **applyTemplateAndPublish**(`sourceLanguageHash`, `templateData`): `Promise`<[`LanguageRef`](language_LanguageRef.LanguageRef.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `sourceLanguageHash` | `string` | -| `templateData` | `string` | - -#### Returns - -`Promise`<[`LanguageRef`](language_LanguageRef.LanguageRef.md)\> - -#### Defined in - -[language/LanguageClient.ts:76](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageClient.ts#L76) - -___ - -### byAddress - -▸ **byAddress**(`address`): `Promise`<[`LanguageHandle`](language_LanguageHandle.LanguageHandle.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `string` | - -#### Returns - -`Promise`<[`LanguageHandle`](language_LanguageHandle.LanguageHandle.md)\> - -#### Defined in - -[language/LanguageClient.ts:35](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageClient.ts#L35) - -___ - -### byFilter - -▸ **byFilter**(`filter`): `Promise`<[`LanguageHandle`](language_LanguageHandle.LanguageHandle.md)[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `filter` | `string` | - -#### Returns - -`Promise`<[`LanguageHandle`](language_LanguageHandle.LanguageHandle.md)[]\> - -#### Defined in - -[language/LanguageClient.ts:47](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageClient.ts#L47) - -___ - -### meta - -▸ **meta**(`address`): `Promise`<[`LanguageMeta`](language_LanguageMeta.LanguageMeta.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `string` | - -#### Returns - -`Promise`<[`LanguageMeta`](language_LanguageMeta.LanguageMeta.md)\> - -#### Defined in - -[language/LanguageClient.ts:114](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageClient.ts#L114) - -___ - -### publish - -▸ **publish**(`languagePath`, `languageMeta`): `Promise`<[`LanguageMeta`](language_LanguageMeta.LanguageMeta.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `languagePath` | `string` | -| `languageMeta` | [`LanguageMetaInput`](language_LanguageMeta.LanguageMetaInput.md) | - -#### Returns - -`Promise`<[`LanguageMeta`](language_LanguageMeta.LanguageMeta.md)\> - -#### Defined in - -[language/LanguageClient.ts:95](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageClient.ts#L95) - -___ - -### remove - -▸ **remove**(`address`): `Promise`<`Boolean`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `string` | - -#### Returns - -`Promise`<`Boolean`\> - -#### Defined in - -[language/LanguageClient.ts:146](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageClient.ts#L146) - -___ - -### source - -▸ **source**(`address`): `Promise`<`string`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `string` | - -#### Returns - -`Promise`<`string`\> - -#### Defined in - -[language/LanguageClient.ts:131](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageClient.ts#L131) - -___ - -### writeSettings - -▸ **writeSettings**(`languageAddress`, `settings`): `Promise`<`Boolean`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `languageAddress` | `string` | -| `settings` | `string` | - -#### Returns - -`Promise`<`Boolean`\> - -#### Defined in - -[language/LanguageClient.ts:63](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageClient.ts#L63) diff --git a/docs/typedoc/classes/language_LanguageContext.Dna.md b/docs/typedoc/classes/language_LanguageContext.Dna.md deleted file mode 100644 index 3154da327..000000000 --- a/docs/typedoc/classes/language_LanguageContext.Dna.md +++ /dev/null @@ -1,53 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/LanguageContext](../modules/language_LanguageContext.md) / Dna - -# Class: Dna - -[language/LanguageContext](../modules/language_LanguageContext.md).Dna - -## Table of contents - -### Constructors - -- [constructor](language_LanguageContext.Dna.md#constructor) - -### Properties - -- [file](language_LanguageContext.Dna.md#file) -- [nick](language_LanguageContext.Dna.md#nick) -- [zomeCalls](language_LanguageContext.Dna.md#zomecalls) - -## Constructors - -### constructor - -• **new Dna**() - -## Properties - -### file - -• **file**: `Buffer` - -#### Defined in - -[language/LanguageContext.ts:25](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageContext.ts#L25) - -___ - -### nick - -• **nick**: `string` - -#### Defined in - -[language/LanguageContext.ts:26](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageContext.ts#L26) - -___ - -### zomeCalls - -• **zomeCalls**: [`string`, `string`][] - -#### Defined in - -[language/LanguageContext.ts:27](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageContext.ts#L27) diff --git a/docs/typedoc/classes/language_LanguageHandle.LanguageHandle.md b/docs/typedoc/classes/language_LanguageHandle.LanguageHandle.md deleted file mode 100644 index d998d4a16..000000000 --- a/docs/typedoc/classes/language_LanguageHandle.LanguageHandle.md +++ /dev/null @@ -1,86 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/LanguageHandle](../modules/language_LanguageHandle.md) / LanguageHandle - -# Class: LanguageHandle - -[language/LanguageHandle](../modules/language_LanguageHandle.md).LanguageHandle - -## Table of contents - -### Constructors - -- [constructor](language_LanguageHandle.LanguageHandle.md#constructor) - -### Properties - -- [address](language_LanguageHandle.LanguageHandle.md#address) -- [constructorIcon](language_LanguageHandle.LanguageHandle.md#constructoricon) -- [icon](language_LanguageHandle.LanguageHandle.md#icon) -- [name](language_LanguageHandle.LanguageHandle.md#name) -- [settings](language_LanguageHandle.LanguageHandle.md#settings) -- [settingsIcon](language_LanguageHandle.LanguageHandle.md#settingsicon) - -## Constructors - -### constructor - -• **new LanguageHandle**() - -## Properties - -### address - -• **address**: `string` - -#### Defined in - -[language/LanguageHandle.ts:10](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageHandle.ts#L10) - -___ - -### constructorIcon - -• `Optional` **constructorIcon**: [`Icon`](language_Icon.Icon.md) - -#### Defined in - -[language/LanguageHandle.ts:19](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageHandle.ts#L19) - -___ - -### icon - -• `Optional` **icon**: [`Icon`](language_Icon.Icon.md) - -#### Defined in - -[language/LanguageHandle.ts:16](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageHandle.ts#L16) - -___ - -### name - -• **name**: `string` - -#### Defined in - -[language/LanguageHandle.ts:7](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageHandle.ts#L7) - -___ - -### settings - -• `Optional` **settings**: `string` - -#### Defined in - -[language/LanguageHandle.ts:13](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageHandle.ts#L13) - -___ - -### settingsIcon - -• `Optional` **settingsIcon**: [`Icon`](language_Icon.Icon.md) - -#### Defined in - -[language/LanguageHandle.ts:22](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageHandle.ts#L22) diff --git a/docs/typedoc/classes/language_LanguageMeta.LanguageExpression.md b/docs/typedoc/classes/language_LanguageMeta.LanguageExpression.md deleted file mode 100644 index 17d0eb495..000000000 --- a/docs/typedoc/classes/language_LanguageMeta.LanguageExpression.md +++ /dev/null @@ -1,27 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/LanguageMeta](../modules/language_LanguageMeta.md) / LanguageExpression - -# Class: LanguageExpression - -[language/LanguageMeta](../modules/language_LanguageMeta.md).LanguageExpression - -## Hierarchy - -- `any` - - ↳ **`LanguageExpression`** - -## Table of contents - -### Constructors - -- [constructor](language_LanguageMeta.LanguageExpression.md#constructor) - -## Constructors - -### constructor - -• **new LanguageExpression**() - -#### Inherited from - -ExpressionGeneric(LanguageMetaInternal).constructor diff --git a/docs/typedoc/classes/language_LanguageMeta.LanguageLanguageInput.md b/docs/typedoc/classes/language_LanguageMeta.LanguageLanguageInput.md deleted file mode 100644 index 03d9cddfe..000000000 --- a/docs/typedoc/classes/language_LanguageMeta.LanguageLanguageInput.md +++ /dev/null @@ -1,42 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/LanguageMeta](../modules/language_LanguageMeta.md) / LanguageLanguageInput - -# Class: LanguageLanguageInput - -[language/LanguageMeta](../modules/language_LanguageMeta.md).LanguageLanguageInput - -## Table of contents - -### Constructors - -- [constructor](language_LanguageMeta.LanguageLanguageInput.md#constructor) - -### Properties - -- [bundle](language_LanguageMeta.LanguageLanguageInput.md#bundle) -- [meta](language_LanguageMeta.LanguageLanguageInput.md#meta) - -## Constructors - -### constructor - -• **new LanguageLanguageInput**() - -## Properties - -### bundle - -• **bundle**: `string` - -#### Defined in - -[language/LanguageMeta.ts:68](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageMeta.ts#L68) - -___ - -### meta - -• **meta**: [`LanguageMetaInternal`](language_LanguageMeta.LanguageMetaInternal.md) - -#### Defined in - -[language/LanguageMeta.ts:69](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageMeta.ts#L69) diff --git a/docs/typedoc/classes/language_LanguageMeta.LanguageMeta.md b/docs/typedoc/classes/language_LanguageMeta.LanguageMeta.md deleted file mode 100644 index 15bf679b3..000000000 --- a/docs/typedoc/classes/language_LanguageMeta.LanguageMeta.md +++ /dev/null @@ -1,119 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/LanguageMeta](../modules/language_LanguageMeta.md) / LanguageMeta - -# Class: LanguageMeta - -[language/LanguageMeta](../modules/language_LanguageMeta.md).LanguageMeta - -## Table of contents - -### Constructors - -- [constructor](language_LanguageMeta.LanguageMeta.md#constructor) - -### Properties - -- [address](language_LanguageMeta.LanguageMeta.md#address) -- [author](language_LanguageMeta.LanguageMeta.md#author) -- [description](language_LanguageMeta.LanguageMeta.md#description) -- [name](language_LanguageMeta.LanguageMeta.md#name) -- [possibleTemplateParams](language_LanguageMeta.LanguageMeta.md#possibletemplateparams) -- [sourceCodeLink](language_LanguageMeta.LanguageMeta.md#sourcecodelink) -- [templateAppliedParams](language_LanguageMeta.LanguageMeta.md#templateappliedparams) -- [templateSourceLanguageAddress](language_LanguageMeta.LanguageMeta.md#templatesourcelanguageaddress) -- [templated](language_LanguageMeta.LanguageMeta.md#templated) - -## Constructors - -### constructor - -• **new LanguageMeta**() - -## Properties - -### address - -• **address**: `string` - -#### Defined in - -[language/LanguageMeta.ts:10](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageMeta.ts#L10) - -___ - -### author - -• **author**: `string` - -#### Defined in - -[language/LanguageMeta.ts:16](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageMeta.ts#L16) - -___ - -### description - -• **description**: `string` - -#### Defined in - -[language/LanguageMeta.ts:13](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageMeta.ts#L13) - -___ - -### name - -• **name**: `string` - -#### Defined in - -[language/LanguageMeta.ts:7](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageMeta.ts#L7) - -___ - -### possibleTemplateParams - -• `Optional` **possibleTemplateParams**: `string`[] - -#### Defined in - -[language/LanguageMeta.ts:28](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageMeta.ts#L28) - -___ - -### sourceCodeLink - -• `Optional` **sourceCodeLink**: `string` - -#### Defined in - -[language/LanguageMeta.ts:31](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageMeta.ts#L31) - -___ - -### templateAppliedParams - -• `Optional` **templateAppliedParams**: `string` - -#### Defined in - -[language/LanguageMeta.ts:25](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageMeta.ts#L25) - -___ - -### templateSourceLanguageAddress - -• `Optional` **templateSourceLanguageAddress**: `string` - -#### Defined in - -[language/LanguageMeta.ts:22](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageMeta.ts#L22) - -___ - -### templated - -• **templated**: `boolean` - -#### Defined in - -[language/LanguageMeta.ts:19](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageMeta.ts#L19) diff --git a/docs/typedoc/classes/language_LanguageMeta.LanguageMetaInput.md b/docs/typedoc/classes/language_LanguageMeta.LanguageMetaInput.md deleted file mode 100644 index c999bdcdd..000000000 --- a/docs/typedoc/classes/language_LanguageMeta.LanguageMetaInput.md +++ /dev/null @@ -1,75 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/LanguageMeta](../modules/language_LanguageMeta.md) / LanguageMetaInput - -# Class: LanguageMetaInput - -[language/LanguageMeta](../modules/language_LanguageMeta.md).LanguageMetaInput - -## Table of contents - -### Constructors - -- [constructor](language_LanguageMeta.LanguageMetaInput.md#constructor) - -### Properties - -- [description](language_LanguageMeta.LanguageMetaInput.md#description) -- [name](language_LanguageMeta.LanguageMetaInput.md#name) -- [possibleTemplateParams](language_LanguageMeta.LanguageMetaInput.md#possibletemplateparams) -- [sourceCodeLink](language_LanguageMeta.LanguageMetaInput.md#sourcecodelink) - -## Constructors - -### constructor - -• **new LanguageMetaInput**(`name?`, `description?`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `name?` | `string` | -| `description?` | `string` | - -#### Defined in - -[language/LanguageMeta.ts:48](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageMeta.ts#L48) - -## Properties - -### description - -• **description**: `string` - -#### Defined in - -[language/LanguageMeta.ts:40](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageMeta.ts#L40) - -___ - -### name - -• **name**: `string` - -#### Defined in - -[language/LanguageMeta.ts:37](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageMeta.ts#L37) - -___ - -### possibleTemplateParams - -• `Optional` **possibleTemplateParams**: `string`[] - -#### Defined in - -[language/LanguageMeta.ts:43](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageMeta.ts#L43) - -___ - -### sourceCodeLink - -• `Optional` **sourceCodeLink**: `string` - -#### Defined in - -[language/LanguageMeta.ts:46](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageMeta.ts#L46) diff --git a/docs/typedoc/classes/language_LanguageMeta.LanguageMetaInternal.md b/docs/typedoc/classes/language_LanguageMeta.LanguageMetaInternal.md deleted file mode 100644 index d900e6f51..000000000 --- a/docs/typedoc/classes/language_LanguageMeta.LanguageMetaInternal.md +++ /dev/null @@ -1,97 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/LanguageMeta](../modules/language_LanguageMeta.md) / LanguageMetaInternal - -# Class: LanguageMetaInternal - -[language/LanguageMeta](../modules/language_LanguageMeta.md).LanguageMetaInternal - -## Table of contents - -### Constructors - -- [constructor](language_LanguageMeta.LanguageMetaInternal.md#constructor) - -### Properties - -- [address](language_LanguageMeta.LanguageMetaInternal.md#address) -- [description](language_LanguageMeta.LanguageMetaInternal.md#description) -- [name](language_LanguageMeta.LanguageMetaInternal.md#name) -- [possibleTemplateParams](language_LanguageMeta.LanguageMetaInternal.md#possibletemplateparams) -- [sourceCodeLink](language_LanguageMeta.LanguageMetaInternal.md#sourcecodelink) -- [templateAppliedParams](language_LanguageMeta.LanguageMetaInternal.md#templateappliedparams) -- [templateSourceLanguageAddress](language_LanguageMeta.LanguageMetaInternal.md#templatesourcelanguageaddress) - -## Constructors - -### constructor - -• **new LanguageMetaInternal**() - -## Properties - -### address - -• **address**: `string` - -#### Defined in - -[language/LanguageMeta.ts:57](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageMeta.ts#L57) - -___ - -### description - -• **description**: `string` - -#### Defined in - -[language/LanguageMeta.ts:58](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageMeta.ts#L58) - -___ - -### name - -• **name**: `string` - -#### Defined in - -[language/LanguageMeta.ts:56](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageMeta.ts#L56) - -___ - -### possibleTemplateParams - -• `Optional` **possibleTemplateParams**: `string`[] - -#### Defined in - -[language/LanguageMeta.ts:61](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageMeta.ts#L61) - -___ - -### sourceCodeLink - -• `Optional` **sourceCodeLink**: `string` - -#### Defined in - -[language/LanguageMeta.ts:62](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageMeta.ts#L62) - -___ - -### templateAppliedParams - -• `Optional` **templateAppliedParams**: `string` - -#### Defined in - -[language/LanguageMeta.ts:60](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageMeta.ts#L60) - -___ - -### templateSourceLanguageAddress - -• `Optional` **templateSourceLanguageAddress**: `string` - -#### Defined in - -[language/LanguageMeta.ts:59](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageMeta.ts#L59) diff --git a/docs/typedoc/classes/language_LanguageRef.LanguageRef.md b/docs/typedoc/classes/language_LanguageRef.LanguageRef.md deleted file mode 100644 index b4d043263..000000000 --- a/docs/typedoc/classes/language_LanguageRef.LanguageRef.md +++ /dev/null @@ -1,53 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/LanguageRef](../modules/language_LanguageRef.md) / LanguageRef - -# Class: LanguageRef - -[language/LanguageRef](../modules/language_LanguageRef.md).LanguageRef - -## Table of contents - -### Constructors - -- [constructor](language_LanguageRef.LanguageRef.md#constructor) - -### Properties - -- [address](language_LanguageRef.LanguageRef.md#address) -- [name](language_LanguageRef.LanguageRef.md#name) - -## Constructors - -### constructor - -• **new LanguageRef**(`address?`, `name?`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address?` | `string` | -| `name?` | `string` | - -#### Defined in - -[language/LanguageRef.ts:14](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageRef.ts#L14) - -## Properties - -### address - -• **address**: `string` - -#### Defined in - -[language/LanguageRef.ts:9](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageRef.ts#L9) - -___ - -### name - -• **name**: `string` - -#### Defined in - -[language/LanguageRef.ts:12](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageRef.ts#L12) diff --git a/docs/typedoc/classes/language_LanguageResolver.default.md b/docs/typedoc/classes/language_LanguageResolver.default.md deleted file mode 100644 index fa8685e5b..000000000 --- a/docs/typedoc/classes/language_LanguageResolver.default.md +++ /dev/null @@ -1,196 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/LanguageResolver](../modules/language_LanguageResolver.md) / default - -# Class: default - -[language/LanguageResolver](../modules/language_LanguageResolver.md).default - -Resolver classes are used here to define the GraphQL schema -(through the type-graphql annotations) -and are spawned in the client tests in Ad4mClient.test.ts. -For the latter, they return test fixtures. - -## Table of contents - -### Constructors - -- [constructor](language_LanguageResolver.default.md#constructor) - -### Methods - -- [language](language_LanguageResolver.default.md#language) -- [languageApplyTemplateAndPublish](language_LanguageResolver.default.md#languageapplytemplateandpublish) -- [languageMeta](language_LanguageResolver.default.md#languagemeta) -- [languagePublish](language_LanguageResolver.default.md#languagepublish) -- [languageRemove](language_LanguageResolver.default.md#languageremove) -- [languageSource](language_LanguageResolver.default.md#languagesource) -- [languageWriteSettings](language_LanguageResolver.default.md#languagewritesettings) -- [languages](language_LanguageResolver.default.md#languages) - -## Constructors - -### constructor - -• **new default**() - -## Methods - -### language - -▸ **language**(`address`): [`LanguageHandle`](language_LanguageHandle.LanguageHandle.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `string` | - -#### Returns - -[`LanguageHandle`](language_LanguageHandle.LanguageHandle.md) - -#### Defined in - -[language/LanguageResolver.ts:16](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageResolver.ts#L16) - -___ - -### languageApplyTemplateAndPublish - -▸ **languageApplyTemplateAndPublish**(`sourceLanguageHash`, `templateData`): [`LanguageRef`](language_LanguageRef.LanguageRef.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `sourceLanguageHash` | `string` | -| `templateData` | `string` | - -#### Returns - -[`LanguageRef`](language_LanguageRef.LanguageRef.md) - -#### Defined in - -[language/LanguageResolver.ts:49](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageResolver.ts#L49) - -___ - -### languageMeta - -▸ **languageMeta**(`address`): [`LanguageMeta`](language_LanguageMeta.LanguageMeta.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `string` | - -#### Returns - -[`LanguageMeta`](language_LanguageMeta.LanguageMeta.md) - -#### Defined in - -[language/LanguageResolver.ts:75](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageResolver.ts#L75) - -___ - -### languagePublish - -▸ **languagePublish**(`languagePath`, `languageMeta`): [`LanguageMeta`](language_LanguageMeta.LanguageMeta.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `languagePath` | `string` | -| `languageMeta` | [`LanguageMetaInput`](language_LanguageMeta.LanguageMetaInput.md) | - -#### Returns - -[`LanguageMeta`](language_LanguageMeta.LanguageMeta.md) - -#### Defined in - -[language/LanguageResolver.ts:57](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageResolver.ts#L57) - -___ - -### languageRemove - -▸ **languageRemove**(`address`): `Boolean` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `string` | - -#### Returns - -`Boolean` - -#### Defined in - -[language/LanguageResolver.ts:95](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageResolver.ts#L95) - -___ - -### languageSource - -▸ **languageSource**(`address`): `string` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `string` | - -#### Returns - -`string` - -#### Defined in - -[language/LanguageResolver.ts:90](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageResolver.ts#L90) - -___ - -### languageWriteSettings - -▸ **languageWriteSettings**(`languageAddress`, `settings`): `Boolean` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `languageAddress` | `string` | -| `settings` | `string` | - -#### Returns - -`Boolean` - -#### Defined in - -[language/LanguageResolver.ts:41](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageResolver.ts#L41) - -___ - -### languages - -▸ **languages**(`filter`): [`LanguageHandle`](language_LanguageHandle.LanguageHandle.md)[] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `filter` | `string` | - -#### Returns - -[`LanguageHandle`](language_LanguageHandle.LanguageHandle.md)[] - -#### Defined in - -[language/LanguageResolver.ts:29](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageResolver.ts#L29) diff --git a/docs/typedoc/classes/links_Links.Link.md b/docs/typedoc/classes/links_Links.Link.md deleted file mode 100644 index 149c69607..000000000 --- a/docs/typedoc/classes/links_Links.Link.md +++ /dev/null @@ -1,63 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [links/Links](../modules/links_Links.md) / Link - -# Class: Link - -[links/Links](../modules/links_Links.md).Link - -## Table of contents - -### Constructors - -- [constructor](links_Links.Link.md#constructor) - -### Properties - -- [predicate](links_Links.Link.md#predicate) -- [source](links_Links.Link.md#source) -- [target](links_Links.Link.md#target) - -## Constructors - -### constructor - -• **new Link**(`obj`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `obj` | `any` | - -#### Defined in - -[links/Links.ts:15](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/links/Links.ts#L15) - -## Properties - -### predicate - -• `Optional` **predicate**: `string` - -#### Defined in - -[links/Links.ts:13](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/links/Links.ts#L13) - -___ - -### source - -• **source**: `string` - -#### Defined in - -[links/Links.ts:7](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/links/Links.ts#L7) - -___ - -### target - -• **target**: `string` - -#### Defined in - -[links/Links.ts:10](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/links/Links.ts#L10) diff --git a/docs/typedoc/classes/links_Links.LinkExpression.md b/docs/typedoc/classes/links_Links.LinkExpression.md deleted file mode 100644 index 17979bd41..000000000 --- a/docs/typedoc/classes/links_Links.LinkExpression.md +++ /dev/null @@ -1,45 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [links/Links](../modules/links_Links.md) / LinkExpression - -# Class: LinkExpression - -[links/Links](../modules/links_Links.md).LinkExpression - -## Hierarchy - -- `any` - - ↳ **`LinkExpression`** - -## Table of contents - -### Constructors - -- [constructor](links_Links.LinkExpression.md#constructor) - -### Methods - -- [hash](links_Links.LinkExpression.md#hash) - -## Constructors - -### constructor - -• **new LinkExpression**() - -#### Inherited from - -ExpressionGeneric(Link).constructor - -## Methods - -### hash - -▸ **hash**(): `number` - -#### Returns - -`number` - -#### Defined in - -[links/Links.ts:58](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/links/Links.ts#L58) diff --git a/docs/typedoc/classes/links_Links.LinkExpressionInput.md b/docs/typedoc/classes/links_Links.LinkExpressionInput.md deleted file mode 100644 index e2a247095..000000000 --- a/docs/typedoc/classes/links_Links.LinkExpressionInput.md +++ /dev/null @@ -1,27 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [links/Links](../modules/links_Links.md) / LinkExpressionInput - -# Class: LinkExpressionInput - -[links/Links](../modules/links_Links.md).LinkExpressionInput - -## Hierarchy - -- `any` - - ↳ **`LinkExpressionInput`** - -## Table of contents - -### Constructors - -- [constructor](links_Links.LinkExpressionInput.md#constructor) - -## Constructors - -### constructor - -• **new LinkExpressionInput**() - -#### Inherited from - -ExpressionGenericInput(LinkInput).constructor diff --git a/docs/typedoc/classes/links_Links.LinkExpressionMutations.md b/docs/typedoc/classes/links_Links.LinkExpressionMutations.md deleted file mode 100644 index 276ed91f4..000000000 --- a/docs/typedoc/classes/links_Links.LinkExpressionMutations.md +++ /dev/null @@ -1,53 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [links/Links](../modules/links_Links.md) / LinkExpressionMutations - -# Class: LinkExpressionMutations - -[links/Links](../modules/links_Links.md).LinkExpressionMutations - -## Table of contents - -### Constructors - -- [constructor](links_Links.LinkExpressionMutations.md#constructor) - -### Properties - -- [additions](links_Links.LinkExpressionMutations.md#additions) -- [removals](links_Links.LinkExpressionMutations.md#removals) - -## Constructors - -### constructor - -• **new LinkExpressionMutations**(`additions`, `removals`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `additions` | [`LinkExpression`](links_Links.LinkExpression.md)[] | -| `removals` | [`LinkExpression`](links_Links.LinkExpression.md)[] | - -#### Defined in - -[links/Links.ts:38](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/links/Links.ts#L38) - -## Properties - -### additions - -• **additions**: [`LinkExpression`](links_Links.LinkExpression.md)[] - -#### Defined in - -[links/Links.ts:33](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/links/Links.ts#L33) - -___ - -### removals - -• **removals**: [`LinkExpression`](links_Links.LinkExpression.md)[] - -#### Defined in - -[links/Links.ts:36](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/links/Links.ts#L36) diff --git a/docs/typedoc/classes/links_Links.LinkExpressionUpdated.md b/docs/typedoc/classes/links_Links.LinkExpressionUpdated.md deleted file mode 100644 index f0546ffe4..000000000 --- a/docs/typedoc/classes/links_Links.LinkExpressionUpdated.md +++ /dev/null @@ -1,53 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [links/Links](../modules/links_Links.md) / LinkExpressionUpdated - -# Class: LinkExpressionUpdated - -[links/Links](../modules/links_Links.md).LinkExpressionUpdated - -## Table of contents - -### Constructors - -- [constructor](links_Links.LinkExpressionUpdated.md#constructor) - -### Properties - -- [newLink](links_Links.LinkExpressionUpdated.md#newlink) -- [oldLink](links_Links.LinkExpressionUpdated.md#oldlink) - -## Constructors - -### constructor - -• **new LinkExpressionUpdated**(`oldLink`, `newLink`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `oldLink` | [`LinkExpression`](links_Links.LinkExpression.md) | -| `newLink` | [`LinkExpression`](links_Links.LinkExpression.md) | - -#### Defined in - -[links/Links.ts:94](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/links/Links.ts#L94) - -## Properties - -### newLink - -• **newLink**: [`LinkExpression`](links_Links.LinkExpression.md) - -#### Defined in - -[links/Links.ts:92](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/links/Links.ts#L92) - -___ - -### oldLink - -• **oldLink**: [`LinkExpression`](links_Links.LinkExpression.md) - -#### Defined in - -[links/Links.ts:89](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/links/Links.ts#L89) diff --git a/docs/typedoc/classes/links_Links.LinkInput.md b/docs/typedoc/classes/links_Links.LinkInput.md deleted file mode 100644 index f7b44bfef..000000000 --- a/docs/typedoc/classes/links_Links.LinkInput.md +++ /dev/null @@ -1,53 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [links/Links](../modules/links_Links.md) / LinkInput - -# Class: LinkInput - -[links/Links](../modules/links_Links.md).LinkInput - -## Table of contents - -### Constructors - -- [constructor](links_Links.LinkInput.md#constructor) - -### Properties - -- [predicate](links_Links.LinkInput.md#predicate) -- [source](links_Links.LinkInput.md#source) -- [target](links_Links.LinkInput.md#target) - -## Constructors - -### constructor - -• **new LinkInput**() - -## Properties - -### predicate - -• `Optional` **predicate**: `string` - -#### Defined in - -[links/Links.ts:53](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/links/Links.ts#L53) - -___ - -### source - -• **source**: `string` - -#### Defined in - -[links/Links.ts:47](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/links/Links.ts#L47) - -___ - -### target - -• **target**: `string` - -#### Defined in - -[links/Links.ts:50](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/links/Links.ts#L50) diff --git a/docs/typedoc/classes/links_Links.LinkMutations.md b/docs/typedoc/classes/links_Links.LinkMutations.md deleted file mode 100644 index cc68f18e5..000000000 --- a/docs/typedoc/classes/links_Links.LinkMutations.md +++ /dev/null @@ -1,42 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [links/Links](../modules/links_Links.md) / LinkMutations - -# Class: LinkMutations - -[links/Links](../modules/links_Links.md).LinkMutations - -## Table of contents - -### Constructors - -- [constructor](links_Links.LinkMutations.md#constructor) - -### Properties - -- [additions](links_Links.LinkMutations.md#additions) -- [removals](links_Links.LinkMutations.md#removals) - -## Constructors - -### constructor - -• **new LinkMutations**() - -## Properties - -### additions - -• **additions**: [`LinkInput`](links_Links.LinkInput.md)[] - -#### Defined in - -[links/Links.ts:25](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/links/Links.ts#L25) - -___ - -### removals - -• **removals**: [`LinkExpressionInput`](links_Links.LinkExpressionInput.md)[] - -#### Defined in - -[links/Links.ts:28](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/links/Links.ts#L28) diff --git a/docs/typedoc/classes/neighbourhood_Neighbourhood.Neighbourhood.md b/docs/typedoc/classes/neighbourhood_Neighbourhood.Neighbourhood.md deleted file mode 100644 index d16a8d7d3..000000000 --- a/docs/typedoc/classes/neighbourhood_Neighbourhood.Neighbourhood.md +++ /dev/null @@ -1,53 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [neighbourhood/Neighbourhood](../modules/neighbourhood_Neighbourhood.md) / Neighbourhood - -# Class: Neighbourhood - -[neighbourhood/Neighbourhood](../modules/neighbourhood_Neighbourhood.md).Neighbourhood - -## Table of contents - -### Constructors - -- [constructor](neighbourhood_Neighbourhood.Neighbourhood.md#constructor) - -### Properties - -- [linkLanguage](neighbourhood_Neighbourhood.Neighbourhood.md#linklanguage) -- [meta](neighbourhood_Neighbourhood.Neighbourhood.md#meta) - -## Constructors - -### constructor - -• **new Neighbourhood**(`linkLanguage`, `meta`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `linkLanguage` | `string` | -| `meta` | [`Perspective`](perspectives_Perspective.Perspective.md) | - -#### Defined in - -[neighbourhood/Neighbourhood.ts:15](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/Neighbourhood.ts#L15) - -## Properties - -### linkLanguage - -• **linkLanguage**: `string` - -#### Defined in - -[neighbourhood/Neighbourhood.ts:10](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/Neighbourhood.ts#L10) - -___ - -### meta - -• **meta**: [`Perspective`](perspectives_Perspective.Perspective.md) - -#### Defined in - -[neighbourhood/Neighbourhood.ts:13](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/Neighbourhood.ts#L13) diff --git a/docs/typedoc/classes/neighbourhood_Neighbourhood.NeighbourhoodExpression.md b/docs/typedoc/classes/neighbourhood_Neighbourhood.NeighbourhoodExpression.md deleted file mode 100644 index 116e74466..000000000 --- a/docs/typedoc/classes/neighbourhood_Neighbourhood.NeighbourhoodExpression.md +++ /dev/null @@ -1,27 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [neighbourhood/Neighbourhood](../modules/neighbourhood_Neighbourhood.md) / NeighbourhoodExpression - -# Class: NeighbourhoodExpression - -[neighbourhood/Neighbourhood](../modules/neighbourhood_Neighbourhood.md).NeighbourhoodExpression - -## Hierarchy - -- `any` - - ↳ **`NeighbourhoodExpression`** - -## Table of contents - -### Constructors - -- [constructor](neighbourhood_Neighbourhood.NeighbourhoodExpression.md#constructor) - -## Constructors - -### constructor - -• **new NeighbourhoodExpression**() - -#### Inherited from - -ExpressionGeneric(Neighbourhood).constructor diff --git a/docs/typedoc/classes/neighbourhood_NeighbourhoodClient.NeighbourhoodClient.md b/docs/typedoc/classes/neighbourhood_NeighbourhoodClient.NeighbourhoodClient.md deleted file mode 100644 index 9b53c1f69..000000000 --- a/docs/typedoc/classes/neighbourhood_NeighbourhoodClient.NeighbourhoodClient.md +++ /dev/null @@ -1,240 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [neighbourhood/NeighbourhoodClient](../modules/neighbourhood_NeighbourhoodClient.md) / NeighbourhoodClient - -# Class: NeighbourhoodClient - -[neighbourhood/NeighbourhoodClient](../modules/neighbourhood_NeighbourhoodClient.md).NeighbourhoodClient - -## Table of contents - -### Constructors - -- [constructor](neighbourhood_NeighbourhoodClient.NeighbourhoodClient.md#constructor) - -### Properties - -- [#apolloClient](neighbourhood_NeighbourhoodClient.NeighbourhoodClient.md##apolloclient) - -### Methods - -- [addSignalHandler](neighbourhood_NeighbourhoodClient.NeighbourhoodClient.md#addsignalhandler) -- [hasTelepresenceAdapter](neighbourhood_NeighbourhoodClient.NeighbourhoodClient.md#hastelepresenceadapter) -- [joinFromUrl](neighbourhood_NeighbourhoodClient.NeighbourhoodClient.md#joinfromurl) -- [onlineAgents](neighbourhood_NeighbourhoodClient.NeighbourhoodClient.md#onlineagents) -- [otherAgents](neighbourhood_NeighbourhoodClient.NeighbourhoodClient.md#otheragents) -- [publishFromPerspective](neighbourhood_NeighbourhoodClient.NeighbourhoodClient.md#publishfromperspective) -- [sendBroadcast](neighbourhood_NeighbourhoodClient.NeighbourhoodClient.md#sendbroadcast) -- [sendSignal](neighbourhood_NeighbourhoodClient.NeighbourhoodClient.md#sendsignal) -- [setOnlineStatus](neighbourhood_NeighbourhoodClient.NeighbourhoodClient.md#setonlinestatus) - -## Constructors - -### constructor - -• **new NeighbourhoodClient**(`client`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `client` | `ApolloClient`<`any`\> | - -#### Defined in - -[neighbourhood/NeighbourhoodClient.ts:13](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodClient.ts#L13) - -## Properties - -### #apolloClient - -• `Private` **#apolloClient**: `ApolloClient`<`any`\> - -#### Defined in - -[neighbourhood/NeighbourhoodClient.ts:11](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodClient.ts#L11) - -## Methods - -### addSignalHandler - -▸ **addSignalHandler**(`perspectiveUUID`, `handler`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `perspectiveUUID` | `string` | -| `handler` | [`TelepresenceSignalCallback`](../modules/language_Language.md#telepresencesignalcallback) | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[neighbourhood/NeighbourhoodClient.ts:164](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodClient.ts#L164) - -___ - -### hasTelepresenceAdapter - -▸ **hasTelepresenceAdapter**(`perspectiveUUID`): `Promise`<`boolean`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `perspectiveUUID` | `string` | - -#### Returns - -`Promise`<`boolean`\> - -#### Defined in - -[neighbourhood/NeighbourhoodClient.ts:76](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodClient.ts#L76) - -___ - -### joinFromUrl - -▸ **joinFromUrl**(`url`): `Promise`<[`PerspectiveHandle`](perspectives_PerspectiveHandle.PerspectiveHandle.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `url` | `string` | - -#### Returns - -`Promise`<[`PerspectiveHandle`](perspectives_PerspectiveHandle.PerspectiveHandle.md)\> - -#### Defined in - -[neighbourhood/NeighbourhoodClient.ts:39](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodClient.ts#L39) - -___ - -### onlineAgents - -▸ **onlineAgents**(`perspectiveUUID`): `Promise`<[`OnlineAgent`](language_Language.OnlineAgent.md)[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `perspectiveUUID` | `string` | - -#### Returns - -`Promise`<[`OnlineAgent`](language_Language.OnlineAgent.md)[]\> - -#### Defined in - -[neighbourhood/NeighbourhoodClient.ts:86](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodClient.ts#L86) - -___ - -### otherAgents - -▸ **otherAgents**(`perspectiveUUID`): `Promise`<`string`[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `perspectiveUUID` | `string` | - -#### Returns - -`Promise`<`string`[]\> - -#### Defined in - -[neighbourhood/NeighbourhoodClient.ts:66](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodClient.ts#L66) - -___ - -### publishFromPerspective - -▸ **publishFromPerspective**(`perspectiveUUID`, `linkLanguage`, `meta`): `Promise`<`string`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `perspectiveUUID` | `string` | -| `linkLanguage` | `string` | -| `meta` | [`Perspective`](perspectives_Perspective.Perspective.md) | - -#### Returns - -`Promise`<`string`\> - -#### Defined in - -[neighbourhood/NeighbourhoodClient.ts:17](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodClient.ts#L17) - -___ - -### sendBroadcast - -▸ **sendBroadcast**(`perspectiveUUID`, `payload`): `Promise`<`boolean`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `perspectiveUUID` | `string` | -| `payload` | [`Perspective`](perspectives_Perspective.Perspective.md) | - -#### Returns - -`Promise`<`boolean`\> - -#### Defined in - -[neighbourhood/NeighbourhoodClient.ts:147](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodClient.ts#L147) - -___ - -### sendSignal - -▸ **sendSignal**(`perspectiveUUID`, `remoteAgentDid`, `payload`): `Promise`<`boolean`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `perspectiveUUID` | `string` | -| `remoteAgentDid` | `string` | -| `payload` | [`Perspective`](perspectives_Perspective.Perspective.md) | - -#### Returns - -`Promise`<`boolean`\> - -#### Defined in - -[neighbourhood/NeighbourhoodClient.ts:128](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodClient.ts#L128) - -___ - -### setOnlineStatus - -▸ **setOnlineStatus**(`perspectiveUUID`, `status`): `Promise`<`boolean`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `perspectiveUUID` | `string` | -| `status` | [`Perspective`](perspectives_Perspective.Perspective.md) | - -#### Returns - -`Promise`<`boolean`\> - -#### Defined in - -[neighbourhood/NeighbourhoodClient.ts:111](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodClient.ts#L111) diff --git a/docs/typedoc/classes/neighbourhood_NeighbourhoodProxy.NeighbourhoodProxy.md b/docs/typedoc/classes/neighbourhood_NeighbourhoodProxy.NeighbourhoodProxy.md deleted file mode 100644 index 789a78c01..000000000 --- a/docs/typedoc/classes/neighbourhood_NeighbourhoodProxy.NeighbourhoodProxy.md +++ /dev/null @@ -1,186 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [neighbourhood/NeighbourhoodProxy](../modules/neighbourhood_NeighbourhoodProxy.md) / NeighbourhoodProxy - -# Class: NeighbourhoodProxy - -[neighbourhood/NeighbourhoodProxy](../modules/neighbourhood_NeighbourhoodProxy.md).NeighbourhoodProxy - -## Table of contents - -### Constructors - -- [constructor](neighbourhood_NeighbourhoodProxy.NeighbourhoodProxy.md#constructor) - -### Properties - -- [#client](neighbourhood_NeighbourhoodProxy.NeighbourhoodProxy.md##client) -- [#pID](neighbourhood_NeighbourhoodProxy.NeighbourhoodProxy.md##pid) - -### Methods - -- [addSignalHandler](neighbourhood_NeighbourhoodProxy.NeighbourhoodProxy.md#addsignalhandler) -- [hasTelepresenceAdapter](neighbourhood_NeighbourhoodProxy.NeighbourhoodProxy.md#hastelepresenceadapter) -- [onlineAgents](neighbourhood_NeighbourhoodProxy.NeighbourhoodProxy.md#onlineagents) -- [otherAgents](neighbourhood_NeighbourhoodProxy.NeighbourhoodProxy.md#otheragents) -- [sendBroadcast](neighbourhood_NeighbourhoodProxy.NeighbourhoodProxy.md#sendbroadcast) -- [sendSignal](neighbourhood_NeighbourhoodProxy.NeighbourhoodProxy.md#sendsignal) -- [setOnlineStatus](neighbourhood_NeighbourhoodProxy.NeighbourhoodProxy.md#setonlinestatus) - -## Constructors - -### constructor - -• **new NeighbourhoodProxy**(`client`, `pID`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `client` | [`NeighbourhoodClient`](neighbourhood_NeighbourhoodClient.NeighbourhoodClient.md) | -| `pID` | `string` | - -#### Defined in - -[neighbourhood/NeighbourhoodProxy.ts:10](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodProxy.ts#L10) - -## Properties - -### #client - -• `Private` **#client**: [`NeighbourhoodClient`](neighbourhood_NeighbourhoodClient.NeighbourhoodClient.md) - -#### Defined in - -[neighbourhood/NeighbourhoodProxy.ts:7](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodProxy.ts#L7) - -___ - -### #pID - -• `Private` **#pID**: `string` - -#### Defined in - -[neighbourhood/NeighbourhoodProxy.ts:8](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodProxy.ts#L8) - -## Methods - -### addSignalHandler - -▸ **addSignalHandler**(`handler`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `handler` | (`payload`: [`PerspectiveExpression`](perspectives_Perspective.PerspectiveExpression.md)) => `void` | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[neighbourhood/NeighbourhoodProxy.ts:39](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodProxy.ts#L39) - -___ - -### hasTelepresenceAdapter - -▸ **hasTelepresenceAdapter**(): `Promise`<`boolean`\> - -#### Returns - -`Promise`<`boolean`\> - -#### Defined in - -[neighbourhood/NeighbourhoodProxy.ts:19](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodProxy.ts#L19) - -___ - -### onlineAgents - -▸ **onlineAgents**(): `Promise`<[`OnlineAgent`](language_Language.OnlineAgent.md)[]\> - -#### Returns - -`Promise`<[`OnlineAgent`](language_Language.OnlineAgent.md)[]\> - -#### Defined in - -[neighbourhood/NeighbourhoodProxy.ts:23](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodProxy.ts#L23) - -___ - -### otherAgents - -▸ **otherAgents**(): `Promise`<`string`[]\> - -#### Returns - -`Promise`<`string`[]\> - -#### Defined in - -[neighbourhood/NeighbourhoodProxy.ts:15](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodProxy.ts#L15) - -___ - -### sendBroadcast - -▸ **sendBroadcast**(`payload`): `Promise`<`boolean`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `payload` | [`Perspective`](perspectives_Perspective.Perspective.md) | - -#### Returns - -`Promise`<`boolean`\> - -#### Defined in - -[neighbourhood/NeighbourhoodProxy.ts:35](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodProxy.ts#L35) - -___ - -### sendSignal - -▸ **sendSignal**(`remoteAgentDid`, `payload`): `Promise`<`boolean`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `remoteAgentDid` | `string` | -| `payload` | [`Perspective`](perspectives_Perspective.Perspective.md) | - -#### Returns - -`Promise`<`boolean`\> - -#### Defined in - -[neighbourhood/NeighbourhoodProxy.ts:31](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodProxy.ts#L31) - -___ - -### setOnlineStatus - -▸ **setOnlineStatus**(`status`): `Promise`<`boolean`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `status` | [`Perspective`](perspectives_Perspective.Perspective.md) | - -#### Returns - -`Promise`<`boolean`\> - -#### Defined in - -[neighbourhood/NeighbourhoodProxy.ts:27](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodProxy.ts#L27) diff --git a/docs/typedoc/classes/neighbourhood_NeighbourhoodResolver.default.md b/docs/typedoc/classes/neighbourhood_NeighbourhoodResolver.default.md deleted file mode 100644 index 1ed6b4be2..000000000 --- a/docs/typedoc/classes/neighbourhood_NeighbourhoodResolver.default.md +++ /dev/null @@ -1,221 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [neighbourhood/NeighbourhoodResolver](../modules/neighbourhood_NeighbourhoodResolver.md) / default - -# Class: default - -[neighbourhood/NeighbourhoodResolver](../modules/neighbourhood_NeighbourhoodResolver.md).default - -Resolver classes are used here to define the GraphQL schema -(through the type-graphql annotations) -and are spawned in the client tests in Ad4mClient.test.ts. -For the latter, they return test fixtures. - -## Table of contents - -### Constructors - -- [constructor](neighbourhood_NeighbourhoodResolver.default.md#constructor) - -### Methods - -- [neighbourhoodHasTelepresenceAdapter](neighbourhood_NeighbourhoodResolver.default.md#neighbourhoodhastelepresenceadapter) -- [neighbourhoodJoinFromUrl](neighbourhood_NeighbourhoodResolver.default.md#neighbourhoodjoinfromurl) -- [neighbourhoodOnlineAgents](neighbourhood_NeighbourhoodResolver.default.md#neighbourhoodonlineagents) -- [neighbourhoodOtherAgents](neighbourhood_NeighbourhoodResolver.default.md#neighbourhoodotheragents) -- [neighbourhoodPublishFromPerspective](neighbourhood_NeighbourhoodResolver.default.md#neighbourhoodpublishfromperspective) -- [neighbourhoodSendBroadcast](neighbourhood_NeighbourhoodResolver.default.md#neighbourhoodsendbroadcast) -- [neighbourhoodSendSignal](neighbourhood_NeighbourhoodResolver.default.md#neighbourhoodsendsignal) -- [neighbourhoodSetOnlineStatus](neighbourhood_NeighbourhoodResolver.default.md#neighbourhoodsetonlinestatus) -- [neighbourhoodSignal](neighbourhood_NeighbourhoodResolver.default.md#neighbourhoodsignal) - -## Constructors - -### constructor - -• **new default**() - -## Methods - -### neighbourhoodHasTelepresenceAdapter - -▸ **neighbourhoodHasTelepresenceAdapter**(`perspectiveUUID`): `boolean` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `perspectiveUUID` | `string` | - -#### Returns - -`boolean` - -#### Defined in - -[neighbourhood/NeighbourhoodResolver.ts:53](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodResolver.ts#L53) - -___ - -### neighbourhoodJoinFromUrl - -▸ **neighbourhoodJoinFromUrl**(`url`, `pubSub`): [`PerspectiveHandle`](perspectives_PerspectiveHandle.PerspectiveHandle.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `url` | `string` | -| `pubSub` | `any` | - -#### Returns - -[`PerspectiveHandle`](perspectives_PerspectiveHandle.PerspectiveHandle.md) - -#### Defined in - -[neighbourhood/NeighbourhoodResolver.ts:37](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodResolver.ts#L37) - -___ - -### neighbourhoodOnlineAgents - -▸ **neighbourhoodOnlineAgents**(`perspectiveUUID`): [`OnlineAgent`](language_Language.OnlineAgent.md)[] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `perspectiveUUID` | `string` | - -#### Returns - -[`OnlineAgent`](language_Language.OnlineAgent.md)[] - -#### Defined in - -[neighbourhood/NeighbourhoodResolver.ts:58](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodResolver.ts#L58) - -___ - -### neighbourhoodOtherAgents - -▸ **neighbourhoodOtherAgents**(`perspectiveUUID`): `string`[] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `perspectiveUUID` | `string` | - -#### Returns - -`string`[] - -#### Defined in - -[neighbourhood/NeighbourhoodResolver.ts:48](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodResolver.ts#L48) - -___ - -### neighbourhoodPublishFromPerspective - -▸ **neighbourhoodPublishFromPerspective**(`perspectiveUUID`, `linkLanguage`, `meta`): `string` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `perspectiveUUID` | `string` | -| `linkLanguage` | `string` | -| `meta` | [`PerspectiveInput`](perspectives_Perspective.PerspectiveInput.md) | - -#### Returns - -`string` - -#### Defined in - -[neighbourhood/NeighbourhoodResolver.ts:28](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodResolver.ts#L28) - -___ - -### neighbourhoodSendBroadcast - -▸ **neighbourhoodSendBroadcast**(`perspectiveUUID`, `signal`): `boolean` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `perspectiveUUID` | `string` | -| `signal` | [`PerspectiveInput`](perspectives_Perspective.PerspectiveInput.md) | - -#### Returns - -`boolean` - -#### Defined in - -[neighbourhood/NeighbourhoodResolver.ts:76](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodResolver.ts#L76) - -___ - -### neighbourhoodSendSignal - -▸ **neighbourhoodSendSignal**(`perspectiveUUID`, `recipient`, `signal`): `boolean` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `perspectiveUUID` | `string` | -| `recipient` | `string` | -| `signal` | [`PerspectiveInput`](perspectives_Perspective.PerspectiveInput.md) | - -#### Returns - -`boolean` - -#### Defined in - -[neighbourhood/NeighbourhoodResolver.ts:71](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodResolver.ts#L71) - -___ - -### neighbourhoodSetOnlineStatus - -▸ **neighbourhoodSetOnlineStatus**(`perspectiveUUID`, `status`): `boolean` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `perspectiveUUID` | `string` | -| `status` | [`PerspectiveInput`](perspectives_Perspective.PerspectiveInput.md) | - -#### Returns - -`boolean` - -#### Defined in - -[neighbourhood/NeighbourhoodResolver.ts:66](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodResolver.ts#L66) - -___ - -### neighbourhoodSignal - -▸ **neighbourhoodSignal**(`pID`): [`PerspectiveExpression`](perspectives_Perspective.PerspectiveExpression.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `pID` | `string` | - -#### Returns - -[`PerspectiveExpression`](perspectives_Perspective.PerspectiveExpression.md) - -#### Defined in - -[neighbourhood/NeighbourhoodResolver.ts:81](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/neighbourhood/NeighbourhoodResolver.ts#L81) diff --git a/docs/typedoc/classes/perspectives_LinkQuery.LinkQuery.md b/docs/typedoc/classes/perspectives_LinkQuery.LinkQuery.md deleted file mode 100644 index 6d9e29ab9..000000000 --- a/docs/typedoc/classes/perspectives_LinkQuery.LinkQuery.md +++ /dev/null @@ -1,120 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [perspectives/LinkQuery](../modules/perspectives_LinkQuery.md) / LinkQuery - -# Class: LinkQuery - -[perspectives/LinkQuery](../modules/perspectives_LinkQuery.md).LinkQuery - -## Table of contents - -### Constructors - -- [constructor](perspectives_LinkQuery.LinkQuery.md#constructor) - -### Properties - -- [fromDate](perspectives_LinkQuery.LinkQuery.md#fromdate) -- [limit](perspectives_LinkQuery.LinkQuery.md#limit) -- [predicate](perspectives_LinkQuery.LinkQuery.md#predicate) -- [source](perspectives_LinkQuery.LinkQuery.md#source) -- [target](perspectives_LinkQuery.LinkQuery.md#target) -- [untilDate](perspectives_LinkQuery.LinkQuery.md#untildate) - -### Methods - -- [isMatch](perspectives_LinkQuery.LinkQuery.md#ismatch) - -## Constructors - -### constructor - -• **new LinkQuery**(`obj`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `obj` | `object` | - -#### Defined in - -[perspectives/LinkQuery.ts:25](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/LinkQuery.ts#L25) - -## Properties - -### fromDate - -• `Optional` **fromDate**: `Date` - -#### Defined in - -[perspectives/LinkQuery.ts:17](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/LinkQuery.ts#L17) - -___ - -### limit - -• `Optional` **limit**: `number` - -#### Defined in - -[perspectives/LinkQuery.ts:23](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/LinkQuery.ts#L23) - -___ - -### predicate - -• `Optional` **predicate**: `string` - -#### Defined in - -[perspectives/LinkQuery.ts:14](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/LinkQuery.ts#L14) - -___ - -### source - -• `Optional` **source**: `string` - -#### Defined in - -[perspectives/LinkQuery.ts:8](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/LinkQuery.ts#L8) - -___ - -### target - -• `Optional` **target**: `string` - -#### Defined in - -[perspectives/LinkQuery.ts:11](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/LinkQuery.ts#L11) - -___ - -### untilDate - -• `Optional` **untilDate**: `Date` - -#### Defined in - -[perspectives/LinkQuery.ts:20](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/LinkQuery.ts#L20) - -## Methods - -### isMatch - -▸ **isMatch**(`l`): `boolean` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `l` | [`Link`](links_Links.Link.md) | - -#### Returns - -`boolean` - -#### Defined in - -[perspectives/LinkQuery.ts:51](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/LinkQuery.ts#L51) diff --git a/docs/typedoc/classes/perspectives_Perspective.Perspective.md b/docs/typedoc/classes/perspectives_Perspective.Perspective.md deleted file mode 100644 index 5ea51ab17..000000000 --- a/docs/typedoc/classes/perspectives_Perspective.Perspective.md +++ /dev/null @@ -1,106 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [perspectives/Perspective](../modules/perspectives_Perspective.md) / Perspective - -# Class: Perspective - -[perspectives/Perspective](../modules/perspectives_Perspective.md).Perspective - -A Perspective represents subjective meaning, encoded through -associations between expressions, a.k.a. Links, that is a graph -over the objective Expressions of any subset of Languages. - -This type represents the clean onotological concept of a Perspective. -An instance of this class can be regarded as an immutable snapshot of -a mutable perspective. - -The types PerspectiveProxy and PerspectiveHandle are used when dealing -with an instantiated mutable perspective as is done through most of -the GraphQL mutations. - -## Table of contents - -### Constructors - -- [constructor](perspectives_Perspective.Perspective.md#constructor) - -### Properties - -- [links](perspectives_Perspective.Perspective.md#links) - -### Methods - -- [get](perspectives_Perspective.Perspective.md#get) -- [getSingleTarget](perspectives_Perspective.Perspective.md#getsingletarget) - -## Constructors - -### constructor - -• **new Perspective**(`links?`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `links?` | [`LinkExpression`](links_Links.LinkExpression.md)[] | - -#### Defined in - -[perspectives/Perspective.ts:24](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/Perspective.ts#L24) - -## Properties - -### links - -• **links**: [`LinkExpression`](links_Links.LinkExpression.md)[] - -The content of the perspective, a list/graph of links - -#### Defined in - -[perspectives/Perspective.ts:22](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/Perspective.ts#L22) - -## Methods - -### get - -▸ **get**(`query`): [`LinkExpression`](links_Links.LinkExpression.md)[] - -Convenience function for filtering links just like with PerspectiveProxy - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `query` | [`LinkQuery`](perspectives_LinkQuery.LinkQuery.md) | - -#### Returns - -[`LinkExpression`](links_Links.LinkExpression.md)[] - -#### Defined in - -[perspectives/Perspective.ts:33](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/Perspective.ts#L33) - -___ - -### getSingleTarget - -▸ **getSingleTarget**(`query`): `string` \| `void` - -Convenience function to get the target of the first link that matches the given query -This makes sense when the query is expected to return only one link -and the target of that link is what you are looking for. - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `query` | [`LinkQuery`](perspectives_LinkQuery.LinkQuery.md) | - -#### Returns - -`string` \| `void` - -#### Defined in - -[perspectives/Perspective.ts:81](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/Perspective.ts#L81) diff --git a/docs/typedoc/classes/perspectives_Perspective.PerspectiveExpression.md b/docs/typedoc/classes/perspectives_Perspective.PerspectiveExpression.md deleted file mode 100644 index 1b4a19dde..000000000 --- a/docs/typedoc/classes/perspectives_Perspective.PerspectiveExpression.md +++ /dev/null @@ -1,27 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [perspectives/Perspective](../modules/perspectives_Perspective.md) / PerspectiveExpression - -# Class: PerspectiveExpression - -[perspectives/Perspective](../modules/perspectives_Perspective.md).PerspectiveExpression - -## Hierarchy - -- `any` - - ↳ **`PerspectiveExpression`** - -## Table of contents - -### Constructors - -- [constructor](perspectives_Perspective.PerspectiveExpression.md#constructor) - -## Constructors - -### constructor - -• **new PerspectiveExpression**() - -#### Inherited from - -ExpressionGeneric(Perspective).constructor diff --git a/docs/typedoc/classes/perspectives_Perspective.PerspectiveInput.md b/docs/typedoc/classes/perspectives_Perspective.PerspectiveInput.md deleted file mode 100644 index 723584604..000000000 --- a/docs/typedoc/classes/perspectives_Perspective.PerspectiveInput.md +++ /dev/null @@ -1,31 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [perspectives/Perspective](../modules/perspectives_Perspective.md) / PerspectiveInput - -# Class: PerspectiveInput - -[perspectives/Perspective](../modules/perspectives_Perspective.md).PerspectiveInput - -## Table of contents - -### Constructors - -- [constructor](perspectives_Perspective.PerspectiveInput.md#constructor) - -### Properties - -- [links](perspectives_Perspective.PerspectiveInput.md#links) - -## Constructors - -### constructor - -• **new PerspectiveInput**() - -## Properties - -### links - -• **links**: [`LinkExpressionInput`](links_Links.LinkExpressionInput.md)[] - -#### Defined in - -[perspectives/Perspective.ts:95](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/Perspective.ts#L95) diff --git a/docs/typedoc/classes/perspectives_PerspectiveClient.PerspectiveClient.md b/docs/typedoc/classes/perspectives_PerspectiveClient.PerspectiveClient.md deleted file mode 100644 index dc19bd9ae..000000000 --- a/docs/typedoc/classes/perspectives_PerspectiveClient.PerspectiveClient.md +++ /dev/null @@ -1,721 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [perspectives/PerspectiveClient](../modules/perspectives_PerspectiveClient.md) / PerspectiveClient - -# Class: PerspectiveClient - -[perspectives/PerspectiveClient](../modules/perspectives_PerspectiveClient.md).PerspectiveClient - -## Table of contents - -### Constructors - -- [constructor](perspectives_PerspectiveClient.PerspectiveClient.md#constructor) - -### Properties - -- [#apolloClient](perspectives_PerspectiveClient.PerspectiveClient.md##apolloclient) -- [#expressionClient](perspectives_PerspectiveClient.PerspectiveClient.md##expressionclient) -- [#neighbourhoodClient](perspectives_PerspectiveClient.PerspectiveClient.md##neighbourhoodclient) -- [#perspectiveAddedCallbacks](perspectives_PerspectiveClient.PerspectiveClient.md##perspectiveaddedcallbacks) -- [#perspectiveRemovedCallbacks](perspectives_PerspectiveClient.PerspectiveClient.md##perspectiveremovedcallbacks) -- [#perspectiveUpdatedCallbacks](perspectives_PerspectiveClient.PerspectiveClient.md##perspectiveupdatedcallbacks) - -### Methods - -- [add](perspectives_PerspectiveClient.PerspectiveClient.md#add) -- [addLink](perspectives_PerspectiveClient.PerspectiveClient.md#addlink) -- [addLinkExpression](perspectives_PerspectiveClient.PerspectiveClient.md#addlinkexpression) -- [addLinks](perspectives_PerspectiveClient.PerspectiveClient.md#addlinks) -- [addPerspectiveAddedListener](perspectives_PerspectiveClient.PerspectiveClient.md#addperspectiveaddedlistener) -- [addPerspectiveLinkAddedListener](perspectives_PerspectiveClient.PerspectiveClient.md#addperspectivelinkaddedlistener) -- [addPerspectiveLinkRemovedListener](perspectives_PerspectiveClient.PerspectiveClient.md#addperspectivelinkremovedlistener) -- [addPerspectiveLinkUpdatedListener](perspectives_PerspectiveClient.PerspectiveClient.md#addperspectivelinkupdatedlistener) -- [addPerspectiveRemovedListener](perspectives_PerspectiveClient.PerspectiveClient.md#addperspectiveremovedlistener) -- [addPerspectiveUpdatedListener](perspectives_PerspectiveClient.PerspectiveClient.md#addperspectiveupdatedlistener) -- [all](perspectives_PerspectiveClient.PerspectiveClient.md#all) -- [byUUID](perspectives_PerspectiveClient.PerspectiveClient.md#byuuid) -- [createExpression](perspectives_PerspectiveClient.PerspectiveClient.md#createexpression) -- [getExpression](perspectives_PerspectiveClient.PerspectiveClient.md#getexpression) -- [getNeighbourhoodProxy](perspectives_PerspectiveClient.PerspectiveClient.md#getneighbourhoodproxy) -- [linkMutations](perspectives_PerspectiveClient.PerspectiveClient.md#linkmutations) -- [publishSnapshotByUUID](perspectives_PerspectiveClient.PerspectiveClient.md#publishsnapshotbyuuid) -- [queryLinks](perspectives_PerspectiveClient.PerspectiveClient.md#querylinks) -- [queryProlog](perspectives_PerspectiveClient.PerspectiveClient.md#queryprolog) -- [remove](perspectives_PerspectiveClient.PerspectiveClient.md#remove) -- [removeLink](perspectives_PerspectiveClient.PerspectiveClient.md#removelink) -- [removeLinks](perspectives_PerspectiveClient.PerspectiveClient.md#removelinks) -- [setExpressionClient](perspectives_PerspectiveClient.PerspectiveClient.md#setexpressionclient) -- [setNeighbourhoodClient](perspectives_PerspectiveClient.PerspectiveClient.md#setneighbourhoodclient) -- [snapshotByUUID](perspectives_PerspectiveClient.PerspectiveClient.md#snapshotbyuuid) -- [subscribePerspectiveAdded](perspectives_PerspectiveClient.PerspectiveClient.md#subscribeperspectiveadded) -- [subscribePerspectiveRemoved](perspectives_PerspectiveClient.PerspectiveClient.md#subscribeperspectiveremoved) -- [subscribePerspectiveUpdated](perspectives_PerspectiveClient.PerspectiveClient.md#subscribeperspectiveupdated) -- [update](perspectives_PerspectiveClient.PerspectiveClient.md#update) -- [updateLink](perspectives_PerspectiveClient.PerspectiveClient.md#updatelink) - -## Constructors - -### constructor - -• **new PerspectiveClient**(`client`, `subscribe?`) - -#### Parameters - -| Name | Type | Default value | -| :------ | :------ | :------ | -| `client` | `ApolloClient`<`any`\> | `undefined` | -| `subscribe` | `boolean` | `true` | - -#### Defined in - -[perspectives/PerspectiveClient.ts:50](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L50) - -## Properties - -### #apolloClient - -• `Private` **#apolloClient**: `ApolloClient`<`any`\> - -#### Defined in - -[perspectives/PerspectiveClient.ts:43](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L43) - -___ - -### #expressionClient - -• `Private` `Optional` **#expressionClient**: [`ExpressionClient`](expression_ExpressionClient.ExpressionClient.md) - -#### Defined in - -[perspectives/PerspectiveClient.ts:47](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L47) - -___ - -### #neighbourhoodClient - -• `Private` `Optional` **#neighbourhoodClient**: [`NeighbourhoodClient`](neighbourhood_NeighbourhoodClient.NeighbourhoodClient.md) - -#### Defined in - -[perspectives/PerspectiveClient.ts:48](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L48) - -___ - -### #perspectiveAddedCallbacks - -• `Private` **#perspectiveAddedCallbacks**: [`PerspectiveHandleCallback`](../modules/perspectives_PerspectiveClient.md#perspectivehandlecallback)[] - -#### Defined in - -[perspectives/PerspectiveClient.ts:44](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L44) - -___ - -### #perspectiveRemovedCallbacks - -• `Private` **#perspectiveRemovedCallbacks**: [`UuidCallback`](../modules/perspectives_PerspectiveClient.md#uuidcallback)[] - -#### Defined in - -[perspectives/PerspectiveClient.ts:46](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L46) - -___ - -### #perspectiveUpdatedCallbacks - -• `Private` **#perspectiveUpdatedCallbacks**: [`PerspectiveHandleCallback`](../modules/perspectives_PerspectiveClient.md#perspectivehandlecallback)[] - -#### Defined in - -[perspectives/PerspectiveClient.ts:45](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L45) - -## Methods - -### add - -▸ **add**(`name`): `Promise`<[`PerspectiveProxy`](perspectives_PerspectiveProxy.PerspectiveProxy.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `name` | `string` | - -#### Returns - -`Promise`<[`PerspectiveProxy`](perspectives_PerspectiveProxy.PerspectiveProxy.md)\> - -#### Defined in - -[perspectives/PerspectiveClient.ts:140](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L140) - -___ - -### addLink - -▸ **addLink**(`uuid`, `link`): `Promise`<[`LinkExpression`](links_Links.LinkExpression.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | -| `link` | [`Link`](links_Links.Link.md) | - -#### Returns - -`Promise`<[`LinkExpression`](links_Links.LinkExpression.md)\> - -#### Defined in - -[perspectives/PerspectiveClient.ts:173](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L173) - -___ - -### addLinkExpression - -▸ **addLinkExpression**(`uuid`, `link`): `Promise`<[`LinkExpression`](links_Links.LinkExpression.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | -| `link` | [`LinkExpressionInput`](links_Links.LinkExpressionInput.md) | - -#### Returns - -`Promise`<[`LinkExpression`](links_Links.LinkExpression.md)\> - -#### Defined in - -[perspectives/PerspectiveClient.ts:226](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L226) - -___ - -### addLinks - -▸ **addLinks**(`uuid`, `links`): `Promise`<[`LinkExpression`](links_Links.LinkExpression.md)[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | -| `links` | [`Link`](links_Links.Link.md)[] | - -#### Returns - -`Promise`<[`LinkExpression`](links_Links.LinkExpression.md)[]\> - -#### Defined in - -[perspectives/PerspectiveClient.ts:185](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L185) - -___ - -### addPerspectiveAddedListener - -▸ **addPerspectiveAddedListener**(`cb`): `void` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `cb` | [`PerspectiveHandleCallback`](../modules/perspectives_PerspectiveClient.md#perspectivehandlecallback) | - -#### Returns - -`void` - -#### Defined in - -[perspectives/PerspectiveClient.ts:283](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L283) - -___ - -### addPerspectiveLinkAddedListener - -▸ **addPerspectiveLinkAddedListener**(`uuid`, `cb`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `String` | -| `cb` | [`LinkCallback`](../modules/perspectives_PerspectiveClient.md#linkcallback)[] | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[perspectives/PerspectiveClient.ts:340](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L340) - -___ - -### addPerspectiveLinkRemovedListener - -▸ **addPerspectiveLinkRemovedListener**(`uuid`, `cb`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `String` | -| `cb` | [`LinkCallback`](../modules/perspectives_PerspectiveClient.md#linkcallback)[] | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[perspectives/PerspectiveClient.ts:357](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L357) - -___ - -### addPerspectiveLinkUpdatedListener - -▸ **addPerspectiveLinkUpdatedListener**(`uuid`, `cb`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `String` | -| `cb` | [`LinkCallback`](../modules/perspectives_PerspectiveClient.md#linkcallback)[] | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[perspectives/PerspectiveClient.ts:374](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L374) - -___ - -### addPerspectiveRemovedListener - -▸ **addPerspectiveRemovedListener**(`cb`): `void` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `cb` | [`UuidCallback`](../modules/perspectives_PerspectiveClient.md#uuidcallback) | - -#### Returns - -`void` - -#### Defined in - -[perspectives/PerspectiveClient.ts:321](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L321) - -___ - -### addPerspectiveUpdatedListener - -▸ **addPerspectiveUpdatedListener**(`cb`): `void` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `cb` | [`PerspectiveHandleCallback`](../modules/perspectives_PerspectiveClient.md#perspectivehandlecallback) | - -#### Returns - -`void` - -#### Defined in - -[perspectives/PerspectiveClient.ts:302](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L302) - -___ - -### all - -▸ **all**(): `Promise`<[`PerspectiveProxy`](perspectives_PerspectiveProxy.PerspectiveProxy.md)[]\> - -#### Returns - -`Promise`<[`PerspectiveProxy`](perspectives_PerspectiveProxy.PerspectiveProxy.md)[]\> - -#### Defined in - -[perspectives/PerspectiveClient.ts:71](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L71) - -___ - -### byUUID - -▸ **byUUID**(`uuid`): `Promise`<[`PerspectiveProxy`](perspectives_PerspectiveProxy.PerspectiveProxy.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | - -#### Returns - -`Promise`<[`PerspectiveProxy`](perspectives_PerspectiveProxy.PerspectiveProxy.md)\> - -#### Defined in - -[perspectives/PerspectiveClient.ts:83](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L83) - -___ - -### createExpression - -▸ **createExpression**(`content`, `languageAddress`): `Promise`<`string`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `content` | `any` | -| `languageAddress` | `string` | - -#### Returns - -`Promise`<`string`\> - -#### Defined in - -[perspectives/PerspectiveClient.ts:278](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L278) - -___ - -### getExpression - -▸ **getExpression**(`expressionURI`): `Promise`<[`ExpressionRendered`](expression_Expression.ExpressionRendered.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `expressionURI` | `string` | - -#### Returns - -`Promise`<[`ExpressionRendered`](expression_Expression.ExpressionRendered.md)\> - -#### Defined in - -[perspectives/PerspectiveClient.ts:274](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L274) - -___ - -### getNeighbourhoodProxy - -▸ **getNeighbourhoodProxy**(`uuid`): [`NeighbourhoodProxy`](neighbourhood_NeighbourhoodProxy.NeighbourhoodProxy.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | - -#### Returns - -[`NeighbourhoodProxy`](neighbourhood_NeighbourhoodProxy.NeighbourhoodProxy.md) - -#### Defined in - -[perspectives/PerspectiveClient.ts:398](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L398) - -___ - -### linkMutations - -▸ **linkMutations**(`uuid`, `mutations`): `Promise`<[`LinkExpressionMutations`](links_Links.LinkExpressionMutations.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | -| `mutations` | [`LinkMutations`](links_Links.LinkMutations.md) | - -#### Returns - -`Promise`<[`LinkExpressionMutations`](links_Links.LinkExpressionMutations.md)\> - -#### Defined in - -[perspectives/PerspectiveClient.ts:209](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L209) - -___ - -### publishSnapshotByUUID - -▸ **publishSnapshotByUUID**(`uuid`): `Promise`<`string`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | - -#### Returns - -`Promise`<`string`\> - -#### Defined in - -[perspectives/PerspectiveClient.ts:107](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L107) - -___ - -### queryLinks - -▸ **queryLinks**(`uuid`, `query`): `Promise`<[`LinkExpression`](links_Links.LinkExpression.md)[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | -| `query` | [`LinkQuery`](perspectives_LinkQuery.LinkQuery.md) | - -#### Returns - -`Promise`<[`LinkExpression`](links_Links.LinkExpression.md)[]\> - -#### Defined in - -[perspectives/PerspectiveClient.ts:117](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L117) - -___ - -### queryProlog - -▸ **queryProlog**(`uuid`, `query`): `Promise`<`any`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | -| `query` | `string` | - -#### Returns - -`Promise`<`any`\> - -#### Defined in - -[perspectives/PerspectiveClient.ts:129](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L129) - -___ - -### remove - -▸ **remove**(`uuid`): `Promise`<{ `perspectiveRemove`: `boolean` }\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | - -#### Returns - -`Promise`<{ `perspectiveRemove`: `boolean` }\> - -#### Defined in - -[perspectives/PerspectiveClient.ts:164](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L164) - -___ - -### removeLink - -▸ **removeLink**(`uuid`, `link`): `Promise`<{ `perspectiveRemoveLink`: `boolean` }\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | -| `link` | [`LinkExpressionInput`](links_Links.LinkExpressionInput.md) | - -#### Returns - -`Promise`<{ `perspectiveRemoveLink`: `boolean` }\> - -#### Defined in - -[perspectives/PerspectiveClient.ts:261](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L261) - -___ - -### removeLinks - -▸ **removeLinks**(`uuid`, `links`): `Promise`<[`LinkExpression`](links_Links.LinkExpression.md)[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | -| `links` | [`LinkExpressionInput`](links_Links.LinkExpressionInput.md)[] | - -#### Returns - -`Promise`<[`LinkExpression`](links_Links.LinkExpression.md)[]\> - -#### Defined in - -[perspectives/PerspectiveClient.ts:197](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L197) - -___ - -### setExpressionClient - -▸ **setExpressionClient**(`client`): `void` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `client` | [`ExpressionClient`](expression_ExpressionClient.ExpressionClient.md) | - -#### Returns - -`void` - -#### Defined in - -[perspectives/PerspectiveClient.ts:63](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L63) - -___ - -### setNeighbourhoodClient - -▸ **setNeighbourhoodClient**(`client`): `void` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `client` | [`NeighbourhoodClient`](neighbourhood_NeighbourhoodClient.NeighbourhoodClient.md) | - -#### Returns - -`void` - -#### Defined in - -[perspectives/PerspectiveClient.ts:67](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L67) - -___ - -### snapshotByUUID - -▸ **snapshotByUUID**(`uuid`): `Promise`<[`Perspective`](perspectives_Perspective.Perspective.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | - -#### Returns - -`Promise`<[`Perspective`](perspectives_Perspective.Perspective.md)\> - -#### Defined in - -[perspectives/PerspectiveClient.ts:96](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L96) - -___ - -### subscribePerspectiveAdded - -▸ **subscribePerspectiveAdded**(): `void` - -#### Returns - -`void` - -#### Defined in - -[perspectives/PerspectiveClient.ts:287](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L287) - -___ - -### subscribePerspectiveRemoved - -▸ **subscribePerspectiveRemoved**(): `void` - -#### Returns - -`void` - -#### Defined in - -[perspectives/PerspectiveClient.ts:325](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L325) - -___ - -### subscribePerspectiveUpdated - -▸ **subscribePerspectiveUpdated**(): `void` - -#### Returns - -`void` - -#### Defined in - -[perspectives/PerspectiveClient.ts:306](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L306) - -___ - -### update - -▸ **update**(`uuid`, `name`): `Promise`<[`PerspectiveProxy`](perspectives_PerspectiveProxy.PerspectiveProxy.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | -| `name` | `string` | - -#### Returns - -`Promise`<[`PerspectiveProxy`](perspectives_PerspectiveProxy.PerspectiveProxy.md)\> - -#### Defined in - -[perspectives/PerspectiveClient.ts:152](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L152) - -___ - -### updateLink - -▸ **updateLink**(`uuid`, `oldLink`, `newLink`): `Promise`<[`LinkExpression`](links_Links.LinkExpression.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | -| `oldLink` | [`LinkExpressionInput`](links_Links.LinkExpressionInput.md) | -| `newLink` | [`LinkInput`](links_Links.LinkInput.md) | - -#### Returns - -`Promise`<[`LinkExpression`](links_Links.LinkExpression.md)\> - -#### Defined in - -[perspectives/PerspectiveClient.ts:238](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L238) diff --git a/docs/typedoc/classes/perspectives_PerspectiveDiff.PerspectiveDiff.md b/docs/typedoc/classes/perspectives_PerspectiveDiff.PerspectiveDiff.md deleted file mode 100644 index 86ca65708..000000000 --- a/docs/typedoc/classes/perspectives_PerspectiveDiff.PerspectiveDiff.md +++ /dev/null @@ -1,42 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [perspectives/PerspectiveDiff](../modules/perspectives_PerspectiveDiff.md) / PerspectiveDiff - -# Class: PerspectiveDiff - -[perspectives/PerspectiveDiff](../modules/perspectives_PerspectiveDiff.md).PerspectiveDiff - -## Table of contents - -### Constructors - -- [constructor](perspectives_PerspectiveDiff.PerspectiveDiff.md#constructor) - -### Properties - -- [additions](perspectives_PerspectiveDiff.PerspectiveDiff.md#additions) -- [removals](perspectives_PerspectiveDiff.PerspectiveDiff.md#removals) - -## Constructors - -### constructor - -• **new PerspectiveDiff**() - -## Properties - -### additions - -• **additions**: [`LinkExpression`](links_Links.LinkExpression.md)[] - -#### Defined in - -[perspectives/PerspectiveDiff.ts:8](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveDiff.ts#L8) - -___ - -### removals - -• **removals**: [`LinkExpression`](links_Links.LinkExpression.md)[] - -#### Defined in - -[perspectives/PerspectiveDiff.ts:11](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveDiff.ts#L11) diff --git a/docs/typedoc/classes/perspectives_PerspectiveDiff.PerspectiveDiffExpression.md b/docs/typedoc/classes/perspectives_PerspectiveDiff.PerspectiveDiffExpression.md deleted file mode 100644 index f3e1cd729..000000000 --- a/docs/typedoc/classes/perspectives_PerspectiveDiff.PerspectiveDiffExpression.md +++ /dev/null @@ -1,27 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [perspectives/PerspectiveDiff](../modules/perspectives_PerspectiveDiff.md) / PerspectiveDiffExpression - -# Class: PerspectiveDiffExpression - -[perspectives/PerspectiveDiff](../modules/perspectives_PerspectiveDiff.md).PerspectiveDiffExpression - -## Hierarchy - -- `any` - - ↳ **`PerspectiveDiffExpression`** - -## Table of contents - -### Constructors - -- [constructor](perspectives_PerspectiveDiff.PerspectiveDiffExpression.md#constructor) - -## Constructors - -### constructor - -• **new PerspectiveDiffExpression**() - -#### Inherited from - -ExpressionGeneric(PerspectiveDiff).constructor diff --git a/docs/typedoc/classes/perspectives_PerspectiveHandle.PerspectiveHandle.md b/docs/typedoc/classes/perspectives_PerspectiveHandle.PerspectiveHandle.md deleted file mode 100644 index b6df83b08..000000000 --- a/docs/typedoc/classes/perspectives_PerspectiveHandle.PerspectiveHandle.md +++ /dev/null @@ -1,87 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [perspectives/PerspectiveHandle](../modules/perspectives_PerspectiveHandle.md) / PerspectiveHandle - -# Class: PerspectiveHandle - -[perspectives/PerspectiveHandle](../modules/perspectives_PerspectiveHandle.md).PerspectiveHandle - -## Table of contents - -### Constructors - -- [constructor](perspectives_PerspectiveHandle.PerspectiveHandle.md#constructor) - -### Properties - -- [name](perspectives_PerspectiveHandle.PerspectiveHandle.md#name) -- [neighbourhood](perspectives_PerspectiveHandle.PerspectiveHandle.md#neighbourhood) -- [sharedUrl](perspectives_PerspectiveHandle.PerspectiveHandle.md#sharedurl) -- [state](perspectives_PerspectiveHandle.PerspectiveHandle.md#state) -- [uuid](perspectives_PerspectiveHandle.PerspectiveHandle.md#uuid) - -## Constructors - -### constructor - -• **new PerspectiveHandle**(`uuid?`, `name?`, `state?`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid?` | `string` | -| `name?` | `string` | -| `state?` | [`PerspectiveState`](../enums/perspectives_PerspectiveHandle.PerspectiveState.md) | - -#### Defined in - -[perspectives/PerspectiveHandle.ts:30](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveHandle.ts#L30) - -## Properties - -### name - -• **name**: `string` - -#### Defined in - -[perspectives/PerspectiveHandle.ts:20](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveHandle.ts#L20) - -___ - -### neighbourhood - -• `Optional` **neighbourhood**: [`Neighbourhood`](neighbourhood_Neighbourhood.Neighbourhood.md) - -#### Defined in - -[perspectives/PerspectiveHandle.ts:28](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveHandle.ts#L28) - -___ - -### sharedUrl - -• `Optional` **sharedUrl**: `string` - -#### Defined in - -[perspectives/PerspectiveHandle.ts:25](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveHandle.ts#L25) - -___ - -### state - -• **state**: [`PerspectiveState`](../enums/perspectives_PerspectiveHandle.PerspectiveState.md) - -#### Defined in - -[perspectives/PerspectiveHandle.ts:22](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveHandle.ts#L22) - -___ - -### uuid - -• **uuid**: `string` - -#### Defined in - -[perspectives/PerspectiveHandle.ts:18](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveHandle.ts#L18) diff --git a/docs/typedoc/classes/perspectives_PerspectiveProxy.PerspectiveProxy.md b/docs/typedoc/classes/perspectives_PerspectiveProxy.PerspectiveProxy.md deleted file mode 100644 index e4c944f34..000000000 --- a/docs/typedoc/classes/perspectives_PerspectiveProxy.PerspectiveProxy.md +++ /dev/null @@ -1,1074 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [perspectives/PerspectiveProxy](../modules/perspectives_PerspectiveProxy.md) / PerspectiveProxy - -# Class: PerspectiveProxy - -[perspectives/PerspectiveProxy](../modules/perspectives_PerspectiveProxy.md).PerspectiveProxy - -Perspective UI proxy object - -Convenience object for UIs to interact with a perspective. -It is created by some of the methods in the PerspectiveClient class and includes -a reference to the PerspectiveClient object that created it. - -## Table of contents - -### Constructors - -- [constructor](perspectives_PerspectiveProxy.PerspectiveProxy.md#constructor) - -### Properties - -- [#client](perspectives_PerspectiveProxy.PerspectiveProxy.md##client) -- [#handle](perspectives_PerspectiveProxy.PerspectiveProxy.md##handle) -- [#perspectiveLinkAddedCallbacks](perspectives_PerspectiveProxy.PerspectiveProxy.md##perspectivelinkaddedcallbacks) -- [#perspectiveLinkRemovedCallbacks](perspectives_PerspectiveProxy.PerspectiveProxy.md##perspectivelinkremovedcallbacks) -- [#perspectiveLinkUpdatedCallbacks](perspectives_PerspectiveProxy.PerspectiveProxy.md##perspectivelinkupdatedcallbacks) - -### Accessors - -- [name](perspectives_PerspectiveProxy.PerspectiveProxy.md#name) -- [neighbourhood](perspectives_PerspectiveProxy.PerspectiveProxy.md#neighbourhood) -- [sharedUrl](perspectives_PerspectiveProxy.PerspectiveProxy.md#sharedurl) -- [state](perspectives_PerspectiveProxy.PerspectiveProxy.md#state) -- [uuid](perspectives_PerspectiveProxy.PerspectiveProxy.md#uuid) - -### Methods - -- [add](perspectives_PerspectiveProxy.PerspectiveProxy.md#add) -- [addLinkExpression](perspectives_PerspectiveProxy.PerspectiveProxy.md#addlinkexpression) -- [addLinks](perspectives_PerspectiveProxy.PerspectiveProxy.md#addlinks) -- [addListener](perspectives_PerspectiveProxy.PerspectiveProxy.md#addlistener) -- [addSdna](perspectives_PerspectiveProxy.PerspectiveProxy.md#addsdna) -- [availableFlows](perspectives_PerspectiveProxy.PerspectiveProxy.md#availableflows) -- [createExpression](perspectives_PerspectiveProxy.PerspectiveProxy.md#createexpression) -- [createSubject](perspectives_PerspectiveProxy.PerspectiveProxy.md#createsubject) -- [ensureSDNASubjectClass](perspectives_PerspectiveProxy.PerspectiveProxy.md#ensuresdnasubjectclass) -- [executeAction](perspectives_PerspectiveProxy.PerspectiveProxy.md#executeaction) -- [expressionsInFlowState](perspectives_PerspectiveProxy.PerspectiveProxy.md#expressionsinflowstate) -- [flowActions](perspectives_PerspectiveProxy.PerspectiveProxy.md#flowactions) -- [flowState](perspectives_PerspectiveProxy.PerspectiveProxy.md#flowstate) -- [get](perspectives_PerspectiveProxy.PerspectiveProxy.md#get) -- [getAllSubjectInstances](perspectives_PerspectiveProxy.PerspectiveProxy.md#getallsubjectinstances) -- [getExpression](perspectives_PerspectiveProxy.PerspectiveProxy.md#getexpression) -- [getNeighbourhoodProxy](perspectives_PerspectiveProxy.PerspectiveProxy.md#getneighbourhoodproxy) -- [getSdna](perspectives_PerspectiveProxy.PerspectiveProxy.md#getsdna) -- [getSingleTarget](perspectives_PerspectiveProxy.PerspectiveProxy.md#getsingletarget) -- [getSubjectProxy](perspectives_PerspectiveProxy.PerspectiveProxy.md#getsubjectproxy) -- [infer](perspectives_PerspectiveProxy.PerspectiveProxy.md#infer) -- [isSubjectInstance](perspectives_PerspectiveProxy.PerspectiveProxy.md#issubjectinstance) -- [linkMutations](perspectives_PerspectiveProxy.PerspectiveProxy.md#linkmutations) -- [loadSnapshot](perspectives_PerspectiveProxy.PerspectiveProxy.md#loadsnapshot) -- [remove](perspectives_PerspectiveProxy.PerspectiveProxy.md#remove) -- [removeLinks](perspectives_PerspectiveProxy.PerspectiveProxy.md#removelinks) -- [removeListener](perspectives_PerspectiveProxy.PerspectiveProxy.md#removelistener) -- [runFlowAction](perspectives_PerspectiveProxy.PerspectiveProxy.md#runflowaction) -- [sdnaFlows](perspectives_PerspectiveProxy.PerspectiveProxy.md#sdnaflows) -- [setSdna](perspectives_PerspectiveProxy.PerspectiveProxy.md#setsdna) -- [setSingleTarget](perspectives_PerspectiveProxy.PerspectiveProxy.md#setsingletarget) -- [snapshot](perspectives_PerspectiveProxy.PerspectiveProxy.md#snapshot) -- [startFlow](perspectives_PerspectiveProxy.PerspectiveProxy.md#startflow) -- [stringOrTemplateObjectToSubjectClass](perspectives_PerspectiveProxy.PerspectiveProxy.md#stringortemplateobjecttosubjectclass) -- [subjectClasses](perspectives_PerspectiveProxy.PerspectiveProxy.md#subjectclasses) -- [subjectClassesByTemplate](perspectives_PerspectiveProxy.PerspectiveProxy.md#subjectclassesbytemplate) -- [update](perspectives_PerspectiveProxy.PerspectiveProxy.md#update) - -## Constructors - -### constructor - -• **new PerspectiveProxy**(`handle`, `ad4m`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `handle` | [`PerspectiveHandle`](perspectives_PerspectiveHandle.PerspectiveHandle.md) | -| `ad4m` | [`PerspectiveClient`](perspectives_PerspectiveClient.PerspectiveClient.md) | - -#### Defined in - -[perspectives/PerspectiveProxy.ts:33](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L33) - -## Properties - -### #client - -• `Private` **#client**: [`PerspectiveClient`](perspectives_PerspectiveClient.PerspectiveClient.md) - -#### Defined in - -[perspectives/PerspectiveProxy.ts:28](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L28) - -___ - -### #handle - -• `Private` **#handle**: [`PerspectiveHandle`](perspectives_PerspectiveHandle.PerspectiveHandle.md) - -#### Defined in - -[perspectives/PerspectiveProxy.ts:27](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L27) - -___ - -### #perspectiveLinkAddedCallbacks - -• `Private` **#perspectiveLinkAddedCallbacks**: [`LinkCallback`](../modules/perspectives_PerspectiveClient.md#linkcallback)[] - -#### Defined in - -[perspectives/PerspectiveProxy.ts:29](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L29) - -___ - -### #perspectiveLinkRemovedCallbacks - -• `Private` **#perspectiveLinkRemovedCallbacks**: [`LinkCallback`](../modules/perspectives_PerspectiveClient.md#linkcallback)[] - -#### Defined in - -[perspectives/PerspectiveProxy.ts:30](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L30) - -___ - -### #perspectiveLinkUpdatedCallbacks - -• `Private` **#perspectiveLinkUpdatedCallbacks**: [`LinkCallback`](../modules/perspectives_PerspectiveClient.md#linkcallback)[] - -#### Defined in - -[perspectives/PerspectiveProxy.ts:31](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L31) - -## Accessors - -### name - -• `get` **name**(): `string` - -Given name of the perspective - -#### Returns - -`string` - -#### Defined in - -[perspectives/PerspectiveProxy.ts:95](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L95) - -___ - -### neighbourhood - -• `get` **neighbourhood**(): `void` \| [`Neighbourhood`](neighbourhood_Neighbourhood.Neighbourhood.md) - -If the perspective is shared as a Neighbourhood, this is the Neighbourhood Expression - -#### Returns - -`void` \| [`Neighbourhood`](neighbourhood_Neighbourhood.Neighbourhood.md) - -#### Defined in - -[perspectives/PerspectiveProxy.ts:105](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L105) - -___ - -### sharedUrl - -• `get` **sharedUrl**(): `string` \| `void` - -If the perspective is shared as a Neighbourhood, this is the Neighbourhood URL - -#### Returns - -`string` \| `void` - -#### Defined in - -[perspectives/PerspectiveProxy.ts:100](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L100) - -___ - -### state - -• `get` **state**(): [`PerspectiveState`](../enums/perspectives_PerspectiveHandle.PerspectiveState.md) - -Returns the state of the perspective * - -#### Returns - -[`PerspectiveState`](../enums/perspectives_PerspectiveHandle.PerspectiveState.md) - -#### Defined in - -[perspectives/PerspectiveProxy.ts:110](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L110) - -___ - -### uuid - -• `get` **uuid**(): `string` - -Unique ID of the perspective - -#### Returns - -`string` - -#### Defined in - -[perspectives/PerspectiveProxy.ts:90](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L90) - -## Methods - -### add - -▸ **add**(`link`): `Promise`<[`LinkExpression`](links_Links.LinkExpression.md)\> - -Adds a link to this perspective - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `link` | [`Link`](links_Links.Link.md) | - -#### Returns - -`Promise`<[`LinkExpression`](links_Links.LinkExpression.md)\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:125](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L125) - -___ - -### addLinkExpression - -▸ **addLinkExpression**(`link`): `Promise`<[`LinkExpression`](links_Links.LinkExpression.md)\> - -Adds a linkExpression to this perspective - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `link` | [`LinkExpressionInput`](links_Links.LinkExpressionInput.md) | - -#### Returns - -`Promise`<[`LinkExpression`](links_Links.LinkExpression.md)\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:145](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L145) - -___ - -### addLinks - -▸ **addLinks**(`links`): `Promise`<[`LinkExpression`](links_Links.LinkExpression.md)[]\> - -Adds multiple links to this perspective * - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `links` | [`Link`](links_Links.Link.md)[] | - -#### Returns - -`Promise`<[`LinkExpression`](links_Links.LinkExpression.md)[]\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:130](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L130) - -___ - -### addListener - -▸ **addListener**(`type`, `cb`): `Promise`<`void`\> - -Adds a link listener - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `type` | `PerspectiveListenerTypes` | Can be 'link-added' or 'link-removed' | -| `cb` | [`LinkCallback`](../modules/perspectives_PerspectiveClient.md#linkcallback) | Callback function that is called when a link is added to the perspective | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:169](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L169) - -___ - -### addSdna - -▸ **addSdna**(`sdnaCode`): `Promise`<`void`\> - -Adds the given Social DNA code to the perspective's SDNA code - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `sdnaCode` | `string` | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:328](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L328) - -___ - -### availableFlows - -▸ **availableFlows**(`exprAddr`): `Promise`<`string`[]\> - -Returns all Social DNA flows that can be started from the given expression - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `exprAddr` | `string` | - -#### Returns - -`Promise`<`string`[]\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:265](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L265) - -___ - -### createExpression - -▸ **createExpression**(`content`, `languageAddress`): `Promise`<`string`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `content` | `any` | -| `languageAddress` | `string` | - -#### Returns - -`Promise`<`string`\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:161](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L161) - -___ - -### createSubject - -▸ **createSubject**<`T`\>(`subjectClass`, `exprAddr`): `Promise`<`T`\> - -Creates a new subject instance by running its (SDNA defined) constructor, -which means adding links around the given expression address so that it -conforms to the given subject class. - -#### Type parameters - -| Name | -| :------ | -| `T` | - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `subjectClass` | `T` | Either a string with the name of the subject class, or an object with the properties of the subject class. In the latter case, the first subject class that matches the given properties will be used. | -| `exprAddr` | `string` | The address of the expression to be turned into a subject instance | - -#### Returns - -`Promise`<`T`\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:368](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L368) - -___ - -### ensureSDNASubjectClass - -▸ **ensureSDNASubjectClass**(`jsClass`): `Promise`<`void`\> - -Takes a JS class (its constructor) and assumes that it was decorated by -the - -**`Subject Class`** - -etc. decorators. It then tests if there is a subject class -already present in the perspective's SDNA that matches the given class. -If there is no such class, it gets the JS class's SDNA by calling its -static generateSDNA() function and adds it to the perspective's SDNA. - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `jsClass` | `any` | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:506](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L506) - -___ - -### executeAction - -▸ **executeAction**(`actions`, `expression`, `parameters`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `actions` | `any` | -| `expression` | `any` | -| `parameters` | `Parameter`[] | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:44](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L44) - -___ - -### expressionsInFlowState - -▸ **expressionsInFlowState**(`flowName`, `flowState`): `Promise`<`string`[]\> - -Returns all expressions in the given state of given Social DNA flow - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `flowName` | `string` | -| `flowState` | `number` | - -#### Returns - -`Promise`<`string`[]\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:279](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L279) - -___ - -### flowActions - -▸ **flowActions**(`flowName`, `exprAddr`): `Promise`<`string`[]\> - -Returns available action names, with regard to Social DNA flow and expression's flow state - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `flowName` | `string` | -| `exprAddr` | `string` | - -#### Returns - -`Promise`<`string`[]\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:291](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L291) - -___ - -### flowState - -▸ **flowState**(`flowName`, `exprAddr`): `Promise`<`number`\> - -Returns the given expression's flow state with regard to given Social DNA flow - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `flowName` | `string` | -| `exprAddr` | `string` | - -#### Returns - -`Promise`<`number`\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:285](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L285) - -___ - -### get - -▸ **get**(`query`): `Promise`<[`LinkExpression`](links_Links.LinkExpression.md)[]\> - -Returns all the links of this perspective that matches the LinkQuery - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `query` | [`LinkQuery`](perspectives_LinkQuery.LinkQuery.md) | - -#### Returns - -`Promise`<[`LinkExpression`](links_Links.LinkExpression.md)[]\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:115](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L115) - -___ - -### getAllSubjectInstances - -▸ **getAllSubjectInstances**<`T`\>(`subjectClass`): `Promise`<`T`[]\> - -Returns all subject instances of the given subject class as proxy objects. - -#### Type parameters - -| Name | -| :------ | -| `T` | - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `subjectClass` | `T` | Either a string with the name of the subject class, or an object with the properties of the subject class. In the latter case, all subject classes that match the given properties will be used. | - -#### Returns - -`Promise`<`T`[]\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:416](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L416) - -___ - -### getExpression - -▸ **getExpression**(`expressionURI`): `Promise`<[`ExpressionRendered`](expression_Expression.ExpressionRendered.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `expressionURI` | `string` | - -#### Returns - -`Promise`<[`ExpressionRendered`](expression_Expression.ExpressionRendered.md)\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:157](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L157) - -___ - -### getNeighbourhoodProxy - -▸ **getNeighbourhoodProxy**(): [`NeighbourhoodProxy`](neighbourhood_NeighbourhoodProxy.NeighbourhoodProxy.md) - -#### Returns - -[`NeighbourhoodProxy`](neighbourhood_NeighbourhoodProxy.NeighbourhoodProxy.md) - -#### Defined in - -[perspectives/PerspectiveProxy.ts:514](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L514) - -___ - -### getSdna - -▸ **getSdna**(): `Promise`<`string`[]\> - -Returns the perspective's Social DNA code -This will return all SDNA code elements in an array. - -#### Returns - -`Promise`<`string`[]\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:318](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L318) - -___ - -### getSingleTarget - -▸ **getSingleTarget**(`query`): `Promise`<`string` \| `void`\> - -Convenience function to get the target of the first link that matches the given query -This makes sense when the query is expected to return only one link -and the target of that link is what you are looking for. - -Works best together with - -**`Member`** - -setSingelTarget() - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `query` | [`LinkQuery`](perspectives_LinkQuery.LinkQuery.md) | - -#### Returns - -`Promise`<`string` \| `void`\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:227](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L227) - -___ - -### getSubjectProxy - -▸ **getSubjectProxy**<`T`\>(`base`, `subjectClass`): `Promise`<`T`\> - -For an existing subject instance (existing in the perspective's links) -this function returns a proxy object that can be used to access the subject's -properties and methods. - -#### Type parameters - -| Name | -| :------ | -| `T` | - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `base` | `string` | URI of the subject's root expression | -| `subjectClass` | `T` | Either a string with the name of the subject class, or an object with the properties of the subject class. In the latter case, the first subject class that matches the given properties will be used. | - -#### Returns - -`Promise`<`T`\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:401](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L401) - -___ - -### infer - -▸ **infer**(`query`): `Promise`<`any`\> - -Runs a Prolog query on the perspective's Prolog engine - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `query` | `string` | - -#### Returns - -`Promise`<`any`\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:120](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L120) - -___ - -### isSubjectInstance - -▸ **isSubjectInstance**<`T`\>(`expression`, `subjectClass`): `Promise`<`boolean`\> - -Checks if the given expression is a subject instance of the given subject class - -#### Type parameters - -| Name | -| :------ | -| `T` | - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `expression` | `string` | The expression to be checked | -| `subjectClass` | `T` | Either a string with the name of the subject class, or an object with the properties of the subject class. In the latter case, the first subject class that matches the given properties will be used. | - -#### Returns - -`Promise`<`boolean`\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:386](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L386) - -___ - -### linkMutations - -▸ **linkMutations**(`mutations`): `Promise`<[`LinkExpressionMutations`](links_Links.LinkExpressionMutations.md)\> - -Adds and removes multiple links from this perspective * - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `mutations` | [`LinkMutations`](links_Links.LinkMutations.md) | - -#### Returns - -`Promise`<[`LinkExpressionMutations`](links_Links.LinkExpressionMutations.md)\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:140](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L140) - -___ - -### loadSnapshot - -▸ **loadSnapshot**(`snapshot`): `Promise`<`void`\> - -Take and load all the links from the given snapshot - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `snapshot` | [`Perspective`](perspectives_Perspective.Perspective.md) | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:208](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L208) - -___ - -### remove - -▸ **remove**(`link`): `Promise`<{ `perspectiveRemoveLink`: `boolean` }\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `link` | [`LinkExpressionInput`](links_Links.LinkExpressionInput.md) | - -#### Returns - -`Promise`<{ `perspectiveRemoveLink`: `boolean` }\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:153](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L153) - -___ - -### removeLinks - -▸ **removeLinks**(`links`): `Promise`<[`LinkExpression`](links_Links.LinkExpression.md)[]\> - -Removes multiple links from this perspective * - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `links` | [`LinkExpressionInput`](links_Links.LinkExpressionInput.md)[] | - -#### Returns - -`Promise`<[`LinkExpression`](links_Links.LinkExpression.md)[]\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:135](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L135) - -___ - -### removeListener - -▸ **removeListener**(`type`, `cb`): `Promise`<`void`\> - -Removes a previously added link listener - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `type` | `PerspectiveListenerTypes` | Can be 'link-added' or 'link-removed' | -| `cb` | [`LinkCallback`](../modules/perspectives_PerspectiveClient.md#linkcallback) | Callback function that is called when a link is added to the perspective | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:183](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L183) - -___ - -### runFlowAction - -▸ **runFlowAction**(`flowName`, `exprAddr`, `actionName`): `Promise`<`void`\> - -Runs given Social DNA flow action - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `flowName` | `string` | -| `exprAddr` | `string` | -| `actionName` | `string` | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:297](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L297) - -___ - -### sdnaFlows - -▸ **sdnaFlows**(): `Promise`<`string`[]\> - -Returns all the Social DNA flows defined in this perspective - -#### Returns - -`Promise`<`string`[]\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:259](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L259) - -___ - -### setSdna - -▸ **setSdna**(`sdnaCode`): `Promise`<`void`\> - -Set the perspective's Social DNA code to the given string. -This will replace all previous SDNA code elements with the new one. - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `sdnaCode` | `string` | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:307](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L307) - -___ - -### setSingleTarget - -▸ **setSingleTarget**(`link`): `Promise`<`void`\> - -Convenience function to ensure there is only one link with given source and predicate -This function will remove all links with the same source and predicate as the given link, -and then add the given link. -This ensures there is only one target for the given source and predicate. - -Works best together with - -**`Member`** - -getSingleTarget() - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `link` | [`Link`](links_Links.Link.md) | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:243](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L243) - -___ - -### snapshot - -▸ **snapshot**(): `Promise`<[`Perspective`](perspectives_Perspective.Perspective.md)\> - -Create and return a snapshot of this perspective -A snapshot is a rendered Perspectie object that contains all the links of the perspective. - -#### Returns - -`Promise`<[`Perspective`](perspectives_Perspective.Perspective.md)\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:203](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L203) - -___ - -### startFlow - -▸ **startFlow**(`flowName`, `exprAddr`): `Promise`<`void`\> - -Starts the Social DNA flow - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `flowName` | `string` | on the expression | -| `exprAddr` | `string` | | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:271](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L271) - -___ - -### stringOrTemplateObjectToSubjectClass - -▸ **stringOrTemplateObjectToSubjectClass**<`T`\>(`subjectClass`): `Promise`<`string`\> - -#### Type parameters - -| Name | -| :------ | -| `T` | - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `subjectClass` | `T` | - -#### Returns - -`Promise`<`string`\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:345](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L345) - -___ - -### subjectClasses - -▸ **subjectClasses**(): `Promise`<`string`[]\> - -Returns all the Subject classes defined in this perspectives SDNA - -#### Returns - -`Promise`<`string`[]\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:337](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L337) - -___ - -### subjectClassesByTemplate - -▸ **subjectClassesByTemplate**(`obj`): `Promise`<`string`[]\> - -Returns all subject classes that match the given template object. -This function looks at the properties of the template object and -its setters and collections to create a Prolog query that finds -all subject classes that would be converted to a proxy object -with exactly the same properties and collections. - -Since there could be multiple subject classes that match the given -criteria, this function returns a list of class names. - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `obj` | `object` | The template object | - -#### Returns - -`Promise`<`string`[]\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:444](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L444) - -___ - -### update - -▸ **update**(`oldLink`, `newLink`): `Promise`<[`LinkExpression`](links_Links.LinkExpression.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `oldLink` | [`LinkExpressionInput`](links_Links.LinkExpressionInput.md) | -| `newLink` | [`Link`](links_Links.Link.md) | - -#### Returns - -`Promise`<[`LinkExpression`](links_Links.LinkExpression.md)\> - -#### Defined in - -[perspectives/PerspectiveProxy.ts:149](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveProxy.ts#L149) diff --git a/docs/typedoc/classes/perspectives_PerspectiveResolver.default.md b/docs/typedoc/classes/perspectives_PerspectiveResolver.default.md deleted file mode 100644 index 9423bdb21..000000000 --- a/docs/typedoc/classes/perspectives_PerspectiveResolver.default.md +++ /dev/null @@ -1,484 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [perspectives/PerspectiveResolver](../modules/perspectives_PerspectiveResolver.md) / default - -# Class: default - -[perspectives/PerspectiveResolver](../modules/perspectives_PerspectiveResolver.md).default - -Resolver classes are used here to define the GraphQL schema -(through the type-graphql annotations) -and are spawned in the client tests in Ad4mClient.test.ts. -For the latter, they return test fixtures. - -## Table of contents - -### Constructors - -- [constructor](perspectives_PerspectiveResolver.default.md#constructor) - -### Methods - -- [perspective](perspectives_PerspectiveResolver.default.md#perspective) -- [perspectiveAdd](perspectives_PerspectiveResolver.default.md#perspectiveadd) -- [perspectiveAddLink](perspectives_PerspectiveResolver.default.md#perspectiveaddlink) -- [perspectiveAddLinkExpression](perspectives_PerspectiveResolver.default.md#perspectiveaddlinkexpression) -- [perspectiveAddLinks](perspectives_PerspectiveResolver.default.md#perspectiveaddlinks) -- [perspectiveAdded](perspectives_PerspectiveResolver.default.md#perspectiveadded) -- [perspectiveLinkAdded](perspectives_PerspectiveResolver.default.md#perspectivelinkadded) -- [perspectiveLinkMutations](perspectives_PerspectiveResolver.default.md#perspectivelinkmutations) -- [perspectiveLinkRemoved](perspectives_PerspectiveResolver.default.md#perspectivelinkremoved) -- [perspectiveLinkUpdated](perspectives_PerspectiveResolver.default.md#perspectivelinkupdated) -- [perspectivePublishSnapshot](perspectives_PerspectiveResolver.default.md#perspectivepublishsnapshot) -- [perspectiveQueryLinks](perspectives_PerspectiveResolver.default.md#perspectivequerylinks) -- [perspectiveQueryProlog](perspectives_PerspectiveResolver.default.md#perspectivequeryprolog) -- [perspectiveRemove](perspectives_PerspectiveResolver.default.md#perspectiveremove) -- [perspectiveRemoveLink](perspectives_PerspectiveResolver.default.md#perspectiveremovelink) -- [perspectiveRemoveLinks](perspectives_PerspectiveResolver.default.md#perspectiveremovelinks) -- [perspectiveRemoved](perspectives_PerspectiveResolver.default.md#perspectiveremoved) -- [perspectiveSnapshot](perspectives_PerspectiveResolver.default.md#perspectivesnapshot) -- [perspectiveUpdate](perspectives_PerspectiveResolver.default.md#perspectiveupdate) -- [perspectiveUpdateLink](perspectives_PerspectiveResolver.default.md#perspectiveupdatelink) -- [perspectiveUpdated](perspectives_PerspectiveResolver.default.md#perspectiveupdated) -- [perspectives](perspectives_PerspectiveResolver.default.md#perspectives) - -## Constructors - -### constructor - -• **new default**() - -## Methods - -### perspective - -▸ **perspective**(`uuid`): [`PerspectiveHandle`](perspectives_PerspectiveHandle.PerspectiveHandle.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | - -#### Returns - -[`PerspectiveHandle`](perspectives_PerspectiveHandle.PerspectiveHandle.md) - -#### Defined in - -[perspectives/PerspectiveResolver.ts:44](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveResolver.ts#L44) - -___ - -### perspectiveAdd - -▸ **perspectiveAdd**(`name`, `pubSub`): [`PerspectiveHandle`](perspectives_PerspectiveHandle.PerspectiveHandle.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `name` | `string` | -| `pubSub` | `any` | - -#### Returns - -[`PerspectiveHandle`](perspectives_PerspectiveHandle.PerspectiveHandle.md) - -#### Defined in - -[perspectives/PerspectiveResolver.ts:69](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveResolver.ts#L69) - -___ - -### perspectiveAddLink - -▸ **perspectiveAddLink**(`uuid`, `link`, `pubSub`): [`LinkExpression`](links_Links.LinkExpression.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | -| `link` | [`LinkInput`](links_Links.LinkInput.md) | -| `pubSub` | `any` | - -#### Returns - -[`LinkExpression`](links_Links.LinkExpression.md) - -#### Defined in - -[perspectives/PerspectiveResolver.ts:90](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveResolver.ts#L90) - -___ - -### perspectiveAddLinkExpression - -▸ **perspectiveAddLinkExpression**(`uuid`, `link`, `pubSub`): [`LinkExpression`](links_Links.LinkExpression.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | -| `link` | [`LinkExpressionInput`](links_Links.LinkExpressionInput.md) | -| `pubSub` | `any` | - -#### Returns - -[`LinkExpression`](links_Links.LinkExpression.md) - -#### Defined in - -[perspectives/PerspectiveResolver.ts:147](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveResolver.ts#L147) - -___ - -### perspectiveAddLinks - -▸ **perspectiveAddLinks**(`uuid`, `links`, `pubSub`): [`LinkExpression`](links_Links.LinkExpression.md)[] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | -| `links` | [`LinkInput`](links_Links.LinkInput.md)[] | -| `pubSub` | `any` | - -#### Returns - -[`LinkExpression`](links_Links.LinkExpression.md)[] - -#### Defined in - -[perspectives/PerspectiveResolver.ts:102](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveResolver.ts#L102) - -___ - -### perspectiveAdded - -▸ **perspectiveAdded**(): [`PerspectiveHandle`](perspectives_PerspectiveHandle.PerspectiveHandle.md) - -#### Returns - -[`PerspectiveHandle`](perspectives_PerspectiveHandle.PerspectiveHandle.md) - -#### Defined in - -[perspectives/PerspectiveResolver.ts:172](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveResolver.ts#L172) - -___ - -### perspectiveLinkAdded - -▸ **perspectiveLinkAdded**(`uuid`): [`LinkExpression`](links_Links.LinkExpression.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | - -#### Returns - -[`LinkExpression`](links_Links.LinkExpression.md) - -#### Defined in - -[perspectives/PerspectiveResolver.ts:188](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveResolver.ts#L188) - -___ - -### perspectiveLinkMutations - -▸ **perspectiveLinkMutations**(`uuid`, `mutations`, `pubSub`): [`LinkExpressionMutations`](links_Links.LinkExpressionMutations.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | -| `mutations` | [`LinkMutations`](links_Links.LinkMutations.md) | -| `pubSub` | `any` | - -#### Returns - -[`LinkExpressionMutations`](links_Links.LinkExpressionMutations.md) - -#### Defined in - -[perspectives/PerspectiveResolver.ts:140](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveResolver.ts#L140) - -___ - -### perspectiveLinkRemoved - -▸ **perspectiveLinkRemoved**(`uuid`): [`LinkExpression`](links_Links.LinkExpression.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | - -#### Returns - -[`LinkExpression`](links_Links.LinkExpression.md) - -#### Defined in - -[perspectives/PerspectiveResolver.ts:193](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveResolver.ts#L193) - -___ - -### perspectiveLinkUpdated - -▸ **perspectiveLinkUpdated**(`uuid`): [`LinkExpressionUpdated`](links_Links.LinkExpressionUpdated.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | - -#### Returns - -[`LinkExpressionUpdated`](links_Links.LinkExpressionUpdated.md) - -#### Defined in - -[perspectives/PerspectiveResolver.ts:198](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveResolver.ts#L198) - -___ - -### perspectivePublishSnapshot - -▸ **perspectivePublishSnapshot**(`uuid`): `String` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | - -#### Returns - -`String` - -#### Defined in - -[perspectives/PerspectiveResolver.ts:54](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveResolver.ts#L54) - -___ - -### perspectiveQueryLinks - -▸ **perspectiveQueryLinks**(`uuid`, `query`): [`LinkExpression`](links_Links.LinkExpression.md)[] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | -| `query` | [`LinkQuery`](perspectives_LinkQuery.LinkQuery.md) | - -#### Returns - -[`LinkExpression`](links_Links.LinkExpression.md)[] - -#### Defined in - -[perspectives/PerspectiveResolver.ts:59](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveResolver.ts#L59) - -___ - -### perspectiveQueryProlog - -▸ **perspectiveQueryProlog**(`uuid`, `query`): `string` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | -| `query` | `String` | - -#### Returns - -`string` - -#### Defined in - -[perspectives/PerspectiveResolver.ts:64](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveResolver.ts#L64) - -___ - -### perspectiveRemove - -▸ **perspectiveRemove**(`uuid`, `pubSub`): `boolean` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | -| `pubSub` | `any` | - -#### Returns - -`boolean` - -#### Defined in - -[perspectives/PerspectiveResolver.ts:83](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveResolver.ts#L83) - -___ - -### perspectiveRemoveLink - -▸ **perspectiveRemoveLink**(`uuid`, `link`, `pubSub`): `Boolean` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | -| `link` | [`LinkExpressionInput`](links_Links.LinkExpressionInput.md) | -| `pubSub` | `any` | - -#### Returns - -`Boolean` - -#### Defined in - -[perspectives/PerspectiveResolver.ts:166](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveResolver.ts#L166) - -___ - -### perspectiveRemoveLinks - -▸ **perspectiveRemoveLinks**(`uuid`, `links`, `pubSub`): [`LinkExpression`](links_Links.LinkExpression.md)[] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | -| `links` | [`LinkExpressionInput`](links_Links.LinkExpressionInput.md)[] | -| `pubSub` | `any` | - -#### Returns - -[`LinkExpression`](links_Links.LinkExpression.md)[] - -#### Defined in - -[perspectives/PerspectiveResolver.ts:121](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveResolver.ts#L121) - -___ - -### perspectiveRemoved - -▸ **perspectiveRemoved**(): `string` - -#### Returns - -`string` - -#### Defined in - -[perspectives/PerspectiveResolver.ts:183](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveResolver.ts#L183) - -___ - -### perspectiveSnapshot - -▸ **perspectiveSnapshot**(`uuid`): [`Perspective`](perspectives_Perspective.Perspective.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | - -#### Returns - -[`Perspective`](perspectives_Perspective.Perspective.md) - -#### Defined in - -[perspectives/PerspectiveResolver.ts:49](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveResolver.ts#L49) - -___ - -### perspectiveUpdate - -▸ **perspectiveUpdate**(`uuid`, `name`, `pubSub`): [`PerspectiveHandle`](perspectives_PerspectiveHandle.PerspectiveHandle.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | -| `name` | `string` | -| `pubSub` | `any` | - -#### Returns - -[`PerspectiveHandle`](perspectives_PerspectiveHandle.PerspectiveHandle.md) - -#### Defined in - -[perspectives/PerspectiveResolver.ts:76](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveResolver.ts#L76) - -___ - -### perspectiveUpdateLink - -▸ **perspectiveUpdateLink**(`uuid`, `oldlink`, `newlink`, `pubSub`): [`LinkExpression`](links_Links.LinkExpression.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | -| `oldlink` | [`LinkExpressionInput`](links_Links.LinkExpressionInput.md) | -| `newlink` | [`LinkInput`](links_Links.LinkInput.md) | -| `pubSub` | `any` | - -#### Returns - -[`LinkExpression`](links_Links.LinkExpression.md) - -#### Defined in - -[perspectives/PerspectiveResolver.ts:153](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveResolver.ts#L153) - -___ - -### perspectiveUpdated - -▸ **perspectiveUpdated**(): [`PerspectiveHandle`](perspectives_PerspectiveHandle.PerspectiveHandle.md) - -#### Returns - -[`PerspectiveHandle`](perspectives_PerspectiveHandle.PerspectiveHandle.md) - -#### Defined in - -[perspectives/PerspectiveResolver.ts:178](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveResolver.ts#L178) - -___ - -### perspectives - -▸ **perspectives**(): [`PerspectiveHandle`](perspectives_PerspectiveHandle.PerspectiveHandle.md)[] - -#### Returns - -[`PerspectiveHandle`](perspectives_PerspectiveHandle.PerspectiveHandle.md)[] - -#### Defined in - -[perspectives/PerspectiveResolver.ts:30](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveResolver.ts#L30) diff --git a/docs/typedoc/classes/runtime_RuntimeClient.RuntimeClient.md b/docs/typedoc/classes/runtime_RuntimeClient.RuntimeClient.md deleted file mode 100644 index 087cc8e7b..000000000 --- a/docs/typedoc/classes/runtime_RuntimeClient.RuntimeClient.md +++ /dev/null @@ -1,527 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [runtime/RuntimeClient](../modules/runtime_RuntimeClient.md) / RuntimeClient - -# Class: RuntimeClient - -[runtime/RuntimeClient](../modules/runtime_RuntimeClient.md).RuntimeClient - -## Table of contents - -### Constructors - -- [constructor](runtime_RuntimeClient.RuntimeClient.md#constructor) - -### Properties - -- [#apolloClient](runtime_RuntimeClient.RuntimeClient.md##apolloclient) -- [#exceptionOccurredCallbacks](runtime_RuntimeClient.RuntimeClient.md##exceptionoccurredcallbacks) -- [#messageReceivedCallbacks](runtime_RuntimeClient.RuntimeClient.md##messagereceivedcallbacks) - -### Methods - -- [addExceptionCallback](runtime_RuntimeClient.RuntimeClient.md#addexceptioncallback) -- [addFriends](runtime_RuntimeClient.RuntimeClient.md#addfriends) -- [addKnownLinkLanguageTemplates](runtime_RuntimeClient.RuntimeClient.md#addknownlinklanguagetemplates) -- [addMessageCallback](runtime_RuntimeClient.RuntimeClient.md#addmessagecallback) -- [addTrustedAgents](runtime_RuntimeClient.RuntimeClient.md#addtrustedagents) -- [deleteTrustedAgents](runtime_RuntimeClient.RuntimeClient.md#deletetrustedagents) -- [friendSendMessage](runtime_RuntimeClient.RuntimeClient.md#friendsendmessage) -- [friendStatus](runtime_RuntimeClient.RuntimeClient.md#friendstatus) -- [friends](runtime_RuntimeClient.RuntimeClient.md#friends) -- [getTrustedAgents](runtime_RuntimeClient.RuntimeClient.md#gettrustedagents) -- [hcAddAgentInfos](runtime_RuntimeClient.RuntimeClient.md#hcaddagentinfos) -- [hcAgentInfos](runtime_RuntimeClient.RuntimeClient.md#hcagentinfos) -- [info](runtime_RuntimeClient.RuntimeClient.md#info) -- [knownLinkLanguageTemplates](runtime_RuntimeClient.RuntimeClient.md#knownlinklanguagetemplates) -- [messageInbox](runtime_RuntimeClient.RuntimeClient.md#messageinbox) -- [messageOutbox](runtime_RuntimeClient.RuntimeClient.md#messageoutbox) -- [openLink](runtime_RuntimeClient.RuntimeClient.md#openlink) -- [quit](runtime_RuntimeClient.RuntimeClient.md#quit) -- [removeFriends](runtime_RuntimeClient.RuntimeClient.md#removefriends) -- [removeKnownLinkLanguageTemplates](runtime_RuntimeClient.RuntimeClient.md#removeknownlinklanguagetemplates) -- [setStatus](runtime_RuntimeClient.RuntimeClient.md#setstatus) -- [subscribeExceptionOccurred](runtime_RuntimeClient.RuntimeClient.md#subscribeexceptionoccurred) -- [subscribeMessageReceived](runtime_RuntimeClient.RuntimeClient.md#subscribemessagereceived) -- [verifyStringSignedByDid](runtime_RuntimeClient.RuntimeClient.md#verifystringsignedbydid) - -## Constructors - -### constructor - -• **new RuntimeClient**(`client`, `subscribe?`) - -#### Parameters - -| Name | Type | Default value | -| :------ | :------ | :------ | -| `client` | `ApolloClient`<`any`\> | `undefined` | -| `subscribe` | `boolean` | `true` | - -#### Defined in - -[runtime/RuntimeClient.ts:28](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L28) - -## Properties - -### #apolloClient - -• `Private` **#apolloClient**: `ApolloClient`<`any`\> - -#### Defined in - -[runtime/RuntimeClient.ts:24](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L24) - -___ - -### #exceptionOccurredCallbacks - -• `Private` **#exceptionOccurredCallbacks**: [`ExceptionCallback`](../modules/runtime_RuntimeClient.md#exceptioncallback)[] - -#### Defined in - -[runtime/RuntimeClient.ts:26](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L26) - -___ - -### #messageReceivedCallbacks - -• `Private` **#messageReceivedCallbacks**: [`MessageCallback`](../modules/runtime_RuntimeClient.md#messagecallback)[] - -#### Defined in - -[runtime/RuntimeClient.ts:25](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L25) - -## Methods - -### addExceptionCallback - -▸ **addExceptionCallback**(`cb`): `void` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `cb` | [`ExceptionCallback`](../modules/runtime_RuntimeClient.md#exceptioncallback) | - -#### Returns - -`void` - -#### Defined in - -[runtime/RuntimeClient.ts:260](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L260) - -___ - -### addFriends - -▸ **addFriends**(`dids`): `Promise`<`string`[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `dids` | `string`[] | - -#### Returns - -`Promise`<`string`[]\> - -#### Defined in - -[runtime/RuntimeClient.ts:128](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L128) - -___ - -### addKnownLinkLanguageTemplates - -▸ **addKnownLinkLanguageTemplates**(`addresses`): `Promise`<`string`[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `addresses` | `string`[] | - -#### Returns - -`Promise`<`string`[]\> - -#### Defined in - -[runtime/RuntimeClient.ts:99](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L99) - -___ - -### addMessageCallback - -▸ **addMessageCallback**(`cb`): `void` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `cb` | [`MessageCallback`](../modules/runtime_RuntimeClient.md#messagecallback) | - -#### Returns - -`void` - -#### Defined in - -[runtime/RuntimeClient.ts:241](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L241) - -___ - -### addTrustedAgents - -▸ **addTrustedAgents**(`agents`): `Promise`<`string`[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `agents` | `string`[] | - -#### Returns - -`Promise`<`string`[]\> - -#### Defined in - -[runtime/RuntimeClient.ts:70](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L70) - -___ - -### deleteTrustedAgents - -▸ **deleteTrustedAgents**(`agents`): `Promise`<`string`[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `agents` | `string`[] | - -#### Returns - -`Promise`<`string`[]\> - -#### Defined in - -[runtime/RuntimeClient.ts:80](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L80) - -___ - -### friendSendMessage - -▸ **friendSendMessage**(`did`, `message`): `Promise`<`boolean`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `did` | `string` | -| `message` | [`Perspective`](perspectives_Perspective.Perspective.md) | - -#### Returns - -`Promise`<`boolean`\> - -#### Defined in - -[runtime/RuntimeClient.ts:206](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L206) - -___ - -### friendStatus - -▸ **friendStatus**(`did`): `Promise`<[`PerspectiveExpression`](perspectives_Perspective.PerspectiveExpression.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `did` | `string` | - -#### Returns - -`Promise`<[`PerspectiveExpression`](perspectives_Perspective.PerspectiveExpression.md)\> - -#### Defined in - -[runtime/RuntimeClient.ts:196](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L196) - -___ - -### friends - -▸ **friends**(): `Promise`<`string`[]\> - -#### Returns - -`Promise`<`string`[]\> - -#### Defined in - -[runtime/RuntimeClient.ts:148](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L148) - -___ - -### getTrustedAgents - -▸ **getTrustedAgents**(): `Promise`<`string`[]\> - -#### Returns - -`Promise`<`string`[]\> - -#### Defined in - -[runtime/RuntimeClient.ts:90](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L90) - -___ - -### hcAddAgentInfos - -▸ **hcAddAgentInfos**(`agentInfos`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `agentInfos` | `String` | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[runtime/RuntimeClient.ts:166](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L166) - -___ - -### hcAgentInfos - -▸ **hcAgentInfos**(): `Promise`<`String`\> - -#### Returns - -`Promise`<`String`\> - -#### Defined in - -[runtime/RuntimeClient.ts:157](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L157) - -___ - -### info - -▸ **info**(): `Promise`<[`RuntimeInfo`](runtime_RuntimeResolver.RuntimeInfo.md)\> - -#### Returns - -`Promise`<[`RuntimeInfo`](runtime_RuntimeResolver.RuntimeInfo.md)\> - -#### Defined in - -[runtime/RuntimeClient.ts:39](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L39) - -___ - -### knownLinkLanguageTemplates - -▸ **knownLinkLanguageTemplates**(): `Promise`<`string`[]\> - -#### Returns - -`Promise`<`string`[]\> - -#### Defined in - -[runtime/RuntimeClient.ts:119](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L119) - -___ - -### messageInbox - -▸ **messageInbox**(`filter?`): `Promise`<[`PerspectiveExpression`](perspectives_Perspective.PerspectiveExpression.md)[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `filter?` | `string` | - -#### Returns - -`Promise`<[`PerspectiveExpression`](perspectives_Perspective.PerspectiveExpression.md)[]\> - -#### Defined in - -[runtime/RuntimeClient.ts:216](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L216) - -___ - -### messageOutbox - -▸ **messageOutbox**(`filter?`): `Promise`<[`SentMessage`](runtime_RuntimeResolver.SentMessage.md)[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `filter?` | `string` | - -#### Returns - -`Promise`<[`SentMessage`](runtime_RuntimeResolver.SentMessage.md)[]\> - -#### Defined in - -[runtime/RuntimeClient.ts:226](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L226) - -___ - -### openLink - -▸ **openLink**(`url`): `Promise`<`Boolean`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `url` | `string` | - -#### Returns - -`Promise`<`Boolean`\> - -#### Defined in - -[runtime/RuntimeClient.ts:60](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L60) - -___ - -### quit - -▸ **quit**(): `Promise`<`Boolean`\> - -#### Returns - -`Promise`<`Boolean`\> - -#### Defined in - -[runtime/RuntimeClient.ts:52](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L52) - -___ - -### removeFriends - -▸ **removeFriends**(`dids`): `Promise`<`string`[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `dids` | `string`[] | - -#### Returns - -`Promise`<`string`[]\> - -#### Defined in - -[runtime/RuntimeClient.ts:138](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L138) - -___ - -### removeKnownLinkLanguageTemplates - -▸ **removeKnownLinkLanguageTemplates**(`addresses`): `Promise`<`string`[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `addresses` | `string`[] | - -#### Returns - -`Promise`<`string`[]\> - -#### Defined in - -[runtime/RuntimeClient.ts:109](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L109) - -___ - -### setStatus - -▸ **setStatus**(`perspective`): `Promise`<`boolean`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `perspective` | [`Perspective`](perspectives_Perspective.Perspective.md) | - -#### Returns - -`Promise`<`boolean`\> - -#### Defined in - -[runtime/RuntimeClient.ts:186](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L186) - -___ - -### subscribeExceptionOccurred - -▸ **subscribeExceptionOccurred**(): `void` - -#### Returns - -`void` - -#### Defined in - -[runtime/RuntimeClient.ts:264](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L264) - -___ - -### subscribeMessageReceived - -▸ **subscribeMessageReceived**(): `void` - -#### Returns - -`void` - -#### Defined in - -[runtime/RuntimeClient.ts:245](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L245) - -___ - -### verifyStringSignedByDid - -▸ **verifyStringSignedByDid**(`did`, `didSigningKeyId`, `data`, `signedData`): `Promise`<`boolean`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `did` | `string` | -| `didSigningKeyId` | `string` | -| `data` | `string` | -| `signedData` | `string` | - -#### Returns - -`Promise`<`boolean`\> - -#### Defined in - -[runtime/RuntimeClient.ts:176](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L176) diff --git a/docs/typedoc/classes/runtime_RuntimeResolver.ExceptionInfo.md b/docs/typedoc/classes/runtime_RuntimeResolver.ExceptionInfo.md deleted file mode 100644 index aef168458..000000000 --- a/docs/typedoc/classes/runtime_RuntimeResolver.ExceptionInfo.md +++ /dev/null @@ -1,64 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [runtime/RuntimeResolver](../modules/runtime_RuntimeResolver.md) / ExceptionInfo - -# Class: ExceptionInfo - -[runtime/RuntimeResolver](../modules/runtime_RuntimeResolver.md).ExceptionInfo - -## Table of contents - -### Constructors - -- [constructor](runtime_RuntimeResolver.ExceptionInfo.md#constructor) - -### Properties - -- [addon](runtime_RuntimeResolver.ExceptionInfo.md#addon) -- [message](runtime_RuntimeResolver.ExceptionInfo.md#message) -- [title](runtime_RuntimeResolver.ExceptionInfo.md#title) -- [type](runtime_RuntimeResolver.ExceptionInfo.md#type) - -## Constructors - -### constructor - -• **new ExceptionInfo**() - -## Properties - -### addon - -• `Optional` **addon**: `string` - -#### Defined in - -[runtime/RuntimeResolver.ts:54](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L54) - -___ - -### message - -• **message**: `string` - -#### Defined in - -[runtime/RuntimeResolver.ts:50](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L50) - -___ - -### title - -• **title**: `string` - -#### Defined in - -[runtime/RuntimeResolver.ts:48](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L48) - -___ - -### type - -• **type**: [`ExceptionType`](../enums/Exception.ExceptionType.md) - -#### Defined in - -[runtime/RuntimeResolver.ts:52](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L52) diff --git a/docs/typedoc/classes/runtime_RuntimeResolver.RuntimeInfo.md b/docs/typedoc/classes/runtime_RuntimeResolver.RuntimeInfo.md deleted file mode 100644 index 67eb812d1..000000000 --- a/docs/typedoc/classes/runtime_RuntimeResolver.RuntimeInfo.md +++ /dev/null @@ -1,53 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [runtime/RuntimeResolver](../modules/runtime_RuntimeResolver.md) / RuntimeInfo - -# Class: RuntimeInfo - -[runtime/RuntimeResolver](../modules/runtime_RuntimeResolver.md).RuntimeInfo - -## Table of contents - -### Constructors - -- [constructor](runtime_RuntimeResolver.RuntimeInfo.md#constructor) - -### Properties - -- [ad4mExecutorVersion](runtime_RuntimeResolver.RuntimeInfo.md#ad4mexecutorversion) -- [isInitialized](runtime_RuntimeResolver.RuntimeInfo.md#isinitialized) -- [isUnlocked](runtime_RuntimeResolver.RuntimeInfo.md#isunlocked) - -## Constructors - -### constructor - -• **new RuntimeInfo**() - -## Properties - -### ad4mExecutorVersion - -• **ad4mExecutorVersion**: `string` - -#### Defined in - -[runtime/RuntimeResolver.ts:38](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L38) - -___ - -### isInitialized - -• **isInitialized**: `Boolean` - -#### Defined in - -[runtime/RuntimeResolver.ts:40](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L40) - -___ - -### isUnlocked - -• **isUnlocked**: `Boolean` - -#### Defined in - -[runtime/RuntimeResolver.ts:42](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L42) diff --git a/docs/typedoc/classes/runtime_RuntimeResolver.SentMessage.md b/docs/typedoc/classes/runtime_RuntimeResolver.SentMessage.md deleted file mode 100644 index b3cc1ea36..000000000 --- a/docs/typedoc/classes/runtime_RuntimeResolver.SentMessage.md +++ /dev/null @@ -1,42 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [runtime/RuntimeResolver](../modules/runtime_RuntimeResolver.md) / SentMessage - -# Class: SentMessage - -[runtime/RuntimeResolver](../modules/runtime_RuntimeResolver.md).SentMessage - -## Table of contents - -### Constructors - -- [constructor](runtime_RuntimeResolver.SentMessage.md#constructor) - -### Properties - -- [message](runtime_RuntimeResolver.SentMessage.md#message) -- [recipient](runtime_RuntimeResolver.SentMessage.md#recipient) - -## Constructors - -### constructor - -• **new SentMessage**() - -## Properties - -### message - -• **message**: [`PerspectiveExpression`](perspectives_Perspective.PerspectiveExpression.md) - -#### Defined in - -[runtime/RuntimeResolver.ts:32](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L32) - -___ - -### recipient - -• **recipient**: `string` - -#### Defined in - -[runtime/RuntimeResolver.ts:30](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L30) diff --git a/docs/typedoc/classes/runtime_RuntimeResolver.default.md b/docs/typedoc/classes/runtime_RuntimeResolver.default.md deleted file mode 100644 index 67629eb3b..000000000 --- a/docs/typedoc/classes/runtime_RuntimeResolver.default.md +++ /dev/null @@ -1,443 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [runtime/RuntimeResolver](../modules/runtime_RuntimeResolver.md) / default - -# Class: default - -[runtime/RuntimeResolver](../modules/runtime_RuntimeResolver.md).default - -Resolver classes are used here to define the GraphQL schema -(through the type-graphql annotations) -and are spawned in the client tests in Ad4mClient.test.ts. -For the latter, they return test fixtures. - -## Table of contents - -### Constructors - -- [constructor](runtime_RuntimeResolver.default.md#constructor) - -### Methods - -- [addTrustedAgents](runtime_RuntimeResolver.default.md#addtrustedagents) -- [deleteTrustedAgents](runtime_RuntimeResolver.default.md#deletetrustedagents) -- [exceptionOccurred](runtime_RuntimeResolver.default.md#exceptionoccurred) -- [getTrustedAgents](runtime_RuntimeResolver.default.md#gettrustedagents) -- [runtimeAddFriends](runtime_RuntimeResolver.default.md#runtimeaddfriends) -- [runtimeAddKnownLinkLanguageTemplates](runtime_RuntimeResolver.default.md#runtimeaddknownlinklanguagetemplates) -- [runtimeFriendSendMessage](runtime_RuntimeResolver.default.md#runtimefriendsendmessage) -- [runtimeFriendStatus](runtime_RuntimeResolver.default.md#runtimefriendstatus) -- [runtimeFriends](runtime_RuntimeResolver.default.md#runtimefriends) -- [runtimeHcAddAgentInfos](runtime_RuntimeResolver.default.md#runtimehcaddagentinfos) -- [runtimeHcAgentInfos](runtime_RuntimeResolver.default.md#runtimehcagentinfos) -- [runtimeInfo](runtime_RuntimeResolver.default.md#runtimeinfo) -- [runtimeKnownLinkLanguageTemplates](runtime_RuntimeResolver.default.md#runtimeknownlinklanguagetemplates) -- [runtimeMessageInbox](runtime_RuntimeResolver.default.md#runtimemessageinbox) -- [runtimeMessageOutbox](runtime_RuntimeResolver.default.md#runtimemessageoutbox) -- [runtimeMessageReceived](runtime_RuntimeResolver.default.md#runtimemessagereceived) -- [runtimeOpenLink](runtime_RuntimeResolver.default.md#runtimeopenlink) -- [runtimeQuit](runtime_RuntimeResolver.default.md#runtimequit) -- [runtimeRemoveFriends](runtime_RuntimeResolver.default.md#runtimeremovefriends) -- [runtimeRemoveKnownLinkLanguageTemplates](runtime_RuntimeResolver.default.md#runtimeremoveknownlinklanguagetemplates) -- [runtimeSetStatus](runtime_RuntimeResolver.default.md#runtimesetstatus) -- [runtimeVerifyStringSignedByDid](runtime_RuntimeResolver.default.md#runtimeverifystringsignedbydid) - -## Constructors - -### constructor - -• **new default**() - -## Methods - -### addTrustedAgents - -▸ **addTrustedAgents**(`agents`): `string`[] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `agents` | `string`[] | - -#### Returns - -`string`[] - -#### Defined in - -[runtime/RuntimeResolver.ts:84](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L84) - -___ - -### deleteTrustedAgents - -▸ **deleteTrustedAgents**(`agents`): `string`[] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `agents` | `string`[] | - -#### Returns - -`string`[] - -#### Defined in - -[runtime/RuntimeResolver.ts:89](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L89) - -___ - -### exceptionOccurred - -▸ **exceptionOccurred**(): [`ExceptionInfo`](runtime_RuntimeResolver.ExceptionInfo.md) - -#### Returns - -[`ExceptionInfo`](runtime_RuntimeResolver.ExceptionInfo.md) - -#### Defined in - -[runtime/RuntimeResolver.ts:185](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L185) - -___ - -### getTrustedAgents - -▸ **getTrustedAgents**(): `string`[] - -#### Returns - -`string`[] - -#### Defined in - -[runtime/RuntimeResolver.ts:94](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L94) - -___ - -### runtimeAddFriends - -▸ **runtimeAddFriends**(`dids`): `string`[] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `dids` | `string`[] | - -#### Returns - -`string`[] - -#### Defined in - -[runtime/RuntimeResolver.ts:119](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L119) - -___ - -### runtimeAddKnownLinkLanguageTemplates - -▸ **runtimeAddKnownLinkLanguageTemplates**(`addresses`): `string`[] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `addresses` | `string`[] | - -#### Returns - -`string`[] - -#### Defined in - -[runtime/RuntimeResolver.ts:104](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L104) - -___ - -### runtimeFriendSendMessage - -▸ **runtimeFriendSendMessage**(`did`, `message`): `boolean` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `did` | `string` | -| `message` | [`PerspectiveInput`](perspectives_Perspective.PerspectiveInput.md) | - -#### Returns - -`boolean` - -#### Defined in - -[runtime/RuntimeResolver.ts:158](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L158) - -___ - -### runtimeFriendStatus - -▸ **runtimeFriendStatus**(`did`): [`PerspectiveExpression`](perspectives_Perspective.PerspectiveExpression.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `did` | `string` | - -#### Returns - -[`PerspectiveExpression`](perspectives_Perspective.PerspectiveExpression.md) - -#### Defined in - -[runtime/RuntimeResolver.ts:153](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L153) - -___ - -### runtimeFriends - -▸ **runtimeFriends**(): `string`[] - -#### Returns - -`string`[] - -#### Defined in - -[runtime/RuntimeResolver.ts:114](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L114) - -___ - -### runtimeHcAddAgentInfos - -▸ **runtimeHcAddAgentInfos**(`agentInfos`): `boolean` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `agentInfos` | `any` | - -#### Returns - -`boolean` - -#### Defined in - -[runtime/RuntimeResolver.ts:134](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L134) - -___ - -### runtimeHcAgentInfos - -▸ **runtimeHcAgentInfos**(): `String` - -#### Returns - -`String` - -#### Defined in - -[runtime/RuntimeResolver.ts:129](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L129) - -___ - -### runtimeInfo - -▸ **runtimeInfo**(): [`RuntimeInfo`](runtime_RuntimeResolver.RuntimeInfo.md) - -#### Returns - -[`RuntimeInfo`](runtime_RuntimeResolver.RuntimeInfo.md) - -#### Defined in - -[runtime/RuntimeResolver.ts:75](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L75) - -___ - -### runtimeKnownLinkLanguageTemplates - -▸ **runtimeKnownLinkLanguageTemplates**(): `string`[] - -#### Returns - -`string`[] - -#### Defined in - -[runtime/RuntimeResolver.ts:99](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L99) - -___ - -### runtimeMessageInbox - -▸ **runtimeMessageInbox**(`filter?`): [`PerspectiveExpression`](perspectives_Perspective.PerspectiveExpression.md)[] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `filter?` | `string` | - -#### Returns - -[`PerspectiveExpression`](perspectives_Perspective.PerspectiveExpression.md)[] - -#### Defined in - -[runtime/RuntimeResolver.ts:166](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L166) - -___ - -### runtimeMessageOutbox - -▸ **runtimeMessageOutbox**(`filter?`): [`SentMessage`](runtime_RuntimeResolver.SentMessage.md)[] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `filter?` | `string` | - -#### Returns - -[`SentMessage`](runtime_RuntimeResolver.SentMessage.md)[] - -#### Defined in - -[runtime/RuntimeResolver.ts:171](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L171) - -___ - -### runtimeMessageReceived - -▸ **runtimeMessageReceived**(): [`PerspectiveExpression`](perspectives_Perspective.PerspectiveExpression.md) - -#### Returns - -[`PerspectiveExpression`](perspectives_Perspective.PerspectiveExpression.md) - -#### Defined in - -[runtime/RuntimeResolver.ts:180](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L180) - -___ - -### runtimeOpenLink - -▸ **runtimeOpenLink**(`url`): `Boolean` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `url` | `string` | - -#### Returns - -`Boolean` - -#### Defined in - -[runtime/RuntimeResolver.ts:70](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L70) - -___ - -### runtimeQuit - -▸ **runtimeQuit**(): `Boolean` - -#### Returns - -`Boolean` - -#### Defined in - -[runtime/RuntimeResolver.ts:65](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L65) - -___ - -### runtimeRemoveFriends - -▸ **runtimeRemoveFriends**(`dids`): `string`[] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `dids` | `string`[] | - -#### Returns - -`string`[] - -#### Defined in - -[runtime/RuntimeResolver.ts:124](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L124) - -___ - -### runtimeRemoveKnownLinkLanguageTemplates - -▸ **runtimeRemoveKnownLinkLanguageTemplates**(`addresses`): `string`[] - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `addresses` | `string`[] | - -#### Returns - -`string`[] - -#### Defined in - -[runtime/RuntimeResolver.ts:109](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L109) - -___ - -### runtimeSetStatus - -▸ **runtimeSetStatus**(`status`): `boolean` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `status` | [`Perspective`](perspectives_Perspective.Perspective.md) | - -#### Returns - -`boolean` - -#### Defined in - -[runtime/RuntimeResolver.ts:148](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L148) - -___ - -### runtimeVerifyStringSignedByDid - -▸ **runtimeVerifyStringSignedByDid**(`did`, `didSigningKeyId`, `data`, `signedData`): `boolean` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `did` | `string` | -| `didSigningKeyId` | `string` | -| `data` | `string` | -| `signedData` | `string` | - -#### Returns - -`boolean` - -#### Defined in - -[runtime/RuntimeResolver.ts:139](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeResolver.ts#L139) diff --git a/docs/typedoc/classes/subject_SDNADecorators.PerspectiveAction.md b/docs/typedoc/classes/subject_SDNADecorators.PerspectiveAction.md deleted file mode 100644 index ff03a2719..000000000 --- a/docs/typedoc/classes/subject_SDNADecorators.PerspectiveAction.md +++ /dev/null @@ -1,64 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [subject/SDNADecorators](../modules/subject_SDNADecorators.md) / PerspectiveAction - -# Class: PerspectiveAction - -[subject/SDNADecorators](../modules/subject_SDNADecorators.md).PerspectiveAction - -## Table of contents - -### Constructors - -- [constructor](subject_SDNADecorators.PerspectiveAction.md#constructor) - -### Properties - -- [action](subject_SDNADecorators.PerspectiveAction.md#action) -- [predicate](subject_SDNADecorators.PerspectiveAction.md#predicate) -- [source](subject_SDNADecorators.PerspectiveAction.md#source) -- [target](subject_SDNADecorators.PerspectiveAction.md#target) - -## Constructors - -### constructor - -• **new PerspectiveAction**() - -## Properties - -### action - -• **action**: `string` - -#### Defined in - -[subject/SDNADecorators.ts:6](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/SDNADecorators.ts#L6) - -___ - -### predicate - -• **predicate**: `string` - -#### Defined in - -[subject/SDNADecorators.ts:8](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/SDNADecorators.ts#L8) - -___ - -### source - -• **source**: `string` - -#### Defined in - -[subject/SDNADecorators.ts:7](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/SDNADecorators.ts#L7) - -___ - -### target - -• **target**: `string` - -#### Defined in - -[subject/SDNADecorators.ts:9](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/SDNADecorators.ts#L9) diff --git a/docs/typedoc/classes/subject_Subject.Subject.md b/docs/typedoc/classes/subject_Subject.Subject.md deleted file mode 100644 index 767efc315..000000000 --- a/docs/typedoc/classes/subject_Subject.Subject.md +++ /dev/null @@ -1,101 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [subject/Subject](../modules/subject_Subject.md) / Subject - -# Class: Subject - -[subject/Subject](../modules/subject_Subject.md).Subject - -## Table of contents - -### Constructors - -- [constructor](subject_Subject.Subject.md#constructor) - -### Properties - -- [#baseExpression](subject_Subject.Subject.md##baseexpression) -- [#perspective](subject_Subject.Subject.md##perspective) -- [#subjectClass](subject_Subject.Subject.md##subjectclass) - -### Accessors - -- [baseExpression](subject_Subject.Subject.md#baseexpression) - -### Methods - -- [init](subject_Subject.Subject.md#init) - -## Constructors - -### constructor - -• **new Subject**(`perspective`, `baseExpression`, `subjectClass`) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `perspective` | [`PerspectiveProxy`](perspectives_PerspectiveProxy.PerspectiveProxy.md) | -| `baseExpression` | `string` | -| `subjectClass` | `string` | - -#### Defined in - -[subject/Subject.ts:9](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/Subject.ts#L9) - -## Properties - -### #baseExpression - -• `Private` **#baseExpression**: `string` - -#### Defined in - -[subject/Subject.ts:5](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/Subject.ts#L5) - -___ - -### #perspective - -• `Private` **#perspective**: [`PerspectiveProxy`](perspectives_PerspectiveProxy.PerspectiveProxy.md) - -#### Defined in - -[subject/Subject.ts:7](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/Subject.ts#L7) - -___ - -### #subjectClass - -• `Private` **#subjectClass**: `string` - -#### Defined in - -[subject/Subject.ts:6](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/Subject.ts#L6) - -## Accessors - -### baseExpression - -• `get` **baseExpression**(): `string` - -#### Returns - -`string` - -#### Defined in - -[subject/Subject.ts:15](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/Subject.ts#L15) - -## Methods - -### init - -▸ **init**(): `Promise`<`void`\> - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[subject/Subject.ts:19](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/Subject.ts#L19) diff --git a/docs/typedoc/enums/Exception.ExceptionType.md b/docs/typedoc/enums/Exception.ExceptionType.md deleted file mode 100644 index 639fd5084..000000000 --- a/docs/typedoc/enums/Exception.ExceptionType.md +++ /dev/null @@ -1,54 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [Exception](../modules/Exception.md) / ExceptionType - -# Enumeration: ExceptionType - -[Exception](../modules/Exception.md).ExceptionType - -## Table of contents - -### Enumeration Members - -- [AgentIsUntrusted](Exception.ExceptionType.md#agentisuntrusted) -- [CapabilityRequested](Exception.ExceptionType.md#capabilityrequested) -- [ExpressionIsNotVerified](Exception.ExceptionType.md#expressionisnotverified) -- [LanguageIsNotLoaded](Exception.ExceptionType.md#languageisnotloaded) - -## Enumeration Members - -### AgentIsUntrusted - -• **AgentIsUntrusted** = ``2`` - -#### Defined in - -[Exception.ts:4](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Exception.ts#L4) - -___ - -### CapabilityRequested - -• **CapabilityRequested** = ``3`` - -#### Defined in - -[Exception.ts:5](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Exception.ts#L5) - -___ - -### ExpressionIsNotVerified - -• **ExpressionIsNotVerified** = ``1`` - -#### Defined in - -[Exception.ts:3](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Exception.ts#L3) - -___ - -### LanguageIsNotLoaded - -• **LanguageIsNotLoaded** = ``0`` - -#### Defined in - -[Exception.ts:2](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Exception.ts#L2) diff --git a/docs/typedoc/enums/perspectives_PerspectiveHandle.PerspectiveState.md b/docs/typedoc/enums/perspectives_PerspectiveHandle.PerspectiveState.md deleted file mode 100644 index 1ea1e7614..000000000 --- a/docs/typedoc/enums/perspectives_PerspectiveHandle.PerspectiveState.md +++ /dev/null @@ -1,65 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [perspectives/PerspectiveHandle](../modules/perspectives_PerspectiveHandle.md) / PerspectiveState - -# Enumeration: PerspectiveState - -[perspectives/PerspectiveHandle](../modules/perspectives_PerspectiveHandle.md).PerspectiveState - -## Table of contents - -### Enumeration Members - -- [LinkLanguageFailedToInstall](perspectives_PerspectiveHandle.PerspectiveState.md#linklanguagefailedtoinstall) -- [LinkLanguageInstalledButNotSynced](perspectives_PerspectiveHandle.PerspectiveState.md#linklanguageinstalledbutnotsynced) -- [NeighbourhoodJoinInitiated](perspectives_PerspectiveHandle.PerspectiveState.md#neighbourhoodjoininitiated) -- [Private](perspectives_PerspectiveHandle.PerspectiveState.md#private) -- [Synced](perspectives_PerspectiveHandle.PerspectiveState.md#synced) - -## Enumeration Members - -### LinkLanguageFailedToInstall - -• **LinkLanguageFailedToInstall** = ``"LinkLanguageFailedToInstall"`` - -#### Defined in - -[perspectives/PerspectiveHandle.ts:7](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveHandle.ts#L7) - -___ - -### LinkLanguageInstalledButNotSynced - -• **LinkLanguageInstalledButNotSynced** = ``"LinkLanguageInstalledButNotSynced"`` - -#### Defined in - -[perspectives/PerspectiveHandle.ts:8](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveHandle.ts#L8) - -___ - -### NeighbourhoodJoinInitiated - -• **NeighbourhoodJoinInitiated** = ``"NeighbourhoodJoinInitiated"`` - -#### Defined in - -[perspectives/PerspectiveHandle.ts:6](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveHandle.ts#L6) - -___ - -### Private - -• **Private** = ``"Private"`` - -#### Defined in - -[perspectives/PerspectiveHandle.ts:5](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveHandle.ts#L5) - -___ - -### Synced - -• **Synced** = ``"Synced"`` - -#### Defined in - -[perspectives/PerspectiveHandle.ts:9](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveHandle.ts#L9) diff --git a/docs/typedoc/interfaces/agent_AgentClient.InitializeArgs.md b/docs/typedoc/interfaces/agent_AgentClient.InitializeArgs.md deleted file mode 100644 index 2aab714f2..000000000 --- a/docs/typedoc/interfaces/agent_AgentClient.InitializeArgs.md +++ /dev/null @@ -1,54 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [agent/AgentClient](../modules/agent_AgentClient.md) / InitializeArgs - -# Interface: InitializeArgs - -[agent/AgentClient](../modules/agent_AgentClient.md).InitializeArgs - -## Table of contents - -### Properties - -- [did](agent_AgentClient.InitializeArgs.md#did) -- [didDocument](agent_AgentClient.InitializeArgs.md#diddocument) -- [keystore](agent_AgentClient.InitializeArgs.md#keystore) -- [passphrase](agent_AgentClient.InitializeArgs.md#passphrase) - -## Properties - -### did - -• **did**: `string` - -#### Defined in - -[agent/AgentClient.ts:66](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L66) - -___ - -### didDocument - -• **didDocument**: `string` - -#### Defined in - -[agent/AgentClient.ts:67](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L67) - -___ - -### keystore - -• **keystore**: `string` - -#### Defined in - -[agent/AgentClient.ts:68](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L68) - -___ - -### passphrase - -• **passphrase**: `string` - -#### Defined in - -[agent/AgentClient.ts:69](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L69) diff --git a/docs/typedoc/interfaces/language_Language.DirectMessageAdapter.md b/docs/typedoc/interfaces/language_Language.DirectMessageAdapter.md deleted file mode 100644 index c491ef6ee..000000000 --- a/docs/typedoc/interfaces/language_Language.DirectMessageAdapter.md +++ /dev/null @@ -1,145 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/Language](../modules/language_Language.md) / DirectMessageAdapter - -# Interface: DirectMessageAdapter - -[language/Language](../modules/language_Language.md).DirectMessageAdapter - -## Table of contents - -### Methods - -- [addMessageCallback](language_Language.DirectMessageAdapter.md#addmessagecallback) -- [inbox](language_Language.DirectMessageAdapter.md#inbox) -- [recipient](language_Language.DirectMessageAdapter.md#recipient) -- [sendInbox](language_Language.DirectMessageAdapter.md#sendinbox) -- [sendP2P](language_Language.DirectMessageAdapter.md#sendp2p) -- [setStatus](language_Language.DirectMessageAdapter.md#setstatus) -- [status](language_Language.DirectMessageAdapter.md#status) - -## Methods - -### addMessageCallback - -▸ **addMessageCallback**(`callback`): `any` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `callback` | [`MessageCallback`](../modules/language_Language.md#messagecallback) | - -#### Returns - -`any` - -#### Defined in - -[language/Language.ts:198](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L198) - -___ - -### inbox - -▸ **inbox**(`filter?`): `Promise`<[`PerspectiveExpression`](../classes/perspectives_Perspective.PerspectiveExpression.md)[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `filter?` | `string` | - -#### Returns - -`Promise`<[`PerspectiveExpression`](../classes/perspectives_Perspective.PerspectiveExpression.md)[]\> - -#### Defined in - -[language/Language.ts:197](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L197) - -___ - -### recipient - -▸ **recipient**(): `string` - -#### Returns - -`string` - -#### Defined in - -[language/Language.ts:190](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L190) - -___ - -### sendInbox - -▸ **sendInbox**(`message`): `Promise`<`void` \| [`PerspectiveExpression`](../classes/perspectives_Perspective.PerspectiveExpression.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `message` | [`Perspective`](../classes/perspectives_Perspective.Perspective.md) | - -#### Returns - -`Promise`<`void` \| [`PerspectiveExpression`](../classes/perspectives_Perspective.PerspectiveExpression.md)\> - -#### Defined in - -[language/Language.ts:194](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L194) - -___ - -### sendP2P - -▸ **sendP2P**(`message`): `Promise`<`void` \| [`PerspectiveExpression`](../classes/perspectives_Perspective.PerspectiveExpression.md)\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `message` | [`Perspective`](../classes/perspectives_Perspective.Perspective.md) | - -#### Returns - -`Promise`<`void` \| [`PerspectiveExpression`](../classes/perspectives_Perspective.PerspectiveExpression.md)\> - -#### Defined in - -[language/Language.ts:193](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L193) - -___ - -### setStatus - -▸ **setStatus**(`status`): `any` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `status` | [`PerspectiveExpression`](../classes/perspectives_Perspective.PerspectiveExpression.md) | - -#### Returns - -`any` - -#### Defined in - -[language/Language.ts:196](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L196) - -___ - -### status - -▸ **status**(): `Promise`<`void` \| [`PerspectiveExpression`](../classes/perspectives_Perspective.PerspectiveExpression.md)\> - -#### Returns - -`Promise`<`void` \| [`PerspectiveExpression`](../classes/perspectives_Perspective.PerspectiveExpression.md)\> - -#### Defined in - -[language/Language.ts:192](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L192) diff --git a/docs/typedoc/interfaces/language_Language.ExpressionAdapter.md b/docs/typedoc/interfaces/language_Language.ExpressionAdapter.md deleted file mode 100644 index 027cab034..000000000 --- a/docs/typedoc/interfaces/language_Language.ExpressionAdapter.md +++ /dev/null @@ -1,61 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/Language](../modules/language_Language.md) / ExpressionAdapter - -# Interface: ExpressionAdapter - -[language/Language](../modules/language_Language.md).ExpressionAdapter - -Interface for the most common Expression Languages - -## Table of contents - -### Properties - -- [putAdapter](language_Language.ExpressionAdapter.md#putadapter) - -### Methods - -- [get](language_Language.ExpressionAdapter.md#get) - -## Properties - -### putAdapter - -• **putAdapter**: [`PublicSharing`](language_Language.PublicSharing.md) \| [`ReadOnlyLanguage`](language_Language.ReadOnlyLanguage.md) - -Strategy for putting an expression with needs to be different -for those two cases: -1. PublicSharing means that this language supports the creation - and sharing of Expressions, which is the common use-case -2. ReadOnlyLanguage means that the Language implements a pre-defined - set of expressions (which can be infinite or finite). - For example the url-iframe Language which directly maps URLs to - addresses - meaning every well formed URL is an address in this - Language. Or a potential Language implementing the verbs/predicates - of a spec like FOAF. - -#### Defined in - -[language/Language.ts:105](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L105) - -## Methods - -### get - -▸ **get**(`address`): `Promise`<[`Expression`](../classes/expression_Expression.Expression.md)\> - -Returns an Expression by address, or null if there is no Expression -with that given address - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `string` | - -#### Returns - -`Promise`<[`Expression`](../classes/expression_Expression.Expression.md)\> - -#### Defined in - -[language/Language.ts:92](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L92) diff --git a/docs/typedoc/interfaces/language_Language.ExpressionUI.md b/docs/typedoc/interfaces/language_Language.ExpressionUI.md deleted file mode 100644 index fd47e25d2..000000000 --- a/docs/typedoc/interfaces/language_Language.ExpressionUI.md +++ /dev/null @@ -1,46 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/Language](../modules/language_Language.md) / ExpressionUI - -# Interface: ExpressionUI - -[language/Language](../modules/language_Language.md).ExpressionUI - -UI factories returning web components - -## Table of contents - -### Methods - -- [constructorIcon](language_Language.ExpressionUI.md#constructoricon) -- [icon](language_Language.ExpressionUI.md#icon) - -## Methods - -### constructorIcon - -▸ **constructorIcon**(): `string` - -Returns JS code of a web component used to create new expressions - -#### Returns - -`string` - -#### Defined in - -[language/Language.ts:81](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L81) - -___ - -### icon - -▸ **icon**(): `string` - -Returns JS code of a web component that renders the given expression - -#### Returns - -`string` - -#### Defined in - -[language/Language.ts:79](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L79) diff --git a/docs/typedoc/interfaces/language_Language.GetAllAdapter.md b/docs/typedoc/interfaces/language_Language.GetAllAdapter.md deleted file mode 100644 index 8ab3f8b64..000000000 --- a/docs/typedoc/interfaces/language_Language.GetAllAdapter.md +++ /dev/null @@ -1,33 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/Language](../modules/language_Language.md) / GetAllAdapter - -# Interface: GetAllAdapter - -[language/Language](../modules/language_Language.md).GetAllAdapter - -## Table of contents - -### Methods - -- [getAll](language_Language.GetAllAdapter.md#getall) - -## Methods - -### getAll - -▸ **getAll**(`filter`, `count`, `page`): `Promise`<[`Expression`](../classes/expression_Expression.Expression.md)[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `filter` | `any` | -| `count` | `number` | -| `page` | `number` | - -#### Returns - -`Promise`<[`Expression`](../classes/expression_Expression.Expression.md)[]\> - -#### Defined in - -[language/Language.ts:147](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L147) diff --git a/docs/typedoc/interfaces/language_Language.GetByAuthorAdapter.md b/docs/typedoc/interfaces/language_Language.GetByAuthorAdapter.md deleted file mode 100644 index 3728db77a..000000000 --- a/docs/typedoc/interfaces/language_Language.GetByAuthorAdapter.md +++ /dev/null @@ -1,33 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/Language](../modules/language_Language.md) / GetByAuthorAdapter - -# Interface: GetByAuthorAdapter - -[language/Language](../modules/language_Language.md).GetByAuthorAdapter - -## Table of contents - -### Methods - -- [getByAuthor](language_Language.GetByAuthorAdapter.md#getbyauthor) - -## Methods - -### getByAuthor - -▸ **getByAuthor**(`author`, `count`, `page`): `Promise`<[`Expression`](../classes/expression_Expression.Expression.md)[]\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `author` | `string` | -| `count` | `number` | -| `page` | `number` | - -#### Returns - -`Promise`<[`Expression`](../classes/expression_Expression.Expression.md)[]\> - -#### Defined in - -[language/Language.ts:138](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L138) diff --git a/docs/typedoc/interfaces/language_Language.Interaction.md b/docs/typedoc/interfaces/language_Language.Interaction.md deleted file mode 100644 index 6f45e8d23..000000000 --- a/docs/typedoc/interfaces/language_Language.Interaction.md +++ /dev/null @@ -1,67 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/Language](../modules/language_Language.md) / Interaction - -# Interface: Interaction - -[language/Language](../modules/language_Language.md).Interaction - -## Table of contents - -### Properties - -- [label](language_Language.Interaction.md#label) -- [name](language_Language.Interaction.md#name) -- [parameters](language_Language.Interaction.md#parameters) - -### Methods - -- [execute](language_Language.Interaction.md#execute) - -## Properties - -### label - -• `Readonly` **label**: `string` - -#### Defined in - -[language/Language.ts:222](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L222) - -___ - -### name - -• `Readonly` **name**: `string` - -#### Defined in - -[language/Language.ts:223](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L223) - -___ - -### parameters - -• `Readonly` **parameters**: [`InteractionParameter`](../classes/language_Language.InteractionParameter.md)[] - -#### Defined in - -[language/Language.ts:224](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L224) - -## Methods - -### execute - -▸ **execute**(`parameters`): `Promise`<`string`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `parameters` | `object` | - -#### Returns - -`Promise`<`string`\> - -#### Defined in - -[language/Language.ts:225](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L225) diff --git a/docs/typedoc/interfaces/language_Language.Language.md b/docs/typedoc/interfaces/language_Language.Language.md deleted file mode 100644 index 37805b1c3..000000000 --- a/docs/typedoc/interfaces/language_Language.Language.md +++ /dev/null @@ -1,232 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/Language](../modules/language_Language.md) / Language - -# Interface: Language - -[language/Language](../modules/language_Language.md).Language - -Interface of AD4M Languages - -Any JavaScript module that implements a create() function that returns an object that implements this interface -is a valid AD4M language. -So the AD4M-internal representation of a language is an object that implements this interface. - -Since there are a few different kinds of languages, this interface is split into optional sub-interfaces. -The only required property is the name of the language. - -The most usual kind of language is the "Expression Language", which is a language that can be used to create -and share Expressions. -For that, implement the expressionsAdapter and expressionUI interface. - -The second most common kind of language is the "Link Language", which is a language that builds the core -of AD4M Neighbourhoods. -For that, implement the linksAdapter interface. - -## Table of contents - -### Properties - -- [directMessageAdapter](language_Language.Language.md#directmessageadapter) -- [expressionAdapter](language_Language.Language.md#expressionadapter) -- [expressionUI](language_Language.Language.md#expressionui) -- [getAllAdapter](language_Language.Language.md#getalladapter) -- [getByAuthorAdapter](language_Language.Language.md#getbyauthoradapter) -- [languageAdapter](language_Language.Language.md#languageadapter) -- [linksAdapter](language_Language.Language.md#linksadapter) -- [name](language_Language.Language.md#name) -- [settingsUI](language_Language.Language.md#settingsui) -- [teardown](language_Language.Language.md#teardown) -- [telepresenceAdapter](language_Language.Language.md#telepresenceadapter) - -### Methods - -- [interactions](language_Language.Language.md#interactions) -- [isImmutableExpression](language_Language.Language.md#isimmutableexpression) - -## Properties - -### directMessageAdapter - -• `Optional` `Readonly` **directMessageAdapter**: [`DirectMessageAdapter`](language_Language.DirectMessageAdapter.md) - -Optional adapter for direct messaging between agents - -#### Defined in - -[language/Language.ts:64](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L64) - -___ - -### expressionAdapter - -• `Optional` `Readonly` **expressionAdapter**: [`ExpressionAdapter`](language_Language.ExpressionAdapter.md) - -ExpressionAdapter implements means of getting an Expression -by address and putting an expression - -#### Defined in - -[language/Language.ts:38](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L38) - -___ - -### expressionUI - -• `Optional` `Readonly` **expressionUI**: [`ExpressionUI`](language_Language.ExpressionUI.md) - -Interface for getting UI/web components for rendering Expressions of this Language - -#### Defined in - -[language/Language.ts:41](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L41) - -___ - -### getAllAdapter - -• `Optional` `Readonly` **getAllAdapter**: [`GetAllAdapter`](language_Language.GetAllAdapter.md) - -Optional adapter for getting all Expressions - -#### Defined in - -[language/Language.ts:61](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L61) - -___ - -### getByAuthorAdapter - -• `Optional` `Readonly` **getByAuthorAdapter**: [`GetByAuthorAdapter`](language_Language.GetByAuthorAdapter.md) - -Optional adapter for getting Expressions by author - -#### Defined in - -[language/Language.ts:59](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L59) - -___ - -### languageAdapter - -• `Optional` `Readonly` **languageAdapter**: [`LanguageAdapter`](language_Language.LanguageAdapter.md) - -Implementation of a Language that defines and stores Languages - -#### Defined in - -[language/Language.ts:56](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L56) - -___ - -### linksAdapter - -• `Optional` `Readonly` **linksAdapter**: [`LinkSyncAdapter`](language_Language.LinkSyncAdapter.md) - -Interface of LinkLanguages for the core implementation of Neighbourhoods - -#### Defined in - -[language/Language.ts:44](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L44) - -___ - -### name - -• `Readonly` **name**: `string` - -#### Defined in - -[language/Language.ts:26](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L26) - -___ - -### settingsUI - -• `Optional` `Readonly` **settingsUI**: [`SettingsUI`](language_Language.SettingsUI.md) - -Interface for providing UI components for the settings of this Language - -#### Defined in - -[language/Language.ts:67](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L67) - -___ - -### teardown - -• `Optional` `Readonly` **teardown**: () => `void` - -#### Type declaration - -▸ (): `void` - -Optional function to make any cleanup/teardown if your language gets deleting in the ad4m-executor - -##### Returns - -`void` - -#### Defined in - -[language/Language.ts:70](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L70) - -___ - -### telepresenceAdapter - -• `Optional` `Readonly` **telepresenceAdapter**: [`TelepresenceAdapter`](language_Language.TelepresenceAdapter.md) - -Additional Interface of LinkLanguages that support telepresence features, -that is: - - seeing who is online and getting a status - - sending/receiveing p2p signals to other online agents without affecting - the shared Perspective of the Neighbourhood - (see TelepresenceAdapter for more details) - -#### Defined in - -[language/Language.ts:53](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L53) - -## Methods - -### interactions - -▸ **interactions**(`expression`): [`Interaction`](language_Language.Interaction.md)[] - -All available interactions this agent could execute on given expression - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `expression` | `string` | - -#### Returns - -[`Interaction`](language_Language.Interaction.md)[] - -#### Defined in - -[language/Language.ts:73](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L73) - -___ - -### isImmutableExpression - -▸ `Optional` **isImmutableExpression**(`expression`): `boolean` - -Flagging expressions as immutable to enable -expression caching in the ad4m-executor - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `expression` | `string` | - -#### Returns - -`boolean` - -#### Defined in - -[language/Language.ts:31](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L31) diff --git a/docs/typedoc/interfaces/language_Language.LanguageAdapter.md b/docs/typedoc/interfaces/language_Language.LanguageAdapter.md deleted file mode 100644 index d939ea51f..000000000 --- a/docs/typedoc/interfaces/language_Language.LanguageAdapter.md +++ /dev/null @@ -1,31 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/Language](../modules/language_Language.md) / LanguageAdapter - -# Interface: LanguageAdapter - -[language/Language](../modules/language_Language.md).LanguageAdapter - -## Table of contents - -### Methods - -- [getLanguageSource](language_Language.LanguageAdapter.md#getlanguagesource) - -## Methods - -### getLanguageSource - -▸ **getLanguageSource**(`address`): `Promise`<`string`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `address` | `string` | - -#### Returns - -`Promise`<`string`\> - -#### Defined in - -[language/Language.ts:131](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L131) diff --git a/docs/typedoc/interfaces/language_Language.LinkSyncAdapter.md b/docs/typedoc/interfaces/language_Language.LinkSyncAdapter.md deleted file mode 100644 index 302d59e3f..000000000 --- a/docs/typedoc/interfaces/language_Language.LinkSyncAdapter.md +++ /dev/null @@ -1,178 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/Language](../modules/language_Language.md) / LinkSyncAdapter - -# Interface: LinkSyncAdapter - -[language/Language](../modules/language_Language.md).LinkSyncAdapter - -Interface for "Link Languages" that facilitate the synchronization -between agents' local Perspectives inside a Neighbourhood. -The assumption is that every version of the shared Perspective -is labeled with a unique revision string. -Changes are committed and retrieved through diffs. -Think of a LinkSyncAdapter as a git branch to which agents commit -their changes to and pull diffs from their current revision -to the latest one. - -## Table of contents - -### Methods - -- [addCallback](language_Language.LinkSyncAdapter.md#addcallback) -- [commit](language_Language.LinkSyncAdapter.md#commit) -- [currentRevision](language_Language.LinkSyncAdapter.md#currentrevision) -- [others](language_Language.LinkSyncAdapter.md#others) -- [public](language_Language.LinkSyncAdapter.md#public) -- [sync](language_Language.LinkSyncAdapter.md#sync) -- [render](language_Language.LinkSyncAdapter.md#render) -- [writable](language_Language.LinkSyncAdapter.md#writable) - -## Methods - -### addCallback - -▸ **addCallback**(`callback`): `any` - -Get push notification when a diff got published - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `callback` | [`PerspectiveDiffObserver`](../modules/language_Language.md#perspectivediffobserver) | - -#### Returns - -`any` - -#### Defined in - -[language/Language.ts:184](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L184) - -___ - -### commit - -▸ **commit**(`diff`): `Promise`<`string`\> - -Publish changes - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `diff` | [`PerspectiveDiff`](../classes/perspectives_PerspectiveDiff.PerspectiveDiff.md) | - -#### Returns - -`Promise`<`string`\> - -#### Defined in - -[language/Language.ts:181](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L181) - -___ - -### currentRevision - -▸ **currentRevision**(): `Promise`<`string`\> - -What revision are we on now -> what changes are included in output of render() - -#### Returns - -`Promise`<`string`\> - -#### Defined in - -[language/Language.ts:172](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L172) - -___ - -### latestRevision - -▸ **latestRevision**(): `Promise`<`string`\> - -Call this to check if there are new changes -(compare returned revision with last one that was pulled) - -#### Returns - -`Promise`<`string`\> - -#### Defined in - -[language/Language.ts:169](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L169) - -___ - -### others - -▸ **others**(): `Promise`<`string`[]\> - -#### Returns - -`Promise`<`string`[]\> - -#### Defined in - -[language/Language.ts:164](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L164) - -___ - -### public - -▸ **public**(): `boolean` - -#### Returns - -`boolean` - -#### Defined in - -[language/Language.ts:163](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L163) - -___ - -### sync - -▸ **sync**(): `Promise` - -Sync your state in the network with other agents - -#### Returns - -`Promise`<[`PerspectiveDiff`](../classes/perspectives_PerspectiveDiff.PerspectiveDiff.md)\> - -#### Defined in - -[language/Language.ts:175](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L175) - -___ - -### render - -▸ **render**(): `Promise`<[`Perspective`](../classes/perspectives_Perspective.Perspective.md)\> - -Returns the full, rendered Perspective at currentRevision - -#### Returns - -`Promise`<[`Perspective`](../classes/perspectives_Perspective.Perspective.md)\> - -#### Defined in - -[language/Language.ts:178](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L178) - -___ - -### writable - -▸ **writable**(): `boolean` - -#### Returns - -`boolean` - -#### Defined in - -[language/Language.ts:162](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L162) diff --git a/docs/typedoc/interfaces/language_Language.PublicSharing.md b/docs/typedoc/interfaces/language_Language.PublicSharing.md deleted file mode 100644 index f21e11615..000000000 --- a/docs/typedoc/interfaces/language_Language.PublicSharing.md +++ /dev/null @@ -1,38 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/Language](../modules/language_Language.md) / PublicSharing - -# Interface: PublicSharing - -[language/Language](../modules/language_Language.md).PublicSharing - -Implement this interface if your Language supports creation of sharing -of Expressions. -See ExpressionAdapter - -## Table of contents - -### Methods - -- [createPublic](language_Language.PublicSharing.md#createpublic) - -## Methods - -### createPublic - -▸ **createPublic**(`content`): `Promise`<`string`\> - -Create an Expression and shares it. -Return the Expression's address. - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `content` | `object` | is the object created by the constructorIcon component | - -#### Returns - -`Promise`<`string`\> - -#### Defined in - -[language/Language.ts:117](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L117) diff --git a/docs/typedoc/interfaces/language_Language.ReadOnlyLanguage.md b/docs/typedoc/interfaces/language_Language.ReadOnlyLanguage.md deleted file mode 100644 index b0833800e..000000000 --- a/docs/typedoc/interfaces/language_Language.ReadOnlyLanguage.md +++ /dev/null @@ -1,36 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/Language](../modules/language_Language.md) / ReadOnlyLanguage - -# Interface: ReadOnlyLanguage - -[language/Language](../modules/language_Language.md).ReadOnlyLanguage - -Implement this interface if your Language is defined over a static -set of pre-defined Expressions. - -## Table of contents - -### Methods - -- [addressOf](language_Language.ReadOnlyLanguage.md#addressof) - -## Methods - -### addressOf - -▸ **addressOf**(`content`): `Promise`<`string`\> - -This just calculates the address of an object - -#### Parameters - -| Name | Type | Description | -| :------ | :------ | :------ | -| `content` | `object` | is the object created by the constructorIcon component | - -#### Returns - -`Promise`<`string`\> - -#### Defined in - -[language/Language.ts:127](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L127) diff --git a/docs/typedoc/interfaces/language_Language.SettingsUI.md b/docs/typedoc/interfaces/language_Language.SettingsUI.md deleted file mode 100644 index dca1595ad..000000000 --- a/docs/typedoc/interfaces/language_Language.SettingsUI.md +++ /dev/null @@ -1,25 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/Language](../modules/language_Language.md) / SettingsUI - -# Interface: SettingsUI - -[language/Language](../modules/language_Language.md).SettingsUI - -## Table of contents - -### Methods - -- [settingsIcon](language_Language.SettingsUI.md#settingsicon) - -## Methods - -### settingsIcon - -▸ **settingsIcon**(): `string` - -#### Returns - -`string` - -#### Defined in - -[language/Language.ts:85](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L85) diff --git a/docs/typedoc/interfaces/language_Language.TelepresenceAdapter.md b/docs/typedoc/interfaces/language_Language.TelepresenceAdapter.md deleted file mode 100644 index 9c9cc3d70..000000000 --- a/docs/typedoc/interfaces/language_Language.TelepresenceAdapter.md +++ /dev/null @@ -1,110 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/Language](../modules/language_Language.md) / TelepresenceAdapter - -# Interface: TelepresenceAdapter - -[language/Language](../modules/language_Language.md).TelepresenceAdapter - -## Table of contents - -### Methods - -- [getOnlineAgents](language_Language.TelepresenceAdapter.md#getonlineagents) -- [registerSignalCallback](language_Language.TelepresenceAdapter.md#registersignalcallback) -- [sendBroadcast](language_Language.TelepresenceAdapter.md#sendbroadcast) -- [sendSignal](language_Language.TelepresenceAdapter.md#sendsignal) -- [setOnlineStatus](language_Language.TelepresenceAdapter.md#setonlinestatus) - -## Methods - -### getOnlineAgents - -▸ **getOnlineAgents**(): `Promise`<[`OnlineAgent`](../classes/language_Language.OnlineAgent.md)[]\> - -#### Returns - -`Promise`<[`OnlineAgent`](../classes/language_Language.OnlineAgent.md)[]\> - -#### Defined in - -[language/Language.ts:256](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L256) - -___ - -### registerSignalCallback - -▸ **registerSignalCallback**(`callback`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `callback` | [`TelepresenceSignalCallback`](../modules/language_Language.md#telepresencesignalcallback) | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[language/Language.ts:260](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L260) - -___ - -### sendBroadcast - -▸ **sendBroadcast**(`payload`): `Promise`<`object`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `payload` | [`PerspectiveExpression`](../classes/perspectives_Perspective.PerspectiveExpression.md) | - -#### Returns - -`Promise`<`object`\> - -#### Defined in - -[language/Language.ts:259](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L259) - -___ - -### sendSignal - -▸ **sendSignal**(`remoteAgentDid`, `payload`): `Promise`<`object`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `remoteAgentDid` | `string` | -| `payload` | [`PerspectiveExpression`](../classes/perspectives_Perspective.PerspectiveExpression.md) | - -#### Returns - -`Promise`<`object`\> - -#### Defined in - -[language/Language.ts:258](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L258) - -___ - -### setOnlineStatus - -▸ **setOnlineStatus**(`status`): `Promise`<`void`\> - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `status` | [`PerspectiveExpression`](../classes/perspectives_Perspective.PerspectiveExpression.md) | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[language/Language.ts:255](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L255) diff --git a/docs/typedoc/interfaces/language_LanguageContext.AgentService.md b/docs/typedoc/interfaces/language_LanguageContext.AgentService.md deleted file mode 100644 index aa72f2da6..000000000 --- a/docs/typedoc/interfaces/language_LanguageContext.AgentService.md +++ /dev/null @@ -1,45 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/LanguageContext](../modules/language_LanguageContext.md) / AgentService - -# Interface: AgentService - -[language/LanguageContext](../modules/language_LanguageContext.md).AgentService - -## Table of contents - -### Properties - -- [did](language_LanguageContext.AgentService.md#did) - -### Methods - -- [createSignedExpression](language_LanguageContext.AgentService.md#createsignedexpression) - -## Properties - -### did - -• `Readonly` **did**: `string` - -#### Defined in - -[language/LanguageContext.ts:6](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageContext.ts#L6) - -## Methods - -### createSignedExpression - -▸ **createSignedExpression**(`data`): [`Expression`](../classes/expression_Expression.Expression.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `data` | `any` | - -#### Returns - -[`Expression`](../classes/expression_Expression.Expression.md) - -#### Defined in - -[language/LanguageContext.ts:7](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageContext.ts#L7) diff --git a/docs/typedoc/interfaces/language_LanguageContext.HolochainLanguageDelegate.md b/docs/typedoc/interfaces/language_LanguageContext.HolochainLanguageDelegate.md deleted file mode 100644 index 11ee0d4a2..000000000 --- a/docs/typedoc/interfaces/language_LanguageContext.HolochainLanguageDelegate.md +++ /dev/null @@ -1,84 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/LanguageContext](../modules/language_LanguageContext.md) / HolochainLanguageDelegate - -# Interface: HolochainLanguageDelegate - -[language/LanguageContext](../modules/language_LanguageContext.md).HolochainLanguageDelegate - -## Table of contents - -### Methods - -- [call](language_LanguageContext.HolochainLanguageDelegate.md#call) -- [callAsync](language_LanguageContext.HolochainLanguageDelegate.md#callasync) -- [registerDNAs](language_LanguageContext.HolochainLanguageDelegate.md#registerdnas) - -## Methods - -### call - -▸ **call**(`dnaNick`, `zomeName`, `fnName`, `params`): `Promise`<`any`\> - -Makes a single call to a given holochain DNA. Underlying implementation puts these calls into a sync fifo queue - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `dnaNick` | `string` | -| `zomeName` | `string` | -| `fnName` | `string` | -| `params` | `string` \| `object` | - -#### Returns - -`Promise`<`any`\> - -#### Defined in - -[language/LanguageContext.ts:34](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageContext.ts#L34) - -___ - -### callAsync - -▸ **callAsync**(`calls`, `timeoutMs?`): `Promise`<`any`[]\> - -Makes all supplied calls in parallel to the provided holochain dna... Should only be called on read operations to avoid source chain async mutation errors - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `calls` | { `dnaNick`: `string` ; `fnName`: `string` ; `params`: `string` \| `object` ; `zomeName`: `string` }[] | -| `timeoutMs?` | `number` | - -#### Returns - -`Promise`<`any`[]\> - -#### Defined in - -[language/LanguageContext.ts:36](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageContext.ts#L36) - -___ - -### registerDNAs - -▸ **registerDNAs**(`dnas`, `holochainSignalCallback?`): `Promise`<`void`\> - -Installs/registers a given DNA in the ad4m-executor - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `dnas` | [`Dna`](../classes/language_LanguageContext.Dna.md)[] | -| `holochainSignalCallback?` | `AppSignalCb` | - -#### Returns - -`Promise`<`void`\> - -#### Defined in - -[language/LanguageContext.ts:32](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageContext.ts#L32) diff --git a/docs/typedoc/interfaces/language_LanguageContext.LanguageContext.md b/docs/typedoc/interfaces/language_LanguageContext.LanguageContext.md deleted file mode 100644 index a47b9dc43..000000000 --- a/docs/typedoc/interfaces/language_LanguageContext.LanguageContext.md +++ /dev/null @@ -1,87 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/LanguageContext](../modules/language_LanguageContext.md) / LanguageContext - -# Interface: LanguageContext - -[language/LanguageContext](../modules/language_LanguageContext.md).LanguageContext - -## Table of contents - -### Properties - -- [Holochain](language_LanguageContext.LanguageContext.md#holochain) -- [IPFS](language_LanguageContext.LanguageContext.md#ipfs) -- [ad4mSignal](language_LanguageContext.LanguageContext.md#ad4msignal) -- [agent](language_LanguageContext.LanguageContext.md#agent) -- [customSettings](language_LanguageContext.LanguageContext.md#customsettings) -- [signatures](language_LanguageContext.LanguageContext.md#signatures) -- [storageDirectory](language_LanguageContext.LanguageContext.md#storagedirectory) - -## Properties - -### Holochain - -• **Holochain**: [`HolochainLanguageDelegate`](language_LanguageContext.HolochainLanguageDelegate.md) - -#### Defined in - -[language/LanguageContext.ts:20](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageContext.ts#L20) - -___ - -### IPFS - -• **IPFS**: `IPFS`<{}\> - -#### Defined in - -[language/LanguageContext.ts:16](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageContext.ts#L16) - -___ - -### ad4mSignal - -• **ad4mSignal**: [`Ad4mSignalCB`](../modules/language_LanguageContext.md#ad4msignalcb) - -#### Defined in - -[language/LanguageContext.ts:21](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageContext.ts#L21) - -___ - -### agent - -• **agent**: [`AgentService`](language_LanguageContext.AgentService.md) - -#### Defined in - -[language/LanguageContext.ts:15](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageContext.ts#L15) - -___ - -### customSettings - -• **customSettings**: `object` - -#### Defined in - -[language/LanguageContext.ts:19](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageContext.ts#L19) - -___ - -### signatures - -• **signatures**: [`SignaturesService`](language_LanguageContext.SignaturesService.md) - -#### Defined in - -[language/LanguageContext.ts:17](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageContext.ts#L17) - -___ - -### storageDirectory - -• **storageDirectory**: `string` - -#### Defined in - -[language/LanguageContext.ts:18](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageContext.ts#L18) diff --git a/docs/typedoc/interfaces/language_LanguageContext.SignaturesService.md b/docs/typedoc/interfaces/language_LanguageContext.SignaturesService.md deleted file mode 100644 index c54125876..000000000 --- a/docs/typedoc/interfaces/language_LanguageContext.SignaturesService.md +++ /dev/null @@ -1,31 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / [language/LanguageContext](../modules/language_LanguageContext.md) / SignaturesService - -# Interface: SignaturesService - -[language/LanguageContext](../modules/language_LanguageContext.md).SignaturesService - -## Table of contents - -### Methods - -- [verify](language_LanguageContext.SignaturesService.md#verify) - -## Methods - -### verify - -▸ **verify**(`expr`): `boolean` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `expr` | [`Expression`](../classes/expression_Expression.Expression.md) | - -#### Returns - -`boolean` - -#### Defined in - -[language/LanguageContext.ts:11](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageContext.ts#L11) diff --git a/docs/typedoc/modules.md b/docs/typedoc/modules.md deleted file mode 100644 index a57d8833b..000000000 --- a/docs/typedoc/modules.md +++ /dev/null @@ -1,52 +0,0 @@ -[@perspect3vism/ad4m](README.md) / Exports - -# @perspect3vism/ad4m - -## Table of contents - -### Modules - -- [Ad4mClient](modules/Ad4mClient.md) -- [Address](modules/Address.md) -- [DID](modules/DID.md) -- [Exception](modules/Exception.md) -- [Literal](modules/Literal.md) -- [PubSub](modules/PubSub.md) -- [SmartLiteral](modules/SmartLiteral.md) -- [agent/Agent](modules/agent_Agent.md) -- [agent/AgentClient](modules/agent_AgentClient.md) -- [agent/AgentResolver](modules/agent_AgentResolver.md) -- [agent/AgentStatus](modules/agent_AgentStatus.md) -- [buildSchema](modules/buildSchema.md) -- [expression/Expression](modules/expression_Expression.md) -- [expression/ExpressionClient](modules/expression_ExpressionClient.md) -- [expression/ExpressionRef](modules/expression_ExpressionRef.md) -- [expression/ExpressionResolver](modules/expression_ExpressionResolver.md) -- [jestSetup](modules/jestSetup.md) -- [language/Icon](modules/language_Icon.md) -- [language/Language](modules/language_Language.md) -- [language/LanguageClient](modules/language_LanguageClient.md) -- [language/LanguageContext](modules/language_LanguageContext.md) -- [language/LanguageHandle](modules/language_LanguageHandle.md) -- [language/LanguageMeta](modules/language_LanguageMeta.md) -- [language/LanguageRef](modules/language_LanguageRef.md) -- [language/LanguageResolver](modules/language_LanguageResolver.md) -- [links/Links](modules/links_Links.md) -- [neighbourhood/Neighbourhood](modules/neighbourhood_Neighbourhood.md) -- [neighbourhood/NeighbourhoodClient](modules/neighbourhood_NeighbourhoodClient.md) -- [neighbourhood/NeighbourhoodProxy](modules/neighbourhood_NeighbourhoodProxy.md) -- [neighbourhood/NeighbourhoodResolver](modules/neighbourhood_NeighbourhoodResolver.md) -- [perspectives/LinkQuery](modules/perspectives_LinkQuery.md) -- [perspectives/Perspective](modules/perspectives_Perspective.md) -- [perspectives/PerspectiveClient](modules/perspectives_PerspectiveClient.md) -- [perspectives/PerspectiveDiff](modules/perspectives_PerspectiveDiff.md) -- [perspectives/PerspectiveHandle](modules/perspectives_PerspectiveHandle.md) -- [perspectives/PerspectiveProxy](modules/perspectives_PerspectiveProxy.md) -- [perspectives/PerspectiveResolver](modules/perspectives_PerspectiveResolver.md) -- [runtime/RuntimeClient](modules/runtime_RuntimeClient.md) -- [runtime/RuntimeResolver](modules/runtime_RuntimeResolver.md) -- [subject/SDNADecorators](modules/subject_SDNADecorators.md) -- [subject/Subject](modules/subject_Subject.md) -- [subject/util](modules/subject_util.md) -- [typeDefs](modules/typeDefs.md) -- [unwrapApolloResult](modules/unwrapApolloResult.md) diff --git a/docs/typedoc/modules/Ad4mClient.md b/docs/typedoc/modules/Ad4mClient.md deleted file mode 100644 index a737c6505..000000000 --- a/docs/typedoc/modules/Ad4mClient.md +++ /dev/null @@ -1,9 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / Ad4mClient - -# Module: Ad4mClient - -## Table of contents - -### Classes - -- [Ad4mClient](../classes/Ad4mClient.Ad4mClient.md) diff --git a/docs/typedoc/modules/Address.md b/docs/typedoc/modules/Address.md deleted file mode 100644 index 49f6b80e5..000000000 --- a/docs/typedoc/modules/Address.md +++ /dev/null @@ -1,19 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / Address - -# Module: Address - -## Table of contents - -### Type Aliases - -- [Address](Address.md#address) - -## Type Aliases - -### Address - -Ƭ **Address**: `string` - -#### Defined in - -[Address.ts:1](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/Address.ts#L1) diff --git a/docs/typedoc/modules/DID.md b/docs/typedoc/modules/DID.md deleted file mode 100644 index 537fdf354..000000000 --- a/docs/typedoc/modules/DID.md +++ /dev/null @@ -1,19 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / DID - -# Module: DID - -## Table of contents - -### Type Aliases - -- [DID](DID.md#did) - -## Type Aliases - -### DID - -Ƭ **DID**: `string` - -#### Defined in - -[DID.ts:1](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/DID.ts#L1) diff --git a/docs/typedoc/modules/Exception.md b/docs/typedoc/modules/Exception.md deleted file mode 100644 index 7a36e8cf7..000000000 --- a/docs/typedoc/modules/Exception.md +++ /dev/null @@ -1,9 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / Exception - -# Module: Exception - -## Table of contents - -### Enumerations - -- [ExceptionType](../enums/Exception.ExceptionType.md) diff --git a/docs/typedoc/modules/Literal.md b/docs/typedoc/modules/Literal.md deleted file mode 100644 index 9d52d30b6..000000000 --- a/docs/typedoc/modules/Literal.md +++ /dev/null @@ -1,9 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / Literal - -# Module: Literal - -## Table of contents - -### Classes - -- [Literal](../classes/Literal.Literal.md) diff --git a/docs/typedoc/modules/PubSub.md b/docs/typedoc/modules/PubSub.md deleted file mode 100644 index d5adbdd21..000000000 --- a/docs/typedoc/modules/PubSub.md +++ /dev/null @@ -1,140 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / PubSub - -# Module: PubSub - -## Table of contents - -### Variables - -- [AGENT\_STATUS\_CHANGED](PubSub.md#agent_status_changed) -- [AGENT\_UPDATED](PubSub.md#agent_updated) -- [DIRECT\_MESSAGE\_RECEIVED](PubSub.md#direct_message_received) -- [EXCEPTION\_OCCURRED\_TOPIC](PubSub.md#exception_occurred_topic) -- [LINK\_ADDED\_TOPIC](PubSub.md#link_added_topic) -- [LINK\_REMOVED\_TOPIC](PubSub.md#link_removed_topic) -- [LINK\_UDATED\_TOPIC](PubSub.md#link_udated_topic) -- [NEIGHBOURHOOD\_SIGNAL\_RECEIVED\_TOPIC](PubSub.md#neighbourhood_signal_received_topic) -- [PERSPECTIVE\_ADDED\_TOPIC](PubSub.md#perspective_added_topic) -- [PERSPECTIVE\_REMOVED\_TOPIC](PubSub.md#perspective_removed_topic) -- [PERSPECTIVE\_UPDATED\_TOPIC](PubSub.md#perspective_updated_topic) -- [SIGNAL](PubSub.md#signal) - -## Variables - -### AGENT\_STATUS\_CHANGED - -• `Const` **AGENT\_STATUS\_CHANGED**: ``"agent-status-changed-topic"`` - -#### Defined in - -[PubSub.ts:2](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/PubSub.ts#L2) - -___ - -### AGENT\_UPDATED - -• `Const` **AGENT\_UPDATED**: ``"agent-updated-topic"`` - -#### Defined in - -[PubSub.ts:1](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/PubSub.ts#L1) - -___ - -### DIRECT\_MESSAGE\_RECEIVED - -• `Const` **DIRECT\_MESSAGE\_RECEIVED**: ``"direct-message-received-topic"`` - -#### Defined in - -[PubSub.ts:3](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/PubSub.ts#L3) - -___ - -### EXCEPTION\_OCCURRED\_TOPIC - -• `Const` **EXCEPTION\_OCCURRED\_TOPIC**: ``"exception-occurred-topic"`` - -#### Defined in - -[PubSub.ts:11](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/PubSub.ts#L11) - -___ - -### LINK\_ADDED\_TOPIC - -• `Const` **LINK\_ADDED\_TOPIC**: ``"link-added-topic"`` - -#### Defined in - -[PubSub.ts:7](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/PubSub.ts#L7) - -___ - -### LINK\_REMOVED\_TOPIC - -• `Const` **LINK\_REMOVED\_TOPIC**: ``"link-removed-topic"`` - -#### Defined in - -[PubSub.ts:8](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/PubSub.ts#L8) - -___ - -### LINK\_UDATED\_TOPIC - -• `Const` **LINK\_UDATED\_TOPIC**: ``"link-updated-topic"`` - -#### Defined in - -[PubSub.ts:9](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/PubSub.ts#L9) - -___ - -### NEIGHBOURHOOD\_SIGNAL\_RECEIVED\_TOPIC - -• `Const` **NEIGHBOURHOOD\_SIGNAL\_RECEIVED\_TOPIC**: ``"neighbourhood-signal-received-topic"`` - -#### Defined in - -[PubSub.ts:12](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/PubSub.ts#L12) - -___ - -### PERSPECTIVE\_ADDED\_TOPIC - -• `Const` **PERSPECTIVE\_ADDED\_TOPIC**: ``"perspective-added-topic"`` - -#### Defined in - -[PubSub.ts:4](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/PubSub.ts#L4) - -___ - -### PERSPECTIVE\_REMOVED\_TOPIC - -• `Const` **PERSPECTIVE\_REMOVED\_TOPIC**: ``"perspective-removed-topic"`` - -#### Defined in - -[PubSub.ts:6](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/PubSub.ts#L6) - -___ - -### PERSPECTIVE\_UPDATED\_TOPIC - -• `Const` **PERSPECTIVE\_UPDATED\_TOPIC**: ``"perspective-updated-topic"`` - -#### Defined in - -[PubSub.ts:5](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/PubSub.ts#L5) - -___ - -### SIGNAL - -• `Const` **SIGNAL**: ``"signal"`` - -#### Defined in - -[PubSub.ts:10](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/PubSub.ts#L10) diff --git a/docs/typedoc/modules/SmartLiteral.md b/docs/typedoc/modules/SmartLiteral.md deleted file mode 100644 index a7d47db59..000000000 --- a/docs/typedoc/modules/SmartLiteral.md +++ /dev/null @@ -1,23 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / SmartLiteral - -# Module: SmartLiteral - -## Table of contents - -### Classes - -- [SmartLiteral](../classes/SmartLiteral.SmartLiteral.md) - -### Variables - -- [SMART\_LITERAL\_CONTENT\_PREDICATE](SmartLiteral.md#smart_literal_content_predicate) - -## Variables - -### SMART\_LITERAL\_CONTENT\_PREDICATE - -• `Const` **SMART\_LITERAL\_CONTENT\_PREDICATE**: ``"smart_literal://content"`` - -#### Defined in - -[SmartLiteral.ts:6](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/SmartLiteral.ts#L6) diff --git a/docs/typedoc/modules/agent_Agent.md b/docs/typedoc/modules/agent_Agent.md deleted file mode 100644 index d850e45ed..000000000 --- a/docs/typedoc/modules/agent_Agent.md +++ /dev/null @@ -1,17 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / agent/Agent - -# Module: agent/Agent - -## Table of contents - -### Classes - -- [Agent](../classes/agent_Agent.Agent.md) -- [AgentExpression](../classes/agent_Agent.AgentExpression.md) -- [AgentSignature](../classes/agent_Agent.AgentSignature.md) -- [Apps](../classes/agent_Agent.Apps.md) -- [AuthInfo](../classes/agent_Agent.AuthInfo.md) -- [Capability](../classes/agent_Agent.Capability.md) -- [EntanglementProof](../classes/agent_Agent.EntanglementProof.md) -- [EntanglementProofInput](../classes/agent_Agent.EntanglementProofInput.md) -- [Resource](../classes/agent_Agent.Resource.md) diff --git a/docs/typedoc/modules/agent_AgentClient.md b/docs/typedoc/modules/agent_AgentClient.md deleted file mode 100644 index c7661e069..000000000 --- a/docs/typedoc/modules/agent_AgentClient.md +++ /dev/null @@ -1,66 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / agent/AgentClient - -# Module: agent/AgentClient - -## Table of contents - -### Classes - -- [AgentClient](../classes/agent_AgentClient.AgentClient.md) - -### Interfaces - -- [InitializeArgs](../interfaces/agent_AgentClient.InitializeArgs.md) - -### Type Aliases - -- [AgentStatusChangedCallback](agent_AgentClient.md#agentstatuschangedcallback) -- [AgentUpdatedCallback](agent_AgentClient.md#agentupdatedcallback) - -## Type Aliases - -### AgentStatusChangedCallback - -Ƭ **AgentStatusChangedCallback**: (`agent`: [`Agent`](../classes/agent_Agent.Agent.md)) => ``null`` - -#### Type declaration - -▸ (`agent`): ``null`` - -##### Parameters - -| Name | Type | -| :------ | :------ | -| `agent` | [`Agent`](../classes/agent_Agent.Agent.md) | - -##### Returns - -``null`` - -#### Defined in - -[agent/AgentClient.ts:73](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L73) - -___ - -### AgentUpdatedCallback - -Ƭ **AgentUpdatedCallback**: (`agent`: [`Agent`](../classes/agent_Agent.Agent.md)) => ``null`` - -#### Type declaration - -▸ (`agent`): ``null`` - -##### Parameters - -| Name | Type | -| :------ | :------ | -| `agent` | [`Agent`](../classes/agent_Agent.Agent.md) | - -##### Returns - -``null`` - -#### Defined in - -[agent/AgentClient.ts:72](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentClient.ts#L72) diff --git a/docs/typedoc/modules/agent_AgentResolver.md b/docs/typedoc/modules/agent_AgentResolver.md deleted file mode 100644 index b111f0cbc..000000000 --- a/docs/typedoc/modules/agent_AgentResolver.md +++ /dev/null @@ -1,23 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / agent/AgentResolver - -# Module: agent/AgentResolver - -## Table of contents - -### Classes - -- [default](../classes/agent_AgentResolver.default.md) - -### Variables - -- [TEST\_AGENT\_DID](agent_AgentResolver.md#test_agent_did) - -## Variables - -### TEST\_AGENT\_DID - -• `Const` **TEST\_AGENT\_DID**: ``"did:ad4m:test"`` - -#### Defined in - -[agent/AgentResolver.ts:7](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/agent/AgentResolver.ts#L7) diff --git a/docs/typedoc/modules/agent_AgentStatus.md b/docs/typedoc/modules/agent_AgentStatus.md deleted file mode 100644 index 76c319c1a..000000000 --- a/docs/typedoc/modules/agent_AgentStatus.md +++ /dev/null @@ -1,9 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / agent/AgentStatus - -# Module: agent/AgentStatus - -## Table of contents - -### Classes - -- [AgentStatus](../classes/agent_AgentStatus.AgentStatus.md) diff --git a/docs/typedoc/modules/buildSchema.md b/docs/typedoc/modules/buildSchema.md deleted file mode 100644 index a2fda19ec..000000000 --- a/docs/typedoc/modules/buildSchema.md +++ /dev/null @@ -1,3 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / buildSchema - -# Module: buildSchema diff --git a/docs/typedoc/modules/expression_Expression.md b/docs/typedoc/modules/expression_Expression.md deleted file mode 100644 index 399edfb84..000000000 --- a/docs/typedoc/modules/expression_Expression.md +++ /dev/null @@ -1,90 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / expression/Expression - -# Module: expression/Expression - -## Table of contents - -### Classes - -- [Expression](../classes/expression_Expression.Expression.md) -- [ExpressionProof](../classes/expression_Expression.ExpressionProof.md) -- [ExpressionProofInput](../classes/expression_Expression.ExpressionProofInput.md) -- [ExpressionRendered](../classes/expression_Expression.ExpressionRendered.md) - -### Functions - -- [ExpressionGeneric](expression_Expression.md#expressiongeneric) -- [ExpressionGenericInput](expression_Expression.md#expressiongenericinput) -- [isExpression](expression_Expression.md#isexpression) - -## Functions - -### ExpressionGeneric - -▸ **ExpressionGeneric**<`DataType`\>(`DataTypeClass`): `any` - -#### Type parameters - -| Name | -| :------ | -| `DataType` | - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `DataTypeClass` | `ClassType`<`DataType`\> | - -#### Returns - -`any` - -#### Defined in - -[expression/Expression.ts:42](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/Expression.ts#L42) - -___ - -### ExpressionGenericInput - -▸ **ExpressionGenericInput**<`DataType`\>(`DataTypeClass`): `any` - -#### Type parameters - -| Name | -| :------ | -| `DataType` | - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `DataTypeClass` | `ClassType`<`DataType`\> | - -#### Returns - -`any` - -#### Defined in - -[expression/Expression.ts:67](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/Expression.ts#L67) - -___ - -### isExpression - -▸ **isExpression**(`e`): `boolean` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `e` | `any` | - -#### Returns - -`boolean` - -#### Defined in - -[expression/Expression.ts:97](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/Expression.ts#L97) diff --git a/docs/typedoc/modules/expression_ExpressionClient.md b/docs/typedoc/modules/expression_ExpressionClient.md deleted file mode 100644 index b06cd5662..000000000 --- a/docs/typedoc/modules/expression_ExpressionClient.md +++ /dev/null @@ -1,9 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / expression/ExpressionClient - -# Module: expression/ExpressionClient - -## Table of contents - -### Classes - -- [ExpressionClient](../classes/expression_ExpressionClient.ExpressionClient.md) diff --git a/docs/typedoc/modules/expression_ExpressionRef.md b/docs/typedoc/modules/expression_ExpressionRef.md deleted file mode 100644 index 520aa141b..000000000 --- a/docs/typedoc/modules/expression_ExpressionRef.md +++ /dev/null @@ -1,54 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / expression/ExpressionRef - -# Module: expression/ExpressionRef - -## Table of contents - -### Classes - -- [ExpressionRef](../classes/expression_ExpressionRef.ExpressionRef.md) - -### Functions - -- [exprRef2String](expression_ExpressionRef.md#exprref2string) -- [parseExprUrl](expression_ExpressionRef.md#parseexprurl) - -## Functions - -### exprRef2String - -▸ **exprRef2String**(`ref`): `string` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `ref` | [`ExpressionRef`](../classes/expression_ExpressionRef.ExpressionRef.md) | - -#### Returns - -`string` - -#### Defined in - -[expression/ExpressionRef.ts:22](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/ExpressionRef.ts#L22) - -___ - -### parseExprUrl - -▸ **parseExprUrl**(`url`): [`ExpressionRef`](../classes/expression_ExpressionRef.ExpressionRef.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `url` | `string` | - -#### Returns - -[`ExpressionRef`](../classes/expression_ExpressionRef.ExpressionRef.md) - -#### Defined in - -[expression/ExpressionRef.ts:29](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/expression/ExpressionRef.ts#L29) diff --git a/docs/typedoc/modules/expression_ExpressionResolver.md b/docs/typedoc/modules/expression_ExpressionResolver.md deleted file mode 100644 index 623ef4d10..000000000 --- a/docs/typedoc/modules/expression_ExpressionResolver.md +++ /dev/null @@ -1,9 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / expression/ExpressionResolver - -# Module: expression/ExpressionResolver - -## Table of contents - -### Classes - -- [default](../classes/expression_ExpressionResolver.default.md) diff --git a/docs/typedoc/modules/jestSetup.md b/docs/typedoc/modules/jestSetup.md deleted file mode 100644 index 223e0392d..000000000 --- a/docs/typedoc/modules/jestSetup.md +++ /dev/null @@ -1,3 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / jestSetup - -# Module: jestSetup diff --git a/docs/typedoc/modules/language_Icon.md b/docs/typedoc/modules/language_Icon.md deleted file mode 100644 index 47aaead61..000000000 --- a/docs/typedoc/modules/language_Icon.md +++ /dev/null @@ -1,9 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / language/Icon - -# Module: language/Icon - -## Table of contents - -### Classes - -- [Icon](../classes/language_Icon.Icon.md) diff --git a/docs/typedoc/modules/language_Language.md b/docs/typedoc/modules/language_Language.md deleted file mode 100644 index 6698ad037..000000000 --- a/docs/typedoc/modules/language_Language.md +++ /dev/null @@ -1,131 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / language/Language - -# Module: language/Language - -## Table of contents - -### Classes - -- [InteractionCall](../classes/language_Language.InteractionCall.md) -- [InteractionMeta](../classes/language_Language.InteractionMeta.md) -- [InteractionParameter](../classes/language_Language.InteractionParameter.md) -- [OnlineAgent](../classes/language_Language.OnlineAgent.md) - -### Interfaces - -- [DirectMessageAdapter](../interfaces/language_Language.DirectMessageAdapter.md) -- [ExpressionAdapter](../interfaces/language_Language.ExpressionAdapter.md) -- [ExpressionUI](../interfaces/language_Language.ExpressionUI.md) -- [GetAllAdapter](../interfaces/language_Language.GetAllAdapter.md) -- [GetByAuthorAdapter](../interfaces/language_Language.GetByAuthorAdapter.md) -- [Interaction](../interfaces/language_Language.Interaction.md) -- [Language](../interfaces/language_Language.Language.md) -- [LanguageAdapter](../interfaces/language_Language.LanguageAdapter.md) -- [LinkSyncAdapter](../interfaces/language_Language.LinkSyncAdapter.md) -- [PublicSharing](../interfaces/language_Language.PublicSharing.md) -- [ReadOnlyLanguage](../interfaces/language_Language.ReadOnlyLanguage.md) -- [SettingsUI](../interfaces/language_Language.SettingsUI.md) -- [TelepresenceAdapter](../interfaces/language_Language.TelepresenceAdapter.md) - -### Type Aliases - -- [MessageCallback](language_Language.md#messagecallback) -- [PerspectiveDiffObserver](language_Language.md#perspectivediffobserver) -- [StatusCallback](language_Language.md#statuscallback) -- [TelepresenceSignalCallback](language_Language.md#telepresencesignalcallback) - -## Type Aliases - -### MessageCallback - -Ƭ **MessageCallback**: (`message`: [`PerspectiveExpression`](../classes/perspectives_Perspective.PerspectiveExpression.md)) => `void` - -#### Type declaration - -▸ (`message`): `void` - -##### Parameters - -| Name | Type | -| :------ | :------ | -| `message` | [`PerspectiveExpression`](../classes/perspectives_Perspective.PerspectiveExpression.md) | - -##### Returns - -`void` - -#### Defined in - -[language/Language.ts:187](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L187) - -___ - -### PerspectiveDiffObserver - -Ƭ **PerspectiveDiffObserver**: (`diff`: [`PerspectiveDiff`](../classes/perspectives_PerspectiveDiff.PerspectiveDiff.md)) => `void` - -#### Type declaration - -▸ (`diff`): `void` - -##### Parameters - -| Name | Type | -| :------ | :------ | -| `diff` | [`PerspectiveDiff`](../classes/perspectives_PerspectiveDiff.PerspectiveDiff.md) | - -##### Returns - -`void` - -#### Defined in - -[language/Language.ts:150](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L150) - -___ - -### StatusCallback - -Ƭ **StatusCallback**: (`caller`: [`DID`](DID.md#did)) => [`Perspective`](../classes/perspectives_Perspective.Perspective.md) - -#### Type declaration - -▸ (`caller`): [`Perspective`](../classes/perspectives_Perspective.Perspective.md) - -##### Parameters - -| Name | Type | -| :------ | :------ | -| `caller` | [`DID`](DID.md#did) | - -##### Returns - -[`Perspective`](../classes/perspectives_Perspective.Perspective.md) - -#### Defined in - -[language/Language.ts:188](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L188) - -___ - -### TelepresenceSignalCallback - -Ƭ **TelepresenceSignalCallback**: (`payload`: [`PerspectiveExpression`](../classes/perspectives_Perspective.PerspectiveExpression.md)) => `void` - -#### Type declaration - -▸ (`payload`): `void` - -##### Parameters - -| Name | Type | -| :------ | :------ | -| `payload` | [`PerspectiveExpression`](../classes/perspectives_Perspective.PerspectiveExpression.md) | - -##### Returns - -`void` - -#### Defined in - -[language/Language.ts:253](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/Language.ts#L253) diff --git a/docs/typedoc/modules/language_LanguageClient.md b/docs/typedoc/modules/language_LanguageClient.md deleted file mode 100644 index 818cf97c0..000000000 --- a/docs/typedoc/modules/language_LanguageClient.md +++ /dev/null @@ -1,9 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / language/LanguageClient - -# Module: language/LanguageClient - -## Table of contents - -### Classes - -- [LanguageClient](../classes/language_LanguageClient.LanguageClient.md) diff --git a/docs/typedoc/modules/language_LanguageContext.md b/docs/typedoc/modules/language_LanguageContext.md deleted file mode 100644 index ace5ef160..000000000 --- a/docs/typedoc/modules/language_LanguageContext.md +++ /dev/null @@ -1,44 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / language/LanguageContext - -# Module: language/LanguageContext - -## Table of contents - -### Classes - -- [Dna](../classes/language_LanguageContext.Dna.md) - -### Interfaces - -- [AgentService](../interfaces/language_LanguageContext.AgentService.md) -- [HolochainLanguageDelegate](../interfaces/language_LanguageContext.HolochainLanguageDelegate.md) -- [LanguageContext](../interfaces/language_LanguageContext.LanguageContext.md) -- [SignaturesService](../interfaces/language_LanguageContext.SignaturesService.md) - -### Type Aliases - -- [Ad4mSignalCB](language_LanguageContext.md#ad4msignalcb) - -## Type Aliases - -### Ad4mSignalCB - -Ƭ **Ad4mSignalCB**: (`signal`: `any`) => `void` - -#### Type declaration - -▸ (`signal`): `void` - -##### Parameters - -| Name | Type | -| :------ | :------ | -| `signal` | `any` | - -##### Returns - -`void` - -#### Defined in - -[language/LanguageContext.ts:39](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/language/LanguageContext.ts#L39) diff --git a/docs/typedoc/modules/language_LanguageHandle.md b/docs/typedoc/modules/language_LanguageHandle.md deleted file mode 100644 index 872fe3192..000000000 --- a/docs/typedoc/modules/language_LanguageHandle.md +++ /dev/null @@ -1,9 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / language/LanguageHandle - -# Module: language/LanguageHandle - -## Table of contents - -### Classes - -- [LanguageHandle](../classes/language_LanguageHandle.LanguageHandle.md) diff --git a/docs/typedoc/modules/language_LanguageMeta.md b/docs/typedoc/modules/language_LanguageMeta.md deleted file mode 100644 index 6f819ecbb..000000000 --- a/docs/typedoc/modules/language_LanguageMeta.md +++ /dev/null @@ -1,13 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / language/LanguageMeta - -# Module: language/LanguageMeta - -## Table of contents - -### Classes - -- [LanguageExpression](../classes/language_LanguageMeta.LanguageExpression.md) -- [LanguageLanguageInput](../classes/language_LanguageMeta.LanguageLanguageInput.md) -- [LanguageMeta](../classes/language_LanguageMeta.LanguageMeta.md) -- [LanguageMetaInput](../classes/language_LanguageMeta.LanguageMetaInput.md) -- [LanguageMetaInternal](../classes/language_LanguageMeta.LanguageMetaInternal.md) diff --git a/docs/typedoc/modules/language_LanguageRef.md b/docs/typedoc/modules/language_LanguageRef.md deleted file mode 100644 index 67a3a2531..000000000 --- a/docs/typedoc/modules/language_LanguageRef.md +++ /dev/null @@ -1,9 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / language/LanguageRef - -# Module: language/LanguageRef - -## Table of contents - -### Classes - -- [LanguageRef](../classes/language_LanguageRef.LanguageRef.md) diff --git a/docs/typedoc/modules/language_LanguageResolver.md b/docs/typedoc/modules/language_LanguageResolver.md deleted file mode 100644 index 5f11d2601..000000000 --- a/docs/typedoc/modules/language_LanguageResolver.md +++ /dev/null @@ -1,9 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / language/LanguageResolver - -# Module: language/LanguageResolver - -## Table of contents - -### Classes - -- [default](../classes/language_LanguageResolver.default.md) diff --git a/docs/typedoc/modules/links_Links.md b/docs/typedoc/modules/links_Links.md deleted file mode 100644 index 329a5c5e5..000000000 --- a/docs/typedoc/modules/links_Links.md +++ /dev/null @@ -1,61 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / links/Links - -# Module: links/Links - -## Table of contents - -### Classes - -- [Link](../classes/links_Links.Link.md) -- [LinkExpression](../classes/links_Links.LinkExpression.md) -- [LinkExpressionInput](../classes/links_Links.LinkExpressionInput.md) -- [LinkExpressionMutations](../classes/links_Links.LinkExpressionMutations.md) -- [LinkExpressionUpdated](../classes/links_Links.LinkExpressionUpdated.md) -- [LinkInput](../classes/links_Links.LinkInput.md) -- [LinkMutations](../classes/links_Links.LinkMutations.md) - -### Functions - -- [isLink](links_Links.md#islink) -- [linkEqual](links_Links.md#linkequal) - -## Functions - -### isLink - -▸ **isLink**(`l`): `boolean` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `l` | `any` | - -#### Returns - -`boolean` - -#### Defined in - -[links/Links.ts:82](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/links/Links.ts#L82) - -___ - -### linkEqual - -▸ **linkEqual**(`l1`, `l2`): `boolean` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `l1` | [`LinkExpression`](../classes/links_Links.LinkExpression.md) | -| `l2` | [`LinkExpression`](../classes/links_Links.LinkExpression.md) | - -#### Returns - -`boolean` - -#### Defined in - -[links/Links.ts:74](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/links/Links.ts#L74) diff --git a/docs/typedoc/modules/neighbourhood_Neighbourhood.md b/docs/typedoc/modules/neighbourhood_Neighbourhood.md deleted file mode 100644 index 763db3857..000000000 --- a/docs/typedoc/modules/neighbourhood_Neighbourhood.md +++ /dev/null @@ -1,10 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / neighbourhood/Neighbourhood - -# Module: neighbourhood/Neighbourhood - -## Table of contents - -### Classes - -- [Neighbourhood](../classes/neighbourhood_Neighbourhood.Neighbourhood.md) -- [NeighbourhoodExpression](../classes/neighbourhood_Neighbourhood.NeighbourhoodExpression.md) diff --git a/docs/typedoc/modules/neighbourhood_NeighbourhoodClient.md b/docs/typedoc/modules/neighbourhood_NeighbourhoodClient.md deleted file mode 100644 index b992a6ffd..000000000 --- a/docs/typedoc/modules/neighbourhood_NeighbourhoodClient.md +++ /dev/null @@ -1,9 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / neighbourhood/NeighbourhoodClient - -# Module: neighbourhood/NeighbourhoodClient - -## Table of contents - -### Classes - -- [NeighbourhoodClient](../classes/neighbourhood_NeighbourhoodClient.NeighbourhoodClient.md) diff --git a/docs/typedoc/modules/neighbourhood_NeighbourhoodProxy.md b/docs/typedoc/modules/neighbourhood_NeighbourhoodProxy.md deleted file mode 100644 index d08b0ee58..000000000 --- a/docs/typedoc/modules/neighbourhood_NeighbourhoodProxy.md +++ /dev/null @@ -1,9 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / neighbourhood/NeighbourhoodProxy - -# Module: neighbourhood/NeighbourhoodProxy - -## Table of contents - -### Classes - -- [NeighbourhoodProxy](../classes/neighbourhood_NeighbourhoodProxy.NeighbourhoodProxy.md) diff --git a/docs/typedoc/modules/neighbourhood_NeighbourhoodResolver.md b/docs/typedoc/modules/neighbourhood_NeighbourhoodResolver.md deleted file mode 100644 index 2a05edbf4..000000000 --- a/docs/typedoc/modules/neighbourhood_NeighbourhoodResolver.md +++ /dev/null @@ -1,9 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / neighbourhood/NeighbourhoodResolver - -# Module: neighbourhood/NeighbourhoodResolver - -## Table of contents - -### Classes - -- [default](../classes/neighbourhood_NeighbourhoodResolver.default.md) diff --git a/docs/typedoc/modules/perspectives_LinkQuery.md b/docs/typedoc/modules/perspectives_LinkQuery.md deleted file mode 100644 index f5693f899..000000000 --- a/docs/typedoc/modules/perspectives_LinkQuery.md +++ /dev/null @@ -1,9 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / perspectives/LinkQuery - -# Module: perspectives/LinkQuery - -## Table of contents - -### Classes - -- [LinkQuery](../classes/perspectives_LinkQuery.LinkQuery.md) diff --git a/docs/typedoc/modules/perspectives_Perspective.md b/docs/typedoc/modules/perspectives_Perspective.md deleted file mode 100644 index 3c3f1522d..000000000 --- a/docs/typedoc/modules/perspectives_Perspective.md +++ /dev/null @@ -1,11 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / perspectives/Perspective - -# Module: perspectives/Perspective - -## Table of contents - -### Classes - -- [Perspective](../classes/perspectives_Perspective.Perspective.md) -- [PerspectiveExpression](../classes/perspectives_Perspective.PerspectiveExpression.md) -- [PerspectiveInput](../classes/perspectives_Perspective.PerspectiveInput.md) diff --git a/docs/typedoc/modules/perspectives_PerspectiveClient.md b/docs/typedoc/modules/perspectives_PerspectiveClient.md deleted file mode 100644 index 4a4c11f99..000000000 --- a/docs/typedoc/modules/perspectives_PerspectiveClient.md +++ /dev/null @@ -1,87 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / perspectives/PerspectiveClient - -# Module: perspectives/PerspectiveClient - -## Table of contents - -### Classes - -- [PerspectiveClient](../classes/perspectives_PerspectiveClient.PerspectiveClient.md) - -### Type Aliases - -- [LinkCallback](perspectives_PerspectiveClient.md#linkcallback) -- [PerspectiveHandleCallback](perspectives_PerspectiveClient.md#perspectivehandlecallback) -- [UuidCallback](perspectives_PerspectiveClient.md#uuidcallback) - -## Type Aliases - -### LinkCallback - -Ƭ **LinkCallback**: (`link`: [`LinkExpression`](../classes/links_Links.LinkExpression.md)) => ``null`` - -#### Type declaration - -▸ (`link`): ``null`` - -##### Parameters - -| Name | Type | -| :------ | :------ | -| `link` | [`LinkExpression`](../classes/links_Links.LinkExpression.md) | - -##### Returns - -``null`` - -#### Defined in - -[perspectives/PerspectiveClient.ts:41](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L41) - -___ - -### PerspectiveHandleCallback - -Ƭ **PerspectiveHandleCallback**: (`perspective`: [`PerspectiveHandle`](../classes/perspectives_PerspectiveHandle.PerspectiveHandle.md)) => ``null`` - -#### Type declaration - -▸ (`perspective`): ``null`` - -##### Parameters - -| Name | Type | -| :------ | :------ | -| `perspective` | [`PerspectiveHandle`](../classes/perspectives_PerspectiveHandle.PerspectiveHandle.md) | - -##### Returns - -``null`` - -#### Defined in - -[perspectives/PerspectiveClient.ts:39](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L39) - -___ - -### UuidCallback - -Ƭ **UuidCallback**: (`uuid`: `string`) => ``null`` - -#### Type declaration - -▸ (`uuid`): ``null`` - -##### Parameters - -| Name | Type | -| :------ | :------ | -| `uuid` | `string` | - -##### Returns - -``null`` - -#### Defined in - -[perspectives/PerspectiveClient.ts:40](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveClient.ts#L40) diff --git a/docs/typedoc/modules/perspectives_PerspectiveDiff.md b/docs/typedoc/modules/perspectives_PerspectiveDiff.md deleted file mode 100644 index f21339083..000000000 --- a/docs/typedoc/modules/perspectives_PerspectiveDiff.md +++ /dev/null @@ -1,10 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / perspectives/PerspectiveDiff - -# Module: perspectives/PerspectiveDiff - -## Table of contents - -### Classes - -- [PerspectiveDiff](../classes/perspectives_PerspectiveDiff.PerspectiveDiff.md) -- [PerspectiveDiffExpression](../classes/perspectives_PerspectiveDiff.PerspectiveDiffExpression.md) diff --git a/docs/typedoc/modules/perspectives_PerspectiveHandle.md b/docs/typedoc/modules/perspectives_PerspectiveHandle.md deleted file mode 100644 index 97fb3e32f..000000000 --- a/docs/typedoc/modules/perspectives_PerspectiveHandle.md +++ /dev/null @@ -1,13 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / perspectives/PerspectiveHandle - -# Module: perspectives/PerspectiveHandle - -## Table of contents - -### Enumerations - -- [PerspectiveState](../enums/perspectives_PerspectiveHandle.PerspectiveState.md) - -### Classes - -- [PerspectiveHandle](../classes/perspectives_PerspectiveHandle.PerspectiveHandle.md) diff --git a/docs/typedoc/modules/perspectives_PerspectiveProxy.md b/docs/typedoc/modules/perspectives_PerspectiveProxy.md deleted file mode 100644 index 64bf761e7..000000000 --- a/docs/typedoc/modules/perspectives_PerspectiveProxy.md +++ /dev/null @@ -1,9 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / perspectives/PerspectiveProxy - -# Module: perspectives/PerspectiveProxy - -## Table of contents - -### Classes - -- [PerspectiveProxy](../classes/perspectives_PerspectiveProxy.PerspectiveProxy.md) diff --git a/docs/typedoc/modules/perspectives_PerspectiveResolver.md b/docs/typedoc/modules/perspectives_PerspectiveResolver.md deleted file mode 100644 index 623d4f6ac..000000000 --- a/docs/typedoc/modules/perspectives_PerspectiveResolver.md +++ /dev/null @@ -1,23 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / perspectives/PerspectiveResolver - -# Module: perspectives/PerspectiveResolver - -## Table of contents - -### Classes - -- [default](../classes/perspectives_PerspectiveResolver.default.md) - -### Variables - -- [testLink](perspectives_PerspectiveResolver.md#testlink) - -## Variables - -### testLink - -• `Const` **testLink**: [`LinkExpression`](../classes/links_Links.LinkExpression.md) - -#### Defined in - -[perspectives/PerspectiveResolver.ts:9](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/perspectives/PerspectiveResolver.ts#L9) diff --git a/docs/typedoc/modules/runtime_RuntimeClient.md b/docs/typedoc/modules/runtime_RuntimeClient.md deleted file mode 100644 index 3c9c47ea2..000000000 --- a/docs/typedoc/modules/runtime_RuntimeClient.md +++ /dev/null @@ -1,62 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / runtime/RuntimeClient - -# Module: runtime/RuntimeClient - -## Table of contents - -### Classes - -- [RuntimeClient](../classes/runtime_RuntimeClient.RuntimeClient.md) - -### Type Aliases - -- [ExceptionCallback](runtime_RuntimeClient.md#exceptioncallback) -- [MessageCallback](runtime_RuntimeClient.md#messagecallback) - -## Type Aliases - -### ExceptionCallback - -Ƭ **ExceptionCallback**: (`info`: [`ExceptionInfo`](../classes/runtime_RuntimeResolver.ExceptionInfo.md)) => ``null`` - -#### Type declaration - -▸ (`info`): ``null`` - -##### Parameters - -| Name | Type | -| :------ | :------ | -| `info` | [`ExceptionInfo`](../classes/runtime_RuntimeResolver.ExceptionInfo.md) | - -##### Returns - -``null`` - -#### Defined in - -[runtime/RuntimeClient.ts:21](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L21) - -___ - -### MessageCallback - -Ƭ **MessageCallback**: (`message`: [`PerspectiveExpression`](../classes/perspectives_Perspective.PerspectiveExpression.md)) => ``null`` - -#### Type declaration - -▸ (`message`): ``null`` - -##### Parameters - -| Name | Type | -| :------ | :------ | -| `message` | [`PerspectiveExpression`](../classes/perspectives_Perspective.PerspectiveExpression.md) | - -##### Returns - -``null`` - -#### Defined in - -[runtime/RuntimeClient.ts:20](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/runtime/RuntimeClient.ts#L20) diff --git a/docs/typedoc/modules/runtime_RuntimeResolver.md b/docs/typedoc/modules/runtime_RuntimeResolver.md deleted file mode 100644 index 26650da36..000000000 --- a/docs/typedoc/modules/runtime_RuntimeResolver.md +++ /dev/null @@ -1,12 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / runtime/RuntimeResolver - -# Module: runtime/RuntimeResolver - -## Table of contents - -### Classes - -- [ExceptionInfo](../classes/runtime_RuntimeResolver.ExceptionInfo.md) -- [RuntimeInfo](../classes/runtime_RuntimeResolver.RuntimeInfo.md) -- [SentMessage](../classes/runtime_RuntimeResolver.SentMessage.md) -- [default](../classes/runtime_RuntimeResolver.default.md) diff --git a/docs/typedoc/modules/subject_SDNADecorators.md b/docs/typedoc/modules/subject_SDNADecorators.md deleted file mode 100644 index 04000a004..000000000 --- a/docs/typedoc/modules/subject_SDNADecorators.md +++ /dev/null @@ -1,250 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / subject/SDNADecorators - -# Module: subject/SDNADecorators - -## Table of contents - -### Classes - -- [PerspectiveAction](../classes/subject_SDNADecorators.PerspectiveAction.md) - -### Functions - -- [SDNAClass](subject_SDNADecorators.md#sdnaclass) -- [addLink](subject_SDNADecorators.md#addlink) -- [hasLink](subject_SDNADecorators.md#haslink) -- [instanceQuery](subject_SDNADecorators.md#instancequery) -- [subjectCollection](subject_SDNADecorators.md#subjectcollection) -- [subjectFlag](subject_SDNADecorators.md#subjectflag) -- [subjectProperty](subject_SDNADecorators.md#subjectproperty) - -## Functions - -### SDNAClass - -▸ **SDNAClass**(`opts`): (`target`: `any`) => `void` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `opts` | `SDNAClassOptions` | - -#### Returns - -`fn` - -▸ (`target`): `void` - -##### Parameters - -| Name | Type | -| :------ | :------ | -| `target` | `any` | - -##### Returns - -`void` - -#### Defined in - -[subject/SDNADecorators.ts:153](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/SDNADecorators.ts#L153) - -___ - -### addLink - -▸ **addLink**(`source`, `predicate`, `target`): [`PerspectiveAction`](../classes/subject_SDNADecorators.PerspectiveAction.md) - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `source` | `string` | -| `predicate` | `string` | -| `target` | `string` | - -#### Returns - -[`PerspectiveAction`](../classes/subject_SDNADecorators.PerspectiveAction.md) - -#### Defined in - -[subject/SDNADecorators.ts:12](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/SDNADecorators.ts#L12) - -___ - -### hasLink - -▸ **hasLink**(`predicate`): `string` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `predicate` | `string` | - -#### Returns - -`string` - -#### Defined in - -[subject/SDNADecorators.ts:21](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/SDNADecorators.ts#L21) - -___ - -### instanceQuery - -▸ **instanceQuery**(`options?`): (`target`: `T`, `key`: keyof `T`, `descriptor`: `PropertyDescriptor`) => `void` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `options?` | `InstanceQueryParams` | - -#### Returns - -`fn` - -▸ <`T`\>(`target`, `key`, `descriptor`): `void` - -##### Type parameters - -| Name | -| :------ | -| `T` | - -##### Parameters - -| Name | Type | -| :------ | :------ | -| `target` | `T` | -| `key` | keyof `T` | -| `descriptor` | `PropertyDescriptor` | - -##### Returns - -`void` - -#### Defined in - -[subject/SDNADecorators.ts:30](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/SDNADecorators.ts#L30) - -___ - -### subjectCollection - -▸ **subjectCollection**(`opts`): (`target`: `T`, `key`: keyof `T`) => `void` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `opts` | `CollectionOptions` | - -#### Returns - -`fn` - -▸ <`T`\>(`target`, `key`): `void` - -##### Type parameters - -| Name | -| :------ | -| `T` | - -##### Parameters - -| Name | Type | -| :------ | :------ | -| `target` | `T` | -| `key` | keyof `T` | - -##### Returns - -`void` - -#### Defined in - -[subject/SDNADecorators.ts:126](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/SDNADecorators.ts#L126) - -___ - -### subjectFlag - -▸ **subjectFlag**(`opts`): (`target`: `T`, `key`: keyof `T`) => `void` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `opts` | `FlagOptions` | - -#### Returns - -`fn` - -▸ <`T`\>(`target`, `key`): `void` - -##### Type parameters - -| Name | -| :------ | -| `T` | - -##### Parameters - -| Name | Type | -| :------ | :------ | -| `target` | `T` | -| `key` | keyof `T` | - -##### Returns - -`void` - -#### Defined in - -[subject/SDNADecorators.ts:99](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/SDNADecorators.ts#L99) - -___ - -### subjectProperty - -▸ **subjectProperty**(`opts`): (`target`: `T`, `key`: keyof `T`) => `void` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `opts` | `PropertyOptions` | - -#### Returns - -`fn` - -▸ <`T`\>(`target`, `key`): `void` - -##### Type parameters - -| Name | -| :------ | -| `T` | - -##### Parameters - -| Name | Type | -| :------ | :------ | -| `target` | `T` | -| `key` | keyof `T` | - -##### Returns - -`void` - -#### Defined in - -[subject/SDNADecorators.ts:80](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/SDNADecorators.ts#L80) diff --git a/docs/typedoc/modules/subject_Subject.md b/docs/typedoc/modules/subject_Subject.md deleted file mode 100644 index cdf79393c..000000000 --- a/docs/typedoc/modules/subject_Subject.md +++ /dev/null @@ -1,9 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / subject/Subject - -# Module: subject/Subject - -## Table of contents - -### Classes - -- [Subject](../classes/subject_Subject.Subject.md) diff --git a/docs/typedoc/modules/subject_util.md b/docs/typedoc/modules/subject_util.md deleted file mode 100644 index 9da9d8326..000000000 --- a/docs/typedoc/modules/subject_util.md +++ /dev/null @@ -1,218 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / subject/util - -# Module: subject/util - -## Table of contents - -### Functions - -- [capitalize](subject_util.md#capitalize) -- [collectionAdderToName](subject_util.md#collectionaddertoname) -- [collectionSetterToName](subject_util.md#collectionsettertoname) -- [collectionToAdderName](subject_util.md#collectiontoaddername) -- [collectionToSetterName](subject_util.md#collectiontosettername) -- [pluralToSingular](subject_util.md#pluraltosingular) -- [propertyNameToSetterName](subject_util.md#propertynametosettername) -- [setterNameToPropertyName](subject_util.md#setternametopropertyname) -- [singularToPlural](subject_util.md#singulartoplural) -- [stringifyObjectLiteral](subject_util.md#stringifyobjectliteral) - -## Functions - -### capitalize - -▸ **capitalize**(`str`): `string` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `str` | `string` | - -#### Returns - -`string` - -#### Defined in - -[subject/util.ts:1](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/util.ts#L1) - -___ - -### collectionAdderToName - -▸ **collectionAdderToName**(`adderName`): `string` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `adderName` | `string` | - -#### Returns - -`string` - -#### Defined in - -[subject/util.ts:39](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/util.ts#L39) - -___ - -### collectionSetterToName - -▸ **collectionSetterToName**(`adderName`): `string` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `adderName` | `string` | - -#### Returns - -`string` - -#### Defined in - -[subject/util.ts:45](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/util.ts#L45) - -___ - -### collectionToAdderName - -▸ **collectionToAdderName**(`collection`): `string` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `collection` | `string` | - -#### Returns - -`string` - -#### Defined in - -[subject/util.ts:34](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/util.ts#L34) - -___ - -### collectionToSetterName - -▸ **collectionToSetterName**(`collection`): `string` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `collection` | `string` | - -#### Returns - -`string` - -#### Defined in - -[subject/util.ts:52](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/util.ts#L52) - -___ - -### pluralToSingular - -▸ **pluralToSingular**(`plural`): `string` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `plural` | `string` | - -#### Returns - -`string` - -#### Defined in - -[subject/util.ts:23](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/util.ts#L23) - -___ - -### propertyNameToSetterName - -▸ **propertyNameToSetterName**(`property`): `string` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `property` | `string` | - -#### Returns - -`string` - -#### Defined in - -[subject/util.ts:6](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/util.ts#L6) - -___ - -### setterNameToPropertyName - -▸ **setterNameToPropertyName**(`setter`): `string` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `setter` | `string` | - -#### Returns - -`string` - -#### Defined in - -[subject/util.ts:11](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/util.ts#L11) - -___ - -### singularToPlural - -▸ **singularToPlural**(`singular`): `string` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `singular` | `string` | - -#### Returns - -`string` - -#### Defined in - -[subject/util.ts:15](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/util.ts#L15) - -___ - -### stringifyObjectLiteral - -▸ **stringifyObjectLiteral**(`obj`): `any` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `obj` | `any` | - -#### Returns - -`any` - -#### Defined in - -[subject/util.ts:57](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/subject/util.ts#L57) diff --git a/docs/typedoc/modules/typeDefs.md b/docs/typedoc/modules/typeDefs.md deleted file mode 100644 index 4bbf3d611..000000000 --- a/docs/typedoc/modules/typeDefs.md +++ /dev/null @@ -1,19 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / typeDefs - -# Module: typeDefs - -## Table of contents - -### Variables - -- [typeDefsString](typeDefs.md#typedefsstring) - -## Variables - -### typeDefsString - -• `Const` **typeDefsString**: ``""`` - -#### Defined in - -[typeDefs.ts:6](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/typeDefs.ts#L6) diff --git a/docs/typedoc/modules/unwrapApolloResult.md b/docs/typedoc/modules/unwrapApolloResult.md deleted file mode 100644 index d84757fa5..000000000 --- a/docs/typedoc/modules/unwrapApolloResult.md +++ /dev/null @@ -1,29 +0,0 @@ -[@perspect3vism/ad4m](../README.md) / [Exports](../modules.md) / unwrapApolloResult - -# Module: unwrapApolloResult - -## Table of contents - -### Functions - -- [default](unwrapApolloResult.md#default) - -## Functions - -### default - -▸ **default**(`result`): `any` - -#### Parameters - -| Name | Type | -| :------ | :------ | -| `result` | `ApolloQueryResult`<`any`\> \| `FetchResult`<`any`, `Record`<`string`, `any`\>, `Record`<`string`, `any`\>\> | - -#### Returns - -`any` - -#### Defined in - -[unwrapApolloResult.ts:3](https://github.com/perspect3vism/ad4m/blob/d9ddd7e2/core/src/unwrapApolloResult.ts#L3) diff --git a/executor/package.json b/executor/package.json index a4945bb14..250df748c 100644 --- a/executor/package.json +++ b/executor/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-executor", - "version": "0.3.4", + "version": "0.5.0", "description": "Node.js package that allows the running/interfacing of AD4M Languages & Perspectives.", "main": "lib/main.js", "files": [ @@ -14,7 +14,7 @@ "holochain_version.nix" ], "type": "module", - "types": "src/types.d.ts", + "types": "lib/main.d.ts", "scripts": { "build": "tsc", "run": "node --experimental-specifier-resolution=node lib/main.js", @@ -67,7 +67,7 @@ "@types/js-yaml": "^4.0.2", "@types/lowdb": "^1.0.11", "@types/mocha": "*", - "@types/node": "^14.14.22", + "@types/node": "^18.0.0", "@types/node-fetch": "^2.5.11", "@types/secp256k1": "^4.0.3", "@types/sha256": "^0.2.0", diff --git a/executor/src/core/Config.ts b/executor/src/core/Config.ts index 960e2385f..bb0fde4b0 100644 --- a/executor/src/core/Config.ts +++ b/executor/src/core/Config.ts @@ -2,7 +2,7 @@ import * as path from 'path'; import * as fs from 'fs'; import { Address, Expression } from '@perspect3vism/ad4m'; -export let ad4mExecutorVersion = "0.3.4"; +export let ad4mExecutorVersion = "0.5.0"; export let agentLanguageAlias = "did"; export let languageLanguageAlias = "lang"; export let neighbourhoodLanguageAlias = "neighbourhood"; diff --git a/executor/src/core/LanguageController.ts b/executor/src/core/LanguageController.ts index e78c61766..82b3e1d94 100644 --- a/executor/src/core/LanguageController.ts +++ b/executor/src/core/LanguageController.ts @@ -1007,6 +1007,14 @@ export default class LanguageController { try { if(ref.language.address == "literal" || ref.language.name == 'literal') { expr = Literal.fromUrl(`literal://${ref.expression}`).get() + if(! (typeof expr === 'object')) { + expr = { + author: '', + timestamp: '', + data: expr, + proof: {} + } + } } else { const lang = this.languageForExpression(ref); if (!lang.expressionAdapter) { @@ -1044,8 +1052,10 @@ export default class LanguageController { async tagExpressionSignatureStatus(expression: Expression) { if(expression) { try{ - if(! await this.#signatures.verify(expression)) { - console.error(new Date().toISOString(), "BROKEN SIGNATURE FOR EXPRESSION:", expression) + if(!await this.#signatures.verify(expression)) { + let expressionString = JSON.stringify(expression); + let endingLog = expressionString.length > 50 ? "... \x1b[0m" : "\x1b[0m"; + console.error(new Date().toISOString(),"tagExpressionSignatureStatus - BROKEN SIGNATURE FOR EXPRESSION: (object):", expressionString.substring(0, 50), endingLog) expression.proof.invalid = true expression.proof.valid = false } else { @@ -1053,7 +1063,16 @@ export default class LanguageController { expression.proof.invalid = false } } catch(e) { - let errMsg = `Error trying to verify signature for expression: ${expression}` + let expressionFormatted; + if (typeof expression === "string") { + expressionFormatted = expression.substring(0, 50); + } else if (typeof expression === "object") { + let expressionString = JSON.stringify(expression); + expressionFormatted = expressionString.substring(0, 50) + } else { + expressionFormatted = expression; + } + let errMsg = `Error trying to verify signature for expression: ${expressionFormatted}` console.error(errMsg) console.error(e) this.pubSub.publish( diff --git a/executor/src/core/Perspective.ts b/executor/src/core/Perspective.ts index 04fa02fdc..7f75f3b3b 100644 --- a/executor/src/core/Perspective.ts +++ b/executor/src/core/Perspective.ts @@ -1,4 +1,4 @@ -import { Agent, Expression, Neighbourhood, LinkExpression, LinkExpressionInput, LinkInput, LanguageRef, PerspectiveHandle, Literal, PerspectiveDiff, parseExprUrl, Perspective as Ad4mPerspective, LinkMutations, LinkExpressionMutations, Language, LinkSyncAdapter, TelepresenceAdapter, OnlineAgent } from "@perspect3vism/ad4m" +import { Agent, Expression, Neighbourhood, LinkExpression, LinkExpressionInput, LinkInput, LanguageRef, PerspectiveHandle, Literal, PerspectiveDiff, parseExprUrl, Perspective as Ad4mPerspective, LinkStatus, LinkMutations, LinkExpressionMutations, Language, LinkSyncAdapter, TelepresenceAdapter, OnlineAgent } from "@perspect3vism/ad4m" import { Link, linkEqual, LinkQuery, PerspectiveState } from "@perspect3vism/ad4m"; import { SHA3 } from "sha3"; import type AgentService from "./agent/AgentService"; @@ -319,7 +319,7 @@ export default class Perspective { const linksAdapter = await this.getLinksAdapter(); if(linksAdapter) { const timeout = setTimeout(() => reject(Error(`NH [${this.sharedUrl}] (${this.name}): LinkLanguage took to long to respond, timeout at 20000ms`)), 20000) - console.debug(`NH [${this.sharedUrl}] (${this.name}): Calling linksAdapter.${functionName}(${JSON.stringify(args).substring(0, 50)})`) + //console.debug(`NH [${this.sharedUrl}] (${this.name}): Calling linksAdapter.${functionName}(${JSON.stringify(args).substring(0, 50)})`) //@ts-ignore const result = await linksAdapter[functionName](...args) //console.debug("Got result:", result) @@ -460,19 +460,23 @@ export default class Perspective { return onlineAgents.filter(o => o) } - async addLink(link: LinkInput | LinkExpressionInput): Promise { + async addLink(link: LinkInput | LinkExpressionInput, status: LinkStatus = 'shared'): Promise { const linkExpression = this.ensureLinkExpression(link); - const diff = { - additions: [linkExpression], - removals: [] - } as PerspectiveDiff - const addLink = await this.commit(diff); - if (!addLink) { - await this.#db.addPendingDiff(this.uuid!, diff); + if (status === 'shared') { + const diff = { + additions: [linkExpression], + removals: [] + } as PerspectiveDiff + const addLink = await this.commit(diff); + + if (!addLink) { + this.#db.addPendingDiff(this.uuid!, diff); + } } - await this.#db.addLink(this.uuid!, linkExpression); + await this.#db.addLink(this.uuid!, linkExpression, status); + this.#prologNeedsRebuild = true; let perspectivePlain = this.plain(); this.#pubsub.publish(PubSub.LINK_ADDED_TOPIC, { @@ -480,10 +484,12 @@ export default class Perspective { link: linkExpression }) + linkExpression.status = status; + return linkExpression } - async addLinks(links: (LinkInput | LinkExpressionInput)[]): Promise { + async addLinks(links: (LinkInput | LinkExpressionInput)[], status: LinkStatus = 'shared'): Promise { const linkExpressions = links.map(l => this.ensureLinkExpression(l)); const diff = { additions: linkExpressions, @@ -495,7 +501,7 @@ export default class Perspective { await this.#db.addPendingDiff(this.uuid!, diff); } - await this.#db.addManyLinks(this.uuid!, linkExpressions); + await this.#db.addManyLinks(this.uuid!, linkExpressions, status); this.#prologNeedsRebuild = true; let perspectivePlain = this.plain(); for (const link of linkExpressions) { @@ -505,7 +511,8 @@ export default class Perspective { }) }; - return linkExpressions + // @ts-ignore + return linkExpressions.map(l => ({...l, status})) } async removeLinks(links: LinkInput[]): Promise { @@ -532,7 +539,7 @@ export default class Perspective { return linkExpressions } - async linkMutations(mutations: LinkMutations): Promise { + async linkMutations(mutations: LinkMutations, status?: LinkStatus): Promise { const diff = { additions: mutations.additions.map(l => this.ensureLinkExpression(l)), removals: mutations.removals.map(l => this.ensureLinkExpression(l)) @@ -543,7 +550,7 @@ export default class Perspective { await this.#db.addPendingDiff(this.uuid!, diff); }; - await this.#db.addManyLinks(this.uuid!, diff.additions); + await this.#db.addManyLinks(this.uuid!, diff.additions, status); await Promise.all(diff.removals.map(async l => await this.#db.removeLink(this.uuid!, l))); this.#prologNeedsRebuild = true; for (const link of diff.additions) { @@ -566,7 +573,6 @@ export default class Perspective { const link = await this.#db.getLink(this.uuid!, oldLink); if (!link) { const allLinks = await this.#db.getAllLinks(this.uuid!); - console.log("all links", allLinks); throw new Error(`NH [${this.sharedUrl}] (${this.name}) Link not found in perspective "${this.plain()}": ${JSON.stringify(oldLink)}`) } @@ -592,6 +598,10 @@ export default class Perspective { newLink: newLinkExpression }); + if (link.status) { + newLinkExpression.status = link.status + } + return newLinkExpression } @@ -869,8 +879,14 @@ export default class Perspective { lines.push(":- dynamic property/2.") lines.push(":- dynamic property_getter/4.") lines.push(":- dynamic property_setter/3.") + lines.push(":- dynamic property_resolve/2.") + lines.push(":- dynamic property_resolve_language/3.") + lines.push(":- dynamic property_named_option/4.") lines.push(":- dynamic collection_getter/4.") lines.push(":- dynamic collection_setter/3.") + lines.push(":- dynamic p3_class_icon/2.") + lines.push(":- dynamic p3_class_color/2.") + lines.push(":- dynamic p3_instance_color/3.") lines.push(":- discontiguous subject_class/2.") lines.push(":- discontiguous constructor/2.") @@ -878,8 +894,14 @@ export default class Perspective { lines.push(":- discontiguous property/2.") lines.push(":- discontiguous property_getter/4.") lines.push(":- discontiguous property_setter/3.") + lines.push(":- discontiguous property_resolve/2.") + lines.push(":- discontiguous property_resolve_language/3.") + lines.push(":- discontiguous property_named_option/4.") lines.push(":- discontiguous collection_getter/4.") lines.push(":- discontiguous collection_setter/3.") + lines.push(":- discontiguous p3_class_icon/2.") + lines.push(":- discontiguous p3_class_color/2.") + lines.push(":- discontiguous p3_instance_color/3.") for(let linkExpression of allLinks) { let link = linkExpression.data diff --git a/executor/src/core/PerspectivesController.ts b/executor/src/core/PerspectivesController.ts index 390b8ca3b..5ceefaedd 100644 --- a/executor/src/core/PerspectivesController.ts +++ b/executor/src/core/PerspectivesController.ts @@ -39,7 +39,6 @@ export default class PerspectivesController { this.#context.languageController!.addLinkObserver(async (diff: PerspectiveDiff, lang: LanguageRef) => { let perspective = Array.from(this.#perspectiveInstances.values()).find((perspective: Perspective) => perspective.neighbourhood?.linkLanguage === lang.address); if (perspective) { - console.log("PerspectiveController: received signal from linkObserver, adding remote links from a language to a local perspective..."); perspective.populateLocalLinks(diff.additions, diff.removals); try { @@ -51,8 +50,6 @@ export default class PerspectivesController { }) } - console.log("PerspectiveController: published link additions"); - for (const linkRemoved of diff.removals) { console.log("publishing removal:", linkRemoved) await this.pubsub.publish(PubSub.LINK_REMOVED_TOPIC, { @@ -60,8 +57,6 @@ export default class PerspectivesController { link: linkRemoved }) } - - console.log("PerspectiveController: published link removals"); } catch (e) { console.error("PerspectiveController: error publishing link additions/removals", e); } @@ -73,7 +68,6 @@ export default class PerspectivesController { this.#context.languageController!.addTelepresenceSignalObserver((signal: any, lang: LanguageRef) => { let perspective = Array.from(this.#perspectiveInstances.values()).find((perspective: Perspective) => perspective.neighbourhood?.linkLanguage === lang.address); if (perspective) { - console.log("PerspectiveController: received telepresence signal..."); this.pubsub.publish(PubSub.NEIGHBOURHOOD_SIGNAL_RECEIVED_TOPIC, { signal: signal, perspective: perspective.plain() @@ -85,8 +79,10 @@ export default class PerspectivesController { this.#context.languageController!.addSyncStateChangeObserver(async (state: PerspectiveState, lang: LanguageRef) => { let perspective = Array.from(this.#perspectiveInstances.values()).find((perspective: Perspective) => perspective.neighbourhood?.linkLanguage === lang.address); + let perspectiveHandle = Array.from(this.#perspectiveHandles.values()).find((p) => p.uuid === perspective?.uuid); if (perspective) { await perspective.updatePerspectiveState(state); + perspectiveHandle!.state = state; } else { console.warn(`Could not find perspective sync state change signal with lang: ${lang}`) } diff --git a/executor/src/core/PerspectivismCore.ts b/executor/src/core/PerspectivismCore.ts index 84f3077c5..cd8a2eec4 100644 --- a/executor/src/core/PerspectivismCore.ts +++ b/executor/src/core/PerspectivismCore.ts @@ -147,7 +147,7 @@ export default class PerspectivismCore { while (fs.existsSync(repoPath)) { await sleep(1000); retries++; - if (retries > 10) { + if (retries >= 10) { console.log("Waited long enough for repo.lock to be released, deleting..."); fs.rmdirSync(repoPath, { recursive: true }); fs.rmSync(path.join(basePath, "datastore", "LOCK")); @@ -202,8 +202,8 @@ export default class PerspectivismCore { } languageSignal(signal: any) { - //@ts-ignore - console.log(new Date().toISOString(), "PerspectivismCore.languageSignal: Got signal"); + // //@ts-ignore + // console.log(new Date().toISOString(), "PerspectivismCore.languageSignal: Got signal"); //NOTE (optimization): worth considering if its worth keeping around pubsub in this or if we should just get a new pubsub here //@ts-ignore this.pubsub.publish(PubSub.SIGNAL, { signal: JSON.stringify(signal), language: this.language }); diff --git a/executor/src/core/RuntimeService.ts b/executor/src/core/RuntimeService.ts index 6eb3f86ac..776fb0e56 100644 --- a/executor/src/core/RuntimeService.ts +++ b/executor/src/core/RuntimeService.ts @@ -138,7 +138,7 @@ export default class RuntimeService { getMessagesOutbox(filter?: string): Message[] { let messages = _getObjects(this.outboxPath()) as Message[] - console.log("OUTBOX:", messages) + // console.log("OUTBOX:", messages) if(filter) { messages = messages.filter(m => m.recipient === filter) } diff --git a/executor/src/core/agent/AgentService.ts b/executor/src/core/agent/AgentService.ts index e5ae42846..b8c457b90 100644 --- a/executor/src/core/agent/AgentService.ts +++ b/executor/src/core/agent/AgentService.ts @@ -410,8 +410,8 @@ export default class AgentService { // TODO, we may want to change the capability request workflow. // https://github.com/perspect3vism/ad4m-executor/issues/73 permitCapability(authExt: string, capabilities: Capability[]) { - console.log("admin user capabilities: ", capabilities); - console.log("auth info: ", authExt); + console.log("AgentService.permitCapability(): admin user capabilities: ", capabilities); + console.log("AgentService.permitCapability(): auth info: ", authExt); let { requestId, auth }: AuthInfoExtended = JSON.parse(authExt); let rand = genRandomDigits(); @@ -424,7 +424,7 @@ export default class AgentService { async generateJwt(requestId: string, rand: string) { const authKey = genRequestKey(requestId, rand); - console.log("rand number with requestId: ", authKey); + console.log("AgentService.generateJwt(): rand number with requestId: ", authKey); const auth = this.#requests.get(authKey); if (!auth) { @@ -455,6 +455,8 @@ export default class AgentService { const apps = [...this.#apps, { ...this.#requestingAuthInfo, token: jwt }]; this.#apps = apps; fs.writeFileSync(this.#appsFile, JSON.stringify(apps)); + + this.#pubsub.publish(PubSubInstance.APPS_CHANGED, null); } return jwt; @@ -469,6 +471,8 @@ export default class AgentService { this.#apps = this.#apps.filter((app: any) => app.requestId !== requestId); fs.writeFileSync(this.#appsFile, JSON.stringify(this.#apps)); + + this.#pubsub.publish(PubSubInstance.APPS_CHANGED, null); } catch (e) { console.error("Error while removing app", e); } @@ -481,6 +485,8 @@ export default class AgentService { ); fs.writeFileSync(this.#appsFile, JSON.stringify(this.#apps)); + + this.#pubsub.publish(PubSubInstance.APPS_CHANGED, null); } catch (e) { console.error("Error while revoking token", e); } diff --git a/executor/src/core/db.test.ts b/executor/src/core/db.test.ts index 1511d5524..92a036622 100644 --- a/executor/src/core/db.test.ts +++ b/executor/src/core/db.test.ts @@ -5,6 +5,7 @@ import { LinkExpression, LinkExpressionInput, PerspectiveDiff } from '@perspect3 import faker from 'faker' function constructDummyLinkExpression(): LinkExpressionInput { + // @ts-ignore return { data: { source: faker.internet.url(), @@ -33,6 +34,7 @@ describe('PerspectivismDb', () => { it('can store and retrieve links', async () => { const link = constructDummyLinkExpression(); await db!.addLink(pUUID!, link); + link.status = 'shared' const result = await db!.getLink(pUUID!, link); expect(result).to.be.deep.equal(link); @@ -62,9 +64,13 @@ describe('PerspectivismDb', () => { const link1 = constructDummyLinkExpression(); await db!.addLink(pUUID!, link1); + link1.status = 'shared' + const link2 = constructDummyLinkExpression(); await db!.addLink(pUUID!, link2); + link2.status = 'shared' + const allLinks = await db!.getAllLinks(pUUID!) expect(allLinks).to.be.deep.equal([ @@ -77,6 +83,8 @@ describe('PerspectivismDb', () => { const link1 = constructDummyLinkExpression(); await db!.addLink(pUUID!, link1); + link1.status = 'shared' + for(let i=0; i<3; i++) { expect(await db!.getAllLinks(pUUID!)).to.be.deep.equal([ link1 @@ -88,6 +96,8 @@ describe('PerspectivismDb', () => { const link1 = constructDummyLinkExpression(); await db!.addLink(pUUID!, link1); + link1.status = 'shared'; + const link2 = constructDummyLinkExpression(); await db!.addLink(pUUID!, link2); @@ -100,6 +110,8 @@ describe('PerspectivismDb', () => { const link1 = constructDummyLinkExpression(); await db!.addLink(pUUID!, link1); + link1.status = 'shared'; + const link2 = constructDummyLinkExpression(); await db!.addLink(pUUID!, link2); diff --git a/executor/src/core/db.ts b/executor/src/core/db.ts index f63bc3e37..12492085a 100644 --- a/executor/src/core/db.ts +++ b/executor/src/core/db.ts @@ -1,6 +1,6 @@ import { Database } from 'aloedb-node' import path from 'path' -import type { Expression, LinkExpression, PerspectiveDiff } from "@perspect3vism/ad4m"; +import type { Expression, LinkExpression, LinkStatus, PerspectiveDiff } from "@perspect3vism/ad4m"; interface LinkSchema { perspective: string, @@ -9,7 +9,8 @@ interface LinkSchema { predicate: string, target: string, author: string, - timestamp: string + timestamp: string, + status: LinkStatus } interface ExpressionSchema { @@ -37,7 +38,9 @@ export class PerspectivismDb { //Link Methods - async addLink(perspectiveUuid: string, link: LinkExpression) { + async addLink(perspectiveUuid: string, link: LinkExpression, status: LinkStatus = 'shared') { + delete link.status + await this.#linkDb.insertOne({ perspective: perspectiveUuid, linkExpression: link, @@ -45,11 +48,12 @@ export class PerspectivismDb { predicate: link.data.predicate, target: link.data.target, author: link.author, - timestamp: link.timestamp + timestamp: link.timestamp, + status } as LinkSchema) } - async addManyLinks(perspectiveUuid: string, links: LinkExpression[]) { + async addManyLinks(perspectiveUuid: string, links: LinkExpression[], status: LinkStatus = 'shared') { await this.#linkDb.insertMany(links.map((link) => { return { perspective: perspectiveUuid, @@ -58,7 +62,8 @@ export class PerspectivismDb { predicate: link.data.predicate, target: link.data.target, author: link.author, - timestamp: link.timestamp + timestamp: link.timestamp, + status } as LinkSchema })); } @@ -84,6 +89,8 @@ export class PerspectivismDb { } async removeLink(perspectiveUuid: string, link: LinkExpression) { + delete link.status + await this.#linkDb.deleteOne({ perspective: perspectiveUuid, linkExpression: link, @@ -105,12 +112,27 @@ export class PerspectivismDb { if (link.data.target == null) { delete link.data.target; }; - return (await this.#linkDb.findOne({ perspective: perspectiveUuid, linkExpression: link }))?.linkExpression; + + if (link.status) { + delete link.status; + } + + const foundLink = (await this.#linkDb.findOne({ perspective: perspectiveUuid, linkExpression: link })) + + const linkExpression = foundLink?.linkExpression; + if (linkExpression?.status) { + linkExpression.status = foundLink?.status; + } + + return linkExpression; } async getAllLinks(perspectiveUuid: string): Promise { const links = ( await this.#linkDb.findMany({ perspective: perspectiveUuid })).map((val) => { - return val.linkExpression; + return { + ...val.linkExpression, + status: val.status + }; }) .filter((val) => val !== undefined) as LinkExpression[]; return links @@ -118,7 +140,10 @@ export class PerspectivismDb { async getLinksBySource(perspectiveUuid: string, source: string): Promise { const links = ( await this.#linkDb.findMany({ perspective: perspectiveUuid, source })).map((val) => { - return val.linkExpression; + return { + ...val.linkExpression, + status: val.status + }; }) .filter((val) => val !== undefined) as LinkExpression[]; return links @@ -126,7 +151,10 @@ export class PerspectivismDb { async getLinksByTarget(perspectiveUuid: string, target: string): Promise { const links = ( await this.#linkDb.findMany({ perspective: perspectiveUuid, target })).map((val) => { - return val.linkExpression; + return { + ...val.linkExpression, + status: val.status + }; }) .filter((val) => val !== undefined) as LinkExpression[]; return links diff --git a/executor/src/core/graphQL-interface/GraphQL.ts b/executor/src/core/graphQL-interface/GraphQL.ts index d5d3cbeee..4d33dc91b 100644 --- a/executor/src/core/graphQL-interface/GraphQL.ts +++ b/executor/src/core/graphQL-interface/GraphQL.ts @@ -464,7 +464,17 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { if (!currentAgent) { throw Error("No current agent init'd") } - currentAgent.perspective = perspective; + + currentAgent.perspective = { + ...perspective, + links: perspective.links.map((l: any) => { + const link = {...l}; + delete link.status + + return link + }) + }; + await core.agentService.updateAgent(currentAgent); return currentAgent; }, @@ -674,24 +684,24 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore perspectiveAddLink: async (parent, args, context, info) => { - const { uuid, link } = args + const { uuid, link, status } = args checkCapability(context.capabilities, Auth.perspectiveUpdateCapability([uuid])) const perspective = core.perspectivesController.perspective(uuid) - return await perspective.addLink(link) + return await perspective.addLink(link, status) }, //@ts-ignore perspectiveAddLinks: async (parent, args, context, info) => { - const { uuid, links } = args + const { uuid, links, status } = args checkCapability(context.capabilities, Auth.perspectiveUpdateCapability([uuid])) const perspective = core.perspectivesController.perspective(uuid) - return await perspective.addLinks(links) + return await perspective.addLinks(links, status) }, //@ts-ignore perspectiveAddLinkExpression: async (parent, args, context, info) => { - const { uuid, link } = args + const { uuid, link, status } = args checkCapability(context.capabilities, Auth.perspectiveUpdateCapability([uuid])) const perspective = core.perspectivesController.perspective(uuid) - return await perspective.addLink(link) + return await perspective.addLink(link, status) }, //@ts-ignore perspectiveRemove: (parent, args, context, info) => { @@ -718,10 +728,10 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, //@ts-ignore perspectiveLinkMutations: async (parent, args, context, info) => { - const { uuid, mutations } = args + const { uuid, mutations, status } = args checkCapability(context.capabilities, Auth.perspectiveUpdateCapability([uuid])) const perspective = core.perspectivesController.perspective(uuid) - return await perspective.linkMutations(mutations) + return await perspective.linkMutations(mutations, status) }, //@ts-ignore perspectiveUpdate: (parent, args, context, info) => { @@ -810,6 +820,15 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { }, Subscription: { + agentAppsChanged: { + //@ts-ignore + subscribe: (parent, args, context, info) => { + checkCapability(context.capabilities, Auth.AGENT_SUBSCRIBE_CAPABILITY) + return pubsub.asyncIterator(PubSub.APPS_CHANGED) + }, + //@ts-ignore + resolve: payload => payload + }, agentUpdated: { //@ts-ignore subscribe: (parent, args, context, info) => { @@ -838,14 +857,12 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { )(undefined, args) }, resolve: async (payload: any) => { - console.debug("GQL neighbourhoodSignal:", payload) await core.languageController?.tagExpressionSignatureStatus(payload?.signal) if (payload?.signal?.data.links) { for (const link of payload?.signal.data.links) { await core.languageController?.tagExpressionSignatureStatus(link); } }; - console.debug("GQL neighbourhoodSignal sent") return payload?.signal } }, @@ -949,6 +966,11 @@ function createResolvers(core: PerspectivismCore, config: OuterConfig) { language: async (expression) => { //console.log("GQL LANGUAGE", expression) let lang + + if(expression.ref.language.address === "literal") { + return { address: "literal", name: "literal" } + } + try { lang = await core.languageController.languageForExpression(expression.ref) as any } catch(e) { diff --git a/executor/src/core/graphQL-interface/PubSub.ts b/executor/src/core/graphQL-interface/PubSub.ts index fe3c245ee..3d2088426 100644 --- a/executor/src/core/graphQL-interface/PubSub.ts +++ b/executor/src/core/graphQL-interface/PubSub.ts @@ -13,6 +13,7 @@ export const SIGNAL = "signal" export const EXCEPTION_OCCURRED_TOPIC = "exception-occurred-topic" export const NEIGHBOURHOOD_SIGNAL_RECEIVED_TOPIC = "neighbourhood-signal-received-topic" export const PERSPECTIVE_SYNC_STATE_CHANGE = "perspective-sync-state-change" +export const APPS_CHANGED = "apps-changed" const pubsub = new PubSub() diff --git a/executor/src/core/storage-services/Holochain/HolochainService.ts b/executor/src/core/storage-services/Holochain/HolochainService.ts index 3c9dce996..256a8305f 100644 --- a/executor/src/core/storage-services/Holochain/HolochainService.ts +++ b/executor/src/core/storage-services/Holochain/HolochainService.ts @@ -116,9 +116,7 @@ export default class HolochainService { async logDhtStatus() { setInterval(async () => { if (this.#ready) { - console.log(this.#languageDnaHashes); for (const [language, hashes] of this.#languageDnaHashes) { - console.log("HolochainStatus.logDhtStatus: ", language, " has gossip status: \n"); let dhtInfo = (await this.#appWebsocket!.networkInfo({dnas: hashes})); console.log("HolochainStatus.logDhtStatus: ", language, " has gossip status: ", dhtInfo, "\n"); } @@ -264,7 +262,6 @@ export default class HolochainService { private async generateSigningKeys(cell: CellId): Promise { const cellIdB64 = this.cellIdToB64(cell); - console.log("generateSigningKeys", cellIdB64) const [keyPair, signingKey] = generateSigningKeyPair(); const capSecret = await this.#adminWebsocket!.grantSigningKey(cell, {[GrantedFunctionsType.All]: null}, signingKey); @@ -445,8 +442,9 @@ export default class HolochainService { //4. Call the zome function try { - console.debug("\x1b[34m", new Date().toISOString(), "HolochainService calling zome function:", dnaNick, zomeName, fnName, payload, "\nFor language with address", lang, "\x1b[0m"); - + if (fnName != "sync" && fnName != "current_revision") { + console.debug("\x1b[34m", new Date().toISOString(), "HolochainService calling zome function:", dnaNick, zomeName, fnName, payload, "\nFor language with address", lang, "\x1b[0m"); + } //Check that signZomeCall will be able to find the signing credentials const signingKeyExists = getSigningCredentials(cellId); @@ -464,7 +462,6 @@ export default class HolochainService { } } - const signedZomeCallStart = Date.now(); const signedZomeCall = await signZomeCall({ cell_id: cellId, zome_name: zomeName, @@ -472,22 +469,19 @@ export default class HolochainService { provenance, payload }); - const signedZomeCallEnd = Date.now(); - console.log("HolochainService.callZomeFunction: signZomeCall took", signedZomeCallEnd - signedZomeCallStart, "ms") - const startCall = Date.now(); const result = await this.#appWebsocket!.callZome(signedZomeCall); - const endCall = Date.now(); - console.log("HolochainService.callZomeFunction: callZome took", endCall - startCall, "ms") - - if (typeof result === "string") { - console.debug("\x1b[32m", new Date().toISOString(),"HolochainService zome function result (string):", result.substring(0, 50), "... \x1b[0m") - } else if (typeof result === "object") { - let resultString = JSON.stringify(result); - let endingLog = resultString.length > 50 ? "... \x1b[0m" : "\x1b[0m"; - console.debug("\x1b[32m", new Date().toISOString(),"HolochainService zome function result (object):", resultString.substring(0, 50), endingLog) - } else { - console.debug("\x1b[32m", new Date().toISOString(),"HolochainService zome function result (other):", result, "\x1b[0m") + + if (fnName != "sync" && fnName != "current_revision") { + if (typeof result === "string") { + console.debug("\x1b[32m", new Date().toISOString(),"HolochainService zome function result (string):", result.substring(0, 50), "... \x1b[0m") + } else if (typeof result === "object") { + let resultString = JSON.stringify(result); + let endingLog = resultString.length > 50 ? "... \x1b[0m" : "\x1b[0m"; + console.debug("\x1b[32m", new Date().toISOString(),"HolochainService zome function result (object):", resultString.substring(0, 50), endingLog) + } else { + console.debug("\x1b[32m", new Date().toISOString(),"HolochainService zome function result (other):", result, "\x1b[0m") + } } return result } catch(e) { diff --git a/executor/src/tests/agent.ts b/executor/src/tests/agent.ts index 1f254b8b3..8daafeacf 100644 --- a/executor/src/tests/agent.ts +++ b/executor/src/tests/agent.ts @@ -103,7 +103,7 @@ export default function agentTests(testContext: TestContext) { const currentAgent = await ad4mClient.agent.me(); expect(currentAgent.perspective).not.to.be.undefined; expect(currentAgent.perspective!.links.length).to.equal(1); - expect(currentAgent.directMessageLanguage).not.to.be.undefined;; + expect(currentAgent.directMessageLanguage).not.to.be.undefined; await ad4mClient.agent.mutatePublicPerspective({ additions: [new Link({ diff --git a/executor/src/tests/neighbourhood.ts b/executor/src/tests/neighbourhood.ts index c64cbc1ab..39320ce5d 100644 --- a/executor/src/tests/neighbourhood.ts +++ b/executor/src/tests/neighbourhood.ts @@ -61,6 +61,19 @@ export default function neighbourhoodTests(testContext: TestContext) { expect(bobP1!.neighbourhood).not.to.be.undefined;; expect(bobP1!.neighbourhood!.linkLanguage).to.be.equal(socialContext.address); expect(bobP1!.neighbourhood!.meta.links.length).to.be.equal(0); + }) + + it('shared link created by Alice received by Bob', async () => { + const alice = testContext.alice + const bob = testContext.bob + + const aliceP1 = await alice.perspective.add("friends") + const socialContext = await alice.languages.applyTemplateAndPublish(DIFF_SYNC_OFFICIAL, JSON.stringify({uid: uuidv4(), name: "Alice's neighbourhood with Bob test shared links"})); + const neighbourhoodUrl = await alice.neighbourhood.publishFromPerspective(aliceP1.uuid, socialContext.address, new Perspective()) + + let bobP1 = await bob.neighbourhood.joinFromUrl(neighbourhoodUrl); + + await testContext.makeAllNodesKnown() expect(bobP1!.state).to.be.oneOf([PerspectiveState.LinkLanguageInstalledButNotSynced, PerspectiveState.Synced]); await sleep(5000) @@ -81,6 +94,36 @@ export default function neighbourhoodTests(testContext: TestContext) { expect(bobLinks.length).to.be.equal(1) }) + it('local link created by Alice NOT received by Bob', async () => { + const alice = testContext.alice + const bob = testContext.bob + + const aliceP1 = await alice.perspective.add("friends") + const socialContext = await alice.languages.applyTemplateAndPublish(DIFF_SYNC_OFFICIAL, JSON.stringify({uid: uuidv4(), name: "Alice's neighbourhood with Bob test local links"})); + const neighbourhoodUrl = await alice.neighbourhood.publishFromPerspective(aliceP1.uuid, socialContext.address, new Perspective()) + + let bobP1 = await bob.neighbourhood.joinFromUrl(neighbourhoodUrl); + + await testContext.makeAllNodesKnown() + + await sleep(5000) + + await alice.perspective.addLink(aliceP1.uuid, {source: 'root', target: 'test://test'}, 'local') + + await sleep(5000) + + let bobLinks = await bob.perspective.queryLinks(bobP1!.uuid, new LinkQuery({source: 'root'})) + let tries = 1 + + while(bobLinks.length < 1 && tries < 20) { + await sleep(1000) + bobLinks = await bob.perspective.queryLinks(bobP1!.uuid, new LinkQuery({source: 'root'})) + tries++ + } + + expect(bobLinks.length).to.be.equal(0) + }) + // it('can get the correct state change signals', async () => { // const aliceP1 = await testContext.alice.perspective.add("state-changes") // expect(aliceP1.state).to.be.equal(PerspectiveState.Private); diff --git a/executor/src/tests/perspective.ts b/executor/src/tests/perspective.ts index 131a02d2f..3f6936435 100644 --- a/executor/src/tests/perspective.ts +++ b/executor/src/tests/perspective.ts @@ -59,6 +59,31 @@ export default function perspectiveTests(testContext: TestContext) { expect(snapshot.links.length).to.equal(0); }) + it('can CRUD local perspective links with local link method', async () => { + const ad4mClient = testContext.ad4mClient!; + + const create = await ad4mClient.perspective.add("test-crud"); + expect(create.name).to.equal("test-crud"); + + const linkAdd = await create.add(new Link({ + source: "test://test-source", + predicate: "test://test-predicate", + target: "test://test-target" + }), 'local'); + + const links = await create.get({} as LinkQuery); + expect(links.length).to.equal(1); + expect(links[0].status).to.equal('local') + + await create.remove(linkAdd); + + const linksPostDelete = await create.get({} as LinkQuery); + expect(linksPostDelete.length).to.equal(0); + + const snapshot = await create.snapshot(); + expect(snapshot.links.length).to.equal(0); + }) + it('can make mutations using perspective addLinks(), removeLinks() & linkMutations()', async () => { const ad4mClient = testContext.ad4mClient!; diff --git a/executor/tsconfig.json b/executor/tsconfig.json index 3cdd0730b..7012f79db 100644 --- a/executor/tsconfig.json +++ b/executor/tsconfig.json @@ -77,7 +77,8 @@ "emitDecoratorMetadata": true, "experimentalDecorators": true, "allowSyntheticDefaultImports": true, - "resolveJsonModule": true + "resolveJsonModule": true, + "declaration": true }, "typedef": [ true, "call-signature", "arrow-call-signature" ], "ts-node": { diff --git a/host/package.json b/host/package.json index 6c136c2ea..dc8712d09 100644 --- a/host/package.json +++ b/host/package.json @@ -1,6 +1,6 @@ { "name": "ad4m-host", - "version": "0.3.4", + "version": "0.5.0", "description": "Self hosting ad4m service", "private": true, "bin": { @@ -71,7 +71,7 @@ "yargs": "^17.3.1" }, "devDependencies": { - "@types/node": "^17.0.8", + "@types/node": "^18.0.0", "@types/yargs": "^17.0.8", "@vercel/ncc": "^0.33.1", "esbuild": "^0.15.5", diff --git a/package.json b/package.json index 1ccaa6b67..2685ac4f9 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,9 @@ { "name": "ad4m-monorepo", - "version": "0.3.4", + "version": "0.5.0", "workspaces": [ "core", "docs", - "docs-src", "executor", "host", "ui", @@ -35,16 +34,8 @@ "build-all-macos": "turbo run build-all-macos", "build-all-linux": "turbo run build-all-linux", "build-all-windows": "turbo run build-all-windows", - "docs": "jsdoc -c jsdoc.json", - "docs:api:jsdoc2md": "jsdoc2md --configure jsdoc.json --partial docs/header.hbs --global-index-format none --files src/**/* > docs-src/api.md", - "docs:api:tsconcat": "concat-md --decrease-title-levels --dir-name-as-title docs-src/typedoc > docs-src/api.md", - "docs:api:typedoc": "typedoc --plugin typedoc-plugin-markdown --options typedoc.json --tsconfig core/tsconfig.json --entryPointStrategy expand core/src", - "docs:api": "yarn run docs:api:typedoc && yarn run docs:api:tsconcat", - "docs:prepare": "honkit init docs-src", - "docs:build": "yarn run docs:api && honkit build docs-src", - "docs:serve": "honkit serve docs-src", - "docs:clean": "rimraf docs-src/_book", - "docs:cp": "cp -r docs-src/_book/ docs/", + "docs:api": "typedoc --plugin typedoc-plugin-markdown --options typedoc.json --tsconfig core/tsconfig.json core/src", + "docs:build": "yarn run docs:api && cd docs && yarn build", "patchpackage": "patch-package", "set-version": "node setVersion.js", "patch-package": "^6.5.0", diff --git a/rust-client/Cargo.toml b/rust-client/Cargo.toml index eae6bd055..b7ba46467 100644 --- a/rust-client/Cargo.toml +++ b/rust-client/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m-client" -version = "0.3.4" +version = "0.5.0" edition = "2021" authors = ["Nicolas Luck "] description = "Client library wrapping AD4M's GraphQL interface" diff --git a/rust-client/src/agent.gql b/rust-client/src/agent.gql index a80071b33..e387d70e7 100644 --- a/rust-client/src/agent.gql +++ b/rust-client/src/agent.gql @@ -35,6 +35,7 @@ query Me { predicate target } + status } } } @@ -136,6 +137,7 @@ query ByDID($did: String!) { predicate target } + status } } } diff --git a/rust-client/src/perspective_proxy.rs b/rust-client/src/perspective_proxy.rs index 5e4b6a830..1bc68076b 100644 --- a/rust-client/src/perspective_proxy.rs +++ b/rust-client/src/perspective_proxy.rs @@ -33,9 +33,10 @@ impl PerspectiveProxy { source: String, target: String, predicate: Option, + status: Option ) -> Result { self.client - .add_link(self.perspective_uuid.clone(), source, target, predicate) + .add_link(self.perspective_uuid.clone(), source, target, predicate, status) .await } @@ -155,6 +156,7 @@ impl PerspectiveProxy { source, target, Some(predicate), + Some("shared".to_string()) ) .await?; Ok(()) @@ -293,7 +295,7 @@ impl PerspectiveProxy { match command.action.as_str() { "addLink" => { //println!("addLink: {:?}", command); - self.add_link(command.source, command.target, command.predicate) + self.add_link(command.source, command.target, command.predicate, command.status) .await?; } "removeLink" => { @@ -326,6 +328,7 @@ struct Command { pub source: String, pub predicate: Option, pub target: String, + pub status: Option } impl Command { @@ -338,6 +341,10 @@ impl Command { .as_ref() .map(|f| f.replace(pattern, replacement)), target: self.target.replace(pattern, replacement), + status: self + .status + .as_ref() + .map(|f| f.replace(pattern, replacement)), } } } @@ -346,9 +353,9 @@ fn parse_action(action: &String) -> Result> { let action_regex = Regex::new(r"\[(?P\{.*})*\]")?; // This parses strings like: - // {action: "", source: "", predicate: "", target: ""} + // {action: "", source: "", predicate: "", target: "", status: ""} let command_regex = Regex::new( - r#"\{(action:\s*"(?P[\S--,]+)",?\s*)|(source:\s*"(?P[\S--,]+)",?\s*)|(predicate:\s*"(?P[\S--,]+)",?\s*)|(target:\s*"(?P[\S--,]+)",?\s*)\}"#, + r#"\{(action:\s*"(?P[\S--,]+)",?\s*)|(source:\s*"(?P[\S--,]+)",?\s*)|(predicate:\s*"(?P[\S--,]+)",?\s*)|(target:\s*"(?P[\S--,]+)",?\s*)|(status:\s*"(?P[\S--,]+)",?\s*)\}"#, )?; let mut commands = Vec::new(); @@ -357,6 +364,7 @@ fn parse_action(action: &String) -> Result> { let mut source = None; let mut predicate = None; let mut target = None; + let mut status = None; command_regex .captures_iter(capture.name("command").unwrap().as_str()) .for_each(|capture| { @@ -364,6 +372,7 @@ fn parse_action(action: &String) -> Result> { source = source.or(capture.name("source").map(|e| e.as_str())); predicate = predicate.or(capture.name("predicate").map(|e| e.as_str())); target = target.or(capture.name("target").map(|e| e.as_str())); + status = status.or(capture.name("status").map(|e| e.as_str())); }); commands.push(Command { @@ -371,6 +380,7 @@ fn parse_action(action: &String) -> Result> { source: source.ok_or(anyhow!("Comman without source"))?.into(), predicate: predicate.map(|e| e.into()), target: target.ok_or(anyhow!("Comman without target"))?.into(), + status: status.map(|e| e.into()), }); //println!("{:?}", commands); } diff --git a/rust-client/src/perspectives.gql b/rust-client/src/perspectives.gql index 4493d82b3..a94f06fc0 100644 --- a/rust-client/src/perspectives.gql +++ b/rust-client/src/perspectives.gql @@ -1,41 +1,60 @@ query All { - perspectives { - uuid - name - sharedUrl - neighbourhood { - linkLanguage - meta { - links - { - author - timestamp - data { source, predicate, target } - proof { valid, invalid, signature, key } - } - } + perspectives { + uuid + name + sharedUrl + neighbourhood { + linkLanguage + meta { + links { + author + timestamp + data { + source + predicate + target + } + proof { + valid + invalid + signature + key + } + status } - } + } + } + } } mutation Add($name: String!) { - perspectiveAdd(name: $name) { - uuid - name - } + perspectiveAdd(name: $name) { + uuid + name + } } mutation Remove($uuid: String!) { - perspectiveRemove(uuid: $uuid) + perspectiveRemove(uuid: $uuid) } -mutation AddLink($uuid: String!, $link: LinkInput!){ - perspectiveAddLink(link: $link, uuid: $uuid) { - author - timestamp - data { source, predicate, target } - proof { valid, invalid, signature, key } +mutation AddLink($uuid: String!, $link: LinkInput!, $status: String) { + perspectiveAddLink(link: $link, uuid: $uuid, status: $status) { + author + timestamp + status + data { + source + predicate + target } + proof { + valid + invalid + signature + key + } + } } mutation RemoveLink($uuid: String!, $link: LinkExpressionInput!) { @@ -43,34 +62,62 @@ mutation RemoveLink($uuid: String!, $link: LinkExpressionInput!) { } query QueryLinks($uuid: String!, $query: LinkQuery!) { - perspectiveQueryLinks(query: $query, uuid: $uuid) { - author - timestamp - data { source, predicate, target } - proof { valid, invalid, signature, key } + perspectiveQueryLinks(query: $query, uuid: $uuid) { + author + timestamp + data { + source + predicate + target + } + proof { + valid + invalid + signature + key } + status + } } query Infer($uuid: String!, $query: String!) { - perspectiveQueryProlog(uuid: $uuid, query: $query) + perspectiveQueryProlog(uuid: $uuid, query: $query) } subscription SubscriptionLinkAdded($uuid: String!) { - perspectiveLinkAdded(uuid: $uuid) { - author - timestamp - data { source, predicate, target } - proof { valid, invalid, signature, key } + perspectiveLinkAdded(uuid: $uuid) { + author + timestamp + data { + source + predicate + target } -} + proof { + valid + invalid + signature + key + } + status + } +} query Snapshot($uuid: String!) { - perspectiveSnapshot(uuid: $uuid) { - links { - author - timestamp - data { source, predicate, target } - proof { signature, key } - } + perspectiveSnapshot(uuid: $uuid) { + links { + author + timestamp + data { + source + predicate + target + } + proof { + signature + key + } + status } -} \ No newline at end of file + } +} diff --git a/rust-client/src/perspectives.rs b/rust-client/src/perspectives.rs index af03e4bf4..f6bde7ba5 100644 --- a/rust-client/src/perspectives.rs +++ b/rust-client/src/perspectives.rs @@ -88,6 +88,7 @@ pub async fn add_link( source: String, target: String, predicate: Option, + status: Option ) -> Result { let response_data: add_link::ResponseData = query( executor_url, @@ -99,6 +100,7 @@ pub async fn add_link( target, predicate, }, + status }), ) .await @@ -140,6 +142,7 @@ pub async fn remove_link( invalid: link.proof.invalid, valid: link.proof.valid, }, + status: link.status }, }), ) @@ -361,6 +364,7 @@ impl PerspectivesClient { source: String, target: String, predicate: Option, + status: Option ) -> Result { add_link( self.info.executor_url.clone(), @@ -369,6 +373,7 @@ impl PerspectivesClient { source, target, predicate, + status ) .await } diff --git a/rust-client/src/runtime.gql b/rust-client/src/runtime.gql index ce90bd5bf..7b6505bfb 100644 --- a/rust-client/src/runtime.gql +++ b/rust-client/src/runtime.gql @@ -70,6 +70,7 @@ query FriendStatus($did: String!) { timestamp data { source, predicate, target } proof { valid, invalid, signature, key } + status } } proof { valid, invalid, signature, key } @@ -90,6 +91,7 @@ query MessageInbox($filter: String) { timestamp data { source, predicate, target } proof { valid, invalid, signature, key } + status } } proof { valid, invalid, signature, key } @@ -108,6 +110,7 @@ query MessageOutbox($filter: String) { timestamp data { source, predicate, target } proof { valid, invalid, signature, key } + status } } proof { valid, invalid, signature, key } diff --git a/rust-client/src/types.rs b/rust-client/src/types.rs index 4b4e4947f..13fdb0286 100644 --- a/rust-client/src/types.rs +++ b/rust-client/src/types.rs @@ -24,6 +24,7 @@ pub struct LinkExpression { pub data: Link, pub proof: ExpressionProof, pub timestamp: String, + pub status: Option } #[derive(Debug)] @@ -83,6 +84,7 @@ impl From for LinkExpression { signature: link.proof.signature, valid: link.proof.valid, }, + status: link.status } } } @@ -103,6 +105,7 @@ impl From for LinkExpression { signature: link.proof.signature, valid: link.proof.valid, }, + status: link.status } } } @@ -123,6 +126,7 @@ impl From for LinkExpression { signature: link.proof.signature, valid: link.proof.valid, }, + status: link.status } } } @@ -143,6 +147,7 @@ impl From for LinkExpression { signature: link.proof.signature, valid: link.proof.valid, }, + status: link.status } } } @@ -167,6 +172,7 @@ impl From for LinkExpression { signature: link.proof.signature, valid: None, }, + status: link.status } } } @@ -185,6 +191,7 @@ impl From for SnapshotPerspectiveSnapshotLinks { key: link.proof.key, signature: link.proof.signature, }, + status: link.status } } } @@ -205,6 +212,7 @@ impl From for LinkExpressionInput { invalid: link.proof.invalid, valid: link.proof.valid, }, + status: link.status } } } @@ -225,6 +233,7 @@ impl From for friend_send_message::LinkExpressionInput { invalid: link.proof.invalid, valid: link.proof.valid, }, + status: link.status } } } @@ -247,6 +256,7 @@ impl From for LinkExpression { signature: link.proof.signature, valid: None, }, + status: link.status } } } @@ -343,6 +353,7 @@ impl From for LinkExpression { signature: link.proof.signature, valid: None, }, + status: link.status } } } @@ -366,6 +377,7 @@ impl From for LinkExpression signature: link.proof.signature, valid: None, }, + status: link.status } } } diff --git a/setVersion.js b/setVersion.js index a0bdcdfed..d66067f0d 100644 --- a/setVersion.js +++ b/setVersion.js @@ -104,10 +104,10 @@ if (isPreRelease) { } fs.writeFileSync('ui/src-tauri/Cargo.toml', uiTauriCargo.newContent) -const book = JSON.parse(fs.readFileSync('docs-src/book.json', 'utf8')) -console.log("Docs version: " + book.variables.ad4mVersion + " -> " + VERSION) -book.variables.ad4mVersion = VERSION -fs.writeFileSync('docs-src/book.json', JSON.stringify(book, null, 2) + '\n') +const book = JSON.parse(fs.readFileSync('docs/package.json', 'utf8')) +console.log("Docs version: " + book.version + " -> " + VERSION) +book.version = VERSION +fs.writeFileSync('docs/package.json', JSON.stringify(book, null, 2) + '\n') const testRunner = JSON.parse(fs.readFileSync('test-runner/package.json', 'utf8')) console.log("Test runner version: " + testRunner.version + " -> " + VERSION) @@ -117,4 +117,25 @@ fs.writeFileSync('test-runner/package.json', JSON.stringify(testRunner, null, 2) const perspectiveDiffSync = JSON.parse(fs.readFileSync('bootstrap-languages/p-diff-sync/package.json', 'utf8')) console.log("Perspective diff sync: " + perspectiveDiffSync.version + " -> " + VERSION) perspectiveDiffSync.version = VERSION -fs.writeFileSync('bootstrap-languages/p-diff-sync/package.json', JSON.stringify(perspectiveDiffSync, null, 2) + '\n') \ No newline at end of file +fs.writeFileSync('bootstrap-languages/p-diff-sync/package.json', JSON.stringify(perspectiveDiffSync, null, 2) + '\n') + +const agentLanguage = JSON.parse(fs.readFileSync('bootstrap-languages/agent-language/package.json', 'utf8')) +console.log("Agent language: " + agentLanguage.version + " -> " + VERSION) +agentLanguage.version = VERSION +fs.writeFileSync('bootstrap-languages/agent-language/package.json', JSON.stringify(agentLanguage, null, 2) + '\n') + +const directMessageLanguage = JSON.parse(fs.readFileSync('bootstrap-languages/direct-message-language/package.json', 'utf8')) +console.log("Direct message language: " + directMessageLanguage.version + " -> " + VERSION) +directMessageLanguage.version = VERSION +fs.writeFileSync('bootstrap-languages/direct-message-language/package.json', JSON.stringify(directMessageLanguage, null, 2) + '\n') + +const neighbourhoodLanguage = JSON.parse(fs.readFileSync('bootstrap-languages/neighbourhood-language/package.json', 'utf8')) +console.log("Neighbourhood language: " + neighbourhoodLanguage.version + " -> " + VERSION) +neighbourhoodLanguage.version = VERSION +fs.writeFileSync('bootstrap-languages/neighbourhood-language/package.json', JSON.stringify(neighbourhoodLanguage, null, 2) + '\n') + +const perspectiveLanguage = JSON.parse(fs.readFileSync('bootstrap-languages/perspective-language/package.json', 'utf8')) +console.log("Perspective language: " + perspectiveLanguage.version + " -> " + VERSION) +perspectiveLanguage.version = VERSION +fs.writeFileSync('bootstrap-languages/perspective-language/package.json', JSON.stringify(perspectiveLanguage, null, 2) + '\n') +fs.writeFileSync('bootstrap-languages/p-diff-sync/package.json', JSON.stringify(perspectiveDiffSync, null, 2) + '\n') diff --git a/test-runner/package.json b/test-runner/package.json index d04bda10b..498b8c9a4 100644 --- a/test-runner/package.json +++ b/test-runner/package.json @@ -1,6 +1,6 @@ { "name": "@perspect3vism/ad4m-test", - "version": "0.3.4", + "version": "0.5.0", "description": "Testing library to test ad4m languages", "license": "MIT", "bin": "./build/cli.js", @@ -19,7 +19,7 @@ "@apollo/client": "3.7.10", "@perspect3vism/ad4m": "*", "@types/fs-extra": "^9.0.13", - "@types/node": "^17.0.21", + "@types/node": "^18.0.0", "@types/node-fetch": "^2.6.1", "@types/unzipper": "^0.10.5", "@types/ws": "8.5.4", diff --git a/tests/js/integration.test.ts b/tests/js/integration.test.ts index b15f4a0c4..c83a9968e 100644 --- a/tests/js/integration.test.ts +++ b/tests/js/integration.test.ts @@ -5,11 +5,12 @@ import { ApolloClient, InMemoryCache } from "@apollo/client/core/index.js"; import { HttpLink } from "@apollo/client/link/http/index.js"; import Websocket from "ws"; import { createClient } from "graphql-ws"; -import { Ad4mClient, Link, LinkQuery, Literal, PerspectiveProxy, - SmartLiteral, SMART_LITERAL_CONTENT_PREDICATE, +import { Ad4mClient, Link, LinkQuery, Literal, PerspectiveProxy, + SmartLiteral, SMART_LITERAL_CONTENT_PREDICATE, instanceQuery, Subject, subjectProperty, subjectCollection, subjectFlag, SDNAClass, + SubjectEntity, } from "@perspect3vism/ad4m"; import { rmSync, readFileSync } from "node:fs"; import fetch from 'node-fetch'; @@ -26,7 +27,7 @@ function apolloClient(port: number, token?: string): ApolloClient { //@ts-ignore fetch }); - + return new ApolloClient({ link: wsLink, cache: new InMemoryCache({ resultCaching: false, addTypename: false }), @@ -48,19 +49,19 @@ describe("Integration", () => { before(async () => { //ad4m = new Ad4mClient(apolloClient(4000)) //return - + rmSync("../ad4mJS", { recursive: true, force: true }) console.log("Initialzing executor data directory") //@ts-ignore execSync('../../host/dist/ad4m-macos-x64 init --dataPath ../ad4mJS', {}) - + console.log("Starting executor") try { execSync("killall holochain") } catch (e) { console.log("No holochain process running") } - + //@ts-ignore executorProcess = exec('../../host/dist/ad4m-macos-x64 serve --dataPath ../ad4mJS', {}) @@ -78,15 +79,16 @@ describe("Integration", () => { executorProcess!.stderr!.on('data', (data) => { console.log(`${data}`); }); - + console.log("Waiting for executor to settle...") await executorReady console.log("Creating ad4m client") + // @ts-ignore ad4m = new Ad4mClient(apolloClient(4000)) console.log("Generating agent") await ad4m.agent.generate("secret") console.log("Done") - + }) after(() => { @@ -141,7 +143,7 @@ describe("Integration", () => { expect(subject).to.have.property("setState") expect(subject).to.have.property("title") }) - + describe("with an instance", () => { let subject: Subject | null = null @@ -164,8 +166,8 @@ describe("Integration", () => { it("should work with a property that is not set initially and that auto-resolves", async () => { //@ts-ignore - expect(await subject.title).to.be.false - + expect(await subject.title).to.be.undefined + let title = "test title" //@ts-ignore await subject.setTitle(title) @@ -182,7 +184,7 @@ describe("Integration", () => { let c1 = Literal.from("comment 1").toUrl() await perspective!.add(new Link({ source: subject!.baseExpression, - predicate: "todo://comment", + predicate: "todo://comment", target: c1 })) @@ -192,7 +194,7 @@ describe("Integration", () => { let c2 = Literal.from("comment 2").toUrl() await perspective!.add(new Link({ source: subject!.baseExpression, - predicate: "todo://comment", + predicate: "todo://comment", target: c2 })) @@ -202,7 +204,7 @@ describe("Integration", () => { it("should be able to add to collections", async () => { let commentLinks = await perspective!.get(new LinkQuery({ - source: subject!.baseExpression, + source: subject!.baseExpression, predicate: "todo://comment" })) for(let link of commentLinks) { @@ -318,7 +320,7 @@ describe("Integration", () => { //@ts-ignore @subjectProperty({ - through: "todo://state", + through: "todo://state", initial: "todo://ready", writable: true, }) @@ -333,14 +335,14 @@ describe("Integration", () => { class Todo { // Setting this member "subjectConstructer" allows for adding custom // actions that will be run when a subject is constructed. - // + // // In this test, we don't need to use it, because the used "initial" // parameter on "state" below will have the same effect as the following: // subjectConstructor = [addLink("this", "todo://state", "todo://ready")] // Setting this member "isSubjectInstance" allows for adding custom clauses // to the instance check. - // + // // In this test, we don't need to use it, because the used "required" // parameter on "state" below will have the same effect as the following: // isSubjectInstance = [hasLink("todo://state")] @@ -360,7 +362,7 @@ describe("Integration", () => { //@ts-ignore @subjectProperty({ - through: "todo://state", + through: "todo://state", initial:"todo://ready", writable: true, required: true @@ -407,11 +409,11 @@ describe("Integration", () => { it("should generate correct SDNA from a JS class", async () => { // @ts-ignore let sdna = Todo.generateSDNA() - + const regExp = /\("Todo", ([^)]+)\)/; const matches = regExp.exec(sdna); const value = matches![1]; - + const equal = readFileSync("./subject.pl").toString().replace(/c\)/g, `${value})`).replace(/\(c/g, `(${value}`); expect(sdna.normalize('NFC')).to.equal(equal.normalize('NFC')) @@ -462,7 +464,7 @@ describe("Integration", () => { let todo = todos[0] //@ts-ignore await perspective!.add(new Link({source: "ad4m://self", target: todo.baseExpression})) - + todos = await Todo.allSelf(perspective!) expect(todos.length).to.equal(1) }) @@ -470,7 +472,7 @@ describe("Integration", () => { it("can deal with properties that resolve the URI and create Expressions", async () => { let todos = await Todo.all(perspective!) let todo = todos[0] - expect(await todo.title).to.equal(false) + expect(await todo.title).to.be.undefined // @ts-ignore await todo.setTitle("new title") @@ -527,7 +529,7 @@ describe("Integration", () => { // @ts-ignore const liked1 = await todo.isLiked - expect(liked1).to.be.false + expect(liked1).to.be.undefined await perspective?.add(new Link({source: root, predicate: "flux://has_reaction", target: "flux://thumbsup"})) @@ -544,7 +546,7 @@ describe("Integration", () => { it("can find instances through the exact flag link", async() => { await perspective!.add(new Link({ - source: "test://message", + source: "test://message", predicate: "ad4m://type", target: "ad4m://undefined" })) @@ -553,7 +555,7 @@ describe("Integration", () => { expect(first.length).to.be.equal(0) await perspective!.add(new Link({ - source: "test://message", + source: "test://message", predicate: "ad4m://type", target: "ad4m://message" })) @@ -565,25 +567,191 @@ describe("Integration", () => { it("can constrain collection entries through 'where' clause", async () => { let root = Literal.from("Collection where test").toUrl() let todo = await perspective!.createSubject(new Todo(), root) - + let messageEntry = Literal.from("test message").toUrl() - + // @ts-ignore await todo.addEntries(messageEntry) - + let entries = await todo.entries expect(entries.length).to.equal(1) - + let messageEntries = await todo.messages expect(messageEntries.length).to.equal(0) - + await perspective!.createSubject(new Message(), messageEntry) - + messageEntries = await todo.messages expect(messageEntries.length).to.equal(1) }) }) + + describe("Active record implementation", () => { + @SDNAClass({ + name: "Recipe" + }) + class Recipe extends SubjectEntity { + //@ts-ignore + @subjectFlag({ + through: "ad4m://type", + value: "ad4m://recipe" + }) + type: string = "" + + //@ts-ignore + @subjectProperty({ + through: "recipe://name", + writable: true, + }) + name: string = "" + + //@ts-ignore + @subjectCollection({ through: "recipe://entries" }) + entries: string[] = [] + + // @ts-ignore + @subjectCollection({ + through: "recipe://entries", + where: { condition: `triple(Target, "recipe://has_ingredient", "recipe://test")` } + }) + // @ts-ignore + ingredients: []; + + //@ts-ignore + @subjectCollection({ through: "recipe://comment" }) + // @ts-ignore + comments: string[] = [] + + //@ts-ignore + @subjectProperty({ + through: "recipe://local", + writable: true, + local: true + }) + local: string = "" + } + + before(async () => { + // @ts-ignore + perspective!.addSdna(Recipe.generateSDNA()) + }) + + it("save() & get()", async () => { + let root = Literal.from("Active record implementation test").toUrl() + const recipe = new Recipe(perspective!, root) + + recipe.name = "recipe://test"; + + await recipe.save(); + + const recipe2 = new Recipe(perspective!, root); + + await recipe2.get(); + + expect(recipe2.name).to.equal("recipe://test") + }) + + it("update()", async () => { + let root = Literal.from("Active record implementation test").toUrl() + const recipe = new Recipe(perspective!, root) + + recipe.name = "recipe://test1"; + + await recipe.update(); + + const recipe2 = new Recipe(perspective!, root); + + await recipe2.get(); + + expect(recipe2.name).to.equal("recipe://test1") + }) + + it("find()", async () => { + const recipes = await Recipe.all(perspective!); + + expect(recipes.length).to.equal(1) + }) + + it("can constrain collection entries clause", async () => { + let root = Literal.from("Active record implementation collection test").toUrl() + const recipe = new Recipe(perspective!, root) + + recipe.name = "recipe://collection_test"; + + recipe.comments = ['test', 'test1'] + + await recipe.save() + + const recipe2 = new Recipe(perspective!, root); + + await recipe2.get(); + + expect(recipe2.comments.length).to.equal(2) + }) + + it("save() & get() local", async () => { + let root = Literal.from("Active record implementation test local link").toUrl() + const recipe = new Recipe(perspective!, root) + + recipe.name = "recipe://locallink"; + recipe.local = 'test' + + await recipe.save(); + + const recipe2 = new Recipe(perspective!, root); + + await recipe2.get(); + + expect(recipe2.name).to.equal("recipe://locallink") + expect(recipe2.local).to.equal("test") + + // @ts-ignore + const links = await perspective?.get({ + source: root, + predicate: "recipe://local" + }) + + expect(links!.length).to.equal(1) + expect(links![0].status).to.equal('local') + }) + + it("delete()", async () => { + const recipe2 = await Recipe.all(perspective!); + + expect(recipe2.length).to.equal(3) + + await recipe2[0].delete(); + + const recipe3 = await Recipe.all(perspective!); + + expect(recipe3.length).to.equal(2) + }) + + it("can constrain collection entries through 'where' clause with prolog condition", async () => { + let root = Literal.from("Active record implementation collection test with where").toUrl() + const recipe = new Recipe(perspective!, root) + + let recipeEntries = Literal.from("test recipes").toUrl() + + recipe.entries = [recipeEntries] + // @ts-ignore + recipe.comments = ['test', 'test1'] + recipe.name = "recipe://collection_test"; + + await recipe.save() + + await perspective?.add(new Link({source: recipeEntries, predicate: "recipe://has_ingredient", target: "recipe://test"})) + + await recipe.get() + + const recipe2 = new Recipe(perspective!, root); + + await recipe2.get(); + + expect(recipe2.ingredients.length).to.equal(1) + }) + }) }) }) diff --git a/tests/js/subject.pl b/tests/js/subject.pl index c525c296a..fe5e21d8f 100644 --- a/tests/js/subject.pl +++ b/tests/js/subject.pl @@ -2,6 +2,8 @@ constructor(c, '[{action: "addLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). instance(c, Base) :- triple(Base, "todo://state", _). +destructor(c, '[{action: "removeLink", source: "this", predicate: "todo://state", target: "todo://ready"}]'). + property(c, "state"). property_getter(c, Base, "state", Value) :- triple(Base, "todo://state", Value). property_setter(c, "state", '[{action: "setSingleTarget", source: "this", predicate: "todo://state", target: "value"}]'). @@ -18,19 +20,23 @@ collection(c, "comments"). collection_getter(c, Base, "comments", List) :- findall(C, triple(Base, "todo://comment", C), List). collection_adder(c, "commentss", '[{action: "addLink", source: "this", predicate: "todo://comment", target: "value"}]'). +collection_remover(c, "commentss", '[{action: "removeLink", source: "this", predicate: "todo://comment", target: "value"}]'). collection_setter(c, "commentss", '[{action: "collectionSetter", source: "this", predicate: "todo://comment", target: "value"}]'). collection(c, "entries"). collection_getter(c, Base, "entries", List) :- findall(C, triple(Base, "flux://entry_type", C), List). collection_adder(c, "entriess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "entriess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). collection_setter(c, "entriess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). collection(c, "messages"). collection_getter(c, Base, "messages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), instance(OtherClass, Target), subject_class("Message", OtherClass)), List). collection_adder(c, "messagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "messagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). collection_setter(c, "messagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). collection(c, "likedMessages"). collection_getter(c, Base, "likedMessages", List) :- setof(Target, (triple(Base, "flux://entry_type", Target), triple(Target, "flux://has_reaction", "flux://thumbsup")), List). collection_adder(c, "likedMessagess", '[{action: "addLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). +collection_remover(c, "likedMessagess", '[{action: "removeLink", source: "this", predicate: "flux://entry_type", target: "value"}]'). collection_setter(c, "likedMessagess", '[{action: "collectionSetter", source: "this", predicate: "flux://entry_type", target: "value"}]'). diff --git a/turbo.json b/turbo.json index 749628e0f..786dd94c2 100644 --- a/turbo.json +++ b/turbo.json @@ -10,7 +10,10 @@ "outputs": ["dist/**", "lib/**", "build/**"] }, "build-languages": { - "dependsOn": ["@perspect3vism/perspective-diff-sync#build"], + "dependsOn": ["@perspect3vism/perspective-diff-sync#build", "@perspect3vism/agent-language#build", + "@perspect3vism/direct-message-language#build", "@perspect3vism/perspective-language#build", + "@perspect3vism/language-language#build", "@perspect3vism/neighbourhood-language#build", + "@perspect3vism/file-storage#build"], "outputs": ["dist/**", "lib/**", "build/**"] }, diff --git a/typedoc.json b/typedoc.json deleted file mode 100644 index 4193a9410..000000000 --- a/typedoc.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$schema": "https://typedoc.org/schema.json", - "excludeInternal": true, - "entryPoints": ["./core/src/index.ts" ], - "entryPointStrategy": "expand", - "out": "docs-src/typedoc", - "excludeExternals": true, - "exclude": ["**/*+(index|.spec|.e2e|.test).ts"] -} diff --git a/ui/package.json b/ui/package.json index 808a18d2b..8b8162055 100644 --- a/ui/package.json +++ b/ui/package.json @@ -1,6 +1,6 @@ { "name": "ad4m-launcher", - "version": "0.3.4", + "version": "0.5.0", "private": true, "type": "module", "dependencies": { @@ -56,7 +56,7 @@ }, "devDependencies": { "@types/jest": "^27.4.1", - "@types/node": "^16.11.26", + "@types/node": "^18.0.0", "@types/react": "^17.0.40", "@types/react-dom": "^18.0.9", "@testing-library/jest-dom": "^5.16.2", diff --git a/ui/src-tauri/Cargo.toml b/ui/src-tauri/Cargo.toml index ae60f8fd4..5150da465 100644 --- a/ui/src-tauri/Cargo.toml +++ b/ui/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "ad4m-launcher" -version = "0.3.4" +version = "0.5.0" description = "Administration of ad4m services" authors = ["Kaichao Sun"] license = "" diff --git a/ui/src-tauri/src/commands/app.rs b/ui/src-tauri/src/commands/app.rs index fa4d0c481..9e8667e7a 100644 --- a/ui/src-tauri/src/commands/app.rs +++ b/ui/src-tauri/src/commands/app.rs @@ -1,9 +1,12 @@ extern crate remove_dir_all; +use std::time::{Duration, SystemTime}; + +use crate::Payload; use crate::{config::data_path, get_main_window, util::find_and_kill_processes}; use remove_dir_all::*; -use tauri::LogicalSize; +use tauri::{LogicalSize, Manager}; use tauri::Size; use tauri_plugin_positioner::{Position, WindowExt}; @@ -37,6 +40,29 @@ pub fn open_tray(app_handle: tauri::AppHandle) { } } +#[tauri::command] +pub fn open_tray_message(app_handle: tauri::AppHandle) { + let tray_window = app_handle.get_window("TrayMessage").unwrap(); + let _ = tray_window.show(); + + let _ = tray_window.emit("tray_message_open", Payload {message: "".to_string()}); + + let seconds = Duration::from_secs(5); + + let start = SystemTime::now(); + loop { + std::thread::sleep(Duration::new(5, 0)); + + match start.elapsed() { + Ok(elapsed) if elapsed > seconds => { + let _ = tray_window.hide(); + return; + } + _ => (), + } + } +} + #[tauri::command] pub fn clear_state(app_handle: tauri::AppHandle) { find_and_kill_processes("ad4m-host"); diff --git a/ui/src-tauri/src/config.rs b/ui/src-tauri/src/config.rs index 78b872ba2..58104db68 100644 --- a/ui/src-tauri/src/config.rs +++ b/ui/src-tauri/src/config.rs @@ -32,6 +32,16 @@ pub fn app_url() -> String { "http://127.0.0.1:3000".to_string() } +#[cfg(feature = "custom-protocol")] +pub fn app_tray_message_url() -> String { + "index.html/tray_message".to_string() +} + +#[cfg(not(feature = "custom-protocol"))] +pub fn app_tray_message_url() -> String { + "http://127.0.0.1:3000/tray_message".to_string() +} + pub fn executor_port_path() -> PathBuf { data_path().join("executor-port") } \ No newline at end of file diff --git a/ui/src-tauri/src/main.rs b/ui/src-tauri/src/main.rs index 9716131ce..417ebd7bf 100644 --- a/ui/src-tauri/src/main.rs +++ b/ui/src-tauri/src/main.rs @@ -35,8 +35,9 @@ use tauri::api::dialog; use tauri::Manager; use crate::commands::proxy::{get_proxy, login_proxy, setup_proxy, stop_proxy}; use crate::commands::state::{get_port, request_credential}; -use crate::commands::app::{close_application, close_main_window, clear_state, open_tray}; +use crate::commands::app::{close_application, close_main_window, clear_state, open_tray, open_tray_message}; use crate::config::data_path; +use crate::util::create_tray_message_windows; use crate::util::find_port; use crate::menu::{handle_menu_event, open_logs_folder}; use crate::util::has_processes_running; @@ -63,7 +64,8 @@ pub struct AppState { } fn main() { - if has_processes_running("AD4M") > 1 { + let app_name = if std::env::consts::OS == "windows" { "AD4M.exe" } else { "AD4M" }; + if has_processes_running(app_name) > 1 { println!("AD4M is already running"); return; } @@ -71,7 +73,7 @@ fn main() { if data_path().exists() && !data_path().join("ad4m").join("agent.json").exists() { let _ = remove_dir_all(data_path()); } - + if let Err(err) = setup_logs() { println!("Error setting up the logs: {:?}", err); } @@ -79,7 +81,7 @@ fn main() { let free_port = find_port(12000, 13000); log::info!("Free port: {:?}", free_port); - + save_executor_port(free_port); find_and_kill_processes("ad4m-host"); @@ -127,9 +129,14 @@ fn main() { close_application, close_main_window, clear_state, - open_tray + open_tray, + open_tray_message ]) .setup(move |app| { + // Hides the dock icon + #[cfg(target_os = "macos")] + app.set_activation_policy(tauri::ActivationPolicy::Accessory); + let splashscreen = app.get_window("splashscreen").unwrap(); let splashscreen_clone = splashscreen.clone(); @@ -151,7 +158,7 @@ fn main() { .expect("Failed to spawn ad4m serve"); let handle = app.handle(); - + tauri::async_runtime::spawn(async move { while let Some(event) = rx.recv().await { match event.clone() { @@ -162,6 +169,7 @@ fn main() { let url = app_url(); log::info!("Executor started on: {:?}", url); let _ = splashscreen_clone.hide(); + create_tray_message_windows(&handle); let main = get_main_window(&handle); main.emit("ready", Payload { message: "ad4m-executor is ready".into() }).unwrap(); } @@ -208,7 +216,7 @@ fn main() { let _ = window.hide(); } else { window.show().unwrap(); - window.set_focus().unwrap(); + window.set_focus().unwrap(); } }, SystemTrayEvent::MenuItemClick { id, .. } => { @@ -237,15 +245,15 @@ fn get_main_window(handle: &AppHandle) -> Window { window } else { create_main_window(handle); - let main = handle.get_window("AD4M"); + let main = handle.get_window("AD4M"); main.expect("Couldn't get main window right after creating it") } } fn log_error(window: &Window, message: &str) { dialog::message( - Some(window), - "Error", + Some(window), + "Error", message ); } \ No newline at end of file diff --git a/ui/src-tauri/src/util.rs b/ui/src-tauri/src/util.rs index 78788ab33..6a32f4997 100644 --- a/ui/src-tauri/src/util.rs +++ b/ui/src-tauri/src/util.rs @@ -1,12 +1,17 @@ use crate::app_url; +use crate::config::app_tray_message_url; use crate::config::executor_port_path; use crate::menu::open_logs_folder; use std::fs::remove_file; use std::fs::File; use std::io::prelude::*; +use std::time::Duration; +use std::time::SystemTime; use sysinfo::Process; use sysinfo::{ProcessExt, Signal, System, SystemExt}; use tauri::{AppHandle, Manager, WindowBuilder, WindowEvent, WindowUrl, Wry}; +use tauri_plugin_positioner::Position; +use tauri_plugin_positioner::WindowExt; pub fn find_port(start_port: u16, end_port: u16) -> u16 { for x in start_port..end_port { @@ -81,6 +86,25 @@ pub fn create_main_window(app: &AppHandle) { }); } + +pub fn create_tray_message_windows(app: &AppHandle) { + let url = app_tray_message_url(); + + let new_ad4m_window = WindowBuilder::new(app, "TrayMessage", WindowUrl::App(url.into())) + .center() + .focused(false) + .inner_size(300.0, 80.0) + .title("TrayMessage") + .visible(false); + + let _ = new_ad4m_window.build(); + + let tray_window = app.get_window("TrayMessage").unwrap(); + let _ = tray_window.move_window(Position::TopRight); + let _ = tray_window.set_decorations(false); + let _ = tray_window.set_always_on_top(true); +} + pub fn save_executor_port(port: u16) { let _ = remove_file(executor_port_path()); diff --git a/ui/src-tauri/tauri.conf.json b/ui/src-tauri/tauri.conf.json index 3dcaf0dcc..5b074f7bf 100644 --- a/ui/src-tauri/tauri.conf.json +++ b/ui/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "package": { "productName": "AD4M", - "version": "0.3.4" + "version": "0.5.0" }, "build": { "distDir": "../dist", diff --git a/ui/src/App.tsx b/ui/src/App.tsx index 7d952fb09..40a45be26 100644 --- a/ui/src/App.tsx +++ b/ui/src/App.tsx @@ -14,6 +14,7 @@ import Settings from "./components/Settings"; import { appWindow } from "@tauri-apps/api/window"; import { Connect } from "./components/Connect"; import Apps from "./components/Apps"; +import TrayMessage from "./components/TrayMessage"; const App = () => { const [opened, setOpened] = useState(false); @@ -45,6 +46,7 @@ const App = () => {
    } /> + } /> { useEffect(() => { getApps(); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, []); + + client?.agent?.addAppChangedListener(() => { + console.log('triggered') + getApps(); + }) + }, [client]) function goToFlux() { open("https://app.fluxsocial.io"); diff --git a/ui/src/components/Splashscreen.tsx b/ui/src/components/Splashscreen.tsx index bef82f73e..5ec5ab0f2 100644 --- a/ui/src/components/Splashscreen.tsx +++ b/ui/src/components/Splashscreen.tsx @@ -29,7 +29,7 @@ export default function Splashscreen() { error.style.opacity = "1"; error.style.height = "160px"; } - }, 10000); + }, 30000); }, []); return ( diff --git a/ui/src/components/TrayMessage.tsx b/ui/src/components/TrayMessage.tsx new file mode 100644 index 000000000..b1ba9a0ee --- /dev/null +++ b/ui/src/components/TrayMessage.tsx @@ -0,0 +1,35 @@ +import React, { useEffect, useState } from 'react' +import { splashscreenContainer, splashscreenError, splashscreenErrorFlex } from "./styles"; +import { appWindow } from '@tauri-apps/api/window'; + +export default function TrayMessage() { + const [count, setCount] = useState(5); + + useEffect(() => { + appWindow.listen('tray_message_open', () => { + let i = 5; + const interval = setInterval(() => { + if (count === 0) { + clearInterval(interval) + } else { + i -= 1; + setCount(i) + } + + }, 1000) + }) + }, []) + + return ( +
    +
    + + Ad4m launcher is minimized, click on the tray icon to open it. + + + This popup will automatically close in {count} + +
    +
    + ) +} diff --git a/ui/src/context/Ad4minContext.tsx b/ui/src/context/Ad4minContext.tsx index e2f35c0da..08fabd649 100644 --- a/ui/src/context/Ad4minContext.tsx +++ b/ui/src/context/Ad4minContext.tsx @@ -1,9 +1,14 @@ import { Ad4mClient, ExceptionType } from "@perspect3vism/ad4m"; import { ExceptionInfo } from "@perspect3vism/ad4m/lib/src/runtime/RuntimeResolver"; import { createContext, useCallback, useEffect, useState } from "react"; -import { buildAd4mClient } from "../util"; -import { appWindow } from '@tauri-apps/api/window' -import { invoke } from '@tauri-apps/api/tauri' +import { + buildAd4mClient, + getForVersion, + setForVersion, + removeForVersion, +} from "../util"; +import { appWindow } from "@tauri-apps/api/window"; +import { invoke } from "@tauri-apps/api/tauri"; type State = { url: string; @@ -17,225 +22,243 @@ type State = { connected: boolean; connectedLaoding: boolean; expertMode: boolean; -} +}; type ContextProps = { state: State; methods: { - configureEndpoint: (str: string) => void, - resetEndpoint: () => void - handleTrustAgent: (str: string) => void, - handleLogin: (client: Ad4mClient, login: Boolean, did: string) => void, - toggleExpertMode: () => void + configureEndpoint: (str: string) => void; + resetEndpoint: () => void; + handleTrustAgent: (str: string) => void; + handleLogin: (client: Ad4mClient, login: Boolean, did: string) => void; + toggleExpertMode: () => void; }; -} +}; const initialState: ContextProps = { state: { - url: '', + url: "", isInitialized: false, - did: '', + did: "", isUnlocked: false, client: null, loading: false, - candidate: '', - auth: '', + candidate: "", + auth: "", connected: false, connectedLaoding: true, - expertMode: localStorage.getItem('expertMode') === 'true' + expertMode: getForVersion("expertMode") === "true", }, methods: { configureEndpoint: () => null, resetEndpoint: () => null, handleTrustAgent: () => null, handleLogin: () => null, - toggleExpertMode: () => null - } -} + toggleExpertMode: () => null, + }, +}; export const Ad4minContext = createContext(initialState); - export function Ad4minProvider({ children }: any) { const [state, setState] = useState(initialState.state); useEffect(() => { - localStorage.setItem('expertMode', state.expertMode.toString()); - }, [state]) + setForVersion("expertMode", state.expertMode.toString()); + }, [state]); const toggleExpertMode = () => { setState((prevState) => ({ ...prevState, - expertMode: !prevState.expertMode - })) - } - - - const checkConnection = useCallback(async (url: string, client: Ad4mClient): Promise => { - return new Promise(async (resolve, reject) => { - try { - if (client) { - const id = setTimeout(() => { - resolve('') - }, 1000); - - await client.agent.status(); // TODO runtime info is broken - clearTimeout(id); - - console.log("get hc agent infos success."); + expertMode: !prevState.expertMode, + })); + }; - resolve(url) - } - } catch (err) { - if (url) { - console.error("Could not connect to the executor on a given url: ", url); + const checkConnection = useCallback( + async (url: string, client: Ad4mClient): Promise => { + return new Promise(async (resolve, reject) => { + try { + if (client) { + const id = setTimeout(() => { + resolve(""); + }, 1000); + + await client.agent.status(); // TODO runtime info is broken + clearTimeout(id); + + console.log("get hc agent infos success."); + + resolve(url); + } + } catch (err) { + if (url) { + console.error( + "Could not connect to the executor on a given url: ", + url + ); + } + + resolve(""); } + }); + }, + [] + ); - resolve('') - } - }) - }, []) + const handleLogin = useCallback( + (client: Ad4mClient, login: Boolean, did: string) => { + setState((prev) => ({ + ...prev, + isUnlocked: login, + did: did, + loading: false, + })); - const handleLogin = useCallback((client: Ad4mClient, login: Boolean, did: string) => { - setState((prev) => ({ - ...prev, - isUnlocked: login, - did: did, - loading: false - })) - - if (login) { - client.runtime.addExceptionCallback((exception: ExceptionInfo) => { - if (exception.type === ExceptionType.AgentIsUntrusted) { - setState((prev) => ({ - ...prev, - candidate: exception.addon! - })); - } - if (exception.type === ExceptionType.CapabilityRequested) { - setState((prev) => ({ - ...prev, - auth: exception.addon! - })) - } - Notification.requestPermission() - .then(response => { - if (response === 'granted') { - new Notification(exception.title, { body: exception.message }) + if (login) { + client.runtime.addExceptionCallback((exception: ExceptionInfo) => { + if (exception.type === ExceptionType.AgentIsUntrusted) { + setState((prev) => ({ + ...prev, + candidate: exception.addon!, + })); + } + if (exception.type === ExceptionType.CapabilityRequested) { + setState((prev) => ({ + ...prev, + auth: exception.addon!, + })); + } + Notification.requestPermission().then((response) => { + if (response === "granted") { + new Notification(exception.title, { body: exception.message }); } }); - console.log(exception); + console.log(exception); - appWindow.setFocus(); + appWindow.setFocus(); - return null - }) - } - }, []); - - const checkIfAgentIsInitialized = useCallback(async (client: Ad4mClient) => { - console.log("Check if agent is initialized.", client) - - let status = await client?.agent.status(); - console.log("agent status in init: ", status); + return null; + }); + } + }, + [] + ); - handleLogin(client, status.isUnlocked, status.did ? status.did! : ""); + const checkIfAgentIsInitialized = useCallback( + async (client: Ad4mClient) => { + console.log("Check if agent is initialized.", client); - return status; - }, [handleLogin]); + let status = await client?.agent.status(); + console.log("agent status in init: ", status); - const connect = useCallback(async (url: string) => { - const client = await buildAd4mClient(url); - try { - await checkConnection(url, client); + handleLogin(client, status.isUnlocked, status.did ? status.did! : ""); - const { isInitialized, isUnlocked } = await checkIfAgentIsInitialized(client); + return status; + }, + [handleLogin] + ); - setState(prev => ({ - ...prev, - client, - url, - isInitialized, - isUnlocked, - connected: true, - connectedLaoding: false - })); - - localStorage.setItem('url', url as string); - } catch (e) { - console.log('err', e) - } - }, [checkConnection, checkIfAgentIsInitialized]) + const connect = useCallback( + async (url: string) => { + const client = await buildAd4mClient(url); + try { + await checkConnection(url, client); + + const { isInitialized, isUnlocked } = await checkIfAgentIsInitialized( + client + ); + + setState((prev) => ({ + ...prev, + client, + url, + isInitialized, + isUnlocked, + connected: true, + connectedLaoding: false, + })); + + setForVersion("url", url as string); + } catch (e) { + console.log("err", e); + } + }, + [checkConnection, checkIfAgentIsInitialized] + ); useEffect(() => { - let localStorageURL = localStorage.getItem('url'); + let localStorageURL = getForVersion("url"); - if (localStorageURL && localStorageURL !== 'null' && !localStorageURL.includes('localhost')) { + if ( + localStorageURL && + localStorageURL !== "null" && + !localStorageURL.includes("localhost") + ) { if (localStorageURL) { connect(localStorageURL); } } else { - invoke('get_port').then((message) => { + invoke("get_port").then((message) => { if (message) { const url = `ws://localhost:${message}/graphql`; connect(url); } - }) + }); } }, [checkConnection, checkIfAgentIsInitialized, connect]); useEffect(() => { - appWindow.listen('ready', async () => { - const message = await invoke('get_port'); + appWindow.listen("ready", async () => { + const message = await invoke("get_port"); if (message) { const url = `ws://localhost:${message}/graphql`; connect(url); } - }) - }, [connect]) + }); + }, [connect]); const handleTrustAgent = (candidate: string) => { setState((prev) => ({ ...prev, - candidate + candidate, })); - } + }; const configureEndpoint = async (url: string) => { if (url) { setState((prev) => ({ ...prev, - url + url, })); - await connect(url) + await connect(url); } - } + }; const resetEndpoint = () => { setState((prev) => ({ ...prev, - url: '', - connected: false - })) + url: "", + connected: false, + })); - localStorage.removeItem('url'); - } + removeForVersion("url"); + }; useEffect(() => { const build = async () => { - const client = await buildAd4mClient(state.url) + const client = await buildAd4mClient(state.url); setState((prev) => ({ ...prev, - client + client, })); - } + }; if (state.url) { - console.log('gggg 0', state.url); + console.log("gggg 0", state.url); build(); } - }, [state.url]) + }, [state.url]); return ( {children} - ) + ); } - diff --git a/ui/src/context/AgentContext.tsx b/ui/src/context/AgentContext.tsx index b5c9a8711..7f8fffe1b 100644 --- a/ui/src/context/AgentContext.tsx +++ b/ui/src/context/AgentContext.tsx @@ -100,7 +100,7 @@ export function AgentProvider({ children }: any) { setLoading(false); await invoke('close_main_window'); - await invoke('open_tray'); + await invoke('open_tray_message'); await invoke('login_proxy', { subdomain: agentStatus.did! }); navigate('/apps'); @@ -117,7 +117,7 @@ export function AgentProvider({ children }: any) { handleLogin(client!, agentStatus!.isUnlocked, agentStatus!.did!); console.log("agent status in unlock: ", agentStatus); await invoke('close_main_window'); - await invoke('open_tray'); + await invoke('open_tray_message'); await invoke('login_proxy', { subdomain: agentStatus!.did }); navigate('/apps'); } else { diff --git a/ui/src/util.ts b/ui/src/util.ts index 3009f4eae..bead6a5d2 100644 --- a/ui/src/util.ts +++ b/ui/src/util.ts @@ -1,90 +1,125 @@ -import { Ad4mClient, LinkExpression } from '@perspect3vism/ad4m'; -import { ApolloClient, InMemoryCache } from '@apollo/client/core'; -import { GraphQLWsLink } from '@apollo/client/link/subscriptions'; -import { invoke } from '@tauri-apps/api'; -import { createClient } from 'graphql-ws'; +import { Ad4mClient, LinkExpression } from "@perspect3vism/ad4m"; +import { ApolloClient, InMemoryCache } from "@apollo/client/core"; +import { GraphQLWsLink } from "@apollo/client/link/subscriptions"; +import { invoke } from "@tauri-apps/api"; +import { createClient } from "graphql-ws"; +import { version } from "../package.json"; export async function buildAd4mClient(server: string): Promise { - let token: string = await invoke("request_credential"); + let token: string = await invoke("request_credential"); - return buildClient(server, token); + return buildClient(server, token); } function buildClient(server: string, token: string): Ad4mClient { - const wsLink = new GraphQLWsLink( - createClient({ - url: server, - connectionParams: () => { - return { - headers: { - authorization: token - } - } - }, - })); - const apolloClient = new ApolloClient({ - link: wsLink, - cache: new InMemoryCache({ resultCaching: false, addTypename: false }), - defaultOptions: { - watchQuery: { - fetchPolicy: "no-cache", - }, - query: { - fetchPolicy: "no-cache", - } - }, - }); - - return new Ad4mClient(apolloClient); + const wsLink = new GraphQLWsLink( + createClient({ + url: server, + connectionParams: () => { + return { + headers: { + authorization: token, + }, + }; + }, + }) + ); + const apolloClient = new ApolloClient({ + link: wsLink, + cache: new InMemoryCache({ resultCaching: false, addTypename: false }), + defaultOptions: { + watchQuery: { + fetchPolicy: "no-cache", + }, + query: { + fetchPolicy: "no-cache", + }, + }, + }); + + return new Ad4mClient(apolloClient); } export function generateLanguageInitials(name: string) { - const split = name.split('-'); + const split = name.split("-"); - if (split.length === 1) { - return name.substring(0, 2); - } else { - return split[0][0] + split[1][0] - } + if (split.length === 1) { + return name.substring(0, 2); + } else { + return split[0][0] + split[1][0]; + } } export function isSystemLanguage(name: string) { - return ['languages', 'agent-expression-store', 'neighbourhood-store', 'perspective-language', 'direct-message-language'].includes(name) + return [ + "languages", + "agent-expression-store", + "neighbourhood-store", + "perspective-language", + "direct-message-language", + ].includes(name); } export function sanitizeLink(link: LinkExpression) { - const newLink = JSON.parse( - JSON.stringify(link) - ); + const newLink = JSON.parse(JSON.stringify(link)); - newLink.__typename = undefined; - newLink.data.__typename = undefined; - newLink.proof.__typename = undefined; + newLink.__typename = undefined; + newLink.data.__typename = undefined; + newLink.proof.__typename = undefined; - return newLink + return newLink; } export function copyTextToClipboard(text: string) { - if (!navigator.clipboard) { - var textArea = document.createElement("textarea"); - textArea.value = text; - - textArea.style.top = "0"; - textArea.style.left = "0"; - textArea.style.position = "fixed"; - - document.body.appendChild(textArea); - textArea.focus(); - textArea.select(); - - try { - const successful = document.execCommand('copy'); - const msg = successful ? 'successful' : 'unsuccessful'; - console.log('Copying text command was ' + msg); - } catch (err) { - console.error('Unable to copy', err); - } - } else { - navigator.clipboard.writeText(text); - } -} \ No newline at end of file + if (!navigator.clipboard) { + var textArea = document.createElement("textarea"); + textArea.value = text; + + textArea.style.top = "0"; + textArea.style.left = "0"; + textArea.style.position = "fixed"; + + document.body.appendChild(textArea); + textArea.focus(); + textArea.select(); + + try { + const successful = document.execCommand("copy"); + const msg = successful ? "successful" : "unsuccessful"; + console.log("Copying text command was " + msg); + } catch (err) { + console.error("Unable to copy", err); + } + } else { + navigator.clipboard.writeText(text); + } +} + +function isSupported(): boolean { + try { + localStorage.setItem("test", ""); + localStorage.removeItem("test"); + } catch (e) { + return false; + } + return true; +} + +export function setForVersion(key: string, value: string): void { + if (isSupported()) { + localStorage.setItem(`${version}/${key}`, value); + } +} + +export function getForVersion(key: string): string | null { + if (isSupported()) { + return localStorage.getItem(`${version}/${key}`); + } + return null; +} + +export function removeForVersion(key: string): void { + if (isSupported()) { + localStorage.removeItem(`${version}/${key}`); + } +} diff --git a/yarn.lock b/yarn.lock index a3b13b6d8..656cc8b4b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -483,7 +483,7 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.4.tgz#6774231779dd700e0af29f6ad8d479582d7ce5ef" integrity sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow== -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.3", "@babel/parser@^7.9.4": +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.3": version "7.21.3" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.3.tgz#1d285d67a19162ff9daa358d4cb41d50c06220b3" integrity sha512-lobG0d7aOfQRXh8AyklEAgZGvA4FShxo6xQbUrrT/cNBPUdIDojlokwJsQyCC/eKia7ifqM0yP+2DRZ4WKw2RQ== @@ -1299,6 +1299,11 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== +"@braintree/sanitize-url@^6.0.2": + version "6.0.2" + resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-6.0.2.tgz#6110f918d273fe2af8ea1c4398a88774bb9fc12f" + integrity sha512-Tbsj02wXCbqGmzdnXNk0SOF19ChhRU70BsroIi4Pm6Ehp56in6vch94mfbdQ17DozxkL3BAVjbZ4Qc1a0HFRAg== + "@chainsafe/is-ip@^2.0.1": version "2.0.1" resolved "https://registry.yarnpkg.com/@chainsafe/is-ip/-/is-ip-2.0.1.tgz#62cb285669d91f88fd9fa285048dde3882f0993b" @@ -2187,6 +2192,13 @@ "@hapi/bourne" "2.x.x" "@hapi/hoek" "9.x.x" +"@headlessui/react@^1.7.10": + version "1.7.15" + resolved "https://registry.yarnpkg.com/@headlessui/react/-/react-1.7.15.tgz#53ef6ae132af81b8f188414767b6e79ebf8dc73f" + integrity sha512-OTO0XtoRQ6JPB1cKNFYBZv2Q0JMqMGNhYP1CjPvcJvjz8YGokz8oAj89HIYZGN0gZzn/4kk9iUpmMF4Q21Gsqw== + dependencies: + client-only "^0.0.1" + "@holochain/client@0.12.5": version "0.12.5" resolved "https://registry.yarnpkg.com/@holochain/client/-/client-0.12.5.tgz#6cbfe32c33f94fb0689d986adeb43f2b43813303" @@ -3591,6 +3603,37 @@ neon-cli "0.4.0" node-pre-gyp "0.14.0" +"@mdx-js/mdx@^2.2.1", "@mdx-js/mdx@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-2.3.0.tgz#d65d8c3c28f3f46bb0e7cb3bf7613b39980671a9" + integrity sha512-jLuwRlz8DQfQNiUCJR50Y09CGPq3fLtmtUQfVrj79E0JWu3dvsVcxVIcfhR5h0iXu+/z++zDrYeiJqifRynJkA== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/mdx" "^2.0.0" + estree-util-build-jsx "^2.0.0" + estree-util-is-identifier-name "^2.0.0" + estree-util-to-js "^1.1.0" + estree-walker "^3.0.0" + hast-util-to-estree "^2.0.0" + markdown-extensions "^1.0.0" + periscopic "^3.0.0" + remark-mdx "^2.0.0" + remark-parse "^10.0.0" + remark-rehype "^10.0.0" + unified "^10.0.0" + unist-util-position-from-estree "^1.0.0" + unist-util-stringify-position "^3.0.0" + unist-util-visit "^4.0.0" + vfile "^5.0.0" + +"@mdx-js/react@^2.2.1", "@mdx-js/react@^2.3.0": + version "2.3.0" + resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-2.3.0.tgz#4208bd6d70f0d0831def28ef28c26149b03180b3" + integrity sha512-zQH//gdOmuu7nt2oJR29vFhDv88oGPmVw6BggmrHeMI+xgEkp1B2dX9/bMBSYtK0dyLX/aOmesKS09g222K1/g== + dependencies: + "@types/mdx" "^2.0.0" + "@types/react" ">=16" + "@msgpack/msgpack@^2.7.2": version "2.8.0" resolved "https://registry.yarnpkg.com/@msgpack/msgpack/-/msgpack-2.8.0.tgz#4210deb771ee3912964f14a15ddfb5ff877e70b9" @@ -3638,6 +3681,83 @@ "@multiformats/multiaddr" "^11.0.0" is-ip "^5.0.0" +"@napi-rs/simple-git-android-arm-eabi@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-android-arm-eabi/-/simple-git-android-arm-eabi-0.1.8.tgz#303bea1ec00db24466e3b3ba13de337d87c5371b" + integrity sha512-JJCejHBB1G6O8nxjQLT4quWCcvLpC3oRdJJ9G3MFYSCoYS8i1bWCWeU+K7Br+xT+D6s1t9q8kNJAwJv9Ygpi0g== + +"@napi-rs/simple-git-android-arm64@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-android-arm64/-/simple-git-android-arm64-0.1.8.tgz#42c8d04287364fd1619002629fa52183dcf462ee" + integrity sha512-mraHzwWBw3tdRetNOS5KnFSjvdAbNBnjFLA8I4PwTCPJj3Q4txrigcPp2d59cJ0TC51xpnPXnZjYdNwwSI9g6g== + +"@napi-rs/simple-git-darwin-arm64@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-darwin-arm64/-/simple-git-darwin-arm64-0.1.8.tgz#e210808e6d646d6efecea84c67ced8eb44a8f821" + integrity sha512-ufy/36eI/j4UskEuvqSH7uXtp3oXeLDmjQCfKJz3u5Vx98KmOMKrqAm2H81AB2WOtCo5mqS6PbBeUXR8BJX8lQ== + +"@napi-rs/simple-git-darwin-x64@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-darwin-x64/-/simple-git-darwin-x64-0.1.8.tgz#d717525c33e0dfd8a6d6215da2fcbc0ad40011e1" + integrity sha512-Vb21U+v3tPJNl+8JtIHHT8HGe6WZ8o1Tq3f6p+Jx9Cz71zEbcIiB9FCEMY1knS/jwQEOuhhlI9Qk7d4HY+rprA== + +"@napi-rs/simple-git-linux-arm-gnueabihf@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-linux-arm-gnueabihf/-/simple-git-linux-arm-gnueabihf-0.1.8.tgz#03e7b2dd299c10e61bbf29f405ea74f6571cf6a1" + integrity sha512-6BPTJ7CzpSm2t54mRLVaUr3S7ORJfVJoCk2rQ8v8oDg0XAMKvmQQxOsAgqKBo9gYNHJnqrOx3AEuEgvB586BuQ== + +"@napi-rs/simple-git-linux-arm64-gnu@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-linux-arm64-gnu/-/simple-git-linux-arm64-gnu-0.1.8.tgz#945123f75c9a36fd0364e789ce06cd29a74a43cc" + integrity sha512-qfESqUCAA/XoQpRXHptSQ8gIFnETCQt1zY9VOkplx6tgYk9PCeaX4B1Xuzrh3eZamSCMJFn+1YB9Ut8NwyGgAA== + +"@napi-rs/simple-git-linux-arm64-musl@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-linux-arm64-musl/-/simple-git-linux-arm64-musl-0.1.8.tgz#2c20a0bff7c08f60b033ed7056dcb07bbbff8310" + integrity sha512-G80BQPpaRmQpn8dJGHp4I2/YVhWDUNJwcCrJAtAdbKFDCMyCHJBln2ERL/+IEUlIAT05zK/c1Z5WEprvXEdXow== + +"@napi-rs/simple-git-linux-x64-gnu@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-linux-x64-gnu/-/simple-git-linux-x64-gnu-0.1.8.tgz#980e22b7376252a0767298ec801d374d97553da1" + integrity sha512-NI6o1sZYEf6vPtNWJAm9w8BxJt+LlSFW0liSjYe3lc3e4dhMfV240f0ALeqlwdIldRPaDFwZSJX5/QbS7nMzhw== + +"@napi-rs/simple-git-linux-x64-musl@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-linux-x64-musl/-/simple-git-linux-x64-musl-0.1.8.tgz#edca3b2833dc5d3fc9151f5b931f7b14478ccca4" + integrity sha512-wljGAEOW41er45VTiU8kXJmO480pQKzsgRCvPlJJSCaEVBbmo6XXbFIXnZy1a2J3Zyy2IOsRB4PVkUZaNuPkZQ== + +"@napi-rs/simple-git-win32-arm64-msvc@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-win32-arm64-msvc/-/simple-git-win32-arm64-msvc-0.1.8.tgz#3ac4c7fe816a2cdafabd091ded76161d1ba1fe88" + integrity sha512-QuV4QILyKPfbWHoQKrhXqjiCClx0SxbCTVogkR89BwivekqJMd9UlMxZdoCmwLWutRx4z9KmzQqokvYI5QeepA== + +"@napi-rs/simple-git-win32-x64-msvc@0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git-win32-x64-msvc/-/simple-git-win32-x64-msvc-0.1.8.tgz#3b825bc2cb1c7ff535a3ca03768142d68bbf5c19" + integrity sha512-UzNS4JtjhZhZ5hRLq7BIUq+4JOwt1ThIKv11CsF1ag2l99f0123XvfEpjczKTaa94nHtjXYc2Mv9TjccBqYOew== + +"@napi-rs/simple-git@^0.1.8": + version "0.1.8" + resolved "https://registry.yarnpkg.com/@napi-rs/simple-git/-/simple-git-0.1.8.tgz#391cb58436d50bd32d924611d45bdc41f5e7607a" + integrity sha512-BvOMdkkofTz6lEE35itJ/laUokPhr/5ToMGlOH25YnhLD2yN1KpRAT4blW9tT8281/1aZjW3xyi73bs//IrDKA== + optionalDependencies: + "@napi-rs/simple-git-android-arm-eabi" "0.1.8" + "@napi-rs/simple-git-android-arm64" "0.1.8" + "@napi-rs/simple-git-darwin-arm64" "0.1.8" + "@napi-rs/simple-git-darwin-x64" "0.1.8" + "@napi-rs/simple-git-linux-arm-gnueabihf" "0.1.8" + "@napi-rs/simple-git-linux-arm64-gnu" "0.1.8" + "@napi-rs/simple-git-linux-arm64-musl" "0.1.8" + "@napi-rs/simple-git-linux-x64-gnu" "0.1.8" + "@napi-rs/simple-git-linux-x64-musl" "0.1.8" + "@napi-rs/simple-git-win32-arm64-msvc" "0.1.8" + "@napi-rs/simple-git-win32-x64-msvc" "0.1.8" + +"@next/env@13.4.6": + version "13.4.6" + resolved "https://registry.yarnpkg.com/@next/env/-/env-13.4.6.tgz#3f2041c7758660d7255707ae4cb9166519113dea" + integrity sha512-nqUxEtvDqFhmV1/awSg0K2XHNwkftNaiUqCYO9e6+MYmqNObpKVl7OgMkGaQ2SZnFx5YqF0t60ZJTlyJIDAijg== + "@next/eslint-plugin-next@12.3.4": version "12.3.4" resolved "https://registry.yarnpkg.com/@next/eslint-plugin-next/-/eslint-plugin-next-12.3.4.tgz#e7dc00e2e89ed361f111d687b8534483ec15518b" @@ -3645,6 +3765,51 @@ dependencies: glob "7.1.7" +"@next/swc-darwin-arm64@13.4.6": + version "13.4.6" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-arm64/-/swc-darwin-arm64-13.4.6.tgz#47485f3deaee6681b4a4036c74bb9c4b728d5ddd" + integrity sha512-ahi6VP98o4HV19rkOXPSUu+ovfHfUxbJQ7VVJ7gL2FnZRr7onEFC1oGQ6NQHpm8CxpIzSSBW79kumlFMOmZVjg== + +"@next/swc-darwin-x64@13.4.6": + version "13.4.6" + resolved "https://registry.yarnpkg.com/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.6.tgz#a6a5b232ec0f2079224fb8ed6bf11dc479af1acf" + integrity sha512-13cXxKFsPJIJKzUqrU5XB1mc0xbUgYsRcdH6/rB8c4NMEbWGdtD4QoK9ShN31TZdePpD4k416Ur7p+deMIxnnA== + +"@next/swc-linux-arm64-gnu@13.4.6": + version "13.4.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.6.tgz#2a67144e863d9c45fdbd13c7827370e7f2a28405" + integrity sha512-Ti+NMHEjTNktCVxNjeWbYgmZvA2AqMMI2AMlzkXsU7W4pXCMhrryAmAIoo+7YdJbsx01JQWYVxGe62G6DoCLaA== + +"@next/swc-linux-arm64-musl@13.4.6": + version "13.4.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.6.tgz#5a191ac3575a70598e9e9c6e7264fc0b8a90b2db" + integrity sha512-OHoC6gO7XfjstgwR+z6UHKlvhqJfyMtNaJidjx3sEcfaDwS7R2lqR5AABi8PuilGgi0BO0O0sCXqLlpp3a0emQ== + +"@next/swc-linux-x64-gnu@13.4.6": + version "13.4.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.6.tgz#d38adf842a8b8f9de492454328fd32a2c53350f3" + integrity sha512-zHZxPGkUlpfNJCboUrFqwlwEX5vI9LSN70b8XEb0DYzzlrZyCyOi7hwDp/+3Urm9AB7YCAJkgR5Sp1XBVjHdfQ== + +"@next/swc-linux-x64-musl@13.4.6": + version "13.4.6" + resolved "https://registry.yarnpkg.com/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.6.tgz#74c745774358b78be7f958e7a8b7d93936cd6ebc" + integrity sha512-K/Y8lYGTwTpv5ME8PSJxwxLolaDRdVy+lOd9yMRMiQE0BLUhtxtCWC9ypV42uh9WpLjoaD0joOsB9Q6mbrSGJg== + +"@next/swc-win32-arm64-msvc@13.4.6": + version "13.4.6" + resolved "https://registry.yarnpkg.com/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.6.tgz#1e1e02c175573e64808fc1a7e8650e3e217f1edc" + integrity sha512-U6LtxEUrjBL2tpW+Kr1nHCSJWNeIed7U7l5o7FiKGGwGgIlFi4UHDiLI6TQ2lxi20fAU33CsruV3U0GuzMlXIw== + +"@next/swc-win32-ia32-msvc@13.4.6": + version "13.4.6" + resolved "https://registry.yarnpkg.com/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.6.tgz#2b528ae3ec7f6e727f4f0d81a1015f63da55c7a6" + integrity sha512-eEBeAqpCfhdPSlCZCayjCiyIllVqy4tcqvm1xmg3BgJG0G5ITiMM4Cw2WVeRSgWDJqQGRyyb+q8Y2ltzhXOWsQ== + +"@next/swc-win32-x64-msvc@13.4.6": + version "13.4.6" + resolved "https://registry.yarnpkg.com/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.6.tgz#38620bd68267ff13e50ecd432f1822eac51382a8" + integrity sha512-OrZs94AuO3ZS5tnqlyPRNgfWvboXaDQCi5aXGve3o3C+Sj0ctMUV9+Do+0zMvvLRumR8E0PTWKvtz9n5vzIsWw== + "@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1": version "5.1.1-v1" resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129" @@ -3751,6 +3916,11 @@ "@pnpm/network.ca-file" "^1.0.1" config-chain "^1.1.11" +"@popperjs/core@^2.11.6": + version "2.11.8" + resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.8.tgz#6b79032e760a0899cd4204710beede972a3a185f" + integrity sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A== + "@popperjs/core@^2.9.2": version "2.11.6" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.6.tgz#cee20bd55e68a1720bdab363ecf0c821ded4cd45" @@ -3882,6 +4052,19 @@ magic-string "^0.25.2" resolve "^1.11.0" +"@rollup/plugin-commonjs@^17.0.0": + version "17.1.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-17.1.0.tgz#757ec88737dffa8aa913eb392fade2e45aef2a2d" + integrity sha512-PoMdXCw0ZyvjpCMT5aV4nkL0QywxP29sODQsSGeDpr/oI49Qq9tRtAsb/LbYbDzFlOydVEqHmmZWFtXJEAX9ew== + dependencies: + "@rollup/pluginutils" "^3.1.0" + commondir "^1.0.1" + estree-walker "^2.0.1" + glob "^7.1.6" + is-reference "^1.2.1" + magic-string "^0.25.7" + resolve "^1.17.0" + "@rollup/plugin-commonjs@^20.0.0": version "20.0.0" resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-20.0.0.tgz#3246872dcbcb18a54aaa6277a8c7d7f1b155b745" @@ -4384,6 +4567,13 @@ "@svgr/plugin-svgo" "^5.5.0" loader-utils "^2.0.0" +"@swc/helpers@0.5.1": + version "0.5.1" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.1.tgz#e9031491aa3f26bfcc974a67f48bd456c8a5357a" + integrity sha512-sJ902EfIzn1Fa+qYmjdQqh8tPsoxyBz+8yBKC2HKUxyezKJFwPGOn7pv4WY6QuQW//ySQi5lJjA/ZT9sNWWNTg== + dependencies: + tslib "^2.4.0" + "@szmarczak/http-timer@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" @@ -4535,6 +4725,14 @@ traverse "^0.6.7" unified "^9.2.2" +"@theguild/remark-mermaid@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@theguild/remark-mermaid/-/remark-mermaid-0.0.1.tgz#984f0f03bee4809cde02abbe4dbdbc192c806109" + integrity sha512-MbLi7CIn25r0MypN1yaTrvuQHBE/UXy/DKfVjaLlXx5ut4PasOwzGIJihzM4d9kqNADJKilHpQWcd66ivbvJEQ== + dependencies: + mermaid "10.2.1" + unist-util-visit "4.1.2" + "@tokenizer/token@^0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@tokenizer/token/-/token-0.3.0.tgz#fe98a93fe789247e998c75e74e9c7c63217aa276" @@ -4701,6 +4899,13 @@ dependencies: "@types/node" "*" +"@types/acorn@^4.0.0": + version "4.0.6" + resolved "https://registry.yarnpkg.com/@types/acorn/-/acorn-4.0.6.tgz#d61ca5480300ac41a7d973dd5b84d0a591154a22" + integrity sha512-veQTnWP+1D/xbxVrPC3zHnCZRjSrKfhbMUlEA43iMZLu7EsnTtkJklIuwrCPbOi8YkvDQAiW05VQQFvvz9oieQ== + dependencies: + "@types/estree" "*" + "@types/aria-query@^5.0.1": version "5.0.1" resolved "https://registry.yarnpkg.com/@types/aria-query/-/aria-query-5.0.1.tgz#3286741fb8f1e1580ac28784add4c7a1d49bdfbc" @@ -4803,6 +5008,13 @@ resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" integrity sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw== +"@types/debug@^4.0.0": + version "4.1.8" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.8.tgz#cef723a5d0a90990313faec2d1e22aee5eecb317" + integrity sha512-/vPO1EPOs306Cvhwv7KfVfYvOJqA/S/AXjaHQiJboCZzcNDb+TIJFN9/2C9DZ//ijSKWioNyUxD792QmDJ+HKQ== + dependencies: + "@types/ms" "*" + "@types/dns-packet@*": version "5.2.4" resolved "https://registry.yarnpkg.com/@types/dns-packet/-/dns-packet-5.2.4.tgz#0de4ee48f900a62b014ce61a3c9ab5d33dc06b0d" @@ -4833,6 +5045,13 @@ "@types/estree" "*" "@types/json-schema" "*" +"@types/estree-jsx@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/estree-jsx/-/estree-jsx-1.0.0.tgz#7bfc979ab9f692b492017df42520f7f765e98df1" + integrity sha512-3qvGd0z8F2ENTGr/GG1yViqfiKmRfrXVx5sJyHGFu3z7m5g5utCQtGp/g29JnjflhtQJBv1WDQukHiT58xPcYQ== + dependencies: + "@types/estree" "*" + "@types/estree@*": version "1.0.0" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.0.tgz#5fb2e536c1ae9bf35366eed879e827fa59ca41c2" @@ -4848,6 +5067,11 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.51.tgz#cfd70924a25a3fd32b218e5e420e6897e1ac4f40" integrity sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ== +"@types/estree@^1.0.0": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" + integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== + "@types/expect@*": version "24.3.0" resolved "https://registry.yarnpkg.com/@types/expect/-/expect-24.3.0.tgz#d7cab8b3c10c2d92a0cbb31981feceb81d3486f1" @@ -4873,7 +5097,7 @@ "@types/qs" "*" "@types/range-parser" "*" -"@types/express@*", "@types/express@^4.17.13", "@types/express@^4.17.14": +"@types/express@*", "@types/express@^4.17.13", "@types/express@^4.17.14", "@types/express@^4.17.8": version "4.17.17" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4" integrity sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q== @@ -4920,6 +5144,13 @@ dependencies: "@types/node" "*" +"@types/hast@^2.0.0": + version "2.3.4" + resolved "https://registry.yarnpkg.com/@types/hast/-/hast-2.3.4.tgz#8aa5ef92c117d20d974a82bdfb6a648b08c0bafc" + integrity sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g== + dependencies: + "@types/unist" "*" + "@types/html-minifier-terser@^6.0.0": version "6.1.0" resolved "https://registry.yarnpkg.com/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz#4fc33a00c1d0c16987b1a20cf92d20614c55ac35" @@ -4987,7 +5218,7 @@ jest-matcher-utils "^27.0.0" pretty-format "^27.0.0" -"@types/js-yaml@^4.0.2": +"@types/js-yaml@^4.0.0", "@types/js-yaml@^4.0.2": version "4.0.5" resolved "https://registry.yarnpkg.com/@types/js-yaml/-/js-yaml-4.0.5.tgz#738dd390a6ecc5442f35e7f03fa1431353f7e138" integrity sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA== @@ -5007,6 +5238,16 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== +"@types/katex@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@types/katex/-/katex-0.14.0.tgz#b84c0afc3218069a5ad64fe2a95321881021b5fe" + integrity sha512-+2FW2CcT0K3P+JMR8YG846bmDwplKUTsWgT2ENwdQ1UdVfRk3GQrh6Mi4sTopy30gI8Uau5CEqHTDZ6YvWIUPA== + +"@types/katex@^0.16.0": + version "0.16.0" + resolved "https://registry.yarnpkg.com/@types/katex/-/katex-0.16.0.tgz#0e640df3647fe237212be863e1f5111eb9754f93" + integrity sha512-hz+S3nV6Mym5xPbT9fnO8dDhBFQguMYpY0Ipxv06JMi1ORgnEM4M1ymWDUhUNer3ElLmT583opRo4RzxKmh9jw== + "@types/keyv@^3.1.1", "@types/keyv@^3.1.4": version "3.1.4" resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" @@ -5014,11 +5255,6 @@ dependencies: "@types/node" "*" -"@types/linkify-it@*": - version "3.0.2" - resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-3.0.2.tgz#fd2cd2edbaa7eaac7e7f3c1748b52a19143846c9" - integrity sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA== - "@types/lodash@*": version "4.14.191" resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.191.tgz#09511e7f7cba275acd8b419ddac8da9a6a79e2fa" @@ -5036,14 +5272,6 @@ dependencies: "@types/lodash" "*" -"@types/markdown-it@^12.2.3": - version "12.2.3" - resolved "https://registry.yarnpkg.com/@types/markdown-it/-/markdown-it-12.2.3.tgz#0d6f6e5e413f8daaa26522904597be3d6cd93b51" - integrity sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ== - dependencies: - "@types/linkify-it" "*" - "@types/mdurl" "*" - "@types/mdast@^3.0.0": version "3.0.10" resolved "https://registry.yarnpkg.com/@types/mdast/-/mdast-3.0.10.tgz#4724244a82a4598884cbbe9bcfd73dff927ee8af" @@ -5051,10 +5279,10 @@ dependencies: "@types/unist" "*" -"@types/mdurl@*": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/mdurl/-/mdurl-1.0.2.tgz#e2ce9d83a613bacf284c7be7d491945e39e1f8e9" - integrity sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA== +"@types/mdx@^2.0.0": + version "2.0.5" + resolved "https://registry.yarnpkg.com/@types/mdx/-/mdx-2.0.5.tgz#9a85a8f70c7c4d9e695a21d5ae5c93645eda64b1" + integrity sha512-76CqzuD6Q7LC+AtbPqrvD9AqsN0k8bsYo2bM2J8pmNldP1aIPAbzUQ7QbobyXL4eLr1wK5x8FZFe8eF/ubRuBg== "@types/mime@*": version "3.0.1" @@ -5081,6 +5309,11 @@ resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.1.tgz#2f4f65bb08bc368ac39c96da7b2f09140b26851b" integrity sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q== +"@types/ms@*": + version "0.7.31" + resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" + integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== + "@types/multicast-dns@^7.2.1": version "7.2.1" resolved "https://registry.yarnpkg.com/@types/multicast-dns/-/multicast-dns-7.2.1.tgz#6527b28ce62bcdc08a38f6a329a3d23145c99d95" @@ -5102,6 +5335,11 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.15.3.tgz#f0b991c32cfc6a4e7f3399d6cb4b8cf9a0315014" integrity sha512-p6ua9zBxz5otCmbpb5D3U4B5Nanw6Pk3PPyX05xnxbB/fRv71N7CPmORg7uAD5P70T0xmx1pzAx/FUfa5X+3cw== +"@types/node@18.11.10": + version "18.11.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.10.tgz#4c64759f3c2343b7e6c4b9caf761c7a3a05cee34" + integrity sha512-juG3RWMBOqcOuXC643OAdSA525V44cVgGV6dUDuiFtss+8Fk5x1hI93Rsld43VeJVIeqlP9I7Fn9/qaVqoEAuQ== + "@types/node@^10.1.0": version "10.17.60" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" @@ -5112,7 +5350,7 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== -"@types/node@^14.11.2", "@types/node@^14.14.22": +"@types/node@^14.11.2": version "14.18.38" resolved "https://registry.yarnpkg.com/@types/node/-/node-14.18.38.tgz#2169ca4b70aa59aa5a8923509e50619dde48b0cf" integrity sha512-zMRIidN2Huikv/+/U7gRPFYsXDR/7IGqFZzTLnCEj5+gkrQjsowfamaxEnyvArct5hxGA3bTxMXlYhH78V6Cew== @@ -5122,11 +5360,6 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.16.tgz#09ff98b144abae2d7cce3e9fe9040ab2bf73222c" integrity sha512-ZOzvDRWp8dCVBmgnkIqYCArgdFOO9YzocZp8Ra25N/RStKiWvMOXHMz+GjSeVNe5TstaTmTWPucGJkDw0XXJWA== -"@types/node@^17.0.21", "@types/node@^17.0.8": - version "17.0.45" - resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.45.tgz#2c0fafd78705e7a18b7906b5201a522719dc5190" - integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== - "@types/node@^8.0.24": version "8.10.66" resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.66.tgz#dd035d409df322acc83dff62a602f12a5783bbb3" @@ -5195,6 +5428,15 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/react@>=16": + version "18.2.13" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.13.tgz#a98c09bde8b18f80021935b11d2d29ef5f4dcb2f" + integrity sha512-vJ+zElvi/Zn9cVXB5slX2xL8PZodPCwPRDpittQdw43JR2AJ5k3vKdgJJyneV/cYgIbLQUwXa9JVDvUZXGba+Q== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + "@types/react@^17", "@types/react@^17.0.40": version "17.0.53" resolved "https://registry.yarnpkg.com/@types/react/-/react-17.0.53.tgz#10d4d5999b8af3d6bc6a9369d7eb953da82442ab" @@ -5327,6 +5569,11 @@ dependencies: "@types/node" "*" +"@types/uuid@9.0.1": + version "9.0.1" + resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-9.0.1.tgz#98586dc36aee8dacc98cc396dbca8d0429647aa6" + integrity sha512-rFT3ak0/2trgvp4yYZo5iKFEPsET7vKydKF+VRCxlQ9bpheehyAJH89dAkaLEq/j/RZXJIqcgsmPJKUP1Z28HA== + "@types/uuid@^8.3.1", "@types/uuid@^8.3.2": version "8.3.4" resolved "https://registry.yarnpkg.com/@types/uuid/-/uuid-8.3.4.tgz#bd86a43617df0594787d38b735f55c805becf1bc" @@ -5750,7 +5997,7 @@ acorn-import-assertions@^1.7.6: resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz#ba2b5939ce62c238db6d93d81c9b111b29b855e9" integrity sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw== -acorn-jsx@^5.3.2: +acorn-jsx@^5.0.0, acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== @@ -5779,6 +6026,11 @@ acorn@^7.0.0, acorn@^7.1.1: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== +acorn@^8.0.0: + version "8.9.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.9.0.tgz#78a16e3b2bcc198c10822786fa6679e245db5b59" + integrity sha512-jaVNAFBHNLXspO543WnNNPZFRtavh3skAkITqD0/2aeMkKZTN+254PyhwxFYrk3vQ1xfY+2wbesJMs/JC8/PwQ== + acorn@^8.2.4, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.0: version "8.8.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" @@ -5856,6 +6108,11 @@ aloedb-node@^1.1.1: resolved "https://registry.yarnpkg.com/aloedb-node/-/aloedb-node-1.1.1.tgz#76fb08ffa7857a1d0bf21a917e8a1213ed624bd5" integrity sha512-BH5RP5DvN4LEnfGGR+cX4VFf/asmWa1zwKVMVrAuFj3jjgySt9SBLGXTOsP0Epf1O5lzFQyoPDzmTzE44RmPUw== +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha512-0FcBfdcmaumGPQ0qPn7Q5qTgz/ooXgIyp1rf8ik5bGX8mpE2YHjC0P/eyQvxu1GURYQgq9ozf2mteQ5ZD9YiyQ== + anchor-markdown-header@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/anchor-markdown-header/-/anchor-markdown-header-0.6.0.tgz#908f2031281766f44ac350380ca0de77ab7065b8" @@ -6203,6 +6460,11 @@ aproba@^1.0.3: resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== +arch@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/arch/-/arch-2.2.0.tgz#1bc47818f305764f23ab3306b0bfc086c5a29d11" + integrity sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ== + are-we-there-yet@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" @@ -6219,6 +6481,11 @@ are-we-there-yet@~1.1.2: delegates "^1.0.0" readable-stream "^2.0.6" +arg@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/arg/-/arg-1.0.0.tgz#444d885a4e25b121640b55155ef7cd03975d6050" + integrity sha512-Wk7TEzl1KqvTGs/uyhmHO/3XLd3t1UeU4IstvPXVzGPM522cTjqjNZ99esCkcL52sjqjo8e8CTBcWhkxvGzoAw== + arg@^4.1.0: version "4.1.3" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" @@ -6463,6 +6730,11 @@ ast-types-flow@^0.0.7: resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" integrity sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag== +astring@^1.8.0: + version "1.8.6" + resolved "https://registry.yarnpkg.com/astring/-/astring-1.8.6.tgz#2c9c157cf1739d67561c56ba896e6948f6b93731" + integrity sha512-ISvCdHdlTDlH5IpxQJIex7BWBywFWgjJSVdwst+/iQCoEYnyOaQ95+X1JGshuBjGp6nxKUy1jMgE3zPqN7fQdg== + async-exit-hook@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" @@ -6544,6 +6816,13 @@ axe-core@^4.6.2: resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.6.3.tgz#fc0db6fdb65cc7a80ccf85286d91d64ababa3ece" integrity sha512-/BQzOX780JhsxDnPpH4ZiyrJAzcd8AfzFPkv+89veFSr1rcMjuq2JDCwypKaPeB6ljHp9KjXhPpjgCvQlWYuqg== +axios@^0.26.1: + version "0.26.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9" + integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA== + dependencies: + follow-redirects "^1.14.8" + axobject-query@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.1.1.tgz#3b6e5c6d4e43ca7ba51c5babf99d22a9c68485e1" @@ -6806,6 +7085,11 @@ bail@^1.0.0: resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== +bail@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/bail/-/bail-2.0.2.tgz#d26f5cd8fe5d6f832a31517b9f7c356040ba6d5d" + integrity sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw== + balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" @@ -6968,7 +7252,7 @@ blockstore-datastore-adapter@^4.0.0: it-pushable "^3.1.0" multiformats "^10.0.1" -bluebird@^3.5.5, bluebird@^3.7.2: +bluebird@^3.5.5: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== @@ -7404,7 +7688,7 @@ builtins@^1.0.3: resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== -busboy@^1.6.0: +busboy@1.6.0, busboy@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== @@ -7599,6 +7883,11 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001464: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001466.tgz#c1e6197c540392e09709ecaa9e3e403428c53375" integrity sha512-ewtFBSfWjEmxUgNBSZItFSmVtvk9zkwkl1OfRZlKA8slltRN+/C/tuGVrF9styXkN36Yu3+SeJ1qkXxDEyNZ5w== +caniuse-lite@^1.0.30001406: + version "1.0.30001505" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001505.tgz#10a343e49d31cbbfdae298ef73cb0a9f46670dc5" + integrity sha512-jaAOR5zVtxHfL0NjZyflVTtXm3D3J9P15zSJ7HmQF8dSKGA6tqzQq+0ZI3xkjyQj46I4/M0K2GbMpcAFOcbr3A== + canonicalize@^1.0.1, canonicalize@^1.0.3: version "1.0.8" resolved "https://registry.yarnpkg.com/canonicalize/-/canonicalize-1.0.8.tgz#24d1f1a00ed202faafd9bf8e63352cd4450c6df1" @@ -7642,13 +7931,6 @@ catering@^2.1.0, catering@^2.1.1: resolved "https://registry.yarnpkg.com/catering/-/catering-2.1.1.tgz#66acba06ed5ee28d5286133982a927de9a04b510" integrity sha512-K7Qy8O9p76sL3/3m7/zLKbRkyOlSZAgzEaLhyj2mXS8PsCud2Eo4hAb8aLtZqHh0QGqLcb9dlJSu6lHRVENm1w== -catharsis@^0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/catharsis/-/catharsis-0.9.0.tgz#40382a168be0e6da308c277d3a2b3eb40c7d2121" - integrity sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A== - dependencies: - lodash "^4.17.15" - cbor@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/cbor/-/cbor-5.2.0.tgz#4cca67783ccd6de7b50ab4ed62636712f287a67c" @@ -7667,6 +7949,11 @@ ccount@^1.0.0: resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== +ccount@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-2.0.1.tgz#17a3bf82302e0870d6da43a01311a8bc02a3ecf5" + integrity sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg== + chai-as-promised@*: version "7.1.1" resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.1.tgz#08645d825deb8696ee61725dbf590c012eb00ca0" @@ -7694,6 +7981,15 @@ chainsaw@~0.1.0: dependencies: traverse ">=0.3.0 <0.4" +chalk@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.0.tgz#b5ea48efc9c1793dccc9b4767c93914d3f2d52ba" + integrity sha512-Az5zJR2CBujap2rqXGaJKaPHyJ0IrUimvYNX+ncCy8PJP4ltOGTrHUIo097ZaL2zMeKYpiCdqDvS6zdrTFok3Q== + dependencies: + ansi-styles "^3.1.0" + escape-string-regexp "^1.0.5" + supports-color "^4.0.0" + chalk@2.4.2, chalk@^2.0.0, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" @@ -7772,21 +8068,41 @@ char-regex@^2.0.0: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-2.0.1.tgz#6dafdb25f9d3349914079f010ba8d0e6ff9cd01e" integrity sha512-oSvEeo6ZUD7NepqAat3RqoucZ5SeqLJgOvVIwkafu6IP3V0pO38s/ypdVUmDDK6qIIHNlYHJAKX9E7R7HoKElw== +character-entities-html4@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-2.1.0.tgz#1f1adb940c971a4b22ba39ddca6b618dc6e56b2b" + integrity sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA== + character-entities-legacy@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== +character-entities-legacy@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz#76bc83a90738901d7bc223a9e93759fdd560125b" + integrity sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ== + character-entities@^1.0.0: version "1.2.4" resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== +character-entities@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-2.0.2.tgz#2d09c2e72cd9523076ccb21157dff66ad43fcc22" + integrity sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ== + character-reference-invalid@^1.0.0: version "1.1.4" resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== +character-reference-invalid@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-2.0.1.tgz#85c66b041e43b47210faf401278abf808ac45cb9" + integrity sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw== + chardet@^0.4.0: version "0.4.2" resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" @@ -7797,6 +8113,11 @@ chardet@^0.7.0: resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== +charenc@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + integrity sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA== + check-error@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" @@ -7997,6 +8318,19 @@ cli-width@^3.0.0: resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +client-only@0.0.1, client-only@^0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/client-only/-/client-only-0.0.1.tgz#38bba5d403c41ab150bff64a95c85013cf73bca1" + integrity sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA== + +clipboardy@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-1.2.2.tgz#2ce320b9ed9be1514f79878b53ff9765420903e2" + integrity sha512-16KrBOV7bHmHdxcQiCvfUFYVFyEah4FI8vYT1Fr7CGSA4G+xBWMEfUEQJS1hxeHGtI9ju1Bzs9uXSbj5HZKArw== + dependencies: + arch "^2.1.0" + execa "^0.8.0" + cliui@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" @@ -8043,6 +8377,11 @@ clone@^1.0.2: resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== +clsx@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/clsx/-/clsx-1.2.1.tgz#0ddc4a20a549b59c93a4116bb26f5294ca17dc12" + integrity sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg== + co@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" @@ -8152,6 +8491,11 @@ combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: dependencies: delayed-stream "~1.0.0" +comma-separated-tokens@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz#4e89c9458acb61bc8fef19f4529973b2392839ee" + integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg== + command-line-args@^4.0.2: version "4.0.7" resolved "https://registry.yarnpkg.com/command-line-args/-/command-line-args-4.0.7.tgz#f8d1916ecb90e9e121eda6428e41300bfb64cc46" @@ -8178,6 +8522,11 @@ command-line-usage@^4.0.0: table-layout "^0.4.2" typical "^2.6.1" +commander@7, commander@^7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + commander@^2.15.0, commander@^2.20.0, commander@^2.20.3: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -8193,11 +8542,6 @@ commander@^6.1.0: resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== -commander@^7.2.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" - integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== - commander@^8.3.0: version "8.3.0" resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" @@ -8243,6 +8587,11 @@ compression@^1.7.4: safe-buffer "5.1.2" vary "~1.1.2" +compute-scroll-into-view@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/compute-scroll-into-view/-/compute-scroll-into-view-3.0.3.tgz#c418900a5c56e2b04b885b54995df164535962b1" + integrity sha512-nadqwNxghAGTamwIqQSG433W6OADZx2vCo3UXHNrzTRHK/htu+7+L0zhjEoaeaQVNAi3YgqWDv8+tzf0hRfR+A== + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -8444,6 +8793,20 @@ cors@^2.8.5: object-assign "^4" vary "^1" +cose-base@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/cose-base/-/cose-base-1.0.3.tgz#650334b41b869578a543358b80cda7e0abe0a60a" + integrity sha512-s9whTXInMSgAp/NVXVNuVxVKzGH2qck3aQlVHxDCdAEPgtMKwc4Wq6/QKhgdEdgbLSi9rBTAcPoRa6JpiG4ksg== + dependencies: + layout-base "^1.0.0" + +cose-base@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cose-base/-/cose-base-2.2.0.tgz#1c395c35b6e10bb83f9769ca8b817d614add5c01" + integrity sha512-AzlgcsCbUMymkADOJtQm3wO9S3ltPfYOFD5033keQn9NJzIbtnZj+UdBJe7DYml/8TdbtHJW3j58SOnKhWY/5g== + dependencies: + layout-base "^2.0.0" + cosmiconfig@^5.0.0: version "5.2.1" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" @@ -8541,7 +8904,7 @@ cross-fetch@^3.1.4: dependencies: node-fetch "2.6.7" -cross-spawn@^5.1.0: +cross-spawn@^5.0.1, cross-spawn@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" integrity sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A== @@ -8570,6 +8933,11 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +crypt@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + integrity sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow== + crypto-browserify@^3.0.0: version "3.12.0" resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -8873,7 +9241,7 @@ cssnano@^4.1.10: is-resolvable "^1.0.0" postcss "^7.0.0" -cssnano@^5.0.6: +cssnano@^5.0.1, cssnano@^5.0.6: version "5.1.15" resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.15.tgz#ded66b5480d5127fcb44dac12ea5a983755136bf" integrity sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw== @@ -8943,6 +9311,272 @@ customize-cra@1.0.0: dependencies: lodash.flow "^3.5.0" +cytoscape-cose-bilkent@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cytoscape-cose-bilkent/-/cytoscape-cose-bilkent-4.1.0.tgz#762fa121df9930ffeb51a495d87917c570ac209b" + integrity sha512-wgQlVIUJF13Quxiv5e1gstZ08rnZj2XaLHGoFMYXz7SkNfCDOOteKBE6SYRfA9WxxI/iBc3ajfDoc6hb/MRAHQ== + dependencies: + cose-base "^1.0.0" + +cytoscape-fcose@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cytoscape-fcose/-/cytoscape-fcose-2.2.0.tgz#e4d6f6490df4fab58ae9cea9e5c3ab8d7472f471" + integrity sha512-ki1/VuRIHFCzxWNrsshHYPs6L7TvLu3DL+TyIGEsRcvVERmxokbf5Gdk7mFxZnTdiGtnA4cfSmjZJMviqSuZrQ== + dependencies: + cose-base "^2.2.0" + +cytoscape@^3.23.0: + version "3.25.0" + resolved "https://registry.yarnpkg.com/cytoscape/-/cytoscape-3.25.0.tgz#5289e9d18be0293b073bfe93f83bb95b908b2dc1" + integrity sha512-7MW3Iz57mCUo6JQCho6CmPBCbTlJr7LzyEtIkutG255HLVd4XuBg2I9BkTZLI/e4HoaOB/BiAzXuQybQ95+r9Q== + dependencies: + heap "^0.2.6" + lodash "^4.17.21" + +"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.2.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5" + integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg== + dependencies: + internmap "1 - 2" + +d3-axis@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-3.0.0.tgz#c42a4a13e8131d637b745fc2973824cfeaf93322" + integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw== + +d3-brush@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-3.0.0.tgz#6f767c4ed8dcb79de7ede3e1c0f89e63ef64d31c" + integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "3" + d3-transition "3" + +d3-chord@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-3.0.1.tgz#d156d61f485fce8327e6abf339cb41d8cbba6966" + integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g== + dependencies: + d3-path "1 - 3" + +"d3-color@1 - 3", d3-color@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" + integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== + +d3-contour@4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-4.0.2.tgz#bb92063bc8c5663acb2422f99c73cbb6c6ae3bcc" + integrity sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA== + dependencies: + d3-array "^3.2.0" + +d3-delaunay@6: + version "6.0.4" + resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.4.tgz#98169038733a0a5babbeda55054f795bb9e4a58b" + integrity sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A== + dependencies: + delaunator "5" + +"d3-dispatch@1 - 3", d3-dispatch@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" + integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== + +"d3-drag@2 - 3", d3-drag@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba" + integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== + dependencies: + d3-dispatch "1 - 3" + d3-selection "3" + +"d3-dsv@1 - 3", d3-dsv@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73" + integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q== + dependencies: + commander "7" + iconv-lite "0.6" + rw "1" + +"d3-ease@1 - 3", d3-ease@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" + integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== + +d3-fetch@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-3.0.1.tgz#83141bff9856a0edb5e38de89cdcfe63d0a60a22" + integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw== + dependencies: + d3-dsv "1 - 3" + +d3-force@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4" + integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg== + dependencies: + d3-dispatch "1 - 3" + d3-quadtree "1 - 3" + d3-timer "1 - 3" + +"d3-format@1 - 3", d3-format@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" + integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== + +d3-geo@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.1.0.tgz#74fd54e1f4cebd5185ac2039217a98d39b0a4c0e" + integrity sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA== + dependencies: + d3-array "2.5.0 - 3" + +d3-hierarchy@3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" + integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== + +"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" + integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== + dependencies: + d3-color "1 - 3" + +"d3-path@1 - 3", d3-path@3, d3-path@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526" + integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== + +d3-polygon@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-3.0.1.tgz#0b45d3dd1c48a29c8e057e6135693ec80bf16398" + integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg== + +"d3-quadtree@1 - 3", d3-quadtree@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" + integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== + +d3-random@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-3.0.1.tgz#d4926378d333d9c0bfd1e6fa0194d30aebaa20f4" + integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ== + +d3-scale-chromatic@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz#15b4ceb8ca2bb0dcb6d1a641ee03d59c3b62376a" + integrity sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g== + dependencies: + d3-color "1 - 3" + d3-interpolate "1 - 3" + +d3-scale@4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" + integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== + dependencies: + d3-array "2.10.0 - 3" + d3-format "1 - 3" + d3-interpolate "1.2.0 - 3" + d3-time "2.1.1 - 3" + d3-time-format "2 - 4" + +"d3-selection@2 - 3", d3-selection@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" + integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== + +d3-shape@3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" + integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== + dependencies: + d3-path "^3.1.0" + +"d3-time-format@2 - 4", d3-time-format@4: + version "4.1.0" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" + integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== + dependencies: + d3-time "1 - 3" + +"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" + integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== + dependencies: + d3-array "2 - 3" + +"d3-timer@1 - 3", d3-timer@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" + integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== + +"d3-transition@2 - 3", d3-transition@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" + integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== + dependencies: + d3-color "1 - 3" + d3-dispatch "1 - 3" + d3-ease "1 - 3" + d3-interpolate "1 - 3" + d3-timer "1 - 3" + +d3-zoom@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3" + integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "2 - 3" + d3-transition "2 - 3" + +d3@^7.4.0, d3@^7.8.2: + version "7.8.5" + resolved "https://registry.yarnpkg.com/d3/-/d3-7.8.5.tgz#fde4b760d4486cdb6f0cc8e2cbff318af844635c" + integrity sha512-JgoahDG51ncUfJu6wX/1vWQEqOflgXyl4MaHqlcSruTez7yhaRKR9i8VjjcQGeS2en/jnFivXuaIMnseMMt0XA== + dependencies: + d3-array "3" + d3-axis "3" + d3-brush "3" + d3-chord "3" + d3-color "3" + d3-contour "4" + d3-delaunay "6" + d3-dispatch "3" + d3-drag "3" + d3-dsv "3" + d3-ease "3" + d3-fetch "3" + d3-force "3" + d3-format "3" + d3-geo "3" + d3-hierarchy "3" + d3-interpolate "3" + d3-path "3" + d3-polygon "3" + d3-quadtree "3" + d3-random "3" + d3-scale "4" + d3-scale-chromatic "3" + d3-selection "3" + d3-shape "3" + d3-time "3" + d3-time-format "4" + d3-timer "3" + d3-transition "3" + d3-zoom "3" + dag-jose@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dag-jose/-/dag-jose-3.0.1.tgz#0c474eff3e70ad522b5d42e848786358c11ea7c6" @@ -8951,6 +9585,14 @@ dag-jose@^3.0.1: "@ipld/dag-cbor" "^8.0.0" multiformats "^10.0.1" +dagre-d3-es@7.0.10: + version "7.0.10" + resolved "https://registry.yarnpkg.com/dagre-d3-es/-/dagre-d3-es-7.0.10.tgz#19800d4be674379a3cd8c86a8216a2ac6827cadc" + integrity sha512-qTCQmEhcynucuaZgY5/+ti3X/rnszKZhEQH/ZdWdtP1tA/y3VoHJzcVrO9pjjJCNpigfscAtoUB5ONcd2wNn0A== + dependencies: + d3 "^7.8.2" + lodash-es "^4.17.21" + damerau-levenshtein@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7" @@ -9047,6 +9689,11 @@ dateformat@^4.5.1: resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== +dayjs@^1.11.7: + version "1.11.8" + resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.8.tgz#4282f139c8c19dd6d0c7bd571e30c2d0ba7698ea" + integrity sha512-LcgxzFoWMEPO7ggRv1Y2N31hUf2R0Vj7fuy/m+Bg1K8rr+KAs1AEy4y9jd5DXe8pbHgX+srkHNS7TH6Q6ZhYeQ== + debug@2.6.9, debug@^2.1.3, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.4, debug@^2.6.8, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -9096,6 +9743,13 @@ decimal.js@^10.2.1: resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== +decode-named-character-reference@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/decode-named-character-reference/-/decode-named-character-reference-1.0.2.tgz#daabac9690874c394c81e4162a0304b35d824f0e" + integrity sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg== + dependencies: + character-entities "^2.0.0" + decode-uri-component@^0.2.0: version "0.2.2" resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" @@ -9255,6 +9909,13 @@ del@^6.0.0: rimraf "^3.0.2" slash "^3.0.0" +delaunator@5: + version "5.0.0" + resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-5.0.0.tgz#60f052b28bd91c9b4566850ebf7756efe821d81b" + integrity sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw== + dependencies: + robust-predicates "^3.0.0" + delay@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" @@ -9300,6 +9961,11 @@ deps-sort@^2.0.1: subarg "^1.0.0" through2 "^2.0.0" +dequal@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" + integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== + des.js@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" @@ -9408,7 +10074,7 @@ diff@^4.0.1: resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -diff@^5.1.0: +diff@^5.0.0, diff@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== @@ -9592,6 +10258,11 @@ domhandler@^5.0.1, domhandler@^5.0.2, domhandler@^5.0.3: dependencies: domelementtype "^2.3.0" +dompurify@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/dompurify/-/dompurify-3.0.3.tgz#4b115d15a091ddc96f232bcef668550a2f6f1430" + integrity sha512-axQ9zieHLnAnHh0sfAamKYiqXMJAVwu+LM/alQ7WDagoWessyWvMSFyW65CqF3owufNu8HBcE4cM2Vflu7YWcQ== + domutils@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" @@ -9763,6 +10434,11 @@ elegant-spinner@^1.0.1: resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e" integrity sha512-B+ZM+RXvRqQaAmkMlO/oSe5nMUOaUnyfGYCEHoR8wrXsZR2mA0XVibsxV1bvTwxdRWah1PkQqso2EzhILGHtEQ== +elkjs@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/elkjs/-/elkjs-0.8.2.tgz#c37763c5a3e24e042e318455e0147c912a7c248e" + integrity sha512-L6uRgvZTH+4OF5NE/MBbzQx/WYpru1xCBE9respNj6qznEewGUIfhzmm7horWWxbNO2M0WckQypGctR8lH79xQ== + elliptic@^6.4.1, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" @@ -9776,6 +10452,11 @@ elliptic@^6.4.1, elliptic@^6.5.2, elliptic@^6.5.3, elliptic@^6.5.4: minimalistic-assert "^1.0.1" minimalistic-crypto-utils "^1.0.1" +email-validator@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/email-validator/-/email-validator-2.0.4.tgz#b8dfaa5d0dae28f1b03c95881d904d4e40bfe7ed" + integrity sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ== + emittery@^0.10.2: version "0.10.2" resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933" @@ -9886,11 +10567,6 @@ entities@^4.2.0, entities@^4.3.0, entities@^4.4.0: resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174" integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA== -entities@~2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" - integrity sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w== - env-paths@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" @@ -10115,11 +10791,28 @@ esbuild-openbsd-64@0.15.18: resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz#79591a90aa3b03e4863f93beec0d2bab2853d0a8" integrity sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ== +esbuild-plugin-copy@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/esbuild-plugin-copy/-/esbuild-plugin-copy-2.1.1.tgz#638308ecfd679e4c7c76b71c62f7dd9a4cc7f901" + integrity sha512-Bk66jpevTcV8KMFzZI1P7MZKZ+uDcrZm2G2egZ2jNIvVnivDpodZI+/KnpL3Jnap0PBdIHU7HwFGB8r+vV5CVw== + dependencies: + chalk "^4.1.2" + chokidar "^3.5.3" + fs-extra "^10.0.1" + globby "^11.0.3" + esbuild-plugin-lit@^0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/esbuild-plugin-lit/-/esbuild-plugin-lit-0.0.10.tgz#919b7794576bca351ca06a0be2a5a3f22dd1f662" integrity sha512-0Vz+TRglIQsV2plsRJw+opO8erTIwXLtKjcFOLOiQDxRvKjFnmlENdB+fL9eLxXQu1HjRZkI9WW0ywWldoymtQ== +esbuild-plugin-replace@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esbuild-plugin-replace/-/esbuild-plugin-replace-1.4.0.tgz#2051eb35e21699e41dcf75630f613bdaa5039be6" + integrity sha512-lP3ZAyzyRa5JXoOd59lJbRKNObtK8pJ/RO7o6vdjwLi71GfbL32NR22ZuS7/cLZkr10/L1lutoLma8E4DLngYg== + dependencies: + magic-string "^0.25.7" + esbuild-sunos-64@0.15.18: version "0.15.18" resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz#fd528aa5da5374b7e1e93d36ef9b07c3dfed2971" @@ -10236,6 +10929,11 @@ escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== +escape-string-regexp@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" + integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== + escodegen@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" @@ -10577,6 +11275,51 @@ estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0: resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== +estree-util-attach-comments@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/estree-util-attach-comments/-/estree-util-attach-comments-2.1.1.tgz#ee44f4ff6890ee7dfb3237ac7810154c94c63f84" + integrity sha512-+5Ba/xGGS6mnwFbXIuQiDPTbuTxuMCooq3arVv7gPZtYpjp+VXH/NkHAP35OOefPhNG/UGqU3vt/LTABwcHX0w== + dependencies: + "@types/estree" "^1.0.0" + +estree-util-build-jsx@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/estree-util-build-jsx/-/estree-util-build-jsx-2.2.2.tgz#32f8a239fb40dc3f3dca75bb5dcf77a831e4e47b" + integrity sha512-m56vOXcOBuaF+Igpb9OPAy7f9w9OIkb5yhjsZuaPm7HoGi4oTOQi0h2+yZ+AtKklYFZ+rPC4n0wYCJCEU1ONqg== + dependencies: + "@types/estree-jsx" "^1.0.0" + estree-util-is-identifier-name "^2.0.0" + estree-walker "^3.0.0" + +estree-util-is-identifier-name@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/estree-util-is-identifier-name/-/estree-util-is-identifier-name-2.1.0.tgz#fb70a432dcb19045e77b05c8e732f1364b4b49b2" + integrity sha512-bEN9VHRyXAUOjkKVQVvArFym08BTWB0aJPppZZr0UNyAqWsLaVfAqP7hbaTJjzHifmB5ebnR8Wm7r7yGN/HonQ== + +estree-util-to-js@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/estree-util-to-js/-/estree-util-to-js-1.2.0.tgz#0f80d42443e3b13bd32f7012fffa6f93603f4a36" + integrity sha512-IzU74r1PK5IMMGZXUVZbmiu4A1uhiPgW5hm1GjcOfr4ZzHaMPpLNJjR7HjXiIOzi25nZDrgFTobHTkV5Q6ITjA== + dependencies: + "@types/estree-jsx" "^1.0.0" + astring "^1.8.0" + source-map "^0.7.0" + +estree-util-value-to-estree@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/estree-util-value-to-estree/-/estree-util-value-to-estree-1.3.0.tgz#1d3125594b4d6680f666644491e7ac1745a3df49" + integrity sha512-Y+ughcF9jSUJvncXwqRageavjrNPAI+1M/L3BI3PyLp1nmgYTGUXU6t5z1Y7OWuThoDdhPME07bQU+d5LxdJqw== + dependencies: + is-plain-obj "^3.0.0" + +estree-util-visit@^1.0.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/estree-util-visit/-/estree-util-visit-1.2.1.tgz#8bc2bc09f25b00827294703835aabee1cc9ec69d" + integrity sha512-xbgqcrkIVbIG+lI/gzbvd9SGTJL4zqJKBFttUl5pP27KhAjtMKbX/mQXJ7qgyXpMgVy/zvpm0xoQQaGL8OloOw== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/unist" "^2.0.0" + estree-walker@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" @@ -10592,6 +11335,13 @@ estree-walker@^2.0.1: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== +estree-walker@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d" + integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g== + dependencies: + "@types/estree" "^1.0.0" + esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" @@ -10640,6 +11390,19 @@ exec-sh@^0.3.2: resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== +execa@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.8.0.tgz#d8d76bbc1b55217ed190fd6dd49d3c774ecfc8da" + integrity sha512-zDWS+Rb1E8BlqqhALSt9kUhss8Qq4nN3iof3gsOdyINksElaPyNBtKUMTR62qhvgVWR0CqCX7sdnKe4MnUbFEA== + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + execa@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" @@ -11171,12 +11934,22 @@ flatted@^3.1.0: resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== +flexsearch@^0.7.21: + version "0.7.31" + resolved "https://registry.yarnpkg.com/flexsearch/-/flexsearch-0.7.31.tgz#065d4110b95083110b9b6c762a71a77cc52e4702" + integrity sha512-XGozTsMPYkm+6b5QL3Z9wQcJjNYxp0CYn3U1gO7dwD6PAqU1SVWZxI9CCg3z+ml3YfqdPnrBehaBrnH2AGKbNA== + fnv1a@^1.0.1: version "1.1.1" resolved "https://registry.yarnpkg.com/fnv1a/-/fnv1a-1.1.1.tgz#4e01d51bae60735d00e54ffde02581fe2e74f465" integrity sha512-S2HviLR9UyNbt8R+vU6YeQtL8RliPwez9DQEVba5MAvN3Od+RSgKUSL2+qveOMt3owIeBukKoRu2enoOck5uag== -follow-redirects@^1.0.0: +focus-visible@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/focus-visible/-/focus-visible-5.2.0.tgz#3a9e41fccf587bd25dcc2ef045508284f0a4d6b3" + integrity sha512-Rwix9pBtC1Nuy5wysTmKy+UjbDJpIfg8eHjw0rjZ1mX4GNLz1Bmd16uDpI3Gk1i70Fgcs8Csg2lPm8HULFg9DQ== + +follow-redirects@^1.0.0, follow-redirects@^1.14.8: version "1.15.2" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== @@ -11462,6 +12235,13 @@ generic-names@^2.0.1: dependencies: loader-utils "^1.1.0" +generic-names@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-4.0.0.tgz#0bd8a2fd23fe8ea16cbd0a279acd69c06933d9a3" + integrity sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A== + dependencies: + loader-utils "^3.2.0" + gensync@^1.0.0-beta.2: version "1.0.0-beta.2" resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" @@ -11528,6 +12308,11 @@ get-port@5.1.1: resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha512-GlhdIUuVakc8SJ6kK0zAFbiGzRFzNnY4jUuEbV9UROo4Y+0Ny4fjvcZFVTeDA4odpFyOQzaw6hXukJSq/f28sQ== + get-stream@^4.0.0, get-stream@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" @@ -11574,6 +12359,21 @@ git-config@0.0.7: dependencies: iniparser "~1.0.5" +git-up@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-7.0.0.tgz#bace30786e36f56ea341b6f69adfd83286337467" + integrity sha512-ONdIrbBCFusq1Oy0sC71F5azx8bVkvtZtMJAsv+a6lz5YAmbNnLD6HAB4gptHZVLPR8S2/kVN6Gab7lryq5+lQ== + dependencies: + is-ssh "^1.4.0" + parse-url "^8.1.0" + +git-url-parse@^13.1.0: + version "13.1.0" + resolved "https://registry.yarnpkg.com/git-url-parse/-/git-url-parse-13.1.0.tgz#07e136b5baa08d59fabdf0e33170de425adf07b4" + integrity sha512-5FvPJP/70WkIprlUZ33bm4UAaFdjcLkJLpWft1BeZKqwR0uhhNGoKwlUaPtVb4LxCSQ++erHapRak9kWGj+FCA== + dependencies: + git-up "^7.0.0" + gitbook-plugin-fontsettings@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/gitbook-plugin-fontsettings/-/gitbook-plugin-fontsettings-2.0.0.tgz#835f900ae3dd111086fe7ed4425ee3de024861ab" @@ -11603,6 +12403,11 @@ github-from-package@0.0.0: resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== +github-slugger@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-2.0.0.tgz#52cf2f9279a21eb6c59dd385b410f0c0adda8f1a" + integrity sha512-IaOQ9puYtjrkq7Y0Ygl9KDZnrf/aiUJYUpVf89y8kyaxbRG7Y1SrX/jaumrv81vc61+kiMempujsM3Yw7w5qcw== + github-slugid@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/github-slugid/-/github-slugid-1.0.1.tgz#bccdd0815bfad69d8a359fa4fd65947d606ec3c0" @@ -11756,7 +12561,7 @@ globalthis@^1.0.1, globalthis@^1.0.3: dependencies: define-properties "^1.1.3" -globby@^11.0.0, globby@^11.0.1, globby@^11.0.4, globby@^11.1.0: +globby@^11.0.0, globby@^11.0.1, globby@^11.0.3, globby@^11.0.4, globby@^11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -11835,6 +12640,11 @@ graceful-fs@4.2.10, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== +graceful-fs@^4.2.11: + version "4.2.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== + grapheme-splitter@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" @@ -11878,6 +12688,16 @@ graphql@15.7.2: resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.7.2.tgz#85ab0eeb83722977151b3feb4d631b5f2ab287ef" integrity sha512-AnnKk7hFQFmU/2I9YSQf3xw44ctnSFCfp3zE0N6W174gqe9fWG/2rKaKxROK7CcI3XtERpjEKFqts8o319Kf7A== +gray-matter@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/gray-matter/-/gray-matter-4.0.3.tgz#e893c064825de73ea1f5f7d88c7a9f7274288798" + integrity sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q== + dependencies: + js-yaml "^3.13.1" + kind-of "^6.0.2" + section-matter "^1.0.0" + strip-bom-string "^1.0.0" + growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -12066,6 +12886,15 @@ hash-base@^3.0.0: readable-stream "^3.6.0" safe-buffer "^5.2.0" +hash-obj@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/hash-obj/-/hash-obj-4.0.0.tgz#3fafeb0b5f17994441dbe04efbdee82e26b74c8c" + integrity sha512-FwO1BUVWkyHasWDW4S8o0ssQXjvyghLV2rfVhnN36b2bbcj45eGiuzdn9XOvOpjV3TKQD7Gm2BWNXdE9V4KKYg== + dependencies: + is-obj "^3.0.0" + sort-keys "^5.0.0" + type-fest "^1.0.2" + hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" @@ -12079,6 +12908,110 @@ hashlru@^2.3.0: resolved "https://registry.yarnpkg.com/hashlru/-/hashlru-2.3.0.tgz#5dc15928b3f6961a2056416bb3a4910216fdfb51" integrity sha512-0cMsjjIC8I+D3M44pOQdsy0OHXGLVz6Z0beRuufhKa0KfaD2wGwAev6jILzXsd3/vpnNQJmWyZtIILqM1N+n5A== +hast-util-from-dom@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/hast-util-from-dom/-/hast-util-from-dom-4.2.0.tgz#25836ddecc3cc0849d32749c2a7aec03e94b59a7" + integrity sha512-t1RJW/OpJbCAJQeKi3Qrj1cAOLA0+av/iPFori112+0X7R3wng+jxLA+kXec8K4szqPRGI8vPxbbpEYvvpwaeQ== + dependencies: + hastscript "^7.0.0" + web-namespaces "^2.0.0" + +hast-util-from-html-isomorphic@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hast-util-from-html-isomorphic/-/hast-util-from-html-isomorphic-1.0.0.tgz#592b2bea880d476665b76ca1cf7d1a94925c80ec" + integrity sha512-Yu480AKeOEN/+l5LA674a+7BmIvtDj24GvOt7MtQWuhzUwlaaRWdEPXAh3Qm5vhuthpAipFb2vTetKXWOjmTvw== + dependencies: + "@types/hast" "^2.0.0" + hast-util-from-dom "^4.0.0" + hast-util-from-html "^1.0.0" + unist-util-remove-position "^4.0.0" + +hast-util-from-html@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/hast-util-from-html/-/hast-util-from-html-1.0.2.tgz#2482fd701b2d8270b912b3909d6fb645d4a346cf" + integrity sha512-LhrTA2gfCbLOGJq2u/asp4kwuG0y6NhWTXiPKP+n0qNukKy7hc10whqqCFfyvIA1Q5U5d0sp9HhNim9gglEH4A== + dependencies: + "@types/hast" "^2.0.0" + hast-util-from-parse5 "^7.0.0" + parse5 "^7.0.0" + vfile "^5.0.0" + vfile-message "^3.0.0" + +hast-util-from-parse5@^7.0.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-7.1.2.tgz#aecfef73e3ceafdfa4550716443e4eb7b02e22b0" + integrity sha512-Nz7FfPBuljzsN3tCQ4kCBKqdNhQE2l0Tn+X1ubgKBPRoiDIu1mL08Cfw4k7q71+Duyaw7DXDN+VTAp4Vh3oCOw== + dependencies: + "@types/hast" "^2.0.0" + "@types/unist" "^2.0.0" + hastscript "^7.0.0" + property-information "^6.0.0" + vfile "^5.0.0" + vfile-location "^4.0.0" + web-namespaces "^2.0.0" + +hast-util-is-element@^2.0.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/hast-util-is-element/-/hast-util-is-element-2.1.3.tgz#cd3279cfefb70da6d45496068f020742256fc471" + integrity sha512-O1bKah6mhgEq2WtVMk+Ta5K7pPMqsBBlmzysLdcwKVrqzZQ0CHqUPiIVspNhAG1rvxpvJjtGee17XfauZYKqVA== + dependencies: + "@types/hast" "^2.0.0" + "@types/unist" "^2.0.0" + +hast-util-parse-selector@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-3.1.1.tgz#25ab00ae9e75cbc62cf7a901f68a247eade659e2" + integrity sha512-jdlwBjEexy1oGz0aJ2f4GKMaVKkA9jwjr4MjAAI22E5fM/TXVZHuS5OpONtdeIkRKqAaryQ2E9xNQxijoThSZA== + dependencies: + "@types/hast" "^2.0.0" + +hast-util-to-estree@^2.0.0: + version "2.3.3" + resolved "https://registry.yarnpkg.com/hast-util-to-estree/-/hast-util-to-estree-2.3.3.tgz#da60142ffe19a6296923ec222aba73339c8bf470" + integrity sha512-ihhPIUPxN0v0w6M5+IiAZZrn0LH2uZomeWwhn7uP7avZC6TE7lIiEh2yBMPr5+zi1aUCXq6VoYRgs2Bw9xmycQ== + dependencies: + "@types/estree" "^1.0.0" + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^2.0.0" + "@types/unist" "^2.0.0" + comma-separated-tokens "^2.0.0" + estree-util-attach-comments "^2.0.0" + estree-util-is-identifier-name "^2.0.0" + hast-util-whitespace "^2.0.0" + mdast-util-mdx-expression "^1.0.0" + mdast-util-mdxjs-esm "^1.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + style-to-object "^0.4.1" + unist-util-position "^4.0.0" + zwitch "^2.0.0" + +hast-util-to-text@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/hast-util-to-text/-/hast-util-to-text-3.1.2.tgz#ecf30c47141f41e91a5d32d0b1e1859fd2ac04f2" + integrity sha512-tcllLfp23dJJ+ju5wCCZHVpzsQQ43+moJbqVX3jNWPB7z/KFC4FyZD6R7y94cHL6MQ33YtMZL8Z0aIXXI4XFTw== + dependencies: + "@types/hast" "^2.0.0" + "@types/unist" "^2.0.0" + hast-util-is-element "^2.0.0" + unist-util-find-after "^4.0.0" + +hast-util-whitespace@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/hast-util-whitespace/-/hast-util-whitespace-2.0.1.tgz#0ec64e257e6fc216c7d14c8a1b74d27d650b4557" + integrity sha512-nAxA0v8+vXSBDt3AnRUNjyRIQ0rD+ntpbAp4LnPkumc5M9yUbSMa4XDU9Q6etY4f1Wp4bNgvc1yjiZtsTTrSng== + +hastscript@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-7.2.0.tgz#0eafb7afb153d047077fa2a833dc9b7ec604d10b" + integrity sha512-TtYPq24IldU8iKoJQqvZOuhi5CyCQRAbvDOX0x1eW6rsHSxa/1i2CCiptNTotGHJ3VoHRGmqiv6/D3q113ikkw== + dependencies: + "@types/hast" "^2.0.0" + comma-separated-tokens "^2.0.0" + hast-util-parse-selector "^3.0.0" + property-information "^6.0.0" + space-separated-tokens "^2.0.0" + hat@^0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/hat/-/hat-0.0.3.tgz#bb014a9e64b3788aed8005917413d4ff3d502d8a" @@ -12101,6 +13034,11 @@ header-case@^2.0.4: version "1.1.0" resolved "https://github.com/paulkernfeld/node-headless/tarball/master#0ded78103ce64e40d1ca65a57b95faebaa664dd1" +heap@^0.2.6: + version "0.2.7" + resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.7.tgz#1e6adf711d3f27ce35a81fe3b7bd576c2260a8fc" + integrity sha512-2bsegYkkHO+h/9MGbn6KWcE45cHZgPANo5LXF7EvWdT0yT2EguSVO1nDgU5c8+ZOPwp2vMNa7YFsJhVcDR9Sdg== + hex-color-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" @@ -12470,7 +13408,7 @@ iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@^0.6.2, iconv-lite@^0.6.3: +iconv-lite@0.6, iconv-lite@^0.6.2, iconv-lite@^0.6.3: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== @@ -12670,6 +13608,11 @@ inline-source-map@~0.6.0: dependencies: source-map "~0.5.3" +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + inquirer-autosubmit-prompt@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/inquirer-autosubmit-prompt/-/inquirer-autosubmit-prompt-0.2.0.tgz#a10f952af4f7bac9c43010e3e9e0891d7e8d15a1" @@ -12812,6 +13755,16 @@ internal-slot@^1.0.3, internal-slot@^1.0.4, internal-slot@^1.0.5: has "^1.0.3" side-channel "^1.0.4" +"internmap@1 - 2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" + integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== + +intersection-observer@^0.12.2: + version "0.12.2" + resolved "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.12.2.tgz#4a45349cc0cd91916682b1f44c28d7ec737dc375" + integrity sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg== + into-stream@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-6.0.0.tgz#4bfc1244c0128224e18b8870e85b2de8e66c6702" @@ -13396,6 +14349,11 @@ is-alphabetical@^1.0.0: resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== +is-alphabetical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-2.0.1.tgz#01072053ea7c1036df3c7d19a6daaec7f19e789b" + integrity sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ== + is-alphanumerical@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" @@ -13404,6 +14362,14 @@ is-alphanumerical@^1.0.0: is-alphabetical "^1.0.0" is-decimal "^1.0.0" +is-alphanumerical@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-2.0.1.tgz#7c03fbe96e3e931113e57f964b0a368cc2dfd875" + integrity sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw== + dependencies: + is-alphabetical "^2.0.0" + is-decimal "^2.0.0" + is-arguments@^1.0.4, is-arguments@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" @@ -13453,7 +14419,7 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-buffer@^1.1.0, is-buffer@^1.1.5: +is-buffer@^1.1.0, is-buffer@^1.1.5, is-buffer@~1.1.6: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== @@ -13541,6 +14507,11 @@ is-decimal@^1.0.0: resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== +is-decimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-2.0.1.tgz#9469d2dc190d0214fd87d78b78caecc0cc14eef7" + integrity sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A== + is-descriptor@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" @@ -13637,6 +14608,11 @@ is-hexadecimal@^1.0.0: resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== +is-hexadecimal@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-2.0.1.tgz#86b5bf668fca307498d319dfc03289d781a90027" + integrity sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg== + is-installed-globally@^0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" @@ -13743,6 +14719,11 @@ is-obj@^2.0.0: resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== +is-obj@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-3.0.0.tgz#b0889f1f9f8cb87e87df53a8d1230a2250f8b9be" + integrity sha512-IlsXEHOjtKhpN8r/tRFj2nDyTmHvcfNeu/nrRIcXE17ROeatXchkojffa1SpdqW4cr/Fj6QkEf/Gn4zf6KKvEQ== + is-observable@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-observable/-/is-observable-1.1.0.tgz#b3e986c8f44de950867cab5403f5a3465005975e" @@ -13804,6 +14785,13 @@ is-reference@^1.1.2, is-reference@^1.2.1: dependencies: "@types/estree" "*" +is-reference@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-3.0.1.tgz#d400f4260f7e55733955e60d361d827eb4d3b831" + integrity sha512-baJJdQLiYaJdvFbJqXrcGv3WU3QCzBlUcI5QhbesIm6/xPsvmO+2CDoi/GMOFBQEQm+PXkwOPrp9KK5ozZsp2w== + dependencies: + "@types/estree" "*" + is-regex@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" @@ -13851,6 +14839,13 @@ is-shared-array-buffer@^1.0.2: dependencies: call-bind "^1.0.2" +is-ssh@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.4.0.tgz#4f8220601d2839d8fa624b3106f8e8884f01b8b2" + integrity sha512-x7+VxdxOdlV3CYpjvRLBv5Lo9OJerlYanjwFrPR9fuGPjCiNiCzFgAWpiLAohSbsnH4ZAys3SBh+hq5rJosxUQ== + dependencies: + protocols "^2.0.1" + is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -15328,7 +16323,7 @@ js-tokens@^3.0.2: resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" integrity sha512-RjTcuD4xjtthQkaWH7dFlH85L+QaVtSoOyGdZ3g6HFhS9dFNDfLyqgm2NFe2X6cQpeFmt0452FJjFG5UameExg== -js-yaml@4.1.0, js-yaml@^4.1.0: +js-yaml@4.1.0, js-yaml@^4.0.0, js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== @@ -15343,13 +16338,6 @@ js-yaml@^3.10.0, js-yaml@^3.13.0, js-yaml@^3.13.1, js-yaml@^3.6.1: argparse "^1.0.7" esprima "^4.0.0" -js2xmlparser@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/js2xmlparser/-/js2xmlparser-4.0.2.tgz#2a1fdf01e90585ef2ae872a01bc169c6a8d5e60a" - integrity sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA== - dependencies: - xmlcreate "^2.0.4" - jsbn@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040" @@ -15360,27 +16348,6 @@ jsbn@~0.1.0: resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg== -jsdoc@^3.6.11: - version "3.6.11" - resolved "https://registry.yarnpkg.com/jsdoc/-/jsdoc-3.6.11.tgz#8bbb5747e6f579f141a5238cbad4e95e004458ce" - integrity sha512-8UCU0TYeIYD9KeLzEcAu2q8N/mx9O3phAGl32nmHlE0LpaJL71mMkP4d+QE5zWfNt50qheHtOZ0qoxVrsX5TUg== - dependencies: - "@babel/parser" "^7.9.4" - "@types/markdown-it" "^12.2.3" - bluebird "^3.7.2" - catharsis "^0.9.0" - escape-string-regexp "^2.0.0" - js2xmlparser "^4.0.2" - klaw "^3.0.0" - markdown-it "^12.3.2" - markdown-it-anchor "^8.4.1" - marked "^4.0.10" - mkdirp "^1.0.4" - requizzle "^0.2.3" - strip-json-comments "^3.1.0" - taffydb "2.6.2" - underscore "~1.13.2" - jsdom@^16.4.0, jsdom@^16.6.0: version "16.7.0" resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" @@ -15617,6 +16584,13 @@ k-bucket@^5.1.0: dependencies: randombytes "^2.1.0" +katex@^0.16.0, katex@^0.16.7: + version "0.16.7" + resolved "https://registry.yarnpkg.com/katex/-/katex-0.16.7.tgz#36be1d4ed96e8afdc5863407e70f8fb250aeafd5" + integrity sha512-Xk9C6oGKRwJTfqfIbtr0Kes9OSv6IFsuhFGc7tW4urlpMJtuh+7YhzU6YEG9n8gmWKcMAFzkp7nr+r69kV0zrA== + dependencies: + commander "^8.3.0" + key-encoder@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/key-encoder/-/key-encoder-2.0.3.tgz#77073bb48ff1fe2173bb2088b83b91152c8fa4ba" @@ -15641,6 +16615,11 @@ keyv@^4.0.0, keyv@^4.5.2: dependencies: json-buffer "3.0.1" +khroma@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/khroma/-/khroma-2.0.0.tgz#7577de98aed9f36c7a474c4d453d94c0d6c6588b" + integrity sha512-2J8rDNlQWbtiNYThZRvmMv5yt44ZakX+Tz5ZIp/mN1pt4snn+m030Va5Z4v8xA0cQFDXBwO/8i42xL4QPsVk3g== + kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" @@ -15679,19 +16658,12 @@ klaw@^1.0.0: optionalDependencies: graceful-fs "^4.1.9" -klaw@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/klaw/-/klaw-3.0.0.tgz#b11bec9cf2492f06756d6e809ab73a2910259146" - integrity sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g== - dependencies: - graceful-fs "^4.1.9" - kleur@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -kleur@^4.1.4: +kleur@^4.0.3, kleur@^4.1.4: version "4.1.5" resolved "https://registry.yarnpkg.com/kleur/-/kleur-4.1.5.tgz#95106101795f7050c6c650f350c683febddb1780" integrity sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ== @@ -15753,6 +16725,16 @@ launch-editor@^2.6.0: picocolors "^1.0.0" shell-quote "^1.7.3" +layout-base@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-1.0.2.tgz#1291e296883c322a9dd4c5dd82063721b53e26e2" + integrity sha512-8h2oVEZNktL4BH2JCOI90iD1yXwL6iNW7KcCKT2QZgQJR2vbqDsldCTPRU9NifTCqHZci57XvQQ15YTu+sTYPg== + +layout-base@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/layout-base/-/layout-base-2.0.1.tgz#d0337913586c90f9c2c075292069f5c2da5dd285" + integrity sha512-dp3s92+uNI1hWIpPGH3jK2kxE2lMjdXdr+DH8ynZHpd6PUlH6x6cbuXnoMmiNumznqaNO31xu9e79F0uuZ0JFg== + level-supports@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/level-supports/-/level-supports-4.0.1.tgz#431546f9d81f10ff0fea0e74533a0e875c08c66a" @@ -15890,13 +16872,6 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -linkify-it@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/linkify-it/-/linkify-it-3.0.3.tgz#a98baf44ce45a550efb4d49c769d07524cc2fa2e" - integrity sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ== - dependencies: - uc.micro "^1.0.1" - listenercount@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/listenercount/-/listenercount-1.0.1.tgz#84c8a72ab59c4725321480c975e6508342e70937" @@ -16182,6 +17157,11 @@ longest-streak@^2.0.0: resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== +longest-streak@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-3.1.0.tgz#62fa67cd958742a1574af9f39866364102d90cd4" + integrity sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g== + loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" @@ -16331,21 +17311,10 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -markdown-it-anchor@^8.4.1: - version "8.6.7" - resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz#ee6926daf3ad1ed5e4e3968b1740eef1c6399634" - integrity sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA== - -markdown-it@^12.3.2: - version "12.3.2" - resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-12.3.2.tgz#bf92ac92283fe983fe4de8ff8abfb5ad72cd0c90" - integrity sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg== - dependencies: - argparse "^2.0.1" - entities "~2.1.0" - linkify-it "^3.0.1" - mdurl "^1.0.1" - uc.micro "^1.0.5" +markdown-extensions@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/markdown-extensions/-/markdown-extensions-1.1.1.tgz#fea03b539faeaee9b4ef02a3769b455b189f7fc3" + integrity sha512-WWC0ZuMzCyDHYCasEGs4IPvLyTGftYwh6wIEOULOF0HXcqZlhwRzrK0w2VUlxWA98xnvb/jszw4ZSkJ6ADpM6Q== markdown-table@^2.0.0: version "2.0.0" @@ -16354,10 +17323,23 @@ markdown-table@^2.0.0: dependencies: repeat-string "^1.0.0" -marked@^4.0.10, marked@^4.2.12: - version "4.2.12" - resolved "https://registry.yarnpkg.com/marked/-/marked-4.2.12.tgz#d69a64e21d71b06250da995dcd065c11083bebb5" - integrity sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw== +markdown-table@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-3.0.3.tgz#e6331d30e493127e031dd385488b5bd326e4a6bd" + integrity sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw== + +marked@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3" + integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== + +match-sorter@^6.3.1: + version "6.3.1" + resolved "https://registry.yarnpkg.com/match-sorter/-/match-sorter-6.3.1.tgz#98cc37fda756093424ddf3cbc62bfe9c75b92bda" + integrity sha512-mxybbo3pPNuA+ZuCUhm5bwNkXrJTbsk5VWbR5wiwz/GC6LIiegBGn2w3O08UG/jdbYLinw51fSQ5xNU1U3MgBw== + dependencies: + "@babel/runtime" "^7.12.5" + remove-accents "0.4.2" matcher@^3.0.0: version "3.0.0" @@ -16375,6 +17357,24 @@ md5.js@^1.3.4: inherits "^2.0.1" safe-buffer "^5.1.2" +md5@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/md5/-/md5-2.3.0.tgz#c3da9a6aae3a30b46b7b0c349b87b110dc3bda4f" + integrity sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g== + dependencies: + charenc "0.0.2" + crypt "0.0.2" + is-buffer "~1.1.6" + +mdast-util-definitions@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz#9910abb60ac5d7115d6819b57ae0bcef07a3f7a7" + integrity sha512-8SVPMuHqlPME/z3gqVwWY4zVXn8lqKv/pAhC57FuJ40ImXyBpmO5ukh98zB2v7Blql2FiHjHv9LVztSIqjY+MA== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + unist-util-visit "^4.0.0" + mdast-util-find-and-replace@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-1.1.1.tgz#b7db1e873f96f66588c321f1363069abf607d1b5" @@ -16384,6 +17384,16 @@ mdast-util-find-and-replace@^1.1.0: unist-util-is "^4.0.0" unist-util-visit-parents "^3.0.0" +mdast-util-find-and-replace@^2.0.0: + version "2.2.2" + resolved "https://registry.yarnpkg.com/mdast-util-find-and-replace/-/mdast-util-find-and-replace-2.2.2.tgz#cc2b774f7f3630da4bd592f61966fecade8b99b1" + integrity sha512-MTtdFRz/eMDHXzeK6W3dO7mXUlF82Gom4y0oOgvHhh/HXZAGvIQDUvQ0SuUx+j2tv44b8xTHOm8K/9OoRFnXKw== + dependencies: + "@types/mdast" "^3.0.0" + escape-string-regexp "^5.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.0.0" + mdast-util-footnote@^0.1.0: version "0.1.7" resolved "https://registry.yarnpkg.com/mdast-util-footnote/-/mdast-util-footnote-0.1.7.tgz#4b226caeab4613a3362c144c94af0fdd6f7e0ef0" @@ -16403,6 +17413,24 @@ mdast-util-from-markdown@^0.8.0: parse-entities "^2.0.0" unist-util-stringify-position "^2.0.0" +mdast-util-from-markdown@^1.0.0, mdast-util-from-markdown@^1.1.0, mdast-util-from-markdown@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mdast-util-from-markdown/-/mdast-util-from-markdown-1.3.1.tgz#9421a5a247f10d31d2faed2a30df5ec89ceafcf0" + integrity sha512-4xTO/M8c82qBcnQc1tgpNtubGUW/Y1tBQ1B0i5CtSoelOLKFYlElIr3bvgREYYO5iRqbMY1YuqZng0GVOI8Qww== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + decode-named-character-reference "^1.0.0" + mdast-util-to-string "^3.1.0" + micromark "^3.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-decode-string "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + unist-util-stringify-position "^3.0.0" + uvu "^0.5.0" + mdast-util-frontmatter@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/mdast-util-frontmatter/-/mdast-util-frontmatter-0.2.0.tgz#8bd5cd55e236c03e204a036f7372ebe9e6748240" @@ -16419,6 +17447,25 @@ mdast-util-gfm-autolink-literal@^0.1.0, mdast-util-gfm-autolink-literal@^0.1.3: mdast-util-find-and-replace "^1.1.0" micromark "^2.11.3" +mdast-util-gfm-autolink-literal@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.3.tgz#67a13abe813d7eba350453a5333ae1bc0ec05c06" + integrity sha512-My8KJ57FYEy2W2LyNom4n3E7hKTuQk/0SES0u16tjA9Z3oFkF4RrC/hPAPgjlSpezsOvI8ObcXcElo92wn5IGA== + dependencies: + "@types/mdast" "^3.0.0" + ccount "^2.0.0" + mdast-util-find-and-replace "^2.0.0" + micromark-util-character "^1.0.0" + +mdast-util-gfm-footnote@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.2.tgz#ce5e49b639c44de68d5bf5399877a14d5020424e" + integrity sha512-56D19KOGbE00uKVj3sgIykpwKL179QsVFwx/DCW0u/0+URsryacI4MAdNJl0dh+u2PSsD9FtxPFbHCzJ78qJFQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" + micromark-util-normalize-identifier "^1.0.0" + mdast-util-gfm-strikethrough@^0.2.0: version "0.2.3" resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-0.2.3.tgz#45eea337b7fff0755a291844fbea79996c322890" @@ -16426,6 +17473,14 @@ mdast-util-gfm-strikethrough@^0.2.0: dependencies: mdast-util-to-markdown "^0.6.0" +mdast-util-gfm-strikethrough@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.3.tgz#5470eb105b483f7746b8805b9b989342085795b7" + integrity sha512-DAPhYzTYrRcXdMjUtUjKvW9z/FNAMTdU0ORyMcbmkwYNbKocDpdk+PX1L1dQgOID/+vVs1uBQ7ElrBQfZ0cuiQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" + mdast-util-gfm-table@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-0.1.6.tgz#af05aeadc8e5ee004eeddfb324b2ad8c029b6ecf" @@ -16434,6 +17489,16 @@ mdast-util-gfm-table@^0.1.0: markdown-table "^2.0.0" mdast-util-to-markdown "~0.6.0" +mdast-util-gfm-table@^1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.7.tgz#3552153a146379f0f9c4c1101b071d70bbed1a46" + integrity sha512-jjcpmNnQvrmN5Vx7y7lEc2iIOEytYv7rTvu+MeyAsSHTASGCCRA79Igg2uKssgOs1i1po8s3plW0sTu1wkkLGg== + dependencies: + "@types/mdast" "^3.0.0" + markdown-table "^3.0.0" + mdast-util-from-markdown "^1.0.0" + mdast-util-to-markdown "^1.3.0" + mdast-util-gfm-task-list-item@^0.1.0: version "0.1.6" resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-0.1.6.tgz#70c885e6b9f543ddd7e6b41f9703ee55b084af10" @@ -16441,6 +17506,14 @@ mdast-util-gfm-task-list-item@^0.1.0: dependencies: mdast-util-to-markdown "~0.6.0" +mdast-util-gfm-task-list-item@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.2.tgz#b280fcf3b7be6fd0cc012bbe67a59831eb34097b" + integrity sha512-PFTA1gzfp1B1UaiJVyhJZA1rm0+Tzn690frc/L8vNX1Jop4STZgOE6bxUhnzdVSB+vm2GU1tIsuQcA9bxTQpMQ== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-to-markdown "^1.3.0" + mdast-util-gfm@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-0.1.2.tgz#8ecddafe57d266540f6881f5c57ff19725bd351c" @@ -16452,6 +17525,101 @@ mdast-util-gfm@^0.1.0: mdast-util-gfm-task-list-item "^0.1.0" mdast-util-to-markdown "^0.6.1" +mdast-util-gfm@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-gfm/-/mdast-util-gfm-2.0.2.tgz#e92f4d8717d74bdba6de57ed21cc8b9552e2d0b6" + integrity sha512-qvZ608nBppZ4icQlhQQIAdc6S3Ffj9RGmzwUKUWuEICFnd1LVkN3EktF7ZHAgfcEdvZB5owU9tQgt99e2TlLjg== + dependencies: + mdast-util-from-markdown "^1.0.0" + mdast-util-gfm-autolink-literal "^1.0.0" + mdast-util-gfm-footnote "^1.0.0" + mdast-util-gfm-strikethrough "^1.0.0" + mdast-util-gfm-table "^1.0.0" + mdast-util-gfm-task-list-item "^1.0.0" + mdast-util-to-markdown "^1.0.0" + +mdast-util-math@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/mdast-util-math/-/mdast-util-math-2.0.2.tgz#19a06a81f31643f48cc805e7c31edb7ce739242c" + integrity sha512-8gmkKVp9v6+Tgjtq6SYx9kGPpTf6FVYRa53/DLh479aldR9AyP48qeVOgNZ5X7QUK7nOy4yw7vg6mbiGcs9jWQ== + dependencies: + "@types/mdast" "^3.0.0" + longest-streak "^3.0.0" + mdast-util-to-markdown "^1.3.0" + +mdast-util-mdx-expression@^1.0.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.3.2.tgz#d027789e67524d541d6de543f36d51ae2586f220" + integrity sha512-xIPmR5ReJDu/DHH1OoIT1HkuybIfRGYRywC+gJtI7qHjCJp/M9jrmBEJW22O8lskDWm562BX2W8TiAwRTb0rKA== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-from-markdown "^1.0.0" + mdast-util-to-markdown "^1.0.0" + +mdast-util-mdx-jsx@^2.0.0: + version "2.1.4" + resolved "https://registry.yarnpkg.com/mdast-util-mdx-jsx/-/mdast-util-mdx-jsx-2.1.4.tgz#7c1f07f10751a78963cfabee38017cbc8b7786d1" + integrity sha512-DtMn9CmVhVzZx3f+optVDF8yFgQVt7FghCRNdlIaS3X5Bnym3hZwPbg/XW86vdpKjlc1PVj26SpnLGeJBXD3JA== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + ccount "^2.0.0" + mdast-util-from-markdown "^1.1.0" + mdast-util-to-markdown "^1.3.0" + parse-entities "^4.0.0" + stringify-entities "^4.0.0" + unist-util-remove-position "^4.0.0" + unist-util-stringify-position "^3.0.0" + vfile-message "^3.0.0" + +mdast-util-mdx@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-mdx/-/mdast-util-mdx-2.0.1.tgz#49b6e70819b99bb615d7223c088d295e53bb810f" + integrity sha512-38w5y+r8nyKlGvNjSEqWrhG0w5PmnRA+wnBvm+ulYCct7nsGYhFVb0lljS9bQav4psDAS1eGkP2LMVcZBi/aqw== + dependencies: + mdast-util-from-markdown "^1.0.0" + mdast-util-mdx-expression "^1.0.0" + mdast-util-mdx-jsx "^2.0.0" + mdast-util-mdxjs-esm "^1.0.0" + mdast-util-to-markdown "^1.0.0" + +mdast-util-mdxjs-esm@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mdast-util-mdxjs-esm/-/mdast-util-mdxjs-esm-1.3.1.tgz#645d02cd607a227b49721d146fd81796b2e2d15b" + integrity sha512-SXqglS0HrEvSdUEfoXFtcg7DRl7S2cwOXc7jkuusG472Mmjag34DUDeOJUZtl+BVnyeO1frIgVpHlNRWc2gk/w== + dependencies: + "@types/estree-jsx" "^1.0.0" + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-from-markdown "^1.0.0" + mdast-util-to-markdown "^1.0.0" + +mdast-util-phrasing@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-phrasing/-/mdast-util-phrasing-3.0.1.tgz#c7c21d0d435d7fb90956038f02e8702781f95463" + integrity sha512-WmI1gTXUBJo4/ZmSk79Wcb2HcjPJBzM1nlI/OUWA8yk2X9ik3ffNbBGsU+09BFmXaL1IBb9fiuvq6/KMiNycSg== + dependencies: + "@types/mdast" "^3.0.0" + unist-util-is "^5.0.0" + +mdast-util-to-hast@^12.1.0: + version "12.3.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-12.3.0.tgz#045d2825fb04374e59970f5b3f279b5700f6fb49" + integrity sha512-pits93r8PhnIoU4Vy9bjW39M2jJ6/tdHyja9rrot9uujkN7UTU9SDnE6WNJz/IGyQk3XHX6yNNtrBH6cQzm8Hw== + dependencies: + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-definitions "^5.0.0" + micromark-util-sanitize-uri "^1.1.0" + trim-lines "^3.0.0" + unist-util-generated "^2.0.0" + unist-util-position "^4.0.0" + unist-util-visit "^4.0.0" + mdast-util-to-markdown@^0.6.0, mdast-util-to-markdown@^0.6.1, mdast-util-to-markdown@~0.6.0: version "0.6.5" resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-0.6.5.tgz#b33f67ca820d69e6cc527a93d4039249b504bebe" @@ -16464,11 +17632,32 @@ mdast-util-to-markdown@^0.6.0, mdast-util-to-markdown@^0.6.1, mdast-util-to-mark repeat-string "^1.0.0" zwitch "^1.0.0" +mdast-util-to-markdown@^1.0.0, mdast-util-to-markdown@^1.3.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-markdown/-/mdast-util-to-markdown-1.5.0.tgz#c13343cb3fc98621911d33b5cd42e7d0731171c6" + integrity sha512-bbv7TPv/WC49thZPg3jXuqzuvI45IL2EVAr/KxF0BSdHsU0ceFHOmwQn6evxAh1GaoK/6GQ1wp4R4oW2+LFL/A== + dependencies: + "@types/mdast" "^3.0.0" + "@types/unist" "^2.0.0" + longest-streak "^3.0.0" + mdast-util-phrasing "^3.0.0" + mdast-util-to-string "^3.0.0" + micromark-util-decode-string "^1.0.0" + unist-util-visit "^4.0.0" + zwitch "^2.0.0" + mdast-util-to-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-2.0.0.tgz#b8cfe6a713e1091cb5b728fc48885a4767f8b97b" integrity sha512-AW4DRS3QbBayY/jJmD8437V1Gombjf8RSOUCMFBuo5iHi58AGEgVCKQ+ezHkZZDpAQS75hcBMpLqjpJTjtUL7w== +mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-string/-/mdast-util-to-string-3.2.0.tgz#66f7bb6324756741c5f47a53557f0cbf16b6f789" + integrity sha512-V4Zn/ncyN1QNSqSBxTrMOLpjr+IKdHl2v3KVLoWmDPscP4r9GcCi71gjgvUV1SFSKh92AjAG4peFuBl2/YgCJg== + dependencies: + "@types/mdast" "^3.0.0" + mdn-data@2.0.14: version "2.0.14" resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" @@ -16479,11 +17668,6 @@ mdn-data@2.0.4: resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== -mdurl@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" - integrity sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g== - media-typer@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" @@ -16585,11 +17769,56 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== +mermaid@10.2.1: + version "10.2.1" + resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-10.2.1.tgz#5183c956a64e1ed9cf0122cec6c6cb4900521966" + integrity sha512-gziwXLuAidRxPJxcA0LqPhToirGZ2J2gD+UrDEtGNeKb98BtcQde28UUcCUCmNplkQOwE7oynrzKcMe9i29AMw== + dependencies: + "@braintree/sanitize-url" "^6.0.2" + cytoscape "^3.23.0" + cytoscape-cose-bilkent "^4.1.0" + cytoscape-fcose "^2.1.0" + d3 "^7.4.0" + dagre-d3-es "7.0.10" + dayjs "^1.11.7" + dompurify "3.0.3" + elkjs "^0.8.2" + khroma "^2.0.0" + lodash-es "^4.17.21" + mdast-util-from-markdown "^1.3.0" + non-layered-tidy-tree-layout "^2.0.2" + stylis "^4.1.3" + ts-dedent "^2.2.0" + uuid "^9.0.0" + web-worker "^1.2.0" + methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w== +micromark-core-commonmark@^1.0.0, micromark-core-commonmark@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-core-commonmark/-/micromark-core-commonmark-1.1.0.tgz#1386628df59946b2d39fb2edfd10f3e8e0a75bb8" + integrity sha512-BgHO1aRbolh2hcrzL2d1La37V0Aoz73ymF8rAcKnohLy93titmv62E0gP8Hrx9PKcKrqCZ1BbLGbP3bEhoXYlw== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-factory-destination "^1.0.0" + micromark-factory-label "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-factory-title "^1.0.0" + micromark-factory-whitespace "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-html-tag-name "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + micromark-extension-footnote@^0.3.0: version "0.3.2" resolved "https://registry.yarnpkg.com/micromark-extension-footnote/-/micromark-extension-footnote-0.3.2.tgz#129b74ef4920ce96719b2c06102ee7abb2b88a20" @@ -16604,6 +17833,16 @@ micromark-extension-frontmatter@^0.2.0: dependencies: fault "^1.0.0" +micromark-extension-gfm-autolink-literal@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.5.tgz#5853f0e579bbd8ef9e39a7c0f0f27c5a063a66e7" + integrity sha512-z3wJSLrDf8kRDOh2qBtoTRD53vJ+CWIyo7uyZuxf/JAbNJjiHsOpG1y5wxk8drtv3ETAHutCu6N3thkOOgueWg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + micromark-extension-gfm-autolink-literal@~0.5.0: version "0.5.7" resolved "https://registry.yarnpkg.com/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-0.5.7.tgz#53866c1f0c7ef940ae7ca1f72c6faef8fed9f204" @@ -16611,6 +17850,32 @@ micromark-extension-gfm-autolink-literal@~0.5.0: dependencies: micromark "~2.11.3" +micromark-extension-gfm-footnote@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.1.2.tgz#05e13034d68f95ca53c99679040bc88a6f92fe2e" + integrity sha512-Yxn7z7SxgyGWRNa4wzf8AhYYWNrwl5q1Z8ii+CSTTIqVkmGZF1CElX2JI8g5yGoM3GAman9/PVCUFUSJ0kB/8Q== + dependencies: + micromark-core-commonmark "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-strikethrough@^1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.7.tgz#c8212c9a616fa3bf47cb5c711da77f4fdc2f80af" + integrity sha512-sX0FawVE1o3abGk3vRjOH50L5TTLr3b5XMqnP9YDRb34M0v5OoZhG+OHFz1OffZ9dlwgpTBKaT4XW/AsUVnSDw== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-classify-character "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + micromark-extension-gfm-strikethrough@~0.6.5: version "0.6.5" resolved "https://registry.yarnpkg.com/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-0.6.5.tgz#96cb83356ff87bf31670eefb7ad7bba73e6514d1" @@ -16618,6 +17883,17 @@ micromark-extension-gfm-strikethrough@~0.6.5: dependencies: micromark "~2.11.0" +micromark-extension-gfm-table@^1.0.0: + version "1.0.7" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.7.tgz#dcb46074b0c6254c3fc9cc1f6f5002c162968008" + integrity sha512-3ZORTHtcSnMQEKtAOsBQ9/oHp9096pI/UvdPtN7ehKvrmZZ2+bbWhi0ln+I9drmwXMt5boocn6OlwQzNXeVeqw== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + micromark-extension-gfm-table@~0.4.0: version "0.4.3" resolved "https://registry.yarnpkg.com/micromark-extension-gfm-table/-/micromark-extension-gfm-table-0.4.3.tgz#4d49f1ce0ca84996c853880b9446698947f1802b" @@ -16625,29 +17901,317 @@ micromark-extension-gfm-table@~0.4.0: dependencies: micromark "~2.11.0" +micromark-extension-gfm-tagfilter@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.2.tgz#aa7c4dd92dabbcb80f313ebaaa8eb3dac05f13a7" + integrity sha512-5XWB9GbAUSHTn8VPU8/1DBXMuKYT5uOgEjJb8gN3mW0PNW5OPHpSdojoqf+iq1xo7vWzw/P8bAHY0n6ijpXF7g== + dependencies: + micromark-util-types "^1.0.0" + micromark-extension-gfm-tagfilter@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-0.3.0.tgz#d9f26a65adee984c9ccdd7e182220493562841ad" integrity sha512-9GU0xBatryXifL//FJH+tAZ6i240xQuFrSL7mYi8f4oZSbc+NvXjkrHemeYP0+L4ZUT+Ptz3b95zhUZnMtoi/Q== -micromark-extension-gfm-task-list-item@~0.3.0: - version "0.3.3" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz#d90c755f2533ed55a718129cee11257f136283b8" - integrity sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ== +micromark-extension-gfm-task-list-item@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.5.tgz#b52ce498dc4c69b6a9975abafc18f275b9dde9f4" + integrity sha512-RMFXl2uQ0pNQy6Lun2YBYT9g9INXtWJULgbt01D/x8/6yJ2qpKyzdZD3pi6UIkzF++Da49xAelVKUeUMqd5eIQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-gfm-task-list-item@~0.3.0: + version "0.3.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-0.3.3.tgz#d90c755f2533ed55a718129cee11257f136283b8" + integrity sha512-0zvM5iSLKrc/NQl84pZSjGo66aTGd57C1idmlWmE87lkMcXrTxg1uXa/nXomxJytoje9trP0NDLvw4bZ/Z/XCQ== + dependencies: + micromark "~2.11.0" + +micromark-extension-gfm@^0.3.0: + version "0.3.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-0.3.3.tgz#36d1a4c089ca8bdfd978c9bd2bf1a0cb24e2acfe" + integrity sha512-oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A== + dependencies: + micromark "~2.11.0" + micromark-extension-gfm-autolink-literal "~0.5.0" + micromark-extension-gfm-strikethrough "~0.6.5" + micromark-extension-gfm-table "~0.4.0" + micromark-extension-gfm-tagfilter "~0.3.0" + micromark-extension-gfm-task-list-item "~0.3.0" + +micromark-extension-gfm@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-2.0.3.tgz#e517e8579949a5024a493e49204e884aa74f5acf" + integrity sha512-vb9OoHqrhCmbRidQv/2+Bc6pkP0FrtlhurxZofvOEy5o8RtuuvTq+RQ1Vw5ZDNrVraQZu3HixESqbG+0iKk/MQ== + dependencies: + micromark-extension-gfm-autolink-literal "^1.0.0" + micromark-extension-gfm-footnote "^1.0.0" + micromark-extension-gfm-strikethrough "^1.0.0" + micromark-extension-gfm-table "^1.0.0" + micromark-extension-gfm-tagfilter "^1.0.0" + micromark-extension-gfm-task-list-item "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-extension-math@^2.0.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/micromark-extension-math/-/micromark-extension-math-2.1.2.tgz#52c70cc8266cd20ada1ef5a479bfed9a19b789bf" + integrity sha512-es0CcOV89VNS9wFmyn+wyFTKweXGW4CEvdaAca6SWRWPyYCbBisnjaHLjWO4Nszuiud84jCpkHsqAJoa768Pvg== + dependencies: + "@types/katex" "^0.16.0" + katex "^0.16.0" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-mdx-expression@^1.0.0: + version "1.0.8" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-expression/-/micromark-extension-mdx-expression-1.0.8.tgz#5bc1f5fd90388e8293b3ef4f7c6f06c24aff6314" + integrity sha512-zZpeQtc5wfWKdzDsHRBY003H2Smg+PUi2REhqgIhdzAa5xonhP03FcXxqFSerFiNUr5AWmHpaNPQTBVOS4lrXw== + dependencies: + "@types/estree" "^1.0.0" + micromark-factory-mdx-expression "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-events-to-acorn "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-extension-mdx-jsx@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-jsx/-/micromark-extension-mdx-jsx-1.0.5.tgz#e72d24b7754a30d20fb797ece11e2c4e2cae9e82" + integrity sha512-gPH+9ZdmDflbu19Xkb8+gheqEDqkSpdCEubQyxuz/Hn8DOXiXvrXeikOoBA71+e8Pfi0/UYmU3wW3H58kr7akA== + dependencies: + "@types/acorn" "^4.0.0" + "@types/estree" "^1.0.0" + estree-util-is-identifier-name "^2.0.0" + micromark-factory-mdx-expression "^1.0.0" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + vfile-message "^3.0.0" + +micromark-extension-mdx-md@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/micromark-extension-mdx-md/-/micromark-extension-mdx-md-1.0.1.tgz#595d4b2f692b134080dca92c12272ab5b74c6d1a" + integrity sha512-7MSuj2S7xjOQXAjjkbjBsHkMtb+mDGVW6uI2dBL9snOBCbZmoNgDAeZ0nSn9j3T42UE/g2xVNMn18PJxZvkBEA== + dependencies: + micromark-util-types "^1.0.0" + +micromark-extension-mdxjs-esm@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/micromark-extension-mdxjs-esm/-/micromark-extension-mdxjs-esm-1.0.5.tgz#e4f8be9c14c324a80833d8d3a227419e2b25dec1" + integrity sha512-xNRBw4aoURcyz/S69B19WnZAkWJMxHMT5hE36GtDAyhoyn/8TuAeqjFJQlwk+MKQsUD7b3l7kFX+vlfVWgcX1w== + dependencies: + "@types/estree" "^1.0.0" + micromark-core-commonmark "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-events-to-acorn "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + unist-util-position-from-estree "^1.1.0" + uvu "^0.5.0" + vfile-message "^3.0.0" + +micromark-extension-mdxjs@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/micromark-extension-mdxjs/-/micromark-extension-mdxjs-1.0.1.tgz#f78d4671678d16395efeda85170c520ee795ded8" + integrity sha512-7YA7hF6i5eKOfFUzZ+0z6avRG52GpWR8DL+kN47y3f2KhxbBZMhmxe7auOeaTBrW2DenbbZTf1ea9tA2hDpC2Q== + dependencies: + acorn "^8.0.0" + acorn-jsx "^5.0.0" + micromark-extension-mdx-expression "^1.0.0" + micromark-extension-mdx-jsx "^1.0.0" + micromark-extension-mdx-md "^1.0.0" + micromark-extension-mdxjs-esm "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-destination@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-destination/-/micromark-factory-destination-1.1.0.tgz#eb815957d83e6d44479b3df640f010edad667b9f" + integrity sha512-XaNDROBgx9SgSChd69pjiGKbV+nfHGDPVYFs5dOoDd7ZnMAE+Cuu91BCpsY8RT2NP9vo/B8pds2VQNCLiu0zhg== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-label@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-label/-/micromark-factory-label-1.1.0.tgz#cc95d5478269085cfa2a7282b3de26eb2e2dec68" + integrity sha512-OLtyez4vZo/1NjxGhcpDSbHQ+m0IIGnT8BoPamh+7jVlzLJBH98zzuCoUeMxvM6WsNeh8wx8cKvqLiPHEACn0w== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-factory-mdx-expression@^1.0.0: + version "1.0.9" + resolved "https://registry.yarnpkg.com/micromark-factory-mdx-expression/-/micromark-factory-mdx-expression-1.0.9.tgz#57ba4571b69a867a1530f34741011c71c73a4976" + integrity sha512-jGIWzSmNfdnkJq05c7b0+Wv0Kfz3NJ3N4cBjnbO4zjXIlxJr+f8lk+5ZmwFvqdAbUy2q6B5rCY//g0QAAaXDWA== + dependencies: + "@types/estree" "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-events-to-acorn "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + unist-util-position-from-estree "^1.0.0" + uvu "^0.5.0" + vfile-message "^3.0.0" + +micromark-factory-space@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-space/-/micromark-factory-space-1.1.0.tgz#c8f40b0640a0150751d3345ed885a080b0d15faf" + integrity sha512-cRzEj7c0OL4Mw2v6nwzttyOZe8XY/Z8G0rzmWQZTBi/jjwyw/U4uqKtUORXQrR5bAZZnbTI/feRV/R7hc4jQYQ== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-title@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-title/-/micromark-factory-title-1.1.0.tgz#dd0fe951d7a0ac71bdc5ee13e5d1465ad7f50ea1" + integrity sha512-J7n9R3vMmgjDOCY8NPw55jiyaQnH5kBdV2/UXCtZIpnHH3P6nHUKaH7XXEYuWwx/xUJcawa8plLBEjMPU24HzQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-factory-whitespace@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-factory-whitespace/-/micromark-factory-whitespace-1.1.0.tgz#798fb7489f4c8abafa7ca77eed6b5745853c9705" + integrity sha512-v2WlmiymVSp5oMg+1Q0N1Lxmt6pMhIHD457whWM7/GUlEks1hI9xj5w3zbc4uuMKXGisksZk8DzP2UyGbGqNsQ== + dependencies: + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-character@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-character/-/micromark-util-character-1.2.0.tgz#4fedaa3646db249bc58caeb000eb3549a8ca5dcc" + integrity sha512-lXraTwcX3yH/vMDaFWCQJP1uIszLVebzUa3ZHdrgxr7KEU/9mL4mVgCpGbyhvNLNlauROiNUq7WN5u7ndbY6xg== + dependencies: + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-chunked@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-chunked/-/micromark-util-chunked-1.1.0.tgz#37a24d33333c8c69a74ba12a14651fd9ea8a368b" + integrity sha512-Ye01HXpkZPNcV6FiyoW2fGZDUw4Yc7vT0E9Sad83+bEDiCJ1uXu0S3mr8WLpsz3HaG3x2q0HM6CTuPdcZcluFQ== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-classify-character@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-classify-character/-/micromark-util-classify-character-1.1.0.tgz#6a7f8c8838e8a120c8e3c4f2ae97a2bff9190e9d" + integrity sha512-SL0wLxtKSnklKSUplok1WQFoGhUdWYKggKUiqhX+Swala+BtptGCu5iPRc+xvzJ4PXE/hwM3FNXsfEVgoZsWbw== + dependencies: + micromark-util-character "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-combine-extensions@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-combine-extensions/-/micromark-util-combine-extensions-1.1.0.tgz#192e2b3d6567660a85f735e54d8ea6e3952dbe84" + integrity sha512-Q20sp4mfNf9yEqDL50WwuWZHUrCO4fEyeDCnMGmG5Pr0Cz15Uo7KBs6jq+dq0EgX4DPwwrh9m0X+zPV1ypFvUA== + dependencies: + micromark-util-chunked "^1.0.0" + micromark-util-types "^1.0.0" + +micromark-util-decode-numeric-character-reference@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-numeric-character-reference/-/micromark-util-decode-numeric-character-reference-1.1.0.tgz#b1e6e17009b1f20bc652a521309c5f22c85eb1c6" + integrity sha512-m9V0ExGv0jB1OT21mrWcuf4QhP46pH1KkfWy9ZEezqHKAxkj4mPCy3nIH1rkbdMlChLHX531eOrymlwyZIf2iw== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-decode-string@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-decode-string/-/micromark-util-decode-string-1.1.0.tgz#dc12b078cba7a3ff690d0203f95b5d5537f2809c" + integrity sha512-YphLGCK8gM1tG1bd54azwyrQRjCFcmgj2S2GoJDNnh4vYtnL38JS8M4gpxzOPNyHdNEpheyWXCTnnTDY3N+NVQ== + dependencies: + decode-named-character-reference "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-symbol "^1.0.0" + +micromark-util-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-encode/-/micromark-util-encode-1.1.0.tgz#92e4f565fd4ccb19e0dcae1afab9a173bbeb19a5" + integrity sha512-EuEzTWSTAj9PA5GOAs992GzNh2dGQO52UvAbtSOMvXTxv3Criqb6IOzJUBCmEqrrXSblJIJBbFFv6zPxpreiJw== + +micromark-util-events-to-acorn@^1.0.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/micromark-util-events-to-acorn/-/micromark-util-events-to-acorn-1.2.3.tgz#a4ab157f57a380e646670e49ddee97a72b58b557" + integrity sha512-ij4X7Wuc4fED6UoLWkmo0xJQhsktfNh1J0m8g4PbIMPlx+ek/4YdW5mvbye8z/aZvAPUoxgXHrwVlXAPKMRp1w== + dependencies: + "@types/acorn" "^4.0.0" + "@types/estree" "^1.0.0" + "@types/unist" "^2.0.0" + estree-util-visit "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + vfile-message "^3.0.0" + +micromark-util-html-tag-name@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-html-tag-name/-/micromark-util-html-tag-name-1.2.0.tgz#48fd7a25826f29d2f71479d3b4e83e94829b3588" + integrity sha512-VTQzcuQgFUD7yYztuQFKXT49KghjtETQ+Wv/zUjGSGBioZnkA4P1XXZPT1FHeJA6RwRXSF47yvJ1tsJdoxwO+Q== + +micromark-util-normalize-identifier@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-normalize-identifier/-/micromark-util-normalize-identifier-1.1.0.tgz#7a73f824eb9f10d442b4d7f120fecb9b38ebf8b7" + integrity sha512-N+w5vhqrBihhjdpM8+5Xsxy71QWqGn7HYNUvch71iV2PM7+E3uWGox1Qp90loa1ephtCxG2ftRV/Conitc6P2Q== + dependencies: + micromark-util-symbol "^1.0.0" + +micromark-util-resolve-all@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-resolve-all/-/micromark-util-resolve-all-1.1.0.tgz#4652a591ee8c8fa06714c9b54cd6c8e693671188" + integrity sha512-b/G6BTMSg+bX+xVCshPTPyAu2tmA0E4X98NSR7eIbeC6ycCqCeE7wjfDIgzEbkzdEVJXRtOG4FbEm/uGbCRouA== + dependencies: + micromark-util-types "^1.0.0" + +micromark-util-sanitize-uri@^1.0.0, micromark-util-sanitize-uri@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/micromark-util-sanitize-uri/-/micromark-util-sanitize-uri-1.2.0.tgz#613f738e4400c6eedbc53590c67b197e30d7f90d" + integrity sha512-QO4GXv0XZfWey4pYFndLUKEAktKkG5kZTdUNaTAkzbuJxn2tNBOr+QtxR2XpWaMhbImT2dPzyLrPXLlPhph34A== dependencies: - micromark "~2.11.0" + micromark-util-character "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-symbol "^1.0.0" -micromark-extension-gfm@^0.3.0: - version "0.3.3" - resolved "https://registry.yarnpkg.com/micromark-extension-gfm/-/micromark-extension-gfm-0.3.3.tgz#36d1a4c089ca8bdfd978c9bd2bf1a0cb24e2acfe" - integrity sha512-oVN4zv5/tAIA+l3GbMi7lWeYpJ14oQyJ3uEim20ktYFAcfX1x3LNlFGGlmrZHt7u9YlKExmyJdDGaTt6cMSR/A== +micromark-util-subtokenize@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-subtokenize/-/micromark-util-subtokenize-1.1.0.tgz#941c74f93a93eaf687b9054aeb94642b0e92edb1" + integrity sha512-kUQHyzRoxvZO2PuLzMt2P/dwVsTiivCK8icYTeR+3WgbuPqfHgPPy7nFKbeqRivBvn/3N3GBiNC+JRTMSxEC7A== dependencies: - micromark "~2.11.0" - micromark-extension-gfm-autolink-literal "~0.5.0" - micromark-extension-gfm-strikethrough "~0.6.5" - micromark-extension-gfm-table "~0.4.0" - micromark-extension-gfm-tagfilter "~0.3.0" - micromark-extension-gfm-task-list-item "~0.3.0" + micromark-util-chunked "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.0" + uvu "^0.5.0" + +micromark-util-symbol@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-symbol/-/micromark-util-symbol-1.1.0.tgz#813cd17837bdb912d069a12ebe3a44b6f7063142" + integrity sha512-uEjpEYY6KMs1g7QfJ2eX1SQEV+ZT4rUD3UcF6l57acZvLNK7PBZL+ty82Z1qhK1/yXIY4bdx04FKMgR0g4IAag== + +micromark-util-types@^1.0.0, micromark-util-types@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/micromark-util-types/-/micromark-util-types-1.1.0.tgz#e6676a8cae0bb86a2171c498167971886cb7e283" + integrity sha512-ukRBgie8TIAcacscVHSiddHjO4k/q3pnedmzMQ4iwDcK0FtFCohKOlFbaOL/mPgfnPsL3C1ZyxJa4sbWrBl3jg== micromark@^2.11.3, micromark@~2.11.0, micromark@~2.11.3: version "2.11.4" @@ -16657,6 +18221,29 @@ micromark@^2.11.3, micromark@~2.11.0, micromark@~2.11.3: debug "^4.0.0" parse-entities "^2.0.0" +micromark@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/micromark/-/micromark-3.2.0.tgz#1af9fef3f995ea1ea4ac9c7e2f19c48fd5c006e9" + integrity sha512-uD66tJj54JLYq0De10AhWycZWGQNUvDI55xPgk2sQM5kn1JYlhbCMTtEeT27+vAhW2FBQxLlOmS3pmA7/2z4aA== + dependencies: + "@types/debug" "^4.0.0" + debug "^4.0.0" + decode-named-character-reference "^1.0.0" + micromark-core-commonmark "^1.0.1" + micromark-factory-space "^1.0.0" + micromark-util-character "^1.0.0" + micromark-util-chunked "^1.0.0" + micromark-util-combine-extensions "^1.0.0" + micromark-util-decode-numeric-character-reference "^1.0.0" + micromark-util-encode "^1.0.0" + micromark-util-normalize-identifier "^1.0.0" + micromark-util-resolve-all "^1.0.0" + micromark-util-sanitize-uri "^1.0.0" + micromark-util-subtokenize "^1.0.0" + micromark-util-symbol "^1.0.0" + micromark-util-types "^1.0.1" + uvu "^0.5.0" + micromatch@^3.1.4: version "3.1.10" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" @@ -16797,10 +18384,10 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" -minimatch@^7.1.3: - version "7.4.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.2.tgz#157e847d79ca671054253b840656720cb733f10f" - integrity sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA== +minimatch@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.1.tgz#8a555f541cf976c622daf078bb28f29fb927c253" + integrity sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w== dependencies: brace-expansion "^2.0.1" @@ -17169,6 +18756,97 @@ new-github-release-url@^1.0.0: dependencies: type-fest "^0.4.1" +next-mdx-remote@^4.2.1: + version "4.4.1" + resolved "https://registry.yarnpkg.com/next-mdx-remote/-/next-mdx-remote-4.4.1.tgz#96b16e2adc54dbcd0a7f204a9a3c3fd269d41abf" + integrity sha512-1BvyXaIou6xy3XoNF4yaMZUCb6vD2GTAa5ciOa6WoO+gAUTYsb1K4rI/HSC2ogAWLrb/7VSV52skz07vOzmqIQ== + dependencies: + "@mdx-js/mdx" "^2.2.1" + "@mdx-js/react" "^2.2.1" + vfile "^5.3.0" + vfile-matter "^3.0.1" + +next-seo@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/next-seo/-/next-seo-6.0.0.tgz#4568dc61a44dbdf5fe5ff44156cd0ff8804889a2" + integrity sha512-jKKt1p1z4otMA28AyeoAONixVjdYmgFCWwpEFtu+DwRHQDllVX3RjtyXbuCQiUZEfQ9rFPBpAI90vDeLZlMBdg== + +next-themes@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/next-themes/-/next-themes-0.2.1.tgz#0c9f128e847979daf6c67f70b38e6b6567856e45" + integrity sha512-B+AKNfYNIzh0vqQQKqQItTS8evEouKD7H5Hj3kmuPERwddR2TxvDSFZuTj6T7Jfn1oyeUyJMydPl1Bkxkh0W7A== + +next@^13.0.6: + version "13.4.6" + resolved "https://registry.yarnpkg.com/next/-/next-13.4.6.tgz#ebe52f5c74d60176d45b45e73f25a51103713ea4" + integrity sha512-sjVqjxU+U2aXZnYt4Ud6CTLNNwWjdSfMgemGpIQJcN3Z7Jni9xRWbR0ie5fQzCg87aLqQVhKA2ud2gPoqJ9lGw== + dependencies: + "@next/env" "13.4.6" + "@swc/helpers" "0.5.1" + busboy "1.6.0" + caniuse-lite "^1.0.30001406" + postcss "8.4.14" + styled-jsx "5.1.1" + watchpack "2.4.0" + zod "3.21.4" + optionalDependencies: + "@next/swc-darwin-arm64" "13.4.6" + "@next/swc-darwin-x64" "13.4.6" + "@next/swc-linux-arm64-gnu" "13.4.6" + "@next/swc-linux-arm64-musl" "13.4.6" + "@next/swc-linux-x64-gnu" "13.4.6" + "@next/swc-linux-x64-musl" "13.4.6" + "@next/swc-win32-arm64-msvc" "13.4.6" + "@next/swc-win32-ia32-msvc" "13.4.6" + "@next/swc-win32-x64-msvc" "13.4.6" + +nextra-theme-docs@latest: + version "2.7.1" + resolved "https://registry.yarnpkg.com/nextra-theme-docs/-/nextra-theme-docs-2.7.1.tgz#d92827af26a2797bb59b347674115329074fd0da" + integrity sha512-C2DtoGH15q22t4r2JC89lvvajmnyiqsv3PaqHJpoHRlF2eR5giuLhZC5Oahb9AENRDcnUIUvqVi/8NlfiIM0yQ== + dependencies: + "@headlessui/react" "^1.7.10" + "@popperjs/core" "^2.11.6" + clsx "^1.2.1" + flexsearch "^0.7.21" + focus-visible "^5.2.0" + git-url-parse "^13.1.0" + intersection-observer "^0.12.2" + match-sorter "^6.3.1" + next-seo "^6.0.0" + next-themes "^0.2.1" + scroll-into-view-if-needed "^3.0.0" + zod "^3.20.2" + +nextra@latest: + version "2.7.1" + resolved "https://registry.yarnpkg.com/nextra/-/nextra-2.7.1.tgz#f3c01c45aa96e4a9285a3aee333e18e8e1d1bf71" + integrity sha512-qchTb7XSm357XAHf9MV9UlUSGolPEPE8iFnC/9KMwvhIoE4seyPYWMrnH84XraZCcGERvy9TrkFD30VE7Qv1MA== + dependencies: + "@mdx-js/mdx" "^2.3.0" + "@mdx-js/react" "^2.3.0" + "@napi-rs/simple-git" "^0.1.8" + "@theguild/remark-mermaid" "^0.0.1" + clsx "^1.2.1" + github-slugger "^2.0.0" + graceful-fs "^4.2.11" + gray-matter "^4.0.3" + katex "^0.16.7" + lodash.get "^4.4.2" + next-mdx-remote "^4.2.1" + p-limit "^3.1.0" + rehype-katex "^6.0.3" + rehype-pretty-code "0.9.4" + remark-gfm "^3.0.1" + remark-math "^5.1.1" + remark-reading-time "^2.0.1" + shiki "^0.14.2" + slash "^3.0.0" + title "^3.5.3" + unist-util-remove "^3.1.1" + unist-util-visit "^4.1.1" + zod "^3.20.2" + nice-try@^1.0.4: version "1.0.5" resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" @@ -17300,6 +18978,11 @@ nofilter@^1.0.4: resolved "https://registry.yarnpkg.com/nofilter/-/nofilter-1.0.4.tgz#78d6f4b6a613e7ced8b015cec534625f7667006e" integrity sha512-N8lidFp+fCz+TD51+haYdbDGrcBWwuHX40F5+z0qkUjMJ5Tp+rdSuAkMJ9N9eoolDlEVTf6u5icM+cNKkKW2mA== +non-layered-tidy-tree-layout@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/non-layered-tidy-tree-layout/-/non-layered-tidy-tree-layout-2.0.2.tgz#57d35d13c356643fc296a55fb11ac15e74da7804" + integrity sha512-gkXMxRzUH+PB0ax9dUN0yYF0S25BqeAYqhgMaLUFmpXLEk7Fcu8f4emJuOAY0V8kjDICxROIKsTAKsV/v355xw== + nopt@^4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" @@ -17936,7 +19619,7 @@ p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.2: dependencies: p-try "^2.0.0" -p-limit@^3.0.2: +p-limit@^3.0.2, p-limit@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== @@ -17999,7 +19682,7 @@ p-memoize@^4.0.1: mimic-fn "^3.0.0" p-settle "^4.1.1" -p-queue@^6.3.0: +p-queue@^6.3.0, p-queue@^6.6.2: version "6.6.2" resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== @@ -18109,7 +19792,7 @@ package-json@^8.1.0: registry-url "^6.0.0" semver "^7.3.7" -pako@^2.0.4: +pako@2.1.0, pako@^2.0.4: version "2.1.0" resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== @@ -18169,6 +19852,20 @@ parse-entities@^2.0.0: is-decimal "^1.0.0" is-hexadecimal "^1.0.0" +parse-entities@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-4.0.1.tgz#4e2a01111fb1c986549b944af39eeda258fc9e4e" + integrity sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w== + dependencies: + "@types/unist" "^2.0.0" + character-entities "^2.0.0" + character-entities-legacy "^3.0.0" + character-reference-invalid "^2.0.0" + decode-named-character-reference "^1.0.0" + is-alphanumerical "^2.0.0" + is-decimal "^2.0.0" + is-hexadecimal "^2.0.0" + parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" @@ -18187,6 +19884,25 @@ parse-json@^5.0.0, parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" +parse-numeric-range@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/parse-numeric-range/-/parse-numeric-range-1.3.0.tgz#7c63b61190d61e4d53a1197f0c83c47bb670ffa3" + integrity sha512-twN+njEipszzlMJd4ONUYgSfZPDxgHhT9Ahed5uTigpQn90FggW4SA/AIPq/6a149fTbE9qBEcSwE3FAEp6wQQ== + +parse-path@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-7.0.0.tgz#605a2d58d0a749c8594405d8cc3a2bf76d16099b" + integrity sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog== + dependencies: + protocols "^2.0.0" + +parse-url@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-8.1.0.tgz#972e0827ed4b57fc85f0ea6b0d839f0d8a57a57d" + integrity sha512-xDvOoLU5XRrcOZvnI6b8zA6n9O9ejNk/GExuz1yBuWUGn9KA97GI6HTs6u02wKara1CeVmZhH+0TZFdWScR89w== + dependencies: + parse-path "^7.0.0" + parse5-htmlparser2-tree-adapter@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6" @@ -18367,6 +20083,15 @@ performance-now@^2.1.0: resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow== +periscopic@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/periscopic/-/periscopic-3.1.0.tgz#7e9037bf51c5855bd33b48928828db4afa79d97a" + integrity sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw== + dependencies: + "@types/estree" "^1.0.0" + estree-walker "^3.0.0" + is-reference "^3.0.0" + picocolors@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f" @@ -18783,7 +20508,7 @@ postcss-load-config@^2.1.0: cosmiconfig "^5.0.0" import-cwd "^2.0.0" -postcss-load-config@^3.1.4: +postcss-load-config@^3.0.0, postcss-load-config@^3.1.4: version "3.1.4" resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855" integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== @@ -18992,6 +20717,20 @@ postcss-modules@^2.0.0: postcss "^7.0.1" string-hash "^1.1.1" +postcss-modules@^4.0.0: + version "4.3.1" + resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-4.3.1.tgz#517c06c09eab07d133ae0effca2c510abba18048" + integrity sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q== + dependencies: + generic-names "^4.0.0" + icss-replace-symbols "^1.1.0" + lodash.camelcase "^4.3.0" + postcss-modules-extract-imports "^3.0.0" + postcss-modules-local-by-default "^4.0.0" + postcss-modules-scope "^3.0.0" + postcss-modules-values "^4.0.0" + string-hash "^1.1.1" + postcss-nested@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/postcss-nested/-/postcss-nested-6.0.0.tgz#1572f1984736578f360cffc7eb7dca69e30d1735" @@ -19379,6 +21118,15 @@ postcss@6.0.1: source-map "^0.5.6" supports-color "^3.2.3" +postcss@8.4.14: + version "8.4.14" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf" + integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig== + dependencies: + nanoid "^3.3.4" + picocolors "^1.0.0" + source-map-js "^1.0.2" + postcss@^6.0.1: version "6.0.23" resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" @@ -19396,7 +21144,7 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.27, postcss@^7.0.35: picocolors "^0.2.1" source-map "^0.6.1" -postcss@^8.0.9, postcss@^8.3.5, postcss@^8.4.19, postcss@^8.4.21, postcss@^8.4.4: +postcss@^8.0.9, postcss@^8.2.1, postcss@^8.3.5, postcss@^8.4.19, postcss@^8.4.21, postcss@^8.4.4: version "8.4.21" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.21.tgz#c639b719a57efc3187b13a1d765675485f4134f4" integrity sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg== @@ -19646,6 +21394,11 @@ proper-lockfile@^4.0.0: retry "^0.12.0" signal-exit "^3.0.2" +property-information@^6.0.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.2.0.tgz#b74f522c31c097b5149e3c3cb8d7f3defd986a1d" + integrity sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg== + proto-list@~1.2.1: version "1.2.4" resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" @@ -19688,6 +21441,11 @@ protobufjs@^7.0.0: "@types/node" ">=13.7.0" long "^5.0.0" +protocols@^2.0.0, protocols@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/protocols/-/protocols-2.0.1.tgz#8f155da3fc0f32644e83c5782c8e8212ccf70a86" + integrity sha512-/XJ368cyBJ7fzLMwLKv1e4vLxOju2MNAIokcr7meSaNcVbWz/CPcW22cP04mwxOErdA5mwjA8Q6w/cdAQxVn7Q== + protons-runtime@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/protons-runtime/-/protons-runtime-4.0.2.tgz#a5670e703a5389dccb3700b583532e3316efcb94" @@ -20275,6 +22033,11 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" +reading-time@^1.3.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/reading-time/-/reading-time-1.5.0.tgz#d2a7f1b6057cb2e169beaf87113cc3411b5bc5bb" + integrity sha512-onYyVhBNr4CmAxFsKS7bz+uTLRakypIe4R+5A824vBSkQy/hB3fZepoVEf8OVAxzLvK+H/jm9TzpI3ETSm64Kg== + readline-sync@^1.4.10: version "1.4.10" resolved "https://registry.yarnpkg.com/readline-sync/-/readline-sync-1.4.10.tgz#41df7fbb4b6312d673011594145705bf56d8873b" @@ -20410,6 +22173,26 @@ regjsparser@^0.9.1: dependencies: jsesc "~0.5.0" +rehype-katex@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/rehype-katex/-/rehype-katex-6.0.3.tgz#83e5b929b0967978e9491c02117f55be3594d7e1" + integrity sha512-ByZlRwRUcWegNbF70CVRm2h/7xy7jQ3R9LaY4VVSvjnoVWwWVhNL60DiZsBpC5tSzYQOCvDbzncIpIjPZWodZA== + dependencies: + "@types/hast" "^2.0.0" + "@types/katex" "^0.14.0" + hast-util-from-html-isomorphic "^1.0.0" + hast-util-to-text "^3.1.0" + katex "^0.16.0" + unist-util-visit "^4.0.0" + +rehype-pretty-code@0.9.4: + version "0.9.4" + resolved "https://registry.yarnpkg.com/rehype-pretty-code/-/rehype-pretty-code-0.9.4.tgz#ab214026b530890c7a2e14c4f0881483e39e9cbc" + integrity sha512-3m4aQT15n8C+UizcZL0enaahoZwCDm5K1qKQ3DGgHE7U8l/DEEEJ/hm+uDe9yyK4sxVOSfZcRIMHrpJwLQi+Rg== + dependencies: + hash-obj "^4.0.0" + parse-numeric-range "^1.3.0" + relateurl@^0.2.7: version "0.2.7" resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" @@ -20439,6 +22222,43 @@ remark-gfm@^1.0.0: mdast-util-gfm "^0.1.0" micromark-extension-gfm "^0.3.0" +remark-gfm@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/remark-gfm/-/remark-gfm-3.0.1.tgz#0b180f095e3036545e9dddac0e8df3fa5cfee54f" + integrity sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-gfm "^2.0.0" + micromark-extension-gfm "^2.0.0" + unified "^10.0.0" + +remark-math@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/remark-math/-/remark-math-5.1.1.tgz#459e798d978d4ca032e745af0bac81ddcdf94964" + integrity sha512-cE5T2R/xLVtfFI4cCePtiRn+e6jKMtFDR3P8V3qpv8wpKjwvHoBA4eJzvX+nVrnlNy0911bdGmuspCSwetfYHw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-math "^2.0.0" + micromark-extension-math "^2.0.0" + unified "^10.0.0" + +remark-mdx@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-2.3.0.tgz#efe678025a8c2726681bde8bf111af4a93943db4" + integrity sha512-g53hMkpM0I98MU266IzDFMrTD980gNF3BJnkyFcmN+dD873mQeD5rdMO3Y2X+x8umQfbSE0PcoEDl7ledSA+2g== + dependencies: + mdast-util-mdx "^2.0.0" + micromark-extension-mdxjs "^1.0.0" + +remark-parse@^10.0.0: + version "10.0.2" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-10.0.2.tgz#ca241fde8751c2158933f031a4e3efbaeb8bc262" + integrity sha512-3ydxgHa/ZQzG8LvC7jTXccARYDcRld3VfcgIIFs7bI6vbRSxJJmzgLEIIoYKyrfhaY+ujuWaf/PJiMZXoiCXgw== + dependencies: + "@types/mdast" "^3.0.0" + mdast-util-from-markdown "^1.0.0" + unified "^10.0.0" + remark-parse@^9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-9.0.0.tgz#4d20a299665880e4f4af5d90b7c7b8a935853640" @@ -20446,6 +22266,31 @@ remark-parse@^9.0.0: dependencies: mdast-util-from-markdown "^0.8.0" +remark-reading-time@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/remark-reading-time/-/remark-reading-time-2.0.1.tgz#fe8bb8e420db7678dc749385167adb4fc99318f7" + integrity sha512-fy4BKy9SRhtYbEHvp6AItbRTnrhiDGbqLQTSYVbQPGuRCncU1ubSsh9p/W5QZSxtYcUXv8KGL0xBgPLyNJA1xw== + dependencies: + estree-util-is-identifier-name "^2.0.0" + estree-util-value-to-estree "^1.3.0" + reading-time "^1.3.0" + unist-util-visit "^3.1.0" + +remark-rehype@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/remark-rehype/-/remark-rehype-10.1.0.tgz#32dc99d2034c27ecaf2e0150d22a6dcccd9a6279" + integrity sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw== + dependencies: + "@types/hast" "^2.0.0" + "@types/mdast" "^3.0.0" + mdast-util-to-hast "^12.1.0" + unified "^10.0.0" + +remove-accents@0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/remove-accents/-/remove-accents-0.4.2.tgz#0a43d3aaae1e80db919e07ae254b285d9e1c7bb5" + integrity sha512-7pXIJqJOq5tFgG1A2Zxti3Ht8jJF337m4sowbuHsW30ZnkQFnDzy9qBNhgzX8ZLW4+UBcXiiR7SwR6pokHsxiA== + remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -20523,13 +22368,6 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== -requizzle@^0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/requizzle/-/requizzle-0.2.4.tgz#319eb658b28c370f0c20f968fa8ceab98c13d27c" - integrity sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw== - dependencies: - lodash "^4.17.21" - resolve-alpn@^1.2.0: version "1.2.1" resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" @@ -20724,6 +22562,11 @@ roarr@^2.15.3: semver-compare "^1.0.0" sprintf-js "^1.1.2" +robust-predicates@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.2.tgz#d5b28528c4824d20fc48df1928d41d9efa1ad771" + integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg== + rollup-plugin-postcss@^3.1.8: version "3.1.8" resolved "https://registry.yarnpkg.com/rollup-plugin-postcss/-/rollup-plugin-postcss-3.1.8.tgz#d1bcaf8eb0fcb0936e3684c22dd8628d13a82fd1" @@ -20744,6 +22587,25 @@ rollup-plugin-postcss@^3.1.8: safe-identifier "^0.4.1" style-inject "^0.3.0" +rollup-plugin-postcss@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-postcss/-/rollup-plugin-postcss-4.0.2.tgz#15e9462f39475059b368ce0e49c800fa4b1f7050" + integrity sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w== + dependencies: + chalk "^4.1.0" + concat-with-sourcemaps "^1.1.0" + cssnano "^5.0.1" + import-cwd "^3.0.0" + p-queue "^6.6.2" + pify "^5.0.0" + postcss-load-config "^3.0.0" + postcss-modules "^4.0.0" + promise.series "^0.2.0" + resolve "^1.19.0" + rollup-pluginutils "^2.8.2" + safe-identifier "^0.4.2" + style-inject "^0.3.0" + rollup-plugin-string@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/rollup-plugin-string/-/rollup-plugin-string-3.0.0.tgz#fed2d6301fae1e59eb610957df757ef13fada3f0" @@ -20825,6 +22687,11 @@ run-script-os@^1.1.6: resolved "https://registry.yarnpkg.com/run-script-os/-/run-script-os-1.1.6.tgz#8b0177fb1b54c99a670f95c7fdc54f18b9c72347" integrity sha512-ql6P2LzhBTTDfzKts+Qo4H94VUKpxKDFz6QxxwaUZN0mwvi7L3lpOI7BqPCq7lgDh3XLl0dpeXwfcVIitlrYrw== +rw@1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" + integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== + rx-lite-aggregates@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" @@ -20844,7 +22711,7 @@ rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.5.3, rxjs@^6.6.0, rxjs@^6.6.3: dependencies: tslib "^1.9.0" -sade@^1.7.4: +sade@^1.7.3, sade@^1.7.4: version "1.8.1" resolved "https://registry.yarnpkg.com/sade/-/sade-1.8.1.tgz#0a78e81d658d394887be57d2a409bf703a3b2701" integrity sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A== @@ -20861,7 +22728,7 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== -safe-identifier@^0.4.1: +safe-identifier@^0.4.1, safe-identifier@^0.4.2: version "0.4.2" resolved "https://registry.yarnpkg.com/safe-identifier/-/safe-identifier-0.4.2.tgz#cf6bfca31c2897c588092d1750d30ef501d59fcb" integrity sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w== @@ -21007,6 +22874,13 @@ scoped-regex@^2.0.0: resolved "https://registry.yarnpkg.com/scoped-regex/-/scoped-regex-2.1.0.tgz#7b9be845d81fd9d21d1ec97c61a0b7cf86d2015f" integrity sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ== +scroll-into-view-if-needed@^3.0.0: + version "3.0.10" + resolved "https://registry.yarnpkg.com/scroll-into-view-if-needed/-/scroll-into-view-if-needed-3.0.10.tgz#38fbfe770d490baff0fb2ba34ae3539f6ec44e13" + integrity sha512-t44QCeDKAPf1mtQH3fYpWz8IM/DyvHLjs8wUvvwMYxk5moOqCzrMSxK6HQVD0QVmVjXFavoFIPRVrMuJPKAvtg== + dependencies: + compute-scroll-into-view "^3.0.2" + secp256k1@^4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" @@ -21016,6 +22890,14 @@ secp256k1@^4.0.1: node-addon-api "^2.0.0" node-gyp-build "^4.2.0" +section-matter@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/section-matter/-/section-matter-1.0.0.tgz#e9041953506780ec01d59f292a19c7b850b84167" + integrity sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA== + dependencies: + extend-shallow "^2.0.1" + kind-of "^6.0.0" + select-hose@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" @@ -21271,6 +23153,16 @@ shiki@^0.14.1: vscode-oniguruma "^1.7.0" vscode-textmate "^8.0.0" +shiki@^0.14.2: + version "0.14.2" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.14.2.tgz#d51440800b701392b31ce2336036058e338247a1" + integrity sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A== + dependencies: + ansi-sequence-parser "^1.1.0" + jsonc-parser "^3.2.0" + vscode-oniguruma "^1.7.0" + vscode-textmate "^8.0.0" + side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -21515,7 +23407,7 @@ source-map@^0.5.6, source-map@~0.5.3: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== -source-map@^0.7.3: +source-map@^0.7.0, source-map@^0.7.3: version "0.7.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== @@ -21532,6 +23424,11 @@ sourcemap-codec@^1.3.0, sourcemap-codec@^1.4.8: resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== +space-separated-tokens@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-2.0.2.tgz#1ecd9d2350a3844572c3f4a312bceb018348859f" + integrity sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q== + sparse-array@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/sparse-array/-/sparse-array-1.3.2.tgz#0e1a8b71706d356bc916fe754ff496d450ec20b0" @@ -21901,6 +23798,14 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" +stringify-entities@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-4.0.3.tgz#cfabd7039d22ad30f3cc435b0ca2c1574fc88ef8" + integrity sha512-BP9nNHMhhfcMbiuQKCqMjhDP5yBCAxsPu4pHFFzJ6Alo9dZgY4VLDPutXqIjpRiMoKdp7Av85Gr73Q5uH9k7+g== + dependencies: + character-entities-html4 "^2.0.0" + character-entities-legacy "^3.0.0" + stringify-object@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629" @@ -21945,6 +23850,11 @@ strip-ansi@^7.0.1: dependencies: ansi-regex "^6.0.1" +strip-bom-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" + integrity sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g== + strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -22010,6 +23920,20 @@ style-loader@^3.3.1: resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-3.3.2.tgz#eaebca714d9e462c19aa1e3599057bc363924899" integrity sha512-RHs/vcrKdQK8wZliteNK4NKzxvLBzpuHMqYmUVWeKa6MkaIQ97ZTOS0b+zapZhy6GcrgWnvWYCMHRirC3FsUmw== +style-to-object@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.4.1.tgz#53cf856f7cf7f172d72939d9679556469ba5de37" + integrity sha512-HFpbb5gr2ypci7Qw+IOhnP2zOU7e77b+rzM+wTzXzfi1PrtBCX0E7Pk4wL4iTLnhzZ+JgEGAhX81ebTg/aYjQw== + dependencies: + inline-style-parser "0.1.1" + +styled-jsx@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/styled-jsx/-/styled-jsx-5.1.1.tgz#839a1c3aaacc4e735fed0781b8619ea5d0009d1f" + integrity sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw== + dependencies: + client-only "0.0.1" + stylehacks@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" @@ -22027,6 +23951,11 @@ stylehacks@^5.1.1: browserslist "^4.21.4" postcss-selector-parser "^6.0.4" +stylis@^4.1.3: + version "4.2.0" + resolved "https://registry.yarnpkg.com/stylis/-/stylis-4.2.0.tgz#79daee0208964c8fe695a42fcffcac633a211a51" + integrity sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw== + subarg@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/subarg/-/subarg-1.0.0.tgz#f62cf17581e996b48fc965699f54c06ae268b8d2" @@ -22236,11 +24165,6 @@ table-layout@^0.4.2: typical "^2.6.1" wordwrapjs "^3.0.0" -taffydb@2.6.2: - version "2.6.2" - resolved "https://registry.yarnpkg.com/taffydb/-/taffydb-2.6.2.tgz#7cbcb64b5a141b6a2efc2c5d2c67b4e150b2a268" - integrity sha512-y3JaeRSplks6NYQuCOj3ZFMO3j60rTwbuKCvZxsAraGYH2epusatvZ0baZYA01WsGqJBq/Dl6vOrMUJqyMj8kA== - tailwindcss@^3.0.2: version "3.2.7" resolved "https://registry.yarnpkg.com/tailwindcss/-/tailwindcss-3.2.7.tgz#5936dd08c250b05180f0944500c01dce19188c07" @@ -22488,6 +24412,21 @@ tiny-lr@^1.1.1: object-assign "^4.1.0" qs "^6.4.0" +title@^3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/title/-/title-3.5.3.tgz#b338d701a3d949db6b49b2c86f409f9c2f36cd91" + integrity sha512-20JyowYglSEeCvZv3EZ0nZ046vLarO37prvV0mbtQV7C8DJPGgN967r8SJkqd3XK3K3lD3/Iyfp3avjfil8Q2Q== + dependencies: + arg "1.0.0" + chalk "2.3.0" + clipboardy "1.2.2" + titleize "1.0.0" + +titleize@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/titleize/-/titleize-1.0.0.tgz#7d350722061830ba6617631e0cfd3ea08398d95a" + integrity sha512-TARUb7z1pGvlLxgPk++7wJ6aycXF3GJ0sNSBTAsTuJrQG5QuZlkUQP+zl+nbjAh4gMX9yDw9ZYklMd7vAfJKEw== + tmp@0.0.28: version "0.0.28" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.28.tgz#172735b7f614ea7af39664fa84cf0de4e515d120" @@ -22641,6 +24580,11 @@ tree-kill@^1.2.2: resolved "https://registry.yarnpkg.com/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== +trim-lines@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-3.0.1.tgz#d802e332a07df861c48802c04321017b1bd87338" + integrity sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg== + trim-newlines@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" @@ -22651,6 +24595,11 @@ trough@^1.0.0: resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== +trough@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/trough/-/trough-2.1.0.tgz#0f7b511a4fde65a46f18477ab38849b22c554876" + integrity sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g== + truncate-utf8-bytes@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" @@ -22668,6 +24617,11 @@ tryer@^1.0.1: resolved "https://registry.yarnpkg.com/tryer/-/tryer-1.0.1.tgz#f2c85406800b9b0f74c9f7465b81eaad241252f8" integrity sha512-c3zayb8/kWWpycWYg87P71E1S1ZL6b6IJxfb5fvsUgsf0S2MVGaDhDXXjDMpdCpfWXqptc+4mXwmiy1ypXqRAA== +ts-dedent@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5" + integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== + ts-invariant@^0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.10.3.tgz#3e048ff96e91459ffca01304dbc7f61c1f642f6c" @@ -22920,7 +24874,7 @@ type-fest@^0.8.1: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== -type-fest@^1.0.1: +type-fest@^1.0.1, type-fest@^1.0.2: version "1.4.0" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-1.4.0.tgz#e9fb813fe3bf1744ec359d55d1affefa76f14be1" integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== @@ -22973,21 +24927,21 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typedoc-plugin-markdown@^3.13.6: - version "3.14.0" - resolved "https://registry.yarnpkg.com/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.14.0.tgz#17b99ee3ab0d21046d253f185f7669e80d0d7891" - integrity sha512-UyQLkLRkfTFhLdhSf3RRpA3nNInGn+k6sll2vRXjflaMNwQAAiB61SYbisNZTg16t4K1dt1bPQMMGLrxS0GZ0Q== +typedoc-plugin-markdown@^3.15.2: + version "3.15.3" + resolved "https://registry.yarnpkg.com/typedoc-plugin-markdown/-/typedoc-plugin-markdown-3.15.3.tgz#f5419a32b93efbdc0fcba60ca4de37727aeb8ba9" + integrity sha512-idntFYu3vfaY3eaD+w9DeRd0PmNGqGuNLKihPU9poxFGnATJYGn9dPtEhn2QrTdishFMg7jPXAhos+2T6YCWRQ== dependencies: handlebars "^4.7.7" -typedoc@^0.23.16: - version "0.23.26" - resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.23.26.tgz#ae082683698bad68757d8fe619242a56d6b5bf36" - integrity sha512-5m4KwR5tOLnk0OtMaRn9IdbeRM32uPemN9kur7YK9wFqx8U0CYrvO9aVq6ysdZSV1c824BTm+BuQl2Ze/k1HtA== +typedoc@^0.24.4: + version "0.24.8" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.24.8.tgz#cce9f47ba6a8d52389f5e583716a2b3b4335b63e" + integrity sha512-ahJ6Cpcvxwaxfu4KtjA8qZNqS43wYt6JL27wYiIgl1vd38WW/KWX11YuAeZhuz9v+ttrutSsgK+XO1CjL1kA3w== dependencies: lunr "^2.3.9" - marked "^4.2.12" - minimatch "^7.1.3" + marked "^4.3.0" + minimatch "^9.0.0" shiki "^0.14.1" typescript@*: @@ -22995,7 +24949,7 @@ typescript@*: resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.2.tgz#891e1a90c5189d8506af64b9ef929fca99ba1ee5" integrity sha512-wVORMBGO/FAs/++blGNeAVdbNKtIh1rbBL2EyQ1+J9lClJ93KiiKe8PmFIVdXhHcyv44SL9oglmfeSsndo0jRw== -typescript@^4.5.5, typescript@^4.6.2: +typescript@^4.2.4, typescript@^4.5.5, typescript@^4.6.2, typescript@^4.9.3: version "4.9.5" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== @@ -23005,11 +24959,6 @@ typical@^2.6.0, typical@^2.6.1: resolved "https://registry.yarnpkg.com/typical/-/typical-2.6.1.tgz#5c080e5d661cbbe38259d2e70a3c7253e873881d" integrity sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg== -uc.micro@^1.0.1, uc.micro@^1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" - integrity sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA== - uglify-js@^3.1.4: version "3.17.4" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" @@ -23072,7 +25021,7 @@ undeclared-identifiers@^1.1.2: simple-concat "^1.0.0" xtend "^4.0.1" -underscore@^1.13.2, underscore@~1.13.2: +underscore@^1.13.2: version "1.13.6" resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.6.tgz#04786a1f589dc6c09f761fc5f45b89e935136441" integrity sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A== @@ -23107,6 +25056,19 @@ unicode-property-aliases-ecmascript@^2.0.0: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== +unified@^10.0.0: + version "10.1.2" + resolved "https://registry.yarnpkg.com/unified/-/unified-10.1.2.tgz#b1d64e55dafe1f0b98bb6c719881103ecf6c86df" + integrity sha512-pUSWAi/RAnVy1Pif2kAoeWNBa3JVrx0MId2LASj8G+7AiHWoKZNTomq6LG326T68U7/e263X6fTdcXIy7XnF7Q== + dependencies: + "@types/unist" "^2.0.0" + bail "^2.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^4.0.0" + trough "^2.0.0" + vfile "^5.0.0" + unified@^9.2.2: version "9.2.2" resolved "https://registry.yarnpkg.com/unified/-/unified-9.2.2.tgz#67649a1abfc3ab85d2969502902775eb03146975" @@ -23153,11 +25115,62 @@ unique-string@^3.0.0: dependencies: crypto-random-string "^4.0.0" +unist-util-find-after@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/unist-util-find-after/-/unist-util-find-after-4.0.1.tgz#80c69c92b0504033638ce11973f4135f2c822e2d" + integrity sha512-QO/PuPMm2ERxC6vFXEPtmAutOopy5PknD+Oq64gGwxKtk4xwo9Z97t9Av1obPmGU0IyTa6EKYUfTrK2QJS3Ozw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + +unist-util-generated@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-2.0.1.tgz#e37c50af35d3ed185ac6ceacb6ca0afb28a85cae" + integrity sha512-qF72kLmPxAw0oN2fwpWIqbXAVyEqUzDHMsbtPvOudIlUzXYFIeQIuxXQCRCFh22B7cixvU0MG7m3MW8FTq/S+A== + unist-util-is@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.1.0.tgz#976e5f462a7a5de73d94b706bac1b90671b57797" integrity sha512-ZOQSsnce92GrxSqlnEEseX0gi7GH9zTJZ0p9dtu87WRb/37mMPO2Ilx1s/t9vBHrFhbgweUwb+t7cIn5dxPhZg== +unist-util-is@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-5.2.1.tgz#b74960e145c18dcb6226bc57933597f5486deae9" + integrity sha512-u9njyyfEh43npf1M+yGKDGVPbY/JWEemg5nH05ncKPfi+kBbKBJoTdsogMu33uhytuLlv9y0O7GH7fEdwLdLQw== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-position-from-estree@^1.0.0, unist-util-position-from-estree@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/unist-util-position-from-estree/-/unist-util-position-from-estree-1.1.2.tgz#8ac2480027229de76512079e377afbcabcfcce22" + integrity sha512-poZa0eXpS+/XpoQwGwl79UUdea4ol2ZuCYguVaJS4qzIOMDzbqz8a3erUCOmubSZkaOuGamb3tX790iwOIROww== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-position@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-4.0.4.tgz#93f6d8c7d6b373d9b825844645877c127455f037" + integrity sha512-kUBE91efOWfIVBo8xzh/uZQ7p9ffYRtUbMRZBNFYwf0RK8koUMx6dGUfwylLOKmaT2cs4wSW96QoYUSXAyEtpg== + dependencies: + "@types/unist" "^2.0.0" + +unist-util-remove-position@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-4.0.2.tgz#a89be6ea72e23b1a402350832b02a91f6a9afe51" + integrity sha512-TkBb0HABNmxzAcfLf4qsIbFbaPDvMO6wa3b3j4VcEzFVaw1LBKwnW4/sRJ/atSLSzoIg41JWEdnE7N6DIhGDGQ== + dependencies: + "@types/unist" "^2.0.0" + unist-util-visit "^4.0.0" + +unist-util-remove@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/unist-util-remove/-/unist-util-remove-3.1.1.tgz#8bfa181aff916bd32a4ed30b3ed76d0c21c077df" + integrity sha512-kfCqZK5YVY5yEa89tvpl7KnBBHu2c6CzMkqHUrlOqaRgGOMp0sMvwWOVrbAtj03KhovQB7i96Gda72v/EFE0vw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.0.0" + unist-util-stringify-position@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" @@ -23165,6 +25178,13 @@ unist-util-stringify-position@^2.0.0: dependencies: "@types/unist" "^2.0.2" +unist-util-stringify-position@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-3.0.3.tgz#03ad3348210c2d930772d64b489580c13a7db39d" + integrity sha512-k5GzIBZ/QatR8N5X2y+drfpWG8IDBzdnVj6OInRNWm1oXrzydiaAT2OQiA8DPRRZyAKb9b6I2a6PxYklZD0gKg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-visit-parents@^3.0.0: version "3.1.1" resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.1.1.tgz#65a6ce698f78a6b0f56aa0e88f13801886cdaef6" @@ -23173,6 +25193,40 @@ unist-util-visit-parents@^3.0.0: "@types/unist" "^2.0.0" unist-util-is "^4.0.0" +unist-util-visit-parents@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-4.1.1.tgz#e83559a4ad7e6048a46b1bdb22614f2f3f4724f2" + integrity sha512-1xAFJXAKpnnJl8G7K5KgU7FY55y3GcLIXqkzUj5QF/QVP7biUm0K0O2oqVkYsdjzJKifYeWn9+o6piAK2hGSHw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + +unist-util-visit-parents@^5.0.0, unist-util-visit-parents@^5.1.1: + version "5.1.3" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-5.1.3.tgz#b4520811b0ca34285633785045df7a8d6776cfeb" + integrity sha512-x6+y8g7wWMyQhL1iZfhIPhDAs7Xwbn9nRosDXl7qoPTSCy0yNxnKc+hWokFifWQIDGi154rdUqKvbCa4+1kLhg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + +unist-util-visit@4.1.2, unist-util-visit@^4.0.0, unist-util-visit@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-4.1.2.tgz#125a42d1eb876283715a3cb5cceaa531828c72e2" + integrity sha512-MSd8OUGISqHdVvfY9TPhyK2VdUrPgxkUtWSuMHF6XAAFuL4LokseigBnZtPnJMu+FbynTkFNnFlyjxpVKujMRg== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^5.1.1" + +unist-util-visit@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-3.1.0.tgz#9420d285e1aee938c7d9acbafc8e160186dbaf7b" + integrity sha512-Szoh+R/Ll68QWAyQyZZpQzZQm2UPbxibDvaY8Xc9SUtYgPsDzx5AWSk++UUt2hJuow8mvwR+rG+LQLw+KsuAKA== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^5.0.0" + unist-util-visit-parents "^4.0.0" + universalify@^0.1.0: version "0.1.2" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" @@ -23412,6 +25466,16 @@ uuid@^9.0.0: resolved "https://registry.yarnpkg.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" integrity sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg== +uvu@^0.5.0: + version "0.5.6" + resolved "https://registry.yarnpkg.com/uvu/-/uvu-0.5.6.tgz#2754ca20bcb0bb59b64e9985e84d2e81058502df" + integrity sha512-+g8ENReyr8YsOc6fv/NVJs2vFdHBnBNdfE49rshrTzDWOlUx4Gq7KOS2GD8eqhy2j+Ejq29+SbKH8yjkAqXqoA== + dependencies: + dequal "^2.0.0" + diff "^5.0.0" + kleur "^4.0.3" + sade "^1.7.3" + v8-compile-cache-lib@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" @@ -23511,6 +25575,23 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" +vfile-location@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-4.1.0.tgz#69df82fb9ef0a38d0d02b90dd84620e120050dd0" + integrity sha512-YF23YMyASIIJXpktBa4vIGLJ5Gs88UB/XePgqPmTa7cDA+JeO3yclbpheQYCHjVHBn/yePzrXuygIL+xbvRYHw== + dependencies: + "@types/unist" "^2.0.0" + vfile "^5.0.0" + +vfile-matter@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/vfile-matter/-/vfile-matter-3.0.1.tgz#85e26088e43aa85c04d42ffa3693635fa2bc5624" + integrity sha512-CAAIDwnh6ZdtrqAuxdElUqQRQDQgbbIrYtDYI8gCjXS1qQ+1XdLoK8FIZWxJwn0/I+BkSSZpar3SOgjemQz4fg== + dependencies: + "@types/js-yaml" "^4.0.0" + is-buffer "^2.0.0" + js-yaml "^4.0.0" + vfile-message@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" @@ -23519,6 +25600,14 @@ vfile-message@^2.0.0: "@types/unist" "^2.0.0" unist-util-stringify-position "^2.0.0" +vfile-message@^3.0.0: + version "3.1.4" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-3.1.4.tgz#15a50816ae7d7c2d1fa87090a7f9f96612b59dea" + integrity sha512-fa0Z6P8HUrQN4BZaX05SIVXic+7kE3b05PWAtPuYP9QLHsLKYR7/AlLW3NtOrpXRLeawpDLMsVkmk5DG0NXgWw== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^3.0.0" + vfile@^4.0.0: version "4.2.1" resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.2.1.tgz#03f1dce28fc625c625bc6514350fbdb00fa9e624" @@ -23529,6 +25618,16 @@ vfile@^4.0.0: unist-util-stringify-position "^2.0.0" vfile-message "^2.0.0" +vfile@^5.0.0, vfile@^5.3.0: + version "5.3.7" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-5.3.7.tgz#de0677e6683e3380fafc46544cfe603118826ab7" + integrity sha512-r7qlzkgErKjobAmyNIkkSpizsFPYiUPuJb5pNW1RB4JcYVZhs4lIbVqk8XPk033CV/1z8ss5pkax8SuhGpcG8g== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + unist-util-stringify-position "^3.0.0" + vfile-message "^3.0.0" + vite@^4.0.1, vite@^4.1.1: version "4.1.4" resolved "https://registry.yarnpkg.com/vite/-/vite-4.1.4.tgz#170d93bcff97e0ebc09764c053eebe130bfe6ca0" @@ -23577,7 +25676,7 @@ walker@^1.0.7, walker@~1.0.5: dependencies: makeerror "1.0.12" -watchpack@^2.4.0: +watchpack@2.4.0, watchpack@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== @@ -23599,6 +25698,11 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" +web-namespaces@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-2.0.1.tgz#1010ff7c650eccb2592cebeeaf9a1b253fd40692" + integrity sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ== + web-resource-inliner@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/web-resource-inliner/-/web-resource-inliner-6.0.1.tgz#df0822f0a12028805fe80719ed52ab6526886e02" @@ -23621,6 +25725,11 @@ web-vitals@^2.1.4: resolved "https://registry.yarnpkg.com/web-vitals/-/web-vitals-2.1.4.tgz#76563175a475a5e835264d373704f9dde718290c" integrity sha512-sVWcwhU5mX6crfI5Vd2dC4qchyTqxV8URinzt25XqVh+bHEPGH4C3NPrNionCP7Obx59wrYEbNlw4Z8sjALzZg== +web-worker@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/web-worker/-/web-worker-1.2.0.tgz#5d85a04a7fbc1e7db58f66595d7a3ac7c9c180da" + integrity sha512-PgF341avzqyx60neE9DD+XS26MMNMoUQRz9NOZwW32nPQrF6p77f1htcnjBSEV8BGMKZ16choqUG4hyI0Hx7mA== + webcrypto-core@^1.7.4: version "1.7.6" resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-1.7.6.tgz#e32c4a12a13de4251f8f9ef336a6cba7cdec9b55" @@ -24199,6 +26308,11 @@ xdg-basedir@^5.0.1, xdg-basedir@^5.1.0: resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-5.1.0.tgz#1efba19425e73be1bc6f2a6ceb52a3d2c884c0c9" integrity sha512-GCPAHLvrIH13+c0SuacwvRYj2SxJXQ4kaVTT5xgL3kPrz56XxkF21IGhjSE1+W0aw7gpBWRGXLCPnPby6lSpmQ== +xhr2@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/xhr2/-/xhr2-0.2.1.tgz#4e73adc4f9cfec9cbd2157f73efdce3a5f108a93" + integrity sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw== + xml-name-validator@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" @@ -24222,16 +26336,16 @@ xmlchars@^2.2.0: resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== -xmlcreate@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-2.0.4.tgz#0c5ab0f99cdd02a81065fa9cd8f8ae87624889be" - integrity sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg== - xmlhttprequest-ssl@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67" integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== +xmlhttprequest@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" + integrity sha512-58Im/U0mlVBLM38NdZjHyhuMtCqa61469k2YP/AaPbvCoV9aQGUpbJBj1QRm2ytRiVQBD/fsw7L2bJGDVQswBA== + xsalsa20@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/xsalsa20/-/xsalsa20-1.2.0.tgz#e5a05cb26f8cef723f94a559102ed50c1b44c25c" @@ -24411,7 +26525,17 @@ zen-observable@0.8.15, zen-observable@^0.8.0: resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== +zod@3.21.4, zod@^3.20.2: + version "3.21.4" + resolved "https://registry.yarnpkg.com/zod/-/zod-3.21.4.tgz#10882231d992519f0a10b5dd58a38c9dabbb64db" + integrity sha512-m46AKbrzKVzOzs/DZgVnG5H55N1sv1M8qZU3A8RIKbs3mrACDNeIOeilDymVb2HdmP8uwshOCF4uJ8uM9rCqJw== + zwitch@^1.0.0: version "1.0.5" resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw== + +zwitch@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-2.0.4.tgz#c827d4b0acb76fc3e685a4c6ec2902d51070e9d7" + integrity sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==