From 47ba6966d0d897698693faf29008c135b5d91757 Mon Sep 17 00:00:00 2001 From: Julien Genestoux Date: Fri, 15 Nov 2024 15:22:21 -0500 Subject: [PATCH] feat(docs): Burn from the docs! (#15085) * adding burn * wip * wip * removed extra dep * adding a UI to burn protocol tokens from the docs * updated docs * udpated yarn.lock --- CODE_OF_CONDUCT.md | 1 - docs/docs/core-protocol/public-lock/hooks.md | 31 +- .../smart-contracts-api/Unlock.md | 14 +- docs/docs/core-protocol/unlock/networks.mdx | 5 + docs/docs/governance/unlock-dao-tokens.mdx | 6 + .../unlock-dao/cross-chain-governance.mdx | 20 +- docs/docs/tools/locksmith/webhooks.md | 6 +- docs/docusaurus.config.ts | 2 +- docs/package.json | 4 +- docs/src/components/Network.js | 281 ++++++- docs/src/components/PrivyWrapper.js | 19 + docs/src/css/custom.css | 1 + docs/src/theme/MDXComponents.js | 7 +- docs/unlock-prism-theme.ts | 58 +- packages/networks/src/networks/mainnet.ts | 2 +- .../up-token-swap-reward-airdrop-now-live-.md | 14 +- yarn.lock | 746 +++--------------- 17 files changed, 476 insertions(+), 741 deletions(-) create mode 100644 docs/src/components/PrivyWrapper.js diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index caee25cc415..2e35fc1c955 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -71,4 +71,3 @@ This Code of Conduct is adapted from the [Contributor Covenant][homepage], versi available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html [homepage]: https://www.contributor-covenant.org - diff --git a/docs/docs/core-protocol/public-lock/hooks.md b/docs/docs/core-protocol/public-lock/hooks.md index 9e51d8e044d..821e65ad666 100644 --- a/docs/docs/core-protocol/public-lock/hooks.md +++ b/docs/docs/core-protocol/public-lock/hooks.md @@ -26,8 +26,7 @@ The `onGrantKeyHook` allows you to create custom logic that is called each time A KeyGrantedHook should implement the following interface. ```solidity -interface ILockKeyGrantHook -{ +interface ILockKeyGrantHook { /** * @notice If the lock owner has registered an implementer then this hook * is called with every key granted. @@ -55,8 +54,7 @@ The `onKeyExtendHook` allows you create custom logic when a key is extended or r A KeyExtendHook should implement the following interface. ```solidity -interface ILockKeyExtendHook -{ +interface ILockKeyExtendHook { /** * @notice This hook every time a key is extended. * @param tokenId tje id of the key @@ -111,15 +109,14 @@ This hook is called every time the `tokenURI()` is called. This allows customiza Want each key owner to have his/her own profile pic? Change description based on your own NFT? Just hook a contract compatible with the `ILockTokenURIHook` interface and return your own tokenURI. ```solidity -interface ILockTokenURIHook -{ +interface ILockTokenURIHook { function tokenURI( address lockAddress, // the address of the lock - address operator, // the msg.sender issuing the call - address owner, // the owner of the key - uint256 keyId, // the id (tokenId) of the key (if applicable) - uint expirationTimestamp // the key expiration timestamp - ) external view returns(string memory); + address operator, // the msg.sender issuing the call + address owner, // the owner of the key + uint256 keyId, // the id (tokenId) of the key (if applicable) + uint expirationTimestamp // the key expiration timestamp + ) external view returns (string memory); } ``` @@ -130,16 +127,13 @@ This hook is called every time the (ERC721) `balanceOf` method is called. This a That way you could whitelist your own NFT holders or DAO members, and provide them access without having them to register. Just use a connector contract compatible with `ILockValidKeyHook` that checks if the account is allowed or not, and register it as a hook. ```solidity -interface ILockValidKeyHook -{ +interface ILockValidKeyHook { function hasValidKey( address lockAddress, // the address of the current lock address keyOwner, // the potential owner of a key uint256 expirationTimestamp, // the key expiration timestamp bool isValidKey // the validity in the lock contract - ) - external view - returns (bool); + ) external view returns (bool); } ``` @@ -150,10 +144,7 @@ Called when a key is transferred, it can be useful to use with `onKeyPurchaseHoo The `ILockKeyTransferHook` interface is quite straightforward: ```solidity - -interface ILockKeyTransferHook -{ - +interface ILockKeyTransferHook { /** * @notice If the lock owner has registered an implementer then this hook * is called every time balanceOf is called diff --git a/docs/docs/core-protocol/smart-contracts-api/Unlock.md b/docs/docs/core-protocol/smart-contracts-api/Unlock.md index f472b72e23d..70f0b994482 100644 --- a/docs/docs/core-protocol/smart-contracts-api/Unlock.md +++ b/docs/docs/core-protocol/smart-contracts-api/Unlock.md @@ -100,14 +100,14 @@ _internally call `createUpgradeableLock`_ #### Parameters -| Name | Type | Description | -| -------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| \_expirationDuration | uint256 | the duration of the lock (pass 0 for unlimited duration) | -| \_tokenAddress | address | set to the ERC20 token address, or 0 for ETH. | -| \_keyPrice | uint256 | the price of each key | -| \_maxNumberOfKeys | uint256 | the maximum numbers of keys to be edited | +| Name | Type | Description | +| -------------------- | ------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| \_expirationDuration | uint256 | the duration of the lock (pass 0 for unlimited duration) | +| \_tokenAddress | address | set to the ERC20 token address, or 0 for ETH. | +| \_keyPrice | uint256 | the price of each key | +| \_maxNumberOfKeys | uint256 | the maximum numbers of keys to be edited | | \_lockName | string | the name of the lock param \_salt [deprec] -- kept only for backwards compatibility This may be implemented as a sequence ID or with RNG. It's used with `create2` to know the lock's address before the transaction is mined. | -| \_5 | bytes12 | undefined | +| \_5 | bytes12 | undefined | #### Returns diff --git a/docs/docs/core-protocol/unlock/networks.mdx b/docs/docs/core-protocol/unlock/networks.mdx index bc3e4604164..fbf42cc0209 100644 --- a/docs/docs/core-protocol/unlock/networks.mdx +++ b/docs/docs/core-protocol/unlock/networks.mdx @@ -19,3 +19,8 @@ The core team has built a `networks` [npm module](https://www.npmjs.com/package/ ))} + +

+[1] We only show the most popular tokens on this network. You can add more +tokens by updating the [network configuration +file](https://github.com/unlock-protocol/unlock/tree/master/packages/networks). diff --git a/docs/docs/governance/unlock-dao-tokens.mdx b/docs/docs/governance/unlock-dao-tokens.mdx index 6deba58e5dc..e8a09630529 100644 --- a/docs/docs/governance/unlock-dao-tokens.mdx +++ b/docs/docs/governance/unlock-dao-tokens.mdx @@ -92,6 +92,12 @@ When the fee switch is set to any value larger than 0%, on every transaction for Currently, the protocol fees collected by way of the fee switch can be "swapped and burned" by calling the `swapAndBurn` function on the Unlock contract. This function will swap the collected fees for UP (or UDT) tokens on a decentralized exchange and then burn them. +Note: the collected fees can only be burnt if the following conditions are met: + +- UP (or UDT) has been bridged and configured on the network +- A Uniswap Pool between the native currency and UP (or UDT) exists on the network +- The Unlock contract has been configured with the address of the Uniswap Pool, as well as the Swap and Burn contract. + ## Bridging and Exchanging UDT and UP In essence, the UP token on Base is an analogous version of the UDT token on mainnet. (In order to eliminate potential confusion between the two tokens, a different name — UP — was chosen on Base.) diff --git a/docs/docs/governance/unlock-dao/cross-chain-governance.mdx b/docs/docs/governance/unlock-dao/cross-chain-governance.mdx index e0ce42f1edc..3d2e31768e4 100644 --- a/docs/docs/governance/unlock-dao/cross-chain-governance.mdx +++ b/docs/docs/governance/unlock-dao/cross-chain-governance.mdx @@ -7,25 +7,25 @@ description: >- import { networks } from '@unlock-protocol/networks' -To fully decentralize the maintenance and management of the protocol contracts, we use a cross-chain governance that allows for a DAO proposal on Ethereum mainnet to reach the Unlock contracts on other networks. +To fully decentralize the maintenance and management of the protocol contracts, we use a cross-chain governance that allows for a DAO proposal to reach the Unlock contracts on all supported networks. ## How it works To reach other chains, calls emitted from the mainnet DAO go through the [Connext bridge](https://www.connext.network/) and are executed on the other side of the bridge, after a period of cooldown. ``` -(mainnet) (destination chain) (cooldown period) -DAO proposal > Connext Bridge > Safe multisig > wait for 2 days > +(Base) (destination chain) +DAO proposal > Connext Bridge > Safe multisig > wait for 2 days > Execution ``` The workflow is as follows -1. A DAO proposal is created, containing 1 call per chain. -2. If the vote succeeds, the DAO proposal is executed. All calls are sent to the Connext bridge(s). +1. A DAO proposal is created, containing at least 1 call aimed at a different network. +2. If the vote succeeds, the DAO proposal is executed. All crosschain calls are sent to the Connext bridge(s). 3. Each call crosses the bridge separately towards its destination on a specific chain. -4. The call is received on the destination chain by a SAFE multisig configured with a special bridge receiver plugin. -5. Once received, the call is held in the multisig for a cooldown period of 2 days during which it can be cancelled. -6. once the cooldown period ends, the call is ready to be executed by anyone +4. The call is received on the destination chain by a SAFE multisig configured with a special bridge receiver Zodiac plugin. This plugin only accepts calls emanating from the Connext bridge, from the DAO's Timelock contract. +5. Once received, the call is held in the multisig for a cooldown period of 2 days during which it can be cancelled by the multisig signers. +6. After the cooldown period, the call is ready to be executed by anyone (signer on the multisig or not). NB: The cooldown period is useful to prevent malicious or errored calls from being executed if the bridge itself has been compromised. @@ -34,7 +34,7 @@ NB: The cooldown period is useful to prevent malicious or errored calls from bei To work, this workflow requires the [Connext bridge](https://bridge.connext.network/), [SAFE contracts](https://safe.global/) and Unlock Protocol to be deployed and active on the network. -The list of supported networks are: +At this point, the supported networks are: export const supportedChains = Object.keys(networks).filter( (chainId) => @@ -54,6 +54,8 @@ export const supportedChains = Object.keys(networks).filter( })} +Please refer to [Connext's docs](https://docs.connext.network/resources/deployments) to identify which network could be added. + ## How to setup the multisig on the "remote" chain On every receiving chain, we need a [SAFE](https://safe.global/) multisig configured with two [Zodiac](https://zodiac.wiki/index.php/ZODIAC.WIKI) plugins, namely: diff --git a/docs/docs/tools/locksmith/webhooks.md b/docs/docs/tools/locksmith/webhooks.md index 1e1a163d0aa..3f53f5450f3 100644 --- a/docs/docs/tools/locksmith/webhooks.md +++ b/docs/docs/tools/locksmith/webhooks.md @@ -13,10 +13,10 @@ Currently, locksmith support sending updates on new locks and keys. To subscribe For examples on using the webhooks checkout the tutorial ["Using Webhooks with the Locksmith API"](../../tutorials/back-end/locksmith-webhooks.md). -Currently the following topics are supported: +Currently the following topics are supported: - New Locks `https://locksmith.unlock-protocol.com/api/hooks/:network/locks` -- New Keys `https://locksmith.unlock-protocol.com/api/hooks/:network/keys` +- New Keys `https://locksmith.unlock-protocol.com/api/hooks/:network/keys` - New Keys for a Lock `https://locksmith.unlock-protocol.com/api/hooks/:network/locks/:lock/keys` -You need to replace `network` and `lock` with the respective network ID and Lock Address. +You need to replace `network` and `lock` with the respective network ID and Lock Address. diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts index 2df6b795ef5..961ea6d329b 100644 --- a/docs/docusaurus.config.ts +++ b/docs/docusaurus.config.ts @@ -24,7 +24,7 @@ const config: Config = { }, blog: false, theme: { - customCss: './src/css/custom.css', + customCss: ['./src/css/custom.css'], }, }, ], diff --git a/docs/package.json b/docs/package.json index 865091887bf..a92c6bbbd03 100644 --- a/docs/package.json +++ b/docs/package.json @@ -7,6 +7,7 @@ "@docusaurus/core": "3.6.1", "@docusaurus/plugin-client-redirects": "3.6.1", "@docusaurus/plugin-content-docs": "3.6.1", + "@docusaurus/preset-classic": "3.6.1", "@docusaurus/theme-classic": "3.6.1", "@emotion/react": "11.13.3", "@emotion/styled": "11.13.0", @@ -14,13 +15,14 @@ "@mdx-js/react": "3.1.0", "@mui/material": "6.1.6", "@mui/x-charts": "7.22.1", + "@privy-io/react-auth": "1.92.6", "@tanstack/react-query": "5.59.16", "@unlock-protocol/networks": "workspace:./packages/networks", + "@unlock-protocol/ui": "workspace:./packages/ui", "clsx": "2.1.1", "docusaurus-gtm-plugin": "0.0.2", "docusaurus-node-polyfills": "1.0.0", "docusaurus-plugin-openapi-docs": "4.2.0", - "docusaurus-preset-openapi": "0.7.5", "docusaurus-theme-openapi-docs": "4.2.0", "ethers": "6.13.4", "prism-react-renderer": "2.4.0", diff --git a/docs/src/components/Network.js b/docs/src/components/Network.js index 1c46e6f44fc..276b1bb9fac 100644 --- a/docs/src/components/Network.js +++ b/docs/src/components/Network.js @@ -1,5 +1,16 @@ +'use client' +import { usePrivy, useWallets } from '@privy-io/react-auth' +import { Button } from '@unlock-protocol/ui' import { useQuery } from '@tanstack/react-query' -import { JsonRpcProvider, Contract, formatUnits, ZeroAddress } from 'ethers' +import { + BrowserProvider, + JsonRpcProvider, + Contract, + formatUnits, + ZeroAddress, + ethers, +} from 'ethers' +import { useEffect, useState } from 'react' const ERC20_ABI = [ 'function balanceOf(address) view returns (uint256)', @@ -46,14 +57,6 @@ const getSymbol = async (provider, tokenAddress) => { return await contract.symbol() } -const getName = async (provider, tokenAddress) => { - if (!tokenAddress) { - return '' - } - const contract = new Contract(tokenAddress, ERC20_ABI, provider) - return await contract.name() -} - const getProtocolFee = async (provider, unlockAddress) => { const contract = new Contract( unlockAddress, @@ -64,40 +67,194 @@ const getProtocolFee = async (provider, unlockAddress) => { return `${(Number(fee) / 100).toFixed(2)}%` } -const getBalances = async (provider, nativeCurrency, tokens, ownerAddress) => { +const getBalances = async ( + provider, + network, + nativeCurrency, + tokens, + ownerAddress +) => { const balances = await Promise.all([ - ...tokens.map(async (token) => { - const contract = new Contract(token.address, ERC20_ABI, provider) - return { - token, - balance: await contract.balanceOf(ownerAddress), - } - }), + ...tokens + .filter((token) => { + // Excluding UDT/UP + return ( + token.address !== network.unlockDaoToken?.address && + token.symbol !== 'UDT' && + token.symbol !== 'UP' + ) + }) + .map(async (token) => { + const contract = new Contract(token.address, ERC20_ABI, provider) + return { + token, + balance: await contract.balanceOf(ownerAddress).catch(() => { + console.error( + `Could not get balance for ${token.address} on ${network.name}` + ) + }), + } + }), { token: { symbol: nativeCurrency.symbol, decimals: nativeCurrency.decimals, }, - balance: await provider.getBalance(ownerAddress), + balance: await provider.getBalance(ownerAddress).catch(() => 0), }, ]) return balances.filter(({ balance }) => balance > 0) } -const BurnableTokens = ({ network }) => { - const provider = new JsonRpcProvider( - network.publicProvider, - network.chainId, - { - batchMaxCount: 10, +const BurnableToken = ({ network, token, balance, reload }) => { + const [hash, setHash] = useState('') + const [burnTx, setBurnTx] = useState(null) + const [burning, setBurning] = useState(false) + const { authenticated, login } = usePrivy() + const { wallets } = useWallets() + + const prepareBurnTx = async () => { + const provider = new JsonRpcProvider(network.provider, network.chainId, {}) + + const unlock = new Contract( + network.unlockAddress, + [ + { + inputs: [ + { internalType: 'address', name: 'token', type: 'address' }, + { internalType: 'uint256', name: 'amount', type: 'uint256' }, + { internalType: 'uint24', name: 'poolFee', type: 'uint24' }, + ], + name: 'swapAndBurn', + outputs: [], + stateMutability: 'nonpayable', + type: 'function', + }, + { + inputs: [], + name: 'swapBurnerAddress', + outputs: [{ internalType: 'address', name: '', type: 'address' }], + stateMutability: 'view', + type: 'function', + }, + ], + provider + ) + + const addressOfTokenToBurn = token.address || ethers.ZeroAddress + let tx + + if (addressOfTokenToBurn === ethers.ZeroAddress) { + try { + tx = await unlock.swapAndBurn.populateTransaction( + token.address || ethers.ZeroAddress, + balance, + 3000 // No need to enter a pool fee for native currency + ) + } catch (e) { + console.error(e) + } + } else { + const fees = [500, 3000, 10000] + for (let fee of fees) { + if (!tx) { + try { + tx = await unlock.swapAndBurn.populateTransaction( + token.address || ethers.ZeroAddress, + balance, + fee // pool for the token, not for UDT/UP + ) + } catch (e) { + console.error(e) + } + } + } + } + try { + const gas = await provider.estimateGas(tx) + setBurnTx(tx) + } catch (e) { + console.error(e) + } + } + + useEffect(() => { + prepareBurnTx() + }, []) + + const burn = async () => { + if (!authenticated) { + login() + setBurning(true) + } else { + // Get a signer + const provider = new BrowserProvider( + await wallets[0].getEthereumProvider() + ) + const signer = await provider.getSigner() + + // switch network + await provider.send('wallet_switchEthereumChain', [ + { + chainId: `0x${network.id.toString(16)}`, + }, + ]) + + if (burnTx) { + try { + const transaction = await signer.sendTransaction(burnTx) + setHash(transaction.hash) + await transaction.wait() + } catch (error) { + console.error(error) + // TODO: replace with Toast once we have UI package + alert('The transaction to burn tokens could not be sent.') + } + await reload() + setBurning(false) + } else { + // TODO: replace with Toast once we have UI package + alert('We could find a way to burn this token.') + } + setBurning(false) } + } + + useEffect(() => { + if (burning && authenticated) { + // resume burning! + burn() + } + }, [burning, authenticated]) + + return ( +
  • + {Number(formatUnits(balance, token.decimals)).toFixed(4)} {token.symbol}{' '} + {burnTx && ( + + )}{' '} + {hash && ( + + Transaction + + )} +
  • ) +} + +const BurnableTokens = ({ network }) => { + const provider = new JsonRpcProvider(network.provider, network.chainId, { + batchMaxCount: 10, + }) - const { data: balances } = useQuery({ + const { data: balances, refetch } = useQuery({ queryKey: ['getBalances', network.tokens, network.unlockAddress], queryFn: () => { return getBalances( provider, + network, network.nativeCurrency, network.tokens, network.unlockAddress @@ -107,20 +264,59 @@ const BurnableTokens = ({ network }) => { if (!balances || balances.length === 0) { return null } + return (
  • - Burnable tokens:{' '} - {balances - .map(({ token, balance }) => { - return `${Number(formatUnits(balance, token.decimals)).toFixed(2)} ${token.symbol}` - }) - .join(', ')} + Burnable tokens{' '} + [1]:{' '} +
      + {balances.map(({ token, balance }) => { + return ( + + ) + })} +
    +
  • + ) +} + +const BurnedTokens = ({ network }) => { + const burnAddress = '0x000000000000000000000000000000000000dEaD' + const provider = new JsonRpcProvider(network.provider) + const { data: burnedTokens } = useQuery({ + queryKey: ['getBalance', network.unlockDaoToken?.address, burnAddress], + queryFn: () => { + return getBalance(provider, network.unlockDaoToken?.address, burnAddress) + }, + enabled: !!network.unlockDaoToken?.address, + }) + if (!burnedTokens) { + return null + } + return ( +
  • + Burned Governance Tokens :{' '} + + {burnedTokens} +
  • ) } export const SupportedNetwork = ({ network }) => { - const provider = new JsonRpcProvider(network.publicProvider) + const provider = new JsonRpcProvider(network.provider) const { data: udtBalance } = useQuery({ queryKey: [ 'getBalance', @@ -159,7 +355,13 @@ export const SupportedNetwork = ({ network }) => {
  • - + + Controlled by the DAO + + : {network.dao ? '✅' : '❌'} +
  • +
  • + Protocol Reward :{' '} @@ -167,15 +369,19 @@ export const SupportedNetwork = ({ network }) => { ? `✅ ${udtBalance} to be distributed` : '❌'}
  • -
  • Protocol Fee: {protocolFee}
  • +
  • + Protocol Fee:{' '} + {protocolFee} +
  • + ) } export const TokenNetwork = ({ network }) => { - const provider = new JsonRpcProvider(network.publicProvider) + const provider = new JsonRpcProvider(network.provider) const { data: udt } = useQuery({ queryKey: ['getUdt', network.unlockAddress, network.id], queryFn: async () => { @@ -211,8 +417,3 @@ export const TokenNetwork = ({ network }) => { ) } - -// export const Network = ({ network }) => { -// return ( -// ) -// } diff --git a/docs/src/components/PrivyWrapper.js b/docs/src/components/PrivyWrapper.js new file mode 100644 index 00000000000..9beaef47cb4 --- /dev/null +++ b/docs/src/components/PrivyWrapper.js @@ -0,0 +1,19 @@ +// src/components/PrivyWrapper.js +import React from 'react' +import { PrivyProvider } from '@privy-io/react-auth' + +const PrivyWrapper = ({ children }) => { + return ( + + {children} + + ) +} + +export default PrivyWrapper diff --git a/docs/src/css/custom.css b/docs/src/css/custom.css index 19d31e7d542..1e543178568 100644 --- a/docs/src/css/custom.css +++ b/docs/src/css/custom.css @@ -1,3 +1,4 @@ +/* TODO: replace with ../packages/ui/dist/style.css */ /** * Any CSS included here will be global. The classic template * bundles Infima by default. Infima is a CSS framework designed to diff --git a/docs/src/theme/MDXComponents.js b/docs/src/theme/MDXComponents.js index ccbcbee8792..55dbfa13683 100644 --- a/docs/src/theme/MDXComponents.js +++ b/docs/src/theme/MDXComponents.js @@ -2,8 +2,13 @@ import React from 'react' import OriginalMDXComponents from '@theme-original/MDXComponents' import QueryWrapper from '../components/QueryWrapper' +import PrivyWrapper from '../components/PrivyWrapper' export default { ...OriginalMDXComponents, - wrapper: ({ children }) => {children}, + wrapper: ({ children }) => ( + + {children} + + ), } diff --git a/docs/unlock-prism-theme.ts b/docs/unlock-prism-theme.ts index 5f19a9785f8..68b9dff2505 100644 --- a/docs/unlock-prism-theme.ts +++ b/docs/unlock-prism-theme.ts @@ -1,79 +1,79 @@ interface StyleDefinition { - types: string[]; + types: string[] style: { - color: string; - }; + color: string + } } interface PrismTheme { plain: { - color: string; - backgroundColor: string; - }; - styles: StyleDefinition[]; + color: string + backgroundColor: string + } + styles: StyleDefinition[] } const UnlockPrismTheme: PrismTheme = { plain: { - color: "#FFF7E8", - backgroundColor: "#020207", + color: '#FFF7E8', + backgroundColor: '#020207', }, styles: [ { - types: ["prolog", "constant", "builtin"], + types: ['prolog', 'constant', 'builtin'], style: { - color: "#FF6771", + color: '#FF6771', }, }, { - types: ["inserted", "function"], + types: ['inserted', 'function'], style: { - color: "rgb(80, 250, 123)", + color: 'rgb(80, 250, 123)', }, }, { - types: ["deleted"], + types: ['deleted'], style: { - color: "rgb(255, 85, 85)", + color: 'rgb(255, 85, 85)', }, }, { - types: ["changed"], + types: ['changed'], style: { - color: "rgb(255, 184, 108)", + color: 'rgb(255, 184, 108)', }, }, { - types: ["punctuation", "symbol"], + types: ['punctuation', 'symbol'], style: { - color: "rgb(248, 248, 242)", + color: 'rgb(248, 248, 242)', }, }, { - types: ["string", "char", "tag", "selector"], + types: ['string', 'char', 'tag', 'selector'], style: { - color: "#FF6771", + color: '#FF6771', }, }, { - types: ["keyword", "variable"], + types: ['keyword', 'variable'], style: { - color: "rgb(189, 147, 249)", + color: 'rgb(189, 147, 249)', }, }, { - types: ["comment"], + types: ['comment'], style: { - color: "rgb(98, 114, 164)", + color: 'rgb(98, 114, 164)', }, }, { - types: ["attr-name"], + types: ['attr-name'], style: { - color: "rgb(241, 250, 140)", + color: 'rgb(241, 250, 140)', }, }, ], -}; +} -export default UnlockPrismTheme; +export default UnlockPrismTheme diff --git a/packages/networks/src/networks/mainnet.ts b/packages/networks/src/networks/mainnet.ts index 8665401ddf3..d18e3598f4e 100644 --- a/packages/networks/src/networks/mainnet.ts +++ b/packages/networks/src/networks/mainnet.ts @@ -24,7 +24,7 @@ export const mainnet: NetworkConfig = { address: (address) => `https://etherscan.io/address/${address}`, base: 'https://etherscan.io/', token: (address, holder) => - `https://etherscan.com/token/${address}?a=${holder}`, + `https://etherscan.io/token/${address}?a=${holder}`, transaction: (hash) => `https://etherscan.io/tx/${hash}`, }, }, diff --git a/unlock-protocol-com/blog/up-token-swap-reward-airdrop-now-live-.md b/unlock-protocol-com/blog/up-token-swap-reward-airdrop-now-live-.md index 25509ebd3c9..bd3d0e4a62a 100644 --- a/unlock-protocol-com/blog/up-token-swap-reward-airdrop-now-live-.md +++ b/unlock-protocol-com/blog/up-token-swap-reward-airdrop-now-live-.md @@ -1,12 +1,12 @@ --- -title: "UP Token Swap Reward Airdrop Now Live!" -subtitle: "" -authorName: "Unlock Protocol" -publishDate: "Fri Nov 01 2024 17:06:35 GMT+0000 (Coordinated Universal Time)" -description: "The Unlock DAO migration to Base is complete, and the UP token swap reward airdrop, totaling 1.061 million UP tokens, is now live for all eligible participants." -image: "/images/blog/up-token-swap-reward-airdrop-now-live-/a559894d55a07ce1aa0e64509cfb6670.jpg" +title: 'UP Token Swap Reward Airdrop Now Live!' +subtitle: '' +authorName: 'Unlock Protocol' +publishDate: 'Fri Nov 01 2024 17:06:35 GMT+0000 (Coordinated Universal Time)' +description: 'The Unlock DAO migration to Base is complete, and the UP token swap reward airdrop, totaling 1.061 million UP tokens, is now live for all eligible participants.' +image: '/images/blog/up-token-swap-reward-airdrop-now-live-/a559894d55a07ce1aa0e64509cfb6670.jpg' --- ![UP Token Swap Reward Airdrop Now Live!](https://storage.googleapis.com/papyrus_images/a559894d55a07ce1aa0e64509cfb6670.jpg) -

    The Unlock DAO migration to Base is complete, and the UP token bridge and swap reward airdrop totaling 1.061 million UP tokens is now live for all eligible participants! The tokens for this airdrop were provided by the Unlock Protocol Foundation.

    With the migration from Ethereum mainnet to Base, the Unlock Protocol DAO has created a more efficient and scalable governance environment for Unlock DAO members.

    To encourage Unlock Protocol DAO members to move their UDT governance tokens from mainnet to the UP governance token on Base, incentives were put in place to reward users who bridge and hold UP on Base.

    The first airdrop reward goes live today. This reward benefits those who bridged UDT from mainnet and held UP on Base in the time period between when the migration began and now.

    Rewards are based on how long UP tokens were held without transfer, with early adopters receiving the largest bonuses. For example, users who swapped to UP in mid-August earn rewards that are larger than those who swapped closer to the October deadline.

    This strategy rewards loyal holders and incentivized others to join early and maximize their potential rewards.

    Throughout the remainder of 2024 and possibly beyond, additional incentives may be announced, with timing and terms subject to change.

    The Unlock community is committed to rewarding its members’ participation.

    How the Airdrop Was Done

    The Unlock Labs team created a script using the swap transactions during the reward period to calculate reward eligibility based on the rewards table shown above. The script is here.

    The script outputs a file containing the eligible transactions and associated reward information for eligible wallets.

    The output from that script is fed into tool called Merkl from Angle Money. The Merkl app is used to claim the reward. (The Merkl app creates campaigns to airdrop tokens to a wide range of users based on a JSON file or based on their token holdings at a given moment in time, among other capabilities.)

    Here is a link to the UP reward campaign page in Merkl. It looks like this.

    In the upper left corner of the page is a link to show all the eligible addresses for the UP airdrop, if you want to dig into the details.

    You can click on the link to see all the eligible addresses, and see the swap transactions that qualified for an UP airdrop as calculated by the script.

    The file behind that link is a JSON file, and you should be able to do a Ctrl-F search in your browser to find your wallet address and see the rewards-eligible swap transactions associated with your wallet. Here’s a snippet as an example, searching on the wallet address of 0x4846162806B025Dcd0759cACF9ec6F9474274282.

    In this snippet, you can see the wallet at 0x4846162806B025Dcd0759cACF9ec6F9474274282 swapped in three transactions and is eligible for the corresponding reward for each transaction based on the amount swapped and the timing of the transaction. The number on the right side of each line is the eligible reward (in an “18 decimal place” format).

    How to Claim Your Reward

    1. Go to the campaign page here and click into your Dashboard. Connect your wallet if it’s not connected yet.

    1. If eligible, you will see your rewards on your dashboard in the “Unclaimed Rewards” section.

    1. Click “Claim Selection” and the awards will be transferred to your wallet.

    Governance participation is a cornerstone of the Unlock Protocol DAO's success and ongoing development. By actively engaging in governance processes, community members shape the future direction of the protocol, ensure its alignment with user needs, and contribute to its overall resilience and adaptability.

    The Unlock Protocol DAO deeply appreciates the time, effort, and expertise that each community member brings as the DAO starts this new chapter on Base. Whether through voting on proposals, contributing ideas, or participating in discussions, every community member plays a vital role in the DAO's ecosystem.

    This collective effort not only strengthens the protocol but also fosters a sense of shared ownership and responsibility. The community recognizes and values these contributions — the strength of the community is what drives Unlock Protocol forward.

    Stay tuned for announcements on additional incentives and updates as the Unlock Protocol DAO continues to grow and evolve!

    \ No newline at end of file +

    The Unlock DAO migration to Base is complete, and the UP token bridge and swap reward airdrop totaling 1.061 million UP tokens is now live for all eligible participants! The tokens for this airdrop were provided by the Unlock Protocol Foundation.

    With the migration from Ethereum mainnet to Base, the Unlock Protocol DAO has created a more efficient and scalable governance environment for Unlock DAO members.

    To encourage Unlock Protocol DAO members to move their UDT governance tokens from mainnet to the UP governance token on Base, incentives were put in place to reward users who bridge and hold UP on Base.

    The first airdrop reward goes live today. This reward benefits those who bridged UDT from mainnet and held UP on Base in the time period between when the migration began and now.

    Rewards are based on how long UP tokens were held without transfer, with early adopters receiving the largest bonuses. For example, users who swapped to UP in mid-August earn rewards that are larger than those who swapped closer to the October deadline.

    This strategy rewards loyal holders and incentivized others to join early and maximize their potential rewards.

    Throughout the remainder of 2024 and possibly beyond, additional incentives may be announced, with timing and terms subject to change.

    The Unlock community is committed to rewarding its members’ participation.

    How the Airdrop Was Done

    The Unlock Labs team created a script using the swap transactions during the reward period to calculate reward eligibility based on the rewards table shown above. The script is here.

    The script outputs a file containing the eligible transactions and associated reward information for eligible wallets.

    The output from that script is fed into tool called Merkl from Angle Money. The Merkl app is used to claim the reward. (The Merkl app creates campaigns to airdrop tokens to a wide range of users based on a JSON file or based on their token holdings at a given moment in time, among other capabilities.)

    Here is a link to the UP reward campaign page in Merkl. It looks like this.

    In the upper left corner of the page is a link to show all the eligible addresses for the UP airdrop, if you want to dig into the details.

    You can click on the link to see all the eligible addresses, and see the swap transactions that qualified for an UP airdrop as calculated by the script.

    The file behind that link is a JSON file, and you should be able to do a Ctrl-F search in your browser to find your wallet address and see the rewards-eligible swap transactions associated with your wallet. Here’s a snippet as an example, searching on the wallet address of 0x4846162806B025Dcd0759cACF9ec6F9474274282.

    In this snippet, you can see the wallet at 0x4846162806B025Dcd0759cACF9ec6F9474274282 swapped in three transactions and is eligible for the corresponding reward for each transaction based on the amount swapped and the timing of the transaction. The number on the right side of each line is the eligible reward (in an “18 decimal place” format).

    How to Claim Your Reward

    1. Go to the campaign page here and click into your Dashboard. Connect your wallet if it’s not connected yet.

    1. If eligible, you will see your rewards on your dashboard in the “Unclaimed Rewards” section.

    1. Click “Claim Selection” and the awards will be transferred to your wallet.

    Governance participation is a cornerstone of the Unlock Protocol DAO's success and ongoing development. By actively engaging in governance processes, community members shape the future direction of the protocol, ensure its alignment with user needs, and contribute to its overall resilience and adaptability.

    The Unlock Protocol DAO deeply appreciates the time, effort, and expertise that each community member brings as the DAO starts this new chapter on Base. Whether through voting on proposals, contributing ideas, or participating in discussions, every community member plays a vital role in the DAO's ecosystem.

    This collective effort not only strengthens the protocol but also fosters a sense of shared ownership and responsibility. The community recognizes and values these contributions — the strength of the community is what drives Unlock Protocol forward.

    Stay tuned for announcements on additional incentives and updates as the Unlock Protocol DAO continues to grow and evolve!

    diff --git a/yarn.lock b/yarn.lock index 481079507e6..5ee519bcbb3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3329,7 +3329,7 @@ __metadata: languageName: node linkType: hard -"@docusaurus/mdx-loader@npm:3.6.1, @docusaurus/mdx-loader@npm:^3.2.0": +"@docusaurus/mdx-loader@npm:3.6.1": version: 3.6.1 resolution: "@docusaurus/mdx-loader@npm:3.6.1" dependencies: @@ -3432,7 +3432,7 @@ __metadata: languageName: node linkType: hard -"@docusaurus/plugin-content-docs@npm:3.6.1, @docusaurus/plugin-content-docs@npm:^3.2.0, @docusaurus/plugin-content-docs@npm:^3.5.0": +"@docusaurus/plugin-content-docs@npm:3.6.1, @docusaurus/plugin-content-docs@npm:^3.5.0": version: 3.6.1 resolution: "@docusaurus/plugin-content-docs@npm:3.6.1" dependencies: @@ -3562,7 +3562,7 @@ __metadata: languageName: node linkType: hard -"@docusaurus/preset-classic@npm:^3.2.0": +"@docusaurus/preset-classic@npm:3.6.1": version: 3.6.1 resolution: "@docusaurus/preset-classic@npm:3.6.1" dependencies: @@ -3623,7 +3623,7 @@ __metadata: languageName: node linkType: hard -"@docusaurus/theme-common@npm:3.6.1, @docusaurus/theme-common@npm:^3.2.0, @docusaurus/theme-common@npm:^3.5.0": +"@docusaurus/theme-common@npm:3.6.1, @docusaurus/theme-common@npm:^3.5.0": version: 3.6.1 resolution: "@docusaurus/theme-common@npm:3.6.1" dependencies: @@ -3704,7 +3704,7 @@ __metadata: languageName: node linkType: hard -"@docusaurus/utils-common@npm:3.6.1, @docusaurus/utils-common@npm:^3.2.0": +"@docusaurus/utils-common@npm:3.6.1": version: 3.6.1 resolution: "@docusaurus/utils-common@npm:3.6.1" dependencies: @@ -3714,7 +3714,7 @@ __metadata: languageName: node linkType: hard -"@docusaurus/utils-validation@npm:3.6.1, @docusaurus/utils-validation@npm:^3.2.0, @docusaurus/utils-validation@npm:^3.5.0": +"@docusaurus/utils-validation@npm:3.6.1, @docusaurus/utils-validation@npm:^3.5.0": version: 3.6.1 resolution: "@docusaurus/utils-validation@npm:3.6.1" dependencies: @@ -3730,7 +3730,7 @@ __metadata: languageName: node linkType: hard -"@docusaurus/utils@npm:3.6.1, @docusaurus/utils@npm:^3.2.0, @docusaurus/utils@npm:^3.5.0": +"@docusaurus/utils@npm:3.6.1, @docusaurus/utils@npm:^3.5.0": version: 3.6.1 resolution: "@docusaurus/utils@npm:3.6.1" dependencies: @@ -7415,30 +7415,6 @@ __metadata: languageName: node linkType: hard -"@monaco-editor/loader@npm:^1.4.0": - version: 1.4.0 - resolution: "@monaco-editor/loader@npm:1.4.0" - dependencies: - state-local: "npm:^1.0.6" - peerDependencies: - monaco-editor: ">= 0.21.0 < 1" - checksum: 10/32ad01de015fc187450aa1cc0aa763af167664b6a61efcb9e1523a0f51ca5d0b35ba11ed95889edd6d774dfe98f196ef58f1607243abcbdd3d6d743f82ba8285 - languageName: node - linkType: hard - -"@monaco-editor/react@npm:^4.3.1": - version: 4.6.0 - resolution: "@monaco-editor/react@npm:4.6.0" - dependencies: - "@monaco-editor/loader": "npm:^1.4.0" - peerDependencies: - monaco-editor: ">= 0.25.0 < 1" - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 10/e32724ebcc2fc81e91169d69eff8533e15a595c13156ec57965238a0f0afa67e2ed2abbf735a57cfaae15430bbc905b016b644bf7383a82d607501d557a6dd82 - languageName: node - linkType: hard - "@motionone/animation@npm:^10.15.1, @motionone/animation@npm:^10.18.0": version: 10.18.0 resolution: "@motionone/animation@npm:10.18.0" @@ -11200,6 +11176,29 @@ __metadata: languageName: node linkType: hard +"@privy-io/js-sdk-core@npm:0.30.3": + version: 0.30.3 + resolution: "@privy-io/js-sdk-core@npm:0.30.3" + dependencies: + "@ethersproject/abstract-signer": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/contracts": "npm:^5.7.0" + "@ethersproject/providers": "npm:^5.7.2" + "@ethersproject/transactions": "npm:^5.7.0" + "@ethersproject/units": "npm:^5.7.0" + "@privy-io/api-base": "npm:^1.4.0" + "@privy-io/public-api": "npm:2.11.6" + eventemitter3: "npm:^5.0.1" + fetch-retry: "npm:^5.0.6" + jose: "npm:^4.15.5" + js-cookie: "npm:^3.0.5" + libphonenumber-js: "npm:^1.10.44" + set-cookie-parser: "npm:^2.6.0" + uuid: "npm:>=8 <10" + checksum: 10/33f666ed5a017bd55bfa4773a52b55617f517904f5850aca3a15cf891847e7c2a77c04b9d72fde3d47a165c0ded749e1e5970b660df9c536fec2cf990047cd2c + languageName: node + linkType: hard + "@privy-io/js-sdk-core@npm:0.30.4": version: 0.30.4 resolution: "@privy-io/js-sdk-core@npm:0.30.4" @@ -11223,6 +11222,19 @@ __metadata: languageName: node linkType: hard +"@privy-io/public-api@npm:2.11.6": + version: 2.11.6 + resolution: "@privy-io/public-api@npm:2.11.6" + dependencies: + "@privy-io/api-base": "npm:1.4.0" + bs58: "npm:^5.0.0" + ethers: "npm:^5.7.2" + libphonenumber-js: "npm:^1.10.31" + zod: "npm:^3.22.4" + checksum: 10/8c303bba013070891a1ad976b16565bbfbe67185f96e2648f48a1f729866516a08a056901ee2ec09d519dcccddfceebd45a3c2b50c2ab58206eddb9a4c1832d1 + languageName: node + linkType: hard + "@privy-io/public-api@npm:2.12.0": version: 2.12.0 resolution: "@privy-io/public-api@npm:2.12.0" @@ -11236,6 +11248,68 @@ __metadata: languageName: node linkType: hard +"@privy-io/react-auth@npm:1.92.6": + version: 1.92.6 + resolution: "@privy-io/react-auth@npm:1.92.6" + dependencies: + "@coinbase/wallet-sdk": "npm:4.0.3" + "@ethersproject/abstract-signer": "npm:^5.7.0" + "@ethersproject/address": "npm:^5.7.0" + "@ethersproject/bignumber": "npm:^5.7.0" + "@ethersproject/bytes": "npm:^5.7.0" + "@ethersproject/contracts": "npm:^5.7.0" + "@ethersproject/logger": "npm:^5.7.0" + "@ethersproject/providers": "npm:^5.7.1" + "@ethersproject/strings": "npm:^5.7.0" + "@ethersproject/transactions": "npm:^5.7.0" + "@ethersproject/units": "npm:^5.7.0" + "@floating-ui/react": "npm:^0.26.22" + "@headlessui/react": "npm:^1.7.18" + "@heroicons/react": "npm:^2.1.1" + "@marsidev/react-turnstile": "npm:^0.4.1" + "@metamask/eth-sig-util": "npm:^6.0.0" + "@privy-io/js-sdk-core": "npm:0.30.3" + "@simplewebauthn/browser": "npm:^9.0.1" + "@solana/wallet-adapter-base": "npm:^0.9.23" + "@solana/wallet-standard-wallet-adapter-base": "npm:^1.1.2" + "@solana/wallet-standard-wallet-adapter-react": "npm:^1.1.2" + "@wallet-standard/app": "npm:^1.0.1" + "@walletconnect/ethereum-provider": "npm:^2.15.1" + "@walletconnect/modal": "npm:^2.6.2" + base64-js: "npm:^1.5.1" + dotenv: "npm:^16.0.3" + encoding: "npm:^0.1.13" + eventemitter3: "npm:^5.0.1" + fast-password-entropy: "npm:^1.1.1" + jose: "npm:^4.15.5" + js-cookie: "npm:^3.0.5" + lokijs: "npm:^1.5.12" + md5: "npm:^2.3.0" + mipd: "npm:^0.0.7" + ofetch: "npm:^1.3.4" + permissionless: "npm:^0.2.10" + pino-pretty: "npm:^10.0.0" + qrcode: "npm:^1.5.1" + react-device-detect: "npm:^2.2.2" + secure-password-utilities: "npm:^0.2.1" + styled-components: "npm:^6.1.13" + stylis: "npm:^4.3.4" + tinycolor2: "npm:^1.6.0" + uuid: "npm:>=8 <10" + viem: "npm:^2.21.9" + web3-core: "npm:^1.8.0" + web3-core-helpers: "npm:^1.8.0" + peerDependencies: + "@solana/web3.js": ^1.95.3 + react: ^18 || ^19 + react-dom: ^18 || ^19 + peerDependenciesMeta: + "@solana/web3.js": + optional: true + checksum: 10/3645c5eb1341d8d4d82200c8483a906a70b2e7b3d65797187e9e9ff16bc0776b5a130647630957f0ae585eb67ed6b0fd7bebaf858365e5ec2930ac97d3fc4b9e + languageName: node + linkType: hard + "@privy-io/react-auth@npm:1.92.7": version: 1.92.7 resolution: "@privy-io/react-auth@npm:1.92.7" @@ -15778,7 +15852,7 @@ __metadata: languageName: node linkType: hard -"@types/prismjs@npm:^1.0.0, @types/prismjs@npm:^1.26.0": +"@types/prismjs@npm:^1.26.0": version: 1.26.5 resolution: "@types/prismjs@npm:1.26.5" checksum: 10/617099479db9550119d0f84272dc79d64b2cf3e0d7a17167fe740d55fdf0f155697d935409464392d164e62080c2c88d649cf4bc4fdd30a87127337536657277 @@ -16540,6 +16614,7 @@ __metadata: "@docusaurus/core": "npm:3.6.1" "@docusaurus/plugin-client-redirects": "npm:3.6.1" "@docusaurus/plugin-content-docs": "npm:3.6.1" + "@docusaurus/preset-classic": "npm:3.6.1" "@docusaurus/theme-classic": "npm:3.6.1" "@emotion/react": "npm:11.13.3" "@emotion/styled": "npm:11.13.0" @@ -16547,13 +16622,14 @@ __metadata: "@mdx-js/react": "npm:3.1.0" "@mui/material": "npm:6.1.6" "@mui/x-charts": "npm:7.22.1" + "@privy-io/react-auth": "npm:1.92.6" "@tanstack/react-query": "npm:5.59.16" "@unlock-protocol/networks": "workspace:./packages/networks" + "@unlock-protocol/ui": "workspace:./packages/ui" clsx: "npm:2.1.1" docusaurus-gtm-plugin: "npm:0.0.2" docusaurus-node-polyfills: "npm:1.0.0" docusaurus-plugin-openapi-docs: "npm:4.2.0" - docusaurus-preset-openapi: "npm:0.7.5" docusaurus-theme-openapi-docs: "npm:4.2.0" ethers: "npm:6.13.4" prism-react-renderer: "npm:2.4.0" @@ -18468,18 +18544,6 @@ __metadata: languageName: node linkType: hard -"ajv@npm:6.12.3": - version: 6.12.3 - resolution: "ajv@npm:6.12.3" - dependencies: - fast-deep-equal: "npm:^3.1.1" - fast-json-stable-stringify: "npm:^2.0.0" - json-schema-traverse: "npm:^0.4.1" - uri-js: "npm:^4.2.2" - checksum: 10/0c7e4423e924c4a3664dff3732ecdb37039954d0548ad06d1672a04ae2381592cd9405a04bf6d05b9810312a97767f0e4047597b3fc27cb89436809787c4a3b0 - languageName: node - linkType: hard - "ajv@npm:8.11.0": version: 8.11.0 resolution: "ajv@npm:8.11.0" @@ -19179,7 +19243,7 @@ __metadata: languageName: node linkType: hard -"array-uniq@npm:1.0.3, array-uniq@npm:^1.0.2": +"array-uniq@npm:1.0.3": version: 1.0.3 resolution: "array-uniq@npm:1.0.3" checksum: 10/1625f06b093d8bf279b81adfec6e72951c0857d65b5e3f65f053fffe9f9dd61c2fc52cff57e38a4700817e7e3f01a4faa433d505ea9e33cdae4514c334e0bf9e @@ -19518,13 +19582,6 @@ __metadata: languageName: node linkType: hard -"async@npm:3.2.0": - version: 3.2.0 - resolution: "async@npm:3.2.0" - checksum: 10/78e77fbce970212c6dfe7342eed428bb572230a8c13c45b8c0853be50aaf1d2ceb5efb70b95012394307a2a8a6617095216c5cac7d1df8332cbfd53fa9f1cbd3 - languageName: node - linkType: hard - "async@npm:3.2.2": version: 3.2.2 resolution: "async@npm:3.2.2" @@ -22201,7 +22258,7 @@ __metadata: languageName: node linkType: hard -"commander@npm:^4.0.0, commander@npm:~4.1.1": +"commander@npm:^4.0.0": version: 4.1.1 resolution: "commander@npm:4.1.1" checksum: 10/3b2dc4125f387dab73b3294dbcb0ab2a862f9c0ad748ee2b27e3544d25325b7a8cdfbcc228d103a98a716960b14478114a5206b5415bd48cdafa38797891562c @@ -22632,7 +22689,7 @@ __metadata: languageName: node linkType: hard -"cookiejar@npm:^2.1.3, cookiejar@npm:^2.1.4": +"cookiejar@npm:^2.1.4": version: 2.1.4 resolution: "cookiejar@npm:2.1.4" checksum: 10/4a184f5a0591df8b07d22a43ea5d020eacb4572c383e853a33361a99710437eaa0971716c688684075bbf695b484f5872e9e3f562382e46858716cb7fc8ce3f4 @@ -24713,38 +24770,6 @@ __metadata: languageName: node linkType: hard -"docusaurus-plugin-openapi@npm:^0.7.5": - version: 0.7.5 - resolution: "docusaurus-plugin-openapi@npm:0.7.5" - dependencies: - "@docusaurus/mdx-loader": "npm:^3.2.0" - "@docusaurus/plugin-content-docs": "npm:^3.2.0" - "@docusaurus/utils": "npm:^3.2.0" - "@docusaurus/utils-common": "npm:^3.2.0" - "@docusaurus/utils-validation": "npm:^3.2.0" - chalk: "npm:^4.1.2" - clsx: "npm:^1.2.1" - js-yaml: "npm:^4.1.0" - json-refs: "npm:^3.0.15" - json-schema-resolve-allof: "npm:^1.5.0" - lodash: "npm:^4.17.20" - openapi-to-postmanv2: "npm:^1.2.1" - postman-collection: "npm:^4.1.0" - webpack: "npm:^5.88.1" - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - checksum: 10/10cccd493feaf92dab1bfe23330b1d01fbac5ed6723d8273b27eaa5f92888402fdeec1c0ba208fe833d86d8fd073b437dab116d7f9170d2cd101b5ef5313f4f6 - languageName: node - linkType: hard - -"docusaurus-plugin-proxy@npm:^0.7.5": - version: 0.7.5 - resolution: "docusaurus-plugin-proxy@npm:0.7.5" - checksum: 10/80f01985f17ed36ed56ead222f69b05d6dee40791fd105f67205db0d7bf7ffc2a4096fd43dd8547f3760af87a7b68eeab52b11cf1c0132167434fef34364911b - languageName: node - linkType: hard - "docusaurus-plugin-sass@npm:^0.2.3": version: 0.2.5 resolution: "docusaurus-plugin-sass@npm:0.2.5" @@ -24757,21 +24782,6 @@ __metadata: languageName: node linkType: hard -"docusaurus-preset-openapi@npm:0.7.5": - version: 0.7.5 - resolution: "docusaurus-preset-openapi@npm:0.7.5" - dependencies: - "@docusaurus/preset-classic": "npm:^3.2.0" - docusaurus-plugin-openapi: "npm:^0.7.5" - docusaurus-plugin-proxy: "npm:^0.7.5" - docusaurus-theme-openapi: "npm:^0.7.5" - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - checksum: 10/1025acdd75ee5d4248732ae0d406b5352d7284c6641e7d9698659bc2ffbf92c9127ced0f9e753490271d83a52cd7a9b99e147014113cfca04be36a7f5c7e5a86 - languageName: node - linkType: hard - "docusaurus-theme-openapi-docs@npm:4.2.0": version: 4.2.0 resolution: "docusaurus-theme-openapi-docs@npm:4.2.0" @@ -24810,39 +24820,6 @@ __metadata: languageName: node linkType: hard -"docusaurus-theme-openapi@npm:^0.7.5": - version: 0.7.5 - resolution: "docusaurus-theme-openapi@npm:0.7.5" - dependencies: - "@docusaurus/theme-common": "npm:^3.2.0" - "@mdx-js/react": "npm:^3.0.0" - "@monaco-editor/react": "npm:^4.3.1" - "@reduxjs/toolkit": "npm:^1.7.1" - buffer: "npm:^6.0.3" - clsx: "npm:^1.2.1" - crypto-js: "npm:^4.1.1" - docusaurus-plugin-openapi: "npm:^0.7.5" - immer: "npm:^9.0.7" - lodash: "npm:^4.17.20" - marked: "npm:^11.0.0" - monaco-editor: "npm:^0.31.1" - postman-code-generators: "npm:^1.0.0" - postman-collection: "npm:^4.1.0" - prism-react-renderer: "npm:^2.1.0" - process: "npm:^0.11.10" - react-magic-dropzone: "npm:^1.0.1" - react-redux: "npm:^7.2.0" - redux-devtools-extension: "npm:^2.13.8" - refractor: "npm:^4.8.1" - striptags: "npm:^3.2.0" - webpack: "npm:^5.88.1" - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - checksum: 10/02cdff88a8d0496519b58c4c2ba2291ac226e3f42546a38bbef2d224e86c9e129146d05a86fcb7641f7a5db20db69e34ba37b9ad33f88bb5f41fe0b340d3fae9 - languageName: node - linkType: hard - "dom-accessibility-api@npm:^0.5.9": version: 0.5.16 resolution: "dom-accessibility-api@npm:0.5.16" @@ -24869,16 +24846,6 @@ __metadata: languageName: node linkType: hard -"dom-serializer@npm:0": - version: 0.2.2 - resolution: "dom-serializer@npm:0.2.2" - dependencies: - domelementtype: "npm:^2.0.1" - entities: "npm:^2.0.0" - checksum: 10/376344893e4feccab649a14ca1a46473e9961f40fe62479ea692d4fee4d9df1c00ca8654811a79c1ca7b020096987e1ca4fb4d7f8bae32c1db800a680a0e5d5e - languageName: node - linkType: hard - "dom-serializer@npm:^1.0.1": version: 1.4.1 resolution: "dom-serializer@npm:1.4.1" @@ -24908,13 +24875,6 @@ __metadata: languageName: node linkType: hard -"domelementtype@npm:1, domelementtype@npm:^1.3.1": - version: 1.3.1 - resolution: "domelementtype@npm:1.3.1" - checksum: 10/7893da40218ae2106ec6ffc146b17f203487a52f5228b032ea7aa470e41dfe03e1bd762d0ee0139e792195efda765434b04b43cddcf63207b098f6ae44b36ad6 - languageName: node - linkType: hard - "domelementtype@npm:^2.0.1, domelementtype@npm:^2.2.0, domelementtype@npm:^2.3.0": version: 2.3.0 resolution: "domelementtype@npm:2.3.0" @@ -24922,15 +24882,6 @@ __metadata: languageName: node linkType: hard -"domhandler@npm:^2.3.0": - version: 2.4.2 - resolution: "domhandler@npm:2.4.2" - dependencies: - domelementtype: "npm:1" - checksum: 10/d8b0303c53c0eda912e45820ef8f6023f8462a724e8b824324f27923970222a250c7569e067de398c4d9ca3ce0f2b2d2818bc632d6fa72956721d6729479a9b9 - languageName: node - linkType: hard - "domhandler@npm:^4.0.0, domhandler@npm:^4.2.0, domhandler@npm:^4.3.1": version: 4.3.1 resolution: "domhandler@npm:4.3.1" @@ -24949,16 +24900,6 @@ __metadata: languageName: node linkType: hard -"domutils@npm:^1.5.1": - version: 1.7.0 - resolution: "domutils@npm:1.7.0" - dependencies: - dom-serializer: "npm:0" - domelementtype: "npm:1" - checksum: 10/8c1d879fd3bbfc0156c970d12ebdf530f541cbda895d7f631b2444d22bbb9d0e5a3a4c3210cffb17708ad67531d7d40e1bef95e915c53a218d268607b66b63c8 - languageName: node - linkType: hard - "domutils@npm:^2.5.2, domutils@npm:^2.8.0": version: 2.8.0 resolution: "domutils@npm:2.8.0" @@ -25375,13 +25316,6 @@ __metadata: languageName: node linkType: hard -"entities@npm:^1.1.1": - version: 1.1.2 - resolution: "entities@npm:1.1.2" - checksum: 10/4a707022f4e932060f03df2526be55d085a2576fe534421e5b22bc62abb0d1f04241c171f9981e3d7baa4f4160606cad72a2f7eb01b6a25e279e3f31a2be4bf2 - languageName: node - linkType: hard - "entities@npm:^2.0.0, entities@npm:^2.2.0": version: 2.2.0 resolution: "entities@npm:2.2.0" @@ -26168,7 +26102,7 @@ __metadata: languageName: node linkType: hard -"escape-html@npm:1.0.3, escape-html@npm:^1.0.3, escape-html@npm:~1.0.3": +"escape-html@npm:^1.0.3, escape-html@npm:~1.0.3": version: 1.0.3 resolution: "escape-html@npm:1.0.3" checksum: 10/6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24 @@ -27619,20 +27553,6 @@ __metadata: languageName: node linkType: hard -"faker@npm:5.1.0": - version: 5.1.0 - resolution: "faker@npm:5.1.0" - checksum: 10/9be912a4b063406059c079c69f2d6360b69ffc6a5d6d4e3c680475eff87a1b38531babafb4dbff73767fcddaa86e476b77d7c9216666791ea1aa4b2a70d5b4d6 - languageName: node - linkType: hard - -"faker@npm:5.5.3": - version: 5.5.3 - resolution: "faker@npm:5.5.3" - checksum: 10/fc46449712aa0971a106dc84ae988bd3f08ba0f0862ed107cd2e5dc2df39424efb0687634f5a6c2d8d24a9b59a5474b5b003b9bc142ecebcea2d42af116b3966 - languageName: node - linkType: hard - "fast-base64-decode@npm:^1.0.0": version: 1.0.0 resolution: "fast-base64-decode@npm:1.0.0" @@ -28513,18 +28433,6 @@ __metadata: languageName: node linkType: hard -"formidable@npm:^2.0.1": - version: 2.1.2 - resolution: "formidable@npm:2.1.2" - dependencies: - dezalgo: "npm:^1.0.4" - hexoid: "npm:^1.0.0" - once: "npm:^1.4.0" - qs: "npm:^6.11.0" - checksum: 10/d385180e0461f65e6f7b70452859fe1c32aa97a290c2ca33f00cdc33145ef44fa68bbc9b93af2c3af73ae726e42c3477c6619c49f3c34b49934e9481275b7b4c - languageName: node - linkType: hard - "formidable@npm:^3.5.1": version: 3.5.2 resolution: "formidable@npm:3.5.2" @@ -28991,13 +28899,6 @@ __metadata: languageName: node linkType: hard -"get-stdin@npm:^5.0.1": - version: 5.0.1 - resolution: "get-stdin@npm:5.0.1" - checksum: 10/f9784638ad3e68a0a8bdc031aedf0fca749843cd134956fbd4f3bbac17c359e0fb9210343fcbed72ee79fb19d8e4c49b7a6e742cc5d44e94ac1405e9371d4b3e - languageName: node - linkType: hard - "get-stream@npm:^5.1.0": version: 5.2.0 resolution: "get-stream@npm:5.2.0" @@ -29590,7 +29491,7 @@ __metadata: languageName: node linkType: hard -"graphlib@npm:2.1.8, graphlib@npm:^2.1.8": +"graphlib@npm:2.1.8": version: 2.1.8 resolution: "graphlib@npm:2.1.8" dependencies: @@ -30504,13 +30405,6 @@ __metadata: languageName: node linkType: hard -"hexoid@npm:^1.0.0": - version: 1.0.0 - resolution: "hexoid@npm:1.0.0" - checksum: 10/f2271b8b6b0e13fb5a1eccf740f53ce8bae689c80b9498b854c447f9dc94f75f44e0de064c0e4660ecdbfa8942bb2b69973fdcb080187b45bbb409a3c71f19d4 - languageName: node - linkType: hard - "hexoid@npm:^2.0.0": version: 2.0.0 resolution: "hexoid@npm:2.0.0" @@ -30751,20 +30645,6 @@ __metadata: languageName: node linkType: hard -"htmlparser2@npm:^3.10.0": - version: 3.10.1 - resolution: "htmlparser2@npm:3.10.1" - dependencies: - domelementtype: "npm:^1.3.1" - domhandler: "npm:^2.3.0" - domutils: "npm:^1.5.1" - entities: "npm:^1.1.1" - inherits: "npm:^2.0.1" - readable-stream: "npm:^3.1.1" - checksum: 10/d5297fe76c0d6b0f35f39781417eb560ef12fa121953578083f3f2b240c74d5c35a38185689d181b6a82b66a3025436f14aa3413b94f3cd50ba15733f2f72389 - languageName: node - linkType: hard - "htmlparser2@npm:^6.0.1, htmlparser2@npm:^6.1.0": version: 6.1.0 resolution: "htmlparser2@npm:6.1.0" @@ -31093,15 +30973,6 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:0.6.2": - version: 0.6.2 - resolution: "iconv-lite@npm:0.6.2" - dependencies: - safer-buffer: "npm:>= 2.1.2 < 3.0.0" - checksum: 10/ba81a32a54066e64ac68174851d1c17534ef398627eb5d07b4ef2999126674d66f7377aa46c8d1450ef6aee3d679ccaeb9af402b5c58ecec649cee361c1ad16d - languageName: node - linkType: hard - "ics@npm:3.8.1": version: 3.8.1 resolution: "ics@npm:3.8.1" @@ -33183,24 +33054,6 @@ __metadata: languageName: node linkType: hard -"json-refs@npm:^3.0.15": - version: 3.0.15 - resolution: "json-refs@npm:3.0.15" - dependencies: - commander: "npm:~4.1.1" - graphlib: "npm:^2.1.8" - js-yaml: "npm:^3.13.1" - lodash: "npm:^4.17.15" - native-promise-only: "npm:^0.8.1" - path-loader: "npm:^1.0.10" - slash: "npm:^3.0.0" - uri-js: "npm:^4.2.2" - bin: - json-refs: ./bin/json-refs - checksum: 10/381a5bc91fc57a10c9df036ea1c077e60e433fe5e690a441c30384b2e5ebe82e9b746c1fb1b30dcb67d4e03ee819b625057df80c5738dc13b5056fdfc5c1432b - languageName: node - linkType: hard - "json-schema-compare@npm:^0.2.2": version: 0.2.2 resolution: "json-schema-compare@npm:0.2.2" @@ -33230,18 +33083,6 @@ __metadata: languageName: node linkType: hard -"json-schema-resolve-allof@npm:^1.5.0": - version: 1.5.0 - resolution: "json-schema-resolve-allof@npm:1.5.0" - dependencies: - get-stdin: "npm:^5.0.1" - lodash: "npm:^4.14.0" - bin: - json-schema-resolve-allof: ./bin/json-schema-resolve-allof - checksum: 10/0264a48171cfecc9a8638ee162d3c3ca5b0ffa5c83a2643ecb0b3e69fd55e9210ab24fd070d6e23f1898c697caa2548203b30b23e1be5a68caea8610576f79d7 - languageName: node - linkType: hard - "json-schema-traverse@npm:^0.4.1": version: 0.4.1 resolution: "json-schema-traverse@npm:0.4.1" @@ -34226,13 +34067,6 @@ __metadata: languageName: node linkType: hard -"lodash.escaperegexp@npm:^4.1.2": - version: 4.1.2 - resolution: "lodash.escaperegexp@npm:4.1.2" - checksum: 10/6d99452b1cfd6073175a9b741a9b09ece159eac463f86f02ea3bee2e2092923fce812c8d2bf446309cc52d1d61bf9af51c8118b0d7421388e6cead7bd3798f0f - languageName: node - linkType: hard - "lodash.find@npm:4.6.0": version: 4.6.0 resolution: "lodash.find@npm:4.6.0" @@ -34352,13 +34186,6 @@ __metadata: languageName: node linkType: hard -"lodash.mergewith@npm:^4.6.1": - version: 4.6.2 - resolution: "lodash.mergewith@npm:4.6.2" - checksum: 10/aea75a4492541a4902ac7e551dc6c54b722da0c187f84385d02e8fc33a7ae3454b837822446e5f63fcd5ad1671534ea408740b776670ea4d9c7890b10105fce0 - languageName: node - linkType: hard - "lodash.once@npm:^4.0.0": version: 4.1.1 resolution: "lodash.once@npm:4.1.1" @@ -34478,14 +34305,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:4.17.20": - version: 4.17.20 - resolution: "lodash@npm:4.17.20" - checksum: 10/a5f94125d73e38853d37d7307f1ca26df057376c992d4ef13ceda38936fb81bb9e60d53da0b36e47576edcd565f5bed98671704045c6df0730dcf1fcee14851e - languageName: node - linkType: hard - -"lodash@npm:4.17.21, lodash@npm:^4.14.0, lodash@npm:^4.17.10, lodash@npm:^4.17.11, lodash@npm:^4.17.12, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:~4.17.0": +"lodash@npm:4.17.21, lodash@npm:^4.17.10, lodash@npm:^4.17.11, lodash@npm:^4.17.12, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:~4.17.0": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: 10/c08619c038846ea6ac754abd6dd29d2568aa705feb69339e836dfa8d8b09abbb2f859371e86863eda41848221f9af43714491467b5b0299122431e202bb0c532 @@ -34945,33 +34765,6 @@ __metadata: languageName: node linkType: hard -"marked@npm:1.1.1": - version: 1.1.1 - resolution: "marked@npm:1.1.1" - bin: - marked: bin/marked - checksum: 10/2730ab88b8cae2e7c457d8de8d6dfdd55a96bc521cf49987a03cd3f9ebd37fb0f6530d5c345edc603695aa9bde3b3d62dc42f2243c029527365730802da94df8 - languageName: node - linkType: hard - -"marked@npm:2.0.1": - version: 2.0.1 - resolution: "marked@npm:2.0.1" - bin: - marked: bin/marked - checksum: 10/bf9fbcf9b4e04d64575c93694f3c68aee777809565229547cf30870308d7c5eca1376206b80a687613052e7472569af719d3028f12581e7a3b29485af2219a00 - languageName: node - linkType: hard - -"marked@npm:^11.0.0": - version: 11.2.0 - resolution: "marked@npm:11.2.0" - bin: - marked: bin/marked.js - checksum: 10/0c8c0d263617a04f066db6f5adfed811a8eb78a685850d4d0b8b9ef351e416fb871813ea7ee7f94f4d5f67da98c3a2a4259b8684e4f93a6a673733fe9d9f2868 - languageName: node - linkType: hard - "match-all@npm:^1.2.6": version: 1.2.6 resolution: "match-all@npm:1.2.6" @@ -36466,20 +36259,6 @@ __metadata: languageName: node linkType: hard -"mime-db@npm:1.44.0": - version: 1.44.0 - resolution: "mime-db@npm:1.44.0" - checksum: 10/7cde7b1d8e9ac68033a40686a944f42f3007d0c58fb78ed5720ac999d9c724b9330ee15ba40338d93eb17653d769736955b104d9c52666b37b001791649f8d6a - languageName: node - linkType: hard - -"mime-db@npm:1.47.0": - version: 1.47.0 - resolution: "mime-db@npm:1.47.0" - checksum: 10/1f91f81149f8b7b287f411cc8003fc5c8cd0685ddcff761f393a3709889f4a1081526e3a0de3b0d5b0ef6372351e7184f265b0b1846ca0b841f08f8e69b663e9 - languageName: node - linkType: hard - "mime-db@npm:1.52.0": version: 1.52.0 resolution: "mime-db@npm:1.52.0" @@ -36508,15 +36287,6 @@ __metadata: languageName: node linkType: hard -"mime-format@npm:2.0.0": - version: 2.0.0 - resolution: "mime-format@npm:2.0.0" - dependencies: - charset: "npm:^1.0.0" - checksum: 10/e39d91865760321b017474b0033227f25d1a9f2773a68be7da303674e9c70266e4dd0e58fa2257255aabec0facaa6a35d437fb13cd383a4d182c9b67c9e65cc6 - languageName: node - linkType: hard - "mime-format@npm:2.0.1": version: 2.0.1 resolution: "mime-format@npm:2.0.1" @@ -36544,24 +36314,6 @@ __metadata: languageName: node linkType: hard -"mime-types@npm:2.1.27": - version: 2.1.27 - resolution: "mime-types@npm:2.1.27" - dependencies: - mime-db: "npm:1.44.0" - checksum: 10/056a86257296dd7a73d6c74f8adb118c2dc8beaa4c46898042e275fcc85aaf2a33a8533cb4bd38c97a42512146e3c4fa0140c3a9508456260ee444474b7fc618 - languageName: node - linkType: hard - -"mime-types@npm:2.1.30": - version: 2.1.30 - resolution: "mime-types@npm:2.1.30" - dependencies: - mime-db: "npm:1.47.0" - checksum: 10/b490804d57f9d8298f50fec90eb9c8a4f76fe33c7f83cac7ec3de9a19c9ad89aee18a9db79715d55f5370aa7ec8bba3efa8802da3c06bcc2586da974c1e78b01 - languageName: node - linkType: hard - "mime-types@npm:2.1.35, mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:^2.1.35, mime-types@npm:~2.1.17, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": version: 2.1.35 resolution: "mime-types@npm:2.1.35" @@ -37081,13 +36833,6 @@ __metadata: languageName: node linkType: hard -"monaco-editor@npm:^0.31.1": - version: 0.31.1 - resolution: "monaco-editor@npm:0.31.1" - checksum: 10/94bd3c843ebc362612a73e371e7b5ce4c18c4d0c85e72c644452b56b493117521b93e2321d497d4636e19f8ea598de1bafee020e8514bc073ab8ad3f2ff469e8 - languageName: node - linkType: hard - "motion@npm:10.16.2": version: 10.16.2 resolution: "motion@npm:10.16.2" @@ -37361,13 +37106,6 @@ __metadata: languageName: node linkType: hard -"native-promise-only@npm:^0.8.1": - version: 0.8.1 - resolution: "native-promise-only@npm:0.8.1" - checksum: 10/fbc99d8dc2863658260a519557b0634c45583d9412de85fd706fa4fa9b11bfe4660bdac53f29171c4b2ad01a4b201c658a56f82431d19a5c155cc092c5127170 - languageName: node - linkType: hard - "natural-compare@npm:^1.4.0": version: 1.4.0 resolution: "natural-compare@npm:1.4.0" @@ -38476,22 +38214,6 @@ __metadata: languageName: node linkType: hard -"oas-resolver-browser@npm:2.3.3": - version: 2.3.3 - resolution: "oas-resolver-browser@npm:2.3.3" - dependencies: - node-fetch-h2: "npm:^2.3.0" - oas-kit-common: "npm:^1.0.8" - path-browserify: "npm:^1.0.1" - reftools: "npm:^1.1.1" - yaml: "npm:^1.8.3" - yargs: "npm:^15.3.1" - bin: - resolve: resolve.js - checksum: 10/bd9620f84638dc53b377165851aba9670e0e00b9a294de93017ce793657b07654db7ddb75d9964ca1f03fc0ed23af423c4c1a763882f27dda079cb5d6cd3bf2b - languageName: node - linkType: hard - "oas-resolver-browser@npm:2.5.6": version: 2.5.6 resolution: "oas-resolver-browser@npm:2.5.6" @@ -38877,25 +38599,6 @@ __metadata: languageName: node linkType: hard -"openapi-to-postmanv2@npm:^1.2.1": - version: 1.2.7 - resolution: "openapi-to-postmanv2@npm:1.2.7" - dependencies: - ajv: "npm:6.12.3" - async: "npm:3.2.0" - commander: "npm:2.20.3" - js-yaml: "npm:3.13.1" - lodash: "npm:4.17.20" - oas-resolver-browser: "npm:2.3.3" - path-browserify: "npm:1.0.1" - postman-collection: "npm:3.6.6" - yaml: "npm:1.8.3" - bin: - openapi2postmanv2: ./bin/openapi2postmanv2.js - checksum: 10/7f5b7b14f9eafb38fc7c86b8e2d41ce2fc6a965fd1755be6bf556692718f06caabb6831676e534c5039519edbfaa8ed46d919569b3308d05eb652b81978454b4 - languageName: node - linkType: hard - "openapi-to-postmanv2@npm:^4.21.0": version: 4.24.0 resolution: "openapi-to-postmanv2@npm:4.24.0" @@ -39762,16 +39465,6 @@ __metadata: languageName: node linkType: hard -"path-loader@npm:^1.0.10": - version: 1.0.12 - resolution: "path-loader@npm:1.0.12" - dependencies: - native-promise-only: "npm:^0.8.1" - superagent: "npm:^7.1.6" - checksum: 10/63475f4bd14570eb7ab6298ec2ca19da47bac99bc98d30957a3128552a6c3212b31a8b06a5622d51301d462e6faf8de3683ea07c2f08cd17b9ab6cbc66d0f626 - languageName: node - linkType: hard - "path-match@npm:1.2.4": version: 1.2.4 resolution: "path-match@npm:1.2.4" @@ -40088,13 +39781,6 @@ __metadata: languageName: node linkType: hard -"picocolors@npm:^0.2.1": - version: 0.2.1 - resolution: "picocolors@npm:0.2.1" - checksum: 10/3b0f441f0062def0c0f39e87b898ae7461c3a16ffc9f974f320b44c799418cabff17780ee647fda42b856a1dc45897e2c62047e1b546d94d6d5c6962f45427b2 - languageName: node - linkType: hard - "picocolors@npm:^1.0.0, picocolors@npm:^1.0.1, picocolors@npm:^1.1.0, picocolors@npm:^1.1.1": version: 1.1.1 resolution: "picocolors@npm:1.1.1" @@ -40919,16 +40605,6 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^7.0.5": - version: 7.0.39 - resolution: "postcss@npm:7.0.39" - dependencies: - picocolors: "npm:^0.2.1" - source-map: "npm:^0.6.1" - checksum: 10/9635b3a444673d1e50ea67c68382201346b54d7bb69729fff5752a794d57ca5cae7f6fafd4157a9ab7f9ddac30a0d5e548c1196653468cbae3c2758dbc2f5662 - languageName: node - linkType: hard - "postcss@npm:^8.4.21, postcss@npm:^8.4.23, postcss@npm:^8.4.24, postcss@npm:^8.4.26, postcss@npm:^8.4.33, postcss@npm:^8.4.38, postcss@npm:^8.4.43": version: 8.4.49 resolution: "postcss@npm:8.4.49" @@ -41007,7 +40683,7 @@ __metadata: languageName: node linkType: hard -"postman-code-generators@npm:^1.0.0, postman-code-generators@npm:^1.10.1": +"postman-code-generators@npm:^1.10.1": version: 1.14.0 resolution: "postman-code-generators@npm:1.14.0" dependencies: @@ -41021,51 +40697,7 @@ __metadata: languageName: node linkType: hard -"postman-collection@npm:3.6.6": - version: 3.6.6 - resolution: "postman-collection@npm:3.6.6" - dependencies: - escape-html: "npm:1.0.3" - faker: "npm:5.1.0" - file-type: "npm:3.9.0" - http-reasons: "npm:0.1.0" - iconv-lite: "npm:0.6.2" - liquid-json: "npm:0.3.1" - lodash: "npm:4.17.20" - marked: "npm:1.1.1" - mime-format: "npm:2.0.0" - mime-types: "npm:2.1.27" - postman-url-encoder: "npm:2.1.3" - sanitize-html: "npm:1.20.1" - semver: "npm:7.3.2" - uuid: "npm:3.4.0" - checksum: 10/2e4eb3007d1225b584e0c6d7a1af0f29c3e3fc9af38d1dd0ab6ec8dc930b8f4ef9dfa32f95d65f0daac9a71dc95b4444df2d58d97cadd348d2093248bd8868e3 - languageName: node - linkType: hard - -"postman-collection@npm:^3.6.4": - version: 3.6.11 - resolution: "postman-collection@npm:3.6.11" - dependencies: - escape-html: "npm:1.0.3" - faker: "npm:5.5.3" - file-type: "npm:3.9.0" - http-reasons: "npm:0.1.0" - iconv-lite: "npm:0.6.2" - liquid-json: "npm:0.3.1" - lodash: "npm:4.17.21" - marked: "npm:2.0.1" - mime-format: "npm:2.0.1" - mime-types: "npm:2.1.30" - postman-url-encoder: "npm:3.0.1" - sanitize-html: "npm:1.20.1" - semver: "npm:7.3.5" - uuid: "npm:3.4.0" - checksum: 10/ef5997b0dd9711ab684d66226984f9dc76bad8b395c48577fd9e45ab51db844f63188b4810451e23412042a1c180f94bc7a07a374dd063f6e61b3374089c4575 - languageName: node - linkType: hard - -"postman-collection@npm:^4.1.0, postman-collection@npm:^4.4.0": +"postman-collection@npm:^4.4.0": version: 4.5.0 resolution: "postman-collection@npm:4.5.0" dependencies: @@ -41084,25 +40716,6 @@ __metadata: languageName: node linkType: hard -"postman-url-encoder@npm:2.1.3": - version: 2.1.3 - resolution: "postman-url-encoder@npm:2.1.3" - dependencies: - postman-collection: "npm:^3.6.4" - punycode: "npm:^2.1.1" - checksum: 10/b8f2b6fb760eb161740068d75562d6ce36340b5329f4b6b390bc9660ab3051a1b7c0e9e4f5eeba01d1e5ff6d8c3a88f414e8fb4135c463b38065e275d00a92a1 - languageName: node - linkType: hard - -"postman-url-encoder@npm:3.0.1": - version: 3.0.1 - resolution: "postman-url-encoder@npm:3.0.1" - dependencies: - punycode: "npm:^2.1.1" - checksum: 10/a47a9f09eec48c66d62a35c059dae23dfbc5d6d929745270c2ec6898f6676e177671cb1ad037137e1fa3ede11a1b12ffbe3e2d9b66586d889864939d1f7fc3f8 - languageName: node - linkType: hard - "postman-url-encoder@npm:3.0.5": version: 3.0.5 resolution: "postman-url-encoder@npm:3.0.5" @@ -41302,7 +40915,7 @@ __metadata: languageName: node linkType: hard -"prism-react-renderer@npm:2.4.0, prism-react-renderer@npm:^2.0.6, prism-react-renderer@npm:^2.1.0, prism-react-renderer@npm:^2.3.0": +"prism-react-renderer@npm:2.4.0, prism-react-renderer@npm:^2.0.6, prism-react-renderer@npm:^2.3.0": version: 2.4.0 resolution: "prism-react-renderer@npm:2.4.0" dependencies: @@ -41721,7 +41334,7 @@ __metadata: languageName: node linkType: hard -"qs@npm:6.13.0, qs@npm:^6.10.3, qs@npm:^6.11.0, qs@npm:^6.12.3, qs@npm:^6.4.0, qs@npm:^6.9.4, qs@npm:^6.9.6": +"qs@npm:6.13.0, qs@npm:^6.11.0, qs@npm:^6.12.3, qs@npm:^6.4.0, qs@npm:^6.9.4, qs@npm:^6.9.6": version: 6.13.0 resolution: "qs@npm:6.13.0" dependencies: @@ -42855,15 +42468,6 @@ __metadata: languageName: node linkType: hard -"redux-devtools-extension@npm:^2.13.8": - version: 2.13.9 - resolution: "redux-devtools-extension@npm:2.13.9" - peerDependencies: - redux: ^3.1.0 || ^4.0.0 - checksum: 10/8d979c95031dee495e62d90cc12cd9923546227a177f6d3fba973a0d022d819854e47eceea7d0c68254cd410632a5eac2eaf84e17644d2fcecf94a1e246fed88 - languageName: node - linkType: hard - "redux-thunk@npm:^2.4.2": version: 2.4.2 resolution: "redux-thunk@npm:2.4.2" @@ -42904,19 +42508,7 @@ __metadata: languageName: node linkType: hard -"refractor@npm:^4.8.1": - version: 4.8.1 - resolution: "refractor@npm:4.8.1" - dependencies: - "@types/hast": "npm:^2.0.0" - "@types/prismjs": "npm:^1.0.0" - hastscript: "npm:^7.0.0" - parse-entities: "npm:^4.0.0" - checksum: 10/d41cdd3b7e2ee4dbe33cd06f5860fbd1219c4b60cb80ac606337ec9ff2f06b0fdd1b712a5f0e9dbf840193f37870546b5c145ca4772e961a5a117d5137ae8cc4 - languageName: node - linkType: hard - -"reftools@npm:^1.1.1, reftools@npm:^1.1.9": +"reftools@npm:^1.1.9": version: 1.1.9 resolution: "reftools@npm:1.1.9" checksum: 10/6a124748f1c4af84bf651c31c76b7ed0a7f766533530a80cbf2d2517b26e6bfaadc0b1b3e399675343328ab861ab04881e64c8bc3c2f40fc7be27a8aacf8775e @@ -44082,24 +43674,6 @@ __metadata: languageName: node linkType: hard -"sanitize-html@npm:1.20.1": - version: 1.20.1 - resolution: "sanitize-html@npm:1.20.1" - dependencies: - chalk: "npm:^2.4.1" - htmlparser2: "npm:^3.10.0" - lodash.clonedeep: "npm:^4.5.0" - lodash.escaperegexp: "npm:^4.1.2" - lodash.isplainobject: "npm:^4.0.6" - lodash.isstring: "npm:^4.0.1" - lodash.mergewith: "npm:^4.6.1" - postcss: "npm:^7.0.5" - srcset: "npm:^1.0.0" - xtend: "npm:^4.0.1" - checksum: 10/a7d06acb87ad326fa8a3749b6300ae32ef8effa1c0ce13b736a9063897c7ff2b809ba5cc2b57381099621e38073042c2744012c56bf1e4f2cb3ace65d5510dd8 - languageName: node - linkType: hard - "sass-loader@npm:^10.1.1": version: 10.5.2 resolution: "sass-loader@npm:10.5.2" @@ -44383,15 +43957,6 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.3.2": - version: 7.3.2 - resolution: "semver@npm:7.3.2" - bin: - semver: bin/semver.js - checksum: 10/52f87756b6f0d5de0fc896a3367cfe8dbf7c1947d846d021c9c621095579e62d2aa7ca0d5c5a6dcf1a123a63e1ac7cbd5ae0d5238f2a8de581bd6892f547f41f - languageName: node - linkType: hard - "semver@npm:7.3.5": version: 7.3.5 resolution: "semver@npm:7.3.5" @@ -45781,16 +45346,6 @@ __metadata: languageName: node linkType: hard -"srcset@npm:^1.0.0": - version: 1.0.0 - resolution: "srcset@npm:1.0.0" - dependencies: - array-uniq: "npm:^1.0.2" - number-is-nan: "npm:^1.0.0" - checksum: 10/aa5ab57330671c67d6d5fc7dc3f5a6495159fb3200ab539cfbff6b335b01b5bbcbf31f3667c5ef94fb13139d746974f9d7693e1c121d89355a6179b6a1899c3d - languageName: node - linkType: hard - "srcset@npm:^4.0.0": version: 4.0.0 resolution: "srcset@npm:4.0.0" @@ -45894,13 +45449,6 @@ __metadata: languageName: node linkType: hard -"state-local@npm:^1.0.6": - version: 1.0.7 - resolution: "state-local@npm:1.0.7" - checksum: 10/1d956043e270861d40a639ff3457938cf61dbc7e25209d21b55060d8dfaf74742b8a1e525ed6fcb0c2d89b7d3e305bb8589bf27392012889456b3ad82a4b7d0a - languageName: node - linkType: hard - "static-extend@npm:^0.1.1": version: 0.1.2 resolution: "static-extend@npm:0.1.2" @@ -46028,8 +45576,8 @@ __metadata: linkType: hard "streamx@npm:^2.15.0": - version: 2.20.1 - resolution: "streamx@npm:2.20.1" + version: 2.20.2 + resolution: "streamx@npm:2.20.2" dependencies: bare-events: "npm:^2.2.0" fast-fifo: "npm:^1.3.2" @@ -46038,7 +45586,7 @@ __metadata: dependenciesMeta: bare-events: optional: true - checksum: 10/3c69a48c4f397fb8a9460d1a780ece352849a4719a8938a866879dd1773098121882c3c2b99b9c7f605a123461d8ab2e652fd22c13ccda18f79e234e78ec7ed7 + checksum: 10/4363d81880295bd913eafb75f14c3f4e9d10fcb8f84e819c8339c0290feedf2542fc9de55f4f68d0dfd494659111451c316d8d7bb17eb90466ee1af6aa17d707 languageName: node linkType: hard @@ -46418,13 +45966,6 @@ __metadata: languageName: node linkType: hard -"striptags@npm:^3.2.0": - version: 3.2.0 - resolution: "striptags@npm:3.2.0" - checksum: 10/0d430af5c2d702cfe6e3591b5d353773811d912264b9112e11596ac4d1c6e4185a9f9d92125d324d93cfebeb8ee658ba397f1a5d7a4e44ad7cff98ce40afcfc9 - languageName: node - linkType: hard - "strnum@npm:^1.0.5": version: 1.0.5 resolution: "strnum@npm:1.0.5" @@ -46563,25 +46104,6 @@ __metadata: languageName: node linkType: hard -"superagent@npm:^7.1.6": - version: 7.1.6 - resolution: "superagent@npm:7.1.6" - dependencies: - component-emitter: "npm:^1.3.0" - cookiejar: "npm:^2.1.3" - debug: "npm:^4.3.4" - fast-safe-stringify: "npm:^2.1.1" - form-data: "npm:^4.0.0" - formidable: "npm:^2.0.1" - methods: "npm:^1.1.2" - mime: "npm:2.6.0" - qs: "npm:^6.10.3" - readable-stream: "npm:^3.6.0" - semver: "npm:^7.3.7" - checksum: 10/a160ccadbea31dd804501fc6b6632265f1d6ef57feca13075e6c828d6d5494e9021545673d6f4dff7fb6c8a290de9ceae8b02881a9ebfb1aed59348b4315590d - languageName: node - linkType: hard - "superagent@npm:^9.0.1": version: 9.0.2 resolution: "superagent@npm:9.0.2" @@ -49291,15 +48813,6 @@ __metadata: languageName: node linkType: hard -"uuid@npm:3.4.0": - version: 3.4.0 - resolution: "uuid@npm:3.4.0" - bin: - uuid: ./bin/uuid - checksum: 10/4f2b86432b04cc7c73a0dd1bcf11f1fc18349d65d2e4e32dd0fc658909329a1e0cc9244aa93f34c0cccfdd5ae1af60a149251a5f420ec3ac4223a3dab198fb2e - languageName: node - linkType: hard - "uuid@npm:8.3.2, uuid@npm:^8.3.2": version: 8.3.2 resolution: "uuid@npm:8.3.2" @@ -51061,7 +50574,7 @@ __metadata: languageName: node linkType: hard -"xtend@npm:^4.0.0, xtend@npm:^4.0.1, xtend@npm:^4.0.2, xtend@npm:~4.0.0, xtend@npm:~4.0.1": +"xtend@npm:^4.0.0, xtend@npm:^4.0.2, xtend@npm:~4.0.0, xtend@npm:~4.0.1": version: 4.0.2 resolution: "xtend@npm:4.0.2" checksum: 10/ac5dfa738b21f6e7f0dd6e65e1b3155036d68104e67e5d5d1bde74892e327d7e5636a076f625599dc394330a731861e87343ff184b0047fef1360a7ec0a5a36a @@ -51129,22 +50642,13 @@ __metadata: languageName: node linkType: hard -"yaml@npm:1.10.2, yaml@npm:^1.10.0, yaml@npm:^1.10.2, yaml@npm:^1.7.2, yaml@npm:^1.8.3": +"yaml@npm:1.10.2, yaml@npm:^1.10.0, yaml@npm:^1.10.2, yaml@npm:^1.7.2": version: 1.10.2 resolution: "yaml@npm:1.10.2" checksum: 10/e088b37b4d4885b70b50c9fa1b7e54bd2e27f5c87205f9deaffd1fb293ab263d9c964feadb9817a7b129a5bf30a06582cb08750f810568ecc14f3cdbabb79cb3 languageName: node linkType: hard -"yaml@npm:1.8.3": - version: 1.8.3 - resolution: "yaml@npm:1.8.3" - dependencies: - "@babel/runtime": "npm:^7.8.7" - checksum: 10/b769c4413dd1f5dc243623c8bd8ab1de2b59d3a11c2f7b1eeaaf15c782aae9a2a580b74feaf7115b1d846fcc4c1f1cab96a501eca4b4a49d593c5eadfdd0a380 - languageName: node - linkType: hard - "yaml@npm:^2.1.3, yaml@npm:^2.3.1, yaml@npm:^2.3.4": version: 2.6.0 resolution: "yaml@npm:2.6.0"