fix eslint and types

This commit is contained in:
João Geonizeli
2021-08-15 12:51:09 -03:00
parent 890fbddd82
commit 3c3d2862d3
22 changed files with 255 additions and 71 deletions

View File

@@ -11,7 +11,7 @@
} }
], ],
"rules": { "rules": {
"relay/generated-flow-types": "false" "relay/generated-flow-types": "off"
}, },
"plugins": ["relay"] "plugins": ["relay"]
} }

View File

@@ -21,12 +21,12 @@ module Types
field :sell_crypto_orders, SellCryptoOrderType.connection_type, null: false field :sell_crypto_orders, SellCryptoOrderType.connection_type, null: false
def sell_crypto_orders def sell_crypto_orders
[] Pundit.policy_scope(current_user, SellCryptoOrder)
end end
field :buy_crypto_orders, BuyCryptoOrderType.connection_type, null: false field :buy_crypto_orders, BuyCryptoOrderType.connection_type, null: false
def buy_crypto_orders def buy_crypto_orders
[] Pundit.policy_scope(current_user, BuyCryptoOrder)
end end
end end
end end

View File

@@ -12,6 +12,10 @@ class XStakeSchema < GraphQL::Schema
Types::BalanceType Types::BalanceType
when FiatBalance when FiatBalance
Types::FiatBalanceType Types::FiatBalanceType
when SellCryptoOrder
Types::SellCryptoOrderType
when BuyCryptoOrder
Types::BuyCryptoOrderType
else else
raise(GraphQL::RequiredImplementationMissingError, "Unexpected object: #{obj}") raise(GraphQL::RequiredImplementationMissingError, "Unexpected object: #{obj}")
end end

View File

@@ -39,7 +39,7 @@ type BuyCryptoOrder implements Node {
currency: Currency! currency: Currency!
id: ID! id: ID!
paidAmountCents: Int! paidAmountCents: Int!
receivedAmount: Float receivedAmount: String
status: ProcessStatus! status: ProcessStatus!
updatedAt: ISO8601DateTime! updatedAt: ISO8601DateTime!
} }
@@ -78,7 +78,7 @@ input CreateBuyCryptoOrderAttributesInput {
""" """
Amount to be paid Amount to be paid
""" """
amount: Float! amountCents: Int!
currencyId: ID! currencyId: ID!
} }
@@ -105,15 +105,15 @@ type CreateBuyCryptoOrderPayload {
""" """
Errors encountered during execution of the mutation. Errors encountered during execution of the mutation.
""" """
errors: [String!] errors: [RecordInvalid!]
order: BuyCryptoOrder! order: BuyCryptoOrder
} }
input CreateSellCryptoOrderAttributesInput { input CreateSellCryptoOrderAttributesInput {
""" """
Amount to be paid Amount to be paid
""" """
amount: Float! amount: String!
currencyId: ID! currencyId: ID!
} }
@@ -140,8 +140,8 @@ type CreateSellCryptoOrderPayload {
""" """
Errors encountered during execution of the mutation. Errors encountered during execution of the mutation.
""" """
errors: [String!] errors: [RecordInvalid!]
order: SellCryptoOrder! order: SellCryptoOrder
} }
type Currency implements Node { type Currency implements Node {
@@ -152,9 +152,7 @@ type Currency implements Node {
type FiatBalance implements Node { type FiatBalance implements Node {
amountCents: Int! amountCents: Int!
amountCurrency: String! amountCurrency: String!
createdAt: ISO8601DateTime!
id: ID! id: ID!
updatedAt: ISO8601DateTime!
} }
""" """
@@ -356,11 +354,18 @@ type Query {
): SellCryptoOrderConnection! ): SellCryptoOrderConnection!
} }
type RecordInvalid {
fieldName: String
fullMessages: [String!]!
messages: [String!]
path: [String!]
}
type SellCryptoOrder implements Node { type SellCryptoOrder implements Node {
createdAt: ISO8601DateTime! createdAt: ISO8601DateTime!
currency: Currency! currency: Currency!
id: ID! id: ID!
paidAmount: Float! paidAmount: String!
receivedAmountCents: Int receivedAmountCents: Int
status: ProcessStatus! status: ProcessStatus!
updatedAt: ISO8601DateTime! updatedAt: ISO8601DateTime!

View File

@@ -10,11 +10,11 @@ import { Routes } from "./Routes";
import type { AppQuery } from "./__generated__/AppQuery.graphql"; import type { AppQuery } from "./__generated__/AppQuery.graphql";
export const App: FC = () => { export const App: FC = () => {
const { currentUser } = useLazyLoadQuery<AppQuery>( const data = useLazyLoadQuery<AppQuery>(
graphql` graphql`
query AppQuery { query AppQuery {
currentUser { currentUser {
firstName ...UserProvider_user
} }
} }
`, `,
@@ -23,7 +23,7 @@ export const App: FC = () => {
return ( return (
<AppProvider> <AppProvider>
<UserProvider user={currentUser}> <UserProvider userRef={data.currentUser}>
<main className="min-h-screen w-full bg-gray-50 flex flex-col"> <main className="min-h-screen w-full bg-gray-50 flex flex-col">
<Navbar /> <Navbar />
<div className="flex flex-grow"> <div className="flex flex-grow">

View File

@@ -3,10 +3,11 @@
// @ts-nocheck // @ts-nocheck
import { ConcreteRequest } from "relay-runtime"; import { ConcreteRequest } from "relay-runtime";
import { FragmentRefs } from "relay-runtime";
export type AppQueryVariables = {}; export type AppQueryVariables = {};
export type AppQueryResponse = { export type AppQueryResponse = {
readonly currentUser: { readonly currentUser: {
readonly firstName: string; readonly " $fragmentRefs": FragmentRefs<"UserProvider_user">;
} | null; } | null;
}; };
export type AppQuery = { export type AppQuery = {
@@ -19,21 +20,17 @@ export type AppQuery = {
/* /*
query AppQuery { query AppQuery {
currentUser { currentUser {
firstName ...UserProvider_user
id id
} }
} }
fragment UserProvider_user on User {
firstName
}
*/ */
const node: ConcreteRequest = (function(){ const node: ConcreteRequest = {
var v0 = {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "firstName",
"storageKey": null
};
return {
"fragment": { "fragment": {
"argumentDefinitions": [], "argumentDefinitions": [],
"kind": "Fragment", "kind": "Fragment",
@@ -48,7 +45,11 @@ return {
"name": "currentUser", "name": "currentUser",
"plural": false, "plural": false,
"selections": [ "selections": [
(v0/*: any*/) {
"args": null,
"kind": "FragmentSpread",
"name": "UserProvider_user"
}
], ],
"storageKey": null "storageKey": null
} }
@@ -70,7 +71,13 @@ return {
"name": "currentUser", "name": "currentUser",
"plural": false, "plural": false,
"selections": [ "selections": [
(v0/*: any*/), {
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "firstName",
"storageKey": null
},
{ {
"alias": null, "alias": null,
"args": null, "args": null,
@@ -84,14 +91,13 @@ return {
] ]
}, },
"params": { "params": {
"cacheID": "ecf2bf1a08ead5c3e2edb202242ed8cf", "cacheID": "ce9692d3fdea00e7368e2a6404748f16",
"id": null, "id": null,
"metadata": {}, "metadata": {},
"name": "AppQuery", "name": "AppQuery",
"operationKind": "query", "operationKind": "query",
"text": "query AppQuery {\n currentUser {\n firstName\n id\n }\n}\n" "text": "query AppQuery {\n currentUser {\n ...UserProvider_user\n id\n }\n}\n\nfragment UserProvider_user on User {\n firstName\n}\n"
} }
}; };
})(); (node as any).hash = 'aac57a65620cf50754d54f3c8d6495cf';
(node as any).hash = 'ea65c9caf86d93b8ddded2ae3eaa7b0e';
export default node; export default node;

View File

@@ -1,5 +1,4 @@
import React from "react"; import React from "react";
import BigNumber from "bignumber.js";
import type { PoolConfig } from "../types"; import type { PoolConfig } from "../types";
import { useBsc } from "../contexts/BscProvider"; import { useBsc } from "../contexts/BscProvider";
@@ -32,6 +31,7 @@ export const Pool = ({ pool }: PoolProps) => {
const totalStaked = await getTotalStaked(provider, pool); const totalStaked = await getTotalStaked(provider, pool);
// eslint-disable-next-line no-console
console.log( console.log(
`Total Staked for ${pool.stakingToken.symbol} - ${ `Total Staked for ${pool.stakingToken.symbol} - ${
pool.earningToken.symbol pool.earningToken.symbol
@@ -52,7 +52,7 @@ export const Pool = ({ pool }: PoolProps) => {
}); });
} }
})(); })();
}, []); }, [pool, provider, router]);
return ( return (
<div <div

View File

@@ -9,7 +9,9 @@ export const PoolListing = () => {
{pools {pools
.filter((pool) => !pool.isFinished) .filter((pool) => !pool.isFinished)
.sort((a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0)) .sort((a, b) => (a.sortOrder ?? 0) - (b.sortOrder ?? 0))
.map((pool) => <Pool key={pool.sousId} pool={pool} />)} .map((pool) => (
<Pool key={pool.sousId} pool={pool} />
))}
</div> </div>
); );
}; };

View File

@@ -1,3 +1,4 @@
import type { FC } from "react";
import React, { useContext } from "react"; import React, { useContext } from "react";
import { ethers } from "ethers"; import { ethers } from "ethers";
@@ -37,7 +38,7 @@ export const useBsc = () => {
return context; return context;
}; };
export const BscProvider = ({ children }: React.PropsWithChildren<any>) => { export const BscProvider: FC = ({ children }) => {
const value: BscContext = { const value: BscContext = {
provider, provider,
pancake: { pancake: {

View File

@@ -1,9 +1,13 @@
import type { FC } from "react"; import type { FC } from "react";
import React, { createContext, useContext } from "react"; import React, { createContext, useContext } from "react";
import { useFragment } from "react-relay";
import { graphql } from "babel-plugin-relay/macro";
import type { UserProvider_user$key } from "./__generated__/UserProvider_user.graphql";
type CurrentUserContext = { type CurrentUserContext = {
user: { user: {
readonly firstName: string; firstName: string;
} | null; } | null;
isAuthenticated: boolean; isAuthenticated: boolean;
}; };
@@ -20,13 +24,33 @@ export const useCurrentUser = (): CurrentUserContext => {
}; };
type Props = { type Props = {
user: { userRef: UserProvider_user$key | null;
readonly firstName: string;
} | null;
}; };
export const UserProvider: FC<Props> = ({ user, children }) => ( export const UserProvider: FC<Props> = ({ userRef, children }) => {
<Context.Provider value={{ user, isAuthenticated: !!user }}> const userData = useFragment<UserProvider_user$key>(
graphql`
fragment UserProvider_user on User {
firstName
}
`,
userRef
);
const user = userData
? {
firstName: userData.firstName,
}
: null;
return (
<Context.Provider
value={{
user,
isAuthenticated: !!user,
}}
>
{children} {children}
</Context.Provider> </Context.Provider>
); );
};

View File

@@ -0,0 +1,37 @@
/* tslint:disable */
/* eslint-disable */
// @ts-nocheck
import { ReaderFragment } from "relay-runtime";
import { FragmentRefs } from "relay-runtime";
export type UserProvider_user = {
readonly firstName: string;
readonly " $refType": "UserProvider_user";
};
export type UserProvider_user$data = UserProvider_user;
export type UserProvider_user$key = {
readonly " $data"?: UserProvider_user$data;
readonly " $fragmentRefs": FragmentRefs<"UserProvider_user">;
};
const node: ReaderFragment = {
"argumentDefinitions": [],
"kind": "Fragment",
"metadata": null,
"name": "UserProvider_user",
"selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "firstName",
"storageKey": null
}
],
"type": "User",
"abstractKey": null
};
(node as any).hash = '352cdd208485d062f3f7c2e22e287a99';
export default node;

View File

@@ -14,7 +14,6 @@ export const FiatBalances: FC<Props> = ({ fiatBalancesRef }) => {
fragment FiatBalances_fiatBalances on FiatBalanceConnection { fragment FiatBalances_fiatBalances on FiatBalanceConnection {
edges { edges {
node { node {
id
amountCents amountCents
amountCurrency amountCurrency
} }

View File

@@ -7,7 +7,6 @@ import { FragmentRefs } from "relay-runtime";
export type FiatBalances_fiatBalances = { export type FiatBalances_fiatBalances = {
readonly edges: ReadonlyArray<{ readonly edges: ReadonlyArray<{
readonly node: { readonly node: {
readonly id: string;
readonly amountCents: number; readonly amountCents: number;
readonly amountCurrency: string; readonly amountCurrency: string;
}; };
@@ -44,13 +43,6 @@ const node: ReaderFragment = {
"name": "node", "name": "node",
"plural": false, "plural": false,
"selections": [ "selections": [
{
"alias": null,
"args": null,
"kind": "ScalarField",
"name": "id",
"storageKey": null
},
{ {
"alias": null, "alias": null,
"args": null, "args": null,
@@ -75,5 +67,5 @@ const node: ReaderFragment = {
"type": "FiatBalanceConnection", "type": "FiatBalanceConnection",
"abstractKey": null "abstractKey": null
}; };
(node as any).hash = '106c8efa69b9cde5af510a15c2493ba6'; (node as any).hash = 'a1454d1a8afc3cffb17cbfbe9e3555f7';
export default node; export default node;

View File

@@ -46,9 +46,9 @@ fragment Balances_balances on BalanceConnection {
fragment FiatBalances_fiatBalances on FiatBalanceConnection { fragment FiatBalances_fiatBalances on FiatBalanceConnection {
edges { edges {
node { node {
id
amountCents amountCents
amountCurrency amountCurrency
id
} }
} }
} }
@@ -135,7 +135,6 @@ return {
"name": "node", "name": "node",
"plural": false, "plural": false,
"selections": [ "selections": [
(v0/*: any*/),
{ {
"alias": null, "alias": null,
"args": null, "args": null,
@@ -149,7 +148,8 @@ return {
"kind": "ScalarField", "kind": "ScalarField",
"name": "amountCurrency", "name": "amountCurrency",
"storageKey": null "storageKey": null
} },
(v0/*: any*/)
], ],
"storageKey": null "storageKey": null
} }
@@ -222,12 +222,12 @@ return {
] ]
}, },
"params": { "params": {
"cacheID": "3c87fba4bacbbbe14fd4b584bfb1f7bb", "cacheID": "6acfc80d1e8d7c882a03e25cc7902d72",
"id": null, "id": null,
"metadata": {}, "metadata": {},
"name": "WalletQuery", "name": "WalletQuery",
"operationKind": "query", "operationKind": "query",
"text": "query WalletQuery {\n fiatBalances {\n ...FiatBalances_fiatBalances\n }\n balances {\n ...Balances_balances\n }\n}\n\nfragment Balances_balances on BalanceConnection {\n edges {\n node {\n id\n amount\n currency {\n name\n id\n }\n }\n }\n}\n\nfragment FiatBalances_fiatBalances on FiatBalanceConnection {\n edges {\n node {\n id\n amountCents\n amountCurrency\n }\n }\n}\n" "text": "query WalletQuery {\n fiatBalances {\n ...FiatBalances_fiatBalances\n }\n balances {\n ...Balances_balances\n }\n}\n\nfragment Balances_balances on BalanceConnection {\n edges {\n node {\n id\n amount\n currency {\n name\n id\n }\n }\n }\n}\n\nfragment FiatBalances_fiatBalances on FiatBalanceConnection {\n edges {\n node {\n amountCents\n amountCurrency\n id\n }\n }\n}\n"
} }
}; };
})(); })();

View File

@@ -1,13 +1,13 @@
import type { Contract } from "ethers";
import { ethers } from "ethers"; import { ethers } from "ethers";
import { tokens } from "../constants/pancake/Tokens"; import { tokens } from "../constants/pancake/Tokens";
import type { Token } from "../constants/pancake/Tokens"; import type { Token } from "../constants/pancake/Tokens";
import type { BscContext } from "../contexts/BscProvider";
// 1 Wei = 1*10^18 Ether // 1 Wei = 1*10^18 Ether
const ONE_BUSD_IN_WEI = ethers.utils.parseUnits("1", 18); const ONE_BUSD_IN_WEI = ethers.utils.parseUnits("1", 18);
export const getPriceInBusd = async (router: any, token: Token) => { export const getPriceInBusd = async (router: Contract, token: Token) => {
try { try {
const result = await router.getAmountsOut(ONE_BUSD_IN_WEI, [ const result = await router.getAmountsOut(ONE_BUSD_IN_WEI, [
token.address["56"], token.address["56"],

View File

@@ -2,7 +2,6 @@ import { ethers } from "ethers";
import BigNumber from "bignumber.js"; import BigNumber from "bignumber.js";
import erc20 from "../abi/erc20.json"; import erc20 from "../abi/erc20.json";
import { Token } from "../constants/pancake/Tokens";
import type { PoolConfig } from "../types"; import type { PoolConfig } from "../types";
export const getTotalStaked = async ( export const getTotalStaked = async (

View File

@@ -0,0 +1,10 @@
# frozen_string_literal: true
class BuyCryptoOrderPolicy < ApplicationPolicy
class Scope < Scope
def resolve
return scope.none if user.nil?
scope.where(user_id: user.id)
end
end
end

View File

@@ -0,0 +1,10 @@
# frozen_string_literal: true
class SellCryptoOrderPolicy < ApplicationPolicy
class Scope < Scope
def resolve
return scope.none if user.nil?
scope.where(user_id: user.id)
end
end
end

View File

@@ -1,6 +1,7 @@
{ {
"name": "x-stake", "name": "x-stake",
"private": true, "private": true,
"version": "0.1.0",
"scripts": { "scripts": {
"dev": "./bin/webpack-dev-server", "dev": "./bin/webpack-dev-server",
"lint": "eslint --ext .jsx,.js,.tsx,.ts app/javascript/", "lint": "eslint --ext .jsx,.js,.tsx,.ts app/javascript/",
@@ -9,6 +10,11 @@
"relay": "relay-compiler --schema app/javascript/__generated__/schema.graphql --src app/javascript/src --extensions tsx --language typescript", "relay": "relay-compiler --schema app/javascript/__generated__/schema.graphql --src app/javascript/src --extensions tsx --language typescript",
"relay:watch": "relay-compiler --schema app/javascript/__generated__/schema.graphql --src app/javascript/src --extensions tsx --language typescript --watch" "relay:watch": "relay-compiler --schema app/javascript/__generated__/schema.graphql --src app/javascript/src --extensions tsx --language typescript --watch"
}, },
"husky": {
"hooks": {
"pre-commit": "yarn lint:fix"
}
},
"dependencies": { "dependencies": {
"@babel/preset-react": "^7.14.5", "@babel/preset-react": "^7.14.5",
"@babel/preset-typescript": "^7.14.5", "@babel/preset-typescript": "^7.14.5",
@@ -39,7 +45,6 @@
"webpack": "^4.46.0", "webpack": "^4.46.0",
"webpack-cli": "^3.3.12" "webpack-cli": "^3.3.12"
}, },
"version": "0.1.0",
"devDependencies": { "devDependencies": {
"@types/ramda": "^0.27.44", "@types/ramda": "^0.27.44",
"@types/react-relay": "^11.0.2", "@types/react-relay": "^11.0.2",
@@ -50,6 +55,7 @@
"eslint-config-vtex-react": "^8.1.0", "eslint-config-vtex-react": "^8.1.0",
"eslint-plugin-relay": "^1.8.2", "eslint-plugin-relay": "^1.8.2",
"graphql": "^15.5.1", "graphql": "^15.5.1",
"husky": "^4.2.1",
"prettier": "^2.3.2", "prettier": "^2.3.2",
"relay-compiler": "^11.0.2", "relay-compiler": "^11.0.2",
"relay-compiler-language-typescript": "^14.0.0", "relay-compiler-language-typescript": "^14.0.0",

89
yarn.lock generated
View File

@@ -2784,6 +2784,11 @@ chrome-trace-event@^1.0.2:
resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac"
integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==
ci-info@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46"
integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==
cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3:
version "1.0.4" version "1.0.4"
resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de"
@@ -2907,6 +2912,11 @@ commondir@^1.0.1:
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=
compare-versions@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62"
integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==
component-emitter@^1.2.1: component-emitter@^1.2.1:
version "1.3.0" version "1.3.0"
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
@@ -4382,6 +4392,21 @@ find-up@^4.0.0, find-up@^4.1.0:
locate-path "^5.0.0" locate-path "^5.0.0"
path-exists "^4.0.0" path-exists "^4.0.0"
find-up@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc"
integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==
dependencies:
locate-path "^6.0.0"
path-exists "^4.0.0"
find-versions@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/find-versions/-/find-versions-4.0.0.tgz#3c57e573bf97769b8cb8df16934b627915da4965"
integrity sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==
dependencies:
semver-regex "^3.1.2"
findup-sync@^3.0.0: findup-sync@^3.0.0:
version "3.0.0" version "3.0.0"
resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1"
@@ -4874,6 +4899,22 @@ https-browserify@^1.0.0:
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
husky@^4.2.1:
version "4.3.8"
resolved "https://registry.yarnpkg.com/husky/-/husky-4.3.8.tgz#31144060be963fd6850e5cc8f019a1dfe194296d"
integrity sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==
dependencies:
chalk "^4.0.0"
ci-info "^2.0.0"
compare-versions "^3.6.0"
cosmiconfig "^7.0.0"
find-versions "^4.0.0"
opencollective-postinstall "^2.0.2"
pkg-dir "^5.0.0"
please-upgrade-node "^3.2.0"
slash "^3.0.0"
which-pm-runs "^1.0.0"
iconv-lite@0.4.24: iconv-lite@0.4.24:
version "0.4.24" version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
@@ -5592,6 +5633,13 @@ locate-path@^5.0.0:
dependencies: dependencies:
p-locate "^4.1.0" p-locate "^4.1.0"
locate-path@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==
dependencies:
p-locate "^5.0.0"
lodash.clonedeep@^4.5.0: lodash.clonedeep@^4.5.0:
version "4.5.0" version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
@@ -6270,6 +6318,11 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0:
dependencies: dependencies:
wrappy "1" wrappy "1"
opencollective-postinstall@^2.0.2:
version "2.0.3"
resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.3.tgz#7a0fff978f6dbfa4d006238fbac98ed4198c3259"
integrity sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==
opn@^5.5.0: opn@^5.5.0:
version "5.5.0" version "5.5.0"
resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc"
@@ -6356,6 +6409,13 @@ p-locate@^4.1.0:
dependencies: dependencies:
p-limit "^2.2.0" p-limit "^2.2.0"
p-locate@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834"
integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==
dependencies:
p-limit "^3.0.2"
p-map@^2.0.0: p-map@^2.0.0:
version "2.1.0" version "2.1.0"
resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
@@ -6588,6 +6648,13 @@ pkg-dir@^4.1.0:
dependencies: dependencies:
find-up "^4.0.0" find-up "^4.0.0"
pkg-dir@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760"
integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==
dependencies:
find-up "^5.0.0"
pkg-up@^2.0.0: pkg-up@^2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f"
@@ -6595,6 +6662,13 @@ pkg-up@^2.0.0:
dependencies: dependencies:
find-up "^2.1.0" find-up "^2.1.0"
please-upgrade-node@^3.2.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz#aeddd3f994c933e4ad98b99d9a556efa0e2fe942"
integrity sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==
dependencies:
semver-compare "^1.0.0"
pnp-webpack-plugin@^1.6.4: pnp-webpack-plugin@^1.6.4:
version "1.7.0" version "1.7.0"
resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.7.0.tgz#65741384f6d8056f36e2255a8d67ffc20866f5c9" resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.7.0.tgz#65741384f6d8056f36e2255a8d67ffc20866f5c9"
@@ -8016,6 +8090,16 @@ selfsigned@^1.10.8:
dependencies: dependencies:
node-forge "^0.10.0" node-forge "^0.10.0"
semver-compare@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc"
integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w=
semver-regex@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.2.tgz#34b4c0d361eef262e07199dbef316d0f2ab11807"
integrity sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==
"semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0: "semver@2 || 3 || 4 || 5", semver@^5.5.0, semver@^5.6.0:
version "5.7.1" version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
@@ -9260,6 +9344,11 @@ which-module@^2.0.0:
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=
which-pm-runs@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/which-pm-runs/-/which-pm-runs-1.0.0.tgz#670b3afbc552e0b55df6b7780ca74615f23ad1cb"
integrity sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs=
which@^1.2.14, which@^1.2.9, which@^1.3.1: which@^1.2.14, which@^1.2.9, which@^1.3.1:
version "1.3.1" version "1.3.1"
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"