From 1771a8b488362ba1db641b22ad3475f3fd04d3ee Mon Sep 17 00:00:00 2001 From: Jordan Leigh Date: Mon, 8 Jan 2024 17:04:54 -0800 Subject: [PATCH 1/7] initial commit, framing out javascript sdk quickstart --- docs/getting-started/Examples.md | 6 +- docs/getting-started/Organizations.md | 2 +- .../{Quickstart.md => Quickstart-CLI.md} | 8 +- docs/getting-started/Quickstart-Javascript.md | 227 ++++++++ docs/getting-started/Sub-Organizations.md | 8 +- docs/getting-started/Wallets.md | 4 +- docs/getting-started/email-auth.md | 2 +- docs/getting-started/email-recovery.md | 4 +- docs/getting-started/resource-limits.md | 2 +- docusaurus.config.js | 4 +- yarn.lock | 495 +++++++----------- 11 files changed, 435 insertions(+), 327 deletions(-) rename docs/getting-started/{Quickstart.md => Quickstart-CLI.md} (97%) create mode 100644 docs/getting-started/Quickstart-Javascript.md diff --git a/docs/getting-started/Examples.md b/docs/getting-started/Examples.md index 6e9eaeb..dfbf7a3 100644 --- a/docs/getting-started/Examples.md +++ b/docs/getting-started/Examples.md @@ -1,5 +1,5 @@ --- -sidebar_position: 3 +sidebar_position: 4 description: Check out some of our example apps and use cases slug: /getting-started/examples --- @@ -23,7 +23,7 @@ That said, we have built out several example services and applications to help i | [`rebalancer`](https://github.com/tkhq/sdk/tree/main/examples/rebalancer/) | A demo application which showcases an example of how to use Turnkey for managing multiple types of keys & users | | [`sweeper`](https://github.com/tkhq/sdk/tree/main/examples/sweeper/) | Sweep funds from one address to a different address | | [`trading-runner`](https://github.com/tkhq/sdk/tree/main/examples/trading-runner/) | A sample application demonstrating a trading operation, using various private keys, users, and policies, powered by Uniswap | -| [`wallet-export`](https://github.com/tkhq/sdk/tree/main/examples/wallet-export/) | A NextJS app that demonstrates how to use `@turnkey/iframe-stamper` to export a wallet as a mnemonic | +| [`wallet-export`](https://github.com/tkhq/sdk/tree/main/examples/wallet-export/) | A NextJS app that demonstrates how to use `@turnkey/iframe-stamper` to export a wallet as a mnemonic | | [`with-ethers`](https://github.com/tkhq/sdk/tree/main/examples/with-ethers/) | Create a new Ethereum address, then sign and broadcast a transaction using the Ethers signer with Infura | | [`with-viem`](https://github.com/tkhq/sdk/tree/main/examples/with-viem/) | Sign and broadcast a transaction using the Turnkey Custom Account and Infura | | [`with-cosmjs`](https://github.com/tkhq/sdk/tree/main/examples/with-cosmjs/) | Create a new Cosmos address, then sign and broadcast a transaction on Celestia testnet using the CosmJS signer | @@ -103,4 +103,4 @@ A simple example using Turnkey and Figment to easily automate ETH staking. />

-See https://docs.figment.io/recipes/stake-eth-from-turnkey for the code. \ No newline at end of file +See https://docs.figment.io/recipes/stake-eth-from-turnkey for the code. diff --git a/docs/getting-started/Organizations.md b/docs/getting-started/Organizations.md index ec93d2a..a5ab1ed 100644 --- a/docs/getting-started/Organizations.md +++ b/docs/getting-started/Organizations.md @@ -1,5 +1,5 @@ --- -sidebar_position: 4 +sidebar_position: 5 description: Learn about Organizations on Turnkey slug: /getting-started/organizations --- diff --git a/docs/getting-started/Quickstart.md b/docs/getting-started/Quickstart-CLI.md similarity index 97% rename from docs/getting-started/Quickstart.md rename to docs/getting-started/Quickstart-CLI.md index 90fe3f3..efccdb3 100644 --- a/docs/getting-started/Quickstart.md +++ b/docs/getting-started/Quickstart-CLI.md @@ -1,10 +1,10 @@ --- -id: quickstart -sidebar_position: 2 +id: quickstart-cli +sidebar_position: 3 description: Onboard and sign your first Ethereum transaction -slug: /getting-started/quickstart +slug: /getting-started/quickstart-cli --- -# Quickstart +# Quickstart CLI This quickstart will guide you through Turnkey’s onboarding, adding an API key, creating a wallet, and signing your first Ethereum transaction. diff --git a/docs/getting-started/Quickstart-Javascript.md b/docs/getting-started/Quickstart-Javascript.md new file mode 100644 index 0000000..125d15d --- /dev/null +++ b/docs/getting-started/Quickstart-Javascript.md @@ -0,0 +1,227 @@ +--- +id: quickstart-javascript +sidebar_position: 2 +description: Onboard and sign your first Ethereum transaction +slug: /getting-started/quickstart +--- +# Quickstart + +This quickstart will guide you through Turnkey’s onboarding, adding an API key, creating a wallet, and signing your first Ethereum transaction. + +## Create your Turnkey Organization + +- Visit [app.turnkey.com/dashboard/auth/initial](https://app.turnkey.com/dashboard/auth/initial) and enter your email address +- Confirm your email by clicking on the link inside of the confirmation email +- Follow the prompts to add your first authenticator and create your organization + +## Find your Organization ID + +All API requests require an organization ID. Yours can be located in the user dropdown menu at the top right corner of the dashboard. + +Find organization ID + +For convenience, it's worth setting this as a constant in your app: + +```javascript +const TURNKEY_ORGANIZATION_ID="" +``` + +## Require the Turnkey Libraries + +There are two libraries that you need, the Turnkey HTTP library, for making API requests to the Turnkey API. And a Turnkey "Stamper" library. The stamper library is responsible for signing the operation into Turnkey, and comes in 3 different flavors: + 1. `api-key-stamper` which signs requests with your Turnkey API key + 2. `webauthn-stamper` which signs requests with a end-user's passkey + 3. `iframe-stamper` which is used for ... + +For this example we're going to use the API Key Stamper to make requests to Turnkey from the context of the dapp. +**Any code using the Turnkey API key should only be run server-side** + +```shell + yarn add @turnkey/http + yarn add @turnkey/api-key-stamper +``` + +## Initialize the Turnkey Client +```javascript +import { ApiKeyStamper } from '@turnkey/api-key-stamper'; +import { TurnkeyClient } from '@turnkey/http'; + +const TURNKEY_ORGANIZATION_ID = ""; + +const stamper = new ApiKeyStamper({ + apiPublicKey: "", + apiPrivateKey: "" +}) + +const turnkeyClient = new TurnkeyClient( + { + baseUrl: 'https://api.turnkey.com' + }, + stamper +); +``` + +## Create a Wallet + +```javascript +await turnkeyClient.createWallet({ + organizationId: TURNKEY_ORGANIZATION_ID, + type: 'ACTIVITY_TYPE_CREATE_WALLET', + timestampMs: String(Date.now()), + parameters: { + walletName: "Test Wallet 1", + accounts: [ + { + path: "m/44'/0'/0'/0/0", + pathFormat: "PATH_FORMAT_BIP32", + curve: "CURVE_SECP256K1", + addressFormat: "ADDRESS_FORMAT_ETHEREUM" + } + ] + } +}) +``` + +## Create an Ethereum Account + +```javascript +await turnkeyClient.createWallet({ + organizationId: TURNKEY_ORGANIZATION_ID, + type: 'ACTIVITY_TYPE_CREATE_WALLET', + timestampMs: String(Date.now()), + parameters: { + walletName: "Test Wallet 1", + accounts: [ + { + path: "m/44'/0'/0'/0/0", + pathFormat: "PATH_FORMAT_BIP32", + curve: "CURVE_SECP256K1", + addressFormat: "ADDRESS_FORMAT_ETHEREUM" + } + ] + } +}) +``` + +## Sign a Transaction + +```javascript +await turnkeyClient.createWallet({ + organizationId: TURNKEY_ORGANIZATION_ID, + type: 'ACTIVITY_TYPE_CREATE_WALLET', + timestampMs: String(Date.now()), + parameters: { + walletName: "Test Wallet 1", + accounts: [ + { + path: "m/44'/0'/0'/0/0", + pathFormat: "PATH_FORMAT_BIP32", + curve: "CURVE_SECP256K1", + addressFormat: "ADDRESS_FORMAT_ETHEREUM" + } + ] + } +}) +``` + +## Using the Webauthn Stamper + +Now we'll perform user actions using the client-side webauthn stamper. You can learn more about the specifics of passkeys in the [Passkey guide](../passkeys/introduction) + +```shell +yarn add @turnkey/webauthn-stamper +``` + +```javascript +import { WebauthnStamper } from "@turnkey/webauthn-stamper"; +import { TurnkeyClient } from '@turnkey/http'; + +const TURNKEY_ORGANIZATION_ID = ""; + +new WebauthnStamper({ + rpId: process.env.NEXT_PUBLIC_RPID, +}) + +const turnkeyClient = new TurnkeyClient( + { + baseUrl: 'https://api.turnkey.com' + }, + stamper +); +``` + +## Using the IFrame Stamper +```shell +yarn add @turnkey/iframe-stamper +``` + +```javascript +import { IframeStamper } from "@turnkey/iframe-stamper"; +import { Dispatch, SetStateAction, useEffect, useState } from "react"; + +interface ExportProps { + iframeUrl: string; + iframeDisplay: string; + setIframeStamper: Dispatch>; +} + +const TurnkeyIframeContainerId = "turnkey-export-iframe-container-id"; +const TurnkeyIframeElementId = "turnkey-export-iframe-element-id"; + +export function Export(props: ExportProps) { + const [iframeStamper, setIframeStamper] = useState( + null + ); + const iframeUrl = props.iframeUrl; + const setParentIframeStamper = props.setIframeStamper; + + useEffect(() => { + if (!iframeStamper) { + const iframeStamper = new IframeStamper({ + iframeUrl: iframeUrl, + iframeContainerId: TurnkeyIframeContainerId, + iframeElementId: TurnkeyIframeElementId, + }); + + iframeStamper.init().then(() => { + setIframeStamper(iframeStamper); + setParentIframeStamper(iframeStamper); + }); + } + + return () => { + if (iframeStamper) { + iframeStamper.clear(); + setIframeStamper(null); + setParentIframeStamper(null); + } + }; + }, [iframeUrl, iframeStamper, setIframeStamper, setParentIframeStamper]); + + const iframeCss = ` + iframe { + width: 100%; + height: 340px; + } + `; + + return ( +
+ +
+ ); +} +``` + +## Next Steps +- Check out our [examples](/getting-started/examples) to see what can be built +- Learn more about [Organizations](/getting-started/organizations) and [Wallets](/getting-started/wallets) +- See our [API design](/api-introduction) or dive into our [API reference](/api) diff --git a/docs/getting-started/Sub-Organizations.md b/docs/getting-started/Sub-Organizations.md index 7e47d2c..dee5268 100644 --- a/docs/getting-started/Sub-Organizations.md +++ b/docs/getting-started/Sub-Organizations.md @@ -1,5 +1,5 @@ --- -sidebar_position: 4 +sidebar_position: 5 description: Learn about sub-orgs and how you can use them slug: /getting-started/sub-organizations --- @@ -9,15 +9,15 @@ Using Turnkey’s flexible infrastructure, you can programmatically create and m We envision sub-organizations being very useful to model your End-Users if you're a business using Turnkey for key management. Let's explore how. -## Creating Sub-Organizations +## Creating Sub-Organizations -Creating a new sub-organization is an activity performed by the parent organization. The activity itself takes the following attributes as inputs: +Creating a new sub-organization is an activity performed by the parent organization. The activity itself takes the following attributes as inputs: - organization name - a list of root users - a root quorum threshold - [optional] a wallet (note: in versions prior to V4, this was a private key) -Root users can be programmatic or human, with one or many credentials attached. +Root users can be programmatic or human, with one or many credentials attached. ## Using Sub-Organizations diff --git a/docs/getting-started/Wallets.md b/docs/getting-started/Wallets.md index 46081c4..6a0daf6 100644 --- a/docs/getting-started/Wallets.md +++ b/docs/getting-started/Wallets.md @@ -1,5 +1,5 @@ --- -sidebar_position: 6 +sidebar_position: 7 description: Learn about Wallets on Turnkey slug: /getting-started/wallets --- @@ -61,4 +61,4 @@ Turnkey also supports raw private keys, but we recommend using Wallets since the ## Export keys -Exporting on Turnkey enables you or your end users to export a copy of a Wallet or Private Key from our system at any time. While most Turnkey users opt to keep Wallets within Turnkey's secure infrastructure, the export functionality means you are never locked into Turnkey, and gives you the freedom to design your own backup processes as you see fit. Check out our [Export Wallet guide](../integration-guides/export-wallets.md) to allow your users to securely export their wallets. +Exporting on Turnkey enables you or your end users to export a copy of a Wallet or Private Key from our system at any time. While most Turnkey users opt to keep Wallets within Turnkey's secure infrastructure, the export functionality means you are never locked into Turnkey, and gives you the freedom to design your own backup processes as you see fit. Check out our [Export Wallet guide](../integration-guides/export-wallets.md) to allow your users to securely export their wallets. diff --git a/docs/getting-started/email-auth.md b/docs/getting-started/email-auth.md index 0d5fe40..90677ed 100644 --- a/docs/getting-started/email-auth.md +++ b/docs/getting-started/email-auth.md @@ -1,5 +1,5 @@ --- -sidebar_position: 8 +sidebar_position: 9 description: Learn about Email Auth on Turnkey slug: /getting-started/email-auth --- diff --git a/docs/getting-started/email-recovery.md b/docs/getting-started/email-recovery.md index 2ea0d10..a40bb54 100644 --- a/docs/getting-started/email-recovery.md +++ b/docs/getting-started/email-recovery.md @@ -1,5 +1,5 @@ --- -sidebar_position: 7 +sidebar_position: 8 description: Learn about Email Recovery on Turnkey slug: /getting-started/email-recovery --- @@ -34,7 +34,7 @@ Once a user receives a recovery email, recovery credential _decryption_ needs to ## Authorization -Authorization for email recovery is based on our usual activity authorization: our [policy engine](../policy-management/Policy-overview.md) controls who can and cannot execute recovery-related activities. +Authorization for email recovery is based on our usual activity authorization: our [policy engine](../policy-management/Policy-overview.md) controls who can and cannot execute recovery-related activities. * `ACTIVITY_TYPE_INIT_USER_EMAIL_RECOVERY` can be performed by the root user or by any user in an organization if authorized by policy, but **only if the feature is enabled**. The activity can target **any user** in this organization **or any sub-organization user**. The activity will fail if a parent user tries to initiate recovery for a sub-organization which has [opted out of email recovery](#opting-out-of-email-recovery). * `ACTIVITY_TYPE_RECOVER_USER` should be signed by the recovery credential sent via email. Even if not explicitly allowed by policy, a user is always able to add credentials to their own user. This includes adding a new authenticator when authenticated with a recovery credential. In other words, no special policy is needed to make this work: users are able to recover out-of-the-box. diff --git a/docs/getting-started/resource-limits.md b/docs/getting-started/resource-limits.md index 981df59..5aa16c0 100644 --- a/docs/getting-started/resource-limits.md +++ b/docs/getting-started/resource-limits.md @@ -1,5 +1,5 @@ --- -sidebar_position: 9 +sidebar_position: 10 description: Organization resource limits slug: /getting-started/resource-limits --- diff --git a/docusaurus.config.js b/docusaurus.config.js index b0d8657..25aa0d0 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -144,12 +144,12 @@ const config = { darkTheme: darkCodeTheme, }, algolia: { - appId: '89KSB43UFT', + appId: '89KSB43UFT', // Public API key: it is safe to commit it apiKey: 'a0740f141135937727389d897f51fb56', indexName: 'turnkey', contextualSearch: true, - searchPagePath: false, + searchPagePath: false, }, }), }; diff --git a/yarn.lock b/yarn.lock index 841c725..0292a04 100644 --- a/yarn.lock +++ b/yarn.lock @@ -84,7 +84,7 @@ "@algolia/requester-common" "4.18.0" "@algolia/transporter" "4.18.0" -"@algolia/client-search@>= 4.9.1 < 6", "@algolia/client-search@4.18.0": +"@algolia/client-search@4.18.0": version "4.18.0" resolved "https://registry.npmjs.org/@algolia/client-search/-/client-search-4.18.0.tgz" integrity sha512-F9xzQXTjm6UuZtnsLIew6KSraXQ0AzS/Ee+OD+mQbtcA/K1sg89tqb8TkwjtiYZ0oij13u3EapB3gPZwm+1Y6g== @@ -158,27 +158,6 @@ resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.22.9.tgz" integrity sha512-5UamI7xkUcJ3i9qVDS+KFDEK8/7oJ55/sJMB1Ge7IEapr7KfdfV/HErR+koZwOfd+SgtFKOKRhRakdg++DcJpQ== -"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.11.6", "@babel/core@^7.12.0", "@babel/core@^7.13.0", "@babel/core@^7.18.6", "@babel/core@^7.19.6", "@babel/core@^7.4.0-0": - version "7.22.9" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.22.9.tgz" - integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.22.5" - "@babel/generator" "^7.22.9" - "@babel/helper-compilation-targets" "^7.22.9" - "@babel/helper-module-transforms" "^7.22.9" - "@babel/helpers" "^7.22.6" - "@babel/parser" "^7.22.7" - "@babel/template" "^7.22.5" - "@babel/traverse" "^7.22.8" - "@babel/types" "^7.22.5" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.2.2" - semver "^6.3.1" - "@babel/core@7.12.9": version "7.12.9" resolved "https://registry.npmjs.org/@babel/core/-/core-7.12.9.tgz" @@ -201,6 +180,27 @@ semver "^5.4.1" source-map "^0.5.0" +"@babel/core@^7.18.6", "@babel/core@^7.19.6": + version "7.22.9" + resolved "https://registry.npmjs.org/@babel/core/-/core-7.22.9.tgz" + integrity sha512-G2EgeufBcYw27U4hhoIwFcgc1XU7TlXJ3mv04oOv1WCuo900U/anZSPzEqNjwdjgffkk2Gs0AN0dW1CKVLcG7w== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.22.5" + "@babel/generator" "^7.22.9" + "@babel/helper-compilation-targets" "^7.22.9" + "@babel/helper-module-transforms" "^7.22.9" + "@babel/helpers" "^7.22.6" + "@babel/parser" "^7.22.7" + "@babel/template" "^7.22.5" + "@babel/traverse" "^7.22.8" + "@babel/types" "^7.22.5" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.2" + semver "^6.3.1" + "@babel/generator@^7.12.5", "@babel/generator@^7.18.7", "@babel/generator@^7.22.7", "@babel/generator@^7.22.9": version "7.22.9" resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.22.9.tgz" @@ -323,16 +323,16 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz" - integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== - "@babel/helper-plugin-utils@7.10.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz" integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz" + integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== + "@babel/helper-remap-async-to-generator@^7.22.5": version "7.22.9" resolved "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.22.9.tgz" @@ -520,13 +520,6 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz" - integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - "@babel/plugin-syntax-jsx@7.12.1": version "7.12.1" resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.1.tgz" @@ -534,6 +527,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" +"@babel/plugin-syntax-jsx@^7.22.5": + version "7.22.5" + resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.22.5.tgz" + integrity sha512-gvyP4hZrgrs/wWMaocvxZ44Hw0b3W8Pe+cMxc8V1ULQ07oh8VNbIRaoD1LRZVTvD+0nieDKjfgKg89sD7rrKrg== + dependencies: + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" @@ -555,7 +555,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3", "@babel/plugin-syntax-object-rest-spread@7.8.3": +"@babel/plugin-syntax-object-rest-spread@7.8.3", "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== @@ -1520,7 +1520,7 @@ "@docusaurus/theme-search-algolia" "2.4.1" "@docusaurus/types" "2.4.1" -"@docusaurus/react-loadable@5.5.2": +"@docusaurus/react-loadable@5.5.2", "react-loadable@npm:@docusaurus/react-loadable@5.5.2": version "5.5.2" resolved "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz" integrity sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ== @@ -1559,7 +1559,7 @@ tslib "^2.4.0" utility-types "^3.10.0" -"@docusaurus/theme-common@^2.0.0", "@docusaurus/theme-common@2.4.1": +"@docusaurus/theme-common@2.4.1": version "2.4.1" resolved "https://registry.npmjs.org/@docusaurus/theme-common/-/theme-common-2.4.1.tgz" integrity sha512-G7Zau1W5rQTaFFB3x3soQoZpkgMbl/SYNG8PfMFIjKa3M3q8n0m/GRf5/H/e5BqOvt8c+ZWIXGCiz+kUCSHovA== @@ -1611,7 +1611,7 @@ fs-extra "^10.1.0" tslib "^2.4.0" -"@docusaurus/types@*", "@docusaurus/types@2.4.1": +"@docusaurus/types@2.4.1": version "2.4.1" resolved "https://registry.npmjs.org/@docusaurus/types/-/types-2.4.1.tgz" integrity sha512-0R+cbhpMkhbRXX138UOc/2XZFF8hiZa6ooZAEEJFp5scytzCw4tC1gChMFXrpa3d2tYE6AX8IrOEpSonLmfQuQ== @@ -1643,7 +1643,7 @@ js-yaml "^4.1.0" tslib "^2.4.0" -"@docusaurus/utils@^2.0.0", "@docusaurus/utils@2.4.1": +"@docusaurus/utils@2.4.1": version "2.4.1" resolved "https://registry.npmjs.org/@docusaurus/utils/-/utils-2.4.1.tgz" integrity sha512-1lvEZdAQhKNht9aPXPoh69eeKnV0/62ROhQeFKKxmzd0zkcuE/Oc5Gpnt00y/f5bIsmOsYMY7Pqfm/5rteT5GA== @@ -1750,16 +1750,16 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@jridgewell/sourcemap-codec@^1.4.10": - version "1.4.15" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== - "@jridgewell/sourcemap-codec@1.4.14": version "1.4.14" resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.15" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": version "0.3.18" resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.18.tgz" @@ -1821,7 +1821,7 @@ "@nodelib/fs.stat" "2.0.5" run-parallel "^1.1.9" -"@nodelib/fs.stat@^2.0.2", "@nodelib/fs.stat@2.0.5": +"@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== @@ -1849,7 +1849,7 @@ require-from-string "^2.0.2" uri-js "^4.2.2" -"@redocly/openapi-core@^1.0.0-beta.104", "@redocly/openapi-core@1.0.0-beta.123": +"@redocly/openapi-core@1.0.0-beta.123", "@redocly/openapi-core@^1.0.0-beta.104": version "1.0.0-beta.123" resolved "https://registry.npmjs.org/@redocly/openapi-core/-/openapi-core-1.0.0-beta.123.tgz" integrity sha512-W6MbUWpb/VaV+Kf0c3jmMIJw3WwwF7iK5nAfcOS+ZwrlbxtIl37+1hEydFlJ209vCR9HL12PaMwdh2Vpihj6Jw== @@ -1955,7 +1955,7 @@ "@svgr/babel-plugin-transform-react-native-svg" "^6.5.1" "@svgr/babel-plugin-transform-svg-component" "^6.5.1" -"@svgr/core@*", "@svgr/core@^6.0.0", "@svgr/core@^6.5.1": +"@svgr/core@^6.5.1": version "6.5.1" resolved "https://registry.npmjs.org/@svgr/core/-/core-6.5.1.tgz" integrity sha512-/xdLSWxK5QkqG524ONSjvg3V/FkNyCv538OIBdQqPNaAta3AsXj/Bd2FbvR87yMbXO2hFSWiAe/Q6IkVPDw+mw== @@ -2226,7 +2226,7 @@ "@types/history" "^4.7.11" "@types/react" "*" -"@types/react@*", "@types/react@>= 16.8.0 < 19.0.0": +"@types/react@*": version "18.2.14" resolved "https://registry.npmjs.org/@types/react/-/react-18.2.14.tgz" integrity sha512-A0zjq+QN/O0Kpe30hA1GidzyFjatVvrpIvWLxD+xv67Vt91TWWgco9IvrJBkeyHm1trGaFS/FSGqPlhyeZRm0g== @@ -2307,7 +2307,7 @@ dependencies: "@types/yargs-parser" "*" -"@webassemblyjs/ast@^1.11.5", "@webassemblyjs/ast@1.11.6": +"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": version "1.11.6" resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz" integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== @@ -2408,7 +2408,7 @@ "@webassemblyjs/wasm-gen" "1.11.6" "@webassemblyjs/wasm-parser" "1.11.6" -"@webassemblyjs/wasm-parser@^1.11.5", "@webassemblyjs/wasm-parser@1.11.6": +"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": version "1.11.6" resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz" integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== @@ -2456,7 +2456,7 @@ acorn-walk@^8.0.0: resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -acorn@^8, acorn@^8.0.4, acorn@^8.7.1, acorn@^8.8.2: +acorn@^8.0.4, acorn@^8.7.1, acorn@^8.8.2: version "8.10.0" resolved "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz" integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== @@ -2493,7 +2493,7 @@ ajv-keywords@^5.1.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.9.1: +ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -2503,17 +2503,7 @@ ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.9.1: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.0: - version "8.12.0" - resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" - integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - -ajv@^8.8.2, ajv@^8.9.0: +ajv@^8.0.0, ajv@^8.9.0: version "8.12.0" resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== @@ -2530,7 +2520,7 @@ algoliasearch-helper@^3.10.0: dependencies: "@algolia/events" "^4.0.1" -algoliasearch@^4.0.0, algoliasearch@^4.13.1, "algoliasearch@>= 3.1 < 6", "algoliasearch@>= 4.9.1 < 6": +algoliasearch@^4.0.0, algoliasearch@^4.13.1: version "4.18.0" resolved "https://registry.npmjs.org/algoliasearch/-/algoliasearch-4.18.0.tgz" integrity sha512-pCuVxC1SVcpc08ENH32T4sLKSyzoU7TkRIDBMwSLfIiW+fq4znOmWDkAygHZ6pRcO9I1UJdqlfgnV7TRj+MXrA== @@ -2616,16 +2606,16 @@ argparse@^2.0.1: resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -array-flatten@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== - array-flatten@1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz" integrity sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg== +array-flatten@^2.1.2: + version "2.1.2" + resolved "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + array-union@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" @@ -2840,7 +2830,7 @@ braces@^3.0.2, braces@~3.0.2: dependencies: fill-range "^7.0.1" -browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.4, browserslist@^4.21.5, browserslist@^4.21.9, "browserslist@>= 4.21.0": +browserslist@^4.0.0, browserslist@^4.14.5, browserslist@^4.18.1, browserslist@^4.21.4, browserslist@^4.21.5, browserslist@^4.21.9: version "4.21.9" resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.9.tgz" integrity sha512-M0MFoZzbUrRU4KNfCrDLnvyE7gub+peetoTid3TBIqtunaDJyXlwhakT+/VkvSXcfIzFfK/nkCs4nmyTmxdNSg== @@ -3120,16 +3110,16 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - color-name@1.1.3: version "1.1.3" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + colord@^2.9.1: version "2.9.3" resolved "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz" @@ -3301,7 +3291,7 @@ core-js-pure@^3.30.2: resolved "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.31.1.tgz" integrity sha512-w+C62kvWti0EPs4KPMCMVv9DriHSXfQOCQ94bGGBiEW5rrbtt/Rz8n5Krhfw9cpFyzXBjf3DB3QnPdEzGDY4Fw== -core-js@^3.1.4, core-js@^3.23.3: +core-js@^3.23.3: version "3.31.1" resolved "https://registry.npmjs.org/core-js/-/core-js-3.31.1.tgz" integrity sha512-2sKLtfq1eFST7l7v62zaqXacPc7uG8ZAya8ogijLhTtaKNcpzpB4TMoTw2Si+8GYKRwFPMMtUT0263QFWFfqyQ== @@ -3522,27 +3512,20 @@ csstype@^3.0.2: resolved "https://registry.npmjs.org/csstype/-/csstype-3.1.2.tgz" integrity sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ== -debug@^2.6.0: +debug@2.6.9, debug@^2.6.0: version "2.6.9" resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@^4.1.0, debug@^4.1.1, debug@4: +debug@4, debug@^4.1.0, debug@^4.1.1: version "4.3.4" resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@2.6.9: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - decko@^1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/decko/-/decko-1.2.0.tgz" @@ -3604,16 +3587,16 @@ del@^6.1.1: rimraf "^3.0.2" slash "^3.0.0" -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - depd@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz" integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + destroy@1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz" @@ -3769,16 +3752,16 @@ dot-prop@^5.2.0: dependencies: is-obj "^2.0.0" -duplexer@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz" - integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== - duplexer3@^0.1.4: version "0.1.5" resolved "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.5.tgz" integrity sha512-1A8za6ws41LQgv9HrE/66jyC5yuSjQ3L/KOpFtoBilsAK2iA2wuS5rTt1OCzIvtS2V7nVmedsUU+DGRcjBmOYA== +duplexer@^0.1.2: + version "0.1.2" + resolved "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz" + integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg== + eastasianwidth@^0.2.0: version "0.2.0" resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" @@ -4092,7 +4075,7 @@ feed@^4.2.2: dependencies: xml-js "^1.6.11" -file-loader@*, file-loader@^6.2.0: +file-loader@^6.2.0: version "6.2.0" resolved "https://registry.npmjs.org/file-loader/-/file-loader-6.2.0.tgz" integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== @@ -4633,16 +4616,6 @@ http-deceiver@^1.2.7: resolved "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz" integrity sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw== -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" - integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - http-errors@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz" @@ -4654,6 +4627,16 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz" + integrity sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + http-parser-js@>=0.5.1: version "0.5.8" resolved "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz" @@ -4754,7 +4737,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3, inherits@2, inherits@2.0.4: +inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -4764,16 +4747,16 @@ inherits@2.0.3: resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz" integrity sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw== -ini@^1.3.5, ini@~1.3.0: - version "1.3.8" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - ini@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz" integrity sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA== +ini@^1.3.5, ini@~1.3.0: + version "1.3.8" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + inline-style-parser@0.1.1: version "0.1.1" resolved "https://registry.npmjs.org/inline-style-parser/-/inline-style-parser-0.1.1.tgz" @@ -4791,17 +4774,17 @@ invariant@^2.2.4: dependencies: loose-envify "^1.0.0" -ipaddr.js@^2.0.1: - version "2.1.0" - resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz" - integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== - ipaddr.js@1.9.1: version "1.9.1" resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz" integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== -is-alphabetical@^1.0.0, is-alphabetical@1.0.4: +ipaddr.js@^2.0.1: + version "2.1.0" + resolved "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz" + integrity sha512-LlbxQ7xKzfBusov6UMi4MFpEg0m+mAm9xyNGEduwXMEDuf4WfzB/RZwMVYEd7IKGvh4IUkEXYxtAVu9T3OelJQ== + +is-alphabetical@1.0.4, is-alphabetical@^1.0.0: version "1.0.4" resolved "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz" integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== @@ -4979,16 +4962,16 @@ is-yarn-global@^0.3.0: resolved "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz" integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== -isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - isarray@0.0.1: version "0.0.1" resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" @@ -5091,7 +5074,7 @@ json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== -json-pointer@^0.6.2, json-pointer@0.6.2: +json-pointer@0.6.2, json-pointer@^0.6.2: version "0.6.2" resolved "https://registry.npmjs.org/json-pointer/-/json-pointer-0.6.2.tgz" integrity sha512-vLWcKbOaXlO+jvRy4qNd+TI1QUPZzfJj1tpJ3vAXDych5XJf93ftpUKe5pKCrzyIIwgBJcOcCVRUfqQP25afBw== @@ -5235,7 +5218,7 @@ lodash.memoize@^4.1.2: resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== -lodash.uniq@^4.5.0, lodash.uniq@4.5.0: +lodash.uniq@4.5.0, lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== @@ -5393,7 +5376,7 @@ micromatch@^4.0.2, micromatch@^4.0.4, micromatch@^4.0.5: braces "^3.0.2" picomatch "^2.3.1" -"mime-db@>= 1.43.0 < 2": +mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": version "1.52.0" resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== @@ -5403,40 +5386,14 @@ mime-db@~1.33.0: resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz" integrity sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ== -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.27: - version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime-types@^2.1.31: - version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime-types@~2.1.17, mime-types@2.1.18: +mime-types@2.1.18, mime-types@~2.1.17: version "2.1.18" resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz" integrity sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ== dependencies: mime-db "~1.33.0" -mime-types@~2.1.24: - version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - -mime-types@~2.1.34: +mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -5470,7 +5427,7 @@ minimalistic-assert@^1.0.0: resolved "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@3.1.2: +minimatch@3.1.2, minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== @@ -5506,7 +5463,7 @@ mobx-react@^7.2.0: dependencies: mobx-react-lite "^3.4.0" -mobx@^6.0.4, mobx@^6.1.0, mobx@^6.8.0: +mobx@^6.8.0: version "6.10.2" resolved "https://registry.npmjs.org/mobx/-/mobx-6.10.2.tgz" integrity sha512-B1UGC3ieK3boCjnMEcZSwxqRDMdzX65H/8zOHbuTY8ZhvrIjTUoLRR2TP2bPqIgYRfb3+dUigu8yMZufNjn0LQ== @@ -5951,13 +5908,6 @@ path-parse@^1.0.7: resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-to-regexp@^1.7.0: - version "1.8.0" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz" - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== - dependencies: - isarray "0.0.1" - path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz" @@ -5968,6 +5918,13 @@ path-to-regexp@2.2.1: resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.2.1.tgz" integrity sha512-gu9bD6Ta5bwGrrU8muHzVOBFFREpp2iRkVfhBJahwJ6p6Xw20SjT0MxLnwkjOibQmGSYhiUnf2FLe7k+jcFmGQ== +path-to-regexp@^1.7.0: + version "1.8.0" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz" + integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== + dependencies: + isarray "0.0.1" + path-type@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" @@ -6295,7 +6252,7 @@ postcss-zindex@^5.1.0: resolved "https://registry.npmjs.org/postcss-zindex/-/postcss-zindex-5.1.0.tgz" integrity sha512-fgFMf0OtVSBR1va1JNHYgMxYk73yhn/qb4uQDq1DLGYolz8gHCyr/sesEuGUaYs58E3ZJRcpoGuPVoB7Meiq9A== -"postcss@^7.0.0 || ^8.0.1", postcss@^8.0.9, postcss@^8.1.0, postcss@^8.2.15, postcss@^8.2.2, postcss@^8.3.11, postcss@^8.4.14, postcss@^8.4.16, postcss@^8.4.17, postcss@^8.4.21: +postcss@^8.3.11, postcss@^8.4.14, postcss@^8.4.17, postcss@^8.4.21: version "8.4.25" resolved "https://registry.npmjs.org/postcss/-/postcss-8.4.25.tgz" integrity sha512-7taJ/8t2av0Z+sQEvNzCkpDynl0tX3uJMCODi6nT3PfASC7dYCWV9aQ+uiCf+KBD4SEFcu+GvJdGdwzQ6OSjCw== @@ -6432,21 +6389,16 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -range-parser@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - range-parser@1.2.0: version "1.2.0" resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz" integrity sha512-kA5WQoNVo4t9lNx2kQNFCxKeBl5IbbSNBl1M/tLkw9WCn+hxNBAW5Qh8gdhs63CJnhjJ2zQWFoqPJP2sK1AV5A== +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + raw-body@2.5.1: version "2.5.1" resolved "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz" @@ -6457,7 +6409,7 @@ raw-body@2.5.1: iconv-lite "0.4.24" unpipe "1.0.0" -rc@^1.2.8, rc@1.2.8: +rc@1.2.8, rc@^1.2.8: version "1.2.8" resolved "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz" integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== @@ -6507,7 +6459,7 @@ react-dev-utils@^12.0.1: strip-ansi "^6.0.1" text-table "^0.2.0" -react-dom@*, "react-dom@^16.6.0 || ^17.0.0 || ^18.0.0", "react-dom@^16.8.4 || ^17.0.0", "react-dom@^17.0.0 || ^16.3.0 || ^15.5.4", react-dom@^17.0.2, "react-dom@>= 16.8.0", "react-dom@>= 16.8.0 < 19.0.0": +react-dom@^17.0.2: version "17.0.2" resolved "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz" integrity sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA== @@ -6537,7 +6489,7 @@ react-helmet-async@*, react-helmet-async@^1.3.0: react-fast-compare "^3.2.0" shallowequal "^1.1.0" -react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0, "react-is@>= 16.8.0": +react-is@^16.13.1, react-is@^16.6.0, react-is@^16.7.0: version "16.13.1" resolved "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz" integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== @@ -6564,14 +6516,6 @@ react-loadable-ssr-addon-v5-slorber@^1.0.1: dependencies: "@babel/runtime" "^7.10.3" -react-loadable@*, "react-loadable@npm:@docusaurus/react-loadable@5.5.2": - version "5.5.2" - resolved "https://registry.npmjs.org/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz" - integrity sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ== - dependencies: - "@types/react" "*" - prop-types "^15.6.2" - react-router-config@^5.1.1: version "5.1.1" resolved "https://registry.npmjs.org/react-router-config/-/react-router-config-5.1.1.tgz" @@ -6592,7 +6536,7 @@ react-router-dom@^5.3.3: tiny-invariant "^1.0.2" tiny-warning "^1.0.0" -react-router@^5.3.3, react-router@>=5, react-router@5.3.4: +react-router@5.3.4, react-router@^5.3.3: version "5.3.4" resolved "https://registry.npmjs.org/react-router/-/react-router-5.3.4.tgz" integrity sha512-Ys9K+ppnJah3QuaRiLxk+jDWOR1MekYQrlytiXxC1RyfbdsZkS5pvKAzCCr031xHixZwpnsYNT5xysdFHQaYsA== @@ -6624,7 +6568,7 @@ react-textarea-autosize@^8.3.2: use-composed-ref "^1.3.0" use-latest "^1.2.1" -react@*, "react@^15.0.2 || ^16.0.0 || ^17.0.0", "react@^16.13.1 || ^17.0.0", "react@^16.3.0 || ^17.0.0-0", "react@^16.6.0 || ^17.0.0 || ^18.0.0", "react@^16.8.0 || ^17 || ^18", "react@^16.8.0 || ^17.0.0 || ^18.0.0", "react@^16.8.4 || ^17.0.0", "react@^17.0.0 || ^16.3.0 || ^15.5.4", react@^17.0.2, "react@>= 16.8.0", "react@>= 16.8.0 < 19.0.0", react@>=0.14.9, react@>=15, react@17.0.2: +react@^17.0.2: version "17.0.2" resolved "https://registry.npmjs.org/react/-/react-17.0.2.tgz" integrity sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA== @@ -6632,7 +6576,7 @@ react@*, "react@^15.0.2 || ^16.0.0 || ^17.0.0", "react@^16.13.1 || ^17.0.0", "re loose-envify "^1.1.0" object-assign "^4.1.1" -readable-stream@^2.0.1: +readable-stream@^2.0.1, readable-stream@~2.3.6: version "2.3.8" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== @@ -6664,19 +6608,6 @@ readable-stream@~1.0.31: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@~2.3.6: - version "2.3.8" - resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" - integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" @@ -6971,20 +6902,15 @@ rxjs@^7.5.4: dependencies: tslib "^2.1.0" -safe-buffer@^5.1.0, safe-buffer@>=5.1.0, safe-buffer@~5.2.0, safe-buffer@5.2.1: - version "5.2.1" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@5.1.2: - version "5.1.2" - resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== +safe-buffer@5.2.1, safe-buffer@>=5.1.0, safe-buffer@^5.1.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== "safer-buffer@>= 2.1.2 < 3": version "2.1.2" @@ -7004,6 +6930,15 @@ scheduler@^0.20.2: loose-envify "^1.1.0" object-assign "^4.1.1" +schema-utils@2.7.0: + version "2.7.0" + resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz" + integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== + dependencies: + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" + ajv-keywords "^3.4.1" + schema-utils@^2.6.5: version "2.7.1" resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz" @@ -7013,25 +6948,7 @@ schema-utils@^2.6.5: ajv "^6.12.4" ajv-keywords "^3.5.2" -schema-utils@^3.0.0: - version "3.3.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" - integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -schema-utils@^3.1.1: - version "3.3.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" - integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== - dependencies: - "@types/json-schema" "^7.0.8" - ajv "^6.12.5" - ajv-keywords "^3.5.2" - -schema-utils@^3.2.0: +schema-utils@^3.0.0, schema-utils@^3.1.1, schema-utils@^3.2.0: version "3.3.0" resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz" integrity sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg== @@ -7050,20 +6967,6 @@ schema-utils@^4.0.0: ajv-formats "^2.1.1" ajv-keywords "^5.1.0" -schema-utils@2.7.0: - version "2.7.0" - resolved "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz" - integrity sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A== - dependencies: - "@types/json-schema" "^7.0.4" - ajv "^6.12.2" - ajv-keywords "^3.4.1" - -"search-insights@>= 1 < 3": - version "2.7.0" - resolved "https://registry.npmjs.org/search-insights/-/search-insights-2.7.0.tgz" - integrity sha512-GLbVaGgzYEKMvuJbHRhLi1qoBFnjXZGZ6l4LxOYPCp4lI2jDRB3jPU9/XNhMwv6kvnA9slTreq6pvK+b3o3aqg== - section-matter@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz" @@ -7096,22 +6999,7 @@ semver@^5.4.1: resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@^6.0.0: - version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^6.2.0: - version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^6.3.0: - version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - -semver@^6.3.1: +semver@^6.0.0, semver@^6.2.0, semver@^6.3.0, semver@^6.3.1: version "6.3.1" resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== @@ -7416,16 +7304,16 @@ state-toggle@^1.0.0: resolved "https://registry.npmjs.org/state-toggle/-/state-toggle-1.0.3.tgz" integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== -"statuses@>= 1.4.0 < 2": - version "1.5.0" - resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" - integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== - statuses@2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== +"statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + std-env@^3.0.1: version "3.3.3" resolved "https://registry.npmjs.org/std-env/-/std-env-3.3.3.tgz" @@ -7436,6 +7324,24 @@ stickyfill@^1.1.1: resolved "https://registry.npmjs.org/stickyfill/-/stickyfill-1.1.1.tgz" integrity sha512-GCp7vHAfpao+Qh/3Flh9DXEJ/qSi0KJwJw6zYlZOtRYXWUIpMM6mC2rIep/dK8RQqwW0KxGJIllmjPIBOGN8AA== +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: + version "4.2.3" + resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^5.0.1: + version "5.1.2" + resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" + integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== + dependencies: + eastasianwidth "^0.2.0" + emoji-regex "^9.2.2" + strip-ansi "^7.0.1" + string_decoder@^1.1.1: version "1.3.0" resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" @@ -7455,24 +7361,6 @@ string_decoder@~1.1.1: dependencies: safe-buffer "~5.1.0" -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: - version "4.2.3" - resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^5.0.1: - version "5.1.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== - dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" - stringify-object@^3.3.0: version "3.3.0" resolved "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz" @@ -7521,14 +7409,14 @@ style-loader@^3.3.1: resolved "https://registry.npmjs.org/style-loader/-/style-loader-3.3.3.tgz" integrity sha512-53BiGLXAcll9maCYtZi2RCQZKa8NQQai5C4horqKyRmHj9H7QmcUyucrH+4KW/gBQbXM2AsB0axoEcFZPlfPcw== -style-to-object@^0.3.0, style-to-object@0.3.0: +style-to-object@0.3.0, style-to-object@^0.3.0: version "0.3.0" resolved "https://registry.npmjs.org/style-to-object/-/style-to-object-0.3.0.tgz" integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== dependencies: inline-style-parser "0.1.1" -"styled-components@^4.1.1 || ^5.1.1", styled-components@^5.3.6, "styled-components@>= 2": +styled-components@^5.3.6: version "5.3.11" resolved "https://registry.npmjs.org/styled-components/-/styled-components-5.3.11.tgz" integrity sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw== @@ -7552,14 +7440,7 @@ stylehacks@^5.1.1: browserslist "^4.21.4" postcss-selector-parser "^6.0.4" -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^5.5.0: +supports-color@^5.3.0, supports-color@^5.5.0: version "5.5.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== @@ -7756,7 +7637,7 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" -typescript@^4.7.4, "typescript@>= 2.7": +typescript@^4.7.4: version "4.9.5" resolved "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== @@ -7797,10 +7678,10 @@ unicode-property-aliases-ecmascript@^2.0.0: resolved "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz" integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== -unified@^9.2.2: - version "9.2.2" - resolved "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz" - integrity sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ== +unified@9.2.0: + version "9.2.0" + resolved "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz" + integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg== dependencies: bail "^1.0.0" extend "^3.0.0" @@ -7809,10 +7690,10 @@ unified@^9.2.2: trough "^1.0.0" vfile "^4.0.0" -unified@9.2.0: - version "9.2.0" - resolved "https://registry.npmjs.org/unified/-/unified-9.2.0.tgz" - integrity sha512-vx2Z0vY+a3YoTj8+pttM3tiJHCwY5UFbYdiWrwBEbHmK8pvsPj2rtAX2BFfgXen8T39CJWblWRDT4L5WGXtDdg== +unified@^9.2.2: + version "9.2.2" + resolved "https://registry.npmjs.org/unified/-/unified-9.2.2.tgz" + integrity sha512-Sg7j110mtefBD+qunSLO1lqOEKdrwBFBrR6Qd8f4uwkhWNlbkaqwHse6e7QvD3AP/MNoJdEDLaf8OxYyoWgorQ== dependencies: bail "^1.0.0" extend "^3.0.0" @@ -7828,7 +7709,7 @@ unique-string@^2.0.0: dependencies: crypto-random-string "^2.0.0" -unist-builder@^2.0.0, unist-builder@2.0.3: +unist-builder@2.0.3, unist-builder@^2.0.0: version "2.0.3" resolved "https://registry.npmjs.org/unist-builder/-/unist-builder-2.0.3.tgz" integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw== @@ -7877,7 +7758,7 @@ unist-util-visit-parents@^3.0.0: "@types/unist" "^2.0.0" unist-util-is "^4.0.0" -unist-util-visit@^2.0.0, unist-util-visit@^2.0.3, unist-util-visit@2.0.3: +unist-util-visit@2.0.3, unist-util-visit@^2.0.0, unist-util-visit@^2.0.3: version "2.0.3" resolved "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-2.0.3.tgz" integrity sha512-iJ4/RczbJMkD0712mGktuGpm/U4By4FfDonL7N/9tATGIF4imikjOuagyMY53tnZq3NP6BcmlrHhEKAfGWjh7Q== @@ -7891,7 +7772,7 @@ universalify@^2.0.0: resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== -unpipe@~1.0.0, unpipe@1.0.0: +unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz" integrity sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ== @@ -8149,7 +8030,7 @@ webpack-sources@^3.2.2, webpack-sources@^3.2.3: resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -"webpack@^4.0.0 || ^5.0.0", "webpack@^4.37.0 || ^5.0.0", webpack@^5.0.0, webpack@^5.1.0, webpack@^5.20.0, webpack@^5.73.0, "webpack@>= 4", webpack@>=2, "webpack@>=4.41.1 || 5.x", "webpack@3 || 4 || 5": +webpack@^5.73.0: version "5.88.1" resolved "https://registry.npmjs.org/webpack/-/webpack-5.88.1.tgz" integrity sha512-FROX3TxQnC/ox4N+3xQoWZzvGXSuscxR32rbzjpXgEzWudJFEJBpdlkkob2ylrv5yzzufD1zph1OoFsLtm6stQ== @@ -8189,7 +8070,7 @@ webpackbar@^5.0.2: pretty-time "^1.1.0" std-env "^3.0.1" -websocket-driver@^0.7.4, websocket-driver@>=0.5.1: +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" resolved "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz" integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== From afb0f0ea5ab617a57f3426d2dcf2e098c971165a Mon Sep 17 00:00:00 2001 From: Jordan Leigh Date: Tue, 9 Jan 2024 14:37:12 -0800 Subject: [PATCH 2/7] updated documentation progress --- docs/getting-started/Quickstart-Javascript.md | 111 ++++++++++++++---- .../{Quickstart-CLI.md => Using-The-CLI.md} | 6 +- static/img/quickstart/create_api_key.png | Bin 0 -> 292621 bytes 3 files changed, 90 insertions(+), 27 deletions(-) rename docs/getting-started/{Quickstart-CLI.md => Using-The-CLI.md} (98%) create mode 100644 static/img/quickstart/create_api_key.png diff --git a/docs/getting-started/Quickstart-Javascript.md b/docs/getting-started/Quickstart-Javascript.md index 125d15d..0b6ebbb 100644 --- a/docs/getting-started/Quickstart-Javascript.md +++ b/docs/getting-started/Quickstart-Javascript.md @@ -24,21 +24,49 @@ All API requests require an organization ID. Yours can be located in the user dr style={{ width: 940 }} /> -For convenience, it's worth setting this as a constant in your app: +You'll want to save this somewhere in your code, as you'll need it to make requests to the Turnkey API. ```javascript -const TURNKEY_ORGANIZATION_ID="" +const TURNKEY_ORGANIZATION_ID = ""; ``` +## Create an API Key + +Turnkey API Keys are generic public / private key pairs that allow you to make requests to our API. You can create an API Key from your user page of the dashboard. Navigate to your user page by clicking on "User Details" in the user dropdown menu, and then click "Create an API key". + +Find user details + +Find user details + +- Select "Generate API keys in-browser" and click continue. +- Give your API key pair a name and click continue. +- Save your Public and Private Key locally. +- Make sure to click "Approve" to sign the API Creation activity with your authenticator device. + +A couple of notes: +- You will need both the public and private key to sign requests to the Turnkey API. +- **Any code using a Turnkey API private key should only ever be run server-side.** + ## Require the Turnkey Libraries -There are two libraries that you need, the Turnkey HTTP library, for making API requests to the Turnkey API. And a Turnkey "Stamper" library. The stamper library is responsible for signing the operation into Turnkey, and comes in 3 different flavors: +There are two libraries that you will need to make API requests to Turnkey: + 1. The Turnkey HTTP library. + 2. A Turnkey "stamper" library. + +The stamper library is responsible for signing the operation into Turnkey, and comes in 3 different flavors: 1. `api-key-stamper` which signs requests with your Turnkey API key 2. `webauthn-stamper` which signs requests with a end-user's passkey 3. `iframe-stamper` which is used for ... -For this example we're going to use the API Key Stamper to make requests to Turnkey from the context of the dapp. -**Any code using the Turnkey API key should only be run server-side** +The simplest way to get started, is to use the API Key Stamper to make requests to Turnkey that are signed with the API key pair you created in the previous step. ```shell yarn add @turnkey/http @@ -67,6 +95,8 @@ const turnkeyClient = new TurnkeyClient( ## Create a Wallet +A `wallet` on Turnkey represents a multi-chain seed phrase from which many individual `accounts` can be derived. An `account` represents an individual index on a derivation path that contains the blockchain address you can send funds to and sign on-chain transactions with. The only thing a wallet needs to be initialized is a name for the wallet. + ```javascript await turnkeyClient.createWallet({ organizationId: TURNKEY_ORGANIZATION_ID, @@ -74,51 +104,60 @@ await turnkeyClient.createWallet({ timestampMs: String(Date.now()), parameters: { walletName: "Test Wallet 1", - accounts: [ - { - path: "m/44'/0'/0'/0/0", - pathFormat: "PATH_FORMAT_BIP32", - curve: "CURVE_SECP256K1", - addressFormat: "ADDRESS_FORMAT_ETHEREUM" - } - ] + accounts: [] } }) ``` ## Create an Ethereum Account +Once a wallet has been created, an account can be created against that wallet by passing in the [INSERT HERE] ... + +Note: The account specification could also be passed into the initial createWallet call if desired. + ```javascript -await turnkeyClient.createWallet({ +await client.createWalletAccounts({ organizationId: TURNKEY_ORGANIZATION_ID, - type: 'ACTIVITY_TYPE_CREATE_WALLET', + type: 'ACTIVITY_TYPE_CREATE_WALLET_ACCOUNTS', timestampMs: String(Date.now()), parameters: { - walletName: "Test Wallet 1", + walletId: '1ce716fa-9d40-5371-9c1a-3e95e4663ff5', accounts: [ { - path: "m/44'/0'/0'/0/0", + path: "m/44'/60'/0'/0/0", pathFormat: "PATH_FORMAT_BIP32", curve: "CURVE_SECP256K1", addressFormat: "ADDRESS_FORMAT_ETHEREUM" - } + }, + { + path: "m/44'/60'/0'/0/1", + pathFormat: "PATH_FORMAT_BIP32", + curve: "CURVE_SECP256K1", + addressFormat: "ADDRESS_FORMAT_ETHEREUM" + }, + { + path: "m/44'/60'/0'/0/2", + pathFormat: "PATH_FORMAT_BIP32", + curve: "CURVE_SECP256K1", + addressFormat: "ADDRESS_FORMAT_ETHEREUM" + }, ] } }) ``` -## Sign a Transaction +You can view the created accounts with ```javascript -await turnkeyClient.createWallet({ +await client.createWalletAccounts({ organizationId: TURNKEY_ORGANIZATION_ID, - type: 'ACTIVITY_TYPE_CREATE_WALLET', + type: 'ACTIVITY_TYPE_CREATE_WALLET_ACCOUNTS', timestampMs: String(Date.now()), parameters: { - walletName: "Test Wallet 1", + walletId: '1ce716fa-9d40-5371-9c1a-3e95e4663ff5', accounts: [ { - path: "m/44'/0'/0'/0/0", + path: "m/44'/60'/0'/0/0", pathFormat: "PATH_FORMAT_BIP32", curve: "CURVE_SECP256K1", addressFormat: "ADDRESS_FORMAT_ETHEREUM" @@ -128,9 +167,28 @@ await turnkeyClient.createWallet({ }) ``` +## Sign a Transaction + +Once you have an account, you can sign a transaction with the account as follows. + +```javascript +await turnkeyClient.signTransaction({ + organizationId: TURNKEY_ORGANIZATION_ID, + type: "ACTIVITY_TYPE_SIGN_TRANSACTION_V2", + timestampMs: String(Date.now()), + parameters: { + signWith: "" // i.e. 0x780ed9b6BF99908106d1bAA25b7658a80ADB5f42 + unsignedTransaction: "", // i.e. 02eb018084db4f550d850bb6338fa88252089470a8a81613dd06dc243de94ebdf861ff5f82b361831e848080c0 + type: "TRANSACTION_TYPE_ETHEREUM" + } +}) +``` + +Make sure to replace the `unsignedTransaction` below with your own. You can use our [simple transaction generator](https://build.tx.xyz) if you need a quick transaction for testing. + ## Using the Webauthn Stamper -Now we'll perform user actions using the client-side webauthn stamper. You can learn more about the specifics of passkeys in the [Passkey guide](../passkeys/introduction) +The previous actions all had to be signed server-side in our code using a Turnkey API key, but you can also have individual end-users sign Turnkey activities using their own passkeys using the client-side webauthn stamper library. You can learn more about the specifics of the passkeys implementation in the [Passkey guide](../passkeys/introduction) ```shell yarn add @turnkey/webauthn-stamper @@ -221,6 +279,11 @@ export function Export(props: ExportProps) { } ``` +## Best Practices (Using Sub-Organizations) + +Due to cryptographic limitations of how much data can be signed at once, generally speaking, a common pattern is to create sub-organizations for each individual user, instead of creating wallets for each user directly on the parent organization. You can read more about how to properly do this in the [Suborganization Guide](../integration-guides/sub-organizations-as-wallets.md) + + ## Next Steps - Check out our [examples](/getting-started/examples) to see what can be built - Learn more about [Organizations](/getting-started/organizations) and [Wallets](/getting-started/wallets) diff --git a/docs/getting-started/Quickstart-CLI.md b/docs/getting-started/Using-The-CLI.md similarity index 98% rename from docs/getting-started/Quickstart-CLI.md rename to docs/getting-started/Using-The-CLI.md index efccdb3..ed95740 100644 --- a/docs/getting-started/Quickstart-CLI.md +++ b/docs/getting-started/Using-The-CLI.md @@ -1,10 +1,10 @@ --- -id: quickstart-cli +id: using-the-cli sidebar_position: 3 description: Onboard and sign your first Ethereum transaction -slug: /getting-started/quickstart-cli +slug: /getting-started/using-the-cli --- -# Quickstart CLI +# Using the CLI This quickstart will guide you through Turnkey’s onboarding, adding an API key, creating a wallet, and signing your first Ethereum transaction. diff --git a/static/img/quickstart/create_api_key.png b/static/img/quickstart/create_api_key.png new file mode 100644 index 0000000000000000000000000000000000000000..bef8bc7ac061dd8638057339fedcd22f353473d7 GIT binary patch literal 292621 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≤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ʸ&6jfY+i(0cw8D*KaYeztN1&eLJ}```Rj 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 z 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 Date: Wed, 10 Jan 2024 11:40:07 -0800 Subject: [PATCH 3/7] more progress on javascript quickstart webauthn placeholder flow --- docs/getting-started/Quickstart-Javascript.md | 143 ++++++------------ 1 file changed, 44 insertions(+), 99 deletions(-) diff --git a/docs/getting-started/Quickstart-Javascript.md b/docs/getting-started/Quickstart-Javascript.md index 0b6ebbb..e3379bd 100644 --- a/docs/getting-started/Quickstart-Javascript.md +++ b/docs/getting-started/Quickstart-Javascript.md @@ -54,6 +54,7 @@ Turnkey API Keys are generic public / private key pairs that allow you to make r A couple of notes: - You will need both the public and private key to sign requests to the Turnkey API. - **Any code using a Turnkey API private key should only ever be run server-side.** +- PLACEHOLDER: Explanation of Turnkey Activities -> Direct to relavant link ## Require the Turnkey Libraries @@ -61,16 +62,16 @@ There are two libraries that you will need to make API requests to Turnkey: 1. The Turnkey HTTP library. 2. A Turnkey "stamper" library. -The stamper library is responsible for signing the operation into Turnkey, and comes in 3 different flavors: +The stamper library is responsible for signing a request into Turnkey, and comes in 3 different flavors: 1. `api-key-stamper` which signs requests with your Turnkey API key 2. `webauthn-stamper` which signs requests with a end-user's passkey - 3. `iframe-stamper` which is used for ... + 3. `iframe-stamper` which is a wrapper around the api-key-stamper and used specifically for Email Recovery and Email Auth The simplest way to get started, is to use the API Key Stamper to make requests to Turnkey that are signed with the API key pair you created in the previous step. ```shell - yarn add @turnkey/http - yarn add @turnkey/api-key-stamper +npm install @turnkey/http +npm install @turnkey/api-key-stamper ``` ## Initialize the Turnkey Client @@ -95,10 +96,10 @@ const turnkeyClient = new TurnkeyClient( ## Create a Wallet -A `wallet` on Turnkey represents a multi-chain seed phrase from which many individual `accounts` can be derived. An `account` represents an individual index on a derivation path that contains the blockchain address you can send funds to and sign on-chain transactions with. The only thing a wallet needs to be initialized is a name for the wallet. +A `wallet` on Turnkey represents a multi-chain seed phrase from which many individual `accounts` can be derived. An `account` represents a specific index on a derivation path and contains the blockchain address that you can send funds to and sign on-chain transactions with. The only thing a wallet needs to be initialized is a name for the wallet. ```javascript -await turnkeyClient.createWallet({ +const response = await turnkeyClient.createWallet({ organizationId: TURNKEY_ORGANIZATION_ID, type: 'ACTIVITY_TYPE_CREATE_WALLET', timestampMs: String(Date.now()), @@ -107,13 +108,15 @@ await turnkeyClient.createWallet({ accounts: [] } }) + +const walletId = response.activity.result.createWalletResult.walletId; ``` ## Create an Ethereum Account -Once a wallet has been created, an account can be created against that wallet by passing in the [INSERT HERE] ... +Once a wallet has been created, accounts can be created against that wallet by passing in the derivation path information for any accounts that you want to derive. In this example we will derive Ethereum accounts, using the standard BIP44 Path format. The final number at the end of the path string represents the index in the derivation path that you want to derive the account for. -Note: The account specification could also be passed into the initial createWallet call if desired. +Note: You can also create the accounts atomically when you create the wallet by passing in the account derivation paths to the initial createWallet call if desired. ```javascript await client.createWalletAccounts({ @@ -121,22 +124,22 @@ await client.createWalletAccounts({ type: 'ACTIVITY_TYPE_CREATE_WALLET_ACCOUNTS', timestampMs: String(Date.now()), parameters: { - walletId: '1ce716fa-9d40-5371-9c1a-3e95e4663ff5', + walletId: "", accounts: [ { - path: "m/44'/60'/0'/0/0", + path: "m/44'/60'/0'/0/0", // account at index 0 pathFormat: "PATH_FORMAT_BIP32", curve: "CURVE_SECP256K1", addressFormat: "ADDRESS_FORMAT_ETHEREUM" }, { - path: "m/44'/60'/0'/0/1", + path: "m/44'/60'/0'/0/1", // account at index 1 pathFormat: "PATH_FORMAT_BIP32", curve: "CURVE_SECP256K1", addressFormat: "ADDRESS_FORMAT_ETHEREUM" }, { - path: "m/44'/60'/0'/0/2", + path: "m/44'/60'/0'/0/2", // account at index 2 pathFormat: "PATH_FORMAT_BIP32", curve: "CURVE_SECP256K1", addressFormat: "ADDRESS_FORMAT_ETHEREUM" @@ -146,24 +149,12 @@ await client.createWalletAccounts({ }) ``` -You can view the created accounts with +You can view the created accounts and their associated Ethereum addresses with ```javascript -await client.createWalletAccounts({ +await client.getWalletAccounts({ organizationId: TURNKEY_ORGANIZATION_ID, - type: 'ACTIVITY_TYPE_CREATE_WALLET_ACCOUNTS', - timestampMs: String(Date.now()), - parameters: { - walletId: '1ce716fa-9d40-5371-9c1a-3e95e4663ff5', - accounts: [ - { - path: "m/44'/60'/0'/0/0", - pathFormat: "PATH_FORMAT_BIP32", - curve: "CURVE_SECP256K1", - addressFormat: "ADDRESS_FORMAT_ETHEREUM" - } - ] - } + walletId: "" }) ``` @@ -186,22 +177,27 @@ await turnkeyClient.signTransaction({ Make sure to replace the `unsignedTransaction` below with your own. You can use our [simple transaction generator](https://build.tx.xyz) if you need a quick transaction for testing. +If you'd like to broadcast your transaction, you can easily do so via [Etherscan](https://etherscan.io/pushTx). + + ## Using the Webauthn Stamper -The previous actions all had to be signed server-side in our code using a Turnkey API key, but you can also have individual end-users sign Turnkey activities using their own passkeys using the client-side webauthn stamper library. You can learn more about the specifics of the passkeys implementation in the [Passkey guide](../passkeys/introduction) +The previous actions all had to be signed server-side in our code using a Turnkey API key, but you can also have individual end-users sign Turnkey activities using their own passkeys using the webauthn stamper library. You can learn more about the specifics of the passkeys implementation in the [Passkey guide](../passkeys/introduction) + +The following example will show a simple example of having an end-user sign a request with a passkey and send it to a dapp developer's endpoint. ```shell -yarn add @turnkey/webauthn-stamper +npm install @turnkey/webauthn-stamper ``` ```javascript import { WebauthnStamper } from "@turnkey/webauthn-stamper"; -import { TurnkeyClient } from '@turnkey/http'; +import { TurnkeyClient, createActivityPoller } from '@turnkey/http'; const TURNKEY_ORGANIZATION_ID = ""; -new WebauthnStamper({ - rpId: process.env.NEXT_PUBLIC_RPID, +const stamper = new WebauthnStamper({ + rpId: "" // i.e. "wallet.xyz" or "localhost" }) const turnkeyClient = new TurnkeyClient( @@ -210,80 +206,29 @@ const turnkeyClient = new TurnkeyClient( }, stamper ); -``` - -## Using the IFrame Stamper -```shell -yarn add @turnkey/iframe-stamper -``` -```javascript -import { IframeStamper } from "@turnkey/iframe-stamper"; -import { Dispatch, SetStateAction, useEffect, useState } from "react"; - -interface ExportProps { - iframeUrl: string; - iframeDisplay: string; - setIframeStamper: Dispatch>; -} - -const TurnkeyIframeContainerId = "turnkey-export-iframe-container-id"; -const TurnkeyIframeElementId = "turnkey-export-iframe-element-id"; - -export function Export(props: ExportProps) { - const [iframeStamper, setIframeStamper] = useState( - null - ); - const iframeUrl = props.iframeUrl; - const setParentIframeStamper = props.setIframeStamper; - - useEffect(() => { - if (!iframeStamper) { - const iframeStamper = new IframeStamper({ - iframeUrl: iframeUrl, - iframeContainerId: TurnkeyIframeContainerId, - iframeElementId: TurnkeyIframeElementId, - }); - - iframeStamper.init().then(() => { - setIframeStamper(iframeStamper); - setParentIframeStamper(iframeStamper); - }); - } - - return () => { - if (iframeStamper) { - iframeStamper.clear(); - setIframeStamper(null); - setParentIframeStamper(null); - } - }; - }, [iframeUrl, iframeStamper, setIframeStamper, setParentIframeStamper]); - - const iframeCss = ` - iframe { - width: 100%; - height: 340px; - } - `; - - return ( -
- -
- ); -} +// This will produce a signed request that can be POSTed from anywhere. +// The `signedRequest` has a URL, a POST body, and a "stamp" (HTTP header name and value) +const signedRequest = await turnkeyClient.stampCreatePrivateKeys(...); + +// Alternatively, you can POST directly from your frontend. +// Our HTTP client will use the webauthn stamper and the configured baseUrl automatically! +const activityPoller = createActivityPoller({ + client: client, + requestFn: client.createPrivateKeys, +}); + +// Contains the activity result; no backend proxy needed! +const completedActivity = await activityPoller({ + type: "ACTIVITY_TYPE_CREATE_PRIVATE_KEYS_V2", + // (omitting the rest of this for brevity) +}) ``` ## Best Practices (Using Sub-Organizations) Due to cryptographic limitations of how much data can be signed at once, generally speaking, a common pattern is to create sub-organizations for each individual user, instead of creating wallets for each user directly on the parent organization. You can read more about how to properly do this in the [Suborganization Guide](../integration-guides/sub-organizations-as-wallets.md) - ## Next Steps - Check out our [examples](/getting-started/examples) to see what can be built - Learn more about [Organizations](/getting-started/organizations) and [Wallets](/getting-started/wallets) From 5768609b66f12fbb5367317f132e666ff2c6b398 Mon Sep 17 00:00:00 2001 From: Jordan Leigh Date: Fri, 19 Jan 2024 14:49:27 -0500 Subject: [PATCH 4/7] final changes to the quickstart guide --- docs/getting-started/Quickstart-Javascript.md | 52 +++---------------- 1 file changed, 6 insertions(+), 46 deletions(-) diff --git a/docs/getting-started/Quickstart-Javascript.md b/docs/getting-started/Quickstart-Javascript.md index e3379bd..f9fabb3 100644 --- a/docs/getting-started/Quickstart-Javascript.md +++ b/docs/getting-started/Quickstart-Javascript.md @@ -54,7 +54,7 @@ Turnkey API Keys are generic public / private key pairs that allow you to make r A couple of notes: - You will need both the public and private key to sign requests to the Turnkey API. - **Any code using a Turnkey API private key should only ever be run server-side.** -- PLACEHOLDER: Explanation of Turnkey Activities -> Direct to relavant link +- Every action on Turnkey will return an `activity`, including creating the API key pair in the previous step. You can read more about the [Turnkey Activity Model here](../policy-management/Policy-language.md#activity-breakdown). ## Require the Turnkey Libraries @@ -114,9 +114,9 @@ const walletId = response.activity.result.createWalletResult.walletId; ## Create an Ethereum Account -Once a wallet has been created, accounts can be created against that wallet by passing in the derivation path information for any accounts that you want to derive. In this example we will derive Ethereum accounts, using the standard BIP44 Path format. The final number at the end of the path string represents the index in the derivation path that you want to derive the account for. +Once a `wallet` has been created, `accounts` can be created against that `wallet` by passing in the derivation path information for any `accounts` that you want to derive. In this example we will derive Ethereum accounts, using the standard BIP44 Path format. The final number at the end of the path string represents the index in the derivation path that you want to derive the account for. -Note: You can also create the accounts atomically when you create the wallet by passing in the account derivation paths to the initial createWallet call if desired. +Note: If desired, you can also create `accounts` in the same API call where you create the `wallet` by passing in the account derivation paths as arguments to the `createWallet` call. ```javascript await client.createWalletAccounts({ @@ -182,54 +182,14 @@ If you'd like to broadcast your transaction, you can easily do so via [Etherscan ## Using the Webauthn Stamper -The previous actions all had to be signed server-side in our code using a Turnkey API key, but you can also have individual end-users sign Turnkey activities using their own passkeys using the webauthn stamper library. You can learn more about the specifics of the passkeys implementation in the [Passkey guide](../passkeys/introduction) - -The following example will show a simple example of having an end-user sign a request with a passkey and send it to a dapp developer's endpoint. - -```shell -npm install @turnkey/webauthn-stamper -``` - -```javascript -import { WebauthnStamper } from "@turnkey/webauthn-stamper"; -import { TurnkeyClient, createActivityPoller } from '@turnkey/http'; - -const TURNKEY_ORGANIZATION_ID = ""; - -const stamper = new WebauthnStamper({ - rpId: "" // i.e. "wallet.xyz" or "localhost" -}) - -const turnkeyClient = new TurnkeyClient( - { - baseUrl: 'https://api.turnkey.com' - }, - stamper -); - -// This will produce a signed request that can be POSTed from anywhere. -// The `signedRequest` has a URL, a POST body, and a "stamp" (HTTP header name and value) -const signedRequest = await turnkeyClient.stampCreatePrivateKeys(...); - -// Alternatively, you can POST directly from your frontend. -// Our HTTP client will use the webauthn stamper and the configured baseUrl automatically! -const activityPoller = createActivityPoller({ - client: client, - requestFn: client.createPrivateKeys, -}); - -// Contains the activity result; no backend proxy needed! -const completedActivity = await activityPoller({ - type: "ACTIVITY_TYPE_CREATE_PRIVATE_KEYS_V2", - // (omitting the rest of this for brevity) -}) -``` +The previous actions all had to be signed server-side in our code using a Turnkey API key, but you can also have individual end-users sign Turnkey activities using their own passkeys using the webauthn stamper library. You can learn more about the specifics of the passkey implementation in the [Passkey guide](../passkeys/introduction). You can also see an example of having an end-user sign a request with a passkey in our public [Demo Passkey Wallet](https://github.com/tkhq/demo-passkey-wallet) repository. ## Best Practices (Using Sub-Organizations) -Due to cryptographic limitations of how much data can be signed at once, generally speaking, a common pattern is to create sub-organizations for each individual user, instead of creating wallets for each user directly on the parent organization. You can read more about how to properly do this in the [Suborganization Guide](../integration-guides/sub-organizations-as-wallets.md) +Due to cryptographic limitations of how much data can be signed at once, generally speaking, a common pattern is to create sub-organizations for each individual user, instead of creating wallets for each user directly on the parent organization. You can read more about how to properly do this in the [Suborganization Guide](../integration-guides/sub-organizations-as-wallets.md). ## Next Steps + - Check out our [examples](/getting-started/examples) to see what can be built - Learn more about [Organizations](/getting-started/organizations) and [Wallets](/getting-started/wallets) - See our [API design](/api-introduction) or dive into our [API reference](/api) From fe8b435aef1e8a5b31c71492f7d1e530065c181d Mon Sep 17 00:00:00 2001 From: Jordan Leigh Date: Fri, 19 Jan 2024 15:30:49 -0500 Subject: [PATCH 5/7] final cleanup --- docs/getting-started/Quickstart-Javascript.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/getting-started/Quickstart-Javascript.md b/docs/getting-started/Quickstart-Javascript.md index f9fabb3..c5adb03 100644 --- a/docs/getting-started/Quickstart-Javascript.md +++ b/docs/getting-started/Quickstart-Javascript.md @@ -190,6 +190,6 @@ Due to cryptographic limitations of how much data can be signed at once, general ## Next Steps -- Check out our [examples](/getting-started/examples) to see what can be built -- Learn more about [Organizations](/getting-started/organizations) and [Wallets](/getting-started/wallets) -- See our [API design](/api-introduction) or dive into our [API reference](/api) +- Check out our [examples](/getting-started/examples) to see what can be built. +- Learn more about [Organizations](/getting-started/organizations) and [Wallets](/getting-started/wallets). +- See our [API design](/api-introduction) or dive into our [API reference](/api). From 0efd2fa94f31bf4e1a7e8822a35ef8399ab6d074 Mon Sep 17 00:00:00 2001 From: Jordan Leigh Date: Mon, 22 Jan 2024 15:18:11 -0500 Subject: [PATCH 6/7] update path of quickstart guide --- docs/getting-started/{Quickstart-Javascript.md => Quickstart.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/getting-started/{Quickstart-Javascript.md => Quickstart.md} (100%) diff --git a/docs/getting-started/Quickstart-Javascript.md b/docs/getting-started/Quickstart.md similarity index 100% rename from docs/getting-started/Quickstart-Javascript.md rename to docs/getting-started/Quickstart.md From ea26ca8e040def160173a9369cce097646aed446 Mon Sep 17 00:00:00 2001 From: Jordan Leigh Date: Wed, 24 Jan 2024 11:26:46 -0500 Subject: [PATCH 7/7] addresses PR feedback --- docs/getting-started/Quickstart.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/getting-started/Quickstart.md b/docs/getting-started/Quickstart.md index c5adb03..6be7c0d 100644 --- a/docs/getting-started/Quickstart.md +++ b/docs/getting-started/Quickstart.md @@ -24,7 +24,7 @@ All API requests require an organization ID. Yours can be located in the user dr style={{ width: 940 }} /> -You'll want to save this somewhere in your code, as you'll need it to make requests to the Turnkey API. +You'll want to reference this in your code or as an environment variable, as you'll need it to make requests to the Turnkey API. ```javascript const TURNKEY_ORGANIZATION_ID = ""; @@ -56,9 +56,9 @@ A couple of notes: - **Any code using a Turnkey API private key should only ever be run server-side.** - Every action on Turnkey will return an `activity`, including creating the API key pair in the previous step. You can read more about the [Turnkey Activity Model here](../policy-management/Policy-language.md#activity-breakdown). -## Require the Turnkey Libraries +## Require the Turnkey Packages -There are two libraries that you will need to make API requests to Turnkey: +There are two packages that you will need to make API requests to Turnkey: 1. The Turnkey HTTP library. 2. A Turnkey "stamper" library. @@ -67,7 +67,7 @@ The stamper library is responsible for signing a request into Turnkey, and comes 2. `webauthn-stamper` which signs requests with a end-user's passkey 3. `iframe-stamper` which is a wrapper around the api-key-stamper and used specifically for Email Recovery and Email Auth -The simplest way to get started, is to use the API Key Stamper to make requests to Turnkey that are signed with the API key pair you created in the previous step. +The simplest way to get started is to use the API Key Stamper to make requests to Turnkey that are signed with the API key pair you created in the previous step. ```shell npm install @turnkey/http @@ -96,7 +96,7 @@ const turnkeyClient = new TurnkeyClient( ## Create a Wallet -A `wallet` on Turnkey represents a multi-chain seed phrase from which many individual `accounts` can be derived. An `account` represents a specific index on a derivation path and contains the blockchain address that you can send funds to and sign on-chain transactions with. The only thing a wallet needs to be initialized is a name for the wallet. +A `wallet` on Turnkey represents a multi-chain seed phrase from which many individual `accounts` can be derived. An `account` represents a specific index on a derivation path and contains the blockchain address that you can send funds to and sign on-chain transactions with. You can learn more about the specifics of Turnkey wallets [here](/getting-started/wallets). The only thing a wallet needs to be initialized is a name for the wallet. ```javascript const response = await turnkeyClient.createWallet({ @@ -116,7 +116,7 @@ const walletId = response.activity.result.createWalletResult.walletId; Once a `wallet` has been created, `accounts` can be created against that `wallet` by passing in the derivation path information for any `accounts` that you want to derive. In this example we will derive Ethereum accounts, using the standard BIP44 Path format. The final number at the end of the path string represents the index in the derivation path that you want to derive the account for. -Note: If desired, you can also create `accounts` in the same API call where you create the `wallet` by passing in the account derivation paths as arguments to the `createWallet` call. +Note: If desired, you can also create `accounts` in the same API call where you create the `wallet` by passing in the account derivation paths as parameters to the `createWallet` call. ```javascript await client.createWalletAccounts({