/s
+ )
+
+ let oldAuthProvider
+ try {
+ oldAuthProvider = await import(`./providers/${currentAuthProvider}`)
+ } catch (e) {
+ throw new Error('Could not replace existing auth provider init')
+ }
+
+ content = removeOldWebImports(content, oldAuthProvider.config.imports)
+ content = removeOldWebInit(content, oldAuthProvider.config.init)
+
+ return content
+}
+
+// check to make sure AuthProvider doesn't exist
+const checkAuthProviderExists = () => {
+ const content = fs.readFileSync(WEB_SRC_INDEX_PATH).toString()
+
+ if (content.includes(AUTH_PROVIDER_IMPORT)) {
+ throw new Error(
+ 'Existing auth provider found.\nUse --force to override existing provider.'
+ )
+ }
+}
+
// the files to create to support auth
export const files = (provider) => {
const template = TEMPLATES[provider] ?? TEMPLATES.base
@@ -80,12 +124,19 @@ export const files = (provider) => {
}
// actually inserts the required config lines into index.js
-export const addConfigToIndex = (config) => {
+export const addConfigToIndex = async (config, force) => {
let content = fs.readFileSync(WEB_SRC_INDEX_PATH).toString()
+ // update existing AuthProvider if --force else add new AuthProvider
+ if (content.includes(AUTH_PROVIDER_IMPORT) && force) {
+ content = await removeOldAuthProvider(content)
+ content = updateWebRender(content, config.authProvider)
+ } else {
+ content = addWebRender(content, config.authProvider)
+ }
+
content = addWebImports(content, config.imports)
content = addWebInit(content, config.init)
- content = addWebRender(content, config.authProvider)
fs.writeFileSync(WEB_SRC_INDEX_PATH, content)
}
@@ -93,17 +144,23 @@ export const addConfigToIndex = (config) => {
export const addApiConfig = () => {
let content = fs.readFileSync(API_GRAPHQL_PATH).toString()
- // add import statement
- content = content.replace(
- /^(.*services.*)$/m,
- `$1\n\nimport { getCurrentUser } from 'src/lib/auth'`
- )
- // add object to handler
- content = content.replace(
- /^(\s*)(schema: makeMergedSchema)(.*)$/m,
- `$1getCurrentUser,\n$1$2$3`
- )
- fs.writeFileSync(API_GRAPHQL_PATH, content)
+ // default to an array to avoid destructure errors
+ const [_, hasAuthImport] =
+ content.match(/(import {.*} from 'src\/lib\/auth.*')/s) || []
+
+ if (!hasAuthImport) {
+ // add import statement
+ content = content.replace(
+ /^(.*services.*)$/m,
+ `$1\n\nimport { getCurrentUser } from 'src/lib/auth'`
+ )
+ // add object to handler
+ content = content.replace(
+ /^(\s*)(schema: makeMergedSchema)(.*)$/m,
+ `$1getCurrentUser,\n$1$2$3`
+ )
+ fs.writeFileSync(API_GRAPHQL_PATH, content)
+ }
}
export const isProviderSupported = (provider) => {
@@ -164,7 +221,7 @@ export const handler = async ({ provider, force }) => {
title: 'Adding auth config to web...',
task: (_ctx, task) => {
if (webIndexDoesExist()) {
- addConfigToIndex(providerData.config)
+ addConfigToIndex(providerData.config, force)
} else {
task.skip('web/src/index.js not found, skipping')
}
@@ -228,6 +285,11 @@ export const handler = async ({ provider, force }) => {
)
try {
+ // Don't throw existing provider error when --force exists
+ if (!force) {
+ checkAuthProviderExists()
+ }
+
await tasks.run()
} catch (e) {
console.log(c.error(e.message))
diff --git a/packages/cli/src/commands/generate/auth/providers/firebase.js b/packages/cli/src/commands/generate/auth/providers/firebase.js
index 097233975741..6afbf5faa7ca 100644
--- a/packages/cli/src/commands/generate/auth/providers/firebase.js
+++ b/packages/cli/src/commands/generate/auth/providers/firebase.js
@@ -1,3 +1,4 @@
+// the lines that need to be added to index.js
export const config = {
imports: [
`import * as firebase from 'firebase/app'`,
@@ -20,9 +21,11 @@ const firebaseClient = ((config) => {
authProvider: { client: 'firebaseClient', type: 'firebase' },
}
+// required packages to install
export const webPackages = ['firebase']
export const apiPackages = ['firebase-admin']
+// any notes to print out when the job is done
export const notes = [
'You will need to create several environment variables with your Firebase config options.',
'Check out web/src/index.js for the variables you need to add.',
diff --git a/packages/cli/src/commands/generate/auth/providers/magicLink.js b/packages/cli/src/commands/generate/auth/providers/magicLink.js
index 570d060dd238..915b647ab436 100644
--- a/packages/cli/src/commands/generate/auth/providers/magicLink.js
+++ b/packages/cli/src/commands/generate/auth/providers/magicLink.js
@@ -1,3 +1,4 @@
+// the lines that need to be added to index.js
export const config = {
imports: [`import { Magic } from 'magic-sdk'`],
init: 'const m = new Magic(process.env.MAGICLINK_PUBLIC)',
@@ -7,9 +8,11 @@ export const config = {
},
}
+// required packages to install
export const webPackages = ['magic-sdk']
export const apiPackages = []
+// any notes to print out when the job is done
export const notes = [
'To get your application keys, go to https://dashboard.magic.link/login ',
'Then navigate to the API keys add them to your .env config options.',
diff --git a/packages/cli/src/commands/generate/page/__tests__/fixtures/multiWordPage.js b/packages/cli/src/commands/generate/page/__tests__/fixtures/multiWordPage.js
index 9592373745b0..bb66e2514fa4 100644
--- a/packages/cli/src/commands/generate/page/__tests__/fixtures/multiWordPage.js
+++ b/packages/cli/src/commands/generate/page/__tests__/fixtures/multiWordPage.js
@@ -5,10 +5,10 @@ const ContactUsPage = () => {
<>
ContactUsPage
- Find me in ./web/src/pages/ContactUsPage/ContactUsPage.js
+ Find me in ./web/src/pages/ContactUsPage/ContactUsPage.js
- My default route is named contactUs , link to me with `
+ My default route is named contactUs
, link to me with `
ContactUs`
>
diff --git a/packages/cli/src/commands/generate/page/__tests__/fixtures/paramPage.js b/packages/cli/src/commands/generate/page/__tests__/fixtures/paramPage.js
index a759455b170a..b7a86d715b44 100644
--- a/packages/cli/src/commands/generate/page/__tests__/fixtures/paramPage.js
+++ b/packages/cli/src/commands/generate/page/__tests__/fixtures/paramPage.js
@@ -5,10 +5,10 @@ const PostPage = ({ id }) => {
<>
PostPage
- Find me in ./web/src/pages/PostPage/PostPage.js
+ Find me in ./web/src/pages/PostPage/PostPage.js
- My default route is named post , link to me with `
+ My default route is named post
, link to me with `
Post 42`
The parameter passed to me is {id}
diff --git a/packages/cli/src/commands/generate/page/__tests__/fixtures/pluralWordPage.js b/packages/cli/src/commands/generate/page/__tests__/fixtures/pluralWordPage.js
index 62c61b8ad8b2..eeabc1c6cc0e 100644
--- a/packages/cli/src/commands/generate/page/__tests__/fixtures/pluralWordPage.js
+++ b/packages/cli/src/commands/generate/page/__tests__/fixtures/pluralWordPage.js
@@ -5,10 +5,10 @@ const CatsPage = () => {
<>
CatsPage
- Find me in ./web/src/pages/CatsPage/CatsPage.js
+ Find me in ./web/src/pages/CatsPage/CatsPage.js
- My default route is named cats , link to me with `
+ My default route is named cats
, link to me with `
Cats`
>
diff --git a/packages/cli/src/commands/generate/page/__tests__/fixtures/singleWordPage.js b/packages/cli/src/commands/generate/page/__tests__/fixtures/singleWordPage.js
index d4a0cc24af67..00e9e01d2c77 100644
--- a/packages/cli/src/commands/generate/page/__tests__/fixtures/singleWordPage.js
+++ b/packages/cli/src/commands/generate/page/__tests__/fixtures/singleWordPage.js
@@ -5,10 +5,10 @@ const HomePage = () => {
<>
HomePage
- Find me in ./web/src/pages/HomePage/HomePage.js
+ Find me in ./web/src/pages/HomePage/HomePage.js
- My default route is named home , link to me with `
+ My default route is named home
, link to me with `
Home`
>
diff --git a/packages/cli/src/commands/generate/page/templates/page.js.template b/packages/cli/src/commands/generate/page/templates/page.js.template
index d36be83773c1..8b551f13abee 100644
--- a/packages/cli/src/commands/generate/page/templates/page.js.template
+++ b/packages/cli/src/commands/generate/page/templates/page.js.template
@@ -4,9 +4,9 @@ const ${pascalName}Page = (${propParam}) => {
return (
<>
${pascalName}Page
- Find me in ${outputPath}
+ Find me in ${outputPath}
- My default route is named ${camelName} , link to me with `
+ My default route is named ${camelName}
, link to me with `
${pascalName}<%= argumentParam !== '' ? ' 42' : '' %>`
<% if (paramName !== '') { %>
diff --git a/packages/cli/src/commands/generate/util.js b/packages/cli/src/commands/generate/util.js
index 1eb28bfe7ba7..f25385eb078a 100644
--- a/packages/cli/src/commands/generate/util.js
+++ b/packages/cli/src/commands/generate/util.js
@@ -2,7 +2,12 @@ import terminalLink from 'terminal-link'
export const command = 'util '
export const aliases = ['u']
-export const description = 'Quality of life utilities'
+export const description = 'WARNING: deprecated. Use "yarn rw setup" command.'
+
+// ********
+// Deprecated as of September 2020
+// Use "setup" command
+// ********
export const builder = (yargs) =>
yargs
@@ -11,6 +16,6 @@ export const builder = (yargs) =>
.epilogue(
`Also see the ${terminalLink(
'Redwood CLI Reference',
- 'https://redwoodjs.com/reference/command-line-interface'
+ 'https://redwoodjs.com/reference/command-line-interface#setup'
)}`
)
diff --git a/packages/cli/src/commands/generate/util/tailwind/tailwind.js b/packages/cli/src/commands/generate/util/tailwind/tailwind.js
index 3749e30d57ac..7e9fb9ebc528 100644
--- a/packages/cli/src/commands/generate/util/tailwind/tailwind.js
+++ b/packages/cli/src/commands/generate/util/tailwind/tailwind.js
@@ -1,15 +1,14 @@
-import fs from 'fs'
-import path from 'path'
-
-import Listr from 'listr'
import execa from 'execa'
-import chalk from 'chalk'
import c from 'src/lib/colors'
-import { getPaths, writeFile } from 'src/lib'
+
+// ********
+// Deprecated as of September 2020
+// Use "setup" command
+// ********
export const command = 'tailwind'
-export const description = 'Setup tailwindcss'
+export const description = 'WARNING: deprecated. Use "yarn rw setup" command.'
export const builder = (yargs) => {
yargs.option('force', {
alias: 'f',
@@ -19,105 +18,21 @@ export const builder = (yargs) => {
})
}
-const tailwindImportsAndNotes = [
- '/**',
- ' * START --- TAILWIND GENERATOR EDIT',
- ' *',
- ' * `yarn rw generate util tailwind` placed these imports here',
- " * to inject Tailwind's styles into your CSS.",
- ' * For more information, see: https://tailwindcss.com/docs/installation#add-tailwind-to-your-css',
- ' */',
- '@import "tailwindcss/base";',
- '@import "tailwindcss/components";',
- '@import "tailwindcss/utilities";',
- '/**',
- ' * END --- TAILWIND GENERATOR EDIT',
- ' */\n',
-]
-
-const INDEX_CSS_PATH = path.join(getPaths().web.src, 'index.css')
-
export const handler = async ({ force }) => {
- const tasks = new Listr([
- {
- title: 'Installing packages...',
- task: async () => {
- /**
- * Install postcss-loader, tailwindcss, and autoprefixer
- */
- await execa('yarn', [
- 'workspace',
- 'web',
- 'add',
- '-D',
- 'postcss-loader@4.0.2',
- 'tailwindcss',
- 'autoprefixer@9.8.6',
- ])
- },
- },
- {
- title: 'Configuring PostCSS...',
- task: () => {
- /**
- * Make web/config if it doesn't exist
- * and write postcss.config.js there
- */
- return writeFile(
- getPaths().web.postcss,
- fs
- .readFileSync(
- path.resolve(__dirname, 'templates', 'postcss.config.js.template')
- )
- .toString(),
- { overwriteExisting: force }
- )
- },
- },
- {
- title: 'Initializing Tailwind CSS...',
- task: async () => {
- /**
- * If it doesn't already exist,
- * initialize tailwind and move tailwind.config.js to web/
- */
- const configExists = fs.existsSync(
- path.join(getPaths().web.base, 'tailwind.config.js')
- )
-
- if (!configExists || force) {
- await execa('yarn', ['tailwindcss', 'init'])
- /**
- * Later, when we can tell the vscode extension where to look for the config,
- * we can put it in web/config/
- */
- await execa('mv', ['tailwind.config.js', 'web/'])
- }
- },
- },
- {
- title: 'Adding imports to index.css...',
- task: () => {
- /**
- * Add tailwind imports and notes to the top of index.css
- */
- let indexCSS = fs.readFileSync(INDEX_CSS_PATH)
- indexCSS = tailwindImportsAndNotes.join('\n') + indexCSS
- fs.writeFileSync(INDEX_CSS_PATH, indexCSS)
- },
- },
- {
- title: 'One more thing...',
- task: (_ctx, task) => {
- task.title = `One more thing...\n\n ${chalk.hex('#bf4722')(
- 'Quick link to the docs: '
- )}https://tailwindcss.com/\n`
- },
- },
- ])
-
+ const cmd = force
+ ? 'yarn rw setup tailwind --force'
+ : 'yarn rw setup tailwind'
try {
- await tasks.run()
+ console.log(c.warning('\n' + 'WARNING: deprecated "util" command'))
+ console.log(
+ c.green('See "setup" command: ') +
+ 'https://redwoodjs.com/reference/command-line-interface#setup' +
+ '\n'
+ )
+ await execa(cmd, {
+ stdio: 'inherit',
+ shell: true,
+ })
} catch (e) {
console.log(c.error(e.message))
}
diff --git a/packages/cli/src/commands/generate/util/tailwind/templates/postcss.config.js.template b/packages/cli/src/commands/generate/util/tailwind/templates/postcss.config.js.template
deleted file mode 100644
index 6ee14f7a65af..000000000000
--- a/packages/cli/src/commands/generate/util/tailwind/templates/postcss.config.js.template
+++ /dev/null
@@ -1,8 +0,0 @@
-const path = require('path')
-
-module.exports = {
- plugins: [
- require('tailwindcss')(path.resolve(__dirname, '../tailwind.config.js')),
- require('autoprefixer'),
- ],
-}
diff --git a/packages/cli/src/commands/setup.js b/packages/cli/src/commands/setup.js
index 465b26d63830..72fd5db7a570 100644
--- a/packages/cli/src/commands/setup.js
+++ b/packages/cli/src/commands/setup.js
@@ -1,6 +1,6 @@
+export const command = 'setup '
+export const description = 'Initialize project config and install packages'
import terminalLink from 'terminal-link'
-export const command = 'setup '
-export const description = 'Execute some setup logic'
export const builder = (yargs) =>
yargs
@@ -9,15 +9,6 @@ export const builder = (yargs) =>
.epilogue(
`Also see the ${terminalLink(
'Redwood CLI Reference',
- 'https://redwoodjs.com/reference/command-line-interface#setting-up'
+ 'https://redwoodjs.com/reference/command-line-interface#setup'
)}`
)
-
-export const yargsDefaults = {
- force: {
- alias: 'f',
- default: false,
- description: 'Overwrite existing files',
- type: 'boolean',
- },
-}
diff --git a/packages/cli/src/commands/setup/i18n/i18n.js b/packages/cli/src/commands/setup/i18n/i18n.js
index 693603da6333..6e2ede6e6fdc 100644
--- a/packages/cli/src/commands/setup/i18n/i18n.js
+++ b/packages/cli/src/commands/setup/i18n/i18n.js
@@ -19,7 +19,6 @@ export const builder = (yargs) => {
})
}
-
export const handler = async ({ force }) => {
const INDEX_JS_PATH = path.join(getPaths().web.src, 'index.js')
const tasks = new Listr([
@@ -34,7 +33,7 @@ export const handler = async ({ force }) => {
'i18next',
'i18next-browser-languagedetector',
'i18next-http-backend',
- 'react-i18next'
+ 'react-i18next',
])
},
},
@@ -56,10 +55,10 @@ export const handler = async ({ force }) => {
},
},
{
- title: 'Adding locale file for \'site\' namespace',
- task () {
+ title: "Adding locale file for 'site' namespace",
+ task() {
return writeFile(getPaths().web.src + '/locales/en/site.json')
- }
+ },
},
{
title: 'Adding import to index.js...',
@@ -75,9 +74,15 @@ export const handler = async ({ force }) => {
{
title: 'One more thing...',
task: (_ctx, task) => {
- task.title = `One more thing...\n\n ${chalk.hex('#bf4722')(
- 'Quick link to the docs: '
- )}\n - https://react.i18next.com/guides/quick-start/\n - https://github.com/i18next/i18next-browser-languageDetector\n`
+ task.title = `One more thing...\n
+ ${c.green('Quick link to the docs:')}\n
+ ${chalk.hex('#e8e8e8')(
+ 'https://react.i18next.com/guides/quick-start/'
+ )}
+ ${chalk.hex('#e8e8e8')(
+ 'https://github.com/i18next/i18next-browser-languageDetector\n'
+ )}
+ `
},
},
])
diff --git a/packages/cli/src/commands/setup/tailwind/tailwind.js b/packages/cli/src/commands/setup/tailwind/tailwind.js
index cbae232fae2a..f4e52cb1a988 100644
--- a/packages/cli/src/commands/setup/tailwind/tailwind.js
+++ b/packages/cli/src/commands/setup/tailwind/tailwind.js
@@ -9,7 +9,7 @@ import c from 'src/lib/colors'
import { getPaths, writeFile } from 'src/lib'
export const command = 'tailwind'
-export const description = 'Setup tailwindcss'
+export const description = 'Setup tailwindcss and PostCSS'
export const builder = (yargs) => {
yargs.option('force', {
alias: 'f',
@@ -23,7 +23,7 @@ const tailwindImportsAndNotes = [
'/**',
' * START --- TAILWIND GENERATOR EDIT',
' *',
- ' * `yarn rw generate util tailwind` placed these imports here',
+ ' * `yarn rw setup tailwind` placed these imports here',
" * to inject Tailwind's styles into your CSS.",
' * For more information, see: https://tailwindcss.com/docs/installation#add-tailwind-to-your-css',
' */',
@@ -44,15 +44,16 @@ export const handler = async ({ force }) => {
task: async () => {
/**
* Install postcss-loader, tailwindcss, and autoprefixer
+ * RedwoodJS currently uses PostCSS v7; postcss-loader and autoprefixers pinned for compatibility
*/
await execa('yarn', [
'workspace',
'web',
'add',
'-D',
- 'postcss-loader',
+ 'postcss-loader@4.0.2',
'tailwindcss',
- 'autoprefixer',
+ 'autoprefixer@9.8.6',
])
},
},
@@ -87,6 +88,17 @@ export const handler = async ({ force }) => {
if (!configExists || force) {
await execa('yarn', ['tailwindcss', 'init'])
+
+ // opt-in to upcoming changes
+ const config = fs.readFileSync('tailwind.config.js', 'utf-8')
+
+ const uncommentFlags = (str) =>
+ str.replace(/\/{2} ([\w-]+: true)/g, '$1')
+
+ const newConfig = config.replace(/future.*purge/s, uncommentFlags)
+
+ fs.writeFileSync('tailwind.config.js', newConfig)
+
/**
* Later, when we can tell the vscode extension where to look for the config,
* we can put it in web/config/
@@ -109,9 +121,14 @@ export const handler = async ({ force }) => {
{
title: 'One more thing...',
task: (_ctx, task) => {
- task.title = `One more thing...\n\n ${chalk.hex('#bf4722')(
- 'Quick link to the docs: '
- )}https://tailwindcss.com/\n`
+ task.title = `One more thing...\n
+ ${c.green(
+ 'Tailwind configured with "upcoming change" opt-in enabled'
+ )}\n
+ ${chalk.hex('#e8e8e8')(
+ 'See this doc for info: https://tailwindcss.com/docs/upcoming-changes'
+ )}
+ `
},
},
])
diff --git a/packages/cli/src/commands/setup/webpack/templates/webpack.config.js.template b/packages/cli/src/commands/setup/webpack/templates/webpack.config.js.template
new file mode 100644
index 000000000000..9a515dfce2af
--- /dev/null
+++ b/packages/cli/src/commands/setup/webpack/templates/webpack.config.js.template
@@ -0,0 +1,13 @@
+module.exports = (config, { env }) => {
+ if (env === 'development') {
+ // Add dev plugin
+ }
+
+ // Add custom rules for your project
+ // config.module.rules.push(YOUR_RULE)
+
+ // Add custom plugins for your project
+ // config.plugins.push(YOUR_PLUGIN)
+
+ return config
+}
diff --git a/packages/cli/src/commands/setup/webpack/webpack.js b/packages/cli/src/commands/setup/webpack/webpack.js
new file mode 100644
index 000000000000..647d2a136500
--- /dev/null
+++ b/packages/cli/src/commands/setup/webpack/webpack.js
@@ -0,0 +1,59 @@
+import fs from 'fs'
+import Listr from 'listr'
+import path from 'path'
+import chalk from 'chalk'
+
+import c from 'src/lib/colors'
+import { getPaths, writeFile } from 'src/lib'
+
+export const command = 'webpack'
+export const description =
+ 'Setup webpack in your project so you can add custom config'
+export const builder = (yargs) => {
+ yargs.option('force', {
+ alias: 'f',
+ default: false,
+ description: 'Overwrite existing configuration',
+ type: 'boolean',
+ })
+}
+
+export const handler = async ({ force }) => {
+ const tasks = new Listr([
+ {
+ title: 'Adding webpack file to your web folder...',
+ task: () => {
+ const webpackConfigFile = `${getPaths().web.config}/webpack.config.js`
+
+ return writeFile(
+ webpackConfigFile,
+ fs
+ .readFileSync(
+ path.resolve(__dirname, 'templates', 'webpack.config.js.template')
+ )
+ .toString(),
+ { overwriteExisting: force }
+ )
+ },
+ },
+ {
+ title: 'One more thing...',
+ task: (_ctx, task) => {
+ task.title = `One more thing...\n
+ ${c.green(
+ 'Quick link to the docs on configuring custom webpack config:'
+ )}
+ ${chalk.hex('#e8e8e8')(
+ 'https://redwoodjs.com/docs/webpack-configuration#configuring-webpack'
+ )}
+ `
+ },
+ },
+ ])
+
+ try {
+ await tasks.run()
+ } catch (e) {
+ console.log(c.error(e.message))
+ }
+}
diff --git a/packages/cli/src/commands/upgrade.js b/packages/cli/src/commands/upgrade.js
index 3411643d4bea..d82122ef8638 100644
--- a/packages/cli/src/commands/upgrade.js
+++ b/packages/cli/src/commands/upgrade.js
@@ -9,6 +9,10 @@ export const description = 'Upgrade all @redwoodjs packages via interactive CLI'
export const builder = (yargs) => {
yargs
+ .example(
+ 'rw upgrade -t 0.20.1-canary.5',
+ 'Specify a version. URL for Version History:\nhttps://www.npmjs.com/package/@redwoodjs/core'
+ )
.option('dry-run', {
alias: 'd',
description: 'Check for outdated packages without upgrading',
@@ -16,9 +20,8 @@ export const builder = (yargs) => {
})
.option('tag', {
alias: 't',
- choices: ['canary', 'rc'],
description:
- 'WARNING: Unstable releases! Force upgrades packages to the most recent version for the given --tag',
+ '[choices: "canary", "rc", or specific-version (see example below)] WARNING: "canary" and "rc" tags are unstable releases!',
type: 'string',
})
.epilogue(
diff --git a/packages/cli/src/lib/colors.js b/packages/cli/src/lib/colors.js
index 0488b3f3a081..7327c5166dd4 100644
--- a/packages/cli/src/lib/colors.js
+++ b/packages/cli/src/lib/colors.js
@@ -1,5 +1,17 @@
import chalk from 'chalk'
+/**
+ * To keep a consistent color/style palette between cli packages, such as
+ * @redwood/cli and @redwood/create-redwood-app, please keep them compatible
+ * with one and another. We'll might split up and refactor these into a
+ * separate package when there is a strong motivation behind it.
+ *
+ * Current files:
+ *
+ * - packages/cli/src/lib/colors.js (this file)
+ * - packages/create-redwood-app/src/create-redwood-app.js
+ *
+ */
export default {
error: chalk.bold.red,
warning: chalk.keyword('orange'),
diff --git a/packages/core/config/jest.config.js b/packages/core/config/jest.config.js
index 905a104014dc..1e944fee74cf 100644
--- a/packages/core/config/jest.config.js
+++ b/packages/core/config/jest.config.js
@@ -15,4 +15,8 @@ module.exports = {
coverageDirectory: path.join(redwoodPaths.base, 'coverage'),
rootDir: redwoodPaths.base,
projects: ['/{,!(node_modules)/**/}jest.config.js'],
+ watchPlugins: [
+ 'jest-watch-typeahead/filename',
+ 'jest-watch-typeahead/testname',
+ ],
}
diff --git a/packages/core/package.json b/packages/core/package.json
index f60364b63261..19a1f3f3d432 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -1,6 +1,6 @@
{
"name": "@redwoodjs/core",
- "version": "0.19.1",
+ "version": "0.19.2",
"license": "MIT",
"files": [
"config",
@@ -18,12 +18,12 @@
"@babel/preset-react": "^7.10.4",
"@babel/preset-typescript": "^7.10.4",
"@babel/runtime-corejs3": "^7.11.2",
- "@prisma/cli": "2.7.1",
- "@redwoodjs/cli": "^0.19.1",
- "@redwoodjs/dev-server": "^0.19.1",
- "@redwoodjs/eslint-config": "^0.19.1",
- "@redwoodjs/internal": "^0.19.1",
- "@redwoodjs/testing": "^0.19.1",
+ "@prisma/cli": "2.8.1",
+ "@redwoodjs/cli": "^0.19.2",
+ "@redwoodjs/dev-server": "^0.19.2",
+ "@redwoodjs/eslint-config": "^0.19.2",
+ "@redwoodjs/internal": "^0.19.2",
+ "@redwoodjs/testing": "^0.19.2",
"@storybook/react": "^5.3.19",
"@testing-library/jest-dom": "^5.8.0",
"@types/jest": "^26.0.10",
@@ -46,7 +46,8 @@
"graphql": "^15.3.0",
"graphql-tag": "^2.10.3",
"html-webpack-plugin": "^4.0.2",
- "jest": "^26.1.0",
+ "jest": "^26.4.2",
+ "jest-watch-typeahead": "^0.6.1",
"lodash.escaperegexp": "^4.1.2",
"mini-css-extract-plugin": "^0.11.0",
"null-loader": "^4.0.0",
diff --git a/packages/create-redwood-app/package.json b/packages/create-redwood-app/package.json
index 6872c804d56f..80b89eb80b29 100644
--- a/packages/create-redwood-app/package.json
+++ b/packages/create-redwood-app/package.json
@@ -1,6 +1,6 @@
{
"name": "create-redwood-app",
- "version": "0.19.1",
+ "version": "0.19.2",
"license": "MIT",
"bin": "./dist/create-redwood-app.js",
"files": [
@@ -8,7 +8,7 @@
],
"dependencies": {
"@babel/runtime-corejs3": "^7.9.2",
- "@redwoodjs/internal": "^0.19.1",
+ "@redwoodjs/internal": "^0.19.2",
"axios": "^0.20.0",
"chalk": "^4.1.0",
"check-node-version": "^4.0.2",
diff --git a/packages/create-redwood-app/src/create-redwood-app.js b/packages/create-redwood-app/src/create-redwood-app.js
index 9ea2adcdf84e..93c913e6eda5 100644
--- a/packages/create-redwood-app/src/create-redwood-app.js
+++ b/packages/create-redwood-app/src/create-redwood-app.js
@@ -20,6 +20,32 @@ import yargs from 'yargs'
import { name, version } from '../package'
+/**
+ * To keep a consistent color/style palette between cli packages, such as
+ * @redwood/create-redwood-app and @redwood/cli, please keep them compatible
+ * with one and another. We'll might split up and refactor these into a
+ * separate package when there is a strong motivation behind it.
+ *
+ * Current files:
+ *
+ * - packages/cli/src/lib/colors.js
+ * - packages/create-redwood-app/src/create-redwood-app.js (this file)
+ *
+ */
+const style = {
+ error: chalk.bold.red,
+ warning: chalk.keyword('orange'),
+ success: chalk.greenBright,
+ info: chalk.grey,
+
+ header: chalk.bold.underline.hex('#e8e8e8'),
+ cmd: chalk.hex('#808080'),
+ redwood: chalk.hex('#ff845e'),
+ love: chalk.redBright,
+
+ green: chalk.green,
+}
+
const RELEASE_URL =
'https://api.github.com/repos/redwoodjs/create-redwood-app/releases/latest'
@@ -164,19 +190,6 @@ const installNodeModulesTasks = ({ newAppDir }) => {
]
}
-// Inspiration from from @redwood/cli
-// https://github.com/redwoodjs/redwood/blob/main/packages/cli/src/lib/colors.js
-const style = {
- error: chalk.bold.red,
- warning: chalk.keyword('orange'),
- success: chalk.greenBright,
- info: chalk.grey,
- header: chalk.bold.underline.hex('#e8e8e8'),
- cmd: chalk.hex('#808080'),
- redwood: chalk.hex('#ff845e'),
- love: chalk.redBright,
-}
-
new Listr(
[
{
diff --git a/packages/dev-server/package.json b/packages/dev-server/package.json
index 5fdae295ad64..4697f3a5f1db 100644
--- a/packages/dev-server/package.json
+++ b/packages/dev-server/package.json
@@ -1,7 +1,7 @@
{
"name": "@redwoodjs/dev-server",
"description": "Redwood's HTTP server for serverless Functions",
- "version": "0.19.1",
+ "version": "0.19.2",
"bin": {
"dev-server": "./dist/main.js"
},
@@ -11,7 +11,7 @@
"license": "MIT",
"dependencies": {
"@babel/register": "^7.9.0",
- "@redwoodjs/internal": "^0.19.1",
+ "@redwoodjs/internal": "^0.19.2",
"body-parser": "^1.19.0",
"chokidar": "^3.4.0",
"express": "^4.17.1",
diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json
index 87e9830a70a4..03c56a765b68 100644
--- a/packages/eslint-config/package.json
+++ b/packages/eslint-config/package.json
@@ -1,10 +1,10 @@
{
"name": "@redwoodjs/eslint-config",
- "version": "0.19.1",
+ "version": "0.19.2",
"main": "index.js",
"license": "MIT",
"dependencies": {
- "@redwoodjs/eslint-plugin-redwood": "^0.19.1",
+ "@redwoodjs/eslint-plugin-redwood": "^0.19.2",
"@typescript-eslint/eslint-plugin": "^4.0.1",
"@typescript-eslint/parser": "^4.0.1",
"babel-eslint": "^10.1.0",
diff --git a/packages/eslint-plugin-redwood/package.json b/packages/eslint-plugin-redwood/package.json
index 6b2618cb1140..de78dbcefbcb 100644
--- a/packages/eslint-plugin-redwood/package.json
+++ b/packages/eslint-plugin-redwood/package.json
@@ -1,6 +1,6 @@
{
"name": "@redwoodjs/eslint-plugin-redwood",
- "version": "0.19.1",
+ "version": "0.19.2",
"description": "eslint plugin for Redwood rules.",
"files": [
"dist"
diff --git a/packages/forms/package.json b/packages/forms/package.json
index e88b300650f1..f0899acdfb7b 100644
--- a/packages/forms/package.json
+++ b/packages/forms/package.json
@@ -1,6 +1,6 @@
{
"name": "@redwoodjs/forms",
- "version": "0.19.1",
+ "version": "0.19.2",
"files": [
"dist",
"src/index.d.ts"
@@ -16,7 +16,7 @@
"devDependencies": {
"@testing-library/jest-dom": "^5.11.4",
"@testing-library/react": "11.0.2",
- "@testing-library/user-event": "12.1.4",
+ "@testing-library/user-event": "12.1.6",
"react": "16.13.1"
},
"peerDependencies": {
diff --git a/packages/internal/package.json b/packages/internal/package.json
index ef68a13d72de..a17ed3932db5 100644
--- a/packages/internal/package.json
+++ b/packages/internal/package.json
@@ -1,6 +1,6 @@
{
"name": "@redwoodjs/internal",
- "version": "0.19.1",
+ "version": "0.19.2",
"files": [
"dist"
],
diff --git a/packages/internal/src/paths.ts b/packages/internal/src/paths.ts
index 1a6fa7de1e8e..c665ec61aafd 100644
--- a/packages/internal/src/paths.ts
+++ b/packages/internal/src/paths.ts
@@ -69,7 +69,7 @@ const PATH_WEB_DIR_CONFIG_POSTCSS = 'web/config/postcss.config.js'
/**
* Search the parent directories for the Redwood configuration file.
*/
-export const getConfigPath = (cwd: string = __dirname): string => {
+export const getConfigPath = (cwd: string = process.cwd()): string => {
const configPath = findUp(CONFIG_FILE_NAME, { cwd })
if (!configPath) {
throw new Error(
diff --git a/packages/router/README.md b/packages/router/README.md
index 18a3773c7c95..ee085f256dd9 100644
--- a/packages/router/README.md
+++ b/packages/router/README.md
@@ -46,7 +46,7 @@ Some pages should only be visible to authenticated users.
All `Routes` nested in `` require authentication.
When a user is not authenticated and attempts to visit this route,
-they will be redirected to the route passed as the `unauthenticated` prop and the orignally requested route's path will be added to the querystring in a `redirectTo` param. This lets you send the user to the originally requested once logged in.
+they will be redirected to the route passed as the `unauthenticated` prop and the originally requested route's path will be added to the querystring in a `redirectTo` param. This lets you send the user to the originally requested once logged in.
```js
// Routes.js
diff --git a/packages/router/package.json b/packages/router/package.json
index 2a020b66e0a4..ffa846ef1ad4 100644
--- a/packages/router/package.json
+++ b/packages/router/package.json
@@ -1,6 +1,6 @@
{
"name": "@redwoodjs/router",
- "version": "0.19.1",
+ "version": "0.19.2",
"files": [
"dist",
"src/index.d.ts"
diff --git a/packages/structure/package.json b/packages/structure/package.json
index 13dc55801d23..9883be4e751c 100644
--- a/packages/structure/package.json
+++ b/packages/structure/package.json
@@ -1,7 +1,7 @@
{
"name": "@redwoodjs/structure",
"description": "noun: the arrangement of and relations between the parts or elements of something complex",
- "version": "0.19.1",
+ "version": "0.19.2",
"license": "MIT",
"main": "dist/index.js",
"files": [
@@ -9,8 +9,8 @@
],
"types": "./dist/index.d.ts",
"dependencies": {
- "@prisma/sdk": "2.7.1",
- "@redwoodjs/internal": "^0.19.1",
+ "@prisma/sdk": "2.8.1",
+ "@redwoodjs/internal": "^0.19.2",
"@types/line-column": "^1.0.0",
"camelcase": "^6.0.0",
"deepmerge": "^4.2.2",
diff --git a/packages/structure/src/language_server/RWLanguageServer.ts b/packages/structure/src/language_server/RWLanguageServer.ts
index 2108f2be4b65..a821f4c3a358 100644
--- a/packages/structure/src/language_server/RWLanguageServer.ts
+++ b/packages/structure/src/language_server/RWLanguageServer.ts
@@ -12,6 +12,7 @@ import { HostWithDocumentsStore, IDEInfo } from '../ide'
import { RWProject } from '../model'
import { lazy, memo } from '../x/decorators'
import { VSCodeWindowMethods_fromConnection } from '../x/vscode'
+import { Connection_suppressErrors } from '../x/vscode-languageserver'
import {
ExtendedDiagnostic_findRelevantQuickFixes,
Range_contains,
@@ -24,12 +25,16 @@ import { XMethodsManager } from './xmethods'
export class RWLanguageServer {
initializeParams!: InitializeParams
documents = new TextDocuments(TextDocument)
- connection = createConnection(ProposedFeatures.all)
+ @lazy() get connection() {
+ const c = createConnection(ProposedFeatures.all)
+ Connection_suppressErrors(c)
+ return c
+ }
@memo() start() {
const { connection, documents } = this
connection.onInitialize((params) => {
connection.console.log(
- `Redwood.js Language Server onInitialize(), PID=${process.pid}`
+ `Redwood Language Server onInitialize(), PID=${process.pid}`
)
this.initializeParams = params
return {
@@ -50,19 +55,22 @@ export class RWLanguageServer {
})
connection.onInitialized(async () => {
- connection.console.log('Redwood.js Language Server onInitialized()')
+ connection.console.log('Redwood Language Server onInitialized()')
const folders = await connection.workspace.getWorkspaceFolders()
if (folders) {
for (const folder of folders) {
this.projectRoot = normalize(folder.uri.substr(7)) // remove file://
}
}
- this.diagnostics.start()
- this.commands.start()
- this.outline.start()
- this.xmethods.start()
})
+ // initialize these early on to prevent "unhandled methods"
+ // they are smart enough to short-circuit if this.projectRoot is not ready
+ this.diagnostics.start()
+ this.commands.start()
+ this.outline.start()
+ this.xmethods.start()
+
connection.onImplementation(async ({ textDocument: { uri }, position }) => {
const info = await this.info(uri, 'Implementation')
for (const i of info) {
diff --git a/packages/structure/src/model/RWProject.ts b/packages/structure/src/model/RWProject.ts
index 8f3893f3f043..17a849442589 100644
--- a/packages/structure/src/model/RWProject.ts
+++ b/packages/structure/src/model/RWProject.ts
@@ -79,18 +79,29 @@ export class RWProject extends BaseNode {
}
// TODO: do we move this to a separate node? (ex: RWDatabase)
@memo() async prismaDMMF() {
- return await getDMMF({
- datamodel: this.host.readFileSync(this.pathHelper.api.dbSchema),
- })
+ try {
+ // consider case where dmmf doesn't exist (or fails to parse)
+ return await getDMMF({
+ datamodel: this.host.readFileSync(this.pathHelper.api.dbSchema),
+ })
+ } catch (e) {
+ return undefined
+ }
}
@memo() async prismaDMMFModelNames() {
- return (await this.prismaDMMF()).datamodel.models.map((m) => m.name)
+ const dmmf = await this.prismaDMMF()
+ if (!dmmf) return []
+ return dmmf.datamodel.models.map((m) => m.name)
}
@lazy() get redwoodTOML(): RWTOML {
return new RWTOML(join(this.projectRoot, 'redwood.toml'), this)
}
@lazy() private get processPagesDir() {
- return processPagesDir(this.pathHelper.web.pages)
+ try {
+ return processPagesDir(this.pathHelper.web.pages)
+ } catch (e) {
+ return []
+ }
}
@lazy() get pages(): RWPage[] {
return this.processPagesDir.map((p) => new RWPage(p.const, p.path, this))
diff --git a/packages/structure/src/outline/outline.ts b/packages/structure/src/outline/outline.ts
index f9e118a0a265..980e8a50a178 100644
--- a/packages/structure/src/outline/outline.ts
+++ b/packages/structure/src/outline/outline.ts
@@ -205,6 +205,7 @@ function _schema(project: RWProject): TreeItem2 {
...resourceUriAndCommandFor(project.pathHelper.api.dbSchema),
async children() {
const dmmf = await project.prismaDMMF()
+ if (!dmmf) return []
const models = dmmf.datamodel.models.map((model) => {
return {
label: model.name,
diff --git a/packages/structure/src/x/vscode-languageserver.ts b/packages/structure/src/x/vscode-languageserver.ts
new file mode 100644
index 000000000000..a6f8577d72a4
--- /dev/null
+++ b/packages/structure/src/x/vscode-languageserver.ts
@@ -0,0 +1,57 @@
+import { Connection } from 'vscode-languageserver'
+
+/**
+ * will monkey patch the connection object
+ * so that any errors thrown by subsequently installed handlers are caught and logged
+ * (ex: connection.onHover(() => throw new Error('oops!')))
+ * this prevents the LSP client, on the other end, to receive errors
+ * which can sometimes cause error messages to pop-up uncontrollably
+ *
+ * @param conn
+ */
+export function Connection_suppressErrors(conn: T) {
+ for (const k of Object.keys(conn)) {
+ if (!k.startsWith('on')) continue // only onHover, onCodeLens, etc?
+ const v = conn[k]
+ if (typeof v !== 'function') continue
+ conn[k] = (...args) => {
+ const args2 = args.map((arg) =>
+ typeof arg === 'function'
+ ? with_catch2(arg, (e, fargs) => {
+ const data = {
+ handler: k,
+ handlerInstallParams: args,
+ handlerExecParams: fargs,
+ error: e + '',
+ }
+ const dd = JSON.stringify(data, null, 2)
+ conn.console.error(dd)
+ return null
+ })
+ : arg
+ )
+ return v.apply(conn, args2)
+ }
+ }
+}
+
+type CatchClause = (e?, args?) => unknown
+
+function with_catch2(f, clause: CatchClause) {
+ return (...args) =>
+ catch2(
+ () => f(...args),
+ (e) => clause(e, args)
+ )
+ function catch2(f, clause2) {
+ try {
+ const res = f()
+ if (typeof res?.then === 'function')
+ // promise
+ return res.catch?.(clause2)
+ return res
+ } catch (e) {
+ return clause2(e)
+ }
+ }
+}
diff --git a/packages/testing/package.json b/packages/testing/package.json
index ae57687eb286..868514c062aa 100644
--- a/packages/testing/package.json
+++ b/packages/testing/package.json
@@ -1,18 +1,18 @@
{
"name": "@redwoodjs/testing",
"description": "Tools, wrappers and configuration for testing a Redwood project.",
- "version": "0.19.1",
+ "version": "0.19.2",
"files": [
"dist"
],
"main": "dist/index.js",
"license": "MIT",
"dependencies": {
- "@redwoodjs/internal": "^0.19.1",
- "@redwoodjs/web": "^0.19.1",
+ "@redwoodjs/internal": "^0.19.2",
+ "@redwoodjs/web": "^0.19.2",
"@testing-library/react": "^11.0.2",
"@types/react": "16.9.38",
- "msw": "^0.20.0"
+ "msw": "^0.21.2"
},
"scripts": {
"build": "yarn build:js && yarn build:types",
diff --git a/packages/web/package.json b/packages/web/package.json
index c41bdfd7c9a0..a72b47abddb5 100644
--- a/packages/web/package.json
+++ b/packages/web/package.json
@@ -1,12 +1,11 @@
{
"name": "@redwoodjs/web",
- "version": "0.19.1",
+ "version": "0.19.2",
"files": [
- "dist",
- "src/index.d.ts"
+ "dist"
],
"main": "dist/index.js",
- "types": "src/index.d.ts",
+ "types": "dist/index.d.ts",
"license": "MIT",
"dependencies": {
"@apollo/client": "^3.1.5",
@@ -20,9 +19,10 @@
"react": "*"
},
"scripts": {
- "build": "yarn build:js",
+ "build": "yarn build:js && yarn build:types",
"prepublishOnly": "yarn cross-env NODE_ENV=production yarn build",
"build:js": "babel src -d dist --extensions \".js,.ts,.tsx\"",
+ "build:types": "tsc --build --verbose",
"build:watch": "nodemon --watch src --ext \"js,ts,tsx\" --ignore dist --exec \"yarn build\"",
"test": "jest",
"test:watch": "yarn test --watch"
diff --git a/packages/web/src/global.web-auto-imports.ts b/packages/web/src/global.web-auto-imports.ts
new file mode 100644
index 000000000000..588aa278e84f
--- /dev/null
+++ b/packages/web/src/global.web-auto-imports.ts
@@ -0,0 +1,13 @@
+/* eslint-disable no-redeclare, no-undef */
+import type _gql from 'graphql-tag'
+import type _React from 'react'
+import type _PropTypes from 'prop-types'
+
+declare global {
+ const React: typeof _React
+ const PropTypes: typeof _PropTypes
+ const gql: typeof _gql
+
+ // Extend the existing `window` interface.
+ interface Window { __REDWOOD__API_PROXY_PATH: string }
+}
diff --git a/packages/web/src/graphql/index.js b/packages/web/src/graphql/index.tsx
similarity index 52%
rename from packages/web/src/graphql/index.js
rename to packages/web/src/graphql/index.tsx
index e02337353ac8..e4edff6e4849 100644
--- a/packages/web/src/graphql/index.js
+++ b/packages/web/src/graphql/index.tsx
@@ -1,13 +1,23 @@
-import { ApolloClient, InMemoryCache } from '@apollo/client'
+import {
+ ApolloClient,
+ ApolloClientOptions,
+ InMemoryCache,
+} from '@apollo/client'
import { ApolloProvider } from '@apollo/client/react'
+import { ApolloProviderProps } from '@apollo/client/react/context'
export { withCell } from './withCell'
+type GraphQLClientConfig = Omit<
+ ApolloClientOptions,
+ 'uri' | 'cache'
+>
+
/**
* Create a GraphQL Client (Apollo) that points to the `apiProxyPath` that's
* specified in `redwood.toml`.
*/
-export const createGraphQLClient = (config) => {
+export const createGraphQLClient = (config: GraphQLClientConfig) => {
return new ApolloClient({
uri: `${window.__REDWOOD__API_PROXY_PATH}/graphql`,
cache: new InMemoryCache(),
@@ -18,6 +28,11 @@ export const createGraphQLClient = (config) => {
/**
* A GraphQL provider that instantiates a client automatically.
*/
-export const GraphQLProvider = ({ config, ...rest }) => {
+export const GraphQLProvider = ({
+ config,
+ ...rest
+}: {
+ config: GraphQLClientConfig
+} & Omit, 'client'>) => {
return
}
diff --git a/packages/web/src/graphql/withCell.js b/packages/web/src/graphql/withCell.tsx
similarity index 63%
rename from packages/web/src/graphql/withCell.js
rename to packages/web/src/graphql/withCell.tsx
index 747376c137a5..b7824a6fb377 100644
--- a/packages/web/src/graphql/withCell.js
+++ b/packages/web/src/graphql/withCell.tsx
@@ -1,5 +1,27 @@
import React from 'react'
import { Query } from '@apollo/client/react/components/Query'
+import { DocumentNode } from 'graphql'
+import {
+ BaseQueryOptions,
+ OperationVariables,
+ QueryResult,
+} from '@apollo/client'
+
+export type DataObject = { [key: string]: unknown }
+
+export type QueryResultAlias = QueryResult>
+
+export type CellFailureStateComponent = Omit<
+ QueryResultAlias,
+ 'data' | 'loading'
+>
+export type CellLoadingEmptyStateComponent = Omit<
+ QueryResultAlias,
+ 'error' | 'loading' | 'data'
+>
+export type CellSuccessStateComponent =
+ | Omit
+ | DataObject
/**
* Is a higher-order-component that executes a GraphQL query and automatically
@@ -39,42 +61,50 @@ import { Query } from '@apollo/client/react/components/Query'
export const withCell = ({
beforeQuery = (props) => ({
variables: props,
- fetchPolicy: 'cache-and-network',
}),
QUERY,
afterQuery = (data) => ({ ...data }),
- Loading = () => 'Loading...',
+ Loading = () => <>Loading...>,
Failure,
Empty,
Success,
+}: {
+ beforeQuery?: (props: OperationVariables) => BaseQueryOptions
+ QUERY: DocumentNode | ((before: BaseQueryOptions) => DocumentNode)
+ afterQuery?: (data: DataObject) => DataObject
+ Loading?: React.FC
+ Failure?: React.FC
+ Empty?: React.FC
+ Success: React.FC
}) => {
- const isDataNull = (data) => {
+ const isDataNull = (data: DataObject) => {
return dataField(data) === null
}
- const isDataEmptyArray = (data) => {
- return Array.isArray(dataField(data)) && dataField(data).length === 0
+ const isDataEmptyArray = (data: DataObject) => {
+ const field = dataField(data)
+ return Array.isArray(field) && field.length === 0
}
- const dataField = (data) => {
+ const dataField = (data: DataObject) => {
return data[Object.keys(data)[0]]
}
- const isEmpty = (data) => {
+ const isEmpty = (data: DataObject) => {
return isDataNull(data) || isDataEmptyArray(data)
}
- return (props) => (
+ return (props: OperationVariables) => (
- {({ error, loading, data, ...queryRest }) => {
+ {({ error, loading, data, ...queryRest }: QueryResultAlias) => {
if (error) {
if (Failure) {
return
} else {
- throw new Error(error)
+ throw error
}
} else if (loading) {
return
@@ -89,6 +119,7 @@ export const withCell = ({
'Cannot render cell: graphQL success but `data` is null'
)
}
+ return null
}}
)
diff --git a/packages/web/src/index.d.ts b/packages/web/src/index.d.ts
deleted file mode 100644
index db79c056e056..000000000000
--- a/packages/web/src/index.d.ts
+++ /dev/null
@@ -1,65 +0,0 @@
-/* eslint-disable no-redeclare, no-undef */
-import type _React from 'react'
-import type _gql from 'graphql-tag'
-import type _PropTypes from 'prop-types'
-import type {
- useSubscription as _useSubscription,
- useLazyQuery as _useLazyQuery,
- useQuery as _useQuery,
- useMutation as _useMutation,
- useApolloClient as _useApolloClient,
-} from '@apollo/client'
-
-declare global {
- // We reduce the number of imports that a user has to do by making them
- // globals via `Webpack.ProvidePlugin`
- const React: typeof _React
- const gql: typeof _gql
- const PropTypes: typeof _PropTypes
-}
-
-declare module '@redwoodjs/web' {
- const useQuery: typeof _useQuery
- const useMutation: typeof _useMutation
- const useLazyQuery: typeof _useLazyQuery
-
- const useSubscription: typeof _useSubscription
- const useApolloClient: typeof _useApolloClient
-
- type messages = {
- id: number // id
- text: string // default string
- classes: string // css classes
- persist: boolean // true will persist the message through each cycle until it is dismissed manually
- viewed: boolean // once true, the message will be dismissed on the next cycle
- }
- const useFlash: () => {
- messages: messages[]
- addMessage: (
- text: string, // default string
- options?: {
- text?: string // overwrites the text param passed to addMessage()
- classes?: string // css classes
- persist?: boolean // true will persist the message through each cycle until it is dismissed manually
- viewed?: boolean // once true, the message will be dismissed on the next cycle
- }
- ) => void
- dismissMessage: (messageId: number) => void
- cycleMessage: (messageId: number) => void
- }
-
- type ContextProps = {
- messages: messages[]
- }
-
- type FlashProps = {
- timeout: number // number in ms
- }
- const Flash: _React.FC
-
- const FlashProvider: any
- const GraphQLProvider: any
- const createGraphQLClient: any
-
- // TODO: RedwoodProvider
-}
diff --git a/packages/web/src/index.js b/packages/web/src/index.ts
similarity index 82%
rename from packages/web/src/index.js
rename to packages/web/src/index.ts
index 6daa63682343..b2116c3b4c9c 100644
--- a/packages/web/src/index.js
+++ b/packages/web/src/index.ts
@@ -1,3 +1,4 @@
+import './global.web-auto-imports'
import './config'
export { useSubscription } from '@apollo/client/react/hooks/useSubscription'
@@ -6,8 +7,11 @@ export { useQuery } from '@apollo/client/react/hooks/useQuery'
export { useMutation } from '@apollo/client/react/hooks/useMutation'
export { useApolloClient } from '@apollo/client/react/hooks/useApolloClient'
+// @ts-expect-error - no defs
export { default as FatalErrorBoundary } from 'src/components/FatalErrorBoundary'
+// @ts-expect-error - no defs
export { default as RedwoodProvider } from 'src/components/RedwoodProvider'
export * from './graphql'
+// @ts-expect-error - no defs
export * from './flash'
diff --git a/packages/web/tsconfig.json b/packages/web/tsconfig.json
new file mode 100644
index 000000000000..fabf60e3eb27
--- /dev/null
+++ b/packages/web/tsconfig.json
@@ -0,0 +1,10 @@
+{
+ "extends": "../../tsconfig.compilerOption.json",
+ "compilerOptions": {
+ "baseUrl": ".",
+ "rootDir": "src",
+ "tsBuildInfoFile": "dist/tsconfig.tsbuildinfo",
+ "outDir": "dist",
+ },
+ "include": ["src"],
+}
diff --git a/tasks/all-contributors/.all-contributorsrc b/tasks/all-contributors/.all-contributorsrc
index fcefd5b88277..e757129c0569 100644
--- a/tasks/all-contributors/.all-contributorsrc
+++ b/tasks/all-contributors/.all-contributorsrc
@@ -56,7 +56,8 @@
"avatar_url": "https://avatars3.githubusercontent.com/u/51720070?v=4",
"profile": "https://twitter.com/kimadeline_m",
"contributions": [
- "code"
+ "code",
+ "doc"
]
},
{
@@ -266,7 +267,8 @@
"profile": "https://github.com/Thieffen",
"contributions": [
"code",
- "doc"
+ "doc",
+ "tool"
]
},
{
@@ -1005,7 +1007,87 @@
"contributions": [
"doc"
]
+ },
+ {
+ "login": "androiddevnotes",
+ "name": "Android Dev Notes",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/66256957?v=4",
+ "profile": "https://www.youtube.com/c/awesomedevnotes",
+ "contributions": [
+ "code"
+ ]
+ },
+ {
+ "login": "jwkratz",
+ "name": "Jeremy Kratz",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/1337020?v=4",
+ "profile": "http://jeremykratz.com/",
+ "contributions": [
+ "code"
+ ]
+ },
+ {
+ "login": "KrisCoulson",
+ "name": "Kris Coulson",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/6943688?v=4",
+ "profile": "http://kriscoulson.com/",
+ "contributions": [
+ "code"
+ ]
+ },
+ {
+ "login": "M0nica",
+ "name": "Monica Powell",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/6998954?v=4",
+ "profile": "https://www.aboutmonica.com/",
+ "contributions": [
+ "code"
+ ]
+ },
+ {
+ "login": "bboygary",
+ "name": "Ganesh Rane",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/65660344?v=4",
+ "profile": "https://github.com/bboygary",
+ "contributions": [
+ "doc"
+ ]
+ },
+ {
+ "login": "ryanmdoyle",
+ "name": "Ryan Doyle",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/20651020?v=4",
+ "profile": "https://github.com/ryanmdoyle",
+ "contributions": [
+ "doc"
+ ]
+ },
+ {
+ "login": "ajcwebdev",
+ "name": "Anthony Campolo",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/12433465?v=4",
+ "profile": "https://ajcwebdev.substack.com/",
+ "contributions": [
+ "doc"
+ ]
+ },
+ {
+ "login": "matthewcarlreetz",
+ "name": "Matt Reetz",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1760821?v=4",
+ "profile": "https://github.com/matthewcarlreetz",
+ "contributions": [
+ "doc"
+ ]
+ },
+ {
+ "login": "punitcodes",
+ "name": "Punit Makwana",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/16760252?v=4",
+ "profile": "https://in.linkedin.com/in/punit-makwana/",
+ "contributions": [
+ "doc"
+ ]
}
- ],
- "contributorsPerLine": 7
+ ]
}
\ No newline at end of file
diff --git a/tasks/all-contributors/.crwa.all-contributorsrc b/tasks/all-contributors/.crwa.all-contributorsrc
index b87e0b7a588e..e223963b223c 100644
--- a/tasks/all-contributors/.crwa.all-contributorsrc
+++ b/tasks/all-contributors/.crwa.all-contributorsrc
@@ -118,6 +118,15 @@
"contributions": [
"tool"
]
+ },
+ {
+ "login": "Thieffen",
+ "name": "Thieffen Delabaere",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/847877?v=4",
+ "profile": "https://github.com/Thieffen",
+ "contributions": [
+ "tool"
+ ]
}
],
"contributorsPerLine": 7
diff --git a/tasks/all-contributors/.rwjs.com.all-contributorsrc b/tasks/all-contributors/.rwjs.com.all-contributorsrc
index 24460e4f92d4..22d5407d900f 100644
--- a/tasks/all-contributors/.rwjs.com.all-contributorsrc
+++ b/tasks/all-contributors/.rwjs.com.all-contributorsrc
@@ -514,6 +514,60 @@
"contributions": [
"doc"
]
+ },
+ {
+ "login": "bboygary",
+ "name": "Ganesh Rane",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/65660344?v=4",
+ "profile": "https://github.com/bboygary",
+ "contributions": [
+ "doc"
+ ]
+ },
+ {
+ "login": "ryanmdoyle",
+ "name": "Ryan Doyle",
+ "avatar_url": "https://avatars2.githubusercontent.com/u/20651020?v=4",
+ "profile": "https://github.com/ryanmdoyle",
+ "contributions": [
+ "doc"
+ ]
+ },
+ {
+ "login": "ajcwebdev",
+ "name": "Anthony Campolo",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/12433465?v=4",
+ "profile": "https://ajcwebdev.substack.com/",
+ "contributions": [
+ "doc"
+ ]
+ },
+ {
+ "login": "kimadeline",
+ "name": "Kim-Adeline Miguel",
+ "avatar_url": "https://avatars3.githubusercontent.com/u/51720070?v=4",
+ "profile": "https://twitter.com/kimadeline_m",
+ "contributions": [
+ "doc"
+ ]
+ },
+ {
+ "login": "matthewcarlreetz",
+ "name": "Matt Reetz",
+ "avatar_url": "https://avatars0.githubusercontent.com/u/1760821?v=4",
+ "profile": "https://github.com/matthewcarlreetz",
+ "contributions": [
+ "doc"
+ ]
+ },
+ {
+ "login": "punitcodes",
+ "name": "Punit Makwana",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/16760252?v=4",
+ "profile": "https://in.linkedin.com/in/punit-makwana/",
+ "contributions": [
+ "doc"
+ ]
}
],
"contributorsPerLine": 7
diff --git a/tasks/all-contributors/README.md b/tasks/all-contributors/README.md
index b380a8ff84aa..f2aecbb4396a 100644
--- a/tasks/all-contributors/README.md
+++ b/tasks/all-contributors/README.md
@@ -20,9 +20,11 @@ In general, this is a three-part process:
2. Merge changes into the main `.all-contributorsrc` file
3. Update README.md#Contributors with changes
-**FILES**
-**Framework** `redwoodjs/redwood` project:
-_note: this file is also used for all aggregated contributors_
+**FILES**
+
+**Framework** `redwoodjs/redwood` project:
+
+_note: this file is also used for all aggregated contributors_
- `.all-contributorsrc`
**CRWA** `redwoodjs/create-redwood-app` project:
@@ -78,7 +80,7 @@ node mergeContributors.js
### Step 3: Update the content in README.md#Contributors
```bash
-yarn all-contributors generate --config .all-contributorsrc
+yarn all-contributors generate --contributorsPerLine 5 --config .all-contributorsrc
```
Don't forget to commit and PR changes.
diff --git a/tsconfig.json b/tsconfig.json
index d8fe174d9186..c186cb250af1 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -8,6 +8,7 @@
{ "path": "packages/dev-server" },
{ "path": "packages/api-server" },
{ "path": "packages/auth" },
+ { "path": "packages/web" },
],
"files": []
}
diff --git a/yarn.lock b/yarn.lock
index dd2b178eb60a..7e1909784940 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,24 +2,6 @@
# yarn lockfile v1
-"@apollo/client@^3.0.2":
- version "3.1.3"
- resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.1.3.tgz#4ea9c3818bd2836a3dbe26088227c3d8cb46ad2b"
- integrity sha512-zXMiaj+dX0sgXIwEV5d/PI6B8SZT2bqlKNjZWcEXRY7NjESF5J3nd4v8KOsrhHe+A3YhNv63tIl35Sq7uf41Pg==
- dependencies:
- "@types/zen-observable" "^0.8.0"
- "@wry/context" "^0.5.2"
- "@wry/equality" "^0.2.0"
- fast-json-stable-stringify "^2.0.0"
- graphql-tag "^2.11.0"
- hoist-non-react-statics "^3.3.2"
- optimism "^0.12.1"
- prop-types "^15.7.2"
- symbol-observable "^1.2.0"
- ts-invariant "^0.4.4"
- tslib "^1.10.0"
- zen-observable "^0.8.14"
-
"@apollo/client@^3.1.5":
version "3.1.5"
resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.1.5.tgz#5865f5c32f061cd520459c5809e8debea6f4886c"
@@ -80,9 +62,9 @@
tslib "~2.0.1"
"@auth0/auth0-spa-js@^1.7.0":
- version "1.12.0"
- resolved "https://registry.yarnpkg.com/@auth0/auth0-spa-js/-/auth0-spa-js-1.12.0.tgz#632e22c022bd3d28c279fbbbcd45586f5fb73cf0"
- integrity sha512-BBuUDj5ZgRpTs+Lk+1o9oVI3HvmhfeNdd7hY7/KjzL6GtDJ7kVXTdJ6Ik8OUsZiHWFik69pBBwFBjBLlOZ8ctA==
+ version "1.12.1"
+ resolved "https://registry.yarnpkg.com/@auth0/auth0-spa-js/-/auth0-spa-js-1.12.1.tgz#791cdda722afa25f4c8879b93b8d7ab54a26e4c1"
+ integrity sha512-YdXtA1T2wK4iNG79VlGS/CPfNNezS1nqZURerj71jKSf8ICVKmvJgUNXFEZEwNNU/KFdCCPCHd5wMeWLDyEILw==
dependencies:
abortcontroller-polyfill "^1.5.0"
browser-tabs-lock "^1.2.9"
@@ -1224,7 +1206,7 @@
core-js-pure "^3.0.0"
regenerator-runtime "^0.13.4"
-"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.10.5", "@babel/runtime@^7.11.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2", "@babel/runtime@^7.9.6":
+"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.10.3", "@babel/runtime@^7.11.2", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.0", "@babel/runtime@^7.5.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.7.6", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2", "@babel/runtime@^7.9.6":
version "7.11.2"
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736"
integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw==
@@ -1568,10 +1550,10 @@
dependencies:
"@firebase/app-types" "0.6.1"
-"@firebase/database@0.6.12", "@firebase/database@^0.6.10":
- version "0.6.12"
- resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.6.12.tgz#60b484d34add1c0aad4999e2b1cb58b8f2b707c6"
- integrity sha512-OLUxp8TkXiML4X5LWM5IACsSDvo3fcf4mTbTe5RF+N6TRFv0Svzlet5OgGIa3ET1dQvNiisrMX7zzRa0OTLs7Q==
+"@firebase/database@0.6.13", "@firebase/database@^0.6.10":
+ version "0.6.13"
+ resolved "https://registry.yarnpkg.com/@firebase/database/-/database-0.6.13.tgz#b96fe0c53757dd6404ee085fdcb45c0f9f525c17"
+ integrity sha512-NommVkAPzU7CKd1gyehmi3lz0K78q0KOfiex7Nfy7MBMwknLm7oNqKovXSgQV1PCLvKXvvAplDSFhDhzIf9obA==
dependencies:
"@firebase/auth-interop-types" "0.1.5"
"@firebase/component" "0.1.19"
@@ -1581,24 +1563,24 @@
faye-websocket "0.11.3"
tslib "^1.11.1"
-"@firebase/firestore-types@1.12.1":
- version "1.12.1"
- resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-1.12.1.tgz#67e999798043d1b3156d0a2c52d4299a92345deb"
- integrity sha512-CpWcDriYnGDoAl0D9DcSuwX0b/fXqi7qOwuuTI1M0SYxau48G8cqhVjzjqPDgEM3kDGYJTnPN3ALS0Z4cnwERQ==
+"@firebase/firestore-types@1.13.0":
+ version "1.13.0"
+ resolved "https://registry.yarnpkg.com/@firebase/firestore-types/-/firestore-types-1.13.0.tgz#4ab9c40e1e66e8193a929460d64507acd07d9230"
+ integrity sha512-QF5CAuYOHE6Zbsn1uEg6wkl836iP+i6C0C/Zs3kF60eebxZvTWp8JSZk19Ar+jj4w+ye8/7H5olu5CqDNjWpEA==
-"@firebase/firestore@1.16.7":
- version "1.16.7"
- resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-1.16.7.tgz#046da8e129205538335f261b804273ec04c6df42"
- integrity sha512-MrX7te1eUib2pUzD3dLWdRuM7EPcCxtPwO4M9og3IFYr1U3XlxybD7kxyYswltHcUm6+kba3VKL1rvkqZ1sn2g==
+"@firebase/firestore@1.17.1":
+ version "1.17.1"
+ resolved "https://registry.yarnpkg.com/@firebase/firestore/-/firestore-1.17.1.tgz#fba94eef755e48b6aa31a586311e3f0a946aafe5"
+ integrity sha512-FJlNmFIBr9wrkA5g9JBPJWPmxYIzUhBDfsJGHNTUCxMbwm12pz/1Y6CW56kvZOgl6l+iPNlF911iduUDFzNUqw==
dependencies:
"@firebase/component" "0.1.19"
- "@firebase/firestore-types" "1.12.1"
+ "@firebase/firestore-types" "1.13.0"
"@firebase/logger" "0.2.6"
"@firebase/util" "0.3.2"
"@firebase/webchannel-wrapper" "0.3.0"
"@grpc/grpc-js" "^1.0.0"
"@grpc/proto-loader" "^0.5.0"
- node-fetch "2.6.0"
+ node-fetch "2.6.1"
tslib "^1.11.1"
"@firebase/functions-types@0.3.17":
@@ -1767,7 +1749,7 @@
resolved "https://registry.yarnpkg.com/@google-cloud/promisify/-/promisify-2.0.2.tgz#81d654b4cb227c65c7ad2f9a7715262febd409ed"
integrity sha512-EvuabjzzZ9E2+OaYf+7P9OAiiwbTxKYL0oGLnREQd+Su2NTQBpomkdlkBowFvyWsaV0d1sSGxrKpSNcrhPqbxg==
-"@google-cloud/storage@^5.0.0":
+"@google-cloud/storage@^5.3.0":
version "5.3.0"
resolved "https://registry.yarnpkg.com/@google-cloud/storage/-/storage-5.3.0.tgz#cf86683911cce68829e46de544abb41947d29da2"
integrity sha512-3t5UF3SZ14Bw2kcBHubCai6EIugU2GnQOstYWVSFuoO8IJ94RAaIOPq/dtexvQbUTpBTAGpd5smVR9WPL1mJVw==
@@ -1821,127 +1803,127 @@
graphql-tools "5.0.0"
tslib "1.11.1"
-"@graphql-tools/batch-delegate@6.2.2":
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/@graphql-tools/batch-delegate/-/batch-delegate-6.2.2.tgz#f81026796f5e953eede7d460d45019d02bf79ea5"
- integrity sha512-xXJKVvBxafdn9tVWe3oJreTHuFAKWblw4zK0KvKhEVJOjPytKweGCZI3kTs9hdmjgPz1ZjSQEVvgmZJ0GubrWA==
+"@graphql-tools/batch-delegate@^6.2.4":
+ version "6.2.4"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/batch-delegate/-/batch-delegate-6.2.4.tgz#8aab19ff69939c1a8bd3bebb4b1a3ff13c933559"
+ integrity sha512-sDWHMuTVGB2ShAnMAF1fLgaPMDgvweUYBXKuef9qHtCE0YtSO8xhP72CtQvHDOIJf30emWTmFFIsw6zbRe1ZWA==
dependencies:
- "@graphql-tools/delegate" "6.2.2"
+ "@graphql-tools/delegate" "^6.2.4"
dataloader "2.0.0"
tslib "~2.0.1"
-"@graphql-tools/code-file-loader@6.2.2":
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-6.2.2.tgz#9640a4e593ab4aa91b05adb0968ec8aeea969264"
- integrity sha512-2EDdgNR2fu1aKnU77jpkfwuUNOOZjBe6VQW/hI//GSVK5AYh+a/zm2vusAwdJQdC4yt2A1zEY8095bk4i9XD7w==
+"@graphql-tools/code-file-loader@^6.2.4":
+ version "6.2.4"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/code-file-loader/-/code-file-loader-6.2.4.tgz#ce194c19b2fcd714bffa4c0c529a4c65a6b0db4b"
+ integrity sha512-aDVI/JVUXIdqSJJKLjpBaqOAOCa5yUvsgQZu2Q9nVwV9faGlQi5MUuYAh1xp0LW80/5/unbiZ5/taRUyUY/6Eg==
dependencies:
- "@graphql-tools/graphql-tag-pluck" "6.2.2"
- "@graphql-tools/utils" "6.2.2"
+ "@graphql-tools/graphql-tag-pluck" "^6.2.4"
+ "@graphql-tools/utils" "^6.2.4"
fs-extra "9.0.1"
tslib "~2.0.1"
-"@graphql-tools/delegate@6.2.2":
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-6.2.2.tgz#3c401a06f6f7c3ef068d78217bde5e9b7b3830a0"
- integrity sha512-8VycfZYQ+m4HgajewQT6v6BzAEFxc6mh6rO+uqewnvh143nvv3ud4nXEAfOddUm0PrE6iD3Ng2BZtPSWF5mt+w==
+"@graphql-tools/delegate@^6.2.4":
+ version "6.2.4"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/delegate/-/delegate-6.2.4.tgz#db553b63eb9512d5eb5bbfdfcd8cb1e2b534699c"
+ integrity sha512-mXe6DfoWmq49kPcDrpKHgC2DSWcD5q0YCaHHoXYPAOlnLH8VMTY8BxcE8y/Do2eyg+GLcwAcrpffVszWMwqw0w==
dependencies:
"@ardatan/aggregate-error" "0.0.6"
- "@graphql-tools/schema" "6.2.2"
- "@graphql-tools/utils" "6.2.2"
+ "@graphql-tools/schema" "^6.2.4"
+ "@graphql-tools/utils" "^6.2.4"
dataloader "2.0.0"
is-promise "4.0.0"
tslib "~2.0.1"
-"@graphql-tools/git-loader@6.2.2":
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/@graphql-tools/git-loader/-/git-loader-6.2.2.tgz#6e2fe4e5853b90a3096dc88d9827f3d4b47c16d9"
- integrity sha512-gfhQX5ZQ7nc4AAW6tT0s2d0o2lkYtMMhaeX4miPMGd+Hgej1phLrIeSSEAfrlSy0JWgARmmsoXGuz76wDZdhjw==
+"@graphql-tools/git-loader@^6.2.4":
+ version "6.2.4"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/git-loader/-/git-loader-6.2.4.tgz#2502d48cb1253bde7df3f3e1dfd2bdcf7ff72b82"
+ integrity sha512-urMwWhhsZUKnX9MDHXbMUfZd568pWwj1Bx1O2M7N8I25GqZDW54Fzj9DudlVKE5M9twMtoEyBTH7sH4tscliqg==
dependencies:
- "@graphql-tools/graphql-tag-pluck" "6.2.2"
- "@graphql-tools/utils" "6.2.2"
+ "@graphql-tools/graphql-tag-pluck" "^6.2.4"
+ "@graphql-tools/utils" "^6.2.4"
tslib "~2.0.1"
-"@graphql-tools/github-loader@6.2.2":
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/@graphql-tools/github-loader/-/github-loader-6.2.2.tgz#6d0bf63e5dd0319c47cfb0cd52e2b6632e7bb7da"
- integrity sha512-tPUWfD8Dwc2YuiO8WtMg9rtsnq1tyfk8NEfjwxqe7cKwyEKRb8ybRURT/acwEroAgENc3Jwa3cgju+OJCbw4pQ==
+"@graphql-tools/github-loader@^6.2.4":
+ version "6.2.4"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/github-loader/-/github-loader-6.2.4.tgz#38520b5964594a578dbb4a7693a76938a79877a1"
+ integrity sha512-p4peplm/Ot989bCD4XATK5NEXX7l39BXNw+YKaqgoEoHopyQ142I2Zb0GJiMRjW9yXGqIlDjG4reZazleiprgQ==
dependencies:
- "@graphql-tools/graphql-tag-pluck" "6.2.2"
- "@graphql-tools/utils" "6.2.2"
- cross-fetch "3.0.5"
+ "@graphql-tools/graphql-tag-pluck" "^6.2.4"
+ "@graphql-tools/utils" "^6.2.4"
+ cross-fetch "3.0.6"
tslib "~2.0.1"
-"@graphql-tools/graphql-file-loader@6.2.2":
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-6.2.2.tgz#88e9d41f8fb1aac7f9f486cb61fbdb6bdc18d6f6"
- integrity sha512-dKuOk4vH2WWzVGydL13FjdR3WEmJHMoud3MXF9uyvLcjuDm9L0r+PdSI1PSPiCYs7Ii2bJ8zgmdz32jCBHZszA==
+"@graphql-tools/graphql-file-loader@^6.2.4":
+ version "6.2.4"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-file-loader/-/graphql-file-loader-6.2.4.tgz#1765b644cd621040f232f5c32321b45c187399a7"
+ integrity sha512-IcdUZoOlkCGr0KO8QCO8G031CDDv5dzHBZeN5H1gzE2AVFFwn2AexysrUXBxftm2DQIOuV+Knap7dC4Ol54kNA==
dependencies:
- "@graphql-tools/import" "6.2.2"
- "@graphql-tools/utils" "6.2.2"
+ "@graphql-tools/import" "^6.2.4"
+ "@graphql-tools/utils" "^6.2.4"
fs-extra "9.0.1"
tslib "~2.0.1"
-"@graphql-tools/graphql-tag-pluck@6.2.2":
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-6.2.2.tgz#b6c2ef7fe04c58a3ef242926e0b7b7845e555b68"
- integrity sha512-KH6QoJYo3WXtc4+3e2oTfm627oszRGsKVpMF7A0IvtiVUU0XxoXLAjmJBlNrGN/PdqpBDPEVSdz2VLX2eDkokw==
+"@graphql-tools/graphql-tag-pluck@^6.2.4":
+ version "6.2.5"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-6.2.5.tgz#5c0c47362406a55aaf661c4af0209b542b8483dc"
+ integrity sha512-qvdIOTanBuKYLIMSYl9Tk+ej9dq00B4BqUnHqoCvYtSjD1n1UINGrqXgwMT+JXp66gUZWw8BU9Ke92mQ4UwTpg==
dependencies:
"@babel/parser" "7.11.5"
"@babel/traverse" "7.11.5"
"@babel/types" "7.11.5"
- "@graphql-tools/utils" "6.2.2"
+ "@graphql-tools/utils" "^6.2.4"
tslib "~2.0.1"
optionalDependencies:
vue-template-compiler "^2.6.12"
-"@graphql-tools/import@6.2.2":
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-6.2.2.tgz#5f5341ff419851c1d2cf18d10d48abbb7763902e"
- integrity sha512-fxQx+960CBzG6+MGGRaWv9tQ71ir2NZQeVC2dfieQLv5/LXH0fqKe9ltYCfJFskscAmzWeuS19Sibhdn0JMecw==
+"@graphql-tools/import@^6.2.4":
+ version "6.2.4"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/import/-/import-6.2.4.tgz#0547f6d4754a924e80439d6af013577cdb617194"
+ integrity sha512-Q6fk6hbtDevoEVcgwb3WRn7XOqGY4MnX3Mvc+x8/b8k4RZ4wT+0WSLRDXGAKiVKRxGhgouU2lZVnGE/LDrGSCg==
dependencies:
fs-extra "9.0.1"
resolve-from "5.0.0"
tslib "~2.0.1"
-"@graphql-tools/json-file-loader@6.2.2":
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-6.2.2.tgz#d411a0195797a47028a97101a7c8059679364011"
- integrity sha512-m/gKQGJS+4bUy/8v0uup3su9RcCLdWvmhYW9+J8WDSzDE2QEdYQMeyDFYV14x0r92IhRpftLd//JvoE3cTV5Kg==
+"@graphql-tools/json-file-loader@^6.2.4":
+ version "6.2.4"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/json-file-loader/-/json-file-loader-6.2.4.tgz#0707fedfced73dd91b1dd81dfa02e83413e5aeaa"
+ integrity sha512-1iL6wwZrUt888hExlNEloSpNXuuUFYD2KV2FZ82t6yiq6bO9Iyg12SUuGd5xVXx9jUkdaHRZc0plMyuIA6gTGA==
dependencies:
- "@graphql-tools/utils" "6.2.2"
+ "@graphql-tools/utils" "^6.2.4"
fs-extra "9.0.1"
tslib "~2.0.1"
-"@graphql-tools/links@6.2.2":
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/@graphql-tools/links/-/links-6.2.2.tgz#cf3620b6b68f48137637f7eee73eb0274dcda924"
- integrity sha512-x1B75Flc10PSmF1hzar1kty9q9wfWjlwlPXYC5AYGmRIVfzbZui3SEZcEPP8cviedBCI84l9O+dX5S4dE2Oz6Q==
+"@graphql-tools/links@^6.2.4":
+ version "6.2.4"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/links/-/links-6.2.4.tgz#f06bfae67ec2485706af98ae9ad58dbf78a6bcea"
+ integrity sha512-dQH3oWVTkCwzGmfIi1OjyKAjPw1jOexP1f3hv8UajgU7Um/DCjVkvXQHeMGlihXg4bH/wogFheCJ0SwF4oFFUA==
dependencies:
- "@graphql-tools/utils" "6.2.2"
+ "@graphql-tools/utils" "^6.2.4"
apollo-link "1.2.14"
- apollo-upload-client "14.1.1"
- cross-fetch "3.0.5"
+ apollo-upload-client "14.1.2"
+ cross-fetch "3.0.6"
form-data "3.0.0"
is-promise "4.0.0"
tslib "~2.0.1"
-"@graphql-tools/load-files@6.2.2":
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/@graphql-tools/load-files/-/load-files-6.2.2.tgz#8c67e28b714d2f7cced28066ec97a9472c6950f2"
- integrity sha512-fyE8X2vohEHbHntyDHXXJaQkflHWaK8OkaIlbmi1A9CVuXdvhDcEBaUrbC69Wu02vOYeNgmwPB22qyeh6a3FHw==
+"@graphql-tools/load-files@^6.2.4":
+ version "6.2.4"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/load-files/-/load-files-6.2.4.tgz#17a6c10791d040da31458c8cfe70b187b13f169f"
+ integrity sha512-uQt8Bbd1WC8yewjChnvtxFdSw4reOM1B4MN17EzQr4Bw0nqp5LKXWfte0Y8ienS8MrGgjCUma1GWLKxvmRdTWQ==
dependencies:
fs-extra "9.0.1"
globby "11.0.1"
tslib "~2.0.1"
unixify "1.0.0"
-"@graphql-tools/load@6.2.2":
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-6.2.2.tgz#54fb6f3594e3fb4774a1adb8d7129f788512c752"
- integrity sha512-p5fvGSvtrIjL3rmQbdESnYH5zxqdKeQOIwoPnfvx6uDqqm3HaRBzS+k5V/PkhGsFRR5VFrqA8kPAbE87BYpkqw==
+"@graphql-tools/load@^6.2.4":
+ version "6.2.4"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/load/-/load-6.2.4.tgz#a1a860bdc9d9e0bd93e1dffdbd2cf8839a521c41"
+ integrity sha512-FlQC50VELwRxoWUbJMMMs5gG0Dl8BaQYMrXUHTsxwqR7UmksUYnysC21rdousvs6jVZ7pf4unZfZFtBjz+8Edg==
dependencies:
- "@graphql-tools/merge" "6.2.2"
- "@graphql-tools/utils" "6.2.2"
+ "@graphql-tools/merge" "^6.2.4"
+ "@graphql-tools/utils" "^6.2.4"
globby "11.0.1"
import-from "3.0.0"
is-glob "4.0.1"
@@ -1950,104 +1932,104 @@
unixify "1.0.0"
valid-url "1.0.9"
-"@graphql-tools/merge@6.2.2":
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-6.2.2.tgz#49d8da0e706530ad484dee8ba7b91f8d80126030"
- integrity sha512-2YyErSvq4hn5mjE6qJ/0Q8r3WU9JB3+obv2xyvb+oW+E/T1iYRJGxSFldi6lqO5IADZz8QASLJeSpRBw40gpBg==
+"@graphql-tools/merge@^6.2.4":
+ version "6.2.4"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/merge/-/merge-6.2.4.tgz#5b3b68083d55a38a7f3caac6e0adc46f428c2a3b"
+ integrity sha512-hQbiSzCJgzUYG1Aspj5EAUY9DsbTI2OK30GLBOjUI16DWkoLVXLXy4ljQYJxq6wDc4fqixMOmvxwf8FoJ9okmw==
dependencies:
- "@graphql-tools/schema" "6.2.2"
- "@graphql-tools/utils" "6.2.2"
+ "@graphql-tools/schema" "^6.2.4"
+ "@graphql-tools/utils" "^6.2.4"
tslib "~2.0.1"
-"@graphql-tools/mock@6.2.2":
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/@graphql-tools/mock/-/mock-6.2.2.tgz#a3566684e8ff248fd6bc35ec3f5b8d09c2d91c53"
- integrity sha512-+r4B+E6BfW464pKE/fOW1edctEJp4Pm2TZLScwMiJdMb8BH11LDj7ByxPg9i/y+QiMRZIoJWbsKdJuqVULtbkQ==
+"@graphql-tools/mock@^6.2.4":
+ version "6.2.4"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/mock/-/mock-6.2.4.tgz#205323c51f89dd855d345d130c7713d0420909ea"
+ integrity sha512-O5Zvq/mcDZ7Ptky0IZ4EK9USmxV6FEVYq0Jxv2TI80kvxbCjt0tbEpZ+r1vIt1gZOXlAvadSHYyzWnUPh+1vkQ==
dependencies:
- "@graphql-tools/schema" "6.2.2"
- "@graphql-tools/utils" "6.2.2"
+ "@graphql-tools/schema" "^6.2.4"
+ "@graphql-tools/utils" "^6.2.4"
tslib "~2.0.1"
-"@graphql-tools/module-loader@6.2.2":
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/@graphql-tools/module-loader/-/module-loader-6.2.2.tgz#0e98dc2bbea06aa84f8ae1bf0b8791289fd2da22"
- integrity sha512-qa+tM4GBBxJpXQ21+HRaO/yzTqRtsQcq+unCkFjsMpwiGM5MCGRBIV/KOJIhuDpyBssfdc3cQG0p8Uzdqidbag==
+"@graphql-tools/module-loader@^6.2.4":
+ version "6.2.4"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/module-loader/-/module-loader-6.2.4.tgz#d5d4c3d0c398ba0d52319a7baa37bb38e3289574"
+ integrity sha512-xfdgAvuwvQxRpS27jWyHFlEvrdlrJ+EuCeTmX34eYwzmGTHdI/MBrpAfUgk9z3HEi/gSw3qwbzm2qpWZKZf5Ng==
dependencies:
- "@graphql-tools/utils" "6.2.2"
+ "@graphql-tools/utils" "^6.2.4"
tslib "~2.0.1"
-"@graphql-tools/relay-operation-optimizer@6.2.2":
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.2.2.tgz#136ccca5ea33466391a9295c33408b27fe675fe6"
- integrity sha512-4kU+X/IpTNtO1MS/rBxW1ybflFonZ1WeBV9gv4tqXGPpHywJsO3y085PwMumoNfBpF755UfEu6XjE43SPg0m1g==
+"@graphql-tools/relay-operation-optimizer@^6.2.4":
+ version "6.2.4"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.2.4.tgz#1cba2ea7ebc30aa28d1e5461a6079aca173fabd0"
+ integrity sha512-lvBCrRupmVpKfwgOmwz7epm28Nwmk9McddG1htRiAPRCg5MB7/52bYP/QgklDQgkRXWsaDEBXfxKyoGkvLvu0w==
dependencies:
- "@graphql-tools/utils" "6.2.2"
+ "@graphql-tools/utils" "^6.2.4"
relay-compiler "10.0.1"
tslib "~2.0.1"
-"@graphql-tools/resolvers-composition@6.2.2":
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/@graphql-tools/resolvers-composition/-/resolvers-composition-6.2.2.tgz#d8b834769a314fa6825d2aa37fd8a5f9a67a837a"
- integrity sha512-Ejrf/5eyg+QCQ5TZaBIttiBmwQ3RQD+eF1zcLN9aXF7S6nz90CEKzZjPHxvEfC2ZeMWDZhq81BPDk0mvUsqJuA==
+"@graphql-tools/resolvers-composition@^6.2.4":
+ version "6.2.4"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/resolvers-composition/-/resolvers-composition-6.2.4.tgz#03dbb83c220b4d3a371b3c8290a3548c64c4eeb5"
+ integrity sha512-qcFHXZJykHvMymJKJnLBr9vxFhD/cefRjyVHhe5SxFxbY6h2CUVNcgSWfR74x59GWFj3bWsxCt6/JW1G0Ws+nQ==
dependencies:
- "@graphql-tools/utils" "6.2.2"
+ "@graphql-tools/utils" "^6.2.4"
lodash "4.17.20"
tslib "~2.0.1"
-"@graphql-tools/schema@6.2.2":
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-6.2.2.tgz#2dd7c6fbb4b6ccad239d0fefc3eb6d98a1bfcb01"
- integrity sha512-KITlyr//1oKyxIOlGvNZDl4c6bLj2Gc+3eJXyUKWfSmgsmAZPudpQNa/8VbiVujpm7UaX0cyM3FdeCaxWFeBgg==
+"@graphql-tools/schema@^6.2.4":
+ version "6.2.4"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/schema/-/schema-6.2.4.tgz#cc4e9f5cab0f4ec48500e666719d99fc5042481d"
+ integrity sha512-rh+14lSY1q8IPbEv2J9x8UBFJ5NrDX9W5asXEUlPp+7vraLp/Tiox4GXdgyA92JhwpYco3nTf5Bo2JDMt1KnAQ==
dependencies:
- "@graphql-tools/utils" "6.2.2"
+ "@graphql-tools/utils" "^6.2.4"
tslib "~2.0.1"
-"@graphql-tools/stitch@6.2.2":
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/@graphql-tools/stitch/-/stitch-6.2.2.tgz#b3436d1146d53f1b05e903e0fccd19c1a24b216c"
- integrity sha512-VysuOBik1ICqsgV3VGXysJfdUl4/ro95rsnREma9BJP3oNqriPd6v8JhrnZqP2LbfzF7G2xndRoSRAQgYOzsUQ==
- dependencies:
- "@graphql-tools/batch-delegate" "6.2.2"
- "@graphql-tools/delegate" "6.2.2"
- "@graphql-tools/merge" "6.2.2"
- "@graphql-tools/schema" "6.2.2"
- "@graphql-tools/utils" "6.2.2"
- "@graphql-tools/wrap" "6.2.2"
+"@graphql-tools/stitch@^6.2.4":
+ version "6.2.4"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/stitch/-/stitch-6.2.4.tgz#acfa6a577a33c0f02e4940ffff04753b23b87fd6"
+ integrity sha512-0C7PNkS7v7iAc001m7c1LPm5FUB0/DYw+s3OyCii6YYYHY8NwdI0roeOyeDGFJkFubWBQfjc3hoSyueKtU73mw==
+ dependencies:
+ "@graphql-tools/batch-delegate" "^6.2.4"
+ "@graphql-tools/delegate" "^6.2.4"
+ "@graphql-tools/merge" "^6.2.4"
+ "@graphql-tools/schema" "^6.2.4"
+ "@graphql-tools/utils" "^6.2.4"
+ "@graphql-tools/wrap" "^6.2.4"
is-promise "4.0.0"
tslib "~2.0.1"
-"@graphql-tools/url-loader@6.2.2":
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-6.2.2.tgz#cd5e83f31abea8d7de40c7e569e0242f7ece5c50"
- integrity sha512-vNDjhf7SJr9RnIDPBBEyTfKBb3aWRA3uy3jDkqQ/AFyh4hXRkg8xnECH7c6glRnWiZJeObMTxowZSUnDA68IyA==
+"@graphql-tools/url-loader@^6.2.4":
+ version "6.2.4"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/url-loader/-/url-loader-6.2.4.tgz#999c38b03ffea9220840211356a766fb7f527224"
+ integrity sha512-T14Ng02H2gzK5IRVNLKHM1ncQ2d+ou6+twGRNat3ETSP6arkS3jg0LPtJfu+8r6Op/4C3EXM6QbdaSNIkvatAQ==
dependencies:
- "@graphql-tools/delegate" "6.2.2"
- "@graphql-tools/utils" "6.2.2"
- "@graphql-tools/wrap" "6.2.2"
+ "@graphql-tools/delegate" "^6.2.4"
+ "@graphql-tools/utils" "^6.2.4"
+ "@graphql-tools/wrap" "^6.2.4"
"@types/websocket" "1.0.1"
- cross-fetch "3.0.5"
+ cross-fetch "3.0.6"
subscriptions-transport-ws "0.9.18"
tslib "~2.0.1"
valid-url "1.0.9"
websocket "1.0.32"
-"@graphql-tools/utils@6.2.2":
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-6.2.2.tgz#490236f539754ec59cd0490919b00ed9e0dba604"
- integrity sha512-a0SSYF76dnKHs8te4Igfnrrq1VOO4sFG8yx3ehO7464eGUfUUYo2QmNRjhxny2HRMvqzX40xuQikyg6LBXDNLQ==
+"@graphql-tools/utils@^6.2.4":
+ version "6.2.4"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/utils/-/utils-6.2.4.tgz#38a2314d2e5e229ad4f78cca44e1199e18d55856"
+ integrity sha512-ybgZ9EIJE3JMOtTrTd2VcIpTXtDrn2q6eiYkeYMKRVh3K41+LZa6YnR2zKERTXqTWqhobROwLt4BZbw2O3Aeeg==
dependencies:
"@ardatan/aggregate-error" "0.0.6"
camel-case "4.1.1"
tslib "~2.0.1"
-"@graphql-tools/wrap@6.2.2":
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-6.2.2.tgz#034fb885ad0812a13db3db7eec37d9dd300c7145"
- integrity sha512-FjCE+NvMwcCiAlt9EAw9uDi2zblE4Z5CEkY+z4NRO1AmCB5THoWJKG+csPh8tGuU80mAJI51Wy9FQGyUo/EU0g==
+"@graphql-tools/wrap@^6.2.4":
+ version "6.2.4"
+ resolved "https://registry.yarnpkg.com/@graphql-tools/wrap/-/wrap-6.2.4.tgz#2709817da6e469753735a9fe038c9e99736b2c57"
+ integrity sha512-cyQgpybolF9DjL2QNOvTS1WDCT/epgYoiA8/8b3nwv5xmMBQ6/6nYnZwityCZ7njb7MMyk7HBEDNNlP9qNJDcA==
dependencies:
- "@graphql-tools/delegate" "6.2.2"
- "@graphql-tools/schema" "6.2.2"
- "@graphql-tools/utils" "6.2.2"
+ "@graphql-tools/delegate" "^6.2.4"
+ "@graphql-tools/schema" "^6.2.4"
+ "@graphql-tools/utils" "^6.2.4"
is-promise "4.0.0"
tslib "~2.0.1"
@@ -3135,33 +3117,33 @@
resolved "https://registry.yarnpkg.com/@prisma/ci-info/-/ci-info-2.1.2.tgz#3da64f54584bde0aaf4b42f298a6c63f025aeb3f"
integrity sha512-RhAHY+wp6Nqu89Tp3zfUVkpGfqk4TfngeOWaMGgmhP7mB2ASDtOl8dkwxHmI8eN4edo+luyjPmbJBC4kST321A==
-"@prisma/cli@2.7.1":
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/@prisma/cli/-/cli-2.7.1.tgz#98f2cb434bb931341e6c6292c7bab601e5f842f8"
- integrity sha512-0uA+gWkNQ35DveVHDPltiTCTr4wcXtEhnPs463IEM+Xn8dTv9x0gtZiYHSuQM3t7uwlOxj1rurBsqSbiljynfQ==
+"@prisma/cli@2.8.1":
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/@prisma/cli/-/cli-2.8.1.tgz#fdfeb56857f2fb08ec9769537279745749effcf7"
+ integrity sha512-mEGJplClGnXI5ki4R0Xq8nq62zcyu7Wzdhybege+cFPZFUbFj0petaPZl/tqta9o5neDyvpU/lDgOwef6mwySg==
-"@prisma/client@2.7.1":
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/@prisma/client/-/client-2.7.1.tgz#0a37ddff7fe80ae3a86dfa620c1141c8607be6c2"
- integrity sha512-IEWDCuvIaQTira8/jAyf+uY+AuPPUFDIXMSN4zEA/gvoJv2woq7RmkaubS+NQVgDbbyOR6F3UcXLiFTYQDzZkQ==
+"@prisma/client@2.8.1":
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/@prisma/client/-/client-2.8.1.tgz#6fe87968eed42901cf76c623985222ebc318c292"
+ integrity sha512-apt6ioi2euOZA1O9mPA8AMRjPoPECsva76gMCcHCVgHvhkMNpFkcbn+UTkErJYrTgcRR7CPQt4D+fw8pkAHfjA==
dependencies:
pkg-up "^3.1.0"
-"@prisma/debug@2.7.1":
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/@prisma/debug/-/debug-2.7.1.tgz#8ac51f9735fe07bc5e29ef247ff18625ccb96c4a"
- integrity sha512-qF9xBjNWtf7yZBAKtHJB+Sp0kxdF/K5rUyVk9VoMNNgTrIFkaOcDY68DUlldxh+txjydUT4YacR5P4qXZocsqg==
+"@prisma/debug@2.8.1":
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/@prisma/debug/-/debug-2.8.1.tgz#ab6006fe8c669bfa3f806fab6949af13cdf0d8f9"
+ integrity sha512-MX7zIz0hP4JvL/WxBFTrpBsjb/pQSMBrJFiwCmpBzJeCI/CMpLnca7pEI9OHs/LVtoJBplhz05kLcrX2hMhN4w==
dependencies:
debug "^4.1.1"
-"@prisma/engine-core@2.7.1":
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/@prisma/engine-core/-/engine-core-2.7.1.tgz#87dd6deba49508e3475bc668c3ede2060d782b31"
- integrity sha512-vbNeKBl6Nl1KJuwCCwva8v4BXuv/jydA/Yl5Jnrf11KGM3BSCRavDGj4N1rxdxXpnp+L4Icb2OkxXYgdEWKPdA==
+"@prisma/engine-core@2.8.1":
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/@prisma/engine-core/-/engine-core-2.8.1.tgz#2384649aaed9ba7f9ebc314b20a1337b4421a051"
+ integrity sha512-aHE9DhJagYFzfIBuGt2GdNx0fL9IvekNDnjx97Ys6WiT/MskZf1RiLD2Sfarc7nBKx8BdSS1BHHGYm5sBOQzlg==
dependencies:
- "@prisma/debug" "2.7.1"
- "@prisma/generator-helper" "2.7.1"
- "@prisma/get-platform" "2.7.1"
+ "@prisma/debug" "2.8.1"
+ "@prisma/generator-helper" "2.8.1"
+ "@prisma/get-platform" "2.8.1"
chalk "^4.0.0"
cross-fetch "^3.0.4"
execa "^4.0.2"
@@ -3170,15 +3152,15 @@
new-github-issue-url "^0.2.1"
p-retry "^4.2.0"
terminal-link "^2.1.1"
- undici "git://github.com/nodejs/undici.git#e76f6a37836537f08c2d9b7d8805d6ff21d1e744"
+ undici "2.0.5"
-"@prisma/fetch-engine@2.7.1":
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/@prisma/fetch-engine/-/fetch-engine-2.7.1.tgz#855a32cdcb22e3c105b5f10e5490e25b7a96d02a"
- integrity sha512-BmJW8RGQCMAtYSgmCOH3X4trdzzejum4yuutruDKJQDP67fPmd8Waq/SRlnDcjhDs+2ZI6lKMaj6qTCU9Qd+MQ==
+"@prisma/fetch-engine@2.8.1":
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/@prisma/fetch-engine/-/fetch-engine-2.8.1.tgz#4e424961edc9b6900c38bca88fabf038f8f08555"
+ integrity sha512-mJ3vj6dhs5Ez4rb6BpAKlEv2yiKjEmxF/hETGG6PG++v5GILnmironZHNpr5Z2+HDBdvQTjsxAZIE+6AwtAa0w==
dependencies:
- "@prisma/debug" "2.7.1"
- "@prisma/get-platform" "2.7.1"
+ "@prisma/debug" "2.8.1"
+ "@prisma/get-platform" "2.8.1"
chalk "^4.0.0"
execa "^4.0.0"
find-cache-dir "^3.3.1"
@@ -3194,40 +3176,40 @@
progress "^2.0.3"
rimraf "^3.0.2"
temp-dir "^2.0.0"
- tempy "^0.6.0"
+ tempy "^0.7.0"
-"@prisma/generator-helper@2.7.1":
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/@prisma/generator-helper/-/generator-helper-2.7.1.tgz#31158537cb79777f42ec2b15e71943edd6c39924"
- integrity sha512-gG2BRDefyIIXSx6uMFTof8Nd0jkZjPs6ExvTcra7xi36+oqkdgjOmq1vp6x3+VfC+EXzY1qReBZViuZZSFH4Cg==
+"@prisma/generator-helper@2.8.1":
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/@prisma/generator-helper/-/generator-helper-2.8.1.tgz#8858f2cd9ef23ec55d5bafe38532e05472f46e5c"
+ integrity sha512-f9rgTvrFpjSn3Ity2zPfFv5khiQZ7F+eBr4+pL0eFmm+ffJBAsdGUv1Xl4qEgSfMzQEOmVnVUgtCMcUQgwNfXg==
dependencies:
- "@prisma/debug" "2.7.1"
+ "@prisma/debug" "2.8.1"
"@types/cross-spawn" "^6.0.1"
chalk "^4.0.0"
cross-spawn "^7.0.2"
-"@prisma/get-platform@2.7.1":
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/@prisma/get-platform/-/get-platform-2.7.1.tgz#3da81ad3ea96c7ff8bed7cb3a4058c1f919dd123"
- integrity sha512-2G/dbvIUC8rC4pKR+MX9jdcqnTbdSvYvhTLhc99y5Z2pI2dV+/vb3dWSXHWqmLWsmY482n9X+HngxQGnX4V4bQ==
+"@prisma/get-platform@2.8.1":
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/@prisma/get-platform/-/get-platform-2.8.1.tgz#bcb78b8fae0a4a7190565c3da1fd372e585c64fb"
+ integrity sha512-CW7S7nM03Po+N6w8g6AcR8k/u4CLFaecL2Hm7k12j/Ns1F2lX0F1mRKxoTccg0b11t3lM/vjakia4L5ogDS8KA==
dependencies:
- "@prisma/debug" "2.7.1"
+ "@prisma/debug" "2.8.1"
-"@prisma/sdk@2.7.1":
- version "2.7.1"
- resolved "https://registry.yarnpkg.com/@prisma/sdk/-/sdk-2.7.1.tgz#cb3f33ef74e335dc0741dcc0b89fbb4c8c8508e0"
- integrity sha512-vXPxcoxVuxXkNcMOx9+Bx89uiTfTDSJ/dOiNjWKV3Y7NaQj5kphik7wdt76QQees7Zu3cG6MwHRY7Awbkc6ZLw==
- dependencies:
- "@prisma/debug" "2.7.1"
- "@prisma/engine-core" "2.7.1"
- "@prisma/fetch-engine" "2.7.1"
- "@prisma/generator-helper" "2.7.1"
- "@prisma/get-platform" "2.7.1"
+"@prisma/sdk@2.8.1":
+ version "2.8.1"
+ resolved "https://registry.yarnpkg.com/@prisma/sdk/-/sdk-2.8.1.tgz#7edb228b98906afc42a267a6b38cf5dc8e8ec753"
+ integrity sha512-xoeuWnP8+jke4VfIfU0zv92ACKJ85CmXLUnkWmRdYS0GndRWDpe/mRkA+RNBpDFA62R9lYVW1sPT3KaUGokEUA==
+ dependencies:
+ "@prisma/debug" "2.8.1"
+ "@prisma/engine-core" "2.8.1"
+ "@prisma/fetch-engine" "2.8.1"
+ "@prisma/generator-helper" "2.8.1"
+ "@prisma/get-platform" "2.8.1"
"@timsuchanek/copy" "^1.4.5"
archiver "^4.0.0"
arg "^4.1.3"
chalk "4.1.0"
- checkpoint-client "1.1.11"
+ checkpoint-client "1.1.12"
cli-truncate "^2.1.0"
dotenv "^8.2.0"
execa "^4.0.0"
@@ -3246,7 +3228,7 @@
tar "^6.0.1"
temp-dir "^2.0.0"
temp-write "^4.0.0"
- tempy "^0.6.0"
+ tempy "^0.7.0"
terminal-link "^2.1.1"
tmp "0.2.1"
url-parse "^1.4.7"
@@ -3829,10 +3811,10 @@
"@babel/runtime" "^7.11.2"
"@testing-library/dom" "^7.23.0"
-"@testing-library/user-event@12.1.4", "@testing-library/user-event@^12.0.11":
- version "12.1.4"
- resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-12.1.4.tgz#a1f257dd2ec5fc19ca5d96ef2d096f6f5888e67a"
- integrity sha512-vd5s43lNfyq/JEr8ndQmS+An6dEVUmjW9zqtpmMHU+rrPMaHLrUIlWZ9wDE8ALS/dFMsu6U00A5X/7Dv/2tWnw==
+"@testing-library/user-event@12.1.6", "@testing-library/user-event@^12.0.11":
+ version "12.1.6"
+ resolved "https://registry.yarnpkg.com/@testing-library/user-event/-/user-event-12.1.6.tgz#f550b138dfdc20387b89cbe3e9f3d969ab10c2bd"
+ integrity sha512-BdSe6cmzDEapTBH3s1NKbzu+GyX5bJKraKwVpM2vZF1+EEWxZr0EiA0z9bA5Nux8P+6nKMOZKsXQrj5q/kicfQ==
dependencies:
"@babel/runtime" "^7.10.2"
@@ -3909,9 +3891,9 @@
"@types/babel-types" "*"
"@types/babel-plugin-tester@^9.0.0":
- version "9.0.0"
- resolved "https://registry.yarnpkg.com/@types/babel-plugin-tester/-/babel-plugin-tester-9.0.0.tgz#dcb6fa137a71ade0b8431696fed5193a72e2441e"
- integrity sha512-+YTsSQgllJTOrvWT+DR34GQbLs/oKMODZV2WbypdoZTrZlr/+jkv4HK+E69ljoThECXErzQeItCNE/tZDOoZRA==
+ version "9.0.1"
+ resolved "https://registry.yarnpkg.com/@types/babel-plugin-tester/-/babel-plugin-tester-9.0.1.tgz#5f1dc3b9da821b119f74544cda308d1e040c4cba"
+ integrity sha512-RGZzADCDXd9MIxQzOM2I6guMFRtZw+XwVx+vmPliPAvGeh228ZYA3hoTEF9u3jNR2Nf/gyb55HI3D9pMl3m1LA==
dependencies:
"@types/babel__core" "*"
"@types/prettier" "*"
@@ -4978,7 +4960,7 @@ ansi-escapes@^3.0.0, ansi-escapes@^3.2.0:
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b"
integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==
-ansi-escapes@^4.2.1:
+ansi-escapes@^4.2.1, ansi-escapes@^4.3.1:
version "4.3.1"
resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61"
integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==
@@ -5222,13 +5204,13 @@ apollo-tracing@^0.11.2:
apollo-server-env "^2.4.5"
apollo-server-plugin-base "^0.9.1"
-apollo-upload-client@14.1.1:
- version "14.1.1"
- resolved "https://registry.yarnpkg.com/apollo-upload-client/-/apollo-upload-client-14.1.1.tgz#2b21bb3424293a56ad9c4b9678395f5898f9b9be"
- integrity sha512-6H6AW5habDHH/9XCJ8l2qlkaohwIcO+Lt/8P2908/yx0TC0oaiDNVu+0v2YE/5gA6NP0RvztUodzJUZJz27C0g==
+apollo-upload-client@14.1.2:
+ version "14.1.2"
+ resolved "https://registry.yarnpkg.com/apollo-upload-client/-/apollo-upload-client-14.1.2.tgz#7a72b000f1cd67eaf8f12b4bda2796d0898c0dae"
+ integrity sha512-ozaW+4tnVz1rpfwiQwG3RCdCcZ93RV/37ZQbRnObcQ9mjb+zur58sGDPVg9Ef3fiujLmiE/Fe9kdgvIMA3VOjA==
dependencies:
- "@apollo/client" "^3.0.2"
- "@babel/runtime" "^7.10.5"
+ "@apollo/client" "^3.1.5"
+ "@babel/runtime" "^7.11.2"
extract-files "^9.0.0"
apollo-upload-client@^13.0.0:
@@ -6782,10 +6764,10 @@ check-types@^8.0.3:
resolved "https://registry.yarnpkg.com/check-types/-/check-types-8.0.3.tgz#3356cca19c889544f2d7a95ed49ce508a0ecf552"
integrity sha512-YpeKZngUmG65rLudJ4taU7VLkOCTMhNl/u4ctNC56LQS/zJTyNH0Lrtwm1tfTsbLlwvlfsA2d1c8vCf/Kh2KwQ==
-checkpoint-client@1.1.11:
- version "1.1.11"
- resolved "https://registry.yarnpkg.com/checkpoint-client/-/checkpoint-client-1.1.11.tgz#992818640b9ef12d66304bf973d993760b1e6926"
- integrity sha512-p+eDmbuKlP6oHgknetUoqWTHnQsWfSbDlaMlKgwNh8RiEdLQVZ5z1rcU4+0iBynZe2z8sJHHSdWo9VQTmGWRLw==
+checkpoint-client@1.1.12:
+ version "1.1.12"
+ resolved "https://registry.yarnpkg.com/checkpoint-client/-/checkpoint-client-1.1.12.tgz#406fb898a95c2911235aa3e3bf4564de66cb6d8d"
+ integrity sha512-YbQMJe28YfLWBst/YvQhrh12afZGy67J7Uo/q9U0OfrFXZq3D8OyDPgjZkc+zRRK3wppC28SiCQ0fbgalsmCqA==
dependencies:
"@prisma/ci-info" "2.1.2"
cross-spawn "7.0.3"
@@ -6793,8 +6775,8 @@ checkpoint-client@1.1.11:
fast-write-atomic "0.2.1"
make-dir "3.1.0"
ms "2.1.2"
- node-fetch "2.6.0"
- uuid "8.1.0"
+ node-fetch "2.6.1"
+ uuid "8.3.0"
chokidar@^2.0.4, chokidar@^2.1.8:
version "2.1.8"
@@ -6815,7 +6797,7 @@ chokidar@^2.0.4, chokidar@^2.1.8:
optionalDependencies:
fsevents "^1.2.7"
-chokidar@^3.2.2, chokidar@^3.4.0, chokidar@^3.4.1:
+chokidar@^3.2.2, chokidar@^3.4.0, chokidar@^3.4.1, chokidar@^3.4.2:
version "3.4.2"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d"
integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A==
@@ -7410,9 +7392,9 @@ copy-to-clipboard@^3.0.8:
toggle-selection "^1.0.6"
copy-webpack-plugin@^6.1.0:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.1.0.tgz#5bde7f826d87e716d8d5e761ddd34bb675448458"
- integrity sha512-aWjIuLt1OVQxaDVffnt3bnGmLA8zGgAJaFwPA+a+QYVPh1vhIKjVfh3SbOFLV0kRPvGBITbw17n5CsmiBS4LQQ==
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-6.1.1.tgz#737a3ba21c16cc6ddca972f5cf8de25568ca0616"
+ integrity sha512-4TlkHFYkrZ3WppLA5XkPmBLI5lnEpFsXvpeqxCf5PzkratZiVklNXsvoQkLhUU43q7ZL3AOXtaHAd9jLNJoU0w==
dependencies:
cacache "^15.0.5"
fast-glob "^3.2.4"
@@ -7423,7 +7405,7 @@ copy-webpack-plugin@^6.1.0:
normalize-path "^3.0.0"
p-limit "^3.0.2"
schema-utils "^2.7.1"
- serialize-javascript "^4.0.0"
+ serialize-javascript "^5.0.1"
webpack-sources "^1.4.3"
core-js-compat@^3.6.2:
@@ -7552,7 +7534,14 @@ cross-env@^7.0.2:
dependencies:
cross-spawn "^7.0.1"
-cross-fetch@3.0.5, cross-fetch@^3.0.4:
+cross-fetch@3.0.6:
+ version "3.0.6"
+ resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.6.tgz#3a4040bc8941e653e0e9cf17f29ebcd177d3365c"
+ integrity sha512-KBPUbqgFjzWlVcURG+Svp9TlhA5uliYtiNx/0r8nv0pdypeQCRJ9IaSIc3q/x3q8t3F75cHuwxVql1HFGHCNJQ==
+ dependencies:
+ node-fetch "2.6.1"
+
+cross-fetch@^3.0.4:
version "3.0.5"
resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.0.5.tgz#2739d2981892e7ab488a7ad03b92df2816e03f4c"
integrity sha512-FFLcLtraisj5eteosnX1gf01qYDCOc4fDy0+euOt8Kn9YBY2NtXL/pCoYPavw24NIQkQqm5ZOLsGD5Zzj0gyew==
@@ -7621,9 +7610,9 @@ css-loader@^3.0.0:
semver "^6.3.0"
css-loader@^4.2.2:
- version "4.2.2"
- resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.2.2.tgz#b668b3488d566dc22ebcf9425c5f254a05808c89"
- integrity sha512-omVGsTkZPVwVRpckeUnLshPp12KsmMSLqYxs12+RzM9jRR5Y+Idn/tBffjXRvOE+qW7if24cuceFJqYR5FmGBg==
+ version "4.3.0"
+ resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-4.3.0.tgz#c888af64b2a5b2e85462c72c0f4a85c7e2e0821e"
+ integrity sha512-rdezjCjScIrsL8BSYszgT4s476IcNKt6yX69t0pHjJVnPUTDpn4WfIpDQTN3wCJvUvfsz/mFjuGOekf3PY3NUg==
dependencies:
camelcase "^6.0.0"
cssesc "^3.0.0"
@@ -7635,7 +7624,7 @@ css-loader@^4.2.2:
postcss-modules-scope "^2.2.0"
postcss-modules-values "^3.0.0"
postcss-value-parser "^4.1.0"
- schema-utils "^2.7.0"
+ schema-utils "^2.7.1"
semver "^7.3.2"
css-select-base-adapter@^0.1.1:
@@ -8064,6 +8053,20 @@ del@^4.1.1:
pify "^4.0.1"
rimraf "^2.6.3"
+del@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/del/-/del-6.0.0.tgz#0b40d0332cea743f1614f818be4feb717714c952"
+ integrity sha512-1shh9DQ23L16oXSZKB2JxpL7iMy2E0S9d517ptA1P8iw0alkPtQcrKH7ru31rYtKwF499HkTu+DRzq3TCKDFRQ==
+ dependencies:
+ globby "^11.0.1"
+ graceful-fs "^4.2.4"
+ is-glob "^4.0.1"
+ is-path-cwd "^2.2.0"
+ is-path-inside "^3.0.2"
+ p-map "^4.0.0"
+ rimraf "^3.0.2"
+ slash "^3.0.0"
+
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
@@ -8819,9 +8822,9 @@ eslint-plugin-import@^2.22.0:
tsconfig-paths "^3.9.0"
eslint-plugin-jest-dom@^3.2.2:
- version "3.2.2"
- resolved "https://registry.yarnpkg.com/eslint-plugin-jest-dom/-/eslint-plugin-jest-dom-3.2.2.tgz#d343b820093e382002177445e53a9a3868c0980e"
- integrity sha512-e92SJEC/KPbQyMd9on0CbwDQxCHjiBVVe8dwzDqp0tjvVQWB9FXGTq9EZcFhJdsLPuXdZOWkU9DIcDT5DUTCXw==
+ version "3.2.3"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-jest-dom/-/eslint-plugin-jest-dom-3.2.3.tgz#2ee4ef409484b9d175f169e5fc12caf8be854b4e"
+ integrity sha512-3eEne+h1JsTV4ExZ022xJALKKgWwjYTakRzXZ575CzB6kOZ3No5cvW9XVdF0CfgHt+4ZaMq2AFgm2BiA3sHmRg==
dependencies:
"@babel/runtime" "^7.9.6"
requireindex "^1.2.0"
@@ -9546,31 +9549,31 @@ findup-sync@^4.0.0:
resolve-dir "^1.0.1"
firebase-admin@^9.1.1:
- version "9.1.1"
- resolved "https://registry.yarnpkg.com/firebase-admin/-/firebase-admin-9.1.1.tgz#153aff515140a41d92ebc51231c12c7b2f4c3e69"
- integrity sha512-HkzY9yN/kOe1EQgjheURAQ4pFBerI54TBL0+nj1fwzKnAnGCpcI73Bbwx99Pk3u2x4rj6bDcsZfz9bA8y7DWtQ==
+ version "9.2.0"
+ resolved "https://registry.yarnpkg.com/firebase-admin/-/firebase-admin-9.2.0.tgz#df5176e2d0c5711df6dbf7012320492a703538ea"
+ integrity sha512-LhnMYl71B4gP1FlTLfwaYlOWhBCAcNF+byb2CPTfaW/T4hkp4qlXOgo2bws/zbAv5X9GTFqGir3KexMslVGsIA==
dependencies:
"@firebase/database" "^0.6.10"
"@firebase/database-types" "^0.5.2"
"@types/node" "^10.10.0"
dicer "^0.3.0"
jsonwebtoken "^8.5.1"
- node-forge "^0.9.1"
+ node-forge "^0.10.0"
optionalDependencies:
"@google-cloud/firestore" "^4.0.0"
- "@google-cloud/storage" "^5.0.0"
+ "@google-cloud/storage" "^5.3.0"
firebase@^7.14.5:
- version "7.20.0"
- resolved "https://registry.yarnpkg.com/firebase/-/firebase-7.20.0.tgz#ac1557a0962070d19d61d150c69421a5503710ec"
- integrity sha512-ijgiUPB93UGWw2P2kgUQgghu5WOn/WR2J8C/V6ZSeI1PQqiEwsfn0kvw4iMJeqLQpA/FVeZz/+p0ubE5kzqhBA==
+ version "7.21.1"
+ resolved "https://registry.yarnpkg.com/firebase/-/firebase-7.21.1.tgz#45c92d6c53136a07d637e9da227726460e86e746"
+ integrity sha512-ogqWUXIP2/1BTee112QJiAjgch/Ig7pzlAw2mfWOhl9E0IUX46OKv0hypLX62MBgaAKwPHfICIwsWOCxlQ9dZQ==
dependencies:
"@firebase/analytics" "0.5.0"
"@firebase/app" "0.6.11"
"@firebase/app-types" "0.6.1"
"@firebase/auth" "0.14.9"
- "@firebase/database" "0.6.12"
- "@firebase/firestore" "1.16.7"
+ "@firebase/database" "0.6.13"
+ "@firebase/firestore" "1.17.1"
"@firebase/functions" "0.4.51"
"@firebase/installations" "0.4.17"
"@firebase/messaging" "0.7.1"
@@ -10319,33 +10322,33 @@ graphql-tools@5.0.0:
tslib "^1.11.1"
uuid "^7.0.3"
-graphql-tools@6.2.2:
- version "6.2.2"
- resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-6.2.2.tgz#7cfd6ee6ec66d6ee3847c31129a02cf2bd162eff"
- integrity sha512-bCAKS/VnlhUCC/dLIl2U1LuUaujCts66lPP8KP6QhHsQSLQd8xeCQcqGsPk7M1yYkbSODlrCAhQQOvKN2hVaHg==
- dependencies:
- "@graphql-tools/batch-delegate" "6.2.2"
- "@graphql-tools/code-file-loader" "6.2.2"
- "@graphql-tools/delegate" "6.2.2"
- "@graphql-tools/git-loader" "6.2.2"
- "@graphql-tools/github-loader" "6.2.2"
- "@graphql-tools/graphql-file-loader" "6.2.2"
- "@graphql-tools/graphql-tag-pluck" "6.2.2"
- "@graphql-tools/import" "6.2.2"
- "@graphql-tools/json-file-loader" "6.2.2"
- "@graphql-tools/links" "6.2.2"
- "@graphql-tools/load" "6.2.2"
- "@graphql-tools/load-files" "6.2.2"
- "@graphql-tools/merge" "6.2.2"
- "@graphql-tools/mock" "6.2.2"
- "@graphql-tools/module-loader" "6.2.2"
- "@graphql-tools/relay-operation-optimizer" "6.2.2"
- "@graphql-tools/resolvers-composition" "6.2.2"
- "@graphql-tools/schema" "6.2.2"
- "@graphql-tools/stitch" "6.2.2"
- "@graphql-tools/url-loader" "6.2.2"
- "@graphql-tools/utils" "6.2.2"
- "@graphql-tools/wrap" "6.2.2"
+graphql-tools@6.2.4:
+ version "6.2.4"
+ resolved "https://registry.yarnpkg.com/graphql-tools/-/graphql-tools-6.2.4.tgz#e4573ab65ea53a1e64dbe1fd4ccb483b59946fd2"
+ integrity sha512-yA5E6QRz6IRZ3TrxGkh+xIGeinISZVzb3Mc0Z/3q3gu1MgqnB/3y7Iv3tXuL1DNvoNcJV5WiAU8KYMsvNSF1gQ==
+ dependencies:
+ "@graphql-tools/batch-delegate" "^6.2.4"
+ "@graphql-tools/code-file-loader" "^6.2.4"
+ "@graphql-tools/delegate" "^6.2.4"
+ "@graphql-tools/git-loader" "^6.2.4"
+ "@graphql-tools/github-loader" "^6.2.4"
+ "@graphql-tools/graphql-file-loader" "^6.2.4"
+ "@graphql-tools/graphql-tag-pluck" "^6.2.4"
+ "@graphql-tools/import" "^6.2.4"
+ "@graphql-tools/json-file-loader" "^6.2.4"
+ "@graphql-tools/links" "^6.2.4"
+ "@graphql-tools/load" "^6.2.4"
+ "@graphql-tools/load-files" "^6.2.4"
+ "@graphql-tools/merge" "^6.2.4"
+ "@graphql-tools/mock" "^6.2.4"
+ "@graphql-tools/module-loader" "^6.2.4"
+ "@graphql-tools/relay-operation-optimizer" "^6.2.4"
+ "@graphql-tools/resolvers-composition" "^6.2.4"
+ "@graphql-tools/schema" "^6.2.4"
+ "@graphql-tools/stitch" "^6.2.4"
+ "@graphql-tools/url-loader" "^6.2.4"
+ "@graphql-tools/utils" "^6.2.4"
+ "@graphql-tools/wrap" "^6.2.4"
tslib "~2.0.1"
graphql-tools@^4.0.0:
@@ -10654,9 +10657,9 @@ html-minifier-terser@^5.0.1:
terser "^4.6.3"
html-webpack-plugin@^4.0.0-beta.2, html-webpack-plugin@^4.0.2:
- version "4.4.1"
- resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.4.1.tgz#61ab85aa1a84ba181443345ebaead51abbb84149"
- integrity sha512-nEtdEIsIGXdXGG7MjTTZlmhqhpHU9pJFc1OYxcP36c5/ZKP6b0BJMww2QTvJGQYA9aMxUnjDujpZdYcVOXiBCQ==
+ version "4.5.0"
+ resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-4.5.0.tgz#625097650886b97ea5dae331c320e3238f6c121c"
+ integrity sha512-MouoXEYSjTzCrjIxWwg8gxL5fE2X2WZJLmBYXlaJhQUH5K/b5OrqmV7T4dB7iu0xkmJ6JlUuV6fFVtnqbPopZw==
dependencies:
"@types/html-minifier-terser" "^5.0.0"
"@types/tapable" "^1.0.5"
@@ -11445,7 +11448,7 @@ is-observable@^1.1.0:
dependencies:
symbol-observable "^1.1.0"
-is-path-cwd@^2.0.0:
+is-path-cwd@^2.0.0, is-path-cwd@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb"
integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==
@@ -11464,7 +11467,7 @@ is-path-inside@^2.1.0:
dependencies:
path-is-inside "^1.0.2"
-is-path-inside@^3.0.1:
+is-path-inside@^3.0.1, is-path-inside@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017"
integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==
@@ -12075,6 +12078,19 @@ jest-validate@^26.4.2:
leven "^3.1.0"
pretty-format "^26.4.2"
+jest-watch-typeahead@^0.6.1:
+ version "0.6.1"
+ resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-0.6.1.tgz#45221b86bb6710b7e97baaa1640ae24a07785e63"
+ integrity sha512-ITVnHhj3Jd/QkqQcTqZfRgjfyRhDFM/auzgVo2RKvSwi18YMvh0WvXDJFoFED6c7jd/5jxtu4kSOb9PTu2cPVg==
+ dependencies:
+ ansi-escapes "^4.3.1"
+ chalk "^4.0.0"
+ jest-regex-util "^26.0.0"
+ jest-watcher "^26.3.0"
+ slash "^3.0.0"
+ string-length "^4.0.1"
+ strip-ansi "^6.0.0"
+
jest-watcher@^26.3.0:
version "26.3.0"
resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.3.0.tgz#f8ef3068ddb8af160ef868400318dc4a898eed08"
@@ -12105,7 +12121,7 @@ jest-worker@^26.3.0:
merge-stream "^2.0.0"
supports-color "^7.0.0"
-jest@^26.1.0:
+jest@^26.1.0, jest@^26.4.2:
version "26.4.2"
resolved "https://registry.yarnpkg.com/jest/-/jest-26.4.2.tgz#7e8bfb348ec33f5459adeaffc1a25d5752d9d312"
integrity sha512-LLCjPrUh98Ik8CzW8LLVnSCfLaiY+wbK53U7VxnFSX7Q+kWC4noVeDvGWIFw0Amfq1lq2VfGm7YHWSLBV62MJw==
@@ -13577,22 +13593,23 @@ ms@2.1.2, ms@^2.0.0, ms@^2.1.1, ms@^2.1.2:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
-msw@0.20.5, msw@^0.20.0:
- version "0.20.5"
- resolved "https://registry.yarnpkg.com/msw/-/msw-0.20.5.tgz#b6141080c0d8b17c451d9ca36c28cc47b4ac487a"
- integrity sha512-hmEsey5BbVicMGt7aOh/GZ9ltga5N3tK6NiJXnbfCkAGKgnAVnjASr3i7Z+sWlZyY5uuMUFyLCEcqrlXxC6qIA==
+msw@0.21.2, msw@^0.21.2:
+ version "0.21.2"
+ resolved "https://registry.yarnpkg.com/msw/-/msw-0.21.2.tgz#74ed10b8eb224325652a3c3812b5460dac297bd8"
+ integrity sha512-XOJehxtJThNFdMJdVjxDAbZ8KuC3UltOlO5nQDks0Q1yzSUqqKcVUjbKrH7T+K2hckBr0KEY2fwJHv21R4BV2A==
dependencies:
"@open-draft/until" "^1.0.3"
"@types/cookie" "^0.4.0"
chalk "^4.1.0"
+ chokidar "^3.4.2"
cookie "^0.4.1"
graphql "^15.3.0"
headers-utils "^1.2.0"
- node-fetch "^2.6.0"
+ node-fetch "^2.6.1"
node-match-path "^0.4.4"
- node-request-interceptor "^0.3.5"
+ node-request-interceptor "^0.5.1"
statuses "^2.0.0"
- yargs "^15.4.1"
+ yargs "^16.0.3"
multicast-dns-service-types@^1.1.0:
version "1.1.0"
@@ -13758,7 +13775,7 @@ node-fetch@2.6.0:
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd"
integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==
-node-fetch@2.6.1, node-fetch@^2.1.2, node-fetch@^2.2.0, node-fetch@^2.3.0, node-fetch@^2.5.0, node-fetch@^2.6.0:
+node-fetch@2.6.1, node-fetch@^2.1.2, node-fetch@^2.2.0, node-fetch@^2.3.0, node-fetch@^2.5.0, node-fetch@^2.6.0, node-fetch@^2.6.1:
version "2.6.1"
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.1.tgz#045bd323631f76ed2e2b55573394416b639a0052"
integrity sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==
@@ -13776,7 +13793,12 @@ node-forge@0.9.0:
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579"
integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==
-node-forge@^0.9.0, node-forge@^0.9.1:
+node-forge@^0.10.0:
+ version "0.10.0"
+ resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3"
+ integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==
+
+node-forge@^0.9.0:
version "0.9.1"
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.1.tgz#775368e6846558ab6676858a4d8c6e8d16c677b5"
integrity sha512-G6RlQt5Sb4GMBzXvhfkeFmbqR6MzhtnT7VTHuLadjkii3rdYHNdw0m8zA4BTxVIh68FicCQ2NSUANpsqkr9jvQ==
@@ -13864,10 +13886,10 @@ node-releases@^1.1.29, node-releases@^1.1.60:
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.60.tgz#6948bdfce8286f0b5d0e5a88e8384e954dfe7084"
integrity sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA==
-node-request-interceptor@^0.3.5:
- version "0.3.6"
- resolved "https://registry.yarnpkg.com/node-request-interceptor/-/node-request-interceptor-0.3.6.tgz#c411065a424b17a17503ecfce11a6a2a2f5d9a87"
- integrity sha512-pN8Tt43XuLamN+bspAZ9tEMGDp1bOfaxluYop1/qmNRQmM5BOelFqr4jRvARD6y/7iuhLjOEjMQgy5HweXN7Kg==
+node-request-interceptor@^0.5.1:
+ version "0.5.1"
+ resolved "https://registry.yarnpkg.com/node-request-interceptor/-/node-request-interceptor-0.5.1.tgz#b4757a033bde4412d9ffc4503804abb28ed962d2"
+ integrity sha512-ex5mlI5nGokxocomS2Rj2r1aspmt7qZoI8OvKLt24ylp1bYCzGQ+0XD911guCNDb/kKLMIGC67HHyeFrJCz7jA==
dependencies:
"@open-draft/until" "^1.0.3"
debug "^4.1.1"
@@ -14985,9 +15007,9 @@ prettier@^1.19.1:
integrity sha512-s7PoyDv/II1ObgQunCbB9PdLmUcBZcnWOcxDh7O0N/UwDEsHyqkW+Qh28jW+mVuCdx7gLB0BotYI1Y6uI9iyew==
prettier@^2.0.1, prettier@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.1.tgz#d9485dd5e499daa6cb547023b87a6cf51bee37d6"
- integrity sha512-9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw==
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.2.tgz#3050700dae2e4c8b67c4c3f666cdb8af405e1ce5"
+ integrity sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==
pretty-error@^2.1.1:
version "2.1.1"
@@ -15509,9 +15531,9 @@ react-helmet-async@^1.0.2:
shallowequal "^1.1.0"
react-hook-form@^6.5.3:
- version "6.8.3"
- resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-6.8.3.tgz#208f46b96ced2859e2a3465eef8125751e99e4ee"
- integrity sha512-IsYcATD4fodv9BiwWBwiBHE50+IyvhpPTi+jIab4fQZLbDPJnN7YXnJ+/2oMXDJ94n+PnUs4wklr9pg8TNdOrQ==
+ version "6.8.6"
+ resolved "https://registry.yarnpkg.com/react-hook-form/-/react-hook-form-6.8.6.tgz#c82b38b01e0a77689214c3ceb873eab9405d27a0"
+ integrity sha512-ZCp7Y+IrlsQma08uy3H6l/qF7dZWqAWMkZ4vVbHVfh1EHjsO1SwU7aYVHgJSQpriHtEdGszCW8NS/aujGsLk0g==
react-hotkeys@2.0.0:
version "2.0.0"
@@ -16370,6 +16392,13 @@ serialize-javascript@^4.0.0:
dependencies:
randombytes "^2.1.0"
+serialize-javascript@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4"
+ integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==
+ dependencies:
+ randombytes "^2.1.0"
+
serve-favicon@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/serve-favicon/-/serve-favicon-2.5.0.tgz#935d240cdfe0f5805307fdfe967d88942a2cbcf0"
@@ -17472,11 +17501,12 @@ temp-write@^4.0.0:
temp-dir "^1.0.0"
uuid "^3.3.2"
-tempy@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.6.0.tgz#65e2c35abc06f1124a97f387b08303442bde59f3"
- integrity sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==
+tempy@^0.7.0:
+ version "0.7.1"
+ resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.7.1.tgz#5a654e6dbd1747cdd561efb112350b55cd9c1d46"
+ integrity sha512-vXPxwOyaNVi9nyczO16mxmHGpl6ASC5/TVhRRHpqeYHvKQm58EaWNvZXxAhR0lYYnBOQFjXjhzeLsaXdjxLjRg==
dependencies:
+ del "^6.0.0"
is-stream "^2.0.0"
temp-dir "^2.0.0"
type-fest "^0.16.0"
@@ -17987,9 +18017,10 @@ undefsafe@^2.0.2:
dependencies:
debug "^2.2.0"
-"undici@git://github.com/nodejs/undici.git#e76f6a37836537f08c2d9b7d8805d6ff21d1e744":
- version "1.3.1"
- resolved "git://github.com/nodejs/undici.git#e76f6a37836537f08c2d9b7d8805d6ff21d1e744"
+undici@2.0.5:
+ version "2.0.5"
+ resolved "https://registry.yarnpkg.com/undici/-/undici-2.0.5.tgz#b604e203184002d2ecf6524581ac994346700a09"
+ integrity sha512-KluDT7X78oGS+/3bxwGE06e/4x4wbuK7TNmTMLPJNmEOkzrLGBMwAnWMxm3PukR9BnB7k20IzOpGjl90AltwFQ==
unfetch@^4.1.0:
version "4.1.0"
@@ -18258,10 +18289,10 @@ utils-merge@1.0.1:
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=
-uuid@8.1.0:
- version "8.1.0"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.1.0.tgz#6f1536eb43249f473abc6bd58ff983da1ca30d8d"
- integrity sha512-CI18flHDznR0lq54xBycOVmphdCYnQLKn8abKn7PXUiKUGdEd+/l9LWNJmugXel4hXq7S+RMNl34ecyC9TntWg==
+uuid@8.3.0, uuid@^8.0.0, uuid@^8.3.0:
+ version "8.3.0"
+ resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.0.tgz#ab738085ca22dc9a8c92725e459b1d507df5d6ea"
+ integrity sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==
uuid@^3.0.1, uuid@^3.1.0, uuid@^3.3.2, uuid@^3.4.0:
version "3.4.0"
@@ -18273,11 +18304,6 @@ uuid@^7.0.3:
resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b"
integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg==
-uuid@^8.0.0, uuid@^8.3.0:
- version "8.3.0"
- resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.0.tgz#ab738085ca22dc9a8c92725e459b1d507df5d6ea"
- integrity sha512-fX6Z5o4m6XsXBdli9g7DtWgAx+osMsRRZFKma1mIUsLCz6vRvv+pz5VNbyu9UEDzpMWulZfvpgb/cmDXVulYFQ==
-
v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745"
@@ -19067,7 +19093,7 @@ yargs@^14.2.2:
y18n "^4.0.0"
yargs-parser "^15.0.1"
-yargs@^15.3.1, yargs@^15.4.1:
+yargs@^15.3.1:
version "15.4.1"
resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8"
integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==