diff --git a/packages/api-server/src/app.ts b/packages/api-server/src/app.ts index 97b160ad4f92..bfc00e457799 100644 --- a/packages/api-server/src/app.ts +++ b/packages/api-server/src/app.ts @@ -1,7 +1,8 @@ import express from 'express' -import type { Response, Request, Application } from 'express' import morgan from 'morgan' +import type { Response, Request, Application } from 'express' + // Base express app, with common config const createApp = (): Application => { const app = express() diff --git a/packages/api-server/src/error.ts b/packages/api-server/src/error.ts index 8b589d302fb4..cde2b3cef270 100644 --- a/packages/api-server/src/error.ts +++ b/packages/api-server/src/error.ts @@ -1,5 +1,5 @@ -import Youch from 'youch' import forTerminal from 'youch-terminal' +import Youch from 'youch' /** * This function will print a pretty version of an error in the terminal. diff --git a/packages/api-server/src/handler.ts b/packages/api-server/src/handler.ts index 48daf92243c7..3e007dc5389d 100644 --- a/packages/api-server/src/handler.ts +++ b/packages/api-server/src/handler.ts @@ -5,6 +5,7 @@ import withApiProxy from './middleware/withApiProxy' import withFunctions from './middleware/withFunctions' import withWebServer from './middleware/withWebServer' import { startServer } from './server' + import type { HttpServerParams } from './server' /* @@ -35,8 +36,7 @@ export const webCliOptions = { apiHost: { alias: 'api-host', type: 'string', - desc: - 'Forward requests from the apiProxyPath, defined in redwood.toml to this host', + desc: 'Forward requests from the apiProxyPath, defined in redwood.toml to this host', }, } as const diff --git a/packages/api-server/src/middleware/withApiProxy.ts b/packages/api-server/src/middleware/withApiProxy.ts index 41188fd15f9e..7ec57effe7e8 100644 --- a/packages/api-server/src/middleware/withApiProxy.ts +++ b/packages/api-server/src/middleware/withApiProxy.ts @@ -1,6 +1,7 @@ -import type { Application } from 'express' import { createProxyMiddleware } from 'http-proxy-middleware' +import type { Application } from 'express' + interface ApiProxyOptions { apiProxyPath: string apiHost?: string diff --git a/packages/api-server/src/middleware/withFunctions.ts b/packages/api-server/src/middleware/withFunctions.ts index 00f178ceb5d6..8b8d9b174b23 100644 --- a/packages/api-server/src/middleware/withFunctions.ts +++ b/packages/api-server/src/middleware/withFunctions.ts @@ -1,8 +1,6 @@ import path from 'path' -import type { Handler } from 'aws-lambda' import bodyParser from 'body-parser' -import type { Application, Request, Response } from 'express' import glob from 'glob' import escape from 'lodash.escape' @@ -10,6 +8,9 @@ import { getPaths } from '@redwoodjs/internal' import { requestHandler } from '../requestHandlers/awsLambda' +import type { Handler } from 'aws-lambda' +import type { Application, Request, Response } from 'express' + export type Lambdas = Record const LAMBDA_FUNCTIONS: Lambdas = {} diff --git a/packages/api-server/src/middleware/withWebServer.ts b/packages/api-server/src/middleware/withWebServer.ts index 3bf9aa300c19..5705d711c95d 100644 --- a/packages/api-server/src/middleware/withWebServer.ts +++ b/packages/api-server/src/middleware/withWebServer.ts @@ -1,11 +1,12 @@ import fs from 'fs' import path from 'path' -import type { Application } from 'express' import express from 'express' import { getPaths } from '@redwoodjs/internal' +import type { Application } from 'express' + const withWebServer = (app: Application) => { const indexContent = fs.readFileSync( path.join(getPaths().web.dist, '/index.html'), diff --git a/packages/api-server/src/requestHandlers/awsLambda.ts b/packages/api-server/src/requestHandlers/awsLambda.ts index f4ee4d5a1707..2001a4f84e32 100644 --- a/packages/api-server/src/requestHandlers/awsLambda.ts +++ b/packages/api-server/src/requestHandlers/awsLambda.ts @@ -1,12 +1,13 @@ +import qs from 'qs' + +import { handleError } from '../error' + import type { APIGatewayProxyResult, APIGatewayProxyEvent, Handler, } from 'aws-lambda' import type { Response, Request } from 'express' -import qs from 'qs' - -import { handleError } from '../error' export const parseBody = (rawBody: string | Buffer) => { if (typeof rawBody === 'string') { @@ -91,17 +92,16 @@ export const requestHandler = async ( // We take the express request object and convert it into a lambda function event. const event = lambdaEventForExpressRequest(req) - const handlerCallback = (expressResFn: Response) => ( - error: Error, - lambdaResult: APIGatewayProxyResult - ) => { - if (error) { - expressResponseForLambdaError(expressResFn, error) - return - } + const handlerCallback = + (expressResFn: Response) => + (error: Error, lambdaResult: APIGatewayProxyResult) => { + if (error) { + expressResponseForLambdaError(expressResFn, error) + return + } - expressResponseForLambdaResult(expressResFn, lambdaResult) - } + expressResponseForLambdaResult(expressResFn, lambdaResult) + } // Execute the lambda function. // https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html diff --git a/packages/api/src/auth/decoders/index.ts b/packages/api/src/auth/decoders/index.ts index 470f51a728d5..35d9eaa06b34 100644 --- a/packages/api/src/auth/decoders/index.ts +++ b/packages/api/src/auth/decoders/index.ts @@ -1,5 +1,3 @@ -import type { APIGatewayProxyEvent, Context as LambdaContext } from 'aws-lambda' - import type { SupportedAuthTypes } from '@redwoodjs/auth' import type { GlobalContext } from 'src/globalContext' @@ -10,6 +8,8 @@ import { ethereum } from './ethereum' import { netlify } from './netlify' import { nhost } from './nhost' import { supabase } from './supabase' + +import type { APIGatewayProxyEvent, Context as LambdaContext } from 'aws-lambda' const noop = (token: string) => token interface Req { diff --git a/packages/api/src/auth/decoders/netlify.ts b/packages/api/src/auth/decoders/netlify.ts index 42feda47464e..70809d06dab4 100644 --- a/packages/api/src/auth/decoders/netlify.ts +++ b/packages/api/src/auth/decoders/netlify.ts @@ -1,5 +1,6 @@ -import type { Context as LambdaContext, ClientContext } from 'aws-lambda' import jwt, { TokenExpiredError } from 'jsonwebtoken' + +import type { Context as LambdaContext, ClientContext } from 'aws-lambda' // import type { TokenExpiredError } from 'jsonwebtoken' type NetlifyContext = ClientContext & { diff --git a/packages/api/src/auth/index.ts b/packages/api/src/auth/index.ts index 30d2e6ea2f05..ca2c3f56d278 100644 --- a/packages/api/src/auth/index.ts +++ b/packages/api/src/auth/index.ts @@ -1,11 +1,11 @@ -import type { APIGatewayProxyEvent, Context as LambdaContext } from 'aws-lambda' - import type { SupportedAuthTypes } from '@redwoodjs/auth' import type { GlobalContext } from 'src/globalContext' import { decodeToken } from './decoders' +import type { APIGatewayProxyEvent, Context as LambdaContext } from 'aws-lambda' + // This is shared by `@redwoodjs/web` const AUTH_PROVIDER_HEADER = 'auth-provider' diff --git a/packages/api/src/auth/verifiers/common.ts b/packages/api/src/auth/verifiers/common.ts index 5f186483e307..12cd72776948 100644 --- a/packages/api/src/auth/verifiers/common.ts +++ b/packages/api/src/auth/verifiers/common.ts @@ -1,14 +1,15 @@ import jwtVerifier from './jwtVerifier' -import type { JwtVerifier } from './jwtVerifier' import secretKeyVerifier from './secretKeyVerifier' -import type { SecretKeyVerifier } from './secretKeyVerifier' import sha1Verifier from './sha1Verifier' -import type { Sha1Verifier } from './sha1Verifier' import sha256Verifier from './sha256Verifier' -import type { Sha256Verifier } from './sha256Verifier' import skipVerifier from './skipVerifier' -import type { SkipVerifier } from './skipVerifier' import timestampSchemeVerifier from './timestampSchemeVerifier' + +import type { JwtVerifier } from './jwtVerifier' +import type { SecretKeyVerifier } from './secretKeyVerifier' +import type { Sha1Verifier } from './sha1Verifier' +import type { Sha256Verifier } from './sha256Verifier' +import type { SkipVerifier } from './skipVerifier' import type { TimestampSchemeVerifier } from './timestampSchemeVerifier' export const verifierLookup = { diff --git a/packages/api/src/auth/verifiers/index.ts b/packages/api/src/auth/verifiers/index.ts index a8a395a4ebea..22d473dd3928 100644 --- a/packages/api/src/auth/verifiers/index.ts +++ b/packages/api/src/auth/verifiers/index.ts @@ -1,4 +1,5 @@ import { verifierLookup } from './common' + import type { SupportedVerifierTypes, VerifyOptions, diff --git a/packages/api/src/auth/verifiers/jwtVerifier.ts b/packages/api/src/auth/verifiers/jwtVerifier.ts index 46e3d7cdfd19..06a4ef7106d5 100644 --- a/packages/api/src/auth/verifiers/jwtVerifier.ts +++ b/packages/api/src/auth/verifiers/jwtVerifier.ts @@ -5,6 +5,7 @@ import { WebhookVerificationError, DEFAULT_WEBHOOK_SECRET, } from './common' + import type { WebhookVerifier, VerifyOptions } from './common' export interface JwtVerifier extends WebhookVerifier { diff --git a/packages/api/src/auth/verifiers/secretKeyVerifier.ts b/packages/api/src/auth/verifiers/secretKeyVerifier.ts index 96405eca4f6f..6494b233cdc2 100644 --- a/packages/api/src/auth/verifiers/secretKeyVerifier.ts +++ b/packages/api/src/auth/verifiers/secretKeyVerifier.ts @@ -1,4 +1,5 @@ import { WebhookVerificationError, DEFAULT_WEBHOOK_SECRET } from './common' + import type { WebhookVerifier, VerifyOptions } from './common' export interface SecretKeyVerifier extends WebhookVerifier { diff --git a/packages/api/src/auth/verifiers/sha1Verifier.ts b/packages/api/src/auth/verifiers/sha1Verifier.ts index 9afb3c7b8cdf..c958ed4d426f 100644 --- a/packages/api/src/auth/verifiers/sha1Verifier.ts +++ b/packages/api/src/auth/verifiers/sha1Verifier.ts @@ -5,6 +5,7 @@ import { VERIFICATION_ERROR_MESSAGE, DEFAULT_WEBHOOK_SECRET, } from './common' + import type { WebhookVerifier, VerifyOptions } from './common' export interface Sha1Verifier extends WebhookVerifier { diff --git a/packages/api/src/auth/verifiers/sha256Verifier.ts b/packages/api/src/auth/verifiers/sha256Verifier.ts index ddabcaa478dc..321ba58f657c 100644 --- a/packages/api/src/auth/verifiers/sha256Verifier.ts +++ b/packages/api/src/auth/verifiers/sha256Verifier.ts @@ -5,6 +5,7 @@ import { VERIFICATION_ERROR_MESSAGE, DEFAULT_WEBHOOK_SECRET, } from './common' + import type { WebhookVerifier, VerifyOptions } from './common' export interface Sha256Verifier extends WebhookVerifier { diff --git a/packages/api/src/auth/verifiers/timestampSchemeVerifier.ts b/packages/api/src/auth/verifiers/timestampSchemeVerifier.ts index bef2e467be9c..3eb56c399202 100644 --- a/packages/api/src/auth/verifiers/timestampSchemeVerifier.ts +++ b/packages/api/src/auth/verifiers/timestampSchemeVerifier.ts @@ -1,6 +1,7 @@ import { createHmac } from 'crypto' import { WebhookVerificationError, DEFAULT_WEBHOOK_SECRET } from './common' + import type { WebhookVerifier, VerifyOptions } from './common' export interface TimestampSchemeVerifier extends WebhookVerifier { diff --git a/packages/api/src/functions/graphql.ts b/packages/api/src/functions/graphql.ts index c99d3936a987..cb12dce1c95d 100644 --- a/packages/api/src/functions/graphql.ts +++ b/packages/api/src/functions/graphql.ts @@ -1,7 +1,4 @@ -import type { Context, ContextFunction } from 'apollo-server-core' -import type { Config, CreateHandlerOptions } from 'apollo-server-lambda' import { ApolloServer } from 'apollo-server-lambda' -import type { APIGatewayProxyEvent, Context as LambdaContext } from 'aws-lambda' import type { AuthContextPayload } from 'src/auth' import { getAuthenticationContext } from 'src/auth' @@ -12,6 +9,10 @@ import { usePerRequestContext, } from 'src/globalContext' +import type { Context, ContextFunction } from 'apollo-server-core' +import type { Config, CreateHandlerOptions } from 'apollo-server-lambda' +import type { APIGatewayProxyEvent, Context as LambdaContext } from 'aws-lambda' + export type GetCurrentUser = ( decoded: AuthContextPayload[0], raw: AuthContextPayload[1], diff --git a/packages/api/src/global.api-auto-imports.ts b/packages/api/src/global.api-auto-imports.ts index 77effa89383b..f12441f570b3 100644 --- a/packages/api/src/global.api-auto-imports.ts +++ b/packages/api/src/global.api-auto-imports.ts @@ -1,7 +1,6 @@ /* eslint-disable no-redeclare, no-undef */ -import type _gql from 'graphql-tag' - import type { GlobalContext } from './globalContext' +import type _gql from 'graphql-tag' declare global { const gql: typeof _gql diff --git a/packages/api/src/logger/index.ts b/packages/api/src/logger/index.ts index fae2ec944891..7451bd8d08a9 100644 --- a/packages/api/src/logger/index.ts +++ b/packages/api/src/logger/index.ts @@ -1,4 +1,5 @@ import { PrismaClient } from '@prisma/client' +import * as prettyPrint from 'pino-pretty' import pino, { BaseLogger, DestinationStream, @@ -7,7 +8,6 @@ import pino, { PrettyOptions, redactOptions, } from 'pino' -import * as prettyPrint from 'pino-pretty' export type LogLevel = 'info' | 'query' | 'warn' | 'error' diff --git a/packages/api/src/logger/logger.test.ts b/packages/api/src/logger/logger.test.ts index 24baaf28c757..16502f00442f 100644 --- a/packages/api/src/logger/logger.test.ts +++ b/packages/api/src/logger/logger.test.ts @@ -212,8 +212,7 @@ describe('logger', () => { logger.info( { - jwt: - 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c', + jwt: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c', }, 'test of a redacted JWT' ) diff --git a/packages/api/src/makeMergedSchema/makeMergedSchema.ts b/packages/api/src/makeMergedSchema/makeMergedSchema.ts index 47f372de11ac..0d20f8db17d5 100644 --- a/packages/api/src/makeMergedSchema/makeMergedSchema.ts +++ b/packages/api/src/makeMergedSchema/makeMergedSchema.ts @@ -5,7 +5,6 @@ import { IResolvers, IExecutableSchemaDefinition, } from 'apollo-server-lambda' -import type { GraphQLSchema, GraphQLFieldMap } from 'graphql' import merge from 'lodash.merge' import omitBy from 'lodash.omitby' @@ -13,6 +12,8 @@ import { Services, GraphQLTypeWithFields } from 'src/types' import * as rootSchema from './rootSchema' +import type { GraphQLSchema, GraphQLFieldMap } from 'graphql' + const mapFieldsToService = ({ fields = {}, resolvers: unmappedResolvers, diff --git a/packages/api/src/webhooks/index.ts b/packages/api/src/webhooks/index.ts index a90c38ba8a37..53adfea1d4b7 100644 --- a/packages/api/src/webhooks/index.ts +++ b/packages/api/src/webhooks/index.ts @@ -1,5 +1,3 @@ -import type { APIGatewayProxyEvent } from 'aws-lambda' - import { createVerifier, VerifyOptions, @@ -8,6 +6,8 @@ import { SupportedVerifierTypes, } from 'src/auth/verifiers' +import type { APIGatewayProxyEvent } from 'aws-lambda' + export { VerifyOptions, WebhookVerificationError, diff --git a/packages/api/src/webhooks/webhooks.test.ts b/packages/api/src/webhooks/webhooks.test.ts index f42f160cdaf2..aca388311662 100644 --- a/packages/api/src/webhooks/webhooks.test.ts +++ b/packages/api/src/webhooks/webhooks.test.ts @@ -1,5 +1,3 @@ -import type { APIGatewayProxyEvent } from 'aws-lambda' - import { signPayload, verifyEvent, @@ -8,6 +6,8 @@ import { DEFAULT_WEBHOOK_SIGNATURE_HEADER, } from './index' +import type { APIGatewayProxyEvent } from 'aws-lambda' + const payload = 'No more secrets, Marty.' const secret = 'MY_VOICE_IS_MY_PASSPORT_VERIFY_ME' diff --git a/packages/auth/src/AuthProvider.tsx b/packages/auth/src/AuthProvider.tsx index 28d8b42163d2..4a3dfbe41b6f 100644 --- a/packages/auth/src/AuthProvider.tsx +++ b/packages/auth/src/AuthProvider.tsx @@ -1,12 +1,13 @@ import React from 'react' +import { createAuthClient } from './authClients' + import type { AuthClient, SupportedAuthTypes, SupportedAuthClients, SupportedUserMetadata, } from './authClients' -import { createAuthClient } from './authClients' export interface CurrentUser { roles?: Array diff --git a/packages/auth/src/__tests__/AuthProvider.test.tsx b/packages/auth/src/__tests__/AuthProvider.test.tsx index 326ccaf37c38..1ff8b782bf9b 100644 --- a/packages/auth/src/__tests__/AuthProvider.test.tsx +++ b/packages/auth/src/__tests__/AuthProvider.test.tsx @@ -7,10 +7,11 @@ import '@testing-library/jest-dom/extend-expect' import { graphql } from 'msw' import { setupServer } from 'msw/node' -import type { AuthClient } from '../authClients' import { AuthProvider } from '../AuthProvider' import { useAuth } from '../useAuth' +import type { AuthClient } from '../authClients' + let CURRENT_USER_DATA: { name: string; email: string; roles?: string[] } = { name: 'Peter Pistorius', email: 'nospam@example.net', diff --git a/packages/auth/src/authClients/auth0.ts b/packages/auth/src/authClients/auth0.ts index 3fb16e1622d4..27ac05902597 100644 --- a/packages/auth/src/authClients/auth0.ts +++ b/packages/auth/src/authClients/auth0.ts @@ -1,6 +1,5 @@ -import type { Auth0Client as Auth0 } from '@auth0/auth0-spa-js' - import type { AuthClient } from './' +import type { Auth0Client as Auth0 } from '@auth0/auth0-spa-js' export type AuthClientAuth0 = AuthClient diff --git a/packages/auth/src/authClients/azureActiveDirectory.ts b/packages/auth/src/authClients/azureActiveDirectory.ts index 2e87108672fd..64666853a745 100644 --- a/packages/auth/src/authClients/azureActiveDirectory.ts +++ b/packages/auth/src/authClients/azureActiveDirectory.ts @@ -1,7 +1,7 @@ +import type { AuthClient } from './' import type { UserAgentApplication as AzureActiveDirectory } from 'msal' export type { AzureActiveDirectory } -import type { AuthClient } from './' export type AzureActiveDirectoryClient = AzureActiveDirectory export interface AzureActiveDirectoryUser {} diff --git a/packages/auth/src/authClients/firebase.ts b/packages/auth/src/authClients/firebase.ts index 4e9fb18accb0..0a624dcff18c 100644 --- a/packages/auth/src/authClients/firebase.ts +++ b/packages/auth/src/authClients/firebase.ts @@ -1,7 +1,8 @@ +import { AuthClient } from './' + import type FirebaseNamespace from 'firebase/app' -export type Firebase = typeof FirebaseNamespace -import { AuthClient } from './' +export type Firebase = typeof FirebaseNamespace // @TODO: Firebase doesn't export a list of providerIds they use // But I found them here: https://github.com/firebase/firebase-js-sdk/blob/a5768b0aa7d7ce732279931aa436e988c9f36487/packages/rules-unit-testing/src/api/index.ts diff --git a/packages/auth/src/authClients/goTrue.ts b/packages/auth/src/authClients/goTrue.ts index e9ea211bd03d..fd891a072b66 100644 --- a/packages/auth/src/authClients/goTrue.ts +++ b/packages/auth/src/authClients/goTrue.ts @@ -1,7 +1,7 @@ +import type { AuthClient } from './index' import type { default as GoTrue } from 'gotrue-js' import type { User } from 'gotrue-js' -import type { AuthClient } from './index' export type GoTrueUser = User export type { GoTrue } diff --git a/packages/auth/src/authClients/index.ts b/packages/auth/src/authClients/index.ts index 388eec4e45ce..2fa5f75104a6 100644 --- a/packages/auth/src/authClients/index.ts +++ b/packages/auth/src/authClients/index.ts @@ -1,26 +1,27 @@ -import type { Auth0, Auth0User } from './auth0' import { auth0 } from './auth0' +import { azureActiveDirectory } from './azureActiveDirectory' +import { custom } from './custom' +import { ethereum } from './ethereum' +import { firebase } from './firebase' +import { goTrue } from './goTrue' +import { magicLink } from './magicLink' +import { netlify } from './netlify' +import { nhost } from './nhost' +import { supabase } from './supabase' + +import type { Auth0, Auth0User } from './auth0' import type { AzureActiveDirectory, AzureActiveDirectoryUser, } from './azureActiveDirectory' -import { azureActiveDirectory } from './azureActiveDirectory' import type { Custom } from './custom' -import { custom } from './custom' import type { Ethereum, EthereumUser } from './ethereum' -import { ethereum } from './ethereum' import type { Firebase } from './firebase' -import { firebase } from './firebase' import type { GoTrue, GoTrueUser } from './goTrue' -import { goTrue } from './goTrue' import type { MagicLink, MagicUser } from './magicLink' -import { magicLink } from './magicLink' import type { NetlifyIdentity } from './netlify' -import { netlify } from './netlify' import type { Nhost, NhostUser } from './nhost' -import { nhost } from './nhost' import type { Supabase, SupabaseUser } from './supabase' -import { supabase } from './supabase' const typesToClients = { netlify, diff --git a/packages/auth/src/authClients/magicLink.ts b/packages/auth/src/authClients/magicLink.ts index ccb94d6831b4..dde58139a515 100644 --- a/packages/auth/src/authClients/magicLink.ts +++ b/packages/auth/src/authClients/magicLink.ts @@ -1,10 +1,8 @@ +import type { AuthClient } from './' import type { Magic, MagicUserMetadata } from 'magic-sdk' export type MagicLink = Magic export type MagicUser = MagicUserMetadata - -import type { AuthClient } from './' - export interface AuthClientMagicLink extends AuthClient { login(options: { email: string; showUI?: boolean }): Promise } diff --git a/packages/auth/src/authClients/netlify.ts b/packages/auth/src/authClients/netlify.ts index 7bea5a22895d..ae67b7b158b5 100644 --- a/packages/auth/src/authClients/netlify.ts +++ b/packages/auth/src/authClients/netlify.ts @@ -1,6 +1,5 @@ -import type * as NetlifyIdentityNS from 'netlify-identity-widget' - import type { AuthClient } from './' +import type * as NetlifyIdentityNS from 'netlify-identity-widget' export type NetlifyIdentity = typeof NetlifyIdentityNS diff --git a/packages/auth/src/authClients/nhost.ts b/packages/auth/src/authClients/nhost.ts index 44af16fbc083..d42ce88117c7 100644 --- a/packages/auth/src/authClients/nhost.ts +++ b/packages/auth/src/authClients/nhost.ts @@ -1,10 +1,10 @@ +import { AuthClient } from './' + import type { Session, NhostClient, User } from 'nhost-js-sdk' export type Nhost = NhostClient export type NhostUser = User -import { AuthClient } from './' - type NhostProvider = 'google' | 'github' | 'facebook' | 'linkedin' export interface AuthClientNhost extends AuthClient { /** diff --git a/packages/auth/src/authClients/supabase.ts b/packages/auth/src/authClients/supabase.ts index 66fd24563a9f..57c332c7f672 100644 --- a/packages/auth/src/authClients/supabase.ts +++ b/packages/auth/src/authClients/supabase.ts @@ -1,7 +1,8 @@ import { Session, User, Provider } from '@supabase/gotrue-js' -import type { SupabaseClient } from '@supabase/supabase-js' import type { AuthClient } from './index' +import type { SupabaseClient } from '@supabase/supabase-js' + export type Supabase = SupabaseClient export type SupabaseUser = User diff --git a/packages/auth/src/useAuth.ts b/packages/auth/src/useAuth.ts index 083a602a3943..24c6c5ea4228 100644 --- a/packages/auth/src/useAuth.ts +++ b/packages/auth/src/useAuth.ts @@ -1,8 +1,9 @@ import React from 'react' -import type { AuthContextInterface } from './AuthProvider' import { AuthContext } from './AuthProvider' +import type { AuthContextInterface } from './AuthProvider' + export const useAuth = (): AuthContextInterface => { return React.useContext(AuthContext) as AuthContextInterface } diff --git a/packages/cli/package.json b/packages/cli/package.json index a900d70a8f96..514a31341b0c 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -37,7 +37,7 @@ "param-case": "^3.0.4", "pascalcase": "^1.0.0", "pluralize": "^8.0.0", - "prettier": "^2.2.1", + "prettier": "^2.3.0", "prompts": "^2.4.1", "rimraf": "^3.0.2", "terminal-link": "^2.1.1", diff --git a/packages/cli/src/commands/build.js b/packages/cli/src/commands/build.js index ce1db3267019..1f7e8d23321e 100644 --- a/packages/cli/src/commands/build.js +++ b/packages/cli/src/commands/build.js @@ -86,8 +86,7 @@ export const handler = async ({ api: { // must use path.join() here, and for 'web' below, to support Windows cwd: path.join(getPaths().base, 'api'), - cmd: - "yarn cross-env NODE_ENV=production babel src --out-dir dist --delete-dir-on-start --extensions .ts,.js --ignore '**/*.test.ts,**/*.test.js,**/__tests__'", + cmd: "yarn cross-env NODE_ENV=production babel src --out-dir dist --delete-dir-on-start --extensions .ts,.js --ignore '**/*.test.ts,**/*.test.js,**/__tests__'", }, web: { cwd: path.join(getPaths().base, 'web'), diff --git a/packages/cli/src/commands/destroy/cell/cell.js b/packages/cli/src/commands/destroy/cell/cell.js index efb283764252..188f2507632b 100644 --- a/packages/cli/src/commands/destroy/cell/cell.js +++ b/packages/cli/src/commands/destroy/cell/cell.js @@ -1,13 +1,8 @@ import { files as cellFiles } from '../../generate/cell/cell' import { createYargsForComponentDestroy } from '../helpers' -export const { - command, - description, - builder, - handler, - tasks, -} = createYargsForComponentDestroy({ - componentName: 'cell', - filesFn: cellFiles, -}) +export const { command, description, builder, handler, tasks } = + createYargsForComponentDestroy({ + componentName: 'cell', + filesFn: cellFiles, + }) diff --git a/packages/cli/src/commands/destroy/component/component.js b/packages/cli/src/commands/destroy/component/component.js index ae4f716f6c77..476e8f1fa079 100644 --- a/packages/cli/src/commands/destroy/component/component.js +++ b/packages/cli/src/commands/destroy/component/component.js @@ -3,12 +3,8 @@ import { createYargsForComponentDestroy } from '../helpers' export const description = 'Destroy a component' -export const { - command, - builder, - handler, - tasks, -} = createYargsForComponentDestroy({ - componentName: 'component', - filesFn: componentFiles, -}) +export const { command, builder, handler, tasks } = + createYargsForComponentDestroy({ + componentName: 'component', + filesFn: componentFiles, + }) diff --git a/packages/cli/src/commands/destroy/layout/layout.js b/packages/cli/src/commands/destroy/layout/layout.js index 98522f706b59..b09ecbb694d3 100644 --- a/packages/cli/src/commands/destroy/layout/layout.js +++ b/packages/cli/src/commands/destroy/layout/layout.js @@ -1,13 +1,8 @@ import { files as layoutFiles } from '../../generate/layout/layout' import { createYargsForComponentDestroy } from '../helpers' -export const { - command, - description, - builder, - handler, - tasks, -} = createYargsForComponentDestroy({ - componentName: 'layout', - filesFn: layoutFiles, -}) +export const { command, description, builder, handler, tasks } = + createYargsForComponentDestroy({ + componentName: 'layout', + filesFn: layoutFiles, + }) diff --git a/packages/cli/src/commands/destroy/service/service.js b/packages/cli/src/commands/destroy/service/service.js index a9e1b6ccf321..cf16a04d9d35 100644 --- a/packages/cli/src/commands/destroy/service/service.js +++ b/packages/cli/src/commands/destroy/service/service.js @@ -15,12 +15,8 @@ export const filesWithTemplateVars = (templateVars) => { return (args) => files({ ...args, ...templateVars }) } -export const { - command, - description, - handler, - tasks, -} = createYargsForComponentDestroy({ - componentName: 'service', - filesFn: filesWithTemplateVars({ ...getDefaultArgs(builder), crud: true }), -}) +export const { command, description, handler, tasks } = + createYargsForComponentDestroy({ + componentName: 'service', + filesFn: filesWithTemplateVars({ ...getDefaultArgs(builder), crud: true }), + }) diff --git a/packages/cli/src/commands/generate/cell/cell.js b/packages/cli/src/commands/generate/cell/cell.js index a5fed9c53151..1630aa1c28bd 100644 --- a/packages/cli/src/commands/generate/cell/cell.js +++ b/packages/cli/src/commands/generate/cell/cell.js @@ -102,12 +102,8 @@ export const files = async ({ }, {}) } -export const { - command, - description, - builder, - handler, -} = createYargsForComponentGeneration({ - componentName: 'cell', - filesFn: files, -}) +export const { command, description, builder, handler } = + createYargsForComponentGeneration({ + componentName: 'cell', + filesFn: files, + }) diff --git a/packages/cli/src/commands/generate/layout/layout.js b/packages/cli/src/commands/generate/layout/layout.js index 3f1f5773f152..cbc5f58861c2 100644 --- a/packages/cli/src/commands/generate/layout/layout.js +++ b/packages/cli/src/commands/generate/layout/layout.js @@ -71,13 +71,9 @@ const optionsObj = { ...yargsDefaults, } -export const { - command, - description, - builder, - handler, -} = createYargsForComponentGeneration({ - componentName: 'layout', - filesFn: files, - optionsObj, -}) +export const { command, description, builder, handler } = + createYargsForComponentGeneration({ + componentName: 'layout', + filesFn: files, + optionsObj, + }) diff --git a/packages/cli/src/commands/generate/page/page.js b/packages/cli/src/commands/generate/page/page.js index a128d456fad1..2e78034c0b92 100644 --- a/packages/cli/src/commands/generate/page/page.js +++ b/packages/cli/src/commands/generate/page/page.js @@ -124,15 +124,12 @@ const positionalsObj = { // @NOTE: Not exporting handler from function // As pages need a special handler -export const { - command, - description, - builder, -} = createYargsForComponentGeneration({ - componentName: 'page', - filesFn: files, - positionalsObj, -}) +export const { command, description, builder } = + createYargsForComponentGeneration({ + componentName: 'page', + filesFn: files, + positionalsObj, + }) export const handler = async ({ name, diff --git a/packages/cli/src/commands/generate/sdl/sdl.js b/packages/cli/src/commands/generate/sdl/sdl.js index 10bb8029dc61..c1885551c4e6 100644 --- a/packages/cli/src/commands/generate/sdl/sdl.js +++ b/packages/cli/src/commands/generate/sdl/sdl.js @@ -145,14 +145,8 @@ const sdlFromSchemaModel = async (name, crud) => { } export const files = async ({ name, crud, tests, typescript }) => { - const { - query, - createInput, - updateInput, - idType, - relations, - enums, - } = await sdlFromSchemaModel(pascalcase(pluralize.singular(name)), crud) + const { query, createInput, updateInput, idType, relations, enums } = + await sdlFromSchemaModel(pascalcase(pluralize.singular(name)), crud) let template = generateTemplate( path.join('sdl', 'templates', `sdl.ts.template`), diff --git a/packages/cli/src/commands/generate/service/service.js b/packages/cli/src/commands/generate/service/service.js index 1b4264854929..ee2a0abc8b71 100644 --- a/packages/cli/src/commands/generate/service/service.js +++ b/packages/cli/src/commands/generate/service/service.js @@ -306,11 +306,8 @@ export const builder = (yargs) => { }) } -export const { - command, - description, - handler, -} = createYargsForComponentGeneration({ - componentName: 'service', - filesFn: files, -}) +export const { command, description, handler } = + createYargsForComponentGeneration({ + componentName: 'service', + filesFn: files, + }) diff --git a/packages/cli/src/commands/upgrade.js b/packages/cli/src/commands/upgrade.js index 08cdf24932b1..ea6dec4725c7 100644 --- a/packages/cli/src/commands/upgrade.js +++ b/packages/cli/src/commands/upgrade.js @@ -56,7 +56,8 @@ export const builder = (yargs) => { } // Used in yargs builder to coerce tag -const SEMVER_REGEX = /(?<=^v?|\sv?)(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-(?:0|[1-9]\d*|[\da-z-]*[a-z-][\da-z-]*)(?:\.(?:0|[1-9]\d*|[\da-z-]*[a-z-][\da-z-]*))*)?(?:\+[\da-z-]+(?:\.[\da-z-]+)*)?(?=$|\s)/gi +const SEMVER_REGEX = + /(?<=^v?|\sv?)(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)\.(?:0|[1-9]\d*)(?:-(?:0|[1-9]\d*|[\da-z-]*[a-z-][\da-z-]*)(?:\.(?:0|[1-9]\d*|[\da-z-]*[a-z-][\da-z-]*))*)?(?:\+[\da-z-]+(?:\.[\da-z-]+)*)?(?=$|\s)/gi const validateTag = (tag) => { const isTagValid = tag === 'rc' || diff --git a/packages/cli/src/redwood-tools.js b/packages/cli/src/redwood-tools.js index 5707b55379dc..bb351e1badd6 100644 --- a/packages/cli/src/redwood-tools.js +++ b/packages/cli/src/redwood-tools.js @@ -418,8 +418,7 @@ yargs }) .command({ command: 'unlink', - desc: - 'Unlink your local version of redwood, and use the one specified in package.json', + desc: 'Unlink your local version of redwood, and use the one specified in package.json', handler: rwtUnlink, }) .command( diff --git a/packages/core/config/webpack.common.js b/packages/core/config/webpack.common.js index 7689dfa0675f..9db8744f8c57 100644 --- a/packages/core/config/webpack.common.js +++ b/packages/core/config/webpack.common.js @@ -8,10 +8,10 @@ const Dotenv = require('dotenv-webpack') const HtmlWebpackPlugin = require('html-webpack-plugin') const MiniCssExtractPlugin = require('mini-css-extract-plugin') const TerserPlugin = require('terser-webpack-plugin') -const webpack = require('webpack') const { WebpackManifestPlugin } = require('webpack-manifest-plugin') const { merge } = require('webpack-merge') const { RetryChunkLoadPlugin } = require('webpack-retry-chunk-load-plugin') +const webpack = require('webpack') const { getConfig, getPaths } = require('@redwoodjs/internal') diff --git a/packages/core/src/babelPlugins/babel-plugin-redwood-directory-named-import.ts b/packages/core/src/babelPlugins/babel-plugin-redwood-directory-named-import.ts index a9c7bce21ffa..5f4358cbe6ee 100644 --- a/packages/core/src/babelPlugins/babel-plugin-redwood-directory-named-import.ts +++ b/packages/core/src/babelPlugins/babel-plugin-redwood-directory-named-import.ts @@ -1,9 +1,9 @@ import path from 'path' -import type { PluginObj, types } from '@babel/core' - import { resolveFile } from '@redwoodjs/internal' +import type { PluginObj, types } from '@babel/core' + const getNewPath = (value: string, filename: string): string | null => { const dirname = path.dirname(value) const basename = path.basename(value) diff --git a/packages/core/src/babelPlugins/babel-plugin-redwood-import-dir.ts b/packages/core/src/babelPlugins/babel-plugin-redwood-import-dir.ts index ee34969980a3..ca402669c2c5 100644 --- a/packages/core/src/babelPlugins/babel-plugin-redwood-import-dir.ts +++ b/packages/core/src/babelPlugins/babel-plugin-redwood-import-dir.ts @@ -1,10 +1,11 @@ import path from 'path' -import type { PluginObj, types } from '@babel/core' import glob from 'glob' import { generateTypeDef, generateTypeDefIndex } from './generateTypes' +import type { PluginObj, types } from '@babel/core' + /** * This babel plugin will search for import statements that include star `**` * in the source part of the statement is a glob, the files that are matched are imported, diff --git a/packages/core/src/babelPlugins/babel-plugin-redwood-mock-cell-data.ts b/packages/core/src/babelPlugins/babel-plugin-redwood-mock-cell-data.ts index 1391ea1391b0..7d2432b2440b 100644 --- a/packages/core/src/babelPlugins/babel-plugin-redwood-mock-cell-data.ts +++ b/packages/core/src/babelPlugins/babel-plugin-redwood-mock-cell-data.ts @@ -1,11 +1,11 @@ import path from 'path' -import type { PluginObj, types } from '@babel/core' - // TODO: Figure out why Wallaby doesn't work with a normal import. import { getBaseDirFromFile } from '@redwoodjs/internal/dist/paths' import { getProject, URL_file } from '@redwoodjs/structure' +import type { PluginObj, types } from '@babel/core' + export default function ({ types: t }: { types: typeof types }): PluginObj { let nodesToRemove: any[] = [] let nodesToInsert: any[] = [] diff --git a/packages/core/src/babelPlugins/babel-plugin-redwood-routes-auto-loader.ts b/packages/core/src/babelPlugins/babel-plugin-redwood-routes-auto-loader.ts index 99fb990b1694..891730d6e2a6 100644 --- a/packages/core/src/babelPlugins/babel-plugin-redwood-routes-auto-loader.ts +++ b/packages/core/src/babelPlugins/babel-plugin-redwood-routes-auto-loader.ts @@ -1,11 +1,11 @@ -import type { PluginObj, types } from '@babel/core' - import { importStatementPath, processPagesDir } from '@redwoodjs/internal' import { RWProject } from '@redwoodjs/structure' import { generateGlobalsDef } from './generateGlobals' import { generateTypeDef, generateTypeDefIndex } from './generateTypes' +import type { PluginObj, types } from '@babel/core' + interface PluginOptions { project: RWProject useStaticImports?: boolean diff --git a/packages/core/src/getConfig.ts b/packages/core/src/getConfig.ts index 78ec224171aa..378839aaf055 100644 --- a/packages/core/src/getConfig.ts +++ b/packages/core/src/getConfig.ts @@ -14,8 +14,8 @@ interface GetJestConfigParams { type GetConfigParams = GetJestConfigParams export function getConfig(opts: GetConfigParams) { - const createConfig = require(`@redwoodjs/core/dist/configs/${opts.target}/${opts.type}.createConfig.js`) - .default + const createConfig = + require(`@redwoodjs/core/dist/configs/${opts.target}/${opts.type}.createConfig.js`).default return createConfig(opts) } diff --git a/packages/create-redwood-app/src/create-redwood-app.js b/packages/create-redwood-app/src/create-redwood-app.js index 1f4f81d9e35d..64f7a48c02a2 100644 --- a/packages/create-redwood-app/src/create-redwood-app.js +++ b/packages/create-redwood-app/src/create-redwood-app.js @@ -43,7 +43,11 @@ const style = { green: chalk.green, } -const { _: args, 'yarn-install': yarnInstall, typescript } = yargs +const { + _: args, + 'yarn-install': yarnInstall, + typescript, +} = yargs .scriptName(name) .usage('Usage: $0 [option]') .example('$0 newapp') diff --git a/packages/dev-server/src/error.ts b/packages/dev-server/src/error.ts index 8b589d302fb4..cde2b3cef270 100644 --- a/packages/dev-server/src/error.ts +++ b/packages/dev-server/src/error.ts @@ -1,5 +1,5 @@ -import Youch from 'youch' import forTerminal from 'youch-terminal' +import Youch from 'youch' /** * This function will print a pretty version of an error in the terminal. diff --git a/packages/dev-server/src/http.ts b/packages/dev-server/src/http.ts index 1de6a371bc54..cdd8e80a62ce 100644 --- a/packages/dev-server/src/http.ts +++ b/packages/dev-server/src/http.ts @@ -1,8 +1,9 @@ import bodyParser from 'body-parser' -import type { Response, Request } from 'express' import express from 'express' import morgan from 'morgan' +import type { Response, Request } from 'express' + export interface Lambdas { [path: string]: any } diff --git a/packages/dev-server/src/main.ts b/packages/dev-server/src/main.ts index 50c0cfff8044..04b8e423601a 100644 --- a/packages/dev-server/src/main.ts +++ b/packages/dev-server/src/main.ts @@ -1,8 +1,8 @@ #!/usr/bin/env node import yargs from 'yargs' -import { getConfig, getPaths } from '@redwoodjs/internal' import type { NodeTargetPaths } from '@redwoodjs/internal' +import { getConfig, getPaths } from '@redwoodjs/internal' import { handleError } from './error' import { server, setLambdaFunctions } from './http' diff --git a/packages/dev-server/src/requestHandlers/awsLambda.ts b/packages/dev-server/src/requestHandlers/awsLambda.ts index 957c4f9e46d8..c61e01ac32c7 100644 --- a/packages/dev-server/src/requestHandlers/awsLambda.ts +++ b/packages/dev-server/src/requestHandlers/awsLambda.ts @@ -1,9 +1,10 @@ -import type { APIGatewayProxyResult, APIGatewayProxyEvent } from 'aws-lambda' -import type { Response, Request } from 'express' import qs from 'qs' import { handleError } from '../error' +import type { APIGatewayProxyResult, APIGatewayProxyEvent } from 'aws-lambda' +import type { Response, Request } from 'express' + export const parseBody = (rawBody: string | Buffer) => { if (typeof rawBody === 'string') { return { body: rawBody, isBase64Encoded: false } @@ -97,17 +98,16 @@ export const requestHandler = async ( // We take the express request object and convert it into a lambda function event. const event = lambdaEventForExpressRequest(req) - const handlerCallback = (expressResFn: Response) => ( - error: Error, - lambdaResult: APIGatewayProxyResult - ) => { - if (error) { - expressResponseForLambdaError(expressResFn, error) - return - } + const handlerCallback = + (expressResFn: Response) => + (error: Error, lambdaResult: APIGatewayProxyResult) => { + if (error) { + expressResponseForLambdaError(expressResFn, error) + return + } - expressResponseForLambdaResult(expressResFn, lambdaResult) - } + expressResponseForLambdaResult(expressResFn, lambdaResult) + } // Execute the lambda function. // https://docs.aws.amazon.com/lambda/latest/dg/nodejs-prog-model-handler.html diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index 92ce3473f54f..0bfadfe18b91 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -8,17 +8,17 @@ "@typescript-eslint/eslint-plugin": "^4.23.0", "@typescript-eslint/parser": "^4.23.0", "babel-eslint": "^10.1.0", - "eslint": "^7.25.0", + "eslint": "^7.26.0", "eslint-config-prettier": "^8.3.0", "eslint-import-resolver-babel-module": "^5.3.1", "eslint-plugin-babel": "^5.3.1", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-jest-dom": "^3.8.1", + "eslint-plugin-import": "^2.23.0", + "eslint-plugin-jest-dom": "^3.9.0", "eslint-plugin-jsx-a11y": "^6.4.1", "eslint-plugin-prettier": "^3.4.0", "eslint-plugin-react": "^7.23.2", "eslint-plugin-react-hooks": "^4.2.0", - "prettier": "^2.2.1" + "prettier": "^2.3.0" }, "scripts": { "build": "echo 'Nothing to build..'" diff --git a/packages/internal/package.json b/packages/internal/package.json index d2cb182e1ee2..0d613163afa5 100644 --- a/packages/internal/package.json +++ b/packages/internal/package.json @@ -14,7 +14,7 @@ "findup-sync": "^4.0.0", "glob": "7.1.6", "kill-port": "^1.6.1", - "prettier": "^2.2.1", + "prettier": "^2.3.0", "toml": "^3.0.0" }, "devDependencies": { diff --git a/packages/prerender/src/babelPlugins/babel-plugin-redwood-prerender-media-imports.ts b/packages/prerender/src/babelPlugins/babel-plugin-redwood-prerender-media-imports.ts index 0e5f16dbeda8..0191d392bae6 100644 --- a/packages/prerender/src/babelPlugins/babel-plugin-redwood-prerender-media-imports.ts +++ b/packages/prerender/src/babelPlugins/babel-plugin-redwood-prerender-media-imports.ts @@ -1,9 +1,9 @@ import { extname, basename, join } from 'path' -import type { PluginObj, types, NodePath } from '@babel/core' - import { getPaths } from '@redwoodjs/internal' +import type { PluginObj, types, NodePath } from '@babel/core' + const defaultOptions = { // This list of extensions matches config for file-loader in // packages/core/config/webpack.common.js diff --git a/packages/router/src/RouteNameContext.tsx b/packages/router/src/RouteNameContext.tsx index 47d0c1d8b626..f7f1fe414416 100644 --- a/packages/router/src/RouteNameContext.tsx +++ b/packages/router/src/RouteNameContext.tsx @@ -6,9 +6,8 @@ export interface RouteNameContextInterface { routeName?: string } -const RouteNameContext = createNamedContext( - 'RouteName' -) +const RouteNameContext = + createNamedContext('RouteName') export const RouteNameProvider = RouteNameContext.Provider diff --git a/packages/router/src/Set.tsx b/packages/router/src/Set.tsx index 6ec9cba64d65..bf8ef135b7ea 100644 --- a/packages/router/src/Set.tsx +++ b/packages/router/src/Set.tsx @@ -2,8 +2,8 @@ import React, { ReactElement, ReactNode, useCallback } from 'react' import { Redirect } from './links' import { useLocation } from './location' -import { isRoute } from './router' import { useRouterState } from './router-context' +import { isRoute } from './router' import { flattenAll, matchPath } from './util' type WrapperType = ( diff --git a/packages/router/src/__tests__/location.test.tsx b/packages/router/src/__tests__/location.test.tsx index b3ee21d58292..524bf3875a87 100644 --- a/packages/router/src/__tests__/location.test.tsx +++ b/packages/router/src/__tests__/location.test.tsx @@ -33,7 +33,7 @@ describe('useLocation', () => { getByText( '{"pathname":"/dunder-mifflin","search":"?facts=bears","hash":"#woof"}' ) - ).toBeTruthy() + ).toBeInTheDocument() expect(getByTestId('pathname')).toHaveValue('/dunder-mifflin') expect(getByTestId('search')).toHaveValue('?facts=bears') expect(getByTestId('hash')).toHaveValue('#woof') diff --git a/packages/router/src/__tests__/router.test.tsx b/packages/router/src/__tests__/router.test.tsx index 04914bde8aec..8a2eebdea827 100644 --- a/packages/router/src/__tests__/router.test.tsx +++ b/packages/router/src/__tests__/router.test.tsx @@ -31,15 +31,18 @@ function createDummyAuthContextValues(partial: Partial) { return { ...authContextValues, ...partial } } -const mockUseAuth = ( - { - isAuthenticated = false, - loading = false, - }: { isAuthenticated?: boolean; loading?: boolean } = { - isAuthenticated: false, - loading: false, - } -) => () => createDummyAuthContextValues({ loading, isAuthenticated }) +const mockUseAuth = + ( + { + isAuthenticated = false, + loading = false, + }: { isAuthenticated?: boolean; loading?: boolean } = { + isAuthenticated: false, + loading: false, + } + ) => + () => + createDummyAuthContextValues({ loading, isAuthenticated }) // SETUP const HomePage = () =>

Home Page

@@ -92,8 +95,8 @@ test('inits routes and navigates as expected', async () => { // passes search params to the page act(() => navigate(routes.params({ value: 'val', q: 'q' }))) await waitFor(() => { - expect(screen.queryByText('param valq')).toBeTruthy() - expect(screen.queryByText('hookparams val?q')).toBeTruthy() + expect(screen.queryByText('param valq')).toBeInTheDocument() + expect(screen.queryByText('hookparams val?q')).toBeInTheDocument() }) // navigate to redirect page @@ -101,7 +104,7 @@ test('inits routes and navigates as expected', async () => { act(() => navigate(routes.redirect())) await waitFor(() => { expect(screen.queryByText(/Redirect Page/)).not.toBeInTheDocument() - expect(screen.queryByText(/About Page/)).toBeTruthy() + expect(screen.queryByText(/About Page/)).toBeInTheDocument() }) act(() => navigate('/redirect2/redirected?q=cue')) @@ -198,7 +201,7 @@ test('authenticated user can access private page', async () => { // should not redirect act(() => navigate(routes.private())) await waitFor(() => { - expect(screen.getByText(/Private Page/)).toBeTruthy() + expect(screen.getByText(/Private Page/)).toBeInTheDocument() expect(screen.queryByText(/Home Page/)).not.toBeInTheDocument() }) }) @@ -226,7 +229,7 @@ test('can display a loading screen whilst waiting for auth', async () => { // should not redirect act(() => navigate(routes.private())) await waitFor(() => { - expect(screen.getByText(/Loading.../)).toBeTruthy() + expect(screen.getByText(/Loading.../)).toBeInTheDocument() expect(screen.queryByText(/Home Page/)).not.toBeInTheDocument() }) }) diff --git a/packages/router/src/__tests__/util.test.ts b/packages/router/src/__tests__/util.test.ts index e8dab5fa1b9a..eb7614416d51 100644 --- a/packages/router/src/__tests__/util.test.ts +++ b/packages/router/src/__tests__/util.test.ts @@ -22,9 +22,9 @@ describe('matchPath', () => { params: { id: 7 }, }) - expect( - matchPath('/blog/{year}/{month}/{day}', '/blog/2019/12/07') - ).toEqual({ match: true, params: { day: '07', month: '12', year: '2019' } }) + expect(matchPath('/blog/{year}/{month}/{day}', '/blog/2019/12/07')).toEqual( + { match: true, params: { day: '07', month: '12', year: '2019' } } + ) }) it('transforms a param for Int', () => { diff --git a/packages/router/src/page-loader.tsx b/packages/router/src/page-loader.tsx index 4d15ad0ca6b9..55d8f27fa078 100644 --- a/packages/router/src/page-loader.tsx +++ b/packages/router/src/page-loader.tsx @@ -14,9 +14,8 @@ export interface PageLoadingContextInterface { loading: boolean } -export const PageLoadingContext = createNamedContext( - 'PageLoading' -) +export const PageLoadingContext = + createNamedContext('PageLoading') export const usePageLoadingContext = () => { const pageLoadingContext = useContext(PageLoadingContext) @@ -126,10 +125,10 @@ export class PageLoader extends React.Component { // than `delay`. // Consumers of the context can show a loading indicator // to signal to the user that something is happening. - this.loadingTimeout = (setTimeout( + this.loadingTimeout = setTimeout( () => this.setState({ slowModuleImport: true }), delay - ) as unknown) as number + ) as unknown as number // Wait to download and parse the page. const module = await loader() @@ -151,8 +150,8 @@ export class PageLoader extends React.Component { if (global.__REDWOOD__PRERENDERING) { // babel autoloader plugin uses withStaticImport in prerender mode // override the types for this condition - const syncPageLoader = (this.props.spec - .loader as unknown) as synchonousLoaderSpec + const syncPageLoader = this.props.spec + .loader as unknown as synchonousLoaderSpec const PageFromLoader = syncPageLoader().default return ( diff --git a/packages/router/src/router-context.tsx b/packages/router/src/router-context.tsx index 9ba252fdfd76..296d17b78cb9 100644 --- a/packages/router/src/router-context.tsx +++ b/packages/router/src/router-context.tsx @@ -21,9 +21,8 @@ export interface RouterSetContextProps { setState: (newState: Partial) => void } -const RouterSetContext = createContext< - React.Dispatch> | undefined ->(undefined) +const RouterSetContext = + createContext> | undefined>(undefined) export interface RouterContextProviderProps extends Omit { diff --git a/packages/structure/src/ide.ts b/packages/structure/src/ide.ts index 12659747ef66..f52899ed965f 100644 --- a/packages/structure/src/ide.ts +++ b/packages/structure/src/ide.ts @@ -1,7 +1,6 @@ import { basename } from 'path' import * as tsm from 'ts-morph' -import { TextDocuments } from 'vscode-languageserver' import { TextDocument } from 'vscode-languageserver-textdocument' import { CodeLens, @@ -10,6 +9,7 @@ import { Location, Range, } from 'vscode-languageserver-types' +import { TextDocuments } from 'vscode-languageserver' import { Host, DefaultHost } from './hosts' import { ArrayLike, ArrayLike_normalize } from './x/Array' diff --git a/packages/structure/src/language_server/RWLanguageServer.ts b/packages/structure/src/language_server/RWLanguageServer.ts index 5d15dc5154c3..56e4bf334aca 100644 --- a/packages/structure/src/language_server/RWLanguageServer.ts +++ b/packages/structure/src/language_server/RWLanguageServer.ts @@ -1,3 +1,5 @@ +import { TextDocument } from 'vscode-languageserver-textdocument' +import { CodeAction } from 'vscode-languageserver-types' import { createConnection, InitializeParams, @@ -5,19 +7,17 @@ import { TextDocuments, TextDocumentSyncKind, } from 'vscode-languageserver' -import { TextDocument } from 'vscode-languageserver-textdocument' -import { CodeAction } from 'vscode-languageserver-types' import { HostWithDocumentsStore, IDEInfo } from '../ide' import { RWProject } from '../model' import { lazy, memo } from '../x/decorators' import { URL_toFile } from '../x/URL' -import { VSCodeWindowMethods_fromConnection } from '../x/vscode' -import { Connection_suppressErrors } from '../x/vscode-languageserver' import { ExtendedDiagnostic_findRelevantQuickFixes, Range_contains, } from '../x/vscode-languageserver-types' +import { Connection_suppressErrors } from '../x/vscode-languageserver' +import { VSCodeWindowMethods_fromConnection } from '../x/vscode' import { CommandsManager } from './commands' import { DiagnosticsManager } from './diagnostics' diff --git a/packages/structure/src/language_server/commands.ts b/packages/structure/src/language_server/commands.ts index 3cc2d5af6dfc..e87015ff55f6 100644 --- a/packages/structure/src/language_server/commands.ts +++ b/packages/structure/src/language_server/commands.ts @@ -42,13 +42,8 @@ export class CommandsManager { // --- start command implementations private async command__cli(cmdString?: string, cwd?: string) { - const { - vscodeWindowMethods, - host, - projectRoot, - connection, - documents, - } = this.server + const { vscodeWindowMethods, host, projectRoot, connection, documents } = + this.server cwd = cwd ?? projectRoot if (!cwd) { return diff --git a/packages/structure/src/model/RWEnvHelper.ts b/packages/structure/src/model/RWEnvHelper.ts index a2a02c7b3944..3bbfa069fc8b 100644 --- a/packages/structure/src/model/RWEnvHelper.ts +++ b/packages/structure/src/model/RWEnvHelper.ts @@ -10,13 +10,13 @@ import { BaseNode, CodeLensX, Definition, HoverX, Reference } from 'src/ide' import { lazy } from 'src/x/decorators' import { prisma_parseEnvExpressionsInFile } from 'src/x/prisma' import { URL_file } from 'src/x/URL' -import { Command_open } from 'src/x/vscode' import { ExtendedDiagnostic, ExtendedDiagnostic_is, LocationLike_toHashLink, LocationLike_toLocation, } from 'src/x/vscode-languageserver-types' +import { Command_open } from 'src/x/vscode' import { RWProject } from './RWProject' import { process_env_findAll } from './util/process_env' diff --git a/packages/structure/src/x/vscode-languageserver-types.ts b/packages/structure/src/x/vscode-languageserver-types.ts index 27628bce5b30..fbc8b22e1a9d 100644 --- a/packages/structure/src/x/vscode-languageserver-types.ts +++ b/packages/structure/src/x/vscode-languageserver-types.ts @@ -1,7 +1,6 @@ import lc from 'line-column' import { groupBy, mapValues, uniqBy } from 'lodash' import * as tsm from 'ts-morph' -import { TextDocuments } from 'vscode-languageserver' import { TextDocument } from 'vscode-languageserver-textdocument' import { CodeAction, @@ -15,6 +14,7 @@ import { WorkspaceChange, WorkspaceEdit, } from 'vscode-languageserver-types' +import { TextDocuments } from 'vscode-languageserver' import { URL_file } from './URL' @@ -201,9 +201,9 @@ export function ExtendedDiagnostic_is(x: any): x is ExtendedDiagnostic { return true } -export function ExtendedDiagnostic_groupByUri( - ds: ExtendedDiagnostic[] -): { [uri: string]: Diagnostic[] } { +export function ExtendedDiagnostic_groupByUri(ds: ExtendedDiagnostic[]): { + [uri: string]: Diagnostic[] +} { const grouped = groupBy(ds, (d) => d.uri) const dss = mapValues(grouped, (xds) => { const dd = xds.map((xd) => xd.diagnostic) diff --git a/packages/structure/src/x/vscode.ts b/packages/structure/src/x/vscode.ts index 11dd57f551de..417ba9cbe91c 100644 --- a/packages/structure/src/x/vscode.ts +++ b/packages/structure/src/x/vscode.ts @@ -4,9 +4,9 @@ // we only use it in type declarations // (we can't use "import type" since we need to do use it in some typeof expressions) import { memoize } from 'lodash' -import * as vscode from 'vscode' -import { Connection as LSPConnection } from 'vscode-languageserver' import { Command, Location } from 'vscode-languageserver-types' +import { Connection as LSPConnection } from 'vscode-languageserver' +import * as vscode from 'vscode' import { lazy, memo } from '../x/decorators' diff --git a/packages/testing/src/MockProviders.tsx b/packages/testing/src/MockProviders.tsx index 050eb313a894..fdb844abf5d4 100644 --- a/packages/testing/src/MockProviders.tsx +++ b/packages/testing/src/MockProviders.tsx @@ -4,8 +4,8 @@ */ import React from 'react' -import { AuthProvider } from '@redwoodjs/auth' import type { AuthContextInterface } from '@redwoodjs/auth' +import { AuthProvider } from '@redwoodjs/auth' import { LocationProvider } from '@redwoodjs/router' import { RedwoodApolloProvider } from '@redwoodjs/web/apollo' diff --git a/packages/testing/src/customRender.tsx b/packages/testing/src/customRender.tsx index 776e67b10b79..37ca96575e40 100644 --- a/packages/testing/src/customRender.tsx +++ b/packages/testing/src/customRender.tsx @@ -1,10 +1,11 @@ import React from 'react' -import type { RenderResult } from '@testing-library/react' import { render } from '@testing-library/react' import { MockProviders } from './MockProviders' +import type { RenderResult } from '@testing-library/react' + export const customRender = ( ui: React.ReactElement, options = {} diff --git a/packages/testing/src/mockRequests.ts b/packages/testing/src/mockRequests.ts index 39adc404e84c..1e88e1704dc8 100644 --- a/packages/testing/src/mockRequests.ts +++ b/packages/testing/src/mockRequests.ts @@ -10,6 +10,7 @@ import { SetupWorkerApi, ResponseComposition, } from 'msw' + import type { StartOptions as StartMSWWorkerOptions } from 'msw/lib/types/setupWorker/glossary' import type { SharedOptions as SharedMSWOptions } from 'msw/lib/types/sharedOptions' diff --git a/packages/web/src/components/createCell.tsx b/packages/web/src/components/createCell.tsx index b206f67d2cea..2f9ce2ed19be 100644 --- a/packages/web/src/components/createCell.tsx +++ b/packages/web/src/components/createCell.tsx @@ -1,7 +1,7 @@ -import type { DocumentNode } from 'graphql' - import { useQuery, OperationResult } from './GraphQLHooksProvider' +import type { DocumentNode } from 'graphql' + interface QueryProps { query: DocumentNode children: (result: OperationResult) => React.ReactElement diff --git a/yarn.lock b/yarn.lock index 040f02b0f1e6..36e47b70786f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1709,10 +1709,10 @@ resolved "https://registry.yarnpkg.com/@emotion/weak-memoize/-/weak-memoize-0.2.5.tgz#8eed982e2ee6f7f4e44c253e12962980791efd46" integrity sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA== -"@eslint/eslintrc@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.0.tgz#99cc0a0584d72f1df38b900fb062ba995f395547" - integrity sha512-2ZPCc+uNbjV5ERJr+aKSPRwZgKd2z11x0EgLvb1PURmUrn9QNRXFqje0Ldq454PfAVyaJYyrDvvIKSFP4NnBog== +"@eslint/eslintrc@^0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.1.tgz#442763b88cecbe3ee0ec7ca6d6dd6168550cbf14" + integrity sha512-5v7TDE9plVhvxQeWLXDTvFvJBdH6pEsdnl2g/dAptmuFEPedQ4Erq5rsDsX+mvAM610IhNaO2W5V1dOOnDKxkQ== dependencies: ajv "^6.12.4" debug "^4.1.1" @@ -5812,7 +5812,7 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -array.prototype.flat@^1.2.1, array.prototype.flat@^1.2.3: +array.prototype.flat@^1.2.1, array.prototype.flat@^1.2.4: version "1.2.4" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== @@ -7686,10 +7686,13 @@ constants-browserify@^1.0.0: resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= -contains-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" - integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= +contains-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-1.0.0.tgz#3458b332185603e8eed18f518d4a10888a3abc91" + integrity sha1-NFizMhhWA+ju0Y9RjUoQiIo6vJE= + dependencies: + normalize-path "^2.1.1" + path-starts-with "^1.0.0" content-disposition@0.5.3: version "0.5.3" @@ -8396,7 +8399,7 @@ debug@4, debug@4.3.2, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.0: dependencies: ms "2.1.2" -debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.6: +debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.6, debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== @@ -8763,14 +8766,6 @@ dns-txt@^2.0.2: dependencies: buffer-indexof "^1.0.0" -doctrine@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - doctrine@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" @@ -9371,12 +9366,12 @@ eslint-import-resolver-node@^0.3.4: debug "^2.6.9" resolve "^1.13.1" -eslint-module-utils@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" - integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== +eslint-module-utils@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.1.tgz#b51be1e473dd0de1c5ea638e22429c2490ea8233" + integrity sha512-ZXI9B8cxAJIH4nfkhTwcRTEAnrVfobYqwjWy/QMCZ8rHkZHFjf9yO4BzpiF9kCSfNlMG54eKigISHpX0+AaT4A== dependencies: - debug "^2.6.9" + debug "^3.2.7" pkg-dir "^2.0.0" eslint-plugin-babel@^5.3.1: @@ -9386,29 +9381,32 @@ eslint-plugin-babel@^5.3.1: dependencies: eslint-rule-composer "^0.3.0" -eslint-plugin-import@^2.22.1: - version "2.22.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.1.tgz#0896c7e6a0cf44109a2d97b95903c2bb689d7702" - integrity sha512-8K7JjINHOpH64ozkAhpT3sd+FswIZTfMZTjdx052pnWrgRCVfp8op9tbjpAk3DdUeI/Ba4C8OjdC0r90erHEOw== +eslint-plugin-import@^2.23.0: + version "2.23.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.23.0.tgz#557160f501e4beaefb768fb4165d36eb2a4e543a" + integrity sha512-W5v1f7Cbam6BwbSSKtN6+yoUAms07ozbqAEhLOtf5erEqRv7w67PeZuAuBThaUkzdq2GfBx/5GBvxF+NWJshrQ== dependencies: - array-includes "^3.1.1" - array.prototype.flat "^1.2.3" - contains-path "^0.1.0" + array-includes "^3.1.3" + array.prototype.flat "^1.2.4" + contains-path "^1.0.0" debug "^2.6.9" - doctrine "1.5.0" + doctrine "^2.1.0" eslint-import-resolver-node "^0.3.4" - eslint-module-utils "^2.6.0" + eslint-module-utils "^2.6.1" + find-up "^2.0.0" has "^1.0.3" + is-core-module "^2.4.0" minimatch "^3.0.4" - object.values "^1.1.1" - read-pkg-up "^2.0.0" - resolve "^1.17.0" + object.values "^1.1.3" + pkg-up "^2.0.0" + read-pkg-up "^3.0.0" + resolve "^1.20.0" tsconfig-paths "^3.9.0" -eslint-plugin-jest-dom@^3.8.1: - version "3.8.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest-dom/-/eslint-plugin-jest-dom-3.8.1.tgz#699691b4de4df572bfdf544db37f576d33eddc62" - integrity sha512-Qcx1XTy4VCJPOkCynRIzPl67az3pj8EJgfRZYGIBxbp4nxtulWFRzWrkD7nNag5JWAWiujgJS44SCjNyFzl1fQ== +eslint-plugin-jest-dom@^3.9.0: + version "3.9.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest-dom/-/eslint-plugin-jest-dom-3.9.0.tgz#dab0b532f1a3e2285b74e3a6d32f7ce197975dcf" + integrity sha512-Ou3cuAAY9s6pYZv+KKPa9XquSzUAWW2CgE5al7cQ0yew25w/kp5kNsUJgESb3Pj00Y6pzvznepppL2sk7UOQKg== dependencies: "@babel/runtime" "^7.9.6" "@testing-library/dom" "^7.28.1" @@ -9499,13 +9497,13 @@ eslint-visitor-keys@^2.0.0: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8" integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ== -eslint@^7.25.0: - version "7.25.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.25.0.tgz#1309e4404d94e676e3e831b3a3ad2b050031eb67" - integrity sha512-TVpSovpvCNpLURIScDRB6g5CYu/ZFq9GfX2hLNIV4dSBKxIWojeDODvYl3t0k0VtMxYeR8OXPCFE5+oHMlGfhw== +eslint@^7.26.0: + version "7.26.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.26.0.tgz#d416fdcdcb3236cd8f282065312813f8c13982f6" + integrity sha512-4R1ieRf52/izcZE7AlLy56uIHHDLT74Yzz2Iv2l6kDaYvEu9x+wMB5dZArVL8SYGXSYV2YAg70FcW5Y5nGGNIg== dependencies: "@babel/code-frame" "7.12.11" - "@eslint/eslintrc" "^0.4.0" + "@eslint/eslintrc" "^0.4.1" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" @@ -11857,6 +11855,13 @@ is-core-module@^2.2.0: dependencies: has "^1.0.3" +is-core-module@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" + integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -13248,16 +13253,6 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" @@ -14765,7 +14760,7 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.0, object.values@^1.1.1, object.values@^1.1.3: +object.values@^1.1.0, object.values@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== @@ -15301,6 +15296,13 @@ path-parse@^1.0.6: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== +path-starts-with@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/path-starts-with/-/path-starts-with-1.0.0.tgz#b28243015e8b138de572682ac52da42e646ad84e" + integrity sha1-soJDAV6LE43lcmgqxS2kLmRq2E4= + dependencies: + normalize-path "^2.1.1" + path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" @@ -15315,13 +15317,6 @@ path-type@^1.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= - dependencies: - pify "^2.0.0" - path-type@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" @@ -15457,6 +15452,13 @@ pkg-up@3.1.0, pkg-up@^3.1.0: dependencies: find-up "^3.0.0" +pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + pluralize@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" @@ -15867,11 +15869,16 @@ prettier@^1.19.1: resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.19.1.tgz#f7d7f5ff8a9cd872a7be4ca142095956a60797cb" integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew== -prettier@^2.0.1, prettier@^2.2.1: +prettier@^2.0.1: version "2.2.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.2.1.tgz#795a1a78dd52f073da0cd42b21f9c91381923ff5" integrity sha512-PqyhM2yCjg/oKkFPtTGUojv7gnZAoG80ttl45O6x2Ug/rMJw4wcc9k6aaf2hibP7BGVCCM33gZoGjyvt9mm16Q== +prettier@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.0.tgz#b6a5bf1284026ae640f17f7ff5658a7567fc0d18" + integrity sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w== + pretty-error@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.2.tgz#be89f82d81b1c86ec8fdfbc385045882727f93b6" @@ -16561,14 +16568,6 @@ read-pkg-up@^1.0.1: find-up "^1.0.0" read-pkg "^1.0.0" -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - read-pkg-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" @@ -16595,15 +16594,6 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" @@ -16982,7 +16972,7 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@>=1.9.0, resolve@^1.1.6, resolve@^1.10.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.17.0, resolve@^1.18.1, resolve@^1.20.0: +resolve@>=1.9.0, resolve@^1.1.6, resolve@^1.10.0, resolve@^1.11.1, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.14.2, resolve@^1.18.1, resolve@^1.20.0: version "1.20.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==