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.
+
+
+
+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".
+
+
+
+
+
+- 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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