From 04820ebd2da25ba5723d30586c4ff5b95029efe9 Mon Sep 17 00:00:00 2001 From: Kurt Hutten Date: Sat, 5 Dec 2020 18:06:07 +1100 Subject: [PATCH] Revert "issue-129 Add custom auth ui/ux" This reverts commit fc4906757a1e5642822f5e0a4df10784dbaaebc1. --- api/src/functions/identity-signup.js | 6 +- api/src/lib/auth.js | 2 +- redwood.toml | 1 - web/identity-test.json | 15 -- web/package.json | 3 +- web/src/Routes.js | 3 - web/src/components/InputText/InputText.js | 2 +- .../components/InputTextForm/InputTextForm.js | 36 ---- .../InputTextForm/InputTextForm.stories.js | 7 - .../InputTextForm/InputTextForm.test.js | 11 -- .../LandingSection/LandingSection.js | 20 +- web/src/components/LoginModal/LoginModal.js | 183 ------------------ .../LoginModal/LoginModal.stories.js | 7 - .../components/LoginModal/LoginModal.test.js | 11 -- web/src/index.js | 12 +- web/src/layouts/MainLayout/MainLayout.js | 50 +---- .../AccountRecoveryPage.js | 67 ------- .../AccountRecoveryPage.stories.js | 7 - .../AccountRecoveryPage.test.js | 11 -- .../UpdatePasswordPage/UpdatePasswordPage.js | 82 -------- .../UpdatePasswordPage.stories.js | 7 - .../UpdatePasswordPage.test.js | 11 -- yarn.lock | 20 +- 23 files changed, 26 insertions(+), 548 deletions(-) delete mode 100644 web/identity-test.json delete mode 100644 web/src/components/InputTextForm/InputTextForm.js delete mode 100644 web/src/components/InputTextForm/InputTextForm.stories.js delete mode 100644 web/src/components/InputTextForm/InputTextForm.test.js delete mode 100644 web/src/components/LoginModal/LoginModal.js delete mode 100644 web/src/components/LoginModal/LoginModal.stories.js delete mode 100644 web/src/components/LoginModal/LoginModal.test.js delete mode 100644 web/src/pages/AccountRecoveryPage/AccountRecoveryPage.js delete mode 100644 web/src/pages/AccountRecoveryPage/AccountRecoveryPage.stories.js delete mode 100644 web/src/pages/AccountRecoveryPage/AccountRecoveryPage.test.js delete mode 100644 web/src/pages/UpdatePasswordPage/UpdatePasswordPage.js delete mode 100644 web/src/pages/UpdatePasswordPage/UpdatePasswordPage.stories.js delete mode 100644 web/src/pages/UpdatePasswordPage/UpdatePasswordPage.test.js diff --git a/api/src/functions/identity-signup.js b/api/src/functions/identity-signup.js index 361b195..326699b 100644 --- a/api/src/functions/identity-signup.js +++ b/api/src/functions/identity-signup.js @@ -18,7 +18,7 @@ export const handler = async (req, _context) => { email: 'k.hutten@protonmail.ch', confirmation_sent_at: '2020-10-19T18:09:01Z', app_metadata: { provider: 'email' }, - user_metadata: { full_name: 'sick_dog', userName: 'hi bob' }, + user_metadata: { full_name: 'sick_dog' }, created_at: '2020-10-19T18:09:01Z', updated_at: '2020-10-19T18:09:01Z' } @@ -62,12 +62,12 @@ export const handler = async (req, _context) => { db.user.findOne({ where: { userName: seed }, }) - const userNameSeed = enforceAlphaNumeric(user?.user_metadata?.userName) + const userNameSeed = enforceAlphaNumeric(email.split('@')[0]) const userName = await generateUniqueString(userNameSeed, isUniqueCallback) // TODO maybe come up with a better default userName? const input = { email, userName, - name: user?.user_metadata?.full_name, + name: user.user_metadata && user.user_metadata.full_name, id: user.id, } await createUserInsecure({ input }) diff --git a/api/src/lib/auth.js b/api/src/lib/auth.js index cc3b24a..9fbd050 100644 --- a/api/src/lib/auth.js +++ b/api/src/lib/auth.js @@ -70,7 +70,7 @@ import { AuthenticationError, ForbiddenError, parseJWT } from '@redwoodjs/api' * return await db.user.findOne({ where: { decoded.email } }) * } * - * @example - User info is contained in the decoded token and roles extracted + * @example - User info is conatined in the decoded token and roles extracted * * export const getCurrentUser = async (decoded, { _token, _type }) => { * return { ...decoded, roles: parseJWT({ decoded }).roles } diff --git a/redwood.toml b/redwood.toml index 40dc34e..bb86088 100644 --- a/redwood.toml +++ b/redwood.toml @@ -9,7 +9,6 @@ port = 8910 apiProxyPath = "/.netlify/functions" includeEnvironmentVariables = ['GOOGLE_ANALYTICS_ID'] - experimentalFastRefresh = true [api] port = 8911 [browser] diff --git a/web/identity-test.json b/web/identity-test.json deleted file mode 100644 index aa3b40c..0000000 --- a/web/identity-test.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "event": "signup", - "instance_id": "403b7d63-17f9-48f1-a85f-3d6b41c7dad1", - "user": { - "id": "641222ee-3e61-4253-8c11-9f764779bcc5", - "aud": "", - "role": "", - "email": "k.hutten2@protonmail.ch", - "confirmation_sent_at": "2020-10-19T18:09:01Z", - "app_metadata": { "provider": "email" }, - "user_metadata": { "full_name": "sick_dog", "userName": "hi bob" }, - "created_at": "2020-10-19T18:09:01Z", - "updated_at": "2020-10-19T18:09:01Z" - } -} diff --git a/web/package.json b/web/package.json index 46c5198..b047ab0 100644 --- a/web/package.json +++ b/web/package.json @@ -14,7 +14,7 @@ }, "dependencies": { "@material-ui/core": "^4.11.0", - "@redwoodjs/auth": "^0.21.0", + "@redwoodjs/auth": "^0.20.0", "@redwoodjs/forms": "^0.20.0", "@redwoodjs/router": "^0.20.0", "@redwoodjs/web": "^0.20.0", @@ -22,7 +22,6 @@ "controlkit": "^0.1.9", "get-active-classes": "^0.0.11", "golden-layout": "^1.5.9", - "gotrue-js": "^0.9.27", "jquery": "^3.5.1", "monaco-editor": "^0.20.0", "monaco-editor-webpack-plugin": "^1.9.1", diff --git a/web/src/Routes.js b/web/src/Routes.js index 5ed59d0..51aa93e 100644 --- a/web/src/Routes.js +++ b/web/src/Routes.js @@ -32,9 +32,6 @@ const Routes = () => { ) return ( - - {/* */} - diff --git a/web/src/components/InputText/InputText.js b/web/src/components/InputText/InputText.js index 6ab83bc..aad823b 100644 --- a/web/src/components/InputText/InputText.js +++ b/web/src/components/InputText/InputText.js @@ -10,7 +10,7 @@ const InputText = ({ value, isEditable, onChange, className }) => { className )} > -
+
{ - const { errors } = useFormContext() - return ( - <> -
- -
- -
- - ) -} - -export default InputText diff --git a/web/src/components/InputTextForm/InputTextForm.stories.js b/web/src/components/InputTextForm/InputTextForm.stories.js deleted file mode 100644 index 26941e3..0000000 --- a/web/src/components/InputTextForm/InputTextForm.stories.js +++ /dev/null @@ -1,7 +0,0 @@ -import InputTextForm from './InputTextForm' - -export const generated = () => { - return -} - -export default { title: 'Components/InputTextForm' } diff --git a/web/src/components/InputTextForm/InputTextForm.test.js b/web/src/components/InputTextForm/InputTextForm.test.js deleted file mode 100644 index f649e50..0000000 --- a/web/src/components/InputTextForm/InputTextForm.test.js +++ /dev/null @@ -1,11 +0,0 @@ -import { render } from '@redwoodjs/testing' - -import InputTextForm from './InputTextForm' - -describe('InputTextForm', () => { - it('renders successfully', () => { - expect(() => { - render() - }).not.toThrow() - }) -}) diff --git a/web/src/components/LandingSection/LandingSection.js b/web/src/components/LandingSection/LandingSection.js index 5920f37..0d488cd 100644 --- a/web/src/components/LandingSection/LandingSection.js +++ b/web/src/components/LandingSection/LandingSection.js @@ -7,18 +7,17 @@ import { } from './mockEditorParts' import Svg from 'src/components/Svg' import OutBound from 'src/components/OutBound' +import { useAuth } from '@redwoodjs/auth' import ReactGA from 'react-ga' -import LoginModal from 'src/components/LoginModal' -import { useState } from 'react' const LandingSection = () => { - const [isLoginModalOpen, setIsLoginModalOpen] = useState(false) - const recordedLogin = async () => { + const { logIn } = useAuth() + const recordedLogin = () => { ReactGA.event({ category: 'login', action: 'landing section CTA', }) - setIsLoginModalOpen(true) + logIn() } return (
@@ -164,12 +163,10 @@ const LandingSection = () => { with more integrations coming soon.

@@ -182,11 +179,6 @@ const LandingSection = () => { />
- setIsLoginModalOpen(false)} - shouldStartWithSignup - /> ) } diff --git a/web/src/components/LoginModal/LoginModal.js b/web/src/components/LoginModal/LoginModal.js deleted file mode 100644 index 3ff0611..0000000 --- a/web/src/components/LoginModal/LoginModal.js +++ /dev/null @@ -1,183 +0,0 @@ -import { useState } from 'react' -import Dialog from '@material-ui/core/Dialog' -import Tab from '@material-ui/core/Tab' -import Tabs from '@material-ui/core/Tabs' -import InputTextForm from 'src/components/InputTextForm' -import OutBound from 'src/components/OutBound' -import { Form, Submit } from '@redwoodjs/forms' -import { useAuth } from '@redwoodjs/auth' -import { Link, routes } from '@redwoodjs/router' - -const LoginModal = ({ open, onClose, shouldStartWithSignup = false }) => { - const { logIn, signUp } = useAuth() - - const [tab, setTab] = useState(shouldStartWithSignup ? 0 : 1) - const onTabChange = (_, newValue) => { - setTab(newValue) - setError('') - } - const [checkBox, setCheckBox] = useState(true) - const [error, setError] = useState('') - - const onSubmitSignUp = async ({ email, password, name, userName }) => { - try { - setError('') - await signUp({ - email, - password, - remember: { full_name: name, userName }, - }) - onClose() - } catch (errorEvent) { - setError(errorEvent?.json?.error_description) - } - } - const onSubmitSignIn = async ({ email, password }) => { - try { - setError('') - await logIn({ email, password, remember: true }) - onClose() - } catch (errorEvent) { - setError(errorEvent?.json?.error_description) - } - } - return ( - -
- - - - - {error && ( -
- {error} -
- )} - {tab === 0 ? ( - - ) : ( - - )} -
-
- ) -} - -const Field = ({ name, type = 'text', validation }) => ( - <> - - {name}: - - - -) - -const HeroButton = ({ text }) => ( - - {text} - -) - -const SignInForm = ({ onSubmitSignIn }) => ( -
-
-
- - -
- - forgot your password? - -
- - -) - -const SignUpForm = ({ onSubmitSignUp, checkBox, setCheckBox }) => ( -
-
-
- - - - -
-
- setCheckBox(!checkBox)} - />{' '} - - Stay up-to-date with CadHub's progress with the founder's ( - - Kurt's - - ) newsletter - -
-
- - -) - -export default LoginModal diff --git a/web/src/components/LoginModal/LoginModal.stories.js b/web/src/components/LoginModal/LoginModal.stories.js deleted file mode 100644 index 9a62186..0000000 --- a/web/src/components/LoginModal/LoginModal.stories.js +++ /dev/null @@ -1,7 +0,0 @@ -import LoginModal from './LoginModal' - -export const generated = () => { - return -} - -export default { title: 'Components/LoginModal' } diff --git a/web/src/components/LoginModal/LoginModal.test.js b/web/src/components/LoginModal/LoginModal.test.js deleted file mode 100644 index 4da93e4..0000000 --- a/web/src/components/LoginModal/LoginModal.test.js +++ /dev/null @@ -1,11 +0,0 @@ -import { render } from '@redwoodjs/testing' - -import LoginModal from './LoginModal' - -describe('LoginModal', () => { - it('renders successfully', () => { - expect(() => { - render() - }).not.toThrow() - }) -}) diff --git a/web/src/index.js b/web/src/index.js index ee5d31a..20431b5 100644 --- a/web/src/index.js +++ b/web/src/index.js @@ -1,6 +1,5 @@ import { AuthProvider } from '@redwoodjs/auth' -import GoTrue from 'gotrue-js' - +import netlifyIdentity from 'netlify-identity-widget' import ReactDOM from 'react-dom' import { RedwoodProvider, FatalErrorBoundary } from '@redwoodjs/web' import FatalErrorPage from 'src/pages/FatalErrorPage' @@ -17,6 +16,8 @@ import './cascade/css/main.css' import 'monaco-editor/min/vs/editor/editor.main.css' import './index.css' +netlifyIdentity.init() + function initCascadeStudio() { // if ('serviceWorker' in navigator) { // navigator.serviceWorker.register('service-worker.js').then(function(registration) { @@ -48,14 +49,9 @@ function initCascadeStudio() { } initCascadeStudio() -const goTrueClient = new GoTrue({ - APIUrl: 'https://cadhub.xyz/.netlify/identity', - setCookie: true, -}) - ReactDOM.render( - + diff --git a/web/src/layouts/MainLayout/MainLayout.js b/web/src/layouts/MainLayout/MainLayout.js index 675e7de..b3da63c 100644 --- a/web/src/layouts/MainLayout/MainLayout.js +++ b/web/src/layouts/MainLayout/MainLayout.js @@ -1,12 +1,12 @@ import { useState, useEffect } from 'react' -import { Link, routes, navigate } from '@redwoodjs/router' +import { Link, routes } from '@redwoodjs/router' import { useAuth } from '@redwoodjs/auth' -import { Flash, useQuery, useFlash } from '@redwoodjs/web' +import { Flash } from '@redwoodjs/web' import Tooltip from '@material-ui/core/Tooltip' +import { useQuery } from '@redwoodjs/web' import Popover from '@material-ui/core/Popover' import { getActiveClasses } from 'get-active-classes' import { useLocation } from '@redwoodjs/router' -import LoginModal from 'src/components/LoginModal' import ReactGA from 'react-ga' export const QUERY = gql` @@ -26,13 +26,11 @@ let previousSubmission = '' let previousUserID = '' const MainLayout = ({ children }) => { - const { logOut, isAuthenticated, currentUser, client } = useAuth() - const { addMessage } = useFlash() + const { logIn, logOut, isAuthenticated, currentUser } = useAuth() const { data, loading } = useQuery(QUERY, { skip: !currentUser?.sub, variables: { id: currentUser?.sub }, }) - const [isLoginModalOpen, setIsLoginModalOpen] = useState(false) const [isOpen, setIsOpen] = useState(false) const [anchorEl, setAnchorEl] = useState(null) const [popoverId, setPopoverId] = useState(undefined) @@ -61,7 +59,7 @@ const MainLayout = ({ children }) => { category: 'login', action: 'navbar login', }) - setIsLoginModalOpen(true) + logIn() } const { pathname, params } = useLocation() @@ -87,38 +85,6 @@ const MainLayout = ({ children }) => { previousUserID = currentUser } }, [data, currentUser, isAuthenticated]) - const hash = window.location.hash - useEffect(() => { - const [key, token] = hash.slice(1).split('=') - if (key === 'confirmation_token') { - console.log('confirming with', token) - client - .confirm(token, true) - .then(() => { - addMessage('Email confirmed', { classes: 'rw-flash-success' }) - }) - .catch(() => { - addMessage('Problem confirming email', { - classes: 'bg-red-300 text-red-900', - }) - }) - } else if (key === 'recovery_token') { - // http://localhost:8910/#recovery_token=LwsC-KpgmiDwGo-ZcGH0tA - // https://mandrillapp.com/track/click/31128206/cadhub.xyz?p=eyJzIjoiWFlFbDk5YTVYU0FOSmEtZ3ZtUXlDSW13QURrIiwidiI6MSwicCI6IntcInVcIjozMTEyODIwNixcInZcIjoxLFwidXJsXCI6XCJodHRwczpcXFwvXFxcL2NhZGh1Yi54eXpcXFwvI3JlY292ZXJ5X3Rva2VuPUx3c0MtS3BnbWlEd0dvLVpjR0gwdEFcIixcImlkXCI6XCJjODU1ZWM1MjZiZmQ0Y2JmYmUyNmM4OTk2ZGU4ODczOFwiLFwidXJsX2lkc1wiOltcIjJkMjljMDI0NTY5MzcxODcxMmI0ODA0M2U3MDYyOTA1ZDc1NzVkNjlcIl19In0 - // #recovery_token=LwsC-KpgmiDwGo-ZcGH0tA - // navigate(routes.updatePassword({ recoveryToken: token })) - client - .recover(token, true) - .then(() => { - navigate(routes.updatePassword()) - }) - .catch(() => { - addMessage('Problem recovering account', { - classes: 'bg-red-300 text-red-900', - }) - }) - } - }, [hash, client]) // complaining about not having addMessage, however adding it puts useEffect into a loop return ( <>
@@ -232,11 +198,7 @@ const MainLayout = ({ children }) => { )}
- - setIsLoginModalOpen(false)} - /> +
{children}
) diff --git a/web/src/pages/AccountRecoveryPage/AccountRecoveryPage.js b/web/src/pages/AccountRecoveryPage/AccountRecoveryPage.js deleted file mode 100644 index d7b327b..0000000 --- a/web/src/pages/AccountRecoveryPage/AccountRecoveryPage.js +++ /dev/null @@ -1,67 +0,0 @@ -import { routes, navigate } from '@redwoodjs/router' -import { useAuth } from '@redwoodjs/auth' -import { Form, Submit } from '@redwoodjs/forms' -import { useFlash } from '@redwoodjs/web' - -import InputTextForm from 'src/components/InputTextForm' -import MainLayout from 'src/layouts/MainLayout' -import Seo from 'src/components/Seo/Seo' - -const AccountRecoveryPage = () => { - const { addMessage } = useFlash() - const { client } = useAuth() - const onSubmit = ({ email }) => { - client - .requestPasswordRecovery(email) - .then(() => { - addMessage('Email sent', { classes: 'rw-flash-success' }) - setTimeout(() => { - navigate(routes.home()) - }, 500) - }) - .catch(() => { - addMessage('Problem sending email', { - classes: 'bg-red-300 text-red-900', - }) - }) - } - return ( - - - -
-

Send recovery email

-
-
- - email: - - -
- - Send email - -
-
-
- ) -} - -export default AccountRecoveryPage diff --git a/web/src/pages/AccountRecoveryPage/AccountRecoveryPage.stories.js b/web/src/pages/AccountRecoveryPage/AccountRecoveryPage.stories.js deleted file mode 100644 index 4c577ca..0000000 --- a/web/src/pages/AccountRecoveryPage/AccountRecoveryPage.stories.js +++ /dev/null @@ -1,7 +0,0 @@ -import AccountRecoveryPage from './AccountRecoveryPage' - -export const generated = () => { - return -} - -export default { title: 'Pages/AccountRecoveryPage' } diff --git a/web/src/pages/AccountRecoveryPage/AccountRecoveryPage.test.js b/web/src/pages/AccountRecoveryPage/AccountRecoveryPage.test.js deleted file mode 100644 index a1b04a5..0000000 --- a/web/src/pages/AccountRecoveryPage/AccountRecoveryPage.test.js +++ /dev/null @@ -1,11 +0,0 @@ -import { render } from '@redwoodjs/testing' - -import AccountRecoveryPage from './AccountRecoveryPage' - -describe('AccountRecoveryPage', () => { - it('renders successfully', () => { - expect(() => { - render() - }).not.toThrow() - }) -}) diff --git a/web/src/pages/UpdatePasswordPage/UpdatePasswordPage.js b/web/src/pages/UpdatePasswordPage/UpdatePasswordPage.js deleted file mode 100644 index d198ee0..0000000 --- a/web/src/pages/UpdatePasswordPage/UpdatePasswordPage.js +++ /dev/null @@ -1,82 +0,0 @@ -import { routes, navigate } from '@redwoodjs/router' -import { useAuth } from '@redwoodjs/auth' -import { Form, Submit } from '@redwoodjs/forms' -import { useFlash } from '@redwoodjs/web' - -import InputTextForm from 'src/components/InputTextForm' -import MainLayout from 'src/layouts/MainLayout' -import Seo from 'src/components/Seo/Seo' - -const UpdatePasswordPage = () => { - const { addMessage } = useFlash() - const { client } = useAuth() - const onSubmit = ({ password, confirm }) => { - if (password !== confirm) { - addMessage("Passwords don't match, try again", { - classes: 'bg-red-300 text-red-900', - }) - return - } - client - .currentUser() - .update({ password }) - .then(() => { - addMessage('Email updated', { classes: 'rw-flash-success' }) - setTimeout(() => { - navigate(routes.home()) - }, 500) - }) - .catch(() => { - addMessage('Problem updating email', { - classes: 'bg-red-300 text-red-900', - }) - }) - } - return ( - - - -
-

Reset Password

-
-
- - password: - - - - confirm: - - -
- - Update - -
-
-
- ) -} - -export default UpdatePasswordPage diff --git a/web/src/pages/UpdatePasswordPage/UpdatePasswordPage.stories.js b/web/src/pages/UpdatePasswordPage/UpdatePasswordPage.stories.js deleted file mode 100644 index 1633909..0000000 --- a/web/src/pages/UpdatePasswordPage/UpdatePasswordPage.stories.js +++ /dev/null @@ -1,7 +0,0 @@ -import UpdatePasswordPage from './UpdatePasswordPage' - -export const generated = () => { - return -} - -export default { title: 'Pages/UpdatePasswordPage' } diff --git a/web/src/pages/UpdatePasswordPage/UpdatePasswordPage.test.js b/web/src/pages/UpdatePasswordPage/UpdatePasswordPage.test.js deleted file mode 100644 index d589bee..0000000 --- a/web/src/pages/UpdatePasswordPage/UpdatePasswordPage.test.js +++ /dev/null @@ -1,11 +0,0 @@ -import { render } from '@redwoodjs/testing' - -import UpdatePasswordPage from './UpdatePasswordPage' - -describe('UpdatePasswordPage', () => { - it('renders successfully', () => { - expect(() => { - render() - }).not.toThrow() - }) -}) diff --git a/yarn.lock b/yarn.lock index fe2cbd8..36dde25 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2366,10 +2366,10 @@ lodash.omitby "^4.6.0" merge-graphql-schemas "^1.7.6" -"@redwoodjs/auth@^0.21.0": - version "0.21.0" - resolved "https://registry.yarnpkg.com/@redwoodjs/auth/-/auth-0.21.0.tgz#967deef0d0421ea9f6bc205857ad9265d2f5df55" - integrity sha512-o3HuRTs79BqmnZX2zvK6+ffebxJE+T/nqwDDdOmCjXUitSsYbLSJkG4ffUuMtSWCFCxf/ytaFB245nS8Vin3XQ== +"@redwoodjs/auth@^0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@redwoodjs/auth/-/auth-0.20.0.tgz#c08c0b735a0b09ef84dc6d357fa2803d61f1d389" + integrity sha512-M1rPtiXzU7YagQ120zEkp5qvJruWRcFLUfBhgexGYgnEkqFIKFGLQL9pBywoZ6kxNjI7x/pbghz6FS7H/lzw/g== "@redwoodjs/cli@^0.20.0": version "0.20.0" @@ -8671,13 +8671,6 @@ good-listener@^1.2.2: dependencies: delegate "^3.1.2" -gotrue-js@^0.9.27: - version "0.9.27" - resolved "https://registry.yarnpkg.com/gotrue-js/-/gotrue-js-0.9.27.tgz#ed01b47e97781f10f26458ff77d83d97bcc65e08" - integrity sha512-XSQ9XGELrnf6bKYaGk+2z1E6aW6+wZ3S6ns3JQz9tXesBuwVPDv/xOTTZ/Qrtu85GJgxTjhJH447w09a73Tneg== - dependencies: - micro-api-client "^3.2.1" - graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4: version "4.2.4" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" @@ -11338,11 +11331,6 @@ methods@~1.1.2: resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= -micro-api-client@^3.2.1: - version "3.3.0" - resolved "https://registry.yarnpkg.com/micro-api-client/-/micro-api-client-3.3.0.tgz#52dd567d322f10faffe63d19d4feeac4e4ffd215" - integrity sha512-y0y6CUB9RLVsy3kfgayU28746QrNMpSm9O/AYGNsBgOkJr/X/Jk0VLGoO8Ude7Bpa8adywzF+MzXNZRFRsNPhg== - microevent.ts@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0"