From 6cf2e35f38d9ee4502219eec13c956e1e94ffde3 Mon Sep 17 00:00:00 2001 From: Karim Stekelenburg Date: Tue, 30 Jan 2024 03:04:07 +0100 Subject: [PATCH 01/12] refactor: rename leftovers (#144) Signed-off-by: Karim Stekelenburg --- .github/settings.yml | 2 +- README.md | 6 +++--- docusaurus.config.js | 8 ++------ guides/concepts/agents.md | 3 +-- guides/extensions/index.md | 12 ++++++------ guides/tutorials/agent-config/index.md | 11 ++++------- guides/tutorials/agent-config/logging.md | 2 +- 7 files changed, 18 insertions(+), 26 deletions(-) diff --git a/.github/settings.yml b/.github/settings.yml index 6821b19b..47db0c86 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -4,7 +4,7 @@ repository: name: credo-ts-docs - description: Extension libraries for Credo + description: Documentation for Credo homepage: https://github.com/openwallet-foundation/credo-ts-docs default_branch: main has_downloads: false diff --git a/README.md b/README.md index 9ce38c06..21951c94 100644 --- a/README.md +++ b/README.md @@ -2,14 +2,14 @@
Hyperledger Aries logo

Credo Documentation

LicenseLicense

-Credo is an ecosystem of self-sovereign identity development tools, with [Credo](https://github.com/openwallet-foundation/credo-ts) at the center. This documentation site serves to make it as easy as possible for developers of any level to get started with building self-sovereign identity solutions. +[Credo](https://github.com/openwallet-foundation/credo-ts) is a modular ecosystem of self-sovereign identity development tools written in TypeScript. This documentation site serves to make it as easy as possible for developers of any level to get started with building self-sovereign identity solutions. # Getting Started diff --git a/docusaurus.config.js b/docusaurus.config.js index f851b4c6..7a4e75bd 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -7,7 +7,7 @@ const remarkTabs = require('remark-docusaurus-tabs') /** @type {import('@docusaurus/types').Config} */ const config = { title: 'Credo', - tagline: 'Everything you need to know about the Credo TS ecosystem.', + tagline: 'Everything you need to know about the Credo ecosystem.', url: 'https://credo.js.org', baseUrl: '/', onBrokenLinks: 'warn', @@ -116,11 +116,7 @@ const config = { }, { label: 'Working Group Call Notes', - href: 'https://wiki.hyperledger.org/display/ARIES/Framework+JS+Meetings', - }, - { - label: 'Working Group Call Calendar', - href: 'https://lists.hyperledger.org/login?r=https%3A%2F%2Flists.hyperledger.org%2Fg%2Faries%2Fcalendar', + href: 'https://github.com/openwallet-foundation/credo-ts/wiki/Meeting-Information', }, ], }, diff --git a/guides/concepts/agents.md b/guides/concepts/agents.md index 1f6eb98c..81227107 100644 --- a/guides/concepts/agents.md +++ b/guides/concepts/agents.md @@ -1,8 +1,7 @@ # Agents When working with any Credo implementation, you will interact with an Credo -agent. This will be either directly or via a REST API, like [the Credo -framework REST +agent. This will be either directly or via a REST API, like [the Credo REST API](https://github.com/openwallet-foundation/credo-ts-ext/tree/main/packages/rest). ### Characteristics diff --git a/guides/extensions/index.md b/guides/extensions/index.md index 84a906a4..a361958b 100644 --- a/guides/extensions/index.md +++ b/guides/extensions/index.md @@ -6,11 +6,11 @@ Credo Extensions is an extensions repository to Credo. It hosts libraries built Currently, there are four packages in the extension repository. Example extension libraries include React Hooks for Credo and a REST API wrapper. -| Package | Version | Description | -| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | -| [`@aries-framework/redux-store`](https://www.npmjs.com/package/@aries-framework/redux-store) | ![@aries-framework/redux-store version](https://img.shields.io/npm/v/@aries-framework/redux-store) | Redux toolkit wrapper around Credo | -| [`@aries-framework/rest`](https://www.npmjs.com/package/@aries-framework/rest) | ![@aries-framework/rest version](https://img.shields.io/npm/v/@aries-framework/rest) | Rest endpoint wrapper for using your agent over HTTP | -| [`@aries-framework/react-hooks`](https://www.npmjs.com/package/@aries-framework/react-hooks) | ![@aries-framework/react-hooks version](https://img.shields.io/npm/v/@aries-framework/react-hooks) | React Hooks for data handling and agent interaction | -| [`@aries-framework/push-notifications`](https://www.npmjs.com/package/@aries-framework/push-notifications) | ![@aries-framework/push-notifications version](https://img.shields.io/npm/v/@aries-framework/push-notifications) | Push notification plugin for Credo | +| Package | Version | Description | +| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | ---------------------------------------------------- | +| [`@credo-ts/redux-store`](https://www.npmjs.com/package/@credo-ts/redux-store) | ![@credo-ts/redux-store version](https://img.shields.io/npm/v/@credo-ts/redux-store) | Redux toolkit wrapper around Credo | +| [`@credo-ts/rest`](https://www.npmjs.com/package/@credo-ts/rest) | ![@credo-ts/rest version](https://img.shields.io/npm/v/@credo-ts/rest) | Rest endpoint wrapper for using your agent over HTTP | +| [`@credo-ts/react-hooks`](https://www.npmjs.com/package/@credo-ts/react-hooks) | ![@credo-ts/react-hooks version](https://img.shields.io/npm/v/@credo-ts/react-hooks) | React Hooks for data handling and agent interaction | +| [`@credo-ts/push-notifications`](https://www.npmjs.com/package/@credo-ts/push-notifications) | ![@credo-ts/push-notifications version](https://img.shields.io/npm/v/@credo-ts/push-notifications) | Push notification plugin for Credo | diff --git a/guides/tutorials/agent-config/index.md b/guides/tutorials/agent-config/index.md index 9368bd40..b50429cc 100644 --- a/guides/tutorials/agent-config/index.md +++ b/guides/tutorials/agent-config/index.md @@ -1,8 +1,6 @@ # Agent Config -The Aries agent provided by [Aries Framework -JavaScript](https://github.com/openwallet-foundation/credo-ts) is very -extensible. These are all the configuration options with a short description: +The Credo agent is very extensible. These are all the configuration options with a short description: ## `label`\* @@ -127,7 +125,7 @@ that can be used for simple logs. See [Logging](./logging) for more details on c **Type**: `Logger` ```typescript title="example" -import { ConsoleLogger, LogLevel } from '@aries-framework/core' +import { ConsoleLogger, LogLevel } from '@credo-ts/core' logger: new ConsoleLogger(LogLevel.info) ``` @@ -155,7 +153,7 @@ much more ambiguous in their specification.     "application/didcomm-envelope-enc" ```typescript title="example" -import { DidCommMimeType } from '@aries-framework/core' +import { DidCommMimeType } from '@credo-ts/core' didCommMimeType: DidCommMimeType.V1 ``` @@ -207,8 +205,7 @@ connectionImageUrl: 'https://picsum.photos/200' ## `autoUpdateStorageOnStartup` Whether the storage should automatically be updated when a newer version of -[Aries Framework -JavaScript](https://github.com/openwallet-foundation/credo-ts) is used. +[Credo](https://github.com/openwallet-foundation/credo-ts) is used. **Type**: `boolean` diff --git a/guides/tutorials/agent-config/logging.md b/guides/tutorials/agent-config/logging.md index 5bdc762d..642dd8dd 100644 --- a/guides/tutorials/agent-config/logging.md +++ b/guides/tutorials/agent-config/logging.md @@ -84,4 +84,4 @@ agentDependencies.indy.setLogger((level, target, message, modulePath, file, line > WARNING: You can only set the logger once. Call indy_set_default_logger, indy_set_logger, not both. Once it's been set, libindy won't let you change it. You can also set the environment variable `RUST_LOG` to log at specified log levels. -See for more information. +See https://crates.io/crates/env_logger for more information. From 06b887811e497aed0b932d34bcc4f221e35d1778 Mon Sep 17 00:00:00 2001 From: Karim Stekelenburg Date: Tue, 30 Jan 2024 18:28:00 +0100 Subject: [PATCH 02/12] style: update logo and styling (#145) Updates CSS colors, images and logo --------- Signed-off-by: Karim Stekelenburg Co-authored-by: Berend Sliedrecht <61358536+berendsliedrecht@users.noreply.github.com> --- README.md | 2 +- docusaurus.config.js | 4 +-- guides/index.md | 8 +++--- src/css/custom.css | 46 ++++++++++++++++++++--------------- src/pages/index.module.css | 3 +++ src/pages/index.tsx | 2 +- static/img/aries-logo.png | Bin 5699 -> 0 bytes static/img/credo-logo.png | Bin 0 -> 78387 bytes static/img/easy-to-use.svg | 2 +- static/img/multiplatform.svg | 2 +- static/img/standards.svg | 2 +- 11 files changed, 41 insertions(+), 30 deletions(-) delete mode 100644 static/img/aries-logo.png create mode 100644 static/img/credo-logo.png diff --git a/README.md b/README.md index 21951c94..f4abaffb 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@


Hyperledger Aries logo diff --git a/docusaurus.config.js b/docusaurus.config.js index 7a4e75bd..abbcbfae 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -74,8 +74,8 @@ const config = { navbar: { title: 'Credo Docs', logo: { - alt: 'Hyperledger Aries Logo', - src: 'img/aries-logo.png', + alt: 'Credo Logo', + src: 'img/credo-logo.png', }, items: [ { diff --git a/guides/index.md b/guides/index.md index 941231e1..38b7e3a3 100644 --- a/guides/index.md +++ b/guides/index.md @@ -2,16 +2,18 @@ Welcome, to the Credo community! -There's no way around it. Working with self-sovereign identity can be difficult. Luckily this documentation's main goal is to make it easy for you. Whether you have a lot of experience building with Aries or non-Aries SSI frameworks, or have never heard of terms like Verifiable Credential, [DID](./concepts/did-and-didcomm.md), or [Agent](./concepts/agents.md). This documentation will either help you create a JavaScript based SSI solution yourself, or help you find the right resources in the community to assist you! +There's no way around it. Working with self-sovereign identity can be difficult. Luckily this documentation's main goal is to make it easy for you, whether you have SSI experience or not. This documentation will either help you create a JavaScript based SSI solution yourself, or help you find the right resources in the community to assist you! So what is [Credo](https://github.com/openwallet-foundation/credo-ts)? +Credo originated as a project named "Aries Framework JavaScript" under the Hyperledger Aries umbrella. It has since been migrated from the Hyperledger Foundation to the OpenWallet Foundation and rebranded as Credo. As a result of its origin and strong ties to the Hyperledger community, a significant portion of its codebase adheres to Hyperledger Aries standards (RFCs), and the code and documentation make references to other Hyperledger-related projects. + > Hyperledger Aries provides a shared, reusable, interoperable tool kit designed for initiatives and solutions focused on creating, transmitting and storing verifiable digital credentials. > > — Hyperledger Foundation -There are [several](https://wiki.hyperledger.org/display/ARIES) Aries frameworks that help you build solutions using verifiable credentials. This one is written in TypeScript and is specifically well suited for Multi-Platform development as it supports Node.js and React Native. We, the community, like to view it as the most accessible framework mostly because it is written in TypeScript, and our maintainers and contributors work to keep developer user experience a top priority. +There are [several](https://wiki.hyperledger.org/display/ARIES) other Aries-based frameworks that help you build solutions using verifiable credentials. This one is written in TypeScript and is specifically well suited for Multi-Platform development as it supports Node.js and React Native. We, the community, like to view it as the most accessible framework mostly because it is written in TypeScript, and our maintainers and contributors work to keep developer user experience a top priority. -These docs are not just for the main framework, but also all that surround it. So you'll find [general explanations about the concepts used](./concepts/index.md), [specific tutorials for common use cases](./tutorials/index.md) and [relevant projects and related repositories](./ecosystem/index.md). Most of all you'll find solid documentation with lots of code examples and an enthusiastic community that wants to build great stuff together. +These docs are not just for the core framework, but also all that surround it. So you'll find [general explanations about the concepts used](./concepts/index.md), [specific tutorials for common use cases](./tutorials/index.md) and [relevant projects and related repositories](./ecosystem/index.md). Most of all you'll find solid documentation with lots of code examples and an enthusiastic community that wants to build great stuff together. Are you ready to get started? diff --git a/src/css/custom.css b/src/css/custom.css index d230baa2..1d0e5071 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -6,28 +6,34 @@ /* You can override the default Infima variables here. */ :root { - --ifm-color-primary: #2e8555; - --ifm-color-primary-dark: #29784c; - --ifm-color-primary-darker: #277148; - --ifm-color-primary-darkest: #205d3b; - --ifm-color-primary-light: #33925d; - --ifm-color-primary-lighter: #359962; - --ifm-color-primary-lightest: #3cad6e; - --ifm-code-font-size: 95%; - --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); -} - -/* For readability concerns, you should choose a lighter palette in dark mode. */ + --ifm-color-primary: #fe008e; + --ifm-color-primary-dark: #e50080; + --ifm-color-primary-darker: #d80079; + --ifm-color-primary-darkest: #b20063; + --ifm-color-primary-light: #ff1899; + --ifm-color-primary-lighter: #ff259f; + --ifm-color-primary-lightest: #ff4bb0; + --ifm-background-color: #faf9f6; + --ifm-code-font-size: 95%; + --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); + } + + /* For readability concerns, you should choose a lighter palette in dark mode. */ [data-theme="dark"] { - --ifm-color-primary: #25c2a0; - --ifm-color-primary-dark: #21af90; - --ifm-color-primary-darker: #1fa588; - --ifm-color-primary-darkest: #1a8870; - --ifm-color-primary-light: #29d5b0; - --ifm-color-primary-lighter: #32d8b4; - --ifm-color-primary-lightest: #4fddbf; - --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); + --ifm-color-primary: #cf00b8; + --ifm-color-primary-dark: #ba00a6; + --ifm-color-primary-darker: #b0009c; + --ifm-color-primary-darkest: #910081; + --ifm-color-primary-light: #e400ca; + --ifm-color-primary-lighter: #ee00d4; + --ifm-color-primary-lightest: #ff0ee4; + --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); } + +.custom-banner-bg { + background: linear-gradient(135deg, #ff008e 0%, #CF00B8 100%); +} + .admonition-holder { --ifm-alert-background-color: #b6b2f5; diff --git a/src/pages/index.module.css b/src/pages/index.module.css index 9f71a5da..9c4b13e1 100644 --- a/src/pages/index.module.css +++ b/src/pages/index.module.css @@ -8,8 +8,11 @@ text-align: center; position: relative; overflow: hidden; + /* --ifm-hero-background-color: linear-gradient(90deg, #ff008e 0%, #8e00f2 100%); */ } + + @media screen and (max-width: 996px) { .heroBanner { padding: 2rem; diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 30019fac..0bc3f280 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -9,7 +9,7 @@ import HomepageFeatures from '@site/src/components/HomepageFeatures' function HomepageHeader() { const { siteConfig } = useDocusaurusContext() return ( -

+

{siteConfig.title}

{siteConfig.tagline}

diff --git a/static/img/aries-logo.png b/static/img/aries-logo.png deleted file mode 100644 index a47f121c849186c64dc507ccde2e5b7d73df39cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5699 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 diff --git a/static/img/credo-logo.png b/static/img/credo-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1b83bdaa0df1a7c6306821c320a51d426c75063d GIT binary patch literal 78387 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 NanAcJ{Y=pP{{R+>3`PI| literal 0 HcmV?d00001 diff --git a/static/img/easy-to-use.svg b/static/img/easy-to-use.svg index 384cc0af..c973f8d0 100644 --- a/static/img/easy-to-use.svg +++ b/static/img/easy-to-use.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/static/img/multiplatform.svg b/static/img/multiplatform.svg index 93cc5a1c..b99470dc 100644 --- a/static/img/multiplatform.svg +++ b/static/img/multiplatform.svg @@ -1 +1 @@ - \ No newline at end of file +progressive_app \ No newline at end of file diff --git a/static/img/standards.svg b/static/img/standards.svg index 54f9a52c..6d4416aa 100644 --- a/static/img/standards.svg +++ b/static/img/standards.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file From f102b0eaadc8757ca2d5055cef81c06b5c220e51 Mon Sep 17 00:00:00 2001 From: Timo Glastra Date: Wed, 31 Jan 2024 15:31:16 +0700 Subject: [PATCH 03/12] some updates (#146) Signed-off-by: Timo Glastra --- src/css/custom.css | 65 +++++++++++++++++++++++++---------------- src/pages/index.tsx | 4 +-- static/img/favicon.ico | Bin 15406 -> 15406 bytes 3 files changed, 42 insertions(+), 27 deletions(-) diff --git a/src/css/custom.css b/src/css/custom.css index 1d0e5071..37500a51 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -6,34 +6,49 @@ /* You can override the default Infima variables here. */ :root { - --ifm-color-primary: #fe008e; - --ifm-color-primary-dark: #e50080; - --ifm-color-primary-darker: #d80079; - --ifm-color-primary-darkest: #b20063; - --ifm-color-primary-light: #ff1899; - --ifm-color-primary-lighter: #ff259f; - --ifm-color-primary-lightest: #ff4bb0; - --ifm-background-color: #faf9f6; - --ifm-code-font-size: 95%; - --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); - } - - /* For readability concerns, you should choose a lighter palette in dark mode. */ -[data-theme="dark"] { - --ifm-color-primary: #cf00b8; - --ifm-color-primary-dark: #ba00a6; - --ifm-color-primary-darker: #b0009c; - --ifm-color-primary-darkest: #910081; - --ifm-color-primary-light: #e400ca; - --ifm-color-primary-lighter: #ee00d4; - --ifm-color-primary-lightest: #ff0ee4; - --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); -} - + --ifm-color-primary: #fe008e; + --ifm-color-primary-dark: #e50080; + --ifm-color-primary-darker: #d80079; + --ifm-color-primary-darkest: #b20063; + --ifm-color-primary-light: #ff1899; + --ifm-color-primary-lighter: #ff259f; + --ifm-color-primary-lightest: #ff4bb0; + --ifm-background-color: #faf9f6; + --ifm-code-font-size: 95%; + --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1); +} + +/* For readability concerns, you should choose a lighter palette in dark mode. */ +[data-theme='dark'] { + --ifm-color-primary: #cf00b8; + --ifm-color-primary-dark: #ba00a6; + --ifm-color-primary-darker: #b0009c; + --ifm-color-primary-darkest: #910081; + --ifm-color-primary-light: #e400ca; + --ifm-color-primary-lighter: #ee00d4; + --ifm-color-primary-lightest: #ff0ee4; + --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); +} + .custom-banner-bg { - background: linear-gradient(135deg, #ff008e 0%, #CF00B8 100%); + background: var(--ifm-background-color); +} + +[data-theme='dark'] .custom-banner-bg a { + color: white; } +.custom-banner-bg h1 { + color: var(--ifm-color-primary); +} + +[data-theme='dark'] .custom-banner-bg p { + color: white; +} + +[data-theme='light'] .custom-banner-bg p { + color: black; +} .admonition-holder { --ifm-alert-background-color: #b6b2f5; diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 0bc3f280..cd2ac5c3 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -14,8 +14,8 @@ function HomepageHeader() {

{siteConfig.title}

{siteConfig.tagline}

- - Get Started 🚀 + + Get Started
diff --git a/static/img/favicon.ico b/static/img/favicon.ico index 90697b9fd9b414713ae68990b4175b39c591d130..5578773c2238e887df27a2232c083cdc3da4a13d 100644 GIT binary patch literal 15406 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 >E$o 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 From 229b343eeb93010cb8166d33cca9f5d0d67ebb49 Mon Sep 17 00:00:00 2001 From: Timo Glastra Date: Wed, 31 Jan 2024 16:37:46 +0700 Subject: [PATCH 04/12] feat: social preview (#147) Signed-off-by: Timo Glastra --- docusaurus.config.js | 2 +- static/img/aries-social-preview-layered.png | Bin 128289 -> 0 bytes static/img/credo-social-preview.png | Bin 0 -> 61312 bytes 3 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 static/img/aries-social-preview-layered.png create mode 100644 static/img/credo-social-preview.png diff --git a/docusaurus.config.js b/docusaurus.config.js index abbcbfae..b8cc52c9 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -70,7 +70,7 @@ const config = { themeConfig: /** @type {import('@docusaurus/preset-classic').ThemeConfig} */ ({ - image: 'img/aries-social-preview-layered.png', + image: 'img/credo-social-preview.png', navbar: { title: 'Credo Docs', logo: { diff --git a/static/img/aries-social-preview-layered.png b/static/img/aries-social-preview-layered.png deleted file mode 100644 index bba31e9221a46bc867442a71e07546f5da4052bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 128289 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%0DnJd}QORmFRTK6PjDZOi}BW_GL~0PSM+ zq6#_SU6wy-Nk?9?RkRSuA-lH62Mv@5RaD|iabCd`HHm`-P7oEY528y)Cbh`71Hz~h zOI^saaAawY?`xWY{7lfPVwuLdSN-+Lf%o#g!-;`V>&gzgR`hOL^TKSe^Ua<)?P-fW zeR2nw{@4+P2I(M}#fzISbZ~9-y`J#R5J19AXeh-K>uoJ8h-+^ z1l$MJ(*J-1FvUc{tW+W2U;lTe`eYZq(z&mR<)5mnmtA5W!q+3yo~J z^BzJWKC@`72Y<>Yr&-!&e+gZw?mZc`UBmTs8<1T#B9puyKJPK4*5TUfZ0_!FN7&mD z5|ZTAYU`BcfPLb4;FAo!!Iffu5P23rcMxo<{JMhxuxq>Dr%wiPL>^{PaaGGkS5`;E zrdtb1yc-6BUIW}v>z+0gpNJv}=yx7J*ywJNb;D|TC5{ljOM!t)SdX5%n01>$jV9CZ zB@<9eBX>g%joRvj;7#0^uppT~V~z!3ii^uhis|@O;EiqHM?j?~55eaUi^>t7lr>+# zp(PY?5~;JIU1gx3iGsnx@^{I1AlyirFSLe9055ad3nYoj!tIk3{UM#p=#?2O zkI(^O3U)f^LN{B|>D)Ev3tFulX(1nFJ2v?I7@ou?`Y6|UEw+AGiKtc=k6ZDiSdLbY zsdj)y_=tImC$ZEQ)iJhg-wlo7a57;GA$c$3Zt;uHWh!vS` zfQtP){BnTtBq8sBq`03y4EjYrP?Zhu0&=1WxT_$x#oC#dH=^L~E*bz`_>i=swbY_99Fv(OfRjn%?7n4Lb!iE4@W5kbmL&F7TN5iPj%P3yZ zB(yp9Q+rk@P>uINY5PQh9Sui+jVMqOFBzJ10$!9;Jj9?;hsp zffmL6Wk7&NW<_KV%yw{26k*T2XU#MPS*NPO!YLFa* z;%^YI|G=^l)P!<=b@p0hTw)uS`iKK=@H_w(%srThG55Y83q0lu|x~n$r3h&HZqeKp{?G58!-F>;y?v1 zjOgrc3x!p?o7%%Jx#}Q@RRFDVU?9E@i2wxF5$8KATYh;%4;cMoM;BN3ltleG@UmmX zmsz+)0tVUZoKW%%$0TFg=DUh$$X3irybR)_lbD#|Jeh&>OFic%_%m_6&W-V_>6&FR z2+*}Ki_ygb*K8~jy{uo>%C(`Bv6!4a-mA10-Y@5_m6O=f^^*A-8FY~t;bP8)N;pBa zL3z!_0=I_nY$wa`UX)^nr8YFuP!V~ENV|t-fCCD8#eWGwhjwsv>xt!mH3U72z2+ql zj;%yJ#>h~yp>x1dR|$O*bUvD(Ghn#U2KpW;kW{Sr_S^$$e3A z84No1hSk}!LCiuJ`M+w_OSFVd@M*VO$an3K-}{K znzi_bZ{IyjGcz@MSo7=1(Ba4`rjP(YFlw~s-~OGI?i>32CM zDB)g%*s?%_#$E=TtKqvB9IN2?j-@g1`ye@3XEjtpQ+^CwSd4a79K7(tmpUG9)gp<# z=H4eY(2D0&;0Ex35Q|KLu1X4U7GMa)G#CxzL^Ob%3{BU>eK|B4ZCaU74KicBK=$L( zid4S(o+N;B%;MmJdoRABGh8LA$ek1ww3}k*?7TB`bYx6_`jT3L`&DNUDXuqQW|4rI zF&JKyLt6M9511O<_#;FBZRIbJuzb{<4@K2YP>hY6oaa6F!PE!c!RDP?fg|7-Ryk0K zMtEQgOClsHa+zU4RR*&MgkceFoZwP-L|G9EXy|Zii@bRlVm>8<$h=)AuXUjQX=06d z%a^pnrLxAEq<$O$DYurGPM0)d9MOzT19SyRXfyz!RyfdEyc-s`PmqX17>-42A}rXm z6{T}k=F8Yk)?y2Tge*)YF-!uxBE_=aPTh}7=t9tr?_ z*@O53vA8baTigm0$?|jrY9UlgYupWR`35+Ki4yJbycN*jxUf%f1exv#LF`~1>@~Kc zr*NzHzeVS{#-i}2yk)U_{dr-ih3WEPq@`tJhty@6Tv90V>(v9{WQ+SPP;D6SR9!W2 z2JVT#c~fB6z(@ve2P3^Ki9Rb~(p)Ldch4=w>&E~QGnRKY!fO6w1j-hk$%GK+O4V6H z<5sMIE7NuCiz87j2%FXlkn(}hDLxstR!jp)&sMb@_JziP3g_?gbf@A7En$ELxDVKf zArM7?N5Mt#e;ZnFqNjX)(SR&WgTdC2E4!mPb{0_t4;?*ph%m_p1G1cPLDAO;&2^x# z;SQ<0dDvPVUySEJh;s&>6Sm8bpmz}vCizJp+o0-;i^1K z`RhK`oI~9`kpPBfk%(M85?US^&^owZ%>&()$Z?*HUb@Z=apahn!IDw1lud*6Dk#cg z4k1Ke8zVGVDw9&?924oYLFrzqUYz9t1!Cw($$^MA!r#IQriXMVy(|=1=RzeW2YZb0 z`sAOe!R=8*>PkokSy&qg)Ym{el(!q2Rk^DBASY4KTNjfXJs|6w;yMH%Yr5@7uG z+QPgshrYh-r_kST0g5bxV0KAM%(DK=du2PD>X(f`TM=E*UFi);XTeH>1}p+m|9yAf z>K~1jowJvXv-~aF?oSdHf%*n~Y#&6lgCS@!4Nax*!NXXY9-gb2O5wd#@KC@WjtB6B zhK7Daf7bz$rOUeff=xc7;ii8pt7btH%$q9{q!JE^-Z`Tze}au%Q{wJJ(l&G`Fvn6e zl5}KV2QR+*0_gU{5~85ckP~4Xk@3;zy=6TPjHzQc?du0L3%sz?TJU~wPXwN`=gu9J z<&Ts{rTBNnE%)u+SW!1KEFVB43l7c)u>b_#K}X%Ddd&)>NFceqLISx-90z-^ud4MB z2%sA0f@;iRZTuFY7B$CX6A7YD#^5Fx`kYx(J50{v*sv+zXL)`feHVZPwj1(;@gQNm zOjHNxZD=_NsnGAeU;yc`>m{4#cpJYkb-LaA4jh(oMEW`=az8?N)PM}1F2%joz4UhwtZ1T&q**U_)=O0-xx!=DIE!B^2tEb zQed@dWLK@Q&2KfXZ~^-FFPQGEW&kU;3{q((SH=)#m59#WA4vApv(gs8uFIk^{B%E%xclW zcj~VgmNvrjrREXr5A#R-J%X%@gatd;Oi46 z!(p=zDpVq9a~-jHU>KAik{t&6!t{za2OtTEwAuiJ>6y{V0WD1+kL|`oAX>n@4AyWd z4%MNNCw(HI|Dx-egeeW1s|NYvEQp=vH6I$NQpWD^lMoVk0M!H{vrij41$pFtl)M;i z1cY()0VW&06N#_0>^f|RQID@6Hw-|#k4BP>IQH!TvO}DJbF{n8gFG<(y6*}h0f(;A za*4d(oey{j_!8nC49M$;fZPhmb8cdv8{K&O((zZ+N6D!fCoOmunzj#&|C(rg62r*| znMwJ@1+TJrQU6WjRezZT5J<1}55J2M;F8K)WmqL48>!No|E#9(zm6V6YQST~@WT>} zptoO(_l^r@8zk}d-0v|4^5HQUCHjX2 zGl1@c(72~@>h4OGKb&dRq~pSVaVdU=Q^&&4=Apph!^$O<*ge77FK66MZB4bbon zaeE3u2$Mbd_|R09{-7|+u;=e=mTcG9p`P+*|HA`1yQy3fxxFFtg8SWF~C_8 zQ&vUppy)>G$fW#u%>zQbtOX7{j8u=VV+{d_>3Inf z$fpN?DDY!;!8Zj_p3?LCi4iuxpA|g=x!rX>u>=0xXemhlK(MZq2cif_%j++8v$IO) zxw2Yq39N$tU>=@$8+_nWn|tt4(onJ{NW2ZKkq8Lnewze65>_DTE+(oUZbdv*@|0%- z7#mIdl~$Q6%$J$AxLPmo=#wuqul_y@YW;d?*P;8?U>fJsTxG5~|2egSt2L*xW%zP{ z_6In$5)P{}M#=?rTI>LvdEnb7mxNtu-IxNehWX?0=L<$e-zCiCz(QpRZNM)0o~O?Ndb9?5raI!%nTN!=R*D3O`LraEA%gF!<|-BnR6%!WE4j{`ODTYk2M<;c_+!{?cJK#c{RvDRIwfEG#DwNESR&ujnu{WZ-dWKBE%&;*t#6i6Y%@A z|Gp153)ygVMjJi7A?UF>rwDFZ z;FAM7$%_D+O2oiQ5ck67H?7vUer^FJ9yByUZN9OrU5+tQ=MJLg%pv8iJlPZtgGwJC z_p)FrY*AJwksWSS74|wgjzi0Nf2~!DUf1Z_!9@5fBn-GoAW_{1)7L2C!H=7PZ;qP$ zenaA1AVtmorkOy8s&hq@$q`r}%%TJ<$b|l2tcd6@h$QkpbpP z9`1j4@`;TC5*pJWT}4yIIJ4%I+$}9lKsx|&B!Pz5h=(Qvjg7Ok-MT$iWp}C*jCxRJ zP3E>;ppmLLRG0(YN8ry3J$mu3k-auavIMbnrdmKPRiy|0*go-6;XvrfQ*n{806ZPs zU1W+32>8)5<4h{BRv^3dlo(QZ-_TQz4dxsj>(On#F^o+^9fOX3v#|hDiwGW4z@NwQ z?FVEB(=SpuRueJRi%Kvu+;uO%9PwF>^5>K`v;+vUH3^tks=!fCuw1IHA1|G)`pxvDsxZMS0Y?o+UIo26LPb3@=s4Ek z_^Pe!2|e*qUls}q>~zs_ z+sLQ5rcLwIPUoC*Zcvaa;zT@NML|Jf{1h1m{BrnQzx{;b{> (K(8M;DF>~m(s4N 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

=7d#fcWwDY0C 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 K#q2weUj08$b9!t5 diff --git a/static/img/credo-social-preview.png b/static/img/credo-social-preview.png new file mode 100644 index 0000000000000000000000000000000000000000..50aa0043a228f7d61db34653c0f6d0e2f3422851 GIT binary patch literal 61312 zcmagFc|6o#^gsTZ8M7EOX2`x|NTsOAlB_cnQb~mo#gHOO$dy_XS(j|+;g7id7kIo>xiR+EfKGThaiZ!#%|Rn z2olSMAY=p%1AY>(a_biaQJ^)eXikwA`)ck=F?D6Qe6w48+tFLkRZsOF|Ta z7*B2$TKu>mR`!S$xi8uB{>OL(1R3Z5rXSn-C0hR#3R)qR2Yv#6p&>&G(j}nuR!opC zNpv9>WtXofcyf^tRJ6dOZvUf9IYhvH#JEiwFdD3G$|J(t=Or$X@DXg0k~UoJe<1m! z1H3-c<;_Q4z?jY|aaTxfjpU3u%|dff+-mh-f&g*x@SP2&tt5k8vaaC2-@YBIb3X7U zWI;UiL=!9Az8P!};gGs=g4j>vO!mEgMKLl1*qMAzvVKs|(|E0xi*(i8CE6P-)+Lnb z9{VL|*H|IeQmIeiVRRsfd6)Ce#q+BG&p**Kb4GYuT>?@!Kde{K>QcS~KC3Ev=rdyhX$jcz)IF#PzcRK{Z z_fe>S;oehPxjp^%i@{-8njp#||4|4i zuA>TX%2#$p%4m0soVX?)gplt!HsSxqdt?8!c!{_=m;E1jl;uvw8ZOJ#V_cECEem_5 zaH$|?xw=@x?HP==07OH;UOZu9*=w@OQ6F}pq0ofbu)FWg$w-y8%V!SOk_Y>tJa-{+ zV()A6*2UNKnqA?z1V)|iiROk-#Kv{1{<;9d{XZW*yYy|7zM5D=*35^S^8j#gsNAJ- z0?$5)xXdc-Hi^4P;Pdg@y($ymV|Q5La!>jE-#ZSFn%CnHE_X!U+z6+eHBXYvjD2v} zb+qDA(#LBs82Oe5=HI+x9kvaJcs_r>=r{n5uscV-lucpfnz^-CB2wlf)rI~vH5|4m z`nW#v7v+yLTL9GHT-zzIY*01`d}vBaAoRWi z-LwKl3=N{M+qs=pH|c4(g}D+=cQ~M6ODYaYbsO^>pJQ7y__%iqb7s#)mM^nL1kT6q zU-&7@A+V;uC6i!3@TLVE)U7zHPm z+o=;IIHGE0lBTBt$KSa}Qmo#V>U`w`^(rF!ZyLi{hooL@iTzg1I2cukj_1J99q6+E zY=Nosj)q~YRVB(h09yz^;YZGS3X6Nf<@s_1h+Aal;7y4OsI^?Af<2&b_=t@evciZ^ z$c8PkTf?EPgGPs^mchxOYumqUv!}*~o{2FzuH7sFw$Q{ODgniFBzAfR7@qo^qrbe= ziU7M=(Gs5>RTB3SrOtH}v1<$P2jD4c(^R6QV#au13nm7=kp(h&((6^$fu39aVl`lO zrY1^gN{i5DR9+h-@E@j*zkBH#a!zP<#_{jGo@itji_B1;1u(o8a2kkUVqUA8V*Ewn z%C^P)&t|z|%?PCNQi-09U{5a~s$Y!Y)|1I7n$ z#X2WVJDZV_uV=wFd#qpdW7y|O1@q2ym-}(CE$jXWJ&hBMcE9TL|4Kt?9lrR*p$jYG4a;Y`>d{>~@ z*=1YcZ`iyVIAXK^G3i@&+gjAYP0sQ&s0Oyf719%Tiu&t|&S8VK4srZptOOiH|7S>- zG47LrEl&-&DVn62xPT~v#G+dEKMN_a$~j!3w`wCy$CHNdd5^wRZ?Vw1X(G0S15P2M zcq$s>_XUCdZ6ovbcj(09;GGNo&CipnQyb5c;*oOH4QVqmZwBE3w&Z;|@kpiq=>p~F zYmNxF?(H&&R)$G1k`4krORoP3%qcv)t-J4ZPIeA7Dk2zR2?My_C%9grDn?7w`+ZBe zpTS_(e#R0lfi}~04G19sehUjeRax$I?1K%sI8EPEJTaJuuHXIXJQs%ubQWP!L@GuC zLBl+s<^78BObCwiE|Wp_u_r3_s~!?GmO%Y_-7&Vcwx-=e&SOWkG8#%+kJcGE24Smva zlnCX67ZwQl^2)sjnxuH>#VpQY_7h5i&@KTsqD#C=<`Xsuva*7+EnEKq_s)Uo3tkJY zS?HRRB3aM`!;OsM4!M3R5!`7f2u?Q>Q!H2tFate%%-i+G>5@swl{O0;_zi$1_=qs* zg-Lhsh~(A_xJU#+xO#KXbdH=7lrvvZlpMmeN9m1ynv$11mk}eoD;c$2m>#eCACvBF zKD+@)q!Y82!y$t)b5UcoHIKB`*mL>j=h7N*(g_q!H||Bc+}&@PdtN6OI-jN@LcEZ^ z%W{Wo&843#P`3FXM1u0G3BGsqd=CV{X@&!v{>No%nLnK~$2%-=x{j(MWC7Q~EZ^4` zBiIv*yZgEYB2aO{q)YCp5M+J)LXgm5qSsi6P6w6)d-LW@PV3(nLtBl?ot+5@=|Elc zS``qK6SqWa5l(#=-PsB+)q3qZoImM092K5y;p6rR{_cfl=g3GIO`x0qFYhY9oX#;a z{jYaLiEwsE{SQMe+r2aw(2mNc*?ge^?gegjME}egH735fsXK4Gx|C3O8GflV8Jps^ z93*ozMSMET)ES|I)2J;OG583SG1akMm^(SfYR!Y}F|$rT2I7>aD8@nwiWAGb`Epu$ zvmRo7N}t|6V>rgfIiD?zi6GJ5&Jv(dE&|wm=zF%$qlLLa^FZ<(Atmhju{h~=j_l>F zID~x~NIsz#02*M7l?ZCDn~pEi++LX>WcIsTJTEPp^jr-C*k?veG>8B!zp& zPajUihS5W+`?8CmTX#gug|S9bKUY^z-83AaZVy=jW!&J-P}DJcfd9|VK8NGru$MJO z+zLmWT$Y<`*`3IoVoUy)1lq89@5o4_n*N)Fgd2TFp zplen!soMP9$1MV#cxd$>)QOhAPnn_*NKcDh)00d_!-REXf0Z1{W!SJLp3Ir8{_x(g z6M^DCJHWr0lB|AH=)~Kw6YJ;$Y-opwU|)Mw^K679=o!wc2$O_{JTHqYdh;+>i7b2-H#2-0f=dc#* z2V{m8AYhG^`&RJu{N^O{!ZBDqf?p6hW0nvZ({Gy*eexJxs4k|p zcDDJT0gG{5?#~T-#MST-dKjS*5%&hzTX2ZcS=xpj0BntEj@=QAjmA|eV6VfPX6V&A zY``y8&?3e;5>mykb_R2B1=WSIocU_HX{Wdrz_Nph5X;x2BGnF>%a!-BA&I~3gK%$N z=)kkQWAm;_4Lrvk6f*s?&DGc>0sW1P6mu4$%`T9EFZT{axfz`1LFK&XQ zV{C0%s@lR`>%gxicf7%mt#0zKX8?I$A$0bvLmGwtJ z-*5Yr8P69sQ&tle=^>#}@7?zyhSrFzh6@^4t?R253R>6EBR)7g`A8!LZTOt31G`Ra z$=PQG>%3KIBJClx7fIcTnecrOZ_zy9t*d~9VSlI}Nc9KvQG_fNCC)@dkJ)a)`mGGl-KN|z48YT1hb z2U8=QOwU?k+m^Ov9`Z@Hc7%5wxG?>w3VeRfY^@f#_D7D=oRlHI9Xg*Dz{@^2-RsV$EQS#GYifYp~#}+@KuUC)(JiLdnk4X3!R%K64Q;M zZEw0i9I|znKK7wal8JaM?BH7)BN=rg@1M+LAo}b>{zeW){wWQMmRR?*xAG?0cj$oPThk*kDUunRAtBcMa1`CDe3(S(5E#^q)l6ui7amKpFS2vceB zQ`WaqD?c@{@eN@!3md^gz*xCs8}{I7UP-}AVQ+QrZlCa^s!t2I#CUbh;JkN?`ASP2qD*GR=dLFh4vGEd8;695I_sj!CEL*ZoV!( zs0&UmxFc$FXYo5=`G8MYY>}pi|0*OvZRIiEJ(47y*n&kI*IXpR4DdbZ9(1RlH5Qrr zx7W<&A~c1rpYH1BhrBzLCCFm0gD`8rSP_<(U^R$su8iK0pu&u%jhTphohl7ij-g{F zCG%fKO~%U3u>uXch|d~%ux~-1`*m8`^bjW{d84phix_d>F2>4nJ=e^*w*f4Jr--j? zYo;aSvef}Om~V(K<=pF|)BKuh$e(}8hK#i4j1)2lO?3yV`;<6IHZLX|c7V{up)H~PK= zm$GK2qRt!)MO*tRi82|Cu{vwB4G>`1N(2zZO99BB0F9chxCkJi!%H zmTewmU~bK?1($^E;yar5e$TNVD$`*D_s-2n21!W)^!?KqeH-|>_rc<#rAHt!-Nz`v z;*pyriUys+f961QHCO&OA25PvpCZMAcRk}WCE<9S2(VkfFs)$P3G@VJcC$qu_8_P| zpiy)pTii`vONG6%;JkoN$Gd_i3I$J|fC0ir1Bc?K?U-INs7K^>I#AIm1;%i$o1TA4 zsyB~CWzBOxL}qx1=CVSC2 zGT$Jo&`n_EN`a8n4~#IuE>&K9cPzpLE9?lf^5{zfFIT_GDegn^)vIRudARuotVP3u z@@tc8ZMCnE`g@rQym9)zFLig$>>Hfm4;f9?r{ zy2ORO{e?WbyL0DS|IhEw5V_WAz&9|)L{I<|FMPwz)3gv_>wV7OqQNZaEEzdDJDhLk z32n)f8EsVzLwfYTn)~INPzr=M>l+OR7>>l&y}OG!(TNzh`#y_EktXY|5s;RSBx)v! z#gxuSGO0_wS&uqzvQZJt9e;+LLM|(Xho|@k0Evz8IU8mvGZ1DeqFx9dm_k4w|Hz42j6a~cT+$wH z+ZX|6Ja?M~U|2vBO)F;BA*ovue!hJqQ#v<7bTB8wv7DVH#6|GZKO6$E04pFCOC1uJ zRIM^NIAAbRXW$Iy`^q2DhH9?ry*~1rCLRVslP=CPO1cSF7{GJ));=6R>rPZ`m_}2W zD7dmZzTfJ3{h-=G(+9gD$=NQa0Rd+dD!1ub!6He#d$Ks}wr~3w$H4eny=n%Mv+Nqt z>oUDNi*j05&+lyMd3un{IHCz|^I!}Mos81Ed1c^Pa5p)@40N%= z!O*Srrlhs4iv*rq7ziEF!24={)aQ-5cpHQZ_ng;ru5+Mm2>-EjpCYja{wYsO0iDT^ zA*gbB_M30khD=b(x)fc(Pm<#{>PA8+6es}jC;u6>Il-zt1&qKzoC+ke14!_sO*zd> zxKL>uYxNGOG4ZYclDAx)7jL;&wI#pZ@1pvJ4o!4f=T=^MwM=o^{5N-~^W|FI1H!NT zF(NrmokaEBoL3Y0^kQlfF?ko-hVFR`*a22hkOTq&d;!>^q{_XDgorMA`){-L{A!N6 zLP}lU)T=bU;Ds8&varQ_Ji0@@EN9P(#GOp|6#wimMe=+4+ka#-OZ3x~Oco2oTIf^I zQK^&B@6`PD&jdyLvE5J5OPw=Vl=F&7e4bf@hD!K+#vTRU%j>yfx3+EH{Hj9tX7q_W zJ7f>|Hh?HXF=bbx{Z#~lqd#a+QR1~f_a0m@H0LFjKPXvpRKuoIa-CT1I@FaMhh>aC zcDXN61C{|0&!vP#j11c-Q1H zV6*~bv^Ojv$GJpd+TynzeZp20#@XXi&^1vL6jZ^nb!&B_F!iDsYjC+-up{ikCx=q( zAf*CnvvjL5p0*F<_N(IAqHt=~+v1taXkS8q(KX z45y$N?@RZyovWzHI320iGJH(7`<&9G_nhBvF3SWy0#*IsjuD^w=_>ay!JTmnF!BUR z1jh{SfuBOGRXe*jw{VTgsxc* zqAmJGxP2DHhE>(%)y!9ChbHJfgnBbdvzkI0vu(bXw2~1J-~Gn~zdSn;l3<(@(HqR0 zFk^r(rakk#UfQCNu}jPqON@6@outW&-<3u}x)uEr+460*-%%2bGn&dmcblUmB=~`0 znZI9G3r<)nOmE$PL<954IYoLXplN-=GUpQB&J+Jd>PFofhFRTfFe{yT3t+rk?b=yY zk@xX-5S$IiBpDfqnsf9IjcHgD#?)A9BH`Hyi}IC~V)+sVDHU^XgABBtbbiw6d(nHm ze*fXc1DbNoX7TVGq7R>F1dT1)Y1nY$6jZ}hPdaYgaFC1{KIenxd&QYSI~et zh+~DMI4Bd^Q%F88=`owfV*lo`6_O)qYACq}OWZn@9-MZICQ$>}l8w1W?F|Tk|(Vrg8~~XPDA->&arG&)kx;N|EHlHC`i>2e}CSj?)3T2#qL$ zG^-RTV@X*t2QQJXOq)hlAhg!S>Xe9ucQO!^75V$K=6qF47tqq{l+-c!eXiptBzOK} zI5U;~ywfu{kEOT1U!ldqc!oXLBwbxy06I8#RJm5jQ})uC>t zvc$?IPf4SwJDKfL@wD#giIL4RInR~Rvyrypk+)1~^Llq0V4z6%(aXX@L?Er2~ zS>{=ZS&mUa&%^8H>%VU<$?TkEX&m}bbb)5TL+XT8?_76#bxv(4At;dZJ{d|S2_zZZ zkV-9t%S}%EUb~E%MH-Kl_OEtSKZ8W<>Ax76y)A;nobPSwYY`EV)cs1OPC8<6UFRw% zdtZ+V(?tOn0xPUdqIH8d?~sNd&8!W-57+un6BfrqL2CL3W^%h(56{#kuX;!HUbONY z_6IcA;22|`7j22yg_Jd$CL`D>f#W);`u>&cJW5a8)_$p_mUl1INEIOyb}GN?_mAUR zhsv&!5_|IQo}RmR*wS;f?)VaytTxbCG<-n2q%T}kApo;;2(|n^s77!pUJKsU;H+sw z(}_lg!8xmvudI-Fe7IgcV$GC>n|YGoi(;(g9ozoE+{a{(F#na^{h!W#aM5_|HZQ9J zwA7NBLw6#3u3Y>{gT~LEa~9%jrn-X}##+I8thxnCy0Uxw&E$%c%&-{LlY|SAZpTXQ zMV?;Hajy7!CcuBJ>6G^J7ojo`G~$-+V)}} zjaXLirVU#6|Oh= zWHPR!KZegcsko50lW{WBrv_^@G`g>831N(l38b=pM;dCebNQLvxhYMwLVxcc*vj2T z%fgPjM6fVww%FWRIhGvfg-NLTMJHtXGDO_O|C?H{M*JLT=^!2VYKC)ddg9O z+12BOB|9Y4V-|I7yp`H*u+J9Tvgdea=ks?mF42OJkV41BL7QJ}O6V~&w7O|>ky>@T zY~}sF&=Lg1bh{irZGQ0c-lYen-;Prt89AwCqNJn2Nq4Ai(b*szHhg|zZNu$FX7iH- zO*BqV?-{jz1qZ2FI!NGlwqrhi`~E=4>yf9zReXVozuu0i)?D!JpCg+f6{gDM?& zMV#{e#})n9KAzI*&tm&ebmzG(!o&t#=3eEIh@Yi@Yfk<$Dd!>T>xT9BojF+2eA=O9 zP1-eUpRk}ZAE&08Sm%3W``S-;dH_wqiisx$k%0$~om?=|dIi7kUZC`L1wk0MDw}AK zYnI#H+dqfymR-EB#BW~bY4dZ+^mk?U3m%VPTOyKcZ@sn$*ncj9+wge=bz%06D7H&_hPv)f>-sthQJ7kgcO_~XZu*CCd7>8_!rO`i7~ zeFv+(?rqlkCaw-a%2~EAKd;@yeTm-zG0{@P!X_WY&kAXI#`CJ*g}Ht~NA|AKid?H+ zj6zOc@D9Fw8?981tRj8e(= z9}OyqOOb)>TREW)lHyC7bar7~zHE$WAl-`03<^!2gy%{?m&N^dOjxi{fiEp3%X+~hFNIJx}Q z<}K%km#>fi8T|Cc-cR?>y{ukqPkVHz*z^3$xC!YUO_x)bhHO4qv^HJ#XGg$kxeu%# zHO%M*);s1BjI&VRWghqo?)K$7YJbA1$CJOC@4cQAH(r4l*sZP^pCXv2p)JfC?}M2& z+p4+T8a<_LI9;de3rH5|%(*C=2FQ=Yy12(aQRA)5bP#U{2;VaA4H7eVm4EQ zk)~p*t#?x?KY=8g^W?gu&r-jk1f}5PX16LewW)Qeo+C$;L+JS#D97=#K)-8eEQhXt z{AZv+h~a9zTzysWZq#U>M_OSgb`)k_kh;?)imC zg~3?L4+&{JeuudI_f~Nozl#JmF&h)pyes2z%ZlH~Ry(^Ng$v}?8(E!NM_FZ8*A%b4 z%(}KbDnG#G-igrxle&EC=`9yqzL>oCYVHcSb8%yt_L?-ghkG}dW~CR!er1+uF452k zocS*N{*?l1hm+j#KL2}Pp^ye~Ik$4L=?nbaA9kh0Y*ciC;S%XfAvRm*IjI}C3C_2L zr#YbOd!d<7_YcS0d7E(Q7 z!|=}LiQwFNY{XXT>)3^i>*}Wt6DF#5v#fV&Q;6|UP5d=bo!}OPhG$Y_;@cKV*WP~Q7tx2;voDdeF}9g(eSZCI zKVKP{?ci2r^6<&!`?s#Fd3Ntz;{8v+#Pw zYt9bgA!e*yR_BjZ{vTV7St6JCQ%j#+O-`b)Z`i%>9cE@U$5jqKYRo~Xd>{8ha5%{{xy-Up_G<}0x zrX;<9ZqnL`kGiP5QKksRJ+W$)@X?Ucr4R~=i9t}=h}|AN1eJ|ZgzWn726@;5t4=^q zeAX3Sest<4$bB^iuV1}R|9rfvR?O24ma9+ml!h3u-z5^Zehnw6q(;eHz*=n2iu%Y@ z@srG-BQr{g4f09X*L^j-x$dBU!o6tQx(!>3oW(ah51Ew;#Y z_Zz7$JG~@KJAx+0x=>}H(d(WYn2T7EVoE!vHo{vGbTQ^PV(wuT{4o9p>8XK)5(l~G zfY`g(WzQ5+g4EEna@+g(R5`iu(#W2*wibe~%#8qqS2I4a7C!@G?- zp{OwTAaeTM53#K?7Q~LkZrMK>5RLpt1>n^mjA? z{+}*#<>C$O(4{2Hj9b zVHFe@Aly4=R8d10X0mT3O8SKUEPzi+vh~KJrETTqbiHO}b zcmu|R;iZR03CHW`RWK8?(B^V zE@z~S`XzGeTbJ)Yo8*5%>1p1I`&);i;(T}FvQtJxkG%50{$%Toy>f2|yGtDiDMt>c ztd`w~&e(iZ@LPMA&UW~D69j1|(o^SX_zZX+A!hGuei-8CJh+27wIRHTK3MXkkiWBj z^ZBS2O$+PIMrm7zjnc0mk%O1}uld;v7;3};V61BGy@y)`JZr`dT=|Pm#uZoc9;maEBo3@-R9a<5*tZXl93n5n7 zf##Ag919HnRqy{}G&#tf3m#osQ&Cxgc|L*!bGlRn14TccrKlijk&(BMWmEh^D34<8N+T^e2pA0wlOH{+&ou{Y2oeS$=5%f zZ*S=NVyf1hqHr%TJI6sax_R0yC&z-_fCICbI7_K_Gu3)l2)G`(lv#52^p}Ps-WiwT zY~lrS#&-KvGT_^5NcVnJPROx{J1=}$4>;3Bo7}e^`<#>GU>4Z=wtLIn%A;uksj{^X zcJtS2YyzwQmt^5UHV(gujANgv#)l!luN!!XN=168O3~FRUVjJlQZjI1)KB16%W3cN z&5>e{HF{fFH=Rb|RJWG-m+${yR-r&$ecB6t6Bg*^FW1-o{(caOfUiZ0cyU<-0)C&O z!h*|c*-JH*9DRSv8ul;LJkb&@P>b0)-e1IOD=fn#2uK#2tHNOV+W3DbA{Sv!_tZOn z@2OH`P@ADo38Q@}CgH@0<$)ukSvg(7L8f}){7r1~iwFL_gFIh?CDCR1nOQEt>7*>)Zz?p zaYC&8=aimGfZqg*f2Yp>uZO6RUoS;_Dv)w*0-ya3p@W0&K3eWt%B_j?CL8bMlL8m6 zCe3FDUMo2vW&Ku=v{xZU>E6z9^G8a6pA7!k-PimCC_6IyT|@ChW#e>QbsJu;w3sP3 z&1~%@-IG)o1Ghrp@Be;uHqsyI@g11+E6m*J*FB=YTyGowq#_x3jB zG?V`wDOAW*wUBhQCRX=Iu;vvO`jM9|V-Cu?jYs1v^q_iFnjK0Ih9S*~dlg_K@+RO}-N-+DmnY8E1tM2jeV)m@DCCBA)ijr5?Dz2>60G@xC{{qQ$$cTd zhw|l$)ILvZ_h00mU&#KE$ZMQqwt)V-=e|qxz&g*VZ-b5(*Ka)k{Ohtd>~2l-|HJU= zr`}gvIi+2rG!sO_86Kj@i>%Cf3-F!&R0B=ck6e9j0(bYRmHfp0p#^0d64z(C<866E z|Cu8GzroYh&3`{Q6rO-ka8wEg*DhJX(&3V|OV|Y}TB|!pt|E@ z6|#4ZAK)vVTL5#};Xke1|42o;x;6VID3;i5drf^5c4>pTA6*jgker9I*l`;4JNxO? zdlvSElI{74P7z<+qYn|LqbJ`Cl?DIkDh4Cjam1f71-SJC%nv-RKWB$#`l;;I^4C`& z)1cMUy-V8a^GO&O7~EF$$-9K0g#!P}rh`2Vf>(@|h$i}m4cOL?BZ{$C07(JS)z44N1JQ__Xk;>mF|Y{JASEg?1k5ZNFS?Y7_0uDZku!|vvXN8Np@ z@g}CWG$CDf%QN}U$fUdtx!w#J#=NRYkR=$^zge=4B@&Z=x3|NpWQP)==LiL^(x`T> z+*Vbm#0T${904JJ$9}++@%qctfBLp9Nf?y8pg0{nzS{9EASbrc|4B~qsHl5f?+$O& z_NX{1y~xu=0c2w_Q-yU|Ib`MscGHny%U{^S&G=lBKdqdaSQ4wOTCRk)R{gVQU$ZG5 zZq#_Pj|Hb?o1Bh}^Tux!;2tgw7M45am1E0)Mh$FnTsq=;ecEDtRpf&M-(HV8m!EGR z?P_`4L?3-!?H})2N!>J~-_22?dn(~n8-;Ye`&F^wah+oN*Kyu%^0;6a3yVo`Yp}mk zcnu2fE|1$(gJT+C=Cw^`d6ggoQb-=^+!~XjOKG$f2M5XwhgK)iEOy6CMhvT#tw>x# z*or-9^Ajgip|MIR1@?upKm|SlrjJ}=tRUk(`Yc~M%9gA$^xN)%IwG93L#lJT8L{Uq=_DF zZ^>N?F&s5l(w8z!o=xGL<8kWf|3wNSwn4Yvztpcd(NV2^;jBp{Wk%9PbL|G}=o%>f z6oc$)u960u4)8h3EB<}7AXgpKp}-Oa#c7X&FNVTG$pJEi`F}|EzljQVx4kwua)PoF zD!3FxaoGcBbsypq-IG{uuLZ{akDAu#gIa{L=JDFTs7XU%pjgCGkJV5VRt{u#@WZWk zN|j-W-q9Nr&UNpSA<+K!?_?2!n=ru$??P3f_C1VERtW`v?gF7)lMj~p3@IB#e$744 zYWwmQu<#`FpMqyS!EVYU`AZf4#(x@URaVnGxK_bDAVh|M_}@Qv9p%_@@3RmT{FhGf zUFt}`B%vIi?UffjRJH+=5P!+qZ^%C=ea%yMyC##vujc-q+w5SbhM;_#bc?*u))}9r z`3PKrAWi;JTTc#=#c{36GLp)b^yv$0^tm}gm^sE0KpKzOL~e_abe z5A>9yL@0Mj*Q1~eiIsd*fNkO087T|u;Zn$8jkUPKrDjERCi4+3S2N$p}LJVS6waHnc=m}tB5O`4pYO0 zVYr2BIM+S*d@^#xQ{3NV zfZy^E@R;BUFQvr-XHsC!cuxt!1v4$Mg(vU-K6-w1PTI}E9_=(bz0E*;Uywwoe%pz6 z)-AR?2I}u@9Q1=4kbyg~aZ_cXW++#ZtAd^luNIoay7l(c1)lslGK$)Sv8=eaz-CY%v)V}Gulx8cO$(a9_7665IDB8tyBVFyfJ2v=} z^_`L<+oBIe_fm!ric$6iw4IHgm)YrcERKizONOAL;E*+V9q@*Mueht`;nBbC)Gb5} zN2bec2^mutpktD9V=1fcndKJacnkM{aPFg z96iLm98uen82wXrWn#gchi4zxximnP(XmUPZXd4?VzCaCc5O7uWRRi%fN~XLH#s15 zzUXaLa$JTamA!?djHgA04*A1m0fC&acxlG4We|#&#B=Vl)nX-)iDWG1J+FVnEqe9& zscVOb!&y1F986{hCBkQDd%IymE7pS?J_*+(%zwgP3Vk5+&$X|JTJYzCGiRqL)f_;} zeE}-4og2T8K)_xhpwHG4L_#8A6zIX6hovgz)?Z^Cj7=V$4w505{RJ}!XghPu@hhx| zJA-zlgum{DuTiK3i0GmBE~4T!^%7vO(KIyG9joj>P#u%ZucPCrZ`n=5=hkL_ihn&{ zzz+|#xXs>H$!{%N#=i?vScahW_cP|GBs>&asgnm4d?gil<3klpA3PMWUVH!8gjI`N zs}1d2_IiqQ-@b+(!;);D8XHH&$BcN@>_#Js6+2=UtV9ek)lTZf+h92T+OhW@tAqxs zIY4qGijoYrt6NRx8)ryx;1~Mh`o+|0cSiCV2d`nmQFli(L34NjS28i->%5MGhb|g< z1)>q@2daqjQP4=P?OWfj{RAfuqRTT!Wy%Y~bmIDnhL;;1x3a65$i$C3>>^q1(Ie!2 zjm(U#g>A^p{lTCoP6kD)5?X&2g-H1Di;l)7@at)A7uHnwXm5h_+_8)Hsm%v<-Mr{h z^W8(~qgLas3q5=p8yvkDdgRhw-(h9*SAPF9j;kdQO2^h#){eR4CF(?TF!TNRNA$~* z+mEV#prBj2R=shMjAXoazr<=;du;a@OR0kMTo3pDK997|^stRuwuT(DRN8<$42Unk z*})+S*;0u%sY!Q&?5)8BRI_*9sqiX2c>@j@CGg-1kFrfzSv3sV>vM7`3;Mi-Ur`S#~^*M@%m-?v6pJAIPm{#*5n? zHbR{w?C+;Oii5{i$Q8tx2n~cAXjmeYDOPGbvU2Q7_NUY+IyJmK>CK6RBrZIOccG^~ z7o70M-ig-vZAFNaw}}uW$05LY0t;pea3urvqI0}fEGHpVAV06f5RQTqwm?v?7dx32Ps9lvRkJN()vst zAKPdSKgT>giY-P_z$aC#c4m-d_{iKf;x!bc;mZv^%(;V{?}r--OkB&7J~OmF?iuG& zzg57J612;gusP|gFoDXg)JsoRFNf|vRkC7QWaZq-I`N22zt(iZaYH{(JCqu!t!|?B zkuQ5=iU6LwJoO#V<1a*Z!g%a||&p;v^W%M}cc~ zV>0qE=DYQs6)9e-ruLZSLx_}Oa0$t4lQ^2Sk*UTs*~DSZ_lF!GVGapyHq>dUhSyLL z8!l+qJ)FzmWz$?bY4m{bPKuJL|h9ws# z0Y1!xEEQgcDeHxw07s?b86BM1_pzMn45X^l+e!$vx)Y_U65 zar~2_0&$gsf^e2yPBG!_mU0RsS?Ev3Lc}j5OT}r=$Tvd*o-ZaL@yf0ai@vO!!z-^{ z3LQ&{2{O&oF4Jw1$m`w5+l3j0wqR@!M$%is?I=R_&wEu^^R9yGrPK?*ko>u62jt`o zeY?aF{wq?tyTjdxA%un00T+vd(1+m;cNIJ-!e25)9Tj>&3o)Yff%ys5cxHU%0sS}c z=PzkLi|8Ra+D-<@PNXQEVqI5^x-y8&C!NBkht21*7i2=F@X^(E&&%5)wlE+}r~(@E zP34YyFmodD3V|@Engpr=2{XbEKd=j91Ln;bc;<}SSjm-5h0Z1k)FSbUHIIf8+61hH z1VJ0yZDeK9rHgg+qW-Isl!(5-RbOI3gS@9S3^Ra<)(8b!hr0SN0-hWSNv`dsI!yzxIo_fQlNwW+pj^>zTTcd0Ixfq!Nj)8R+fEPF;rvPC;Z^SLNjQL^z zjk?8i6gUsAP=B4PkKrtU)N(DEi37DJmV_O;r+SUNxqcoh=nlxHI`uv>z>dHm=CPZ0 zA%^Y+rgiRMyk5azY#l7)j#yq{b%Vb$+RjG%kdxwh+6S5MXy;kCxlGo6mIUe*TMTn% zVwmuH>LFp>^ijsP5sRWrDO(CmDlawE(RGI&3`>`_Vm*V-TYwm@|4$6#nGNi$Jj5na z0>*Ht`%{$-mV;SdOq^ncnu5YCQzOsB?CN^A1^dZ5@KHR`gShGiDRk*uN42f!936jE zH`H>@zDkTVw>nrEjRWU-$U`Q0g9C}p%=hkHM0~Ujwb&;SIL3I!A{SiWBUG>Lh<-4X zvwDbr9dp~ph!FQUjEQ%#-cyCMjs+F z)IMkg{*>JXCMOXw@;fiiYw%RIp?4quPfr1md5xL&WA|ZmtUpJ2T$fsHl*QwRHx#>P zG9r;7q^)YVc-jg~B8RvG!avI}prG7Vn${$GuwQEUtEpHz@f`0pVU!j8L9OCr=k59_ zTON21asPrAWHRB8L!4J@Ui$V0w_)!K?g%B770gohIb8>#Y8Z0+SQe;Wb|mJ^6pOHK zSSfwrdFR3+h55kNx3*C2Lpf=W=tEQFUxN~Z$L^IXp-27}F*uok$=ctKbeoYLDjsl5 zWH&en7$K$)0?ky=Y!Ww6QWH%$vt$Kj1>t9%8mFl}L0X~9*_A(HQeK)Y2h$*1Hu*+Y z8w%qC1u)^hq!08AygE9W%4RpwQ1l-yl&rgW!tIBKDUHl30G%ByeU!GJvs@@eLY5qH zS*9BTJ#>^x$MJv))%?%PGP81R5axf|bYNgPv)P()u0w3-Wtn93+}+IdyLk4yey}iM z8RLZJbdbG0_82uWhaISgy2QekY&+h3x13PMpH!;x*Vt6JilnJP$O7&Aih28G>tPS; z&v+ODk`9%7dM^i)ikTwDXJ+M4+|d*L>L|LnTR|>s0dpfu-Ylge-10c9$^-9@9$=Zj zbn%pG%s>1l5ID8nB(c{Lqg+y);_T`f{3sAe#ykH=ZIHiYRETL#yooLcV_{fbi6|Zv zEUY}{yDlFo6LFE@E<4l`wQ5Nr+vL1pZY*?vQJATnW##(JLTO1$$X=eZ?lo7eSk*V> z6Q|C!sMfqPrUs7-aXHPz@Ta%VeYD~OE6_#7p8kv7F7;7y59fQ^+tX*k<8d>wAE~b* z9DgB>`Z_AwbyE>`mh;_f5|;xeYhqxnK}koh<5ucHg(T3^3{#o3Xy!y$k2WUZpf%m&Ny)F6x}idyOiN2pz&(LSeX6Q%jDdYFDz?sujjDxX~Orhi#)$tn2#z+b+s_0=*v3+~+JU6+H?mTI%9ZO6^DtdAKlShx-= z&3uV;RKzF`K^5A!vc-sQQcb^nJ6efL6Dzm9!7BMF96`BS7YAkq6uAdaN>(FTf`i(oV3pc;T8SSK#}MC-!Kv zO&lm;oF#KQc6-K!$>fHOY6Y8Su#o9Zv{CS+s;qbP9ZS0%q18;gWaW6Cisck7kf|?6 zPL8Tvt(lnkm z1@|(x0kbQ9@NCL%Y~|Dkl_3Pt==&1!3gxBa&~D1t)=ZL5OVN=%953BO`3GE(Hn-3i z4WI}!P*nGxE+Qs`ysHN2rnXMO9l)aT)<8u18Hk1zW24NlIDB&6EA*lG{=eq8) z)BUx+%!96j>9f+Lcln)fO~@L`nWZ%NuMMbDfBgcQ!+1o9atnB5sCI6KKB{*Fv1d&u-WAZ{m#u7Z&*}T<;iP5OsmZvXGe?|EE z=$I120HnubD0Ea-V(P+V<_fYmVoo*DWMLc1X-hQPq}Tt+GM}$?x~h-k5DQRJn1>Qx zgxAC6g-^gd7RL|vwJ)4O?z5N zSjq>Mmcn>masiFlu+rlLCbw>GIh5iSf+gR6^5)cBW?I=;D(~%A`NYE~uyTLTWyPSl zcjWh@3zj^5~o5_;k@MabC$5>uL3!Ls+-@=Lnxpd6kTbFk8{Qtj1Jq2 z2;0eeTKg{?wXxo+ogUZrES0>auk}SM!P3Y~-ERP#Pv-AzfA)M%4b@`m7^X>Ahta8b zSafBWY4Hj+%Y>7=Cr+);_k`ruR2(&U19(Q|x0YD!l@wDiVL=@@v%zZDiHikms*E&3 zFi+FNG%FvHlpzu>t;po?R?8C|?mzwVjvX|P0}b6qyv>hxEebwJlKYE}S{Yff!jAq+ zr|2bjXt)!MXBIKz>gc1(3CUP11qGRL47UYEN=L~kHmH^B>P~26h1tzjOjr zoeX7hukW4i>_gFAs!recyk_m>J6~ z6l1J2Qc{-2l6{#WODa((gcy<}YnCL-jIl*!+O=s)i<7mIEosJ5D$5X3lu<%NQ&B?v zo^h5s=X-vi^UwJ!@B2P;KlgLr*L_{r!>u4yEZg6SsvB3EQeP7U^=#VPAi^6D9*p`h zvI}QPae68GPCU;0+vf43D@~XTcIC2fw9l8(EF3TGnk>(?u)RyG6D~|OGKYmFwG>%b zkBsHOCg2C>yJ#RfOn3XZ)Xc2*&SFHs-VYmNjUbOBjpbbCz(>Yz^n)c|nQafPQ*`H< zy}#dmDbY)lGo%2aNTjUX^>aRQR^+)_K`x_pP};s%cB_PWk}gHa7-y0=#;jo<%)@ae&Qh1Gq!iR!(Bze{)-*O1mZN-? zV62luo;w?Uc3}To`Q%aX(wT7}5x6pS7IxKbLUIv!;~hef-S+Q6+~TX!M>R{EjOnL3 z(sb^YbI>Wh_OS2t&Q|3rPqFoze9C%|rZVMS&b>zfxstTK&7mh*Qero+g`xIIYKkHH z%j$-gVjT!aiaFMB_Bhi<)Hy1Ac7!kM1X(H;a8np7s22xz*CnPsKwYXo^#&XH#LZJ0 zV2J$y&UKCOwQ}1#sZ{7f`DGUSM?~P_5j!3n#h|a9f<{7>cQgt$cYN5%*GeWzuo1jD zgZX8SL6N z7^=OzW+pQS0Oeu!>kP*}KC(jh+oNvT!HWJ-KwpInVr?gG9%>JX1gEdCfwY1YYD9`^ z{v4lB5$OJB6ORL0iq=+e5D>MIhr#Phh-y z!k01uZQ}DU*&;LWeV=6mPYvG4>B_scwgDC>#k{~kJ0JME^ZSaletVT8-Tx3U@ z&r%)zxpU#E0}J+(r#4;<({4bPVzvwz$!$f?ns`Xvx`gu94PU8&tt2c7zfzR)oO?pDsVl1%bG*+9xgr!*lmZXITp8AmWIIX!o<5h{(V{^x zrZ|CLH4dHHD`^i)4s7V7>LcOxcP=mG z=g~%f0d_%Hib4i7m_nrp=Ct!ZoAz(=Hv~^k^oAobEY`CZ>Tbk*n{-Q>?V;YsXIG)# z!!R^%C?0-m{SigSzKvQ?)uH2GI_zNY=pSNR$wbT#RczBLPYT>EueT}xujOyyhza9` z(8e((Pgl4cyF25Ui@QA&B*T-TAa5Tg#1hw$!&@tM(r%queqgU^M1-&;@NJ1?rbgw>ph-~qbsxydRMi8Y2orI(t~67&V3j* zYz|?ath{*dR2hTH@`$n^J>a}K)a_Qz{IKl$PV_!h{~Mlabn0BV=-~BD&MR{|x+2-s zkC$V+dubvkgAr=GpRT#QFRqlyt&9!@og2s+JPGnXbTfp1O96%Mb?p>k3ipb)5K~H4 zWE}*#vdV1|6)YZv?nBkc$F`x!rHuuCRaLCcF1H-!Z#}p@kHQR#LsAyF1*N&zVu}*N zhWP78T@j&QWLl$<7&=|yfe@q8JV*%+LQ~>@f4QmCRVLmO{R!rL12Guj*C(;%={@7a z!AXqP)XU|)hm=QP(N2`0ThSdf&375fO?B^Zeozx;8jv^lh@UaDhy4(iIFD~HHGphe zN%&a7KJn#81Wr@Rn^4Y_RuWQU%`s2c_BcUK%Z7{Bhn|_$1d9K;dAeZwOW|-(;7uPc zY-Z_~BE`_PU2fSZhFS(}d2#J$w*Xo=OP*A5R3rfIi!4UOpyP3Mgvy~_z0#fyocfd; zW?w{6rCNM1Ni|ZpW$pmKB_q284CQ_zHx>;SC7{k@N)FIVOKR|2<<55X{deW^KVcPW zU?B`x%kn&24g;A)QPy#EUBxi{t#Zy9Q^73Xp4@EzvGUlPm>vq=LA%MEmnjj4e*Nv z1|1bEe;k}+4A#ITta1(A3Qs^JlbAJYZx)|h_KqL!(I0LsQD1Z;R$-SL+Y@D9fyGKdwN+%Q?BNBA={mvQdYiOMk`v^)`_tGl+7h@l2!b%hjj#!QWPpkf;Igvvv+?P0ohH&7khKdpFLM1~}`22{1% zyhNGNLk3netO`&TpUYh%8Om}va!(+~SXB1nYwtK@04X^Lf z%Q?O{$^CoTB@Hd#94D&MJj0A8XXQlRDaH6-9^+cE5c=>aEZ&Vi8R&mRWb~h@2~2^g z)5q@|8ayfzcv>F#&AvC33JUWSDKc1Q5NSnth4pBpYho$N<{n{i1q2gLcYVt+Z992& zlXLZQqmX2`hZ{e^OBxh@H|lk{ErN+rS2d*X-6n0KnL~L8+uyr6e0!R9E(Pw`kju1R z#oiy=t^n%)5CBXBiP*&q!Nl7buf5Ilk)@PjAB#Byu*sEK(cxx+Q?h{&pcMo`^35GW z=59Abjt?vHL3!(uZ%$RhHy?h?sGnImlKXDI@Tq70FqZ65}sC>*%Y zwtJ{kkEo#{(Uuu5Mm>E;+g@3nJ`&?$CqY2(IdSsK>ohfrxAeMAkjJh=7}mk-(t+%y zWxFs@iSmI`VkuP3B+71GM)}oeV;lA3(&dVTh?sB^t00_Y9Wy3VSCDydhr`VG=t4>6 ztRUt#1P1?;{I9AA4s*NsYIMBf1;RSZb$VjC-*)kDKHp8dE4Q0Am>xW)_O+bqhYPhA zs0REnCZoU9fphBTmIbFqGW|Hf=AdXVil!Y>lJqXWl&RjkzXkBmgHr5N z2~4H)%0mjiy7nVVs4j)c3V|^SU=Q1%=|~$evAyibBy^UlpnDZ+UB{QbP-cQ|&X^QX z>KFAj!5`McorjB4;9_iMx&1PB*LItpa*_Jh9STqAxdXOq{;bM05b(PR;gfTk24n{} z+A$CjV#@=M0N!F6WWa7b%WmeFaZ{)xbWLW%LLhSBi#IxXY+OEeG+Ms$%_&09heiV7 zyKb0VBlw3RB;}#RfqDnrs0&5==kf|81mfM)bbgfcQvWF%X$X(n@RR~MDon%Q$ME>F zfwD@sf~d-?J^D2aC6GAi+9v1R72llqJHiTU2!|kp{B>D#NCg%bf1M2@1zot8BFTz$ zHvfI-nSRX(;?KPPVsT6z4IoH`SC$zPSnLqIZ+*X?Y4uFdAmj?Cl83}tT)~%1C?9!1 zeUb=ZVt1!QcFQe4Q}Al>cl(DCIQbmWT8wEKDMK(v89~W)t4tdB3Qi(-ia_vt2A%OFxK|T3tje6r4tvR7SpYz zvIpR|5PM{3C^i-5UVCLY#xf{aS7nrr|Bi{_SjJT*KiTEH9ckK@iHA-e4cujj=7Def z>&!Btv0Z%_&0SGIls$}4su9lA6)QE%xGXAR#WZZC#0`aK z49o&zKj57~GM_0jYDc&25L+vC;5W-^74<|savlOyCrFp9f~ZITJg)&a!~qtJXhhAv zU{Mtme2(C5OGY8AEL!)9to=akCH>yTL16^#PsdBcmkslGI-7U+*@`sv^I>;4t9==& z;-W{+8p^XicaNMkE87lZ?)6mC=<_X@$QP#sbnGRifQZ}tXT&)m;ZgIlvBv}Gu8CaE z2!y{yKiuU8djfyg<3ipD-Glk9Fu5%2TG=^g@0pq!@(%AXCv1W~;w^Vp%EcZV$gJ~C ztB}k+qMkP(`mcHwG{f;Dz(@n$0U=AYGPh%LQ-_<#H)hIZS^Yw7$%&()&EstB(!gH4 zb}{wFL*E*bKIN07hpye8>5d@J_Zn;+=-poDm;QH8@8&lfz@K#@%bGoHrYw@QP{|uX#>rao#t)L0p=g#h=NFggD&!rG$X&#n(||>1Nwe74_g7 zyEWKS9M=$4_?8N+9_9POrx9vCBV!?MnmIrPynzZyZ*tQ{=Use-SKh{x|A;pT8s*I& zoP+hPhpjE7&OLDR=Ea|qy#>|miuk@Fe3;qddGX4Z9h5{7%)=jEiN|#2;V%$%o#AF0 zi4>zKMxRrQtTx*T8@Nk3UmsB&n%mi`6U>*8u`jC>Ns{3qIiXiYqjRaBu#R~r(NUa^ z;gTXFd$ZP9NUMbNS|;q52FPOfkCB!%aD{|e!I2})vw3V-dfj>v<9dJJ|3Mp+h6k{sP0hJ2@lhngeilt0^mJ|e~a7#~#4+gMi zsk>|FraJ+!PPnKipuIVDMnJXY(V_c&*nN_L?+DEaBfgURP=Noa6P! z9O!#o6`O)&gAYjJhuPDpB9^??fxQ|c?gt>vr=`FNCe>)|6A|kJimn04&FL@J_8_l; z+zzM%f3%HY%1cqm-{ugU8-zaWl~ZxDU6PJ0F}^Z|YEDG+OXHlC-#9%U)qMCpl%*&X z>$0J_1A-$1j5khK4Gtytn0>udGOu>%@)z-oc~iu6%f{~>=w;$d^4d*)gTd>mU^MfBvCB5o6yWubE&*Olenr_aIN{^U zBPx7LiF}a>axqHLrjI+07BE)&VMFaLK3tRz>B6g}fybUhU&&*-+bkuMl|=t|DCl8- zQQ=1Hz%saPe>Qle7vqs}xUu^p)ulGgiN z_1jd!ypz?LoKqq@28JDO{;?$g{kE+Pd5)j|F7;XU%{Qxe(y=APX8M~hHxgN>J_EEh zv?v*Qfef41rdLi$dEZSv5Qp z-GQP{*2Z__Dn7n)z0uh{{=+%z_IrnQf4Z+Onm2*JI;ORw@rS0HV;IN7IaowtIxIEn z(F)bYKe{ANp7w*s@kW;Ph)%w`DdlJ5qYfo*Nj*z(Ko!0wpw*2hW z*QFwb>zDZfItgHtRPH(dPZpHW1Zz9}SOSD9S%-Yok_4pl()87fN%^~59vw;NIj%-( z5WzB5hUzx#55ODh`p-XtPd>1i{FeRzP1GShk#vOxAYsgQ*=xV>hyNoa@?qF!{aqsn zWIgcO;#LBElV$EEf+N0ucfP1}4Ch+y0;`UPhPUZkx- zhhgJ)O;3HY$|U**Cnm%oT~JQQMp17hw;iVaFMp1IC4~$I!;8_VK^ACU0&vhWXxpOi z8pVhbD@lSgn7t7f&!+CZD{GkGvnKJ{*>o_MJp&G$njY}r=Z})YEBO2R)3dDPU;E58 zhDW|xiG+ct=ZV*$-(Z=+*WOcpnQMYt?*AkQQQ+Wl3+<(!NG{|kMD?OjV$S3Iui(2! zpwf~H%L2eVyas4y(HlRKHAW|)6UvsW+1-;Do;C2P4krN2g^GblVjyX6_FKuc9az99 zPnb43XHNZlL;qK@5M#i0Bs8|^veO^cztW9^t1e-CqvE3|!2r{s6<@VRbQ)JGfBWt> z63`LT_$D=FC3<-2B|o&6^q8gp+BLX&n)?mG;el7F{RYurSc`64|KFXi0c&NLAyW28 z1rz-VudKz8dCX0Dw0v0eso#1kpevu{n=C7pFK%wWsqF|06pXgl;bKw685V)_#FID$ zvEKKBpaz_u?$1K&zaj?``YU{eDRC4GP?g!CswwpLF1I|I1~ljSEu1)b^nCU!C2P%c z0@*brV(g2v_8gF3WXsjs-?_x2;8%05p$sza)(=cIsWbo|9`GgqpTi@A4$xOIk;7oP z^#+N&5_Lz|Jh_lNp|1v6AqR=3>^Xi+yk@SuX#UpguP+IZ=CR=5UTr-wn{M0Emc1a4 zU0Fk{+AaK;|Nk@cA#67+QbSEnk$^KGl=Y$zX%kgm8U+-c8WrPo;EaO{FDYMErgumI zRk8Ej(~q3Z5v-(xf~VjCw%Vk4znqIpDJ`uuQlrB^#c^6*jt+oRK@~2e)u=vobUW+QeuZ( z$R|13lEi`H6%$Yl(qL_hTZpdIEo;dghtFP0r7ovrTw#e8)y5r;2{beOb}TO3%+i9i zR&Adw{uiU9|8pja0f|XX0?StlL(@I9rPj|c5bmMU*V@Dp2);OoH@Q$&3cl47lRZV` zGfY#IXD<&=Px8(5vpTq%Qn9ySy8I1u-`#Q&NmGXl&r2pcfB35Uzg4Olz;7HJ?S${B zM^A2W_p!{8;jC-Fe~P-lB7AWc0;lgKi=S$v+hE=ooE0l-+7igR+;bvZjs^(#M`sD) zN_|K7rgoQrNXbrWUPSlnj@l6Qk(o37~>rgS)JUE ztChZWAJ<#uj1CMU<1Fk^DcI0-jKuneEWL0I=fqESH?lHLIX7VZrT2%MnG(0+me${a zKhTI-VEuFCiuhN$WC8vNQ;M9A3%@a-ol*w2FC3^xgpc&W)!Ja{%kSfqY1nT5OOcGM z>`lbm3i!kTHn{fEM+o)Fv65>OCV%my(=!m z;tNVBd_W07x;<@r40Sa8Dj<(CXqtzyn)-QpzmEYG!BQ%tXI&~) z;k44D?-AqT8fp5Av`sMf7Qc&^ z_o)Zrs%YMzlGY4}G?-!EwR89LXoJZ_IZN&{l?b?V{`;kodsS5}a%Lz&Cud~|26&CF z7AhH@>r;PEuknidIbqYV2`LId&EO1pPsE{tE%iEWT=oN>^VI8<1dROdVBw-Y$HDczZ~@q;!nOqJg;yb};805yR(5KM7AD`7otp>;|%+-S&5$MUvi zXhJCR?)RJM>$r`CK}COgchNwzCbc)5P2Hy{Ug@__T(NuUn*y@d-<#urrOLmbo&mC3 zzol_3b`x=lk<=DnN!0`(NeT`B(4Te?-OTP4+q176h>-Zl+%Fg zOjayA63$(Vd?;e0P`z6QZ74vQQl`Gtq0*9wiTd$o0=zll%MZTdN!hIn?Z`qN>H;Oc z@dqB=hqbOZJo;|Qw7iZ?joD>{o}+uBUue`mioLoynre$>0C?xknZWxDM;D zeWbxL2^2|NpOz$5nJh-5%tLq}$~boYV}HsQbTjz%>hW{c0>;4e)NDTY<|R2xYt-)q z0eZ`TRf=+gBtKjQkXcTNP}BAv`Iw<_b;cgCR%>n}T0xuzAGDYGpWT{NG6;~yrYFsu zCM)BB?`Nmecz8p=fK5w%u0f{96_hl+GR+WCN%Wn5z&C~OOjhseTPuM?(p|UyFcwId z2Tr}^D5iZx`Rv?oV*6whBR_~&(Z(pp9u;MGk?I6A?(Vb_+ydYDaPFl3Z5|+Pk}&it zEq(w^jv%^wuwC(gmQ&ItSw21Mas02;#*Wy1=> z6m#|F%mG99c_WU{`-29}VvDk3bg@*#NepL?Z1yCluvTka_T3Q8>U{wVr&QsJW^EvZsiM<(g5Kp@C z{Q{Z8NlJh`{qb#B8CA0{{dav<>CC9rIfY>64mICd5?YKqt-z zxl`=@9XjX+-2aAS{S?}3g|;4a2$(_%__AW9BboXF;L>HVVe$`E)*_pLEGA^qUT5q$ zqM!3p-6jZuhes)@iqptIlMI!0sbN+kyG`<-l@P`wVMq9-fe?;w+KuEf`PVCQ{ibU_ zt$MlyuP>^?SH9(m z;{Gi8g?3_1cix;#Zr?uTLJ=$Vc$$|Ft(Dpy)xh2Ji-#Nl*^fo?&%YOf>&{A?m$7Fw zuKmfg4&)E)PD{e9l+RIU{(Ydqg`x^x^+%6D^!Cf3w_5|}E|-i_vpubcT?Z7d)`jR; z6K^WSBv>K?7{@BQHt9058QbV*2iDc?P4gix>{NPkbgwP`rUICJX3htroz$lLG>w1m zk3ST`z{8VqbAgydo~zQUPW{UYQ)ulh1;!SD0m9sS{t4@)wU`L@_VOTtKOn;Jz9iKh zK&GKCHIc()oF#?)odKIV@w77%=LxS@=BD7hFE=dB4N0zaot0L&y3Ah({*q2;6BFvI z{Y5I}&DS)MGhV2<-dd8xGV{wwJ9X(0*yZQBk?=Oaa}oQwNrW$$hT*TSfQLO|GPpGo z6Oms71cuf;$3hUUdcbp5R0Zg8g>{n1K92M1g+e_zh+A5xK|faN$E1F8^_WIlzhPdkH3Bzs)~y=eQxkFk(^YrS-PP%sexU6fP+^|SYDtKn z_scsZf)QwxlJl3-1x>ZKtY56c|D$84iXvy`GzH^KculIbJo<&KJM0M>JvSL?CX@sx zQpSDiLXl}Wt3$3<5@Jl@B(Ns3r$x{mt_Y~P7R3(tO<0UUfGPk5ec2DG1ACPgMn(%< zD3ZT^@Be9KN+BLc`WdJAi98Ur6VgWI-GP5mL!C(AgPBaEC#wCsT)*DjrXHI#i#$k~ zjx2s{_8}m4xbpnKbFQ04g!KqHy3Yu8<&mIk3$W)vVVN+ZFQ zXXmcH&FF;p))%UAf%!cyMsdW|g3DaR+HO8lwfW=tFe}=Qu#ZsJ4Ev5*epHflPfi{< z@vA-#Wz7P19A`lM3sH=Y^;tOh4q>d6r1fCk?FXz^s7$%|-F^d-2R$k=@|@Og*bDA* zO{g3mvv*ljyn9?SY;w{mD7GGI3M<=aRSEty?qm{W9{FAFH2B{f(9-oiV3XA!B_j3e zQapS!F=+pnS8PpeH-C}OXd(j2_ws@oz|4v1xILF=Yq{up05pog9z~3dxdP@8X`k`d z$Pb{D0+u6H0mnb$oA?hGj(j7`%PRTN&e80hK?xxWV&8Y#D?Dvr_~A6ofehjE5n0+ZpTgAqafgsweEd9aOOT?K}W#ZPH;ng z%GdCUDz4f2oQb?tUx-aRN}W_3FdAA^<+wPQ$34siC%qOh>BQV#dipeh^S=G)z}_yMn=zg5 zFD6n(jrE$jF*G31>~PpHmu&^5UAcc#ZK?faa- z#g&qRzB2l&9~lGqXbK8e9I&4(im~~?k1^l3pzbZ&U)^+)y*}-}+ENgWwT52cSQF@& z&qZAFOjVI<=u^tT3c$J~2(n76dXNpms}4lY{X|`X&y)iS3gW97O;DBLUdozY&{fbY zijR`naOd4325OrNU-0GU8ZR500sHIxoygJUeq)1m(B~&gQnc*Ol`mABcT33AzL;r) z$f!gP^I#4b2aC_7x6Uz&4%#y}iSf|MA`b1dPhwY6 z#>#BR_GPNPBWX<>Y9W%%kh9v1yzj!JoeJd;M#fw}hGCUUclZGX zm(XcK8j57S3wxuImLyq>E6q+rPQMI4HgJ)PPa_hTK-vKWlSsWV#Ri$3%L8?0Mm7EQ zbG~o4YkQ!8DEp~;{&0aRQAd`t%@a!|RYr^|`VNRbe_gL%Ii)mVo*XM;o2n!8 z{TA{1p8SyYLHIAO$vqq25H37ka6!1*`_FFW&Zk?=ZaTUAc6fSR!!~ngT~+Ec^xMy! z#71?ewq5#%5hJtbPMt$+7V#_ zRJ$T{zohdIWb`%~^;3(@kF^m$o*ufT9CNca%l1QG=Kamlw{Ybxazl<9)*q8*%$!de zjI3bSj&8Q!qh;q5^ey79pT+**lm$1RyZ0;aOBmduuf8?spPp3}c62B@@#VL%o*!O* zYj55f_56zqaC_9C<;j@`vt4dM#NV#?9{wI^5Zx|LSD0$LXd`vL2d2fNN$h(hx`XJT zav&Vt`M%+95vo%j_L$MBwtq7ArI-9`VuHgYAO4vyo6nq0m|1n9_Yviy{UA)5hj;Wd zGa+cUomQRXnm!MoU-?_b*1cwmT3YS(NEuvD`D#Yp>CaybQCbw2PW6t=~G4Ku1eH6u*4tvp*im|I`C|H z;0~wuJf)QHit?=E-uY*Z^0&_)8Da`yaA`hGIlO`lXxmpHd3CruRu7H-9FGQo-IY&3 z=nR3`=$rmGhNc;*;+$cx6-v9NqXjEY3)F}DR_{X=g%@3@GeBM1(Su8RRAf)4D%2n4 zN&po7so;Ix{?a6O(H!|{4D$Jlq&#rp!!Iak9V}d#zCny{N|GxNlIY%^d~w)jqx}Un ziD(LJ2QDss6gd7TD~o|bVo-hXODZLpM?tKD2JzN$9F#mUL5w(=jA@d7_L%B@0I8pz z3k@2@M~Log8}8Z0*ET3^U6sFebK!yptSnqHZsqBmX~Z=(*14o?OWMc{BzxBkwSP5g z3;c=IG;$xvWGn^VX|nsU^64av?NdfMkah>Y=;^Aslgu7uNyhp$K$mc$Y{i+^Gy|fr zI*8@)-5F~uk%tNCGvK&%rZsV#V_7%twk(=crPCiAIw(JHHQmhVqg={ci`1XC98j1p zEJz|IUB;;EN_nklq%?#ubKuS+Lw=qnsbewJc%vnLihb5y^{d+&Id4e@BYtncq<%z) z;o<|PqXtm*6{rXDua)OSz7cN|X~FnJ;Bkk}G7i@b*F?_^)(IuyKUWs0!jD2_$3^AY zms*$@4t7HtY*JR5WHPu->Z+0q+G9PV@3Q@C2|F~ss96=sE{Rti(o&neQ^%{%?uO!x zb*15l0YRdCTSS?taP4B5lgIVghjMfC#RHEe(kdQtAq^kt(XzK&vud~O%NOyus_k)R z>!b#%eVnx7KAkiCp(W~Ge6kGr98OrQuA`qi%V6xHogV_kzTbS-Z(2pbYnBp(AVT#_ zri!p=K&@+e@Ng?SX~|bIIi6xwlju*kl6$RNW7N|uxF$f?CxLG0YxuQp3SM_O&{scw z5|lV&(yIvOOQTB+<7t)01$5sMj%`|Anh~K`&T?mLwLn?e=1^3cW1y=w4V8TQ8X6eq>B`X9%G?Gz9)zv^~3`M!z@=hmTa``NC7MY~)4T zRJ6mZYGk#lG?HetTUwHbk`=sU#(b61MZI8_XL6yqo_07(kCyg&JMtpNb_3-J^=m^l z#zOm;KFz`L9Jn-Q*$+0+^hn4(C2;eHR`ozQYpq2G{_bLcjWG2(9o8^mhyU1$I3S8E zu|t&viV1bPZ|>#?SXLF}=N||+Q>X0koeUemr1fLRgweI``rdSPp^?JC{egfqE4hBv zRN2cRu|0J;7hoE7nm5QT>Oc4~lYlW;-RU!m2!3aJOyW+Y84O~KU=?7)){bmfM5@dqP$}8OFX3) z9#P~$wW2Fr#r`l~GU#NUufKkD+Yq=Z$od7|=E-=*)tDtz<(>Zb1j_!|wX5l`3raYs zjuWK_DGTiS`@4?IK$$zYygBP$p*!Zl7Cbh2BzYx04z*1U9(02^2|Ltp@8DyB>|n;H zbvXMRu)b4f`*!i%T-zb3k;EIjzQvFGXSD$4Kw+n|Ly1?lXFj+uW(VkfMa+|9 zs#rFf?G;}y=%uZIKNZ=Hybi56m-dkY=WTcMS#p#-XDK#jL-Tyk#ERk2ON^k@Jv#TX zp{P&a;SI|{uo7(I?$`qYRQ?vGrqth)1Oj!^ zPeiAUGtta&PGAo}Dc)3blb8MI1d{E!F1HjUS5Wn_|KTj!N*1p>w}4UnRi4 zG^EZI6l6>-T~$y{DY(_W3ecJieWN^8TYdqi)s-N~10!PED^c!<=zM{UZa!xAVr2K6 zRHP0jwpTG#Gd=LWHDn-`9=}ytLy711h>de(?Ne{lAQ9Om7esD7-kxgvbo@l#``sgO zkTz{DEB)a)BZ4N20U_8SbS?MFKzXVZTFD<7C5zVvwti2%ctM2?_t6V@FI4}Qra^M) zu=+7cKq5ncAMDY(p3}}fn_|!e=K2vj5Nen(T`OCQ>I~9ZI~o9L37@o_9etV_h8|Wb zwm}sW*1s0X*rZaSG8Z(j`f0OVA}uz8FUM>Vp&|_#?a|i1Y9;`7MuI$2Q{$t}MhZ0t zj~dV5HF&F+1Vd%f@B{ZA(jL?*#pD$9`bSxS(XDM}E0Mx6~j9dzPUEw&^$V=NwO@ zuV!&6PDYm|uGrDaUKR>T+^cGM<&m*KiM2*mFnjvGTBFUe*6z(WFtNAzYwPbe9CSw& zH*Mcx+eg92L@xO14g;hE-K#vW*P|olFQrGj=2>}|@JsisphTi4K3n=ZggNq@l~>Yg zjcn3HINY}lXG1f1$JUJv0}ntk7Z_FW3N&vc=|)UsvcoG!MDX9h zd|6bwPOx!Tjve1j-Nkk8@38x$C0N_>lvZ;wJ9n`iaG}G=`nu#&bo`0!j*qOI>X+Bs*!n|^<<2E_xrE>=bsRN$e^=UYX0{L1a zZw?TB{rI4PyaHG+Q&Rd+YQIGxJK{ngS+H!I zyf#L@_MWRRZ5hz6@0EP;9&f1j565N&6211OMCbdo=ult@F1VPGYB@shJ4-BtI;*I; zmr>D%zD(@MaN?2H!Dl%3C0Rt~(!ue#6llabIu6a=qWOb8tU0-1sTeGHclf}Qf(4b! zDo353I4XJV9>lDm{IML>%8Mr>Pk*uKk_aEnqlOFb(Zi%fp$;$ou>SV(KJJP*<-Vg& zRs6=&G5$ZC-RlIq>sA0WP~@Wn)(?!#{ic_co*7`i2@=F`lZdx)j#4TcuYg(l2e@-e z8`va@vk-3RtIga*-teeq17EgIyVLUIMH!0)vHb7fKUvk|)As`s*1u*o6ndf|E|4#A zfRqKR-XhtLH+4oS-`CHMS2kCLMjdeLZb&2mzh{KP%oBabHk~W)wr{ML1{}27-^T4e z$!mlNgmT`~Y^;_>%Q3wk+f{7487ff>{+$^Xq2Y3Ie{hhm(P2OM2z(ElYw6dqQezJF zmW}$I-o4l@Pfo8`dmkt&u8ldG`aQLZTdW%FU|2FCl=$bU2=%z0Q|irVq(|ZL(tn+U ztO?6LO$PA0Z5G@UXw>5xR|u_5F-^4Yj~JYMt-4acG^sRYU<2Pf%}0^QeU(1p{Tm(l zsQFWlFnh&u{=WOyz`4{_&8HkI%irmeo3we{H*uqI9=|JknlBsSNj&rko@mjKla*9D z_WaQT`n>XM{rE(|8DAM^@t>dsNGV|T?vToz)84nmRl|Zxs`_-Ru?S|Vbmk-!U**k%BN(N33k+~aI)-$>y-DR4Jcn8 zMN?y3Ol70|?f1g~dpNmmHyenxaye)AQ}&V8HZgaR^m$)Y^*DwOoO{OT;moxx^FUVC zNoo!k`$ryHR{=lmEhx%oUX$}Eak_eSF3;@`#D<1q`XcZrG@jG%!IaUnFs;>n4h~|x zy;HKEhL+sGA?J6*KNS=R2=)6Luc7;8PwUM&_OuChb2kZXU6+I)sYZ#@je=oLWEv4O zOsF*u-Wl6wjMEFeD=@5I$bN80!ln)$+faDnN=pc{r$yDg)V3+XI;#4Bpq{ar&(-{l zI?>e5^l7nL(n&|&ib2NvO@C)pD@NIC{XAYR8kA8`w8|=2gNh~AV|{YX8;PnDHXk+` zI$-kQ$$c*nXT|GC`{{$eLv&N+jr&AsCWEcw4r`h$<5Y669;)z2{rs(|O4zF^Dy{T) zX{J4^&s_3U^?b`I=&kAECW?Zo5eG}VxP8(b+OTyRiZi{s0>mrq8p1hU@kI+8YZA!8 zT70B8Pzjy{dNb*y+k?$ksmC91;m`)_0j6guOq8Weif)2qNL2&jSiJUP%}X+gGNXI~ zHzS_TpA^Y_1p1;5|7eXB?}!#(gs6NTBzriN*nqLCgYdDkt~GdgecfK;Q;XhPZlLvu zIq}wVpQ|#%HQ>kg*b@xjflZahckVBTGa)nh2?n{xI{>vFUBO1v%%__L-?(xBGJQap z_l}jcd_MZIevNUTQ*0yF@*W{WDZEaw5)gq;0H_n(z7h;K-8iR(?pSJYYdWQx-TR}&!!+GBif&rg5LNDb(a$;V`f~_>w*%*(9q7!s(Q<0A2HqR9zWJ3iG_N%h&XcOD)eNq9aIP)d9;ip|`o{hg_G_)5+PA#@#h(H?PN{PZAQjOgW`r0_j zFy89I1;q)Wo@D*upnbs{%?+<1d7ZT>xX>FiB%IWo#k7)No88FjK|BA0^6h;L%O;zQ z&3zJv!OZmy`Io`PVGWo>X~Q$D*>#eG@;Qh=pO_uul_22X`V`JzZNyXjnr(d&YzxmR zN+#)Qh|c*rqiJd{7yf|*fbvibDi28>>6JVLV`H1_A2cqHeoeg?#5?t65KVBApj=c5 z*4)Jl3tWz%n+7zbC}y?t@3n#(&zxUQ)2tLPSW-TvBpzKF$d{FIyL88h+2w0SzId9M z(z(%!ZSduFBK9%dhdpQKXqlQSr#rz6d880pfY|c~7V?7nVZ~C~mz{3U;_2xfpR>LH zJb9tRAK*z7GHROogXlu4XwI%_jq=&kqTlBA|S z==-&mUx~LB79Y~SIyV*6W!4^CT6;8f#noTzvcZf<42tbGuUFdTnwxV6_@MSU5_n%% z^9oG@ccD%cLh-36hk0;WB)@AdbD(s`WXKw{jLK{5=p+*<)>9LzTY9kIa&V(a7_;j0 zl3>gGZs#$(=!q0VOM0z>gv{$QQQ=CJG1q*gci=QW(gXb}#CF0-_dk}u5-mCD+kFbc zsdGL+RWO+V_T2i%lnENDOy|ak3l;#H$on);%k3e9+!*?k2zT@3igXoK%LQkNe3$ul z%|A|UN}j<+<{SPbuuTo}zvw36oqCrK_|Wy6!*%0;3-o%oa~{Av7u)3NvTlMeH$y>9 z$huW_IRhDQU(8a4xw|hlnTo&k&-~@cSxDEv(6cAiW>{( z8X?ah)My6{eu}Yw($&rH8%ZF|py;oZ;X)1+yrMyaa1QDmKqz0pz}ZxSM=?oZlht2b zq_owvLBCxznJYh3n^K^x+U4*&nF6+it*hjAvWg3zvovkt=w80%^{E$bCsq26Zm_aU z==4cQeQMDJm(KANZ~s1xycdocq>VmO>Z!XnWOZ(P{*a%dGqpQ?kB()eRGi>^Rt=aA zdtq*>SSINr8!VgMv4Ril);4F(dAk>M~xjL=?(|@0(7c4 zeG+Eo2-xXvHqBp6c---Ql2NxRbE~1UnbF57!-4b5r-C*2Rp8(F+_jy{)KW*UZSs`F z$sW$F-}uvA<-_TbWz52tDlG1ZH!gEHRJ$R1lHU~A`%46PfD6Q+q`?tESM z)pyin z-5q(CTYGz|;?Qq<{G9U7s2jf%t?-=b+xz?2VN7U6Yr%bDmfPCo-t?F&(J@0%jE`jY zt(LcYpF79w+1RXaAM(M_Bko4LILUgQ*mL((EkHNTJQSnppMe0gH z%*s=azzt~*=I0)7ogj!6`8AcU3{k>mPw|D#=9_Q) zX?qGrYP!zvK!wfpXea`PwB6Q|4D2Lz^~R~3peFgID-VSZ+*xf2%~3B+o1ps#1Z|HV zxVxQ|HgagBq$rG*ytD=f#^Kz1it~K&LoRe6fB2QsY5;GlsAsr#(8-3-Jrf{~G>2ZT zMpjp$6S|gWWba)eV+sU`2}Q4MKaCdr`o_uBJ3vZ@tfPu^Dwe3k)^Wl=VO(0(l2{pK zMa)W6tOLBExVEnLW=5=~PSWw}1nl`Am4KM?+vdO(a`P~a4-;zYH5rP0RRia%rCgSd zCyL6SO8Z8b$ZLJ!I`})cd>?QuskY7%x51PbrIK!4A};9ny%3~RSJ0x2)0Y2iAcgxh z5Zq8BpMuooxV1kjz8+h;Q^pxZfAco4-%rrOAQ}D+fpwR;G&o|50wBR6DFyV#rJ};i zY73b=p{(^ZGN8Cx13Ebz7K2phxmqV~sZRz3hz59vTd1^m^g0z%n60!)K~d>Fx#yXh z{)Ph#>Ki1R2U`n1NyV^dPTRYr8Gy_wjZc|IDA{F%X9_RvP|OP*jJBsu4y2(vjKa# zh?5S#6u1vEs|pfR2DFe={N#Xd$z2@-B@B#$C`ZCLe4G6Tlv{%#L9 zaxgfTxCl9cZHzYKSQ?+}XMUPnyq#Nvt_yB^84%`v$&#I?ZUCR<6b=PU8T*4jyLq|* zCTL$!69%;pd0R*@>>brqPjnS@Q{$4qp)6IupXl7SMd%)~zYA}AN!$ikTi@^NM?RHm1FZlyok4~yU$H-en8^53mx;%E%(>4_{Yl7RiLt6*?Yp9%k{B!UrLZ;H%l4F zjVNn!YyFjR;7T&M=iZFOEF1ehzHdT3dP=r9Z-z)k4M4^R0 z-@o1oODip`75ekPCHYno`$t#5DaUujb>SyKdfRbq zY9A1u|GZ1%KWL+LEKLwh98?f3=7<9R*Z_=Y^Ge=YEYL5yiY1;>a=1OB##~-f8&WvZ}P0UYGU# zrVh=Hq@b#FLy#~&y$7et07L7;#4eJb+47;Adj6K_mTQ~-V!-8KvnQeAK#oo*8jSlR3{U|bN;fuvU*P)KD zc-fi43*|ST$2z`nlc`9$Q9|Z6gDXYZZ4E1siw>G&Mq#!Aj*bRe5x=pQ-&n;_@Mlr^L5(a5DjVKPLs62R}1%1>OYi3|y*H zUwH)wNU7P)1Zlo;^SO*wm(EM;WN3L+VEl4DQ}?J3=+_9+5rG27_jGyq`8s}&)5caj zC8(&$+GmArv4UT@_?7ee)e2eb{(gZE7lilLqHS$BT-%a2KQ_BXNe7)PgWat^=y^G% zFkvoHRCrMy#5sTAm7D1!8{3r|eZ)mHQ&-*!eOQZ4yjXktn$vvW>w^XfyB;s!>tsG_ zQgLI>!YQJwalGj04UdfXwO*ftEDZOzSv6fPm|1t);`vz7?T>*P*RD*Sibk1AAN%7r z&K)--5x^FQ|DoTWs288P-GZY7Zjk_1l-G_S?A{)fab9}(`VAqyY9$nst*AvSE#`oG z*I4F&aWsP(m0DAS?cV(O+T1ji)$A0B12kDC+U( zW6I?&IV|}T}L28Hezf2tD%Pip)nCr-$`#SVKTx%?~j+1BA7aaWeE z|Cx|5w-%YSV7+AEz(qcglnJh9ea+SMqN{DmW+ZLZg6~dy5$OL1-%j@bb#>+8P`2Oy znHgp*W6Qper6^*Mh%nYDl{Q<+kW#Wmwjwizk`!rAG?pUkkgbgwQYu9Y$&$6mmNmQi z-Om_reSd$v*L&%D=6UY>+-LoqbDtw&3vQ?l0l!U}>k;aqze zDI%s#!wj`6x?IdXM9J+efF!T>?yhDz0_zrW#{#hv;BHOVeqz=)F@pCQTFODoD^daW z9tx8`WMjGR?IHcc2Knn*^r7(h-)JM3r+{`N4N!WPON}I{I?*#uKC}(D88UdsUE(5G zwo?!c#`{DuZsc5pspSR^P0iOF7bPP{RzYqJr$07zmr@3N|G!2SFDik@bJ27bceJBs z)~6w4&Va6ib?N~Q4ts!xDF6&%ze~vYH%}n$JnaeWZk8`4Hn`q1JwyIZm3s~saZU#) zd59Vx?cd*hxYV-pi7f~LeKsnCd{yG}3dVq>qw+sa0$bf+H;{aY6nj!?FrNd&V-7d) zXQ+69>9Jg`Yhr(gt0l@czEuM)9z2$CMXm?^qA-;!cAS_EUvG$J0H-1du`g;JDuc{b z<9ZhFl6fyy-+xebp$@6(piu9+j{8#Hc{MY1ZlA}3 z+NN}4;wF&atQ34hr)oykdRJo}^h(dBc}$D`Ibiv6Qiud3FdC#YrERM>-8u|B3%N|i zt#s606(d)_IxHCeScp(T@tS0YD>CnGs8$<|-BQjIaYIB4SXl>;Zg2$&{RIhX$o{_v zxgw1OF)06@S?6Xhsqp#cuvq0@0?LUxl1xQtCY}>yPYf9U~++}dQ zD=vwV^^uXw5=$ED9;LtJ3gh|C1RL~%WLyS`hd@eUwT}+0+W19%;zN0LRsyWZ94LFv zBpMb3R&ep{6>1&5@Xov1)8T5MzhN0eXn)|7VM~eq^7>l-5@T++bwx75eCn zA9fRXssQf3Wb&6-#){xhD`4by(Qb%kR=9Q%H{4@_7UL~1u0wVhnQ(LxUmsSv#mSoL zza02uZA$`EE`q8*d=;U}Pag+0rsV?R71LSraPwYe2@FVHzSPwwR2>-2cNef3RmhZA z#_Xl=;`*gM2swrWKH^3by6Q$n1F;!0Rsx2bWJMZqcg0BW56af=PfTffYvhFr|DifC ztZt`Iua+*!;qA1yI1?>Dd`~ygh`PuXAf6YGxWo5$=1Z%F&B$}mNe}cTkikAoo<~9|PJlgP?0{F;?c*^p$en!I2gmCo-~$SyB{!iS2|aQ+ zB6!lSrUy(oj+P0P(EssGqS9#bGPsaK9w4hP=9XEztc_8(s{dnNom+;Z97J=Q8|0w* z|MmRANLGU#)RVne5s%ck2x=0I0{HU?J5P>g1;ir-&mfew2^e?KlHUSVP%_l`%TT8m z#OuNv8Sh#Q^r=?_^2|B3#b2%~3&a%5e@mcVF{(3p8T{RJl!8c<3&0c-Qx5&Hj<~1y zko<*Yc&}N|SoM%U-}W`UgrDS3Jev*O+<5k)ig~}>;rzDE>-C+xr;K=1Q6(R~&VCZM zl`AugYoCf1pic;C&l;!vp*U1PbsMRhE^mBZga9;Ets=Kak0e1BlIAJ;QtualpkjB? z^#0CAi^2l{`roHHG5>9B4&49sBP z+_e_q<7(YHkb2EDfQ&$uQ}E{{&4sczTjLK|hsXE$dF9nr1GBB=dGM;2#%3*VuXb)BViC+_tT zhrW%Am?`N-ISdpAJ#9pf)PQuPzdiMC(!IM9$1fS*M<}g3bTIF-MRqeWC{B#yUM8~< zsltDf@_y~>1IUO!3CSl8w}|A(kKFV3+A)*==dfXLWkjJ?@UO6HHS$_drEQ@h;%h%9 z#1+&8)6zDFmc}g2`krvD=-Z;M=|0~Pa_{^Jn~0`>CAHo1?P8fCyBu1LG%buUxhN9ul1msT)BM0rsp3bg`XoYoGlj#EMK41b2fGF zE}ISOcY1Z7X}{++lwWCZd3l~Hsd$&w4q*765l=N3O8$DbEjBnVCg$>uF23hcdW~u= z&S4^kySo)Q1c)j(dBhOh6Pr-i-g|9Mw%GHBOtdaO68xBPC)`h#d{jYshgUJt{P3G- z-u*&t_Kx11SIs73%75B$Bo)xD6f9#TWH2KR)q0caiy9&)3*MdSyL&sl=ZH{^N71np zx2~D(d6(HBxO-jl^08Z?S9Te+l7#&nIm1lc!L(Yh8rXfz#?Xqk9mOci(8Nzjt8^Lks`#xa;?-L#n(V z&K(=txL+Ta&mzN$p4 zRPr;Rwz^rB&)tkle09ds^{7jQi|ZHdjKYaxv78wGQfpBY<8$#l72bKsZgesHZLL{& z;KBDZw(n0&FEB0sLoesCO+`Z$|yU1eZO3$`1;!XGnbAR2Ta{4jUC`; zM@))Bc1OnI5WzRJMCfILX?|HKzU#!cLFC|Y&yWS9tN>JkZ~M99!@77=nU);xV^7Sx zhQ_WMHsf@N{UvmILw>oP!6Dq{G=A9vr*ny&gk{B&%bdYhqNp$OeZFTAF`CEQu&P^4 zyDzt&utZlSnCVl;FfoXLaEd`y=DmZ_G7VJ!`MssmxrZGOWe8-G+Ic243z{~T#GgEa zXu%0!sR9Oefky?5M$&^T&p!~TXfs)+KUos=;I{^e$}l?m^x@8h41x8=pZOxDKM^ve z(V2lm5=2k`ohC6l{J(_G(LycJnSI;b9jJ-n68Yp4`|M|DfvDjs_#ukm=CkKh&}uhkv1g`{}9@FngO z^%Y&69@i9EgHRQV#kb!XyV<=^(|O!&`@EAqfUT}n&c`8MH=Ef4l-AzE&9F|kB*>27 z)?y_)^0%M}RHG|HLF$CIUD;ZpF$MBp(rTL&kU?9GUl*8Ny^vxO!%OvZMF!a#*A~1o z976%e$aM52sh;o~M>Ytq^L3k9_nc2KY(f4ECZ$nKZ0d1vol68L^{+tY7b9W})A*(9 z?t}EJtb5Bh-M$uHgHX9nI-*W)N}ou2rJ_N2S0TsQhjQ*aIYkz-lUcLjEP;Zr%T<0P z+CaS#Q%9th2~W$yaR5^$)%b7v4UYh;U=R(MaR?tX9~v2SJwXY8 zswvRQSqtAkl<_2HEJtYq>b|l4i?dHm$BWtbuZ;eQE-sxgNj5g2w4YN$k8`)yoEhUm zW5w$dX-RQpF5OIU(I)?KdE)yYw>*jd$8l>#tPtpbfJnL`l7uO2{GdYS^R?3s^<9iIXDUXyaY?srw&8D@PZU;rH-}AQTwSHu=n;=9PSX5hg748;6;sU** zbs6W$BjNg}YcE7x_K4Na2UwIMM7VqgTpJGPm1{;& zr`iP@gEzY)&Uo^kwi4bWl0ZJ0}@`ATIRPp8}PKpT@FQNkyL_D@OR)RP_= z3*KICd==G*d2T&2u;ggvY=GeNroKi5=vPBVJ!ilq0c)qV*4~v?36Xmn?#-8qrlqzY zh^B}NUaJ}qI@f}pU;jR#f`0rve2a06!YDzWoLU6ek9dHC?nVTo3+PY3Un85QikquE z0rAA3DH@E>N`DOs%;ku?KM=%<<+{%Vp?_dBuu+`b9S`9b$yO9q)O}->?T&7|niKYx zSA+cxeFM4kTcfbP-@fYLRrTZRj%RB8%Nf-u8t6z!@O-=8NRwlewdq@@T>})=3g1Sv zkfGm7nSLXtU%?EziEcVJ)P7HzACnR!WxA=j^P`_?G-7Jwfxg+JRK#%C*}aG~efm19 zOF%p_5o3rR74U&5rJALtC=SUE_!gO>V3?SgL`xanpNGRj(c?i7xi0N!c(+Y(sV)|a`DUf6| zsf+8vtD+SrRb}&_IpJ?RaeoN+D3*CCQ(PuqKmwoNXBsGlN@58yB0?;qd+?Yg;% zyBZ;ZV@oOi7rPsxcSvAfeD3KA26;m;1;r9HyC0a3l_ynuf)wd&&ku=c=}i)jq7}3X zq6bog(;oc{6@bOa%IPf5&&qFHq`lsvrIs}YD!+!tLV$YZ%64-XY?ALVus-ltAY8~X zoFsnLpPeF?Chv(i(y{XghL!lJekP1E9^SAWJo94WeLnV7|5s&vLQW>7=t3e!j912% z^D`}35DxEcNS}1T-SFIPt%E6ya0z(KSO&2R(Tj5?>$beh{is7bk0x@YBs3A<(#I9< zkbNqZP)avJu!%SYn%JKL0aKIfEa-6}PfUmyQU;*v=@-w(C$Ky-9TLi75|{Z8yCD|Q zGT3#z%H3;jQ(~^mR9rdBi#w|J;pq058f2j;ZN7bK!?NW zd8$ZPqjPgVNS&3sc2Mwn9(7v+WoKP^5ZR!lF2%V|$3ucDOSEfY99uHYZEX~|uuaY} zed>>?1iftSb#kmIHX~Qqia|tl`NWA7Or?kNPW=$aVy%BDs8*%RTbnpCh+I{yP!Z2E zo_Q2ca0#-o(j7G0(N{)*1P>Pzl-zdDL>xZ_KkJgKpK1S7Yii ze1~i0h*Gl8)Bh%sS9Ba@18u~Idc&!XBL93}1mo-dYiCkXh1V>;kf1P0+FzSSf`UBIR$HorgpH9TB z`xi%v#ek|p!q>+&WtC~JM*Pl?YISP;>^3%7xk{2o{ur1+E&>Hj=z$AGN<-$~*TkNj z7ReTlmr12)Gqra){nG{L*2{H%~LW-9LF6vKS4eFoW}FQYAA z6;n5^E#WKlGWe3L=g+PV`<)468CK_%%krq6TUdcAPAEP#(sGjoXv-T4u?BE(Uct%; zq%+!h?@YyXFQ=Bmh51{*SGf9I(3cY^K6eEa zsKW#kc4^QQLb8z{xE{qdK-q@n_;BCsCW_CQF{RXYafgZO)~kLqQG9p>fpclOX<{ z}GNy(o zG+#z+q&5&2b^QwZQd%ezu)y#5ns+o`~dMZXY&}cE3kOY7fF51 zXuN+%f;%x^&uWX>C40;hxa@3VvS5tQgN)7(?GcrD*?dr2HGJ%d;2r8~x-b6e(VJ4F z1Eh$5s%ecxFb0%Wp%;fIM3g92Yhbo(54EqaVT&BoxDyz zVVur3oPTnNdWEN;P2?kDb1Cle*!%h;hVimt$K)e!h#4F zw7plXPo;0f9t@m0Ag>M8BFaXL09TxTX4-99&zPZxn|fc6k*D@6EKsHikyD!p+wZ!Q z_zm_dX*703SMu;~y1o0N5zb^!TMG6xkIB@cxz{-k9~+fm!MN`~;1Qe|Bx^7b!Ch)= z`A)5i{G)+EAZG_gMuCY7#FKcpu5)1EL6Grn@{7(jCyt6e0u}k+mM?IF*7#{CFRX_` zGD8tukrLKyz?FTEGhL>bPzI2~=uzlVxAaF8_OvvIinNT;#OK{G2`YhR`g3WEKam5RWS}7m&(Jd)1{}r(uT?b(I07 zRAuHrt9HMR(BEv-BX!X8PRJ>V4^#X}m>9|RD2_TPVl8jMfkR(f?pp7Drph@mZf<)w z>Jh3|ZzK8w!PiWlivDIkn6p1oo}gD1)xIs)R2^uZr?RxgSidGkb(19L$i~O_U_VPl z5F@b-01jZ>fZ!D@-2+!occ#9hM=0DT_eUU6ufxxxZ-(lk*M-TcFRS>RQ~(8P75rCK zN;nf|DQ#PZEhRY?_#~7Yo@v)@9XlrI1ZkJ`^;ZvngsW3A9fKdH% zV?RKoL4MmsCH0QNq_G;s2ej7a9ee#Po0T z$h|~#=5WcLj_MGL9T^r)lzdtLmSVrBXy7U1Jq2O+I`+2DdfXC?Uo#-I$6zt#5F}-5 z{zpYMoHg~&qwWu>#$ww&vQo{x9?>n-F-i<~oo|cVJDNVk7fzixiR8MJpi2Jxat zYE$fa8NIG6V@YBQnirB47k8NUXUK` za}@PxTeCobO6jBt2#?Cnh#Q$iq5EUsB!JjaSk{T2N#75xe~_8YWRF~OwjEOK`9`oZ(Wci#ZL?7_Us*)r3`pT%{7Iy5OR zJorx=^b*$g*N?qCr7F9L&`zc>mLN>cC6tL|!A{Tw-oIBsM(q&|0K;p~fAH-0BsSU* z-SF#)$GRLOTuxbr{Pm1v>FH277;UAU%-6OYbFO8905xvVvfCD$^zvb zi6-Cl1`E@wt5|enxp+4c7t~_!Z8tO)ECJ2+zYYkyen8}}zC@w{CC0tEPI z(gTcLXp+=dY~v=&5k#=vGIS%1S}YLO#rYEbK)i)2pf7J)BhVK-#SM8t6Dk{hYcsaZ zGKL8aYSF`_AC`@G!d~*<`@AX*@boy!!1MK1_CHM{F1{V;YEp#|ph%_$^lLoN@p7)5 zipY-?s06L@$N06gr@MG-sxG+38XQU?$C_>!2I*IRcUs#eExek)4qj~x4@geNH&ljP`rGifJyHl^4z5-fiE$NP_E^#bX zO<(ap|9seG2e@=C5}yAcZnoxfY-~rx4El`7@9y`9f_f`?1*p<{_KRfVYGZ9THQvmz zY060?+ga~RT6f|Nc5=-|;tS9=HFDFH3W1joM>~U0HtyW|ZRgMJ3!g}W4Ba%dfZB^5 z;|3m_s@-4WgbQ{Hs>NT5qej{7QLY&Jglxz#*^`CU;ymRLWa**RJX0622LCYq_orxL z&(eFZ<@MYb_KhA$Q+oIGJ3?WUuApkztSTVhk=2^;glA^`PpiEqX4y$XBuo9|yxA1A z)0F(6{!WKaX+OIC4o^2;$XlM2l9Ebr6FGO%#%Ey6^s-5e?(ub-WultH~SI^oP?m~+{z!v-Y=H%KP9r`udPdm9T=z?V`DMq@n`N-+p zTCJh+m-d}Z_^4GPvLPs7e{cbReltBC+!aiAE&V*`Nw5$HdF+*&nt~()8LE?aAA;Xb z1-Z#O>fEko0yKt`KEAdg{@R$27l>lU4(Q-!n4nLyt+0W=tUQ#mHo84bF(`S>{2ya4 z-#{}AHI&SEo6LU?!)HrJdl0%g2ScM4&22)dsFv;Ow^L}SA<0Dh&^=x%K#yns?kG#{ zszCcxam2{hhxgG?L5b^~@;N^7I(OIo47x<_ILLSOpknCBFE?)OA0mDJtl@=dxoLIi z6kigiR##PHAc&x+F5{H1Np2`sI$EpfEhuwc?^n^=%W~bA!*|3UOI3ctUjJ+B$uZ8^pw^QPuh>mUfGB@x=OCl9`ULPRRB@tsX)Y~7bES3s`3_Z_r1ch>mi3nS z^KFTLThaZkfrVQ(uT+78ApsNLeCsIdvDTE7F7l0S^2eX{fYI6j(cu|D+|CTeH1S2} z1;YB#|0}qRx8mG!Bia#0CB+y40j;7A&3jbnBKiH*iP`tC549lLn63C9LC+Ay8V zMh#|Mpi>AR>*eiQ;Qw57+ML5>jE0%Bq~SUu0-}F+H?5(H&ntmJHSzarE6XI6f)Df zS!YT-YSSw>8r&#a{^3U2VCt7i0vFxgMvBESZQx-XgepP>F>kn-j%6g;?%`)0>?2*T zO5L=`SO-9rLytE9B{)pLwn#6BvGqyury6-2A&7Q*ocT6fkTjFSUMhGe0dROrbQ@9*|QXqBZu$5QB3xFSr^l);X$v5ninM^fIrb zxR|3xG?b^zK9x3@2-q50ltg4+2L8lu0copDF0cZBJITU_CWmW*Bse62-@;l8@PR2;5+AUN|tgov}nWTr8e+9I1a6>g(Z~_JPJ*iOzwis zE$~86)9n~NjZMh0Co4iG6<#_912tTr5<&~~8>^9>T7PW%_|$*p;+#rCE0+)}pLBji zYk10q?{CR` zDugC@nFe~RuFf{NbrMmgc&78izga1xdA}`nuKDE&<+W zX;BF(`|fM2>!A~Wq~%n|_aBJe zOSL(Vgy+A0>oTi8@kN7wD4^F{u~*381}RX>{+~@eB`7tT5M#Ud%QXQssal@rVf### zZ{hsjt6$Sa2q2Oj>OdLjiGe~tB-P_-#)H$Q=`4Klo2c)#M%9-5+YdP9)zTNmrKTpJ!( zfAkDd+B_cn+x@-I(!d9slwD04m$V-p^wyHDcj^g#S5e-w<rd*-mAth%lnnf zuc1w0%oL&p{TTJ5tgV9d0epk%abqU)5ij>&?b34X;joUuCO3`2C0syf{j!zbkq2s6ewMM*$A2uk+qY z;M9LI1o|C-Yiui=2O9F?u^be?v0KIsS#t=d0khbhXVzOD?Uy=!W}sHVsno1xUGi4J zElP9bgtMB)s+>7;d$iMbuPe;6;fj;siW<_Fzq5Pbn_>CeQnQV3a|V|WW3`^2<=~9H z(A}M>H-4?#fxmZ)&Tsu|qQ5s}4AzF+cwyw>oR(^%!?V{l!EFwvylZGLM{`-EM}%D@ zPQ;8$i&y8_in>h!i^B<8X7RVIrHp`Ly(NZ9enW8y7U8g9eNbC{Z0%^rk%cV!g0q9YfbeRA`_mO zvmI@ZP8I%%E%=dfjr+~}*e{*~GHEOLQv zR3w}TXXK2@?pr5C<&*lxkvHP%?v$S3b*Kq>DDL=e>d~)}S?{4I#%n3bW*@E3+{qqf z*sL%2%N4nFWOvG^Q>Gz4)|X$^)|BM#-?e41?#zi3Mso=vW3OI3T`U{VyY6wu^-Ldi zdvW*`;Ps8ER2mqS;Ajv;+^pyh)&*NvR^2RTV;A=so5BH&(75jwhm~{R=(6t%DLJ zKBLa=6D)dL&+BLv*}Kng(Lt<3rTEri=gz^>62^In@%{l4*^%q5HGB2+ux3DvDB6MTkVN9vif zy{sJCy3qD?Typa-O16aZHRk3zo~mT-Yg-c)1l_Zp;%KHHW;i4fqI^T>~kEuG7`L(A7`ny*SU=I*WmOtbD-Fv}-;f(JI3wmFEG-VJz=!Uy@gA7lCZQsZj0M1*$?|5{>2 z0TIl`9`N^TgoFm{P91aM1~*Mk-2{&1;7b^}RO8=4hR`@Z2CysYd2Vkmx*B zY`)pt`Po%x;wBd`!xHW%0p!{6y0eskVT_b?s}YAOpq|3Ol#I{s|uE5U8?4R6+QD_&IO z&X_%ts@$~iP~okj5Sz7kL}q5j8IH@9M_x+?KUV|V!148?C5InsOAcJXRjYeh@4KS@ z#t(8`#cZ^GF>+bPP=eNOr%G$x4o3w~}>JyMHbC;Ea zfKziG6vnfN#6Zw*Ss#A}-OSeB$eh1JGKSgO&-2^mr#n;zmQ`ZKZTYmbHzrjxsXOl+ zFa6aWo+a*hGw+qDjNoWTl4yxJQemBQG5J$z1x3zes{NqaMstm@PC5M#A3yu~3?Ita zdEG*el=>mibvN0{et!b}V)yXPJgd0t;8NJWjcrTngZwGzDTFF|VEcv^0{?M3`uSb1cW%Ad#v1y^^3Os;!DFUB zpY}L9Fi7ZX8lMQcT@kcRsCj|YTRc037`u25Ib*Q1iIe5 zY~|xI*}DX$M#GW^m)(g#pgFCGT=>Ch38y=fEsL8lBN8 zaWq~I?xcE;p-Z-Ngf(()q7v%MR2sWD(?Fkr#-4rk0%JI_Vp$q_Z8%hB#?$6xhbw0; z%wB_U#e0-f>X$%CQU5oGmMP)h!?(YI%iz7T&ynQ&ZN6^NhFC$+MCPWiMb*Zuh;0?c z&gSU0#`kI4o=OcvZE-s5oXG!#HxywopnAKf7JnLuru$u2^$FGBztq!k$`07dTPSfI ze)TvMwY#7D1-V`kx3^WqY^3K!P+R8xCcMphg>Z$UZsUT)<2@Ba$_CqdfBgA%Bpv zHu$|EajjF7u;?$X9v*h@HHf?iQ0G1PxEh>6-)^o;ipshnkS|efNUCiaZmdF1DJ)S=_rZe)udGB|PvZ?Ir z&C`dY`>t9o6&+hp&-m)sKbJ7$RhT&TEMl+c@MOx53*VBpUfrgc&NLmp&kRYSYrm2R z^fKcDFa~UW+tWlzctH!sC2}m+y!BHBzR!|!oC&eQI-=f)g-W#8`mG1|xgOjFL6JAg zEVl%Jg3mx@$MIb$9lX4xQpEyk_DcXz1ECn`3!WiXwLL6~ zJ)%`EqW%Rcsot&#sJ$`h`HRyLCl3_?T`Dlgz{&iS&f(_r`~nUioa_Vx-TV9WrXMWyug zp|HV~eJ#!hWBI9<5i!g`X&i?!w?g~$-migPp1#g+U(149L_v(q*`H3{@;@kw3LH@A z)lDmVg4IfvDHDK*g3mH1P4a`4$NJ()=A{@R?J(T4sT+3mp-Nv9IO zgSpKd4x7M0_|=UOg#QalSwx1Bny1W9pVq$IhSWHfuz`3gy(mW^7XyvG{rsDv`==1X z*%Y&P0-uQ>iqZc1!jiap3&sC}PNGKf8Z!v0Y@Q|`INPyPL7t=Qj`E84*G>j*Ar}(A z!2DIf6<4NXAqsG=vF4w1MA?O^Pjn>FHfhCAT}2H6USz_raGQ-6Ee3@e4={NkdtLU& zSkK_xPj!T>9(sJnAhgA*?8#wjNl zVIBMQgR@!RA4A&Cre_O76cQ9PXLJ=Hm%je`<*v2QG++q{KwIXP@tpGFaz9?PBkz%F zP^f(p%aLPYG!QWF;1pgdGQ>|B5v2p;WGxwja zM`k?J;^+iG72U82F+&O2%BK$5uVR61V7WL!I*l`6dE*h};S%kewgAfM(mdP5oT)ps|2_@~M*FZFNz>Ekih9GD!kZ6ZRFZ=))3u2# zqO%U*dpka{A7+4e134Ju=S$1f-X=Ty?yfwMPj?;r}6*}@2$%4p6^*1XRA4~p# zCfeE(-oO0WfD$v-)xlvS9Sg86lHdNqj|Wc9kVHZbaUnuA-mLIY+ees(%o!rT$`|~G z#L}mH_&>HOoa{{CZc9j!S4`z||lI!u#;9u>*QJDj`=NT+1nZ?43W!iVnFmnGqU!O|ir0dwM zcwsD96XN11!Z6cM(QU2Ode6g>Je#i;6y7x&$q8LjURf|}+#WbM)s~iL%pCXMP(z@e z>7ZaN%ooj8)6-37rwJp;?aA(t9CPM{+B`T>^` z%ggm?10m``~ZCyD!cAABDgxMIiet((7YgYs~xk8^RdJbj5VUp}0wo#b0ZI#Y2 z1!2b9+8+6{XN~(0-#FYwen61+rq9n?Wy2!9wZppj>Dg>;!4d(0zaG#iX41)6H}^n{ za}O^!cs_4>iP`k1`~;xA^V%oum9Vo81+#kby!;gwRu?K^2Cecs8!`4%=qXYG%2-_n zeB3|_;I)I_F~9yiuW?}iH*vfU2_}o5Pv?moW8S^(FnYfawufv}3P@7)Zh1#Y%vSTO zuk^8EFu^~`xVruz3qrv;>~Nh;x|NiG(v)^s=(LPK4c@$azU{py4QR0FdBr&- zYcyA>j*jfA@M5zltm6T4Ke5e7?3(j8d;pvfAnvMR=1eQWxv6KXriJx!B*DONMqclv z#nOG!-CjE&ptJ^3!owooyaIu}kpK3im2I_xhk-@VauuVdc`&y)DIrcEzgC983i;kB zr~Swi(S0dRL{7-nCSXPU+YzuhA@PbWCiz-2qX`U%#T5JNFGdp|AYpW;6lLF*yZB04Kpjf`Py2vh z5V(*8uNnE-5ZXt*5MevvD3}*?mK|N2qC||0X^_O#KDK6KJ&Y>aBvQq!jz=U6^L?^1 zz<{-cJa;zv@iiO|jQPXWJW4w_Hz56{U#q6vv9DdQVVhu@S(%e{^O+8VYEXf)6MKhG zSc^85k6k`!6{{G!=`(pBW(cN*z|eEApy}&U5qdPaOmKi&HtSY?(zZfl(_zD@NkP}Z4jcBba6=nRVBjCnil&)&++zu3DGKENwl1^$!08AG|qg=WxGD-o8VwqPLDf z;W)OnVdYi<3y;b~R`=2hllYXj!76s}y%>i&$j;2#u#Lt_28CtB#Ik7B9q763u`FG( zxy_-lGQocym4+6Bl2>IOCId)36;1H`bR7v5%}A`%-wtmuM>nsqQm>Zj09fQdn!$<_ z92}lm^|bLtpiq(y#{r;?38m+ulds!&53kV#?f0LrrefRJr@W9Qw?m=YC7wmM;H4mc z95!F`wmJ>U-o9$**j~*z@W8f?9sKmR!UI;^*}4a{<)?t&j{N5=V5_k(xGWtKuc&-P zCL8{I;Ru)GzD1bZ|H?6-E$q*@MtCsEC>KSpkghd~FwBvCU_4Uych(IcCjI|$g4Rkt zOAXFvNpV_A|Kg{p2>gaMMAiw{ov5L}poT&678(?)!B#x01|)oK@Tf_?Vas!Y5aCSz zXjSk5iAT-x4pjyV6p`PyT!`bh`q+4!DNH$3(PZHn#XlRAwfR{@-pp5z0SXn0Y+@@2 zn1_Ina#*}yZYxG>emipL6fB~Xc@I(OQ6s|_ftb-AQOMPLVwKt9w*o!k5FxFptjz;k z=ejq;lyS%dxJ)rVY(2#y21;ummk0CWGb`*Tj&sR@K;jxbv)m`t3JTMKqKs3PXR&)L zSSKEsTmtie|8h|3C9}8jQ4tp;V9NE9r(fMU*dahyStVR6170rDG`|1q^1D+0dRx)x zJdi*pX?Uu9);iM0`!MJkuQp`7sv}m_-!b%pXX$zGNGzHQe($GGm3K$(cg}%T#Hj*+48k#8 zDtMG#3@{3c0etp_Uc_}=CQreH7}%2}@WJTpW>;H~@6}s1_^X~d%){Qa%o|00$6!%@ z<^6_vAdKZz-Cr$cfVDfk>c`W} zP1Fp^`Aw%~X0 zsUfxIuQ@t|I*>IyqM?0g^*bLX2p27B3LSzp4L)TtULAOk`^oGDSI&( zzJ_L;;J~+~4w88Ibmfp+S)4<{&u5jLe`j0&^xFhr{zyCS&(#fmBCjz5xDGp18cPV0_^Vc)qpzsl)JTE;l%&&I|k%aiDM?^PJ&!x-57c zyYhGo%nev1ZXxR&-x3ZDJ1++N$kWPjW0le*&=#EK#ggF#!$!@(z)ZE}gW!JHD=YU7 z8vB@We@P8e{ToZN)E%MZ-grhz9B+4^%A!p{tLDI4F>l*Tvm<~_|a<$-2bH99L02Gr}pj+zWj9?S+d zE(R`giJ#~kE6X-sQ-BxD{#;VRS8Y{fhg|yCf|JEx5o*mX2$$hG`r*o$ z1rJLykpHVwn=8Il4t_?Z0iBwBfbA-SCBx?zG1u+7aWe_T>_6bxYd50yXu2C{4 z-Rpn+e^p}hD~BEpeeBw z{90O2hKkEv0xl z|7@8f13c#Ij$$@X0L}!F4c>DkmFfCkIOZYFrR$qS9$@6IC-Wl_w1y~=5Jw_{c6b#W z0_%mHztbMQ%#&*82s0@Kw)xOP)u7Xq7J$&A zSFsxeOEoaufCHd=UNuDPl@6>#&R$t^J;2;>Q^XOvm$;IJVukW>jnOvQ;`1i0)!BPH zOvh$fsx0-9aqg?axqiCKb0qQdKfyV?p}}SIOZ$M6-q>#nZ{64X`QRDdN^r6=*4k`} z0-X+?WN72NI`P_EZ&IS=pM8Nj;o{wM;@^RGl35L}U{wk)LHGRWZ;@@@U7NW^*V!%M zV2;%s9Hq=Ce=ZGEA|mXRR;7`>yR;?4HZ!|X_pRQrE3)wPLoM~pRHUe|8KhyuUIc8> zAW$bcv)hN)^qc!VULat3&w^d2#~cHQ2!AWK6s*cOK>IYTtequi^x=;RElr~^IidQ?S>HH=Rh1VXUKU8Kz?0{?W0Efx4ty%6Z=DeC{^h#F+JWk6=B~2fk&d*SUUjJtU zSZhHNCI<``{G^{+DE#onnz8`h5BdD55dzUok(|bxX^`Vuw!Fin zdI@X{m=(gzeFJBzC$9anLJnx8MiRd2j}$5UFw zh=r=R(SoE)?Ak__;IeSD!|U7yZrZ=%gx$f>kszA?o2iY&Cjv;j^{cO3mGSDTBm2i- zJ>CxM@x0v1JKar>nQDLpDyxKAMKT>#dw_ndqSU^V^&np-!`^PFUqkTPgvT39PRVmn zAFPTSTRmPYI?IeK-JO|8I!*RGq6QwH_3cIGj!Gt`-{OT0eHfb-Fhc+upI?p)yrHCh zy;Yv3fM!{hyT5ZM50B(+_1CQDpktB_v4s@S4)%^_lSZrjPhmKDLxefz-zl-+_Al*A zx%0SMqkjIA4GSFHkj0=82r+6l|C!Z5|Z$1*<8HXT&^@kdX{gy z4A`#YEb;W zGjO3QT{< z#c_0%vXwmS)WK>qM$r1!Qu+He8r~JjglWAsfLf}0x`*>au057ke+1w`(#KV=j^#1} zt_I`{xp+?fjYM@C{N}R{=DN1lV_+{d_#dwoUMyS(?oxfhO#7ATBbW$Jy(SrITS45k zYLHi88x+HGr0Q7mSfKVkc4_wa*4z*Ex958Iz9Abzy$4pHT^2S5tamk?UX5Ce^yJi| ziG15@TqnZ9(D(I^@7t5y`%^DMlM_QNi?#lT-vmL>6JKaW z?-px4w^Zfa8zlnSC3^hBZ(y6+%ydt8`BmZFRjNU&JUn6rG_K1^@h~#wX9fBt(O&!p zXpkwJ`gzxCVTctgOHa}uU8VfMT*G!gPLpU=A57PjjM0z8BD3s7@o&beB&@#w*VT9p g0#yUT6Zo7_(02S=?2v+~ApEzDL0aTL7Z~y=R literal 0 HcmV?d00001 From 13f2ad25e128c00b8c52df10abcd3429e8bfa757 Mon Sep 17 00:00:00 2001 From: Timo Glastra Date: Wed, 31 Jan 2024 17:00:06 +0700 Subject: [PATCH 05/12] feat: add mailing list and update contribuitng (#148) Signed-off-by: Timo Glastra Co-authored-by: Karim Stekelenburg --- README.md | 6 ++++-- docusaurus.config.js | 4 ++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f4abaffb..19a3ab18 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@
Credo logo

@@ -70,7 +70,9 @@ If you are using GitHub pages for hosting, this command is a convenient way to b The docs are a work in progress, contributions are incredibly appreciated! If you're looking to contribute check out the [contribution guideline](https://github.com/openwallet-foundation/credo-ts-docs/blob/main/CONTRIBUTING.md). -Issues are also welcomed as it gives us a good idea of the work still needing to be done. +There are regular community working groups to discuss ongoing efforts within Credo, showcase items you've built with Credo, or ask questions. See [Meeting Information](https://github.com/openwallet-foundation/credo-ts/wiki/Meeting-Information) for up to date information on the meeting schedule. Everyone is welcome to join! + +We welcome you to join our mailing list and Discord channel. See the [Wiki](https://github.com/openwallet-foundation/credo-ts/wiki/Communication) for up to date information. ## Licence diff --git a/docusaurus.config.js b/docusaurus.config.js index b8cc52c9..fe06f370 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -114,6 +114,10 @@ const config = { label: 'Discord', href: 'https://discord.com/channels/1022962884864643214/1179453305856991263', }, + { + label: 'Mailing List', + href: 'https://lists.openwallet.foundation/g/credo-project', + }, { label: 'Working Group Call Notes', href: 'https://github.com/openwallet-foundation/credo-ts/wiki/Meeting-Information', From 90d527adf25dafa1c8df5d5d2f005c6fc8a184d3 Mon Sep 17 00:00:00 2001 From: Berend Sliedrecht <61358536+berendsliedrecht@users.noreply.github.com> Date: Thu, 1 Feb 2024 07:13:24 +0100 Subject: [PATCH 06/12] remove mediator reference (#139) Signed-off-by: Berend Sliedrecht --- guides/tutorials/mediation.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/guides/tutorials/mediation.md b/guides/tutorials/mediation.md index 812445d6..98acbf56 100644 --- a/guides/tutorials/mediation.md +++ b/guides/tutorials/mediation.md @@ -93,5 +93,6 @@ sequenceDiagram For more information about mediator refer to: - [Aries Mediator Coordination Protocol](https://github.com/hyperledger/aries-rfcs/tree/main/features/0211-route-coordination) -- [Hyperledger Aries Mediator Agent](https://aries-mediator.animo.id/#/) +- [Indicio Public Mediator](https://indicio-tech.github.io/mediator) +- [Setup your own Credo Mediator](https://github.com/animo/animo-mediator) - [Aries RFC 0046: Mediators and Relays](https://github.com/hyperledger/aries-rfcs/blob/main/concepts/0046-mediators-and-relays/README.md#aries-rfc-0046-mediators-and-relays) From d01f0b9b681b2cd00f9816a5c79cd8666e2524b9 Mon Sep 17 00:00:00 2001 From: Timo Glastra Date: Thu, 1 Feb 2024 20:35:57 +0700 Subject: [PATCH 07/12] chore: initial cleanup and scripts for 0.5.0 (#149) Signed-off-by: Timo Glastra --- .github/workflows/continuous-integration.yml | 2 +- .github/workflows/deploy.yml | 2 +- guides/extensions/push-notifications.md | 10 +- guides/extensions/react-hooks.md | 12 +- guides/extensions/redux-store.md | 6 +- guides/extensions/rest.md | 6 +- guides/features/aries.md | 42 + guides/features/credentials.md | 25 + guides/features/dids.md | 21 + guides/features/index.md | 7 + guides/features/openid4vc.md | 29 + guides/getting-started/set-up/anoncreds-rs.md | 102 -- guides/getting-started/set-up/anoncreds.md | 47 + guides/getting-started/set-up/aries-askar.md | 60 +- guides/getting-started/set-up/cheqd/index.md | 4 +- guides/getting-started/set-up/index.md | 38 +- .../getting-started/set-up/indy-sdk/index.md | 69 - .../getting-started/set-up/indy-sdk/linux.md | 105 -- .../set-up/indy-sdk/macos-arm.md | 59 - .../set-up/indy-sdk/macos-intel.md | 29 - .../set-up/indy-sdk/react-native.md | 13 - .../set-up/indy-sdk/windows.md | 17 - guides/getting-started/set-up/indy-vdr.md | 59 +- guides/tutorials/agent-config/index.md | 13 +- guides/tutorials/agent-config/logging.md | 34 +- .../index.md | 19 - .../linux.md | 49 - .../macos.md | 47 - .../windows.md | 49 - guides/tutorials/issue-a-credential.md | 2 +- ...tering-schema-and-credential-definition.md | 2 +- guides/updating/update-assistant.md | 18 +- guides/updating/update-indy-sdk-to-askar.md | 8 +- sidebars.js | 30 +- snippets/0.4/package.json | 25 +- snippets/current/package.json | 37 +- snippets/current/src/create-a-connection.ts | 8 +- snippets/current/src/issue-a-credential.ts | 19 +- snippets/current/src/mediation-recipient.ts | 10 +- snippets/current/src/mediator-setup.ts | 10 +- .../src/register-schema-and-cred-def.ts | 23 +- ...ncreds-rs-rn.ts => set-up-anoncreds-rn.ts} | 17 +- ...up-anoncreds-rs.ts => set-up-anoncreds.ts} | 17 +- snippets/current/src/set-up-askar-rn.ts | 8 +- snippets/current/src/set-up-askar.ts | 8 +- snippets/current/src/set-up-cheqd.ts | 14 +- .../current/src/set-up-indy-sdk-postgres.ts | 50 - snippets/current/src/set-up-indy-sdk-rn.ts | 36 - snippets/current/src/set-up-indy-sdk.ts | 36 - .../current/src/set-up-indy-vdr-config.ts | 2 +- snippets/current/src/set-up-indy-vdr-rn.ts | 14 +- snippets/current/src/set-up-indy-vdr.ts | 14 +- snippets/current/src/set-up-rn.ts | 8 +- snippets/current/src/set-up.ts | 10 +- yarn.lock | 1607 ++++++++++++++++- 55 files changed, 1882 insertions(+), 1126 deletions(-) create mode 100644 guides/features/aries.md create mode 100644 guides/features/credentials.md create mode 100644 guides/features/dids.md create mode 100644 guides/features/index.md create mode 100644 guides/features/openid4vc.md delete mode 100644 guides/getting-started/set-up/anoncreds-rs.md create mode 100644 guides/getting-started/set-up/anoncreds.md delete mode 100644 guides/getting-started/set-up/indy-sdk/index.md delete mode 100644 guides/getting-started/set-up/indy-sdk/linux.md delete mode 100644 guides/getting-started/set-up/indy-sdk/macos-arm.md delete mode 100644 guides/getting-started/set-up/indy-sdk/macos-intel.md delete mode 100644 guides/getting-started/set-up/indy-sdk/react-native.md delete mode 100644 guides/getting-started/set-up/indy-sdk/windows.md delete mode 100644 guides/tutorials/indy-sdk-postgres-database-nodejs/index.md delete mode 100644 guides/tutorials/indy-sdk-postgres-database-nodejs/linux.md delete mode 100644 guides/tutorials/indy-sdk-postgres-database-nodejs/macos.md delete mode 100644 guides/tutorials/indy-sdk-postgres-database-nodejs/windows.md rename snippets/current/src/{set-up-anoncreds-rs-rn.ts => set-up-anoncreds-rn.ts} (67%) rename snippets/current/src/{set-up-anoncreds-rs.ts => set-up-anoncreds.ts} (67%) delete mode 100644 snippets/current/src/set-up-indy-sdk-postgres.ts delete mode 100644 snippets/current/src/set-up-indy-sdk-rn.ts delete mode 100644 snippets/current/src/set-up-indy-sdk.ts diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index fc65ed39..13eda52f 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -13,7 +13,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-node@v3 with: - node-version: 16.x + node-version: 18.x cache: yarn # ignore scripts as indy-sdk will try to build and we don't have libindy diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 53d465db..a08c2011 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -15,7 +15,7 @@ jobs: - uses: actions/checkout@v2 - uses: actions/setup-node@v3 with: - node-version: 16.x + node-version: 18.x cache: yarn # ignore scripts as indy-sdk will try to build and we don't have libindy diff --git a/guides/extensions/push-notifications.md b/guides/extensions/push-notifications.md index ffb99f82..51d41154 100644 --- a/guides/extensions/push-notifications.md +++ b/guides/extensions/push-notifications.md @@ -4,7 +4,7 @@ The Push Notifications plugin package provides a way for you to register your AP :::note -This document is for version **`0.5.x`** of the `@aries-framework/push-notifications` package, that works with `@aries-framework/core` version **`0.4.x`**. Extension packages (such as Push Notifications) are versioned separately from the core packages. +This document is for version **`0.5.x`** of the `@credo-ts/push-notifications` package, that works with `@credo-ts/core` version **`0.4.x`**. Extension packages (such as Push Notifications) are versioned separately from the core packages. ::: @@ -17,13 +17,13 @@ To add the Push Notifications plugin package to your existing project simply run ## npm ```sh -npm i @aries-framework/push-notifications +npm i @credo-ts/push-notifications ``` ## Yarn ```sh -yarn add @aries-framework/push-notifications +yarn add @credo-ts/push-notifications ``` @@ -31,8 +31,8 @@ yarn add @aries-framework/push-notifications ## Usage ```ts -import { PushNotificationsApnsModule, PushNotificationsFcmModule } from '@aries-framework/push-notifications' -import { } from '@aries-framework/core' +import { PushNotificationsApnsModule, PushNotificationsFcmModule } from '@credo-ts/push-notifications' +import { } from '@credo-ts/core' const agent = new Agent({ /** agent config... */, diff --git a/guides/extensions/react-hooks.md b/guides/extensions/react-hooks.md index f8e16a0d..7a0cae57 100644 --- a/guides/extensions/react-hooks.md +++ b/guides/extensions/react-hooks.md @@ -6,7 +6,7 @@ These hooks provide a simple way to query agent data in a client application, al :::note -This document is for version **`0.5.x`** of the `@aries-framework/react-hooks` package, that works with `@aries-framework/core` version **`0.4.x`**. Extension packages (such as React Hooks) are versioned separately from the core packages. +This document is for version **`0.5.x`** of the `@credo-ts/react-hooks` package, that works with `@credo-ts/core` version **`0.4.x`**. Extension packages (such as React Hooks) are versioned separately from the core packages. ::: @@ -19,13 +19,13 @@ To add the React Hooks package to your existing project simply run: ## npm ```sh -npm i @aries-framework/react-hooks@^0.5 +npm i @credo-ts/react-hooks@^0.5 ``` ## Yarn ```sh -yarn add @aries-framework/react-hooks@^0.5 +yarn add @credo-ts/react-hooks@^0.5 ``` @@ -47,13 +47,13 @@ import AgentProvider, { useProofs, useProofById, useProofByState, -} from '@aries-framework/react-hooks' +} from '@credo-ts/react-hooks' ``` First step is to wrap your entire app in our ``. The provider takes an initialized agent. The base of your app should look something like this: ```tsx -import AgentProvider from '@aries-framework/react-hooks' +import AgentProvider from '@credo-ts/react-hooks' const App = () => { const [agent, setAgent] = useState(undefined) @@ -83,7 +83,7 @@ The `useAgent` hook returns `{ agent, loading }` so anytime you need access to a The following is an example of how you could use the `useConnections` hook to render a full list of all a user's connections. ```ts -import { useConnections } from '@aries-framework/react-hooks' +import { useConnections } from '@credo-ts/react-hooks' const MyConnectionsComponent = () => { // all base hooks return an array of objects and a loading boolean diff --git a/guides/extensions/redux-store.md b/guides/extensions/redux-store.md index 70ad2b11..c460f67e 100644 --- a/guides/extensions/redux-store.md +++ b/guides/extensions/redux-store.md @@ -6,7 +6,7 @@ The Redux Store allows you to integrate state management for the most important :::note -This document is for version **`0.4.x`** of the `@aries-framework/redux-store` package, that works with `@aries-framework/core` version **`0.4.x`**. Extension packages (such as Redux Store) are versioned separately from the core packages. +This document is for version **`0.4.x`** of the `@credo-ts/redux-store` package, that works with `@credo-ts/core` version **`0.4.x`**. Extension packages (such as Redux Store) are versioned separately from the core packages. ::: @@ -19,13 +19,13 @@ To add the Redux Store package to your existing project simply run: ## npm ```sh -npm i @aries-framework/redux-store +npm i @credo-ts/redux-store ``` ## Yarn ```sh -yarn add @aries-framework/redux-store +yarn add @credo-ts/redux-store ``` diff --git a/guides/extensions/rest.md b/guides/extensions/rest.md index fb7b31a4..9dce81e3 100644 --- a/guides/extensions/rest.md +++ b/guides/extensions/rest.md @@ -10,7 +10,7 @@ The Credo REST API is the most convenient way for self-sovereign identity (SSI) :::danger -The `@aries-framework/rest` package has not been updated to work with the latest version (**`0.4.x`**) of `@aries-framework/core`. The documentation in this section is for version **`0.9.x`** of the `@aries-framework/rest` package, that works with `@aries-framework/core` version **`0.2.x`**. Extension packages (such as REST API) are versioned separately from the core packages. +The `@credo-ts/rest` package has not been updated to work with the latest version (**`0.4.x`**) of `@credo-ts/core`. The documentation in this section is for version **`0.9.x`** of the `@credo-ts/rest` package, that works with `@credo-ts/core` version **`0.2.x`**. Extension packages (such as REST API) are versioned separately from the core packages. ::: @@ -31,7 +31,7 @@ You can do this directly on your machine. After installing and confirming that Libindy is installed, simply run: ```sh -npx -p @aries-framework/rest afj-rest start \ +npx -p @credo-ts/rest credo-rest start \ --label "Credo Rest" \ --wallet-id "walletId" \ --wallet-key "walletKey" \ @@ -48,5 +48,5 @@ The REST API provides an OpenAPI schema that can easily be viewed using the Swag To find out all available configuration options from the CLI, you can run the CLI command with `--help`. This will print a full list of all available options. ```sh -npx -p @aries-framework/rest afj-rest start --help +npx -p @credo-ts/rest afj-rest start --help ``` diff --git a/guides/features/aries.md b/guides/features/aries.md new file mode 100644 index 00000000..6871f38a --- /dev/null +++ b/guides/features/aries.md @@ -0,0 +1,42 @@ +# Hyperledger Aries and Aries Interop Profile + +Initially, Credo was built as an Hyperledger Aries framework, focusing on implementing the [Aries RFCs](https://github.com/hyperledger/aries-rfcs) and supporting the [Aries Interop Profile](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0302-aries-interop-profile). + +Support for Hyperledger Aries, DIDComm and AnonCreds is at the core of Credo, and thus if you're building an identity solution supporting these standards, Credo is a great fit. + +## Aries Interop Profile + +Credo currently has **full support for [Aries Interop Profile 1.0](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0302-aries-interop-profile#aries-interop-profile-version-10) (AIP 1)** as well as **most of the features from [Aries Interop Profile 2.0](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0302-aries-interop-profile#aries-interop-profile-version-20) (AIP 2)** + +The following table lists which parts of AIP 2 are supported by Credo: + +| Feature | Support | Notes | +| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| [Base Requirements](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0302-aries-interop-profile#base-requirements) | ✅ | | +| [Mediator Coordination](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0302-aries-interop-profile#mediate-mediator-coordination) | ✅ | | +| [Indy Based Credentials](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0302-aries-interop-profile#indycred-indy-based-credentials) | ✅ | Also support for the newer ledger-agnostic [AnonCreds attachment format](https://github.com/hyperledger/aries-rfcs/tree/main/features/0771-anoncreds-attachments) | +| [JSON-LD Based Credentials](https://github.com/hyperledger/aries-rfcs/tree/main/features/0771-anoncreds-attachments) | ✅ | | +| [BBS+ Based Credentials](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0302-aries-interop-profile#bbscred-bbs-based-credentials) | ✅ | | +| [Chat related features](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0302-aries-interop-profile#chat-chat-related-features) | ✅ | | +| [DIDCommm v2 Prep](https://github.com/hyperledger/aries-rfcs/tree/main/concepts/0302-aries-interop-profile#didcommv2prep-didcomm-v2-prep) | ❌ | | + +## Additional Aries RFCs + +In addition to the Aries RFCs listed by the Aries Interop Profile, Credo also supports the following Aries RFCs: + +| Aries RFC | Support | Notes | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------- | ----- | +| [Aries RFC 0212 Pickup V1](https://github.com/hyperledger/aries-rfcs/tree/main/features/0212-pickup) | ✅ | | +| [Aries RFC 0685 Pickup V2](https://github.com/hyperledger/aries-rfcs/tree/main/features/0685-pickup-v2) | ✅ | | +| [Aries RFC 0721 Revocation Notification V2](https://github.com/hyperledger/aries-rfcs/tree/be8c7bf856577745e0165e9cda0918fa554d120e/features/0721-revocation-notification-v2) | ✅ | | +| [Aries RFC 0771: AnonCreds Attachment Format](https://github.com/hyperledger/aries-rfcs/tree/be8c7bf856577745e0165e9cda0918fa554d120e/features/0771-anoncreds-attachments) | ✅ | | +| [Aries RFC 0794: DID Rotate V1](https://github.com/hyperledger/aries-rfcs/blob/main/features/0794-did-rotate/README.md) | ✅ | | + +## Divergence from Aries RFCs + +Although Credo tries to follow the standards as described in the Aries RFCs as much as possible, some features in Credo slightly diverge from the written spec. Below is an overview of the features that diverge from the spec, their impact and the reasons for diverging. + +| Feature | Impact | Reason | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Support for `imageUrl` attribute in connection invitation and connection request | Properties that are not recognized should be ignored, meaning this shouldn't limit interoperability between agents. As the image url is self-attested it could give a false sense of trust. Better, credential based, method for visually identifying an entity are not present yet. | Even though not documented, almost all agents support this feature. Not including this feature means Credo is lacking in features in comparison to other implementations. | +| Revocation Notification v1 uses a different `thread_id` format ( `indy::::`) than specified in the Aries RFC | Any agents adhering to the [revocation notification v1 RFC](https://github.com/hyperledger/aries-rfcs/tree/main/features/0183-revocation-notification) will not be interoperable with Credo. However, revocation notification is considered an optional portion of revocation, therefore this will not break core revocation behavior. Ideally agents should use and implement revocation notification v2. | Actual implementations (ACA-Py) of revocation notification v1 so far have implemented this different format, so this format change was made to remain interoperable. | diff --git a/guides/features/credentials.md b/guides/features/credentials.md new file mode 100644 index 00000000..d346ac09 --- /dev/null +++ b/guides/features/credentials.md @@ -0,0 +1,25 @@ +# Verifiable Credentials + +One of the main features of Credo is the issuance and verification of Verifiable Credentials. + +## W3C Verifiable Credentials + +[W3C Verifiable Credentials](https://www.w3.org/TR/vc-data-model/) are probably the most widely known credential format, and defined the World Wide Web Consortium (W3C). + +Credo currently supports the issuance and verification of W3C Verifiable Credentials according to the **Data Model v1.1**, and support both the **Linked Data Proof** and **Json Web Token (JWT)** proof formats. + +**Issuance of W3C JWT credentials is not supported over DIDComm**, while verification **is supported** + +## SD-JWT VC + +Selective Disclosure JWT Verifiable Credentials are a special type of JWT Verifiable Credentials, that allow for selective disclosure of the claims in the credential. + +Credo currently supports [SD-JWT-based Verifiable Credentials (SD-JWT VC) - Draft 01](https://www.ietf.org/archive/id/draft-ietf-oauth-sd-jwt-vc-01.html). + +**Issuance of SD-JWT credentials is not supported over DIDComm**, while verification **is supported**. + +## AnonCreds + +Credo supports the issuance and verification of [AnonCreds](https://hyperledger.github.io/anoncreds-spec/) credentials. AnonCreds credentials are a bit 'heavier' to implement and support than other credential formats, but allow for the best unlinkability. + +Issuance and verification of AnonCreds credentials is **only available over DIDComm**. diff --git a/guides/features/dids.md b/guides/features/dids.md new file mode 100644 index 00000000..62ea60b1 --- /dev/null +++ b/guides/features/dids.md @@ -0,0 +1,21 @@ +# Decentralized Identifiers + +[Decentralized identifiers](https://www.w3.org/TR/did-core/) are a core components of Credo, and used everywhere in the framework. + +The base DID implementation allows all components within the framework (whether it be credential signing, sending messages over DIDComm, or verifying a SIOPv2 ID Token) to leverage DIDs. The pluggable DID Resolver and DID Registrar interfaces allow for easy extension of the supported DID methods. + +In addition, any DID can be imported into the framework, meaning it can be used for signing of credentials and DIDComm, without needing a DID Registrar to register the DID. + +## Supported DID Methods + +Currently the following DID methods are supported by Credo: + +| Method | Note | +| ----------- | ------------------------------------------------------------------------------------------------------------ | +| `did:key` | | +| `did:jwk` | | +| `did:peer` | Not supported for OpenID4VC | +| `did:web` | No registrar available, but you can use the `DidDocumentBuilder` to build and later import the DID Document. | +| `did:cheqd` | Available through the `@credo-ts/cheqd` package. | +| `did:indy` | Available through the `@credo-ts/indy-vdr` package. | +| `did:sov` | Available through the `@credo-ts/indy-vdr` package. | diff --git a/guides/features/index.md b/guides/features/index.md new file mode 100644 index 00000000..ef8d22e4 --- /dev/null +++ b/guides/features/index.md @@ -0,0 +1,7 @@ +import DocCardList from '@theme/DocCardList'; + +# Supported Features + +This section tries to list all the standards and features that are supported by Credo. + + diff --git a/guides/features/openid4vc.md b/guides/features/openid4vc.md new file mode 100644 index 00000000..37d5d522 --- /dev/null +++ b/guides/features/openid4vc.md @@ -0,0 +1,29 @@ +# OpenID for Verifiable Credentials + +Since Credo 0.4, support was added to receive credentials using OpenID for Verifiable Credential Issuance, and since 0.5 support was added for all the other OpenID for Verifiable Credential flows. + +This means Credo has support for [OpenID for Verifiable Credential Issuance](https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0.html), [OpenID for Verifiable Presentations](https://openid.net/specs/openid-4-verifiable-presentations-1_0.html), and [Self-Issued OpenID Provider v2](https://openid.net/specs/openid-connect-self-issued-v2-1_0.html). + +:::caution + +Support for OpenID for Verifiable Credentials in Credo is still in an experimental phase, and thus is subject to breaking changes. Also, due to the early stages of these specifications, supported draft versions and flows may change and evolve. As early adopters it’s important to align with the evolving specs, and we are doing out best to keep up-to-date without breaking existing deployments. + +Currently, work is ongoing to update the supported versions for OpenID4VC to the latest available Draft versions: + +- OpenID for Verifiable Credential Issuance - Draft 12 +- OpenID for Verifiable Presentations - Draft 20 +- Self-Issued OpenID Provider - Draft 13 + +::: + +## OpenID for Verifiable Credential Issuance + +[OpenID for Verifiable Credential Issuance - Draft 11](https://openid.net/specs/openid-4-verifiable-credential-issuance-1_0-11.html) is supported, but only the immediate issuance using the Pre-Authorized Code flow. The deferred endpoint, batch endpoints and Authorized Code Flow are not supported at the moment. + +## OpenID for Verifiable Presentations + +[OpenID for Verifiable Presentations - Implementers Draft 1 (Draft 8)](https://openid.net/specs/openid-connect-4-verifiable-presentations-1_0-ID1.html) is supported for requesting and presenting verifiable presentations as part of an authorization request and response. OpenID for Verifiable Presentations is only supported in combination with Self-Issued OpenID Provider V2. + +## Self-Issued OpenID Provider v2 + +[Self-Issued OpenID Provider V2 - Implementers Draft 1 (Draft 7)](https://openid.net/specs/openid-connect-self-issued-v2-1_0-ID1.html) is supported for allowing holders of credentials to act as their own OpenID Provider, and present credentials to a verifier without the need for a third party. Both SIOPv2 authentication requests and responses with verifiable presentations (using VP Token) or without (using ID Token for e.g. DID authentication) are supported. diff --git a/guides/getting-started/set-up/anoncreds-rs.md b/guides/getting-started/set-up/anoncreds-rs.md deleted file mode 100644 index 86afde5a..00000000 --- a/guides/getting-started/set-up/anoncreds-rs.md +++ /dev/null @@ -1,102 +0,0 @@ -# AnonCreds RS - -[AnonCreds RS](https://github.com/hyperledger/anoncreds-rs) is a direct implementation of the [AnonCreds V1.0 specification](https://hyperledger.github.io/anoncreds-spec/) that provides functionality like; creating a schema object, creating a credential definition object, creating a credential, verifying a proof presentation and much more. - -:::caution - -Support for the AnonCreds RS library in Credo is currently experimental. We recommend new projects to use AnonCreds RS from the start, and also to migrate existing projects to AnonCreds, from the Indy Sdk. However, projects may experience some issues. If you encounter any issues, please [open an issue](https://github.com/openwallet-foundation/credo-ts/issues/new). - -Currently, there are few limitations to using AnonCreds RS. - -- When running in Node.JS, only Node.JS 18 is supported for now. See [Supported Node.JS versions for AnonCreds RS](#supported-nodejs-versions-for-anoncreds-rs) -- Install scripts rely on bash command substitution to get the proper binaries for each system architecture and platform. Therefore, if you are under Windows, you must configure `npm` or `yarn` to use a bash-compliant shell (e.g. `npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"`) - -::: - -### Installing AnonCreds RS - -When using Credo with AnonCreds RS, there are a few extra dependencies that need to be installed. We need to install `@hyperledger/anoncreds` package, which contains the interfaces, and `@hyperledger/anoncreds-rs` package which is an implementation which depends on a wrapper of anoncreds-rs. Secondly, we need to add native bindings for the specific platform `@hyperledger/anoncreds-`. Currently there are bindings for Node.JS, as `@hyperledger/anoncreds-nodejs`, and React Native as `@hyperlegder/anoncreds-react-native`. - - - -# Node.JS - -```console -yarn add @aries-framework/anoncreds@^0.4.0 @aries-framework/anoncreds-rs@^0.4.0 @hyperledger/anoncreds-nodejs@^0.1.0 -``` - -# React Native - -```console -yarn add @aries-framework/anoncreds@^0.4.0 @aries-framework/anoncreds-rs@^0.4.0 @hyperledger/anoncreds-react-native@^0.1.0 -``` - - - -### Adding AnonCreds RS to the agent - -After installing the dependencies, we should register both the `AnonCreds` and `AnonCredsRs` module on the agent. - - - -# Node.JS - -```typescript showLineNumbers set-up-anoncreds-rs.ts section-1 - -``` - -# React Native - -```typescript showLineNumbers set-up-anoncreds-rs-rn.ts section-1 - -``` - - - -### Configuration - -As you can see, the AnonCreds module takes a list of registry modules. These modules will be used to resolve the AnonCreds objects. We recommend [Indy VDR](./indy-vdr) as an AnonCreds registry for Hyperledger Indy networks, but [Indy SDK](./indy-sdk) can also be used. - -### Supported Node.JS versions for AnonCreds RS - -Due to an issue in `ref-napi` (which is used in the Node.JS bindings for AnonCreds RS), performance for AnonCreds RS in Node.JS is not as expected. A patched version for `ref-napi` has been published that fixes this issue, but this only works in Node.JS 18+. - -To use AnonCreds RS in Node.JS, make sure you're using Node.JS 18 and patch the `ref-napi` package to point towards `@2060.io/ref-napi` in your `package.json`: - - - -# NPM - -Using [NPM `overrides`](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#overrides) we can point the `ref-napi` package to `@2060.io/ref-napi`. - -```json -{ - "overrides": { - "ref-napi": "npm:@2060.io/ref-napi" - } -} -``` - -# Yarn - -Using [Yarn `resolutions`](https://classic.yarnpkg.com/lang/en/docs/selective-version-resolutions/) we can point the `ref-napi` package to `@2060.io/ref-napi`. - -```json -{ - "resolutions": { - "ref-napi": "npm:@2060.io/ref-napi" - } -} -``` - - - -:::info - -See the following issues for more information on the performance botleneck - -- https://github.com/hyperledger/aries-askar/issues/76 -- https://github.com/node-ffi-napi/ref-napi/issues/72 -- https://github.com/node-ffi-napi/ref-napi/pull/73 - -::: diff --git a/guides/getting-started/set-up/anoncreds.md b/guides/getting-started/set-up/anoncreds.md new file mode 100644 index 00000000..48abc917 --- /dev/null +++ b/guides/getting-started/set-up/anoncreds.md @@ -0,0 +1,47 @@ +# AnonCreds + +The AnonCreds module provides functionality for issuing and verifying [AnonCreds](https://hyperledger.github.io/anoncreds-spec/) credentials in Credo. The AnonCreds implementation is based on [AnonCreds RS](https://github.com/hyperledger/anoncreds-rs), a direct implementation of the [AnonCreds V1.0 specification](https://hyperledger.github.io/anoncreds-spec/) that provides functionality like; creating a schema object, creating a credential definition object, creating a credential, verifying a proof presentation and much more. + +### Installing + +When using Credo with AnonCreds, there are a few extra dependencies that need to be installed. We need to install `@credo-ts/anoncreds` package, which contains the interfaces, and `@hyperledger/anoncreds-` package which is an implementation which depends on a wrapper of anoncreds-rs. Currently there are bindings for Node.JS, as `@hyperledger/anoncreds-nodejs`, and React Native as `@hyperlegder/anoncreds-react-native`. + + + +# Node.JS + +```console +yarn add @credo-ts/anoncreds@^0.5.0 @hyperledger/anoncreds-nodejs@^0.2.0 +``` + +# React Native + +```console +yarn add @credo-ts/anoncreds@^0.5.0 @hyperledger/anoncreds-react-native@^0.2.0 +``` + + + +### Adding AnonCreds to the agent + +After installing the dependencies, we should register the `AnonCredsModule` on the agent. + + + +# Node.JS + +```typescript showLineNumbers set-up-anoncreds.ts section-1 + +``` + +# React Native + +```typescript showLineNumbers set-up-anoncreds-rn.ts section-1 + +``` + + + +### Configuration + +As you can see, the AnonCreds module takes a list of registry modules. These modules will be used to resolve the AnonCreds objects. [Indy VDR](./indy-vdr) can be used as an AnonCreds registry for Hyperledger Indy networks, and [Cheqd](./cheqd) can be used as an AnonCreds registry for Cheqd networks. diff --git a/guides/getting-started/set-up/aries-askar.md b/guides/getting-started/set-up/aries-askar.md index e6c97050..8afb10ee 100644 --- a/guides/getting-started/set-up/aries-askar.md +++ b/guides/getting-started/set-up/aries-askar.md @@ -2,16 +2,6 @@ [Aries Askar](https://github.com/hyperledger/aries-askar) provides secure, encrypted storage and cryptographic support for encrypting, decrypting, signing and verifying data. It also provides both the `Wallet` and `StorageService` implementations for the agent. -:::caution -Although Aries Askar is stable and already used in production in agents such as [Aries Cloud Agent Python](https://github.com/hyperledger/aries-cloudagent-python), support for Aries Askar in Credo is currently experimental. We recommend new projects to use Aries Askar from the start, and also to migrate existing projects to Aries Askar. However, projects may experience some issues. If you encounter any issues, please [open an issue](https://github.com/openwallet-foundation/credo-ts/issues/new). - -Currently, there are few limitations to using Aries Askar. - -- When running in Node.JS, only Node.JS 18 is supported for now. See [Supported Node.JS versions for Aries Askar](#supported-nodejs-versions-for-aries-askar) -- Install scripts rely on bash command substitution to get the proper binaries for each system architecture and platform. Therefore, if you are under Windows, you must configure `npm` or `yarn` to use a bash-compliant shell (e.g. `npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"`) - -::: - :::tip If you're upgrading from the Indy SDK to Aries Askar, see [Migrating from an Indy SDK Wallet to Aries Askar](../updating/update-indy-sdk-to-askar) @@ -20,20 +10,20 @@ If you're upgrading from the Indy SDK to Aries Askar, see [Migrating from an Ind ### Installing Aries Askar -When using Credo with Aries Askar, there are a few extra dependencies that need to be installed. We need to install the `@aries-framework/askar` package, which implements the needed interfaces for the agent. Secondly, we need to add native bindings for the specific platform `@hyperledger/aries-askar-`. Currently there are bindings for Node.JS, as `@hyperledger/aries-askar-nodejs`, and React Native as `@hyperlegder/aries-askar-react-native`. +When using Credo with Aries Askar, there are a few extra dependencies that need to be installed. We need to install the `@credo-ts/askar` package, which implements the needed interfaces for the agent. Secondly, we need to add native bindings for the specific platform `@hyperledger/aries-askar-`. Currently there are bindings for Node.JS, as `@hyperledger/aries-askar-nodejs`, and React Native as `@hyperlegder/aries-askar-react-native`. # Node.JS ```console -yarn add @aries-framework/askar@^0.4.0 @hyperledger/aries-askar-nodejs@^0.1.0 +yarn add @credo-ts/askar@^0.5.0 @hyperledger/aries-askar-nodejs@^0.2.0 ``` # React Native ```console -yarn add @aries-framework/askar@^0.4.0 @hyperledger/aries-askar-react-native@^0.1.0 +yarn add @credo-ts/askar@^0.5.0 @hyperledger/aries-askar-react-native@^0.2.0 ``` @@ -57,47 +47,3 @@ After installing the dependencies, we can register the Askar Module on the agent ``` - -### Supported Node.JS versions for Aries Askar - -Due to an issue in `ref-napi` (which is used in the Node.JS bindings for Aries Askar), performance for Aries Askar in Node.JS is not as expected. A patched version for `ref-napi` has been published that fixes this issue, but this only works in Node.JS 18+. - -To use Aries Askar in Node.JS, make sure you're using Node.JS 18 and patch the `ref-napi` package to point towards `@2060.io/ref-napi` in your `package.json`: - - - -# NPM - -Using [NPM `overrides`](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#overrides) we can point the `ref-napi` package to `@2060.io/ref-napi`. - -```json -{ - "overrides": { - "ref-napi": "npm:@2060.io/ref-napi" - } -} -``` - -# Yarn - -Using [Yarn `resolutions`](https://classic.yarnpkg.com/lang/en/docs/selective-version-resolutions/) we can point the `ref-napi` package to `@2060.io/ref-napi`. - -```json -{ - "resolutions": { - "ref-napi": "npm:@2060.io/ref-napi" - } -} -``` - - - -:::info - -See the following issues for more information on the performance bottleneck - -- https://github.com/hyperledger/aries-askar/issues/76 -- https://github.com/node-ffi-napi/ref-napi/issues/72 -- https://github.com/node-ffi-napi/ref-napi/pull/73 - -::: diff --git a/guides/getting-started/set-up/cheqd/index.md b/guides/getting-started/set-up/cheqd/index.md index a4354f66..c0bc9135 100644 --- a/guides/getting-started/set-up/cheqd/index.md +++ b/guides/getting-started/set-up/cheqd/index.md @@ -10,13 +10,13 @@ cheqd also has a dedicated token, $CHEQ, used for identity writes to the network ### Installing cheqd -When using Credo with the cheqd, there's a few extra dependencies that need to be installed. We need to install the `@aries-framework/cheqd` package, which implements the needed interfaces for the agent. +When using Credo with the cheqd, there's a few extra dependencies that need to be installed. We need to install the `@credo-ts/cheqd` package, which implements the needed interfaces for the agent. #### React Native To enable react-native support we need to follow the steps below -In the package.json file add the below code snippet, which replaces the cosmjs dependencies witht he cosmjs-rn packages +In the package.json file add the below code snippet, which replaces the cosmjs dependencies with he cosmjs-rn packages diff --git a/guides/getting-started/set-up/index.md b/guides/getting-started/set-up/index.md index f880360c..a29a5358 100644 --- a/guides/getting-started/set-up/index.md +++ b/guides/getting-started/set-up/index.md @@ -11,37 +11,34 @@ This guide assumes you have followed the [Prerequisites](./prerequisites), and y :::caution -Credo is still in **active development**, and as such some APIs are still experimental. **When using any experimental features, make sure to use an exact version of Credo** (`0.4.0`) instead of a range (`^0.4.0`), to prevent accidental breaking changes. If you're not leveraging any experimental features, you can use a range (`^0.4.0`) to get the latest bugfixes and features. +Credo is still in **active development**, and as such some APIs are still experimental. **When using any experimental features, make sure to use an exact version of Credo** (`0.5.0`) instead of a range (`^0.5.0`), to prevent accidental breaking changes. If you're not leveraging any experimental features, you can use a range (`^0.5.0`) to get the latest bugfixes and features. -For Credo `0.4.x`, **the following features are experimental**: +For Credo `0.5.x`, **the following features are experimental**: -- Implementing your own `AnonCredsRegistry` and AnonCreds service implementation. -- Using the shared component libraries from `@aries-framework/aries-askar`, `@aries-framework/indy-vdr` and `@aries-framework/anoncreds-rs` -- Using OpenID4VC from the `@aries-framework/openid4vc-client` module -- W3C JWT Verifiable Credentials -- Using multi-tenancy from the `@aries-framework/tenants` module -- Using BBS+ Signatures from the `@aries-framework/bbs-signatures` module -- Using the cheqd module from the `@aries-framework/cheqd` module +- Using OpenID4VC from the `@credo-ts/openid4vc` module +- SD-JWT Verifiable Credentials +- Using multi-tenancy from the `@credo-ts/tenants` module +- Using BBS+ Signatures from the `@credo-ts/bbs-signatures` module +- Using the cheqd module from the `@credo-ts/cheqd` module ::: ### Installing the required dependencies -First we have to install the minimal amount of dependencies that are required -for configuring an Credo agent. +First we have to install the minimal amount of dependencies that are required for configuring an Credo agent. # Node.JS ```console -yarn add @aries-framework/core@^0.4.0 @aries-framework/node@^0.4.0 +yarn add @credo-ts/core@^0.5.0 @credo-ts/node@^0.5.0 ``` # React Native ```console -yarn add @aries-framework/core@^0.4.0 @aries-framework/react-native@^0.4.0 react-native-fs react-native-get-random-values +yarn add @credo-ts/core@^0.5.0 @credo-ts/react-native@^0.5.0 react-native-fs react-native-get-random-values ``` @@ -130,15 +127,16 @@ enough for your specific use cases. Please refer to the ### Adding a wallet and storage implementation -After creating the `Agent` instance, we need to provide the agent with a wallet and storage implementation. Credo provides a few implementations out of the box, but you can also implement your own. Currently the following Wallet and Storage implementations are supported out of the box. Follow the specific guides to set up the wallet and storage implementation of your choice. +After creating the `Agent` instance, we need to provide the agent with a wallet and storage implementation. Credo provides one implementations out of the box, but you can also implement your own. Currently a Wallet and Storage implementation using Aries Askar is supported out of the box. -- [Aries Askar](./set-up/aries-askar) - Recommended. -- [Indy SDK](./set-up/indy-sdk) - Legacy. Will be deprecated in the future. +- [Aries Askar](./set-up/aries-askar) - + ### Setting up the transports diff --git a/guides/getting-started/set-up/indy-sdk/index.md b/guides/getting-started/set-up/indy-sdk/index.md deleted file mode 100644 index 10ae336d..00000000 --- a/guides/getting-started/set-up/indy-sdk/index.md +++ /dev/null @@ -1,69 +0,0 @@ -import DocCardList from '@theme/DocCardList'; - -# Indy SDK - -[Indy SDK](https://github.com/hyperledger/indy-sdk) provides a distributed ledger based foundation for self-sovereign identity. It can provide the `Wallet` and `StorageService` implementations for the agent, as well as a way to interact with Indy ledgers and an implementation of the legacy (v0.1) [AnonCreds Specification](https://hyperledger.github.io/anoncreds-spec/) - -:::caution -The Indy SDK integration in Credo is currently in maintenance mode. We recommend new projects to use [Aries Askar](../aries-askar) from the start, and also to migrate existing projects to Aries Askar. -::: - -:::caution -The AnonCreds implementation from the Indy SDK only supports the [Hyperledger Indy Legacy AnonCreds Method](https://hyperledger.github.io/anoncreds-methods-registry/#hyperledger-indy-legacy-anoncreds-method) (the pre-standardized implementation), and doesn't support the new Ledger [Agnostic AnonCreds Specification (v1.0)](https://hyperledger.github.io/anoncreds-spec/). Use the new AnonCreds Rust implementation, which is also supported by Credo, in combination with [Aries Askar](../aries-askar) and Indy VDR to replace the bevhaviour of the Indy SDK, and support the new features these libraries have to offer. -::: - -### Installing the Indy SDK - -When using Credo with the Indy SDK, there's a few extra dependencies that need to be installed. We need to install the `@aries-framework/indy-sdk` package, which implements the needed interfaces for the agent. Secondly, we need to install the native Indy SDK library and the bindings for our specific platform. Currently there are bindings for Node.JS and React Native. - -To start off, install the native Indy SDK library. The setup for this depends on the platform you are using. Follow the instructions for your platform below. - - - -After the native Indy SDK library is installed, we can add the Indy SDK libraries. - - - -# Node.JS - -```console -yarn add @aries-framework/indy-sdk@^0.4.0 indy-sdk -``` - -And install the needed types - -```console -yarn add --dev @types/indy-sdk -``` - -# React Native - -```console -yarn add @aries-framework/indy-sdk@^0.4.0 indy-sdk-react-native -``` - -And then install the needed types - -```console -yarn add --dev @types/indy-sdk-react-native@npm:@types/indy-sdk -``` - - - -### Adding the Indy SDK to the Agent - -After installing the dependencies, we can register the Indy SDK Module on the agent. - - - -# Node.JS - -```typescript showLineNumbers set-up-indy-sdk.ts section-1 - -``` - -# React Native - -```typescript showLineNumbers set-up-indy-sdk-rn.ts section-1 - -``` diff --git a/guides/getting-started/set-up/indy-sdk/linux.md b/guides/getting-started/set-up/indy-sdk/linux.md deleted file mode 100644 index 8cb4b770..00000000 --- a/guides/getting-started/set-up/indy-sdk/linux.md +++ /dev/null @@ -1,105 +0,0 @@ -# Linux - -To install [Indy SDK](https://github.com/hyperledger/indy-sdk) on Linux, a couple of dependencies are required. This guide covers the installation for the more popular Linux distributions. - -### Libsodium - -[Libsodium](https://github.com/jedisct1/libsodium) is used by the Indy SDK for encryption, decryption, hashing and signing. - - - -#### Arch Linux - -``` -pacman -S libsodium -``` - -#### Debian - -``` -apt-get install libsodium-dev -``` - -#### Red Hat - -``` -yum install libsodium libsodium-devel -``` - - - -### Libzmq - -[Libzmq](https://github.com/zeromq/libzmq) is a lightweight messaging queue used by the Indy SDK. - - - -#### Arch Linux - -``` -pacman -S zeromq -``` - -#### Debian - -``` -apt-get install libzmq3-dev -``` - -#### Red Hat - -``` -yum install libsodium zeromq-devel -``` - - - -### Indy SDK - -All the steps mentioned here are distribution independent. As the Indy SDK doesn't provide binaries for many releases, we will build it from source. This does mean that some additional requirements are necessary, like -[Rust](https://www.rust-lang.org). - -Downloading [Rust](https://www.rust-lang.org) is as easy as executing the -following command: - -```console -curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -``` - -This will install [Rustup](https://rustup.rs) which is the installer for -[Rust](https://rust-lang.org). - -With [Rust](https://rust-lang.org), we can now build the -Indy SDK from source. - -First, clone the repository in a temporary directory: - -```console -git clone https://github.com/hyperledger/indy-sdk -``` - -Secondly, go to the correct directory - -```console -cd indy-sdk/libindy -``` - -Third, build the library - -```console -cargo build --release -``` - -Lastly, move the library to the correct location - -```console -sudo mv target/release/libindy.so /usr/lib/libindy.so -``` - -### Confirm installation - -To see whether the Indy SDK is correctly installed on your system, run the following command and it should not error. - -```console -npx -p @aries-framework/node@^0.3 is-indy-installed -``` diff --git a/guides/getting-started/set-up/indy-sdk/macos-arm.md b/guides/getting-started/set-up/indy-sdk/macos-arm.md deleted file mode 100644 index 3b150d2c..00000000 --- a/guides/getting-started/set-up/indy-sdk/macos-arm.md +++ /dev/null @@ -1,59 +0,0 @@ -# macOS (ARM) - -To install [Indy SDK](https://github.com/hyperledger/indy-sdk) on macOS, a couple of dependencies are required. This guide covers the installation of the Indy SDK for macs with an ARM processor. For installing the Indy SDK on Intel based macs, please refer to the [Indy SDK macOS (Intel)](./macos-intel) guide. - -:::info - -This installation assumes that you have [brew](https://brew.sh) installed. If not, please install it via this command: - -``` -/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -``` - -::: - -### Libsodium - -[Libsodium](https://github.com/jedisct1/libsodium) is used by the Indy SDK for encryption, decryption, hashing and signing. - -```console -brew install libsodium -``` - -### Libzmq - -[Libzmq](https://github.com/zeromq/libzmq) is a lightweight messaging queue used by the Indy SDK. - -```console -brew install zeromq -``` - -### Indy SDK - -The Indy SDK does not been distributed properly for macOS. We have a pre-built library available that can -be downloaded. If you prefer to build from source, you can follow the instructions in the [Indy SDK repository](https://github.com/hyperledger/indy-sdk#how-to-build-indy-sdk-from-source) - -First, download the pre-built library from [Google Drive](https://drive.google.com/file/d/1JaRqAEAyodjeh120YYZ0t42zfhN3wHiW/view). - -After this, open `Finder`, `control+click` on the library and click on `open`. -This is something that has to be done as the library is not properly signed. - -Lastly the library just has to be moved to the correct location. - -:::caution - -If you downloaded the file in another directory, please change the first part of this command - -::: - -```console -sudo mv ~/Downloads/libindy.dylib /usr/local/lib/ -``` - -### Confirm installation - -To see whether the Indy SDK is correctly installed on your system, run the following command and it should not error. - -```console -npx -p @aries-framework/node@^0.3 is-indy-installed -``` diff --git a/guides/getting-started/set-up/indy-sdk/macos-intel.md b/guides/getting-started/set-up/indy-sdk/macos-intel.md deleted file mode 100644 index b0b926ca..00000000 --- a/guides/getting-started/set-up/indy-sdk/macos-intel.md +++ /dev/null @@ -1,29 +0,0 @@ -# macOS (Intel) - -To install [Indy SDK](https://github.com/hyperledger/indy-sdk) on macOS a couple of dependencies are required. This guide covers the installation of the Indy SDK for macs with an Intel processor. For installing the Indy SDK on ARM based macs, please refer to the [Indy SDK macOS (ARM)](./macos-arm) guide. - -:::info - -This installation assumes that you have [brew](https://brew.sh) installed. If not, please install it via this command: - -``` -/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -``` - -::: - -### Indy SDK - -The Indy SDK has not been distributed properly for macOS. We have made a [brew tap](https://docs.brew.sh/Taps) for `libindy` and it will also install all of the required dependencies. - -```console -brew install blu3beri/libindy/libindy -``` - -### Confirm installation - -To see whether the Indy SDK is correctly installed on your system, run the following command and it should not error. - -```console -npx -p @aries-framework/node@^0.3 is-indy-installed -``` diff --git a/guides/getting-started/set-up/indy-sdk/react-native.md b/guides/getting-started/set-up/indy-sdk/react-native.md deleted file mode 100644 index 0c01a73d..00000000 --- a/guides/getting-started/set-up/indy-sdk/react-native.md +++ /dev/null @@ -1,13 +0,0 @@ -# React Native - -The setup of Indy SDK for React Native is rather different than Node.JS. We do not have to install dependencies on the host-platform, but for the build target. For React Native this would be the Indy SDK for Android & iOS. This guide covers both the Android and iOS setup, as in most React Native projects you will need both. - -## Expo - -If you're using [Expo](https://expo.dev), the recommended way to install the Indy SDK is by using the [Indy SDK Expo Plugin](https://github.com/animo/indy-sdk-expo-plugin). This will correclty set-up your project with the Indy SDK using an [Expo Config Plugin](https://docs.expo.dev/guides/config-plugins/) for both iOS and Android. - -Refer to the [Indy SDK Expo Plugin](https://github.com/animo/indy-sdk-expo-plugin) repository for installation instructions. - -## Without Expo - -When not using Expo, you will need to set-up the Indy SDK for both Android and iOS using the `indy-sdk-react-native` package directly. Refer to the [Indy SDK React Native](https://github.com/hyperledger/indy-sdk-react-native) repository for installation instructions. diff --git a/guides/getting-started/set-up/indy-sdk/windows.md b/guides/getting-started/set-up/indy-sdk/windows.md deleted file mode 100644 index 32174542..00000000 --- a/guides/getting-started/set-up/indy-sdk/windows.md +++ /dev/null @@ -1,17 +0,0 @@ -# Windows - -To install [Indy SDK](https://github.com/hyperledger/indy-sdk) on Windows, you can download the pre-built binary from the [Sovrin repository](https://repo.sovrin.org/windows/libindy/master/1.16.0-1636/libindy_1.16.0.zip). - -Once downloaded, extract the zip into a **permanent location**. - -Next, go to `environment variables` on your system and click on `new` at -`System Variables`. The name MUST be `LD_LIBRARY_PATH` and the value MUST be -the path to the extracted libraries. - -### Confirm installation - -To see whether the Indy SDK is correctly installed on your system, run the following command and it should not error. - -```console -npx -p @aries-framework/node@^0.3 is-indy-installed -``` diff --git a/guides/getting-started/set-up/indy-vdr.md b/guides/getting-started/set-up/indy-vdr.md index c4a0aecb..d4926e07 100644 --- a/guides/getting-started/set-up/indy-vdr.md +++ b/guides/getting-started/set-up/indy-vdr.md @@ -2,17 +2,6 @@ [Hyperledger Indy VDR](https://github.com/hyperledger/indy-vdr), Verifiable Data Registry, can be used to connect to one or more Indy Node ledger pools given sets of genesis transactions. Methods are provided to construct ledger requests and send them to the validators, collecting the results and ensuring that there is a consensus between the nodes. In the context of Credo, we mainly leverage it to register, and resolve, schemas, credential definitions and DIDs. -:::caution - -Support for Indy VDR in Credo is currently experimental. We recommend new projects to use Indy VDR from the start, and also to migrate existing projects to Indy VDR, from the indy-sdk. However, projects may experience some issues. If you encounter any issues, please [open an issue](https://github.com/openwallet-foundation/credo-ts/issues/new). - -Currently, there are few limitations to using Indy VDR. - -- When running in Node.JS, only Node.JS 18 is supported for now. See [Supported Node.JS versions for Indy VDR](#supported-nodejs-versions-for-indy-vdr) -- Install scripts rely on bash command substitution to get the proper binaries for each system architecture and platform. Therefore, if you are under Windows, you must configure `npm` or `yarn` to use a bash-compliant shell (e.g. `npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"`) - -::: - ### Installing Indy VDR When using Credo with Indy VDR, there are a few extra dependencies that need to be installed. We need to install the `@hyperledger/indy-vdr`, which contains all the functionality to register objects on an Hyperledger Indy VDR. Secondly, we need to add native bindings for the specific platform `@hyperledger/indy-vdr-`. Currently there are bindings for Node.JS, as `@hyperledger/indy-vdr-nodejs`, and React Native as `@hyperlegder/indy-vdr-react-native`. @@ -22,13 +11,13 @@ When using Credo with Indy VDR, there are a few extra dependencies that need to # Node.JS ```console -yarn add @aries-framework/indy-vdr@^0.4.0 @hyperledger/indy-vdr-nodejs@^0.1.0 +yarn add @credo-ts/indy-vdr@^0.5.0 @hyperledger/indy-vdr-nodejs@^0.2.0 ``` # React Native ```console -yarn add @aries-framework/indy-vdr@^0.4.0 @hyperledger/indy-vdr-react-native@^0.1.0 +yarn add @credo-ts/indy-vdr@^0.5.0 @hyperledger/indy-vdr-react-native@^0.2.0 ``` @@ -114,47 +103,3 @@ The version of the AML acceptance mechanism. This is a string representation of **Type**: `string` The acceptance mechanism to choose. This _must_ be _one_ of the available labels of the acceptance mechanisms key-value pairs in the AML e.g. 'EULA'. - -### Supported Node.JS versions for Indy VDR - -Due to an issue in `ref-napi` (which is used in the Node.JS bindings for Indy VDR), performance for Indy VDR in Node.JS is not as expected. A patched version for `ref-napi` has been published that fixes this issue, but this only works in Node.JS 18+. - -To use Indy VDR in Node.JS, make sure you're using Node.JS 18 and patch the `ref-napi` package to point towards `@2060.io/ref-napi` in your `package.json`: - - - -# NPM - -Using [NPM `overrides`](https://docs.npmjs.com/cli/v9/configuring-npm/package-json#overrides) we can point the `ref-napi` package to `@2060.io/ref-napi`. - -```json -{ - "overrides": { - "ref-napi": "npm:@2060.io/ref-napi" - } -} -``` - -# Yarn - -Using [Yarn `resolutions`](https://classic.yarnpkg.com/lang/en/docs/selective-version-resolutions/) we can point the `ref-napi` package to `@2060.io/ref-napi`. - -```json -{ - "resolutions": { - "ref-napi": "npm:@2060.io/ref-napi" - } -} -``` - - - -:::info - -See the following issues for more information on the performance bottleneck - -- https://github.com/hyperledger/aries-askar/issues/76 -- https://github.com/node-ffi-napi/ref-napi/issues/72 -- https://github.com/node-ffi-napi/ref-napi/pull/73 - -::: diff --git a/guides/tutorials/agent-config/index.md b/guides/tutorials/agent-config/index.md index b50429cc..18005443 100644 --- a/guides/tutorials/agent-config/index.md +++ b/guides/tutorials/agent-config/index.md @@ -27,7 +27,7 @@ can be initialized separately. **Type**: `WalletConfig` ```typescript title="example" -import { KeyDerivationMethod } from '@aries-framework/core' +import { KeyDerivationMethod } from '@credo-ts/core' walletConfig: { id: 'foo', @@ -58,11 +58,7 @@ be seem like a password. The method used for key derivation of the [`walletConfig.key`](#walletconfigkey). -When using `KeyDerivationMethod.Raw`, it is strongly recommended to get the raw -key via -[`indy_generate_wallet_key`](https://github.com/hyperledger/indy-sdk/blob/1c7096dd95d0fd53881070f66907df4b9e61b874/libindy/src/api/wallet.rs#L560). -If you really must implement your own key generation, it is required to be a -base58-encoded +When using `KeyDerivationMethod.Raw`, the key must be a base58-encoded [ChaCha20-Poly1305](https://en.wikipedia.org/wiki/ChaCha20-Poly1305) key. > For the advanced readers @@ -85,10 +81,7 @@ base58-encoded **`KeyDerivationMethod.Raw`** -    uses no derivation method. -It is recommended to use the -[`indy_generate_wallet_key`](https://github.com/hyperledger/indy-sdk/blob/1c7096dd95d0fd53881070f66907df4b9e61b874/libindy/src/api/wallet.rs#L560) -for key generation. +    uses no derivation method and the key must be a base58-encoded [ChaCha20-Poly1305](https://en.wikipedia.org/wiki/ChaCha20-Poly1305) key. ### `walletConfig.storage` diff --git a/guides/tutorials/agent-config/logging.md b/guides/tutorials/agent-config/logging.md index 642dd8dd..3f6306d1 100644 --- a/guides/tutorials/agent-config/logging.md +++ b/guides/tutorials/agent-config/logging.md @@ -5,8 +5,8 @@ To enable logging inside the framework a logger must be passed to the agent config. A simple `ConsoleLogger` can be imported from the framework. ```ts -import type { InitConfig } from '@aries-framework/core' -import { ConsoleLogger, LogLevel } from '@aries-framework/core' +import type { InitConfig } from '@credo-ts/core' +import { ConsoleLogger, LogLevel } from '@credo-ts/core' const agentConfig: InitConfig = { // ... other config properties ... @@ -19,7 +19,7 @@ const agentConfig: InitConfig = { For more advanced use cases the `Logger` interface can be implemented. See the example below. ```ts -import { Logger, LogLevel } from '@aries-framework/core' +import { Logger, LogLevel } from '@credo-ts/core' class MyCustomLogger implements Logger { public logLevel: LogLevel @@ -57,31 +57,3 @@ class MyCustomLogger implements Logger { } } ``` - -## Indy Logs - -To enable logging in the underlying Rust framework, either `setLogger` or `setDefaultLogger` must be called on the indy dependency, as seen [here](https://github.com/hyperledger/indy-sdk/tree/master/wrappers/nodejs#logger). - -:::caution - -The `setLogger` and `setDefaultLogger` methods have only been implemented in the Node.JS wrapper of the indy sdk. This won't work when importing from `@aries-framework/react-native` - -::: - -The easiest way to do this from Credo is through the `indy` property of `agentDependencies`. - -```ts -import { agentDependencies } from '@aries-framework/node' -agentDependencies.indy.setDefaultLogger('trace') - -// OR - -agentDependencies.indy.setLogger((level, target, message, modulePath, file, line) => { - console.log('libindy said:', level, target, message, modulePath, file, line) -}) -``` - -> WARNING: You can only set the logger once. Call indy_set_default_logger, indy_set_logger, not both. Once it's been set, libindy won't let you change it. - -You can also set the environment variable `RUST_LOG` to log at specified log levels. -See https://crates.io/crates/env_logger for more information. diff --git a/guides/tutorials/indy-sdk-postgres-database-nodejs/index.md b/guides/tutorials/indy-sdk-postgres-database-nodejs/index.md deleted file mode 100644 index b640bff4..00000000 --- a/guides/tutorials/indy-sdk-postgres-database-nodejs/index.md +++ /dev/null @@ -1,19 +0,0 @@ -# Using PostgreSQL as Database for Indy SDK in Node.js - -By default the Indy SDK will use an SQLite database for storage. In mobile environments this is sufficient and allows us to keep storage local to the device, but in server environments we oftentimes want a more scalable storage solution. By leveraging the PostgreSQL plugin for Indy SDK we can use PostgreSQL as a storage solution instead of SQLite. - -This document describes the installation process of the Postgres plugin for IndySDK and how you need to configure Credo to use it. - -## Installation of the Postgres Plugin - -For installation of the Postgres plugin, please refer to the platform specific guides: - -- [macOS](./macos.md) -- [Linux](./linux.md) -- [Windows](./windows.md) - -## Using the Postgres Plugin in Credo - -```typescript showLineNumbers set-up-indy-sdk-postgres.ts section-1 - -``` diff --git a/guides/tutorials/indy-sdk-postgres-database-nodejs/linux.md b/guides/tutorials/indy-sdk-postgres-database-nodejs/linux.md deleted file mode 100644 index ec5fdbef..00000000 --- a/guides/tutorials/indy-sdk-postgres-database-nodejs/linux.md +++ /dev/null @@ -1,49 +0,0 @@ -# Postgres Setup for Linux - -## Prerequisites - -- A system package manager (like APT, Pacman, etc.) -- Cargo (We have to build Postgres plugin from source) -- git (to clone a repo, could also be done with downloading the zip from the GitHub page) - -## Step 1: installing the dependencies using apt - -### Debian based (Ubuntu, Mint, Kali, Deepin, etc.) - -```sh -sudo apt install libzmq3-dev libsodium-dev libssl-dev -``` - -## Step 2: Build Postgres plugin - -Building Postgres plugin from the indy-sdk repo with cargo. - -### Step 2.1: Cloning the indy-sdk - -```sh -git clone https://github.com/hyperledger/indy-sdk.git - -cd indy-sdk/experimental/plugins/postgres_storage -``` - -### Step 2.2: Building Postgres plugin - -If this step throws any errors, it might be because you miss some packages. Step 1 of this guide provided the dependencies that are required, but it also assumed that you have some basic development packages installed. If you are missing some packages, you can install them with your package manager. - -```sh -pwd - -# OUTPUT: .../indy-sdk/experimental/plugins/postgres_storage - -cargo build --release -``` - -### Step 2.3: Moving the file - -```sh -pwd - -# OUTPUT: .../indy-sdk/experimental/plugins/postgres_storage - -sudo mv ./target/release/libindystrgpostgres.so /usr/local/lib/libindystrgpostgres.so -``` diff --git a/guides/tutorials/indy-sdk-postgres-database-nodejs/macos.md b/guides/tutorials/indy-sdk-postgres-database-nodejs/macos.md deleted file mode 100644 index 6d80b01b..00000000 --- a/guides/tutorials/indy-sdk-postgres-database-nodejs/macos.md +++ /dev/null @@ -1,47 +0,0 @@ -# Postgres Setup for macOS - -## Prerequisites - -- Homebrew -- Cargo (We have to build Postgres plugin from source) -- git (to clone a repo, could also be done with downloading the zip from the GitHub page) - -## Step 1: installing the dependencies using brew - -```sh -brew install libsodium zeromq -``` - -## Step 2: Build Postgres plugin - -Building Postgres plugin from the indy-sdk repo with cargo. - -### Step 2.1: Cloning the indy-sdk - -```sh -git clone https://github.com/hyperledger/indy-sdk.git - -cd indy-sdk/experimental/plugins/postgres_storage -``` - -### Step 2.2: Building Postgres plugin - -If this step throws any errors, it might be because you miss some packages. Step 1 of this guide provided the dependencies that are required, but it also assumed that you have some basic development packages installed. If you are missing some packages, you can install them with your package manager. - -```sh -pwd - -# OUTPUT: .../indy-sdk/experimental/plugins/postgres_storage - -cargo build --release -``` - -### Step 2.3: Moving the file - -```sh -pwd - -# OUTPUT: .../indy-sdk/experimental/plugins/postgres_storage - -sudo mv ./target/release/libindystrgpostgres.dylib /usr/local/lib/libindystrgpostgres.dylib -``` diff --git a/guides/tutorials/indy-sdk-postgres-database-nodejs/windows.md b/guides/tutorials/indy-sdk-postgres-database-nodejs/windows.md deleted file mode 100644 index d7281bdb..00000000 --- a/guides/tutorials/indy-sdk-postgres-database-nodejs/windows.md +++ /dev/null @@ -1,49 +0,0 @@ -# Postgres Setup for windows - -## Build Environment Prerequisites - -1. Download and install Visual Studio Community Edition 2022 -1. Install git for windows -1. Download rust for windows [here](https://www.rust-lang.org/en-US/install.html) -1. Make sure you have already setup libindy for windows from [here](../../getting-started/indy-sdk/windows) - -## Step 1: Getting dependencies - -- Download the prebuilt dependencies [here](https://repo.sovrin.org/windows/libindy/deps/) -- Extract them -- Point path to this directory using environment variables: - - `set INDY_PREBUILT_DEPS_DIR=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps` - - `set INDY_CRYPTO_PREBUILT_DEPS_DIR=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps` - - `set MILAGRO_DIR=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps` - - `set LIBZMQ_PREFIX=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps` - - `set SODIUM_LIB_DIR=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps` - - `set OPENSSL_DIR=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps` - - `set PATH=C:\Users\{WINDOWS_USER}\Downloads\indy-sdk-deps\lib` - -## Step 2: Build Postgres plugin - -Building Postgres plugin from the indy-sdk repo with cargo. - -### Step 2.1: Cloning the indy-sdk - -```sh -git clone https://github.com/hyperledger/indy-sdk.git - -cd indy-sdk\experimental\plugins\postgres_storage -``` - -### Step 2.2: Building Postgres plugin - -If this step throws any errors, it might be because of the environment. Step 1 of this guide provided the dependencies that are required. - -```sh -cargo build --release --target x86_64-pc-windows-msvc -``` - -The library **indystrgpostgres.dll** file will be located at `indy-sdk\experimental\plugins\postgres_storage\target\x86_64-pc-windows-msvc\release` - -### Step 2.3: Setting the file to PATH - -- `set LIB_INDY_STRG_POSTGRES=C:\Users\{WINDOWS_USER}\Downloads\indy-sdklexperimental\plugins\postgres_storage\target\x86_64-pc-windows-msvc\release` - -or Alternatively you can copy the **indystrgpostgres.dll** file to `c:\\windows\\system32\\` diff --git a/guides/tutorials/issue-a-credential.md b/guides/tutorials/issue-a-credential.md index 197c1a49..d99f6e1c 100644 --- a/guides/tutorials/issue-a-credential.md +++ b/guides/tutorials/issue-a-credential.md @@ -65,7 +65,7 @@ For the _Holder_ we need to setup a basic agent with a wallet, mediator, outboun > If you want to follow this tutorial in a mobile environment: > -> 1. Use the `agentDependencies` from `@aries-framework/react-native` +> 1. Use the `agentDependencies` from `@credo-ts/react-native` > 1. It is very important to note that mobile agents do not support HTTP by default. It is recommended to do everything over HTTPS, but for development HTTP can be enabled for [iOS](https://stackoverflow.com/questions/30731785/how-do-i-load-an-http-url-with-app-transport-security-enabled-in-ios-9) and [Android](https://stackoverflow.com/questions/51902629/how-to-allow-all-network-connection-types-http-and-https-in-android-9-pie). :::holder diff --git a/guides/tutorials/registering-schema-and-credential-definition.md b/guides/tutorials/registering-schema-and-credential-definition.md index d6b84ca9..035490b1 100644 --- a/guides/tutorials/registering-schema-and-credential-definition.md +++ b/guides/tutorials/registering-schema-and-credential-definition.md @@ -31,7 +31,7 @@ There are many ledgers which can be used to register DIDs on for development. #### Indy VDR -We recommend [bcovrin test net](http://test.bcovrin.vonx.io/). This network allows very easily to register a DID from a seed which can then be used as the `privateKey` in the snippet below. The seed is used as the private key for legacy compatibility with the Hyperledger Indy-SDK. The [genesis transactions](http://test.bcovrin.vonx.io/genesis) can also be retrieved for easy integration. +We recommend [BCovrin Testnet](http://test.bcovrin.vonx.io/). This network allows very easily to register a DID from a seed which can then be used as the `privateKey` in the snippet below. The seed is used as the private key for legacy compatibility with the Hyperledger Indy-SDK. The [genesis transactions](http://test.bcovrin.vonx.io/genesis) can also be retrieved for easy integration. #### Cheqd diff --git a/guides/updating/update-assistant.md b/guides/updating/update-assistant.md index 81b98c59..dbbaadd7 100644 --- a/guides/updating/update-assistant.md +++ b/guides/updating/update-assistant.md @@ -21,10 +21,10 @@ There are three options on how to leverage the update assistant on agent startup When the version of the storage is stored inside the agent storage, it means we need to check if the agent needs to be updated on every agent startup. We'll initialize the update assistant and check whether the storage is up to date. The advantage of this approach is that you don't have to store anything yourself, and have full control over the workflow. ```ts -import { UpdateAssistant, Agent } from '@aries-framework/core' +import { UpdateAssistant, Agent } from '@credo-ts/core' -// or @aries-framework/node -import { agentDependencies } from '@aries-framework/react-native' +// or @credo-ts/node +import { agentDependencies } from '@credo-ts/react-native' // First create the agent const agent = new Agent({ @@ -61,10 +61,10 @@ When the version of the storage is stored outside of the agent storage, you don' When a wallet has been exported and later imported you don't always have the latest version available. If this is the case you can always rely on Method 1 or 2 for updating the wallet, and storing the version yourself afterwards. You can also get the current version by calling `await updateAssistant.getCurrentAgentStorageVersion()`. Do note the `UpdateAssistant` needs to be initialized before calling this method. ```ts -import { UpdateAssistant, Agent } from '@aries-framework/core' +import { UpdateAssistant, Agent } from '@credo-ts/core' -// or @aries-framework/node -import { agentDependencies } from '@aries-framework/react-native' +// or @credo-ts/node +import { agentDependencies } from '@credo-ts/react-native' // The storage version will normally be stored in e.g. persistent storage on a mobile device let currentStorageVersion: VersionString = '0.1' @@ -106,10 +106,10 @@ await agent.initialize() This is by far the easiest way to update the agent, but has the least amount of flexibility and is not configurable. This means you will have to use the default update options to update the agent storage. You can find the default update config in the respective version migration guides (e.g. in [0.1-to-0.2](/guides/updating/versions/0.1-to-0.2.md)). ```ts -import { UpdateAssistant, Agent } from '@aries-framework/core' +import { UpdateAssistant, Agent } from '@credo-ts/core' -// or @aries-framework/node -import { agentDependencies } from '@aries-framework/react-native' +// or @credo-ts/node +import { agentDependencies } from '@credo-ts/react-native' // First create the agent, setting the autoUpdateStorageOnStartup option to true const agent = new Agent({ diff --git a/guides/updating/update-indy-sdk-to-askar.md b/guides/updating/update-indy-sdk-to-askar.md index 1057ca7b..da9c4a94 100644 --- a/guides/updating/update-indy-sdk-to-askar.md +++ b/guides/updating/update-indy-sdk-to-askar.md @@ -87,7 +87,7 @@ It is very important to note that the migration script only has to be run once. ### add the required dependencies ```sh -yarn add @hyperledger/aries-askar-react-native @aries-framework/indy-sdk-to-askar-migration react-native-fs +yarn add @hyperledger/aries-askar-react-native @credo-ts/indy-sdk-to-askar-migration react-native-fs ``` Below is the minimal code required for the migration to work. It is recommended to turn the logger on as it gives a lot of information regarding the migration. @@ -99,9 +99,9 @@ The agent is not allowed to be initialized to run this script. This makes sure n ::: ```typescript -import { agentDependencies } from '@aries-framework/react-native' -import { AskarModule } from '@aries-framework/askar' -import { IndySdkToAskarMigrationUpdater } from '@aries-framework/indy-sdk-to-askar-migration' +import { agentDependencies } from '@credo-ts/react-native' +import { AskarModule } from '@credo-ts/askar' +import { IndySdkToAskarMigrationUpdater } from '@credo-ts/indy-sdk-to-askar-migration' import { ariesAskar } from '@hyperledger/aries-askar-react-native' const oldAgent = new Agent({ diff --git a/sidebars.js b/sidebars.js index 8a64e92d..cd20c172 100644 --- a/sidebars.js +++ b/sidebars.js @@ -32,19 +32,7 @@ const sidebars = { link: { type: 'doc', id: 'getting-started/set-up/index' }, items: [ 'getting-started/set-up/aries-askar', - { - type: 'category', - label: 'Indy SDK', - link: { type: 'doc', id: 'getting-started/set-up/indy-sdk/index' }, - items: [ - 'getting-started/set-up/indy-sdk/linux', - 'getting-started/set-up/indy-sdk/windows', - 'getting-started/set-up/indy-sdk/macos-intel', - 'getting-started/set-up/indy-sdk/macos-arm', - 'getting-started/set-up/indy-sdk/react-native', - ], - }, - 'getting-started/set-up/anoncreds-rs', + 'getting-started/set-up/anoncreds', 'getting-started/set-up/indy-vdr', 'getting-started/set-up/cheqd/index', ], @@ -57,6 +45,12 @@ const sidebars = { link: { type: 'doc', id: 'concepts/index' }, items: ['concepts/agents', 'concepts/did-and-didcomm', 'concepts/platform-and-environment'], }, + { + type: 'category', + label: 'Features', + link: { type: 'doc', id: 'features/index' }, + items: ['features/aries', 'features/openid4vc', 'features/dids', 'features/credentials'], + }, { type: 'category', label: 'Tutorials', @@ -73,16 +67,6 @@ const sidebars = { 'tutorials/registering-schema-and-credential-definition', 'tutorials/issue-a-credential', 'tutorials/mediation', - { - type: 'category', - label: 'Using PostgreSQL with the Indy SDK', - link: { type: 'doc', id: 'tutorials/indy-sdk-postgres-database-nodejs/index' }, - items: [ - 'tutorials/indy-sdk-postgres-database-nodejs/linux', - 'tutorials/indy-sdk-postgres-database-nodejs/macos', - 'tutorials/indy-sdk-postgres-database-nodejs/windows', - ], - }, ], }, { diff --git a/snippets/0.4/package.json b/snippets/0.4/package.json index c4531f9f..b27b2e81 100644 --- a/snippets/0.4/package.json +++ b/snippets/0.4/package.json @@ -13,21 +13,24 @@ "dev:set-up": "ts-node --esm src/set-up.ts" }, "dependencies": { - "@aries-framework/anoncreds": "^0.4.0", - "@aries-framework/anoncreds-rs": "^0.4.0", - "@aries-framework/askar": "^0.4.0", - "@aries-framework/core": "^0.4.0", - "@aries-framework/indy-sdk": "^0.4.0", - "@aries-framework/indy-vdr": "^0.4.0", - "@aries-framework/cheqd": "^0.4.0", - "@aries-framework/node": "^0.4.0", - "@aries-framework/react-native": "^0.4.0", + "@aries-framework/anoncreds": "^0.4.2", + "@aries-framework/anoncreds-rs": "^0.4.2", + "@aries-framework/askar": "^0.4.2", + "@aries-framework/core": "^0.4.2", + "@aries-framework/indy-sdk": "^0.4.2", + "@aries-framework/indy-vdr": "^0.4.2", + "@aries-framework/cheqd": "^0.4.2", + "@aries-framework/node": "^0.4.2", + "@aries-framework/react-native": "^0.4.2", "@hyperledger/anoncreds-nodejs": "^0.1.0", "@hyperledger/anoncreds-react-native": "^0.1.0", - "@hyperledger/aries-askar-nodejs": "^0.1.0", - "@hyperledger/aries-askar-react-native": "^0.1.0", + "@hyperledger/anoncreds-shared": "^0.1.0", + "@hyperledger/aries-askar-nodejs": "^0.1.1", + "@hyperledger/aries-askar-react-native": "^0.1.1", + "@hyperledger/aries-askar-shared": "^0.1.1", "@hyperledger/indy-vdr-nodejs": "^0.1.0", "@hyperledger/indy-vdr-react-native": "^0.1.0", + "@hyperledger/indy-vdr-shared": "^0.1.0", "indy-sdk": "^1.16.0-dev-1655", "indy-sdk-react-native": "^0.3.1", "node-fetch": "2" diff --git a/snippets/current/package.json b/snippets/current/package.json index cdc1b0b7..d668b4c7 100644 --- a/snippets/current/package.json +++ b/snippets/current/package.json @@ -13,27 +13,22 @@ "dev:set-up": "ts-node --esm src/set-up.ts" }, "dependencies": { - "@aries-framework/anoncreds": "^0.4.0", - "@aries-framework/anoncreds-rs": "^0.4.0", - "@aries-framework/askar": "^0.4.0", - "@aries-framework/core": "^0.4.0", - "@aries-framework/indy-sdk": "^0.4.0", - "@aries-framework/indy-vdr": "^0.4.0", - "@aries-framework/cheqd": "^0.4.0", - "@aries-framework/node": "^0.4.0", - "@aries-framework/react-native": "^0.4.0", - "@hyperledger/anoncreds-nodejs": "^0.1.0", - "@hyperledger/anoncreds-react-native": "^0.1.0", - "@hyperledger/aries-askar-nodejs": "^0.1.0", - "@hyperledger/aries-askar-react-native": "^0.1.0", - "@hyperledger/indy-vdr-nodejs": "^0.1.0", - "@hyperledger/indy-vdr-react-native": "^0.1.0", - "indy-sdk": "^1.16.0-dev-1655", - "indy-sdk-react-native": "^0.3.1", + "@credo-ts/anoncreds": "0.5.0-alpha.110", + "@credo-ts/askar": "0.5.0-alpha.110", + "@credo-ts/core": "0.5.0-alpha.110", + "@credo-ts/indy-vdr": "0.5.0-alpha.110", + "@credo-ts/cheqd": "0.5.0-alpha.110", + "@credo-ts/node": "0.5.0-alpha.110", + "@credo-ts/react-native": "0.5.0-alpha.110", + "@hyperledger/anoncreds-nodejs": "0.2.0-dev.9", + "@hyperledger/anoncreds-react-native": "0.2.0-dev.9", + "@hyperledger/anoncreds-shared": "0.2.0-dev.9", + "@hyperledger/aries-askar-nodejs": "0.2.0-dev.6", + "@hyperledger/aries-askar-react-native": "0.2.0-dev.6", + "@hyperledger/aries-askar-shared": "0.2.0-dev.6", + "@hyperledger/indy-vdr-nodejs": "0.2.0-dev.6", + "@hyperledger/indy-vdr-react-native": "0.2.0-dev.6", + "@hyperledger/indy-vdr-shared": "0.2.0-dev.6", "node-fetch": "2" - }, - "devDependencies": { - "@types/indy-sdk": "1.16.26", - "@types/indy-sdk-react-native": "npm:@types/indy-sdk@1.16.26" } } diff --git a/snippets/current/src/create-a-connection.ts b/snippets/current/src/create-a-connection.ts index 525ce92f..7e52365f 100644 --- a/snippets/current/src/create-a-connection.ts +++ b/snippets/current/src/create-a-connection.ts @@ -1,4 +1,4 @@ -import { AskarModule } from '@aries-framework/askar' +import { AskarModule } from '@credo-ts/askar' import { Agent, InitConfig, @@ -9,8 +9,8 @@ import { DidExchangeState, OutOfBandRecord, ConnectionsModule, -} from '@aries-framework/core' -import { agentDependencies, HttpInboundTransport } from '@aries-framework/node' +} from '@credo-ts/core' +import { agentDependencies, HttpInboundTransport } from '@credo-ts/node' import { ariesAskar } from '@hyperledger/aries-askar-nodejs' // start-section-1 @@ -27,7 +27,6 @@ const initializeBobAgent = async () => { } // A new instance of an agent is created here - // Askar can also be replaced by the indy-sdk if required const agent = new Agent({ config, modules: { @@ -64,7 +63,6 @@ const initializeAcmeAgent = async () => { } // A new instance of an agent is created here - // Askar can also be replaced by the indy-sdk if required const agent = new Agent({ config, modules: { diff --git a/snippets/current/src/issue-a-credential.ts b/snippets/current/src/issue-a-credential.ts index b1006aea..b3d9ca4d 100644 --- a/snippets/current/src/issue-a-credential.ts +++ b/snippets/current/src/issue-a-credential.ts @@ -9,23 +9,22 @@ import { Agent, CredentialsModule, V2CredentialProtocol, -} from '@aries-framework/core' -import { agentDependencies, HttpInboundTransport } from '@aries-framework/node' -import { AskarModule } from '@aries-framework/askar' +} from '@credo-ts/core' +import { agentDependencies, HttpInboundTransport } from '@credo-ts/node' +import { AskarModule } from '@credo-ts/askar' import { ariesAskar } from '@hyperledger/aries-askar-nodejs' import { IndyVdrAnonCredsRegistry, IndyVdrIndyDidRegistrar, IndyVdrIndyDidResolver, IndyVdrModule, -} from '@aries-framework/indy-vdr' +} from '@credo-ts/indy-vdr' import { indyVdr } from '@hyperledger/indy-vdr-nodejs' import { AnonCredsCredentialFormatService, AnonCredsModule, LegacyIndyCredentialFormatService, -} from '@aries-framework/anoncreds' -import { AnonCredsRsModule } from '@aries-framework/anoncreds-rs' +} from '@credo-ts/anoncreds' import { anoncreds } from '@hyperledger/anoncreds-nodejs' const issuerConfig: InitConfig = { @@ -52,9 +51,6 @@ const issuer = new Agent({ askar: new AskarModule({ ariesAskar, }), - anoncredsRs: new AnonCredsRsModule({ - anoncreds, - }), indyVdr: new IndyVdrModule({ indyVdr, networks: [ @@ -68,6 +64,7 @@ const issuer = new Agent({ }), anoncreds: new AnonCredsModule({ registries: [new IndyVdrAnonCredsRegistry()], + anoncreds, }), dids: new DidsModule({ registrars: [new IndyVdrIndyDidRegistrar()], @@ -101,9 +98,6 @@ const holder = new Agent({ askar: new AskarModule({ ariesAskar, }), - anoncredsRs: new AnonCredsRsModule({ - anoncreds, - }), indyVdr: new IndyVdrModule({ indyVdr, networks: [ @@ -117,6 +111,7 @@ const holder = new Agent({ }), anoncreds: new AnonCredsModule({ registries: [new IndyVdrAnonCredsRegistry()], + anoncreds, }), dids: new DidsModule({ resolvers: [new IndyVdrIndyDidResolver()], diff --git a/snippets/current/src/mediation-recipient.ts b/snippets/current/src/mediation-recipient.ts index a91ebfa1..881c7684 100644 --- a/snippets/current/src/mediation-recipient.ts +++ b/snippets/current/src/mediation-recipient.ts @@ -6,10 +6,10 @@ import { LogLevel, MediationRecipientModule, WsOutboundTransport, -} from '@aries-framework/core' -import { IndySdkModule } from '@aries-framework/indy-sdk' -import { agentDependencies } from '@aries-framework/node' -import indySdk from 'indy-sdk' +} from '@credo-ts/core' +import { AskarModule } from '@credo-ts/askar' +import { ariesAskar } from '@hyperledger/aries-askar-nodejs' +import { agentDependencies } from '@credo-ts/node' // start-section-1 const name = 'alice' @@ -35,7 +35,7 @@ const alice = new Agent({ mediationRecipient: new MediationRecipientModule({ mediatorInvitationUrl, }), - indySdk: new IndySdkModule({ indySdk }), + askar: new AskarModule({ ariesAskar }), }, }) diff --git a/snippets/current/src/mediator-setup.ts b/snippets/current/src/mediator-setup.ts index 867ff4fe..793b13b5 100644 --- a/snippets/current/src/mediator-setup.ts +++ b/snippets/current/src/mediator-setup.ts @@ -6,10 +6,10 @@ import { MediationStateChangedEvent, MediatorModule, RoutingEventTypes, -} from '@aries-framework/core' -import { IndySdkModule } from '@aries-framework/indy-sdk' -import { HttpInboundTransport, agentDependencies } from '@aries-framework/node' -import indySdk from 'indy-sdk' +} from '@credo-ts/core' +import { AskarModule } from '@credo-ts/askar' +import { ariesAskar } from '@hyperledger/aries-askar-nodejs' +import { HttpInboundTransport, agentDependencies } from '@credo-ts/node' // start-section-1 const name = 'mediator' @@ -28,7 +28,7 @@ const mediator = new Agent({ config: agentConfig, dependencies: agentDependencies, modules: { - indySdk: new IndySdkModule({ indySdk }), + askar: new AskarModule({ ariesAskar }), mediator: new MediatorModule({ autoAcceptMediationRequests: true, }), diff --git a/snippets/current/src/register-schema-and-cred-def.ts b/snippets/current/src/register-schema-and-cred-def.ts index fe9c8685..468f8795 100644 --- a/snippets/current/src/register-schema-and-cred-def.ts +++ b/snippets/current/src/register-schema-and-cred-def.ts @@ -1,4 +1,4 @@ -import { DidsModule, InitConfig, KeyType, LogLevel, TypedArrayEncoder } from '@aries-framework/core' +import { DidsModule, InitConfig, KeyType, TypedArrayEncoder } from '@credo-ts/core' const config: InitConfig = { label: 'docs-agent-nodejs-register-schema-and-cred-def', @@ -9,19 +9,18 @@ const config: InitConfig = { } // start-section-1 -import { Agent } from '@aries-framework/core' -import { agentDependencies } from '@aries-framework/node' -import { AskarModule } from '@aries-framework/askar' +import { Agent } from '@credo-ts/core' +import { agentDependencies } from '@credo-ts/node' +import { AskarModule } from '@credo-ts/askar' import { ariesAskar } from '@hyperledger/aries-askar-nodejs' import { IndyVdrAnonCredsRegistry, IndyVdrIndyDidRegistrar, IndyVdrIndyDidResolver, IndyVdrModule, -} from '@aries-framework/indy-vdr' +} from '@credo-ts/indy-vdr' import { indyVdr } from '@hyperledger/indy-vdr-nodejs' -import { AnonCredsModule } from '@aries-framework/anoncreds' -import { AnonCredsRsModule } from '@aries-framework/anoncreds-rs' +import { AnonCredsModule } from '@credo-ts/anoncreds' import { anoncreds } from '@hyperledger/anoncreds-nodejs' import { CheqdAnonCredsRegistry, @@ -29,7 +28,7 @@ import { CheqdDidResolver, CheqdModule, CheqdModuleConfig, -} from '@aries-framework/cheqd' +} from '@credo-ts/cheqd' const agent = new Agent({ config, @@ -40,9 +39,6 @@ const agent = new Agent({ askar: new AskarModule({ ariesAskar, }), - anoncredsRs: new AnonCredsRsModule({ - anoncreds, - }), indyVdr: new IndyVdrModule({ indyVdr, networks: [ @@ -66,6 +62,7 @@ const agent = new Agent({ ), anoncreds: new AnonCredsModule({ registries: [new IndyVdrAnonCredsRegistry(), new CheqdAnonCredsRegistry()], + anoncreds, }), dids: new DidsModule({ registrars: [new IndyVdrIndyDidRegistrar(), new CheqdDidRegistrar()], @@ -129,7 +126,9 @@ const credentialDefinitionResult = await agent.modules.anoncreds.registerCredent issuerId: '', schemaId: schemaResult.schemaState.schemaId, }, - options: {}, + options: { + supportRevocation: false, + }, }) if (credentialDefinitionResult.credentialDefinitionState.state === 'failed') { diff --git a/snippets/current/src/set-up-anoncreds-rs-rn.ts b/snippets/current/src/set-up-anoncreds-rn.ts similarity index 67% rename from snippets/current/src/set-up-anoncreds-rs-rn.ts rename to snippets/current/src/set-up-anoncreds-rn.ts index 7322c7b0..9d371c55 100644 --- a/snippets/current/src/set-up-anoncreds-rs-rn.ts +++ b/snippets/current/src/set-up-anoncreds-rn.ts @@ -1,4 +1,4 @@ -import type { InitConfig } from '@aries-framework/core' +import type { InitConfig } from '@credo-ts/core' const config: InitConfig = { label: 'docs-agent-react-native', @@ -9,15 +9,14 @@ const config: InitConfig = { } // start-section-1 -import { Agent } from '@aries-framework/core' -import { agentDependencies } from '@aries-framework/react-native' -import { AskarModule } from '@aries-framework/askar' +import { Agent } from '@credo-ts/core' +import { agentDependencies } from '@credo-ts/react-native' +import { AskarModule } from '@credo-ts/askar' import { ariesAskar } from '@hyperledger/aries-askar-react-native' import { anoncreds } from '@hyperledger/anoncreds-react-native' -import { AnonCredsModule } from '@aries-framework/anoncreds' -import { AnonCredsRsModule } from '@aries-framework/anoncreds-rs' -import { IndyVdrAnonCredsRegistry } from '@aries-framework/indy-vdr' +import { AnonCredsModule } from '@credo-ts/anoncreds' +import { IndyVdrAnonCredsRegistry } from '@credo-ts/indy-vdr' const agent = new Agent({ config, @@ -28,13 +27,11 @@ const agent = new Agent({ askar: new AskarModule({ ariesAskar, }), - anoncredsRs: new AnonCredsRsModule({ - anoncreds, - }), anoncreds: new AnonCredsModule({ // Here we add an Indy VDR registry as an example, any AnonCreds registry // can be used registries: [new IndyVdrAnonCredsRegistry()], + anoncreds, }), }, }) diff --git a/snippets/current/src/set-up-anoncreds-rs.ts b/snippets/current/src/set-up-anoncreds.ts similarity index 67% rename from snippets/current/src/set-up-anoncreds-rs.ts rename to snippets/current/src/set-up-anoncreds.ts index 020fbe9d..70ab33af 100644 --- a/snippets/current/src/set-up-anoncreds-rs.ts +++ b/snippets/current/src/set-up-anoncreds.ts @@ -1,4 +1,4 @@ -import type { InitConfig } from '@aries-framework/core' +import type { InitConfig } from '@credo-ts/core' const config: InitConfig = { label: 'docs-agent-nodejs', @@ -9,15 +9,14 @@ const config: InitConfig = { } // start-section-1 -import { Agent } from '@aries-framework/core' -import { agentDependencies } from '@aries-framework/node' -import { AskarModule } from '@aries-framework/askar' +import { Agent } from '@credo-ts/core' +import { agentDependencies } from '@credo-ts/node' +import { AskarModule } from '@credo-ts/askar' import { ariesAskar } from '@hyperledger/aries-askar-nodejs' import { anoncreds } from '@hyperledger/anoncreds-nodejs' -import { AnonCredsModule } from '@aries-framework/anoncreds' -import { AnonCredsRsModule } from '@aries-framework/anoncreds-rs' -import { IndyVdrAnonCredsRegistry } from '@aries-framework/indy-vdr' +import { AnonCredsModule } from '@credo-ts/anoncreds' +import { IndyVdrAnonCredsRegistry } from '@credo-ts/indy-vdr' const agent = new Agent({ config, @@ -28,13 +27,11 @@ const agent = new Agent({ askar: new AskarModule({ ariesAskar, }), - anoncredsRs: new AnonCredsRsModule({ - anoncreds, - }), anoncreds: new AnonCredsModule({ // Here we add an Indy VDR registry as an example, any AnonCreds registry // can be used registries: [new IndyVdrAnonCredsRegistry()], + anoncreds, }), }, }) diff --git a/snippets/current/src/set-up-askar-rn.ts b/snippets/current/src/set-up-askar-rn.ts index abe5427e..f28982a2 100644 --- a/snippets/current/src/set-up-askar-rn.ts +++ b/snippets/current/src/set-up-askar-rn.ts @@ -1,4 +1,4 @@ -import type { InitConfig } from '@aries-framework/core' +import type { InitConfig } from '@credo-ts/core' const config: InitConfig = { label: 'docs-agent-react-native', @@ -9,9 +9,9 @@ const config: InitConfig = { } // start-section-1 -import { Agent } from '@aries-framework/core' -import { agentDependencies } from '@aries-framework/react-native' -import { AskarModule } from '@aries-framework/askar' +import { Agent } from '@credo-ts/core' +import { agentDependencies } from '@credo-ts/react-native' +import { AskarModule } from '@credo-ts/askar' import { ariesAskar } from '@hyperledger/aries-askar-react-native' const agent = new Agent({ diff --git a/snippets/current/src/set-up-askar.ts b/snippets/current/src/set-up-askar.ts index 0704dcd7..451d89b6 100644 --- a/snippets/current/src/set-up-askar.ts +++ b/snippets/current/src/set-up-askar.ts @@ -1,4 +1,4 @@ -import type { InitConfig } from '@aries-framework/core' +import type { InitConfig } from '@credo-ts/core' const config: InitConfig = { label: 'docs-agent-nodejs', @@ -9,9 +9,9 @@ const config: InitConfig = { } // start-section-1 -import { Agent } from '@aries-framework/core' -import { agentDependencies } from '@aries-framework/node' -import { AskarModule } from '@aries-framework/askar' +import { Agent } from '@credo-ts/core' +import { agentDependencies } from '@credo-ts/node' +import { AskarModule } from '@credo-ts/askar' import { ariesAskar } from '@hyperledger/aries-askar-nodejs' const agent = new Agent({ diff --git a/snippets/current/src/set-up-cheqd.ts b/snippets/current/src/set-up-cheqd.ts index 0ae0ad1a..b606a712 100644 --- a/snippets/current/src/set-up-cheqd.ts +++ b/snippets/current/src/set-up-cheqd.ts @@ -1,4 +1,4 @@ -import { DidDocumentService, InitConfig } from '@aries-framework/core' +import { DidDocumentService, InitConfig } from '@credo-ts/core' const config: InitConfig = { label: 'docs-agent-react-native', @@ -9,9 +9,9 @@ const config: InitConfig = { } // start-section-1 -import { Agent, DidsModule, KeyType, DidDocument } from '@aries-framework/core' -import { agentDependencies } from '@aries-framework/react-native' -import { AskarModule } from '@aries-framework/askar' +import { Agent, DidsModule, KeyType, DidDocument } from '@credo-ts/core' +import { agentDependencies } from '@credo-ts/react-native' +import { AskarModule } from '@credo-ts/askar' import { ariesAskar } from '@hyperledger/aries-askar-react-native' import { @@ -21,8 +21,9 @@ import { CheqdModule, CheqdModuleConfig, CheqdDidCreateOptions, -} from '@aries-framework/cheqd' -import { AnonCredsModule } from '@aries-framework/anoncreds' +} from '@credo-ts/cheqd' +import { AnonCredsModule } from '@credo-ts/anoncreds' +import { anoncreds } from '@hyperledger/anoncreds-react-native' const agent = new Agent({ config, @@ -36,6 +37,7 @@ const agent = new Agent({ // AnonCreds anoncreds: new AnonCredsModule({ registries: [new CheqdAnonCredsRegistry()], + anoncreds, }), // Add cheqd module diff --git a/snippets/current/src/set-up-indy-sdk-postgres.ts b/snippets/current/src/set-up-indy-sdk-postgres.ts deleted file mode 100644 index 8d574305..00000000 --- a/snippets/current/src/set-up-indy-sdk-postgres.ts +++ /dev/null @@ -1,50 +0,0 @@ -// start-section-1 -import { Agent, InitConfig } from '@aries-framework/core' -import { IndySdkModule } from '@aries-framework/indy-sdk' -import { - agentDependencies, - IndySdkPostgresStorageConfig, - loadIndySdkPostgresPlugin, - IndySdkPostgresWalletScheme, -} from '@aries-framework/node' -import indySdk from 'indy-sdk' - -// IndySdkPostgresStorageConfig defines interface for the Postgres plugin configuration. -const storageConfig = { - type: 'postgres_storage', - config: { - url: 'localhost:5432', - wallet_scheme: IndySdkPostgresWalletScheme.DatabasePerWallet, - }, - credentials: { - account: 'postgres', - password: 'postgres', - admin_account: 'postgres', - admin_password: 'postgres', - }, -} satisfies IndySdkPostgresStorageConfig - -// load the postgres wallet plugin before agent initialization -loadIndySdkPostgresPlugin(storageConfig.config, storageConfig.credentials) - -const agentConfig: InitConfig = { - label: 'My Agent', - // walletConfig.id and walletConfig.key are still required - walletConfig: { - id: 'walletId', - key: 'testKey0000000000000000000000000', - // storage is added and defines the postgres plugin configuration - storage: storageConfig, - }, -} - -const agent = new Agent({ - config: agentConfig, - dependencies: agentDependencies, - modules: { - indySdk: new IndySdkModule({ - indySdk, - }), - }, -}) -// end-section-1 diff --git a/snippets/current/src/set-up-indy-sdk-rn.ts b/snippets/current/src/set-up-indy-sdk-rn.ts deleted file mode 100644 index 38044685..00000000 --- a/snippets/current/src/set-up-indy-sdk-rn.ts +++ /dev/null @@ -1,36 +0,0 @@ -import type { InitConfig } from '@aries-framework/core' - -const config: InitConfig = { - label: 'docs-agent-react-native', - walletConfig: { - id: 'wallet-id', - key: 'testkey0000000000000000000000000', - }, -} - -// start-section-1 -import { Agent } from '@aries-framework/core' -import { agentDependencies } from '@aries-framework/react-native' -import { IndySdkModule } from '@aries-framework/indy-sdk' -import indySdk from 'indy-sdk-react-native' - -const agent = new Agent({ - config, - dependencies: agentDependencies, - modules: { - // Register the Indy SDK module on the agent - indySdk: new IndySdkModule({ - indySdk, - }), - }, -}) -// end-section-1 - -agent - .initialize() - .then(() => { - console.log('Agent initialized!') - }) - .catch((e) => { - console.error(`Something went wrong while setting up the agent! Message: ${e}`) - }) diff --git a/snippets/current/src/set-up-indy-sdk.ts b/snippets/current/src/set-up-indy-sdk.ts deleted file mode 100644 index 3dae9c2e..00000000 --- a/snippets/current/src/set-up-indy-sdk.ts +++ /dev/null @@ -1,36 +0,0 @@ -import type { InitConfig } from '@aries-framework/core' - -const config: InitConfig = { - label: 'docs-agent-react-native', - walletConfig: { - id: 'wallet-id', - key: 'testkey0000000000000000000000000', - }, -} - -// start-section-1 -import { Agent } from '@aries-framework/core' -import { agentDependencies } from '@aries-framework/node' -import { IndySdkModule } from '@aries-framework/indy-sdk' -import indySdk from 'indy-sdk' - -const agent = new Agent({ - config, - dependencies: agentDependencies, - modules: { - // Register the Indy SDK module on the agent - indySdk: new IndySdkModule({ - indySdk, - }), - }, -}) -// end-section-1 - -await agent - .initialize() - .then(() => { - console.log('Agent initialized!') - }) - .catch((e) => { - console.error(`Something went wrong while setting up the agent! Message: ${e}`) - }) diff --git a/snippets/current/src/set-up-indy-vdr-config.ts b/snippets/current/src/set-up-indy-vdr-config.ts index d99cf179..ca7d2d6b 100644 --- a/snippets/current/src/set-up-indy-vdr-config.ts +++ b/snippets/current/src/set-up-indy-vdr-config.ts @@ -1,6 +1,6 @@ // start-section-1 import { indyVdr } from '@hyperledger/indy-vdr-nodejs' -import { IndyVdrModule } from '@aries-framework/indy-vdr' +import { IndyVdrModule } from '@credo-ts/indy-vdr' const modules = { indyVdr: new IndyVdrModule({ diff --git a/snippets/current/src/set-up-indy-vdr-rn.ts b/snippets/current/src/set-up-indy-vdr-rn.ts index 9cce84dd..1d22aadf 100644 --- a/snippets/current/src/set-up-indy-vdr-rn.ts +++ b/snippets/current/src/set-up-indy-vdr-rn.ts @@ -1,4 +1,4 @@ -import type { InitConfig } from '@aries-framework/core' +import type { InitConfig } from '@credo-ts/core' const config: InitConfig = { label: 'docs-agent-react-native', @@ -9,14 +9,15 @@ const config: InitConfig = { } // start-section-1 -import { Agent } from '@aries-framework/core' -import { agentDependencies } from '@aries-framework/react-native' -import { AskarModule } from '@aries-framework/askar' +import { Agent } from '@credo-ts/core' +import { agentDependencies } from '@credo-ts/react-native' +import { AskarModule } from '@credo-ts/askar' import { ariesAskar } from '@hyperledger/aries-askar-react-native' -import { IndyVdrAnonCredsRegistry, IndyVdrModule } from '@aries-framework/indy-vdr' +import { IndyVdrAnonCredsRegistry, IndyVdrModule } from '@credo-ts/indy-vdr' import { indyVdr } from '@hyperledger/indy-vdr-react-native' -import { AnonCredsModule } from '@aries-framework/anoncreds' +import { AnonCredsModule } from '@credo-ts/anoncreds' +import { anoncreds } from '@hyperledger/anoncreds-react-native' const agent = new Agent({ config, @@ -35,6 +36,7 @@ const agent = new Agent({ }), anoncreds: new AnonCredsModule({ registries: [new IndyVdrAnonCredsRegistry()], + anoncreds, }), // Indy VDR can optionally be used with Askar as wallet and storage implementation askar: new AskarModule({ diff --git a/snippets/current/src/set-up-indy-vdr.ts b/snippets/current/src/set-up-indy-vdr.ts index e6779d31..fd4c0d2e 100644 --- a/snippets/current/src/set-up-indy-vdr.ts +++ b/snippets/current/src/set-up-indy-vdr.ts @@ -1,4 +1,4 @@ -import type { InitConfig } from '@aries-framework/core' +import type { InitConfig } from '@credo-ts/core' const config: InitConfig = { label: 'docs-agent-nodejs', @@ -9,14 +9,15 @@ const config: InitConfig = { } // start-section-1 -import { Agent } from '@aries-framework/core' -import { agentDependencies } from '@aries-framework/node' -import { AskarModule } from '@aries-framework/askar' +import { Agent } from '@credo-ts/core' +import { agentDependencies } from '@credo-ts/node' +import { AskarModule } from '@credo-ts/askar' import { ariesAskar } from '@hyperledger/aries-askar-nodejs' -import { IndyVdrAnonCredsRegistry, IndyVdrModule } from '@aries-framework/indy-vdr' +import { IndyVdrAnonCredsRegistry, IndyVdrModule } from '@credo-ts/indy-vdr' import { indyVdr } from '@hyperledger/indy-vdr-nodejs' -import { AnonCredsModule } from '@aries-framework/anoncreds' +import { AnonCredsModule } from '@credo-ts/anoncreds' +import { anoncreds } from '@hyperledger/anoncreds-nodejs' const agent = new Agent({ config, @@ -35,6 +36,7 @@ const agent = new Agent({ }), anoncreds: new AnonCredsModule({ registries: [new IndyVdrAnonCredsRegistry()], + anoncreds, }), // Indy VDR can optionally be used with Askar as wallet and storage implementation askar: new AskarModule({ diff --git a/snippets/current/src/set-up-rn.ts b/snippets/current/src/set-up-rn.ts index f9e10429..45a56820 100644 --- a/snippets/current/src/set-up-rn.ts +++ b/snippets/current/src/set-up-rn.ts @@ -1,7 +1,7 @@ // start-section-1 -import type { InitConfig } from '@aries-framework/core' -import { Agent } from '@aries-framework/core' -import { agentDependencies } from '@aries-framework/react-native' +import type { InitConfig } from '@credo-ts/core' +import { Agent } from '@credo-ts/core' +import { agentDependencies } from '@credo-ts/react-native' const config: InitConfig = { label: 'docs-agent-react-native', @@ -18,7 +18,7 @@ const agent = new Agent({ // end-section-1 // start-section-2 -import { HttpOutboundTransport, WsOutboundTransport } from '@aries-framework/core' +import { HttpOutboundTransport, WsOutboundTransport } from '@credo-ts/core' // ... agent setup from prevous section ... diff --git a/snippets/current/src/set-up.ts b/snippets/current/src/set-up.ts index 21ca3a43..5f38b865 100644 --- a/snippets/current/src/set-up.ts +++ b/snippets/current/src/set-up.ts @@ -1,7 +1,7 @@ // start-section-1 -import type { InitConfig } from '@aries-framework/core' -import { Agent } from '@aries-framework/core' -import { agentDependencies } from '@aries-framework/node' +import type { InitConfig } from '@credo-ts/core' +import { Agent } from '@credo-ts/core' +import { agentDependencies } from '@credo-ts/node' const config: InitConfig = { label: 'docs-agent-nodejs', @@ -18,8 +18,8 @@ const agent = new Agent({ // end-section-1 // start-section-2 -import { HttpOutboundTransport, WsOutboundTransport } from '@aries-framework/core' -import { HttpInboundTransport } from '@aries-framework/node' +import { HttpOutboundTransport, WsOutboundTransport } from '@credo-ts/core' +import { HttpInboundTransport } from '@credo-ts/node' // ... agent setup from prevous section ... diff --git a/yarn.lock b/yarn.lock index 622c236c..7e1be23a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,28 @@ # yarn lockfile v1 +"@2060.io/ffi-napi@4.0.8", "@2060.io/ffi-napi@^4.0.8": + version "4.0.8" + resolved "https://registry.yarnpkg.com/@2060.io/ffi-napi/-/ffi-napi-4.0.8.tgz#ec3424d9ec979491b41b8d82514ae82a647da8b0" + integrity sha512-sONRKLtxFKN5PXuZaa41b/kTN+R5qAh6PAL15/fnafnvAKQ5WBoxRIy8xRh8jo9mydywtt4IrWtatB93w0+3cA== + dependencies: + "@2060.io/ref-napi" "^3.0.6" + debug "^4.1.1" + get-uv-event-loop-napi-h "^1.0.5" + node-addon-api "^3.0.0" + node-gyp-build "^4.2.1" + ref-struct-di "^1.1.0" + +"@2060.io/ref-napi@3.0.6", "@2060.io/ref-napi@^3.0.6": + version "3.0.6" + resolved "https://registry.yarnpkg.com/@2060.io/ref-napi/-/ref-napi-3.0.6.tgz#32b1a257cada096f95345fd7abae746385ecc5dd" + integrity sha512-8VAIXLdKL85E85jRYpPcZqATBL6fGnC/XjBGNeSgRSMJtrAMSmfRksqIq5AmuZkA2eeJXMWCiN6UQOUdozcymg== + dependencies: + debug "^4.1.1" + get-symbol-from-current-process-h "^1.0.2" + node-addon-api "^3.0.0" + node-gyp-build "^4.2.1" + "@algolia/autocomplete-core@1.7.4": version "1.7.4" resolved "https://registry.yarnpkg.com/@algolia/autocomplete-core/-/autocomplete-core-1.7.4.tgz#85ff36b2673654a393c8c505345eaedd6eaa4f70" @@ -173,57 +195,57 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@aries-framework/anoncreds-rs@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@aries-framework/anoncreds-rs/-/anoncreds-rs-0.4.0.tgz#9fb00c7b8c1c01439102cb19f689fd74e3e8dbdc" - integrity sha512-9tMA4DwuyFg8qqLRBgTXfiA1jijYpAMosFP2CxUv8aGYwXV5xvMd4B/YbecuQh5NyvNZ9h7uR/JF3jIwkhrgxw== +"@aries-framework/anoncreds-rs@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@aries-framework/anoncreds-rs/-/anoncreds-rs-0.4.2.tgz#accce59154083dadc91d6a9c8333af8cb10f2188" + integrity sha512-S2QGDlVLJUaqjOj/b+lD+Xq8x4j88IyfJ3vwXaVwkrTlhpCiy/L+xoTaZq8UIcYIWfsrJ9CR6wl+gbCestGnFg== dependencies: - "@aries-framework/anoncreds" "0.4.0" - "@aries-framework/core" "0.4.0" + "@aries-framework/anoncreds" "0.4.2" + "@aries-framework/core" "0.4.2" class-transformer "^0.5.1" class-validator "0.14.0" rxjs "^7.2.0" - tsyringe "^4.7.0" + tsyringe "^4.8.0" -"@aries-framework/anoncreds@0.4.0", "@aries-framework/anoncreds@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@aries-framework/anoncreds/-/anoncreds-0.4.0.tgz#abf0dd6b316d607fbee9fc5ef5d5709dfa2ded36" - integrity sha512-jzZVMXJoTutF5jrATYXHiavUi2APEUbvGiOA8EelP7cabVxCijoWh0DdTEBoGSUv9xuK26iSWVY0MmnAxD7l9g== +"@aries-framework/anoncreds@0.4.2", "@aries-framework/anoncreds@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@aries-framework/anoncreds/-/anoncreds-0.4.2.tgz#0d2bc7a40c8fac777c18325199939866d03c9ea3" + integrity sha512-Jwn9TfzgOhuW6nxOs0DyzU1W/XL1XvyOt8zjhgz0ETDuwVJMtSTyN+1f4y5B0R7fuBYJ6KbdAwfeCRQT8BLa6g== dependencies: - "@aries-framework/core" "0.4.0" + "@aries-framework/core" "0.4.2" bn.js "^5.2.1" class-transformer "0.5.1" class-validator "0.14.0" reflect-metadata "^0.1.13" -"@aries-framework/askar@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@aries-framework/askar/-/askar-0.4.0.tgz#c9c044497e466aab9bd5e5d77b2fb1bd01fdac1c" - integrity sha512-FQxT+NVUv/CSnlXY13Idilg7qA7xABEKOO2YGi5xUGiyruJDtqzQ6dWqGsa2odX3KE1baFFrNHgCC9I7N+++Jg== +"@aries-framework/askar@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@aries-framework/askar/-/askar-0.4.2.tgz#b05051e0a5bbdf95d3c1339aa19b2680ed6d21f0" + integrity sha512-eQuLsXCjVxRRhUCd8yXqP0PD2S3QX3OPV2eUBb7PqkTxdo1ZCbiA8Q1pCP65l9s/zVIGT/2E1ys/n1sZZm1wmQ== dependencies: - "@aries-framework/core" "0.4.0" + "@aries-framework/core" "0.4.2" bn.js "^5.2.1" class-transformer "0.5.1" class-validator "0.14.0" rxjs "^7.2.0" - tsyringe "^4.7.0" + tsyringe "^4.8.0" -"@aries-framework/cheqd@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@aries-framework/cheqd/-/cheqd-0.4.0.tgz#c1193f4d7355cdab3e06ab84ef44628d83dbb9ff" - integrity sha512-Hb8jx153zoMWRh881TeCajLr+T5E84Pb2+Rb5ipdjyQ4U2UaHiZ0WIEgLBSmjaECxy+Nhqk1l8+U39Zj+Jtw/Q== +"@aries-framework/cheqd@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@aries-framework/cheqd/-/cheqd-0.4.2.tgz#c9970a03640f5597157a70f842b686f7bc3d7784" + integrity sha512-UVEFpPIVeqHwMDFd2Fb/Ire86pdWRC8warhoqbLr2o2Uqm2Le0pvlxXiOoilfWv6q8HCQ7X3shpqG9sr+qxIbA== dependencies: - "@aries-framework/anoncreds" "0.4.0" - "@aries-framework/core" "0.4.0" + "@aries-framework/anoncreds" "0.4.2" + "@aries-framework/core" "0.4.2" "@cheqd/sdk" cjs "@cheqd/ts-proto" cjs "@cosmjs/crypto" "^0.29.5" - "@cosmjs/proto-signing" "^0.29.5" + "@cosmjs/proto-signing" "^0.31.0" "@stablelib/ed25519" "^1.0.3" class-transformer "^0.5.1" class-validator "^0.14.0" rxjs "^7.2.0" - tsyringe "^4.7.0" + tsyringe "^4.8.0" "@aries-framework/core@0.3.3", "@aries-framework/core@^0.3.3": version "0.3.3" @@ -259,10 +281,10 @@ varint "^6.0.0" web-did-resolver "^2.0.8" -"@aries-framework/core@0.4.0", "@aries-framework/core@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@aries-framework/core/-/core-0.4.0.tgz#6af11446174d8f690aa1bf4abf6f61ad47a05b52" - integrity sha512-Z/rTgpJMKTl9iQQd8GnNEV5wCZKdV+kkd+Y4e/KS+j+6yMOxrgaVGcAKlcFIPcHUc6l1iOetJFeVLSwftXW2Kg== +"@aries-framework/core@0.4.2", "@aries-framework/core@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@aries-framework/core/-/core-0.4.2.tgz#f2118c732d6aff8d6557a15de14381e8782b54a1" + integrity sha512-2qmDRkxD5vnPlcMjVTqu/Wxog9bUVU+tSr+7mgANgJ9q170FuoSuChU7WA5VCKEdmbRIM4BmvsnTlU8Y+iQ07A== dependencies: "@digitalcredentials/jsonld" "^5.2.1" "@digitalcredentials/jsonld-signatures" "^9.3.1" @@ -271,6 +293,7 @@ "@stablelib/ed25519" "^1.0.2" "@stablelib/random" "^1.0.1" "@stablelib/sha256" "^1.0.1" + "@types/node-fetch" "2.6.2" "@types/ws" "^8.5.4" abort-controller "^3.0.0" big-integer "^1.6.51" @@ -282,37 +305,36 @@ lru_map "^0.4.1" luxon "^3.3.0" make-error "^1.3.6" - node-fetch "^2.6.1" object-inspect "^1.10.3" query-string "^7.0.1" reflect-metadata "^0.1.13" rxjs "^7.2.0" - tsyringe "^4.7.0" + tsyringe "^4.8.0" uuid "^9.0.0" varint "^6.0.0" web-did-resolver "^2.0.21" -"@aries-framework/indy-sdk@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@aries-framework/indy-sdk/-/indy-sdk-0.4.0.tgz#d4bb59cf010b2e9166982d4a7a0103325bde9b80" - integrity sha512-Z54+a7yxFrynGTgc0vYs0proh+4MnV1e0+1SSwFi+kbi11i9rIpLj8pBN5PN1569qYVtCzSaFz4q6BtvzAHLJw== +"@aries-framework/indy-sdk@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@aries-framework/indy-sdk/-/indy-sdk-0.4.2.tgz#ec6a6a97e200390d5759575612922ae44bac62f8" + integrity sha512-ne+SnDTpNQ4bQYYpyYhF0W7c5dlG/UVIdUysFgz/ZTD78tsc+Z7EiXnbz5gKVbqqgxpjiHfNsb4SQJcNUBy8bQ== dependencies: - "@aries-framework/anoncreds" "0.4.0" - "@aries-framework/core" "0.4.0" + "@aries-framework/anoncreds" "0.4.2" + "@aries-framework/core" "0.4.2" "@stablelib/ed25519" "^1.0.3" - "@types/indy-sdk" "1.16.26" + "@types/indy-sdk" "1.16.27" class-transformer "0.5.1" class-validator "0.14.0" rxjs "^7.2.0" - tsyringe "^4.7.0" + tsyringe "^4.8.0" -"@aries-framework/indy-vdr@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@aries-framework/indy-vdr/-/indy-vdr-0.4.0.tgz#990d81bf589a013845165ee5de6a0b72c5105976" - integrity sha512-0EshmjaNLLswDJnCHoFVAPZ68W+9KjKMA9aYi05vivdLCYlQDsvPSWOz4V2EB1DEosswqV1JTZOASUxfaIQQlg== +"@aries-framework/indy-vdr@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@aries-framework/indy-vdr/-/indy-vdr-0.4.2.tgz#69acee0a268a044ec7c11d3e647230c397580e7a" + integrity sha512-hFZlxWSbwXBY2sTbnCpgWbQAHZM2aeAs5Jj/Id+VJhwVsfwLvlQshBXmVpf6hIswCQsRFl3Q2lSn4MOh4pADYQ== dependencies: - "@aries-framework/anoncreds" "0.4.0" - "@aries-framework/core" "0.4.0" + "@aries-framework/anoncreds" "0.4.2" + "@aries-framework/core" "0.4.2" "@aries-framework/node@^0.3.3": version "0.3.3" @@ -328,12 +350,12 @@ ref-napi "^3.0.3" ws "^7.5.3" -"@aries-framework/node@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@aries-framework/node/-/node-0.4.0.tgz#2d9f0f58f433c8ef61a5f275e3a1d7a75ecc4dbd" - integrity sha512-ydxkD+Hb8XLLUeX2G27baNUtC3BBB3LG2NfZgy2128q6mAg2mqhLnjWocncE7kWFVneZ5copBIoF2MIPQvwYhg== +"@aries-framework/node@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@aries-framework/node/-/node-0.4.2.tgz#b410cafab8e76cda3ff392c8d08b3c385c8ac507" + integrity sha512-fQOG0BWTewXoLUUd7JcpJeTFmHQfKZVTQFHYpTXwkYVuL3UTWfOEAm1NPtS8TetyHZexFxpKlDRYdFkOG9Z4rw== dependencies: - "@aries-framework/core" "0.4.0" + "@aries-framework/core" "0.4.2" "@types/express" "^4.17.15" express "^4.17.1" ffi-napi "^4.0.3" @@ -350,15 +372,22 @@ "@azure/core-asynciterator-polyfill" "^1.0.0" events "^3.3.0" -"@aries-framework/react-native@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@aries-framework/react-native/-/react-native-0.4.0.tgz#f4c25c882ca188b4f16d7fcc1c1e5bdba1e73bbf" - integrity sha512-lKCpM31eu9yu9/ZPJxxCH6zWw9RnSiFmBUHRQZltAWaIghkXkabEavwG+xykzNCnsPHIUKkJjUheqdeVsFkUiA== +"@aries-framework/react-native@^0.4.2": + version "0.4.2" + resolved "https://registry.yarnpkg.com/@aries-framework/react-native/-/react-native-0.4.2.tgz#c13b17f2086dd7691f78897fdb04e4945ef624fc" + integrity sha512-Sllg/iL4sFamT/IJmMv0KhFrhdspnCNtAjOi7othwiHmCxWb14HZplUQ6copVI+JT6S1RVX9rUbhUfpv9DhfEA== dependencies: - "@aries-framework/core" "0.4.0" + "@aries-framework/core" "0.4.2" "@azure/core-asynciterator-polyfill" "^1.0.2" events "^3.3.0" +"@astronautlabs/jsonpath@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@astronautlabs/jsonpath/-/jsonpath-1.1.2.tgz#af19bb4a7d13dcfbc60c3c998ee1e73d7c2ddc38" + integrity sha512-FqL/muoreH7iltYC1EB5Tvox5E8NSOOPGkgns4G+qxRKl6k5dxEVljUjB5NcKESzkqwnUqWjSZkL61XGYOuV+A== + dependencies: + static-eval "2.0.2" + "@azure/core-asynciterator-polyfill@^1.0.0", "@azure/core-asynciterator-polyfill@^1.0.2": version "1.0.2" resolved "https://registry.yarnpkg.com/@azure/core-asynciterator-polyfill/-/core-asynciterator-polyfill-1.0.2.tgz#0dd3849fb8d97f062a39db0e5cadc9ffaf861fec" @@ -371,11 +400,24 @@ dependencies: "@babel/highlight" "^7.18.6" +"@babel/code-frame@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.23.5.tgz#9009b69a8c602293476ad598ff53e4562e15c244" + integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== + dependencies: + "@babel/highlight" "^7.23.4" + chalk "^2.4.2" + "@babel/compat-data@^7.17.7", "@babel/compat-data@^7.20.5", "@babel/compat-data@^7.21.4": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.21.4.tgz#457ffe647c480dff59c2be092fc3acf71195c87f" integrity sha512-/DYyDpeCfaVinT40FPGdkkb+lYSKvsVuMjDAG7jPOWWiM1ibOaB9CXJAlc4d1QpP/U2q2P9jbrSlClKSErd55g== +"@babel/compat-data@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" + integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== + "@babel/core@7.12.9": version "7.12.9" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.12.9.tgz#fd450c4ec10cdbb980e2928b7aa7a28484593fc8" @@ -398,6 +440,27 @@ semver "^5.4.1" source-map "^0.5.0" +"@babel/core@^7.14.6": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.9.tgz#b028820718000f267870822fec434820e9b1e4d1" + integrity sha512-5q0175NOjddqpvvzU+kDiSOAk4PfdO6FvwCWoQ6RO7rTzEe8vlo+4HVfcnAREhD4npMs0e9uZypjTwzZPCf/cw== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.9" + "@babel/parser" "^7.23.9" + "@babel/template" "^7.23.9" + "@babel/traverse" "^7.23.9" + "@babel/types" "^7.23.9" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + "@babel/core@^7.18.6", "@babel/core@^7.19.6": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.21.4.tgz#c6dc73242507b8e2a27fd13a9c1814f9fa34a659" @@ -429,6 +492,16 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" +"@babel/generator@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" + integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== + dependencies: + "@babel/types" "^7.23.6" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb" @@ -455,6 +528,17 @@ lru-cache "^5.1.1" semver "^6.3.0" +"@babel/helper-compilation-targets@^7.23.6": + version "7.23.6" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz#4d79069b16cbcf1461289eccfbbd81501ae39991" + integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-validator-option" "^7.23.5" + browserslist "^4.22.2" + lru-cache "^5.1.1" + semver "^6.3.1" + "@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.21.0": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.21.4.tgz#3a017163dc3c2ba7deb9a7950849a9586ea24c18" @@ -494,6 +578,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be" integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg== +"@babel/helper-environment-visitor@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" + integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== + "@babel/helper-explode-assignable-expression@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096" @@ -509,6 +598,14 @@ "@babel/template" "^7.20.7" "@babel/types" "^7.21.0" +"@babel/helper-function-name@^7.23.0": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" + integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== + dependencies: + "@babel/template" "^7.22.15" + "@babel/types" "^7.23.0" + "@babel/helper-hoist-variables@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678" @@ -516,6 +613,13 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-hoist-variables@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" + integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-member-expression-to-functions@^7.20.7", "@babel/helper-member-expression-to-functions@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.21.0.tgz#319c6a940431a133897148515877d2f3269c3ba5" @@ -530,6 +634,13 @@ dependencies: "@babel/types" "^7.21.4" +"@babel/helper-module-imports@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== + dependencies: + "@babel/types" "^7.22.15" + "@babel/helper-module-transforms@^7.12.1", "@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.20.11", "@babel/helper-module-transforms@^7.21.2": version "7.21.2" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz#160caafa4978ac8c00ac66636cb0fa37b024e2d2" @@ -544,6 +655,17 @@ "@babel/traverse" "^7.21.2" "@babel/types" "^7.21.2" +"@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" + "@babel/helper-optimise-call-expression@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe" @@ -561,6 +683,11 @@ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz#d1b9000752b18d0877cff85a5c376ce5c3121629" integrity sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ== +"@babel/helper-plugin-utils@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz#dd7ee3735e8a313b9f7b05a773d892e88e6d7295" + integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== + "@babel/helper-remap-async-to-generator@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519" @@ -590,6 +717,13 @@ dependencies: "@babel/types" "^7.20.2" +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-skip-transparent-expression-wrappers@^7.20.0": version "7.20.0" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz#fbe4c52f60518cab8140d77101f0e63a8a230684" @@ -604,21 +738,43 @@ dependencies: "@babel/types" "^7.18.6" +"@babel/helper-split-export-declaration@^7.22.6": + version "7.22.6" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" + integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== + dependencies: + "@babel/types" "^7.22.5" + "@babel/helper-string-parser@^7.19.4": version "7.19.4" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63" integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw== +"@babel/helper-string-parser@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" + integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== + "@babel/helper-validator-identifier@^7.18.6", "@babel/helper-validator-identifier@^7.19.1": 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/helper-validator-identifier@^7.22.20": + version "7.22.20" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== + "@babel/helper-validator-option@^7.18.6", "@babel/helper-validator-option@^7.21.0": version "7.21.0" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz#8224c7e13ace4bafdc4004da2cf064ef42673180" integrity sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ== +"@babel/helper-validator-option@^7.23.5": + version "7.23.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz#907a3fbd4523426285365d1206c423c4c5520307" + integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== + "@babel/helper-wrap-function@^7.18.9": version "7.20.5" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.20.5.tgz#75e2d84d499a0ab3b31c33bcfe59d6b8a45f62e3" @@ -638,6 +794,15 @@ "@babel/traverse" "^7.21.0" "@babel/types" "^7.21.0" +"@babel/helpers@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.9.tgz#c3e20bbe7f7a7e10cb9b178384b4affdf5995c7d" + integrity sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ== + dependencies: + "@babel/template" "^7.23.9" + "@babel/traverse" "^7.23.9" + "@babel/types" "^7.23.9" + "@babel/highlight@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf" @@ -647,11 +812,25 @@ chalk "^2.0.0" js-tokens "^4.0.0" +"@babel/highlight@^7.23.4": + version "7.23.4" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.23.4.tgz#edaadf4d8232e1a961432db785091207ead0621b" + integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== + dependencies: + "@babel/helper-validator-identifier" "^7.22.20" + chalk "^2.4.2" + js-tokens "^4.0.0" + "@babel/parser@^7.12.7", "@babel/parser@^7.18.8", "@babel/parser@^7.20.7", "@babel/parser@^7.21.4": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.4.tgz#94003fdfc520bbe2875d4ae557b43ddb6d880f17" integrity sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw== +"@babel/parser@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b" + integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2" @@ -703,7 +882,7 @@ "@babel/helper-plugin-utils" "^7.18.6" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@^7.18.9": +"@babel/plugin-proposal-export-namespace-from@^7.14.5", "@babel/plugin-proposal-export-namespace-from@^7.18.9": version "7.18.9" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203" integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA== @@ -1053,6 +1232,15 @@ "@babel/helper-module-transforms" "^7.20.11" "@babel/helper-plugin-utils" "^7.20.2" +"@babel/plugin-transform-modules-commonjs@^7.14.5": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.23.3.tgz#661ae831b9577e52be57dd8356b734f9700b53b4" + integrity sha512-aVS0F65LKsdNOtcz6FRCpE4OgsP2OFnW46qNxNIX9h3wuzaNcSQsJysuMwqSibC98HPrf2vCgtxKNwS0DAlgcA== + dependencies: + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-simple-access" "^7.22.5" + "@babel/plugin-transform-modules-commonjs@^7.21.2": version "7.21.2" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.21.2.tgz#6ff5070e71e3192ef2b7e39820a06fb78e3058e7" @@ -1389,6 +1577,15 @@ "@babel/parser" "^7.20.7" "@babel/types" "^7.20.7" +"@babel/template@^7.22.15", "@babel/template@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.23.9.tgz#f881d0487cba2828d3259dcb9ef5005a9731011a" + integrity sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/parser" "^7.23.9" + "@babel/types" "^7.23.9" + "@babel/traverse@^7.12.9", "@babel/traverse@^7.18.8", "@babel/traverse@^7.20.5", "@babel/traverse@^7.20.7", "@babel/traverse@^7.21.0", "@babel/traverse@^7.21.2", "@babel/traverse@^7.21.4": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.4.tgz#a836aca7b116634e97a6ed99976236b3282c9d36" @@ -1405,6 +1602,22 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.9.tgz#2f9d6aead6b564669394c5ce0f9302bb65b9d950" + integrity sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.9" + "@babel/types" "^7.23.9" + debug "^4.3.1" + globals "^11.1.0" + "@babel/types@^7.12.7", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.20.5", "@babel/types@^7.20.7", "@babel/types@^7.21.0", "@babel/types@^7.21.2", "@babel/types@^7.21.4", "@babel/types@^7.4.4": version "7.21.4" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.4.tgz#2d5d6bb7908699b3b416409ffd3b5daa25b030d4" @@ -1414,6 +1627,15 @@ "@babel/helper-validator-identifier" "^7.19.1" to-fast-properties "^2.0.0" +"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.9.tgz#1dd7b59a9a2b5c87f8b41e52770b5ecbf492e002" + integrity sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + "@braintree/sanitize-url@^6.0.0": version "6.0.2" resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-6.0.2.tgz#6110f918d273fe2af8ea1c4398a88774bb9fc12f" @@ -1485,6 +1707,16 @@ "@cosmjs/math" "^0.29.5" "@cosmjs/utils" "^0.29.5" +"@cosmjs/amino@^0.31.3": + version "0.31.3" + resolved "https://registry.yarnpkg.com/@cosmjs/amino/-/amino-0.31.3.tgz#0f4aa6bd68331c71bd51b187fa64f00eb075db0a" + integrity sha512-36emtUq895sPRX8PTSOnG+lhJDCVyIcE0Tr5ct59sUbgQiI14y43vj/4WAlJ/utSOxy+Zhj9wxcs4AZfu0BHsw== + dependencies: + "@cosmjs/crypto" "^0.31.3" + "@cosmjs/encoding" "^0.31.3" + "@cosmjs/math" "^0.31.3" + "@cosmjs/utils" "^0.31.3" + "@cosmjs/crypto@^0.29.5": version "0.29.5" resolved "https://registry.yarnpkg.com/@cosmjs/crypto/-/crypto-0.29.5.tgz#ab99fc382b93d8a8db075780cf07487a0f9519fd" @@ -1498,6 +1730,19 @@ elliptic "^6.5.4" libsodium-wrappers "^0.7.6" +"@cosmjs/crypto@^0.31.3": + version "0.31.3" + resolved "https://registry.yarnpkg.com/@cosmjs/crypto/-/crypto-0.31.3.tgz#c752cb6d682fdc735dcb45a2519f89c56ba16c26" + integrity sha512-vRbvM9ZKR2017TO73dtJ50KxoGcFzKtKI7C8iO302BQ5p+DuB+AirUg1952UpSoLfv5ki9O416MFANNg8UN/EQ== + dependencies: + "@cosmjs/encoding" "^0.31.3" + "@cosmjs/math" "^0.31.3" + "@cosmjs/utils" "^0.31.3" + "@noble/hashes" "^1" + bn.js "^5.2.0" + elliptic "^6.5.4" + libsodium-wrappers-sumo "^0.7.11" + "@cosmjs/encoding@^0.29.5": version "0.29.5" resolved "https://registry.yarnpkg.com/@cosmjs/encoding/-/encoding-0.29.5.tgz#009a4b1c596cdfd326f30ccfa79f5e56daa264f2" @@ -1507,6 +1752,15 @@ bech32 "^1.1.4" readonly-date "^1.0.0" +"@cosmjs/encoding@^0.31.3": + version "0.31.3" + resolved "https://registry.yarnpkg.com/@cosmjs/encoding/-/encoding-0.31.3.tgz#2519d9c9ae48368424971f253775c4580b54c5aa" + integrity sha512-6IRtG0fiVYwyP7n+8e54uTx2pLYijO48V3t9TLiROERm5aUAIzIlz6Wp0NYaI5he9nh1lcEGJ1lkquVKFw3sUg== + dependencies: + base64-js "^1.3.0" + bech32 "^1.1.4" + readonly-date "^1.0.0" + "@cosmjs/json-rpc@^0.29.5": version "0.29.5" resolved "https://registry.yarnpkg.com/@cosmjs/json-rpc/-/json-rpc-0.29.5.tgz#5e483a9bd98a6270f935adf0dfd8a1e7eb777fe4" @@ -1522,6 +1776,13 @@ dependencies: bn.js "^5.2.0" +"@cosmjs/math@^0.31.3": + version "0.31.3" + resolved "https://registry.yarnpkg.com/@cosmjs/math/-/math-0.31.3.tgz#767f7263d12ba1b9ed2f01f68d857597839fd957" + integrity sha512-kZ2C6glA5HDb9hLz1WrftAjqdTBb3fWQsRR+Us2HsjAYdeE6M3VdXMsYCP5M3yiihal1WDwAY2U7HmfJw7Uh4A== + dependencies: + bn.js "^5.2.0" + "@cosmjs/proto-signing@^0.29.5": version "0.29.5" resolved "https://registry.yarnpkg.com/@cosmjs/proto-signing/-/proto-signing-0.29.5.tgz#af3b62a46c2c2f1d2327d678b13b7262db1fe87c" @@ -1535,6 +1796,19 @@ cosmjs-types "^0.5.2" long "^4.0.0" +"@cosmjs/proto-signing@^0.31.0": + version "0.31.3" + resolved "https://registry.yarnpkg.com/@cosmjs/proto-signing/-/proto-signing-0.31.3.tgz#20440b7b96fb2cd924256a10e656fd8d4481cdcd" + integrity sha512-24+10/cGl6lLS4VCrGTCJeDRPQTn1K5JfknzXzDIHOx8THR31JxA7/HV5eWGHqWgAbudA7ccdSvEK08lEHHtLA== + dependencies: + "@cosmjs/amino" "^0.31.3" + "@cosmjs/crypto" "^0.31.3" + "@cosmjs/encoding" "^0.31.3" + "@cosmjs/math" "^0.31.3" + "@cosmjs/utils" "^0.31.3" + cosmjs-types "^0.8.0" + long "^4.0.0" + "@cosmjs/socket@^0.29.5": version "0.29.5" resolved "https://registry.yarnpkg.com/@cosmjs/socket/-/socket-0.29.5.tgz#a48df6b4c45dc6a6ef8e47232725dd4aa556ac2d" @@ -1591,6 +1865,116 @@ resolved "https://registry.yarnpkg.com/@cosmjs/utils/-/utils-0.29.5.tgz#3fed1b3528ae8c5f1eb5d29b68755bebfd3294ee" integrity sha512-m7h+RXDUxOzEOGt4P+3OVPX7PuakZT3GBmaM/Y2u+abN3xZkziykD/NvedYFvvCCdQo714XcGl33bwifS9FZPQ== +"@cosmjs/utils@^0.31.3": + version "0.31.3" + resolved "https://registry.yarnpkg.com/@cosmjs/utils/-/utils-0.31.3.tgz#f97bbfda35ad69e80cd5c7fe0a270cbda16db1ed" + integrity sha512-VBhAgzrrYdIe0O5IbKRqwszbQa7ZyQLx9nEQuHQ3HUplQW7P44COG/ye2n6AzCudtqxmwdX7nyX8ta1J07GoqA== + +"@credo-ts/anoncreds@0.5.0-alpha.110", "@credo-ts/anoncreds@0.5.0-alpha.110+9da02d4e": + version "0.5.0-alpha.110" + resolved "https://registry.yarnpkg.com/@credo-ts/anoncreds/-/anoncreds-0.5.0-alpha.110.tgz#3dcbfa18b26a463b060a733a6dba44cd7d779103" + integrity sha512-+MmYXBEcfwhposMub428myuyAc+mnRp30/rMFDmVt7s6+cwVJFXDGCoV8ErSV5sts+PoECd+LcGPLGJPwGMnWQ== + dependencies: + "@credo-ts/core" "0.5.0-alpha.110+9da02d4e" + bn.js "^5.2.1" + class-transformer "0.5.1" + class-validator "0.14.0" + reflect-metadata "^0.1.13" + +"@credo-ts/askar@0.5.0-alpha.110": + version "0.5.0-alpha.110" + resolved "https://registry.yarnpkg.com/@credo-ts/askar/-/askar-0.5.0-alpha.110.tgz#8ca54e7b7a6cf462e9508e5e8f5d0ac69d39ad5a" + integrity sha512-qbHjfJ8UMccxroDhESAAz4X8uJNWUXX3vUbcHRX/7zmTqwNUt+1QSKzmNTuR8/h1pOL1TBGvBwp37ZldRiXFoA== + dependencies: + "@credo-ts/core" "0.5.0-alpha.110+9da02d4e" + bn.js "^5.2.1" + class-transformer "0.5.1" + class-validator "0.14.0" + rxjs "^7.2.0" + tsyringe "^4.8.0" + +"@credo-ts/cheqd@0.5.0-alpha.110": + version "0.5.0-alpha.110" + resolved "https://registry.yarnpkg.com/@credo-ts/cheqd/-/cheqd-0.5.0-alpha.110.tgz#1a9a3b5ce4f7449ce3cf1a679815f69dad4ad8df" + integrity sha512-cMYilmQsBk7HlVr22JcqYDyNG2ExhjtxNJHeLcLBFroU4DZwNVCukgFhjEpvUbbfgQnOojWZ87/QBL8xWzimLQ== + dependencies: + "@cheqd/sdk" cjs + "@cheqd/ts-proto" cjs + "@cosmjs/crypto" "^0.29.5" + "@cosmjs/proto-signing" "^0.31.0" + "@credo-ts/anoncreds" "0.5.0-alpha.110+9da02d4e" + "@credo-ts/core" "0.5.0-alpha.110+9da02d4e" + "@stablelib/ed25519" "^1.0.3" + class-transformer "^0.5.1" + class-validator "^0.14.0" + rxjs "^7.2.0" + tsyringe "^4.8.0" + +"@credo-ts/core@0.5.0-alpha.110", "@credo-ts/core@0.5.0-alpha.110+9da02d4e": + version "0.5.0-alpha.110" + resolved "https://registry.yarnpkg.com/@credo-ts/core/-/core-0.5.0-alpha.110.tgz#c7b5091f8a8e567073e5e9aa6d69c763f30f0a9f" + integrity sha512-O8B88dn9qLIXeantTAhk+eZv7JBXyo0wunxmo6K5vqNn4giRt1YciibPC7MLPwnsczpLvRN773Nc5eWF5sqgvQ== + dependencies: + "@digitalcredentials/jsonld" "^6.0.0" + "@digitalcredentials/jsonld-signatures" "^9.4.0" + "@digitalcredentials/vc" "^6.0.1" + "@multiformats/base-x" "^4.0.1" + "@sphereon/pex" "^2.2.2" + "@sphereon/pex-models" "^2.1.2" + "@sphereon/ssi-types" "^0.17.5" + "@stablelib/ed25519" "^1.0.2" + "@stablelib/random" "^1.0.1" + "@stablelib/sha256" "^1.0.1" + "@types/ws" "^8.5.4" + abort-controller "^3.0.0" + big-integer "^1.6.51" + borc "^3.0.0" + buffer "^6.0.3" + class-transformer "0.5.1" + class-validator "0.14.0" + did-resolver "^4.1.0" + jsonpath "^1.1.1" + lru_map "^0.4.1" + luxon "^3.3.0" + make-error "^1.3.6" + object-inspect "^1.10.3" + query-string "^7.0.1" + reflect-metadata "^0.1.13" + rxjs "^7.2.0" + tsyringe "^4.8.0" + uuid "^9.0.0" + varint "^6.0.0" + web-did-resolver "^2.0.21" + +"@credo-ts/indy-vdr@0.5.0-alpha.110": + version "0.5.0-alpha.110" + resolved "https://registry.yarnpkg.com/@credo-ts/indy-vdr/-/indy-vdr-0.5.0-alpha.110.tgz#2af819e336292cf4fd88106257e26b13451433a0" + integrity sha512-nuUcWhcrfICHkjAwxNN55riPm6odXLmmyjqmaq64MXD8YTpCzErjKaJIrr1RAeQ6FHr4L2v6EiDNS6sS0o3RnA== + dependencies: + "@credo-ts/anoncreds" "0.5.0-alpha.110+9da02d4e" + "@credo-ts/core" "0.5.0-alpha.110+9da02d4e" + +"@credo-ts/node@0.5.0-alpha.110": + version "0.5.0-alpha.110" + resolved "https://registry.yarnpkg.com/@credo-ts/node/-/node-0.5.0-alpha.110.tgz#c25812ce5c64ef76782d229ae1a97085df978878" + integrity sha512-w/jIpZ30YVdPAoTl9F6pdpVKOSpRnQI4itEDt513bz+tS8ndsoKgXbNJV2B5wO+N1J+X3ls8StMsz64iWAv7vA== + dependencies: + "@2060.io/ffi-napi" "^4.0.8" + "@2060.io/ref-napi" "^3.0.6" + "@credo-ts/core" "0.5.0-alpha.110+9da02d4e" + "@types/express" "^4.17.15" + express "^4.17.1" + ws "^8.13.0" + +"@credo-ts/react-native@0.5.0-alpha.110": + version "0.5.0-alpha.110" + resolved "https://registry.yarnpkg.com/@credo-ts/react-native/-/react-native-0.5.0-alpha.110.tgz#78d07ee5f18b332fa914e66924a9261499a807f7" + integrity sha512-OhyYeFvKKDtLfRTtzMjDlpI9I2sizwHeTwPIgfT5djzzMnA6ak3sGkKikk6jHB7LXaRnRnsF+0QWDBnXx7n8jQ== + dependencies: + "@azure/core-asynciterator-polyfill" "^1.0.2" + "@credo-ts/core" "0.5.0-alpha.110+9da02d4e" + events "^3.3.0" + "@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" @@ -1598,11 +1982,93 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" +"@digitalbazaar/bitstring@^3.0.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@digitalbazaar/bitstring/-/bitstring-3.1.0.tgz#bbbacb80eaaa53594723a801879b3a95a0401b11" + integrity sha512-Cii+Sl++qaexOvv3vchhgZFfSmtHPNIPzGegaq4ffPnflVXFu+V2qrJ17aL2+gfLxrlC/zazZFuAltyKTPq7eg== + dependencies: + base64url-universal "^2.0.0" + pako "^2.0.4" + +"@digitalbazaar/http-client@^3.4.1": + version "3.4.1" + resolved "https://registry.yarnpkg.com/@digitalbazaar/http-client/-/http-client-3.4.1.tgz#5116fc44290d647cfe4b615d1f3fad9d6005e44d" + integrity sha512-Ahk1N+s7urkgj7WvvUND5f8GiWEPfUw0D41hdElaqLgu8wZScI8gdI0q+qWw5N1d35x7GCRH2uk9mi+Uzo9M3g== + dependencies: + ky "^0.33.3" + ky-universal "^0.11.0" + undici "^5.21.2" + "@digitalbazaar/security-context@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@digitalbazaar/security-context/-/security-context-1.0.0.tgz#23624692cfadc6d97e1eb787ad38a19635d89297" integrity sha512-mlj+UmodxTAdMCHGxnGVTRLHcSLyiEOVRiz3J6yiRliJWyrgeXs34wlWjBorDIEMDIjK2JwZrDuFEKO9bS5nKQ== +"@digitalbazaar/vc-status-list-context@^3.0.1": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@digitalbazaar/vc-status-list-context/-/vc-status-list-context-3.0.1.tgz#0507b7b6f6ee8b5e7e4d402e7a2905efdc70a316" + integrity sha512-vQsqQXpmSXKNy/C0xxFUOBzz60dHh6oupQam1xRC8IspVC11hYJiX9SAhmbI0ulHvX1R2JfqZaJHZjmAyMZ/aA== + +"@digitalbazaar/vc-status-list@^7.0.0": + version "7.1.0" + resolved "https://registry.yarnpkg.com/@digitalbazaar/vc-status-list/-/vc-status-list-7.1.0.tgz#1d585a1766106e1586e1e2f87092dd0381b3f036" + integrity sha512-p5uxKJlX13N8TcTuv9qFDeej+6bndU+Rh1Cez2MT+bXQE6Jpn5t336FBSHmcECB4yUfZQpkmV/LOcYU4lW8Ojw== + dependencies: + "@digitalbazaar/bitstring" "^3.0.0" + "@digitalbazaar/vc" "^5.0.0" + "@digitalbazaar/vc-status-list-context" "^3.0.1" + credentials-context "^2.0.0" + +"@digitalbazaar/vc@^5.0.0": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@digitalbazaar/vc/-/vc-5.0.0.tgz#20180fb492cb755eb2c6b6df9a17f7407d5e4b5a" + integrity sha512-XmLM7Ag5W+XidGnFuxFIyUFSMnHnWEMJlHei602GG94+WzFJ6Ik8txzPQL8T18egSoiTsd1VekymbIlSimhuaQ== + dependencies: + credentials-context "^2.0.0" + jsonld "^8.0.0" + jsonld-signatures "^11.0.0" + +"@digitalcredentials/base58-universal@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@digitalcredentials/base58-universal/-/base58-universal-1.0.1.tgz#41b5a16cdeaac9cf01b23f1e564c560c2599b607" + integrity sha512-1xKdJnfITMvrF/sCgwBx2C4p7qcNAARyIvrAOZGqIHmBaT/hAenpC8bf44qVY+UIMuCYP23kqpIfJQebQDThDQ== + +"@digitalcredentials/base64url-universal@^2.0.2": + version "2.0.6" + resolved "https://registry.yarnpkg.com/@digitalcredentials/base64url-universal/-/base64url-universal-2.0.6.tgz#43c59c62a33b024e7adc3c56403d18dbcb61ec61" + integrity sha512-QJyK6xS8BYNnkKLhEAgQc6Tb9DMe+GkHnBAWJKITCxVRXJAFLhJnr+FsJnCThS3x2Y0UiiDAXoWjwMqtUrp4Kg== + dependencies: + base64url "^3.0.1" + +"@digitalcredentials/bitstring@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@digitalcredentials/bitstring/-/bitstring-2.0.1.tgz#bb887f1d0999980598754e426d831c96a26a3863" + integrity sha512-9priXvsEJGI4LYHPwLqf5jv9HtQGlG0MgeuY8Q4NHN+xWz5rYMylh1TYTVThKa3XI6xF2pR2oEfKZD21eWXveQ== + dependencies: + "@digitalcredentials/base64url-universal" "^2.0.2" + pako "^2.0.4" + +"@digitalcredentials/ed25519-signature-2020@^3.0.2": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@digitalcredentials/ed25519-signature-2020/-/ed25519-signature-2020-3.0.2.tgz#2df8fb6f814a1964b40ebb3402d41630c30120da" + integrity sha512-R8IrR21Dh+75CYriQov3nVHKaOVusbxfk9gyi6eCAwLHKn6fllUt+2LQfuUrL7Ts/sGIJqQcev7YvkX9GvyYRA== + dependencies: + "@digitalcredentials/base58-universal" "^1.0.1" + "@digitalcredentials/ed25519-verification-key-2020" "^3.1.1" + "@digitalcredentials/jsonld-signatures" "^9.3.1" + ed25519-signature-2018-context "^1.1.0" + ed25519-signature-2020-context "^1.0.1" + +"@digitalcredentials/ed25519-verification-key-2020@^3.1.1": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@digitalcredentials/ed25519-verification-key-2020/-/ed25519-verification-key-2020-3.2.2.tgz#cdf271bf4bb44dd2c417dcde6d7a0436e31d84ca" + integrity sha512-ZfxNFZlA379MZpf+gV2tUYyiZ15eGVgjtCQLWlyu3frWxsumUgv++o0OJlMnrDsWGwzFMRrsXcosd5+752rLOA== + dependencies: + "@digitalcredentials/base58-universal" "^1.0.1" + "@stablelib/ed25519" "^1.0.1" + base64url-universal "^1.1.0" + crypto-ld "^6.0.0" + "@digitalcredentials/http-client@^1.0.0": version "1.2.2" resolved "https://registry.yarnpkg.com/@digitalcredentials/http-client/-/http-client-1.2.2.tgz#8b09ab6f1e3aa8878d91d3ca51946ca8265cc92e" @@ -1622,6 +2088,17 @@ isomorphic-webcrypto "^2.3.8" serialize-error "^8.0.1" +"@digitalcredentials/jsonld-signatures@^9.3.2", "@digitalcredentials/jsonld-signatures@^9.4.0": + version "9.4.0" + resolved "https://registry.yarnpkg.com/@digitalcredentials/jsonld-signatures/-/jsonld-signatures-9.4.0.tgz#d5881122c4202449b88a7e2384f8e615ae55582c" + integrity sha512-DnR+HDTm7qpcDd0wcD1w6GdlAwfHjQSgu+ahion8REkCkkMRywF+CLunU7t8AZpFB2Gr/+N8naUtiEBNje1Oew== + dependencies: + "@digitalbazaar/security-context" "^1.0.0" + "@digitalcredentials/jsonld" "^6.0.0" + fast-text-encoding "^1.0.3" + isomorphic-webcrypto "^2.3.8" + serialize-error "^8.0.1" + "@digitalcredentials/jsonld@^5.2.1": version "5.2.1" resolved "https://registry.yarnpkg.com/@digitalcredentials/jsonld/-/jsonld-5.2.1.tgz#60acf587bec8331e86324819fd19692939118775" @@ -1632,6 +2109,21 @@ canonicalize "^1.0.1" lru-cache "^6.0.0" +"@digitalcredentials/jsonld@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@digitalcredentials/jsonld/-/jsonld-6.0.0.tgz#05d34cb1d81c4bbdfacf61f8958bbaede33be598" + integrity sha512-5tTakj0/GsqAJi8beQFVMQ97wUJZnuxViW9xRuAATL6eOBIefGBwHkVryAgEq2I4J/xKgb/nEyw1ZXX0G8wQJQ== + dependencies: + "@digitalcredentials/http-client" "^1.0.0" + "@digitalcredentials/rdf-canonize" "^1.0.0" + canonicalize "^1.0.1" + lru-cache "^6.0.0" + +"@digitalcredentials/open-badges-context@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@digitalcredentials/open-badges-context/-/open-badges-context-2.1.0.tgz#cefd29af4642adf8feeed5bb7ede663b14913c2f" + integrity sha512-VK7X5u6OoBFxkyIFplNqUPVbo+8vFSAEoam8tSozpj05KPfcGw41Tp5p9fqMnY38oPfwtZR2yDNSctj/slrE0A== + "@digitalcredentials/rdf-canonize@^1.0.0": version "1.0.0" resolved "https://registry.yarnpkg.com/@digitalcredentials/rdf-canonize/-/rdf-canonize-1.0.0.tgz#6297d512072004c2be7f280246383a9c4b0877ff" @@ -1640,6 +2132,16 @@ fast-text-encoding "^1.0.3" isomorphic-webcrypto "^2.3.8" +"@digitalcredentials/vc-status-list@^5.0.2": + version "5.0.2" + resolved "https://registry.yarnpkg.com/@digitalcredentials/vc-status-list/-/vc-status-list-5.0.2.tgz#9de8b23b6d533668a354ff464a689ecc42f24445" + integrity sha512-PI0N7SM0tXpaNLelbCNsMAi34AjOeuhUzMSYTkHdeqRPX7oT2F3ukyOssgr4koEqDxw9shHtxHu3fSJzrzcPMQ== + dependencies: + "@digitalbazaar/vc-status-list-context" "^3.0.1" + "@digitalcredentials/bitstring" "^2.0.1" + "@digitalcredentials/vc" "^4.1.1" + credentials-context "^2.0.0" + "@digitalcredentials/vc@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@digitalcredentials/vc/-/vc-1.1.2.tgz#868a56962f5137c29eb51eea1ba60251ebf69ad1" @@ -1649,6 +2151,29 @@ "@digitalcredentials/jsonld-signatures" "^9.3.1" credentials-context "^2.0.0" +"@digitalcredentials/vc@^4.1.1": + version "4.2.0" + resolved "https://registry.yarnpkg.com/@digitalcredentials/vc/-/vc-4.2.0.tgz#d2197b26547d670965d5969a9e49437f244b5944" + integrity sha512-8Rxpn77JghJN7noBQdcMuzm/tB8vhDwPoFepr3oGd5w+CyJxOk2RnBlgIGlAAGA+mALFWECPv1rANfXno+hdjA== + dependencies: + "@digitalcredentials/jsonld" "^5.2.1" + "@digitalcredentials/jsonld-signatures" "^9.3.1" + credentials-context "^2.0.0" + +"@digitalcredentials/vc@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@digitalcredentials/vc/-/vc-6.0.1.tgz#e4bdbac37d677c5288f2ad8d9ea59c3b41e0fd78" + integrity sha512-TZgLoi00Jc9uv3b6jStH+G8+bCqpHIqFw9DYODz+fVjNh197ksvcYqSndUDHa2oi0HCcK+soI8j4ba3Sa4Pl4w== + dependencies: + "@digitalbazaar/vc-status-list" "^7.0.0" + "@digitalcredentials/ed25519-signature-2020" "^3.0.2" + "@digitalcredentials/jsonld" "^6.0.0" + "@digitalcredentials/jsonld-signatures" "^9.3.2" + "@digitalcredentials/open-badges-context" "^2.1.0" + "@digitalcredentials/vc-status-list" "^5.0.2" + credentials-context "^2.0.0" + fix-esm "^1.0.1" + "@discoveryjs/json-ext@0.5.7": version "0.5.7" resolved "https://registry.yarnpkg.com/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" @@ -2121,6 +2646,11 @@ url-loader "^4.1.1" webpack "^5.73.0" +"@fastify/busboy@^2.0.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@fastify/busboy/-/busboy-2.1.0.tgz#0709e9f4cb252351c609c6e6d8d6779a8d25edff" + integrity sha512-+KpH+QxZU7O4675t3mnkQKcZZg56u+K/Ct2K+N2AZYNVK8kyeo/bI18tI8aPm3tvNNRyTWfj6s5tnGNlcbQRsA== + "@gar/promisify@^1.0.1": version "1.1.3" resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" @@ -2138,6 +2668,18 @@ dependencies: "@hapi/hoek" "^9.0.0" +"@hyperledger/anoncreds-nodejs@0.2.0-dev.9": + version "0.2.0-dev.9" + resolved "https://registry.yarnpkg.com/@hyperledger/anoncreds-nodejs/-/anoncreds-nodejs-0.2.0-dev.9.tgz#f33385780485f97bb3122d90611cc584157d2be9" + integrity sha512-XrpaYNDJTpxzGMKJP7icePKnu0jhkCKP8U7LAS7cNxt5fgkJzW4zb4TPINLNKs28RFYwxm9fOss8R3mfCVEiuA== + dependencies: + "@2060.io/ffi-napi" "4.0.8" + "@2060.io/ref-napi" "3.0.6" + "@hyperledger/anoncreds-shared" "0.2.0-dev.9" + "@mapbox/node-pre-gyp" "^1.0.11" + ref-array-di "1.2.2" + ref-struct-di "1.1.1" + "@hyperledger/anoncreds-nodejs@^0.1.0": version "0.1.0" resolved "https://registry.yarnpkg.com/@hyperledger/anoncreds-nodejs/-/anoncreds-nodejs-0.1.0.tgz#925f4004af85e772a3ee55f240b281148cbfb6e6" @@ -2151,6 +2693,14 @@ ref-napi "3.0.3" ref-struct-di "1.1.1" +"@hyperledger/anoncreds-react-native@0.2.0-dev.9": + version "0.2.0-dev.9" + resolved "https://registry.yarnpkg.com/@hyperledger/anoncreds-react-native/-/anoncreds-react-native-0.2.0-dev.9.tgz#912656223f253efedb6752bc98a269d68701582c" + integrity sha512-evL0Xg4hKvrzacPeTAwlOAV6hYgPMJqJUz+/OVpqmhKheA9VUoUHwCeTyNnnj8o6cmBm7+SJpkIznlJcV1mI/g== + dependencies: + "@hyperledger/anoncreds-shared" "0.2.0-dev.9" + "@mapbox/node-pre-gyp" "^1.0.10" + "@hyperledger/anoncreds-react-native@^0.1.0": version "0.1.0" resolved "https://registry.yarnpkg.com/@hyperledger/anoncreds-react-native/-/anoncreds-react-native-0.1.0.tgz#1e815cf2b71c2b636b90aaa893bf65b401fb4b40" @@ -2159,17 +2709,35 @@ "@hyperledger/anoncreds-shared" "0.1.0" "@mapbox/node-pre-gyp" "^1.0.10" -"@hyperledger/anoncreds-shared@0.1.0": +"@hyperledger/anoncreds-shared@0.1.0", "@hyperledger/anoncreds-shared@^0.1.0": version "0.1.0" resolved "https://registry.yarnpkg.com/@hyperledger/anoncreds-shared/-/anoncreds-shared-0.1.0.tgz#947c602c385bfa79b63849c9e48b51cc9d41d820" integrity sha512-DisZFY4YbrugRCCv7AtYFUTsrGigHF1dVaiA36WrhRUgetwDzKgMiYGkxFQmCe0IJ0mDw4M7sbTJBXxfxij/+A== -"@hyperledger/aries-askar-nodejs@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@hyperledger/aries-askar-nodejs/-/aries-askar-nodejs-0.1.0.tgz#2bb8f19d3f44b67e8aa92e4d45da9ab47ddb0539" - integrity sha512-5jc8lNZg9Qxd4BoUWCknJ2YH7iqgO5/kl6KMfry5z9MTXQ5u30ysqPQCtWwryAKt+q55jnlw+pgISsis+zDfgA== +"@hyperledger/anoncreds-shared@0.2.0-dev.9": + version "0.2.0-dev.9" + resolved "https://registry.yarnpkg.com/@hyperledger/anoncreds-shared/-/anoncreds-shared-0.2.0-dev.9.tgz#da6cbab72324b1185f97e3edaf8fef752117795b" + integrity sha512-2cK6x2jq98JjKJQRYGmhyPWLB0aYBYrUDM1J/kSQP2RCRoHj1hHV6Ok/DlUmxk+wO1o+71gvb8CYvoGPMI6C4Q== + +"@hyperledger/aries-askar-nodejs@0.2.0-dev.6": + version "0.2.0-dev.6" + resolved "https://registry.yarnpkg.com/@hyperledger/aries-askar-nodejs/-/aries-askar-nodejs-0.2.0-dev.6.tgz#0a86dc3215db8d147a4fef9404267a5e94e503a5" + integrity sha512-dnWcr31oOARRy0fhhw/CpfGhrxIg37UmZHJM0YB+fy30EmwXWHfZy8h1qy8D7uuyfD5FI1pXNDOlYgmMuLdJNQ== dependencies: - "@hyperledger/aries-askar-shared" "0.1.0" + "@2060.io/ffi-napi" "4.0.8" + "@2060.io/ref-napi" "3.0.6" + "@hyperledger/aries-askar-shared" "0.2.0-dev.6" + "@mapbox/node-pre-gyp" "^1.0.10" + node-cache "^5.1.2" + ref-array-di "^1.2.2" + ref-struct-di "^1.1.1" + +"@hyperledger/aries-askar-nodejs@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@hyperledger/aries-askar-nodejs/-/aries-askar-nodejs-0.1.1.tgz#93d59cec0a21aae3e06ce6149a2424564a0e3238" + integrity sha512-mgTioLL22Q+Ie8RMY446bRtp/+D3rskhKJuW/qZUOinb8w8t0JKrFSfCr3OBs0/FVsm7cBN9ZqJdJY0+0BkVhQ== + dependencies: + "@hyperledger/aries-askar-shared" "0.1.1" "@mapbox/node-pre-gyp" "^1.0.10" ffi-napi "^4.0.3" node-cache "^5.1.2" @@ -2177,21 +2745,48 @@ ref-napi "^3.0.3" ref-struct-di "^1.1.1" -"@hyperledger/aries-askar-react-native@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@hyperledger/aries-askar-react-native/-/aries-askar-react-native-0.1.0.tgz#01f1cbf91f98d76b034e9eb4a1b240dc196fc716" - integrity sha512-I2qJx5QqKQUILTh8gwJKbZutNgrtYhwWAA733pASe3FJ6FydRNOr+owx/W8Agna0G4HaJStjiJbU2qfZg3POzw== +"@hyperledger/aries-askar-react-native@0.2.0-dev.6": + version "0.2.0-dev.6" + resolved "https://registry.yarnpkg.com/@hyperledger/aries-askar-react-native/-/aries-askar-react-native-0.2.0-dev.6.tgz#5f55d2524fc03ce30e118ca921e95b388874f251" + integrity sha512-gt0LDqyIaK3URt+rACUWioD4osi4ou8hiqub6WT2oxvZB8y/cHIAPEmeA4N7pPLbouKUXbVvPA3JLgGiTg5W4A== dependencies: - "@hyperledger/aries-askar-shared" "0.1.0" + "@hyperledger/aries-askar-shared" "0.2.0-dev.6" "@mapbox/node-pre-gyp" "^1.0.10" -"@hyperledger/aries-askar-shared@0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@hyperledger/aries-askar-shared/-/aries-askar-shared-0.1.0.tgz#a2517efb0829cdf6dc08ca6809dbd6daa497e116" - integrity sha512-eTq3pQ7qNoEqS3KJOB5OcsKmYJ01aPF4GSOMmNKc44xyifwNi53lBod5fDVyjo401hk/FpVHZ3nRik1BXw1PWA== +"@hyperledger/aries-askar-react-native@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@hyperledger/aries-askar-react-native/-/aries-askar-react-native-0.1.1.tgz#1108a9b815b53eae9d04341c17be2f2b7ff2d3be" + integrity sha512-e9E4CYf54J1RJetK9g64vHoIcVjlU8CnKB83/01aXliLY52Yrg2ad42MJFva29z8SghFFgpCXRGMUuQ9OiwBfA== + dependencies: + "@hyperledger/aries-askar-shared" "0.1.1" + "@mapbox/node-pre-gyp" "^1.0.10" + +"@hyperledger/aries-askar-shared@0.1.1", "@hyperledger/aries-askar-shared@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@hyperledger/aries-askar-shared/-/aries-askar-shared-0.1.1.tgz#bdb34ad718e988db5a47d540fd22ba2c7a86a1d3" + integrity sha512-9jJSgqHt29JEuQ/tBzHmhWaSLyTyw/t7H+Ell/YSHtL9DE0KN0Ew/vuXoDqlt117+EBeQTDKG0hy0ov8K41rmw== dependencies: fast-text-encoding "^1.0.3" +"@hyperledger/aries-askar-shared@0.2.0-dev.6": + version "0.2.0-dev.6" + resolved "https://registry.yarnpkg.com/@hyperledger/aries-askar-shared/-/aries-askar-shared-0.2.0-dev.6.tgz#c94eec01ecbf70709d8b62744873dd05cba06ad9" + integrity sha512-gJa28QNR5yZI2DAnfb6/wafVaI2upcT1fmt0g+Qe68IY+JJXQHzijP+zuxR3EF8pQxFEJLBmlFDn3hPHr4Kpiw== + dependencies: + buffer "^6.0.3" + +"@hyperledger/indy-vdr-nodejs@0.2.0-dev.6": + version "0.2.0-dev.6" + resolved "https://registry.yarnpkg.com/@hyperledger/indy-vdr-nodejs/-/indy-vdr-nodejs-0.2.0-dev.6.tgz#c21916600e17cf6ee46fc78a054cb904f9156594" + integrity sha512-yOmfOqJJJapJRWdKSJQG7q/frKGUrntoae4fiYnwdQEWy4rdRiyZPo0ht9R6uuZ/AQwxtNMMRylvQZBfHA+vKA== + dependencies: + "@2060.io/ffi-napi" "4.0.8" + "@2060.io/ref-napi" "3.0.6" + "@hyperledger/indy-vdr-shared" "0.2.0-dev.6" + "@mapbox/node-pre-gyp" "^1.0.10" + ref-array-di "^1.2.2" + ref-struct-di "^1.1.1" + "@hyperledger/indy-vdr-nodejs@^0.1.0": version "0.1.0" resolved "https://registry.yarnpkg.com/@hyperledger/indy-vdr-nodejs/-/indy-vdr-nodejs-0.1.0.tgz#a006393e3ecb1a4661bbd52299b796247e8bde47" @@ -2205,6 +2800,14 @@ ref-napi "^3.0.3" ref-struct-di "^1.1.1" +"@hyperledger/indy-vdr-react-native@0.2.0-dev.6": + version "0.2.0-dev.6" + resolved "https://registry.yarnpkg.com/@hyperledger/indy-vdr-react-native/-/indy-vdr-react-native-0.2.0-dev.6.tgz#a742d268389eb614d7eaccd83bf9be78844d4c3f" + integrity sha512-BR1eQctpmoCH9PoY8q/HltOIEt39LyvwyoXMvoIZ4ICAeufTLNqI6hkKefpPPqkdkAnAhT5tgD02W295SA0KWw== + dependencies: + "@hyperledger/indy-vdr-shared" "0.2.0-dev.6" + "@mapbox/node-pre-gyp" "^1.0.10" + "@hyperledger/indy-vdr-react-native@^0.1.0": version "0.1.0" resolved "https://registry.yarnpkg.com/@hyperledger/indy-vdr-react-native/-/indy-vdr-react-native-0.1.0.tgz#f0ad5c748438f91e4fe1bf86cf4744910ca24032" @@ -2213,11 +2816,16 @@ "@hyperledger/indy-vdr-shared" "0.1.0" "@mapbox/node-pre-gyp" "^1.0.10" -"@hyperledger/indy-vdr-shared@0.1.0": +"@hyperledger/indy-vdr-shared@0.1.0", "@hyperledger/indy-vdr-shared@^0.1.0": version "0.1.0" resolved "https://registry.yarnpkg.com/@hyperledger/indy-vdr-shared/-/indy-vdr-shared-0.1.0.tgz#f8023a2d25ca9395ec2fd0e6a0dfbda6459fab03" integrity sha512-VfGraHX6RMmNcF4WYD5F1anjJzPN7KSrj5GP3g0hCrdXMDXEtO8t1lHQLVfrBgdjhR7gE82Nx+ZAYlGnTxoE+A== +"@hyperledger/indy-vdr-shared@0.2.0-dev.6": + version "0.2.0-dev.6" + resolved "https://registry.yarnpkg.com/@hyperledger/indy-vdr-shared/-/indy-vdr-shared-0.2.0-dev.6.tgz#4954ee06fa8a2e4545b35cd525b7b86e0f10b6fe" + integrity sha512-pNLq0zkqv5rFCpU9tzyJ5DPvED5YE+UFP8iKwVD7fe+mAD6/VpweOunYNKgIBT4K1DYI21q7bs3SzxQZ0hLlKw== + "@jest/schemas@^29.4.3": version "29.4.3" resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.4.3.tgz#39cf1b8469afc40b6f5a2baaa146e332c4151788" @@ -2315,6 +2923,21 @@ semver "^7.3.5" tar "^6.1.11" +"@mapbox/node-pre-gyp@^1.0.11": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.11.tgz#417db42b7f5323d79e93b34a6d7a2a12c0df43fa" + integrity sha512-Yhlar6v9WQgUp/He7BdgzOz8lqMQ8sU+jkCq7Wx8Myc5YFJLbEe7lgui/V7G1qB1DJykHSGwreceSaD60Y0PUQ== + dependencies: + detect-libc "^2.0.0" + https-proxy-agent "^5.0.0" + make-dir "^3.1.0" + node-fetch "^2.6.7" + nopt "^5.0.0" + npmlog "^5.0.1" + rimraf "^3.0.2" + semver "^7.3.5" + tar "^6.1.11" + "@mdx-js/mdx@^1.6.22": version "1.6.22" resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.6.22.tgz#8a723157bf90e78f17dc0f27995398e6c731f1ba" @@ -2523,6 +3146,32 @@ resolved "https://registry.yarnpkg.com/@sovpro/delimited-stream/-/delimited-stream-1.1.0.tgz#4334bba7ee241036e580fdd99c019377630d26b4" integrity sha512-kQpk267uxB19X3X2T1mvNMjyvIEonpNSHrMlK5ZaBU6aZxw7wPbpgKJOjHN3+/GPVpXgAV9soVT2oyHpLkLtyw== +"@sphereon/pex-models@^2.1.2": + version "2.1.5" + resolved "https://registry.yarnpkg.com/@sphereon/pex-models/-/pex-models-2.1.5.tgz#ba4474a3783081392b72403c4c8ee6da3d2e5585" + integrity sha512-7THexvdYUK/Dh8olBB46ErT9q/RnecnMdb5r2iwZ6be0Dt4vQLAUN7QU80H0HZBok4jRTb8ydt12x0raBSTHOg== + +"@sphereon/pex@^2.2.2": + version "2.2.2" + resolved "https://registry.yarnpkg.com/@sphereon/pex/-/pex-2.2.2.tgz#3df9ed75281b46f0899256774060ed2ff982fade" + integrity sha512-NkR8iDTC2PSnYsOHlG2M2iOpFTTbzszs2/pL3iK3Dlv9QYLqX7NtPAlmeSwaoVP1NB1ewcs6U1DtemQAD+90yQ== + dependencies: + "@astronautlabs/jsonpath" "^1.1.2" + "@sphereon/pex-models" "^2.1.2" + "@sphereon/ssi-types" "^0.17.5" + ajv "^8.12.0" + ajv-formats "^2.1.1" + jwt-decode "^3.1.2" + nanoid "^3.3.6" + string.prototype.matchall "^4.0.8" + +"@sphereon/ssi-types@^0.17.5": + version "0.17.5" + resolved "https://registry.yarnpkg.com/@sphereon/ssi-types/-/ssi-types-0.17.5.tgz#7b4de0326e7c2993ab816caeef6deaea41a5f65f" + integrity sha512-hoQOkeOtshvIzNAG+HTqcKxeGssLVfwX7oILHJgs6VMb1GhR6QlqjMAxflDxZ/8Aq2R0I6fEPWmf73zAXY2X2Q== + dependencies: + jwt-decode "^3.1.2" + "@stablelib/aead@^1.0.1": version "1.0.1" resolved "https://registry.yarnpkg.com/@stablelib/aead/-/aead-1.0.1.tgz#c4b1106df9c23d1b867eb9b276d8f42d5fc4c0c3" @@ -2565,7 +3214,7 @@ resolved "https://registry.yarnpkg.com/@stablelib/constant-time/-/constant-time-1.0.1.tgz#bde361465e1cf7b9753061b77e376b0ca4c77e35" integrity sha512-tNOs3uD0vSJcK6z1fvef4Y+buN7DXhzHDPqRLSXUel1UfqMB1PWNsnnAezrKfEwTLpN0cGH2p9NNjs6IqeD0eg== -"@stablelib/ed25519@^1.0.2", "@stablelib/ed25519@^1.0.3": +"@stablelib/ed25519@^1.0.1", "@stablelib/ed25519@^1.0.2", "@stablelib/ed25519@^1.0.3": version "1.0.3" resolved "https://registry.yarnpkg.com/@stablelib/ed25519/-/ed25519-1.0.3.tgz#f8fdeb6f77114897c887bb6a3138d659d3f35996" integrity sha512-puIMWaX9QlRsbhxfDc5i+mNPMY+0TmQEskunY1rZEBPi1acBCVQAhnsk/1Hk50DGPtVsZtAWQg4NHGlVaO9Hqg== @@ -2920,6 +3569,13 @@ dependencies: buffer "^6.0.0" +"@types/indy-sdk@1.16.27": + version "1.16.27" + resolved "https://registry.yarnpkg.com/@types/indy-sdk/-/indy-sdk-1.16.27.tgz#f5f01fe2cd39b74cacf91ea84d46a2e351cefa3b" + integrity sha512-ASEGYOuz8Acbybz4W2CYTG/fF7H9UQmJIG5wz8PSAvme07QU04Yzj4RJ5Nzzjej0X/AApEHS/5Jpk3iXTOs9HQ== + dependencies: + buffer "^6.0.0" + "@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" @@ -2961,6 +3617,14 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== +"@types/node-fetch@2.6.2": + version "2.6.2" + resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.2.tgz#d1a9c5fd049d9415dce61571557104dec3ec81da" + integrity sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A== + dependencies: + "@types/node" "*" + form-data "^3.0.0" + "@types/node-fetch@^2.5.10": version "2.6.3" resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.6.3.tgz#175d977f5e24d93ad0f57602693c435c57ad7e80" @@ -3372,7 +4036,7 @@ ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0, ajv@^8.8.0: +ajv@^8.0.0, ajv@^8.12.0, ajv@^8.8.0: version "8.12.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== @@ -3501,6 +4165,14 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== +array-buffer-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== + dependencies: + call-bind "^1.0.2" + is-array-buffer "^3.0.1" + array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" @@ -3524,6 +4196,19 @@ array-union@^2.1.0: resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== +arraybuffer.prototype.slice@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" + integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== + dependencies: + array-buffer-byte-length "^1.0.0" + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + is-array-buffer "^3.0.2" + is-shared-array-buffer "^1.0.2" + asap@~2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" @@ -3565,6 +4250,11 @@ autoprefixer@^10.4.12, autoprefixer@^10.4.7: picocolors "^1.0.0" postcss-value-parser "^4.2.0" +available-typed-arrays@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.6.tgz#ac812d8ce5a6b976d738e1c45f08d0b00bc7d725" + integrity sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg== + axios@^0.21.2: version "0.21.4" resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" @@ -3674,6 +4364,25 @@ base64-js@*, base64-js@^1.3.0, base64-js@^1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +base64url-universal@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/base64url-universal/-/base64url-universal-1.1.0.tgz#94da6356c1d43ead55b1d91c045c0a5b09ec8181" + integrity sha512-WyftvZqye29YQ10ZnuiBeEj0lk8SN8xHU9hOznkLc85wS1cLTp6RpzlMrHxMPD9nH7S55gsBqMqgGyz93rqmkA== + dependencies: + base64url "^3.0.0" + +base64url-universal@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/base64url-universal/-/base64url-universal-2.0.0.tgz#6023785c0e349a90de1cf396e8a4519750a4e67b" + integrity sha512-6Hpg7EBf3t148C3+fMzjf+CHnADVDafWzlJUXAqqqbm4MKNXbsoPdOkWeRTjNlkYG7TpyjIpRO1Gk0SnsFD1rw== + dependencies: + base64url "^3.0.1" + +base64url@^3.0.0, base64url@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/base64url/-/base64url-3.0.1.tgz#6399d572e2bc3f90a9a8b22d5dbb0a32d33f788d" + integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A== + batch@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" @@ -3830,6 +4539,16 @@ browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4 node-releases "^2.0.8" update-browserslist-db "^1.0.10" +browserslist@^4.22.2: + version "4.22.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.3.tgz#299d11b7e947a6b843981392721169e27d60c5a6" + integrity sha512-UAp55yfwNv0klWNapjs/ktHoguxuQNGnOzxYmfnXIS+8AsRDZkSDxg7R1AX3GKzn078SBI5dzwzj/Yx0Or0e3A== + dependencies: + caniuse-lite "^1.0.30001580" + electron-to-chromium "^1.4.648" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" + buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" @@ -3898,6 +4617,15 @@ call-bind@^1.0.0, call-bind@^1.0.2: function-bind "^1.1.1" get-intrinsic "^1.0.2" +call-bind@^1.0.4, call-bind@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" + integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== + dependencies: + function-bind "^1.1.2" + get-intrinsic "^1.2.1" + set-function-length "^1.1.1" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -3936,6 +4664,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.30001477.tgz#a2ffb2276258233034bbb869d4558b02658a511e" integrity sha512-lZim4iUHhGcy5p+Ri/G7m84hJwncj+Kz7S5aD4hoQfslKZJgt0tHc/hafVbqHC5bbhHb+mrW2JOUHkI5KH7toQ== +caniuse-lite@^1.0.30001580: + version "1.0.30001581" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001581.tgz#0dfd4db9e94edbdca67d57348ebc070dece279f4" + integrity sha512-whlTkwhqV2tUmP3oYhtNfaWGYHDdS3JYFQBKXxcUR9qqPWsRhFHhoISO2Xnl/g0xyKzht9mI1LZpiNWfMzHixQ== + canonicalize@^1.0.1: version "1.0.8" resolved "https://registry.yarnpkg.com/canonicalize/-/canonicalize-1.0.8.tgz#24d1f1a00ed202faafd9bf8e63352cd4450c6df1" @@ -3951,7 +4684,7 @@ ccount@^1.0.0: resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.1.0.tgz#246687debb6014735131be8abab2d93898f8d043" integrity sha512-vlNK021QdI7PNeiUh/lKkC/mNHHfV0m/Ad5JoI0TYtlBnJAslM/JIkm/tGC88bkLIwO6OQ5uV6ztS6kVAtCDlg== -chalk@^2.0.0: +chalk@^2.0.0, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -4288,6 +5021,11 @@ convert-source-map@^1.7.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + cookie-signature@1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" @@ -4396,6 +5134,14 @@ cosmjs-types@^0.5.2: long "^4.0.0" protobufjs "~6.11.2" +cosmjs-types@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/cosmjs-types/-/cosmjs-types-0.8.0.tgz#2ed78f3e990f770229726f95f3ef5bf9e2b6859b" + integrity sha512-Q2Mj95Fl0PYMWEhA2LuGEIhipF7mQwd9gTQ85DdP9jjjopeoGaDxvmPa5nakNzsq7FnO1DMTatXTAx6bxMH7Lg== + dependencies: + long "^4.0.0" + protobufjs "~6.11.2" + create-require@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" @@ -4422,6 +5168,11 @@ cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +crypto-ld@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/crypto-ld/-/crypto-ld-6.0.0.tgz#cf8dcf566cb3020bdb27f0279e6cc9b46d031cd7" + integrity sha512-XWL1LslqggNoaCI/m3I7HcvaSt9b2tYzdrXO+jHLUj9G1BvRfvV7ZTFDVY5nifYuIGAPdAGu7unPxLRustw3VA== + crypto-random-string@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" @@ -4858,6 +5609,11 @@ data-uri-to-buffer@^3.0.1: resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-3.0.1.tgz#594b8973938c5bc2c33046535785341abc4f3636" integrity sha512-WboRycPNsVw3B3TL559F7kuBUM4d8CgMEvk6xEJlOp7OBPjt6G7z8WMWlD2rOFZLk6OYfFIUGsCOWzcQH9K2og== +data-uri-to-buffer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz#d8feb2b2881e6a4f58c2e08acfd0e2834e26222e" + integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== + dayjs@^1.11.7: version "1.11.7" resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.7.tgz#4b296922642f70999544d1144a2c25730fce63e2" @@ -4870,7 +5626,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.6.0: dependencies: ms "2.0.0" -debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.3: +debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, 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== @@ -4901,6 +5657,11 @@ deep-extend@^0.6.0: resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== +deep-is@~0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== + deepmerge@^4.2.2: version "4.3.1" resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" @@ -4918,6 +5679,15 @@ defer-to-connect@^1.0.1: resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== +define-data-property@^1.0.1, define-data-property@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" + integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== + dependencies: + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + define-lazy-prop@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" @@ -4931,6 +5701,15 @@ define-properties@^1.1.3, define-properties@^1.1.4: has-property-descriptors "^1.0.0" object-keys "^1.1.1" +define-properties@^1.2.0, define-properties@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== + dependencies: + define-data-property "^1.0.1" + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + del@^6.1.1: version "6.1.1" resolved "https://registry.yarnpkg.com/del/-/del-6.1.1.tgz#3b70314f1ec0aa325c6b14eb36b95786671edb7a" @@ -5159,6 +5938,16 @@ eastasianwidth@^0.2.0: resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== +ed25519-signature-2018-context@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ed25519-signature-2018-context/-/ed25519-signature-2018-context-1.1.0.tgz#68002ea7497c32e8170667cfd67468dedf7d220e" + integrity sha512-ppDWYMNwwp9bploq0fS4l048vHIq41nWsAbPq6H4mNVx9G/GxW3fwg4Ln0mqctP13MoEpREK7Biz8TbVVdYXqA== + +ed25519-signature-2020-context@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ed25519-signature-2020-context/-/ed25519-signature-2020-context-1.1.0.tgz#b2f724f07db154ddf0fd6605410d88736e56fd07" + integrity sha512-dBGSmoUIK6h2vadDctrDnhhTO01PR2hJk0mRNEfrRDPCjaIwrfy4J+eziEQ9Q1m8By4f/CSRgKM1h53ydKfdNg== + ee-first@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" @@ -5169,6 +5958,11 @@ electron-to-chromium@^1.4.284: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.357.tgz#ad02bab69e696e9a122788da4460c86166a98a01" integrity sha512-UTkCbNTAcGXABmEnQrGcW4m3cG6fcyBfD4KDF0iyEAlbrGZiY9dmslyDAGOD1Kr5biN2F743Y30aRCOtau35Vw== +electron-to-chromium@^1.4.648: + version "1.4.653" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.653.tgz#832ab25e80ad698ac09c1ca547bd9ee6cce7df10" + integrity sha512-wA2A2LQCqnEwQAvwADQq3KpMpNwgAUBnRmrFgRzHnPhbQUFArTR32Ab46f4p0MovDLcg4uqd4nCsN2hTltslpA== + elkjs@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/elkjs/-/elkjs-0.8.2.tgz#c37763c5a3e24e042e318455e0147c912a7c248e" @@ -5261,11 +6055,74 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" +es-abstract@^1.22.1: + version "1.22.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" + integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== + dependencies: + array-buffer-byte-length "^1.0.0" + arraybuffer.prototype.slice "^1.0.2" + available-typed-arrays "^1.0.5" + call-bind "^1.0.5" + es-set-tostringtag "^2.0.1" + es-to-primitive "^1.2.1" + function.prototype.name "^1.1.6" + get-intrinsic "^1.2.2" + get-symbol-description "^1.0.0" + globalthis "^1.0.3" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + internal-slot "^1.0.5" + is-array-buffer "^3.0.2" + 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-typed-array "^1.1.12" + is-weakref "^1.0.2" + object-inspect "^1.13.1" + object-keys "^1.1.1" + object.assign "^4.1.4" + regexp.prototype.flags "^1.5.1" + safe-array-concat "^1.0.1" + safe-regex-test "^1.0.0" + string.prototype.trim "^1.2.8" + string.prototype.trimend "^1.0.7" + string.prototype.trimstart "^1.0.7" + typed-array-buffer "^1.0.0" + typed-array-byte-length "^1.0.0" + typed-array-byte-offset "^1.0.0" + typed-array-length "^1.0.4" + unbox-primitive "^1.0.2" + which-typed-array "^1.1.13" + es-module-lexer@^0.9.0: version "0.9.3" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" integrity sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ== +es-set-tostringtag@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" + integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== + dependencies: + get-intrinsic "^1.2.2" + has-tostringtag "^1.0.0" + hasown "^2.0.0" + +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" + es5-ext@^0.10.35, es5-ext@^0.10.50: version "0.10.62" resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.62.tgz#5e6adc19a6da524bf3d1e02bbc8960e5eb49a9a5" @@ -5317,6 +6174,18 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== +escodegen@^1.8.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + eslint-scope@5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" @@ -5325,7 +6194,12 @@ eslint-scope@5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -esprima@^4.0.0: +esprima@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.2.2.tgz#76a0fd66fcfe154fd292667dc264019750b1657b" + integrity sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A== + +esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== @@ -5337,7 +6211,7 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: +estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -5495,6 +6369,11 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== +fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== + fast-text-encoding@^1.0.3: version "1.0.6" resolved "https://registry.yarnpkg.com/fast-text-encoding/-/fast-text-encoding-1.0.6.tgz#0aa25f7f638222e3396d72bf936afcf1d42d6867" @@ -5558,6 +6437,14 @@ fetch-blob@^2.1.1: resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-2.1.2.tgz#a7805db1361bd44c1ef62bb57fb5fe8ea173ef3c" integrity sha512-YKqtUDwqLyfyMnmbw8XD6Q8j9i/HggKtPEI+pZ1+8bvheBu78biSmNaXWusx1TauGqtUUGx/cBb1mKdq2rLYow== +fetch-blob@^3.1.2, fetch-blob@^3.1.4: + version "3.2.0" + resolved "https://registry.yarnpkg.com/fetch-blob/-/fetch-blob-3.2.0.tgz#f09b8d4bbd45adc6f0c20b7e787e793e309dcce9" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + ffi-napi@4.0.3, ffi-napi@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/ffi-napi/-/ffi-napi-4.0.3.tgz#27a8d42a8ea938457154895c59761fbf1a10f441" @@ -5645,6 +6532,15 @@ find-up@^5.0.0, find-up@~5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" +fix-esm@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/fix-esm/-/fix-esm-1.0.1.tgz#e0e2199d841e43ff7db9b5f5ba7496bc45130ebb" + integrity sha512-EZtb7wPXZS54GaGxaWxMlhd1DUDCnAg5srlYdu/1ZVeW+7wwR3Tp59nu52dXByFs3MBRq+SByx1wDOJpRvLEXw== + dependencies: + "@babel/core" "^7.14.6" + "@babel/plugin-proposal-export-namespace-from" "^7.14.5" + "@babel/plugin-transform-modules-commonjs" "^7.14.5" + flux@^4.0.1: version "4.0.4" resolved "https://registry.yarnpkg.com/flux/-/flux-4.0.4.tgz#9661182ea81d161ee1a6a6af10d20485ef2ac572" @@ -5658,6 +6554,13 @@ follow-redirects@^1.0.0, follow-redirects@^1.14.0, follow-redirects@^1.14.7: resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== +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" + fork-ts-checker-webpack-plugin@^6.5.0: version "6.5.3" resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.3.tgz#eda2eff6e22476a2688d10661688c47f611b37f3" @@ -5686,6 +6589,13 @@ form-data@^3.0.0: combined-stream "^1.0.8" mime-types "^2.1.12" +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://registry.yarnpkg.com/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz#24807c31c9d402e002ab3d8c720144ceb8848423" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== + dependencies: + fetch-blob "^3.1.2" + forwarded@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" @@ -5747,6 +6657,26 @@ function-bind@^1.1.1: resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== +function-bind@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== + +function.prototype.name@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + functions-have-names "^1.2.3" + +functions-have-names@^1.2.3: + 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== + gauge@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" @@ -5790,6 +6720,16 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.3" +get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" + integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== + dependencies: + function-bind "^1.1.2" + has-proto "^1.0.1" + has-symbols "^1.0.3" + hasown "^2.0.0" + get-own-enumerable-property-symbols@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664" @@ -5814,6 +6754,14 @@ get-stream@^6.0.0: resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== +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" + get-symbol-from-current-process-h@^1.0.1, get-symbol-from-current-process-h@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/get-symbol-from-current-process-h/-/get-symbol-from-current-process-h-1.0.2.tgz#510af52eaef873f7028854c3377f47f7bb200265" @@ -5890,7 +6838,7 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globalthis@^1.0.1: +globalthis@^1.0.1, globalthis@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== @@ -5920,6 +6868,13 @@ globby@^13.1.1: merge2 "^1.4.1" slash "^4.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" + got@^9.6.0: version "9.6.0" resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" @@ -5964,6 +6919,11 @@ handle-thing@^2.0.0: resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== +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-flag@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" @@ -5981,11 +6941,30 @@ has-property-descriptors@^1.0.0: dependencies: get-intrinsic "^1.1.1" -has-symbols@^1.0.3: +has-property-descriptors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" + integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== + dependencies: + get-intrinsic "^1.2.2" + +has-proto@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== + +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-unicode@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -6011,6 +6990,13 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" +hasown@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== + dependencies: + function-bind "^1.1.2" + hast-to-hyperscript@^9.0.0: version "9.0.1" resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-9.0.1.tgz#9b67fd188e4c81e8ad66f803855334173920218d" @@ -6399,6 +7385,15 @@ inline-style-parser@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== +internal-slot@^1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" + integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== + dependencies: + get-intrinsic "^1.2.2" + hasown "^2.0.0" + side-channel "^1.0.4" + "internmap@1 - 2": version "2.0.3" resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" @@ -6444,11 +7439,27 @@ is-alphanumerical@^1.0.0: is-alphabetical "^1.0.0" is-decimal "^1.0.0" +is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.0" + is-typed-array "^1.1.10" + 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-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-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" @@ -6456,11 +7467,24 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" +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-buffer@^2.0.0: version "2.0.5" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.5.tgz#ebc252e400d22ff8d77fa09888821a24a658c191" integrity sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ== +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-ci@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" @@ -6475,6 +7499,13 @@ is-core-module@^2.11.0: dependencies: has "^1.0.3" +is-date-object@^1.0.1: + 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-decimal@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" @@ -6525,11 +7556,23 @@ is-lambda@^1.0.1: resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== +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-npm@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-5.0.0.tgz#43e8d65cc56e1b67f8d47262cf667099193f45a8" integrity sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA== +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-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -6572,6 +7615,14 @@ is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" +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-regexp@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069" @@ -6582,16 +7633,51 @@ is-root@^2.1.0: resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== +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, is-typed-array@^1.1.12, is-typed-array@^1.1.9: + version "1.1.12" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" + integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== + dependencies: + which-typed-array "^1.1.11" + 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== +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-whitespace-character@^1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" @@ -6619,6 +7705,11 @@ isarray@0.0.1: resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== +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== + isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -6766,7 +7857,7 @@ json-text-sequence@~0.3.0: dependencies: "@sovpro/delimited-stream" "^1.1.0" -json5@^2.1.2, json5@^2.2.2: +json5@^2.1.2, json5@^2.2.2, json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== @@ -6780,6 +7871,39 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +jsonld-signatures@^11.0.0: + version "11.2.1" + resolved "https://registry.yarnpkg.com/jsonld-signatures/-/jsonld-signatures-11.2.1.tgz#e2ff23ac7476fcdb92e5fecd9a1734ceaf904bb0" + integrity sha512-RNaHTEeRrX0jWeidPCwxMq/E/Ze94zFyEZz/v267ObbCHQlXhPO7GtkY6N5PSHQfQhZPXa8NlMBg5LiDF4dNbA== + dependencies: + "@digitalbazaar/security-context" "^1.0.0" + jsonld "^8.0.0" + serialize-error "^8.1.0" + +jsonld@^8.0.0: + version "8.3.2" + resolved "https://registry.yarnpkg.com/jsonld/-/jsonld-8.3.2.tgz#7033f8994aed346b536e9046025f7f1fe9669934" + integrity sha512-MwBbq95szLwt8eVQ1Bcfwmgju/Y5P2GdtlHE2ncyfuYjIdEhluUVyj1eudacf1mOkWIoS9GpDBTECqhmq7EOaA== + dependencies: + "@digitalbazaar/http-client" "^3.4.1" + canonicalize "^1.0.1" + lru-cache "^6.0.0" + rdf-canonize "^3.4.0" + +jsonpath@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/jsonpath/-/jsonpath-1.1.1.tgz#0ca1ed8fb65bb3309248cc9d5466d12d5b0b9901" + integrity sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w== + dependencies: + esprima "1.2.2" + static-eval "2.0.2" + underscore "1.12.1" + +jwt-decode@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/jwt-decode/-/jwt-decode-3.1.2.tgz#3fb319f3675a2df0c2895c8f5e9fa4b67b04ed59" + integrity sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A== + keyv@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" @@ -6807,6 +7931,14 @@ klona@^2.0.6: resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.6.tgz#85bffbf819c03b2f53270412420a4555ef882e22" integrity sha512-dhG34DXATL5hSxJbIexCft8FChFXtmskoZYnoPWjXQuebWYCNkVeV3KkGegCK9CP1oswI/vQibS2GY7Em/sJJA== +ky-universal@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/ky-universal/-/ky-universal-0.11.0.tgz#f5edf857865aaaea416a1968222148ad7d9e4017" + integrity sha512-65KyweaWvk+uKKkCrfAf+xqN2/epw1IJDtlyCPxYffFCMR8u1sp2U65NtWpnozYfZxQ6IUzIlvUcw+hQ82U2Xw== + dependencies: + abort-controller "^3.0.0" + node-fetch "^3.2.10" + ky-universal@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/ky-universal/-/ky-universal-0.8.2.tgz#edc398d54cf495d7d6830aa1ab69559a3cc7f824" @@ -6820,6 +7952,11 @@ ky@^0.25.1: resolved "https://registry.yarnpkg.com/ky/-/ky-0.25.1.tgz#0df0bd872a9cc57e31acd5dbc1443547c881bfbc" integrity sha512-PjpCEWlIU7VpiMVrTwssahkYXX1by6NCT0fhTUX34F3DTinARlgMpriuroolugFPcMgpPWrOW4mTb984Qm1RXA== +ky@^0.33.3: + version "0.33.3" + resolved "https://registry.yarnpkg.com/ky/-/ky-0.33.3.tgz#bf1ad322a3f2c3428c13cfa4b3af95e6c4a2f543" + integrity sha512-CasD9OCEQSFIam2U8efFK81Yeg8vNMTBUqtMOHlrcWQHqUX3HeCl9Dr31u4toV7emlH8Mymk5+9p0lL6mKb/Xw== + latest-version@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" @@ -6850,11 +7987,31 @@ leven@^3.1.0: resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + libphonenumber-js@^1.10.14, libphonenumber-js@^1.9.7: version "1.10.26" resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.26.tgz#3e6604357b3434b0005f85778b44153f4fadeecd" integrity sha512-oB3l4J5gEhMV+ymmlIjWedsbCpsNRqbEZ/E/MpN2QVyinKNra6DcuXywxSk/72M3DZDoH/6kzurOq1erznBMwQ== +libsodium-sumo@^0.7.13: + version "0.7.13" + resolved "https://registry.yarnpkg.com/libsodium-sumo/-/libsodium-sumo-0.7.13.tgz#533b97d2be44b1277e59c1f9f60805978ac5542d" + integrity sha512-zTGdLu4b9zSNLfovImpBCbdAA4xkpkZbMnSQjP8HShyOutnGjRHmSOKlsylh1okao6QhLiz7nG98EGn+04cZjQ== + +libsodium-wrappers-sumo@^0.7.11: + version "0.7.13" + resolved "https://registry.yarnpkg.com/libsodium-wrappers-sumo/-/libsodium-wrappers-sumo-0.7.13.tgz#a33aea845a0bb56db067548f04feba28c730ab8e" + integrity sha512-lz4YdplzDRh6AhnLGF2Dj2IUj94xRN6Bh8T0HLNwzYGwPehQJX6c7iYVrFUPZ3QqxE0bqC+K0IIqqZJYWumwSQ== + dependencies: + libsodium-sumo "^0.7.13" + libsodium-wrappers@^0.7.6: version "0.7.11" resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.11.tgz#53bd20606dffcc54ea2122133c7da38218f575f7" @@ -7350,6 +8507,11 @@ nanoid@^3.3.4: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== +nanoid@^3.3.6: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== + negotiator@0.6.3, negotiator@^0.6.2: version "0.6.3" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" @@ -7385,6 +8547,11 @@ node-cache@5.1.2, node-cache@^5.1.2: dependencies: clone "2.x" +node-domexception@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + node-emoji@^1.10.0: version "1.11.0" resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" @@ -7414,6 +8581,15 @@ node-fetch@3.0.0-beta.9: data-uri-to-buffer "^3.0.1" fetch-blob "^2.1.1" +node-fetch@^3.2.10: + version "3.3.2" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-3.3.2.tgz#d1e889bacdf733b4ff3b2b243eb7a12866a0b78b" + integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA== + dependencies: + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" + node-forge@^1: version "1.3.1" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3" @@ -7440,6 +8616,11 @@ node-gyp@^8.0.0: tar "^6.1.2" which "^2.0.2" +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + node-releases@^2.0.8: version "2.0.10" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.10.tgz#c311ebae3b6a148c89b1813fd7c4d3c024ef537f" @@ -7526,6 +8707,11 @@ object-inspect@^1.10.3, object-inspect@^1.9.0: resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== +object-inspect@^1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== + object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" @@ -7541,6 +8727,16 @@ object.assign@^4.1.0: has-symbols "^1.0.3" object-keys "^1.1.1" +object.assign@^4.1.4: + version "4.1.5" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.5.tgz#3a833f9ab7fdb80fc9e8d2300c803d216d8fdbb0" + integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + has-symbols "^1.0.3" + object-keys "^1.1.1" + obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" @@ -7586,6 +8782,18 @@ opener@^1.5.2: resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== +optionator@^0.8.1: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + p-cancelable@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" @@ -7656,6 +8864,11 @@ package-json@^6.3.0: registry-url "^5.0.0" semver "^6.2.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== + param-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" @@ -8103,6 +9316,11 @@ preact@^10.0.0: resolved "https://registry.yarnpkg.com/preact/-/preact-10.13.2.tgz#2c40c73d57248b57234c4ae6cd9ab9d8186ebc0a" integrity sha512-q44QFLhOhty2Bd0Y46fnYW0gD/cbVM9dUVtNTDKPcdXSMA7jfY+Jpd6rk3GB0lcQss0z5s/6CmVP0Z/hV+g6pw== +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== + prepend-http@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" @@ -8346,6 +9564,13 @@ rc@1.2.8, rc@^1.2.8: minimist "^1.2.0" strip-json-comments "~2.0.1" +rdf-canonize@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/rdf-canonize/-/rdf-canonize-3.4.0.tgz#87f88342b173cc371d812a07de350f0c1aa9f058" + integrity sha512-fUeWjrkOO0t1rg7B2fdyDTvngj+9RlUyL92vOdiB7c0FPguWVsniIMjEtHH+meLBO9rzkUlUzBVXgWrjI8P9LA== + dependencies: + setimmediate "^1.0.5" + react-base16-styling@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/react-base16-styling/-/react-base16-styling-0.6.0.tgz#ef2156d66cf4139695c8a167886cb69ea660792c" @@ -8609,6 +9834,15 @@ regenerator-transform@^0.15.1: dependencies: "@babel/runtime" "^7.8.4" +regexp.prototype.flags@^1.5.0, regexp.prototype.flags@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" + integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + set-function-name "^2.0.0" + regexpu-core@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" @@ -8830,6 +10064,16 @@ rxjs@^7.2.0, rxjs@^7.5.4: dependencies: tslib "^2.1.0" +safe-array-concat@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.1.0.tgz#8d0cae9cb806d6d1c06e08ab13d847293ebe0692" + integrity sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg== + dependencies: + call-bind "^1.0.5" + get-intrinsic "^1.2.2" + has-symbols "^1.0.3" + isarray "^2.0.5" + safe-buffer@5.1.2, 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" @@ -8840,6 +10084,15 @@ safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: 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.2" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.2.tgz#3ba32bdb3ea35f940ee87e5087c60ee786c3f6c5" + integrity sha512-83S9w6eFq12BBIJYvjMux6/dkirb8+4zJRA9cxNBVb7Wq5fJBW+Xze48WqR8pxua7bDuAaaAxtVVd4Idjp1dBQ== + dependencies: + call-bind "^1.0.5" + get-intrinsic "^1.2.2" + is-regex "^1.1.4" + "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -8927,7 +10180,7 @@ semver@^5.4.1: resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== @@ -8958,7 +10211,7 @@ send@0.18.0: range-parser "~1.2.1" statuses "2.0.1" -serialize-error@^8.0.1: +serialize-error@^8.0.1, serialize-error@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-8.1.0.tgz#3a069970c712f78634942ddd50fbbc0eaebe2f67" integrity sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ== @@ -9014,6 +10267,26 @@ set-blocking@^2.0.0: resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== +set-function-length@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.2.0.tgz#2f81dc6c16c7059bda5ab7c82c11f03a515ed8e1" + integrity sha512-4DBHDoyHlM1IRPGYcoxexgh67y4ueR53FKV1yyxwFMY7aCqcN/38M1+SwZ/qJQ8iLv7+ck385ot4CcisOAPT9w== + dependencies: + define-data-property "^1.1.1" + function-bind "^1.1.2" + get-intrinsic "^1.2.2" + gopd "^1.0.1" + has-property-descriptors "^1.0.1" + +set-function-name@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" + integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== + dependencies: + define-data-property "^1.0.1" + functions-have-names "^1.2.3" + has-property-descriptors "^1.0.0" + setimmediate@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" @@ -9169,7 +10442,7 @@ source-map@^0.5.0: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== -source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0: +source-map@^0.6.0, source-map@^0.6.1, 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== @@ -9229,6 +10502,13 @@ state-toggle@^1.0.0: resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== +static-eval@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-2.0.2.tgz#2d1759306b1befa688938454c546b7871f806a42" + integrity sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg== + dependencies: + escodegen "^1.8.1" + statuses@2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" @@ -9272,6 +10552,48 @@ string-width@^5.0.1: emoji-regex "^9.2.2" strip-ansi "^7.0.1" +string.prototype.matchall@^4.0.8: + version "4.0.10" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.10.tgz#a1553eb532221d4180c51581d6072cd65d1ee100" + integrity sha512-rGXbGmOEosIQi6Qva94HUjgPs9vKW+dkG7Y8Q5O2OYkWL6wFaTRZO8zM4mhP94uX55wgyrXzfS2aGtGzUL7EJQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + get-intrinsic "^1.2.1" + has-symbols "^1.0.3" + internal-slot "^1.0.5" + regexp.prototype.flags "^1.5.0" + set-function-name "^2.0.0" + side-channel "^1.0.4" + +string.prototype.trim@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" + integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string.prototype.trimend@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" + integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +string.prototype.trimstart@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" + integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" @@ -9549,6 +10871,20 @@ tsyringe@^4.7.0: dependencies: tslib "^1.9.3" +tsyringe@^4.8.0: + version "4.8.0" + resolved "https://registry.yarnpkg.com/tsyringe/-/tsyringe-4.8.0.tgz#d599651b36793ba872870fee4f845bd484a5cac1" + integrity sha512-YB1FG+axdxADa3ncEtRnQCFq/M0lALGLxSZeVNbTU8NqhOVc51nnv2CISTcvc1kyv6EGPtXVr0v6lWeDxiijOA== + dependencies: + tslib "^1.9.3" + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg== + dependencies: + prelude-ls "~1.1.2" + type-fest@^0.20.2: version "0.20.2" resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" @@ -9577,6 +10913,45 @@ type@^2.7.2: resolved "https://registry.yarnpkg.com/type/-/type-2.7.2.tgz#2376a15a3a28b1efa0f5350dcf72d24df6ef98d0" integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== +typed-array-buffer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" + integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== + dependencies: + call-bind "^1.0.2" + get-intrinsic "^1.2.1" + is-typed-array "^1.1.10" + +typed-array-byte-length@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-byte-offset@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" + integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.2" + for-each "^0.3.3" + has-proto "^1.0.1" + is-typed-array "^1.1.10" + +typed-array-length@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== + dependencies: + call-bind "^1.0.2" + for-each "^0.3.3" + is-typed-array "^1.1.9" + typedarray-to-buffer@^3.1.5: version "3.1.5" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" @@ -9601,6 +10976,28 @@ uint8arrays@^3.0.0: dependencies: multiformats "^9.4.2" +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" + +underscore@1.12.1: + version "1.12.1" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e" + integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== + +undici@^5.21.2: + version "5.28.2" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.2.tgz#fea200eac65fc7ecaff80a023d1a0543423b4c91" + integrity sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w== + dependencies: + "@fastify/busboy" "^2.0.0" + unherit@^1.0.4: version "1.1.3" resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" @@ -9753,6 +11150,14 @@ update-browserslist-db@^1.0.10: escalade "^3.1.1" picocolors "^1.0.0" +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + update-notifier@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-5.1.0.tgz#4ab0d7c7f36a231dd7316cf7729313f0214d9ad9" @@ -9935,6 +11340,11 @@ web-namespaces@^1.0.0: resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== +web-streams-polyfill@^3.0.3: + version "3.3.2" + resolved "https://registry.yarnpkg.com/web-streams-polyfill/-/web-streams-polyfill-3.3.2.tgz#32e26522e05128203a7de59519be3c648004343b" + integrity sha512-3pRGuxRF5gpuZc0W+EpwQRmCD7gRqcDOMt688KmdlDAgAyaB1XlN0zq2njfDNm44XVdIouE7pZ6GzbdyH47uIQ== + web-worker@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/web-worker/-/web-worker-1.2.0.tgz#5d85a04a7fbc1e7db58f66595d7a3ac7c9c180da" @@ -10099,6 +11509,28 @@ whatwg-url@^5.0.0: tr46 "~0.0.3" webidl-conversions "^3.0.0" +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-typed-array@^1.1.11, which-typed-array@^1.1.13: + version "1.1.13" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" + integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== + dependencies: + available-typed-arrays "^1.0.5" + call-bind "^1.0.4" + for-each "^0.3.3" + gopd "^1.0.1" + has-tostringtag "^1.0.0" + which@^1.3.1: version "1.3.1" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" @@ -10139,6 +11571,11 @@ wildcard@^2.0.0: resolved "https://registry.yarnpkg.com/wildcard/-/wildcard-2.0.0.tgz#a77d20e5200c6faaac979e4b3aadc7b3dd7f8fec" integrity sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw== +word-wrap@~1.2.3: + version "1.2.5" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" + integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== + wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" From 6500a38aa1f72302adad76317c7fd4cf0cea5b53 Mon Sep 17 00:00:00 2001 From: Wade Barnes Date: Thu, 15 Feb 2024 08:25:08 -0800 Subject: [PATCH 08/12] Add Dependabot configuration (#150) --- .github/dependabot.yml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..93ef39e5 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,14 @@ +# For details on how this file works refer to: +# - https://docs.github.com/en/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file +version: 2 +updates: + # Maintain dependencies for GitHub Actions + # - Check for updates once a week + # - Group all updates into a single PR + - package-ecosystem: 'github-actions' + directory: '/' + schedule: + interval: 'weekly' + groups: + all-actions: + patterns: ['*'] From df055f53ebffe7a531120f6f52aee4e1a5ca5c52 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Feb 2024 08:33:42 +0700 Subject: [PATCH 09/12] build(deps): Bump the all-actions group with 2 updates (#151) --- .github/workflows/continuous-integration.yml | 4 ++-- .github/workflows/deploy.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 13eda52f..f970c287 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -10,8 +10,8 @@ jobs: name: Check format, types and build runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: node-version: 18.x cache: yarn diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index a08c2011..b140b634 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -12,8 +12,8 @@ jobs: name: Deploy to GitHub Pages runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v3 + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 with: node-version: 18.x cache: yarn From 0481dbf48ee9513a16d97bf51aafa65b807ddec6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Feb 2024 20:41:23 +0100 Subject: [PATCH 10/12] build(deps): Bump ip from 2.0.0 to 2.0.1 (#155) Bumps [ip](https://github.com/indutny/node-ip) from 2.0.0 to 2.0.1. - [Commits](https://github.com/indutny/node-ip/compare/v2.0.0...v2.0.1) --- updated-dependencies: - dependency-name: ip dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 7e1be23a..387ab1f7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7412,9 +7412,9 @@ invariant@^2.2.4: loose-envify "^1.0.0" 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== + version "2.0.1" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.1.tgz#e8f3595d33a3ea66490204234b77636965307105" + integrity sha512-lJUL9imLTNi1ZfXT+DU6rBBdbiKGBuay9B6xGSPVjUeQwaH1RIGqef8RZkUtHioLmSNpPR5M4HVKJGm1j8FWVQ== ipaddr.js@1.9.1: version "1.9.1" From a939a2aab59682a30acbcee10c92cd4e2ead22d3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Feb 2024 19:44:39 +0000 Subject: [PATCH 11/12] build(deps): Bump undici from 5.28.2 to 5.28.3 (#152) Bumps [undici](https://github.com/nodejs/undici) from 5.28.2 to 5.28.3. - [Release notes](https://github.com/nodejs/undici/releases) - [Commits](https://github.com/nodejs/undici/compare/v5.28.2...v5.28.3) --- updated-dependencies: - dependency-name: undici dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 387ab1f7..6de5babb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10992,9 +10992,9 @@ underscore@1.12.1: integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== undici@^5.21.2: - version "5.28.2" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.2.tgz#fea200eac65fc7ecaff80a023d1a0543423b4c91" - integrity sha512-wh1pHJHnUeQV5Xa8/kyQhO7WFa8M34l026L5P/+2TYiakvGy5Rdc8jWZVyG7ieht/0WgJLEd3kcU5gKx+6GC8w== + version "5.28.3" + resolved "https://registry.yarnpkg.com/undici/-/undici-5.28.3.tgz#a731e0eff2c3fcfd41c1169a869062be222d1e5b" + integrity sha512-3ItfzbrhDlINjaP0duwnNsKpDQk3acHI3gVJ1z4fmwMK31k5G9OVIAMLSIaP6w4FaGkaAkN6zaQO9LUvZ1t7VA== dependencies: "@fastify/busboy" "^2.0.0" From dddb0ee14c4317464c8a8296dd7e559a83127865 Mon Sep 17 00:00:00 2001 From: Krishna <74084119+GHkrishna@users.noreply.github.com> Date: Thu, 22 Feb 2024 01:17:38 +0530 Subject: [PATCH 12/12] Fix: broken links to getting-started and Credo REST API (#154) Signed-off-by: Krishna <74084119+GHkrishna@users.noreply.github.com> Co-authored-by: Berend Sliedrecht <61358536+berendsliedrecht@users.noreply.github.com> --- versioned_docs/version-0.3/concepts/agents.md | 9 ++++----- versioned_docs/version-0.4/concepts/agents.md | 9 ++++----- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/versioned_docs/version-0.3/concepts/agents.md b/versioned_docs/version-0.3/concepts/agents.md index 5f6c9b4d..4a28d79a 100644 --- a/versioned_docs/version-0.3/concepts/agents.md +++ b/versioned_docs/version-0.3/concepts/agents.md @@ -1,9 +1,8 @@ # Agents When working with any Aries implementation, you will interact with an Aries -agent. This will be either directly or via a REST API, like [the Aries -framework REST -API](https://github.com/hyperledger/aries-framework-javascript-ext/tree/main/packages/rest). +agent. This will be either directly or via a REST API, like [the Credo REST +API](https://github.com/openwallet-foundation/credo-ts-ext/tree/main/packages/rest). ### Characteristics @@ -57,5 +56,5 @@ devices these can be used as a more central point for your data. - [Hyperledger Aries RFC - 004: Agents](https://github.com/hyperledger/aries-rfcs/blob/main/concepts/0004-agents/README.md) -- [Aries Framework JavaScript - Getting - Started](https://github.com/hyperledger/aries-framework-javascript/tree/main/docs/getting-started) +- [Credo - Getting + Started](https://github.com/openwallet-foundation/credo-ts-docs/tree/main/versioned_docs/version-0.3/getting-started) diff --git a/versioned_docs/version-0.4/concepts/agents.md b/versioned_docs/version-0.4/concepts/agents.md index 5f6c9b4d..e2676a81 100644 --- a/versioned_docs/version-0.4/concepts/agents.md +++ b/versioned_docs/version-0.4/concepts/agents.md @@ -1,9 +1,8 @@ # Agents When working with any Aries implementation, you will interact with an Aries -agent. This will be either directly or via a REST API, like [the Aries -framework REST -API](https://github.com/hyperledger/aries-framework-javascript-ext/tree/main/packages/rest). +agent. This will be either directly or via a REST API, like [the Credo REST +API](https://github.com/openwallet-foundation/credo-ts-ext/tree/main/packages/rest). ### Characteristics @@ -57,5 +56,5 @@ devices these can be used as a more central point for your data. - [Hyperledger Aries RFC - 004: Agents](https://github.com/hyperledger/aries-rfcs/blob/main/concepts/0004-agents/README.md) -- [Aries Framework JavaScript - Getting - Started](https://github.com/hyperledger/aries-framework-javascript/tree/main/docs/getting-started) +- [Credo - Getting + Started](https://github.com/openwallet-foundation/credo-ts-docs/tree/main/versioned_docs/version-0.4/getting-started)