chore: use cms w/ open authoring for site edits (#3287)

This commit is contained in:
Shawn Erquhart 2020-02-19 16:55:10 -05:00 committed by GitHub
parent bcdd68045d
commit 783440e370
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 411 additions and 305 deletions

View File

@ -1,42 +1,15 @@
const pkg = require('./package.json');
const fs = require('fs');
const yaml = require('js-yaml');
const staticConfig = yaml.safeLoad(fs.readFileSync('./site.yml', 'utf8'));
module.exports = {
siteMetadata: {
title: 'Netlify CMS | Open-Source Content Management System',
description: 'Open source content management for your Git workflow',
siteUrl: pkg.homepage,
menu: {
docs: [
{
name: 'start',
title: 'Quick Start',
},
{
name: 'features',
title: 'Features',
},
{
name: 'reference',
title: 'Reference',
},
{
name: 'media',
title: 'Media',
},
{
name: 'guides',
title: 'Guides',
},
{
name: 'customization',
title: 'Customization',
},
{
name: 'contributing',
title: 'Contributing',
},
],
},
menu: staticConfig.menu,
},
plugins: [
{

View File

@ -15,24 +15,25 @@
"dependencies": {
"@emotion/core": "^10.0.27",
"@emotion/styled": "^10.0.27",
"dayjs": "^1.8.19",
"dayjs": "^1.8.20",
"emotion-theming": "^10.0.27",
"gatsby": "2.19.12",
"gatsby": "2.19.18",
"gatsby-plugin-catch-links": "2.1.25",
"gatsby-plugin-emotion": "^4.1.22",
"gatsby-plugin-manifest": "2.2.41",
"gatsby-plugin-netlify-cms": "^4.1.38",
"gatsby-plugin-netlify-cms": "^4.1.40",
"gatsby-plugin-react-helmet": "3.1.22",
"gatsby-remark-autolink-headers": "2.1.24",
"gatsby-remark-external-links": "^0.0.4",
"gatsby-remark-prismjs": "3.3.31",
"gatsby-source-filesystem": "2.1.48",
"gatsby-transformer-json": "2.2.26",
"gatsby-transformer-remark": "2.6.50",
"gatsby-transformer-yaml": "2.2.24",
"gatsby-transformer-remark": "2.6.52",
"gatsby-transformer-yaml": "2.2.25",
"js-yaml": "^3.13.1",
"lodash": "^4.17.15",
"moment": "^2.24.0",
"netlify-cms-app": "^2.11.13",
"netlify-cms-app": "^2.11.20",
"prismjs": "^1.19.0",
"react": "^16.12.0",
"react-dom": "^16.12.0",
@ -43,7 +44,7 @@
},
"devDependencies": {
"babel-plugin-prismjs": "^2.0.1",
"babel-preset-gatsby": "^0.2.28",
"babel-preset-gatsby": "^0.2.29",
"eslint": "^6.8.0",
"eslint-plugin-import": "^2.20.1"
},

16
website/site.yml Normal file
View File

@ -0,0 +1,16 @@
menu:
docs:
- name: start
title: Quick Start
- name: features
title: Features
- name: reference
title: Reference
- name: media
title: Media
- name: guides
title: Guides
- name: customization
title: Customization
- name: contributing
title: Contributing

View File

@ -2,92 +2,135 @@ import React from 'react';
import CMS from 'netlify-cms-app';
import dayjs from 'dayjs';
import Prism from 'prismjs';
import { CacheProvider } from '@emotion/core';
import createCache from '@emotion/cache';
import { BlogPostTemplate } from '../templates/blog-post';
import { LayoutTemplate as Layout } from '../components/layout';
import { DocsTemplate } from '../templates/doc-page';
import WidgetDoc from '../components/widget-doc';
import WhatsNew from '../components/whats-new';
import Notification from '../components/notification';
import Community from '../components/community';
import siteConfig from '../../site.yml';
const withHighlight = WrappedComponent =>
class Highlight extends React.Component {
constructor(props) {
super(props);
this.ref = React.createRef();
}
let emotionCache;
function getEmotionCache() {
const previewPaneIframe = document.querySelector('iframe[class*="PreviewPaneFrame"]');
const previewPaneHeadEl = previewPaneIframe.contentWindow.document.querySelector('head');
if (!emotionCache || emotionCache.sheet.container !== previewPaneHeadEl) {
emotionCache = createCache({ container: previewPaneHeadEl });
}
return emotionCache;
}
highlight() {
Prism.highlightAllUnder(this.ref.current);
}
const PreviewContainer = ({ children, highlight }) => (
<CacheProvider value={getEmotionCache()}>
<Layout>
{highlight ? <Highlight>{children}</Highlight> : children}
</Layout>
</CacheProvider>
);
componentDidMount() {
this.highlight();
}
class Highlight extends React.Component {
constructor(props) {
super(props);
this.ref = React.createRef();
}
componentDidUpdate() {
this.highlight();
}
highlight() {
setTimeout(() => {
if (this.ref.current) {
Prism.highlightAllUnder(this.ref.current);
}
})
}
render() {
return (
<div className="language-markup" ref={this.ref}>
<WrappedComponent {...this.props} />
</div>
);
}
};
componentDidMount() {
this.highlight();
}
componentDidUpdate() {
this.highlight();
}
render() {
return (
<div ref={this.ref}>
{this.props.children}
</div>
);
}
};
const BlogPostPreview = ({ entry, widgetFor }) => {
const data = entry.get('data');
return (
<BlogPostTemplate
title={data.get('title')}
author={data.get('author')}
date={dayjs(data.get('date')).format('MMMM D, YYYY')}
body={widgetFor('body')}
/>
<PreviewContainer highlight={true}>
<BlogPostTemplate
title={data.get('title')}
author={data.get('author')}
date={dayjs(data.get('date')).format('MMMM D, YYYY')}
body={widgetFor('body')}
/>
</PreviewContainer>
);
};
const CommunityPreview = ({ entry }) => {
const { title, headline, subhead, sections } = entry.get('data').toJS();
return <Community title={title} headline={headline} subhead={subhead} sections={sections} />;
return (
<PreviewContainer>
<Community title={title} headline={headline} subhead={subhead} sections={sections} />
</PreviewContainer>
);
};
const DocsPreview = ({ entry, widgetFor }) => (
<DocsTemplate title={entry.getIn(['data', 'title'])} body={widgetFor('body')} />
<PreviewContainer highlight={true}>
<DocsTemplate title={entry.getIn(['data', 'title'])} body={widgetFor('body')} />
</PreviewContainer>
);
const WidgetDocPreview = ({ entry, widgetFor }) => (
<WidgetDoc visible={true} label={entry.get('label')} body={widgetFor('body')} />
<PreviewContainer highlight={true}>
<WidgetDoc visible={true} label={entry.get('label')} body={widgetFor('body')} />
</PreviewContainer>
);
const ReleasePreview = ({ entry }) => (
<WhatsNew
updates={entry
.getIn(['data', 'updates'])
.map(release => ({
version: release.get('version'),
date: dayjs(release.get('date')).format('MMMM D, YYYY'),
description: release.get('description'),
}))
.toJS()}
/>
<PreviewContainer highlight={true}>
<WhatsNew
updates={entry
.getIn(['data', 'updates'])
.map(release => ({
version: release.get('version'),
date: dayjs(release.get('date')).format('MMMM D, YYYY'),
description: release.get('description'),
}))
.toJS()}
/>
</PreviewContainer>
);
const NotificationPreview = ({ entry }) =>
entry
.getIn(['data', 'notifications'])
.filter(notif => notif.get('published'))
.map((notif, idx) => (
<Notification key={idx} url={notif.get('url')} loud={notif.get('loud')}>
{notif.get('message')}
</Notification>
));
const NotificationPreview = ({ entry }) => (
<PreviewContainer>
{entry
.getIn(['data', 'notifications'])
.filter(notif => notif.get('published'))
.map((notif, idx) => (
<Notification key={idx} url={notif.get('url')} loud={notif.get('loud')}>
{notif.get('message')}
</Notification>
))
}
</PreviewContainer>
);
CMS.registerPreviewTemplate('blog', withHighlight(BlogPostPreview));
CMS.registerPreviewTemplate('docs', withHighlight(DocsPreview));
CMS.registerPreviewTemplate('widget_docs', withHighlight(WidgetDocPreview));
CMS.registerPreviewTemplate('blog', BlogPostPreview);
siteConfig.menu.docs.forEach(group => {
CMS.registerPreviewTemplate(`docs_${group.name}`, DocsPreview);
});
CMS.registerPreviewTemplate('widget_docs', WidgetDocPreview);
CMS.registerPreviewTemplate('releases', ReleasePreview);
CMS.registerPreviewTemplate('notifications', NotificationPreview);
CMS.registerPreviewTemplate('community', CommunityPreview);

View File

@ -1,7 +1,7 @@
import React from 'react';
import { css } from '@emotion/core';
const EditLink = ({ path }) => (
const EditLink = ({ collection, filename }) => (
<div
css={css`
float: right;
@ -15,7 +15,7 @@ const EditLink = ({ path }) => (
}
`}
>
<a href={`https://github.com/netlify/netlify-cms/blob/master/website/content/${path}`}>
<a href={`/admin/#/edit/${collection}/${filename}`} target="_blank">
<svg
version="1.1"
id="pencil"

View File

@ -28,6 +28,13 @@ const LAYOUT_QUERY = graphql`
}
`;
export const LayoutTemplate = ({ children }) => (
<ThemeProvider theme={theme}>
<GlobalStyles />
{children}
</ThemeProvider>
)
const Layout = ({ hasPageHero, children }) => {
return (
<StaticQuery query={LAYOUT_QUERY}>
@ -35,8 +42,12 @@ const Layout = ({ hasPageHero, children }) => {
const { title, description } = data.site.siteMetadata;
return (
<ThemeProvider theme={theme}>
<GlobalStyles />
<LayoutTemplate
title={title}
description={description}
hasPageHero={hasPageHero}
footerButtons={data.footer.childDataYaml.footer.buttons}
>
<Helmet defaultTitle={title} titleTemplate={`%s | ${title}`}>
<meta name="description" content={description} />
<link
@ -47,7 +58,7 @@ const Layout = ({ hasPageHero, children }) => {
<Header hasHeroBelow={hasPageHero} />
{children}
<Footer buttons={data.footer.childDataYaml.footer.buttons} />
</ThemeProvider>
</LayoutTemplate>
);
}}
</StaticQuery>

View File

@ -125,12 +125,11 @@ const StyledMarkdown = styled.div`
}
`;
const Markdown = ({ html }) => {
if (React.isValidElement(html)) {
return html;
} else {
return <StyledMarkdown dangerouslySetInnerHTML={{ __html: html }} />;
const Markdown = ({ body, html }) => {
if (body) {
return <StyledMarkdown>{body}</StyledMarkdown>
}
return <StyledMarkdown dangerouslySetInnerHTML={{ __html: html }} />;
};
export default Markdown;

View File

@ -15,12 +15,12 @@ const SidebarLayout = ({ sidebar, children }) => (
css={css`
${mq[1]} {
display: grid;
grid-template-columns: 300px 1fr;
grid-template-columns: ${sidebar ? '300px' : ''} minmax(0, 1fr);
grid-gap: 2rem;
}
`}
>
<div>{sidebar}</div>
{sidebar && <div>{sidebar}</div>}
<Children>{children}</Children>
</Page>
);

View File

@ -10,7 +10,7 @@ const WidgetDoc = ({ visible, label, body, html }) => {
return (
<div>
<h3>{label}</h3>
<Markdown html={body || html} />
<Markdown html={html} body={body} />
</div>
);
};

View File

@ -24,7 +24,7 @@ export const BlogPostTemplate = ({ title, author, date, body, html }) => (
<MetaInfo>
by {author} on {date}
</MetaInfo>
<Markdown html={body || html} />
<Markdown body={body} html={html} />
</Page>
</Container>
);

View File

@ -4,13 +4,17 @@ import { graphql } from 'gatsby';
import 'prismjs/themes/prism-tomorrow.css';
import Layout from '../components/layout';
import EditLink from '../components/edit-link';
import Widgets from '../components/widgets';
import DocsNav from '../components/docs-nav';
import Container from '../components/container';
import SidebarLayout from '../components/sidebar-layout';
import EditLink from '../components/edit-link';
import Widgets from '../components/widgets';
import Markdown from '../components/markdown';
function filenameFromPath(p) {
return p.split('/').slice(-1)[0].split('.')[0];
}
const toMenu = (menu, nav) =>
menu.map(group => ({
title: group.title,
@ -25,7 +29,7 @@ const DocsSidebar = ({ docsNav, location }) => (
export const DocsTemplate = ({
title,
editLinkPath,
filename,
body,
html,
showWidgets,
@ -33,15 +37,18 @@ export const DocsTemplate = ({
showSidebar,
docsNav,
location,
group,
}) => (
<Container size="md">
<SidebarLayout
sidebar={<div>{showSidebar && <DocsSidebar docsNav={docsNav} location={location} />}</div>}
sidebar={showSidebar && <DocsSidebar docsNav={docsNav} location={location} />}
>
<article data-docs-content>
{editLinkPath && <EditLink path={editLinkPath} />}
{filename && (
<EditLink collection={`docs_${group}`} filename={filename} />
)}
<h1>{title}</h1>
<Markdown html={body || html} />
<Markdown body={body} html={html} />
{showWidgets && <Widgets widgets={widgets} />}
</article>
</SidebarLayout>
@ -49,22 +56,25 @@ export const DocsTemplate = ({
);
const DocPage = ({ data, location }) => {
const { nav, page, widgets, menu } = data;
const { nav, page: { frontmatter, html, fields }, widgets, menu } = data;
const { title, group } = frontmatter
const docsNav = toMenu(menu.siteMetadata.menu.docs, nav);
const showWidgets = location.pathname.indexOf('/docs/widgets') !== -1;
const filename = filenameFromPath(fields.path);
return (
<Layout>
<Helmet title={page.frontmatter.title} />
<Helmet title={title} />
<DocsTemplate
title={page.frontmatter.title}
editLinkPath={page.fields.path}
html={page.html}
title={title}
filename={filename}
html={html}
showWidgets={showWidgets}
widgets={widgets}
docsNav={docsNav}
location={location}
group={group}
showSidebar
/>
</Layout>
@ -79,6 +89,7 @@ export const pageQuery = graphql`
}
frontmatter {
title
group
}
html
}

View File

@ -2,71 +2,116 @@ backend:
name: github
repo: netlify/netlify-cms
squash_merges: true
open_authoring: true
site_url: "https://www.netlifycms.org"
local_backend: true
site_url: https://www.netlifycms.org
publish_mode: editorial_workflow
media_folder: "website/static/img" # Folder where user uploaded files should go
public_folder: "img"
media_folder: website/static/img
public_folder: img
collections: # A list of collections the CMS should be able to edit
- name: "docs" # Used in routes, ie.: /admin/collections/:slug/edit
label: "Docs" # Used in the UI, ie.: "New Post"
folder: "website/content/docs" # The path to the folder where the documents are stored
create: true # Allow users to create new documents in this collection
preview_path: "docs/{{slug}}"
fields: # The fields each document in this collection have
- {label: "Title", name: "title", widget: "string", tagname: "h1"}
- {label: "Group", name: "group", widget: "string"}
- {label: "Weight", name: "weight", widget: "number"}
- {label: "Body", name: "body", widget: "markdown"}
- name: "widget_docs" # Used in routes, ie.: /admin/collections/:slug/edit
label: "Widget Docs" # Used in the UI, ie.: "New Post"
folder: "website/content/docs/widgets" # The path to the folder where the documents are stored
docs_collection: &docs_collection
folder: website/content/docs
create: true
preview_path: "docs/{{slug}}"
fields:
- { label: Title, name: title }
- { label: Group, name: group, widget: select, options: [start, features, reference, media, guides, customization, contributing] }
- { label: Weight, name: weight, widget: number }
- { label: Body, name: body, widget: markdown }
collections:
- <<: *docs_collection
name: docs_start
label: "Docs: Quick Start"
filter:
field: group
value: start
- <<: *docs_collection
name: docs_features
label: "Docs: Features"
filter:
field: group
value: features
- <<: *docs_collection
name: docs_reference
label: "Docs: Reference"
filter:
field: group
value: reference
- <<: *docs_collection
name: docs_media
label: "Docs: Media"
filter:
field: group
value: media
- <<: *docs_collection
name: docs_guides
label: "Docs: Guides"
filter:
field: group
value: guides
- <<: *docs_collection
name: docs_customization
label: "Docs: Customization"
filter:
field: group
value: customization
- <<: *docs_collection
name: docs_contributing
label: "Docs: Contributing"
filter:
field: group
value: contributing
- name: widget_docs
label: "Docs: Widgets"
folder: website/content/docs/widgets
preview_path: "docs/widgets/{{title}}"
create: true # Allow users to create new documents in this collection
fields: # The fields each document in this collection have
- {label: "Name", name: "title"}
- {label: "Label", name: "label"}
- {label: "Body", name: "body", widget: "markdown"}
- name: "blog"
label: "Blog"
label_singular: "Post"
folder: "website/content/blog"
create: true
fields:
- { label: Name, name: title }
- { label: Label, name: label }
- { label: Body, name: body, widget: markdown }
- name: blog
label: Blog
label_singular: Post
folder: website/content/blog
preview_path: "blog/{{year}}/{{month}}/{{title}}"
create: true
fields:
- {label: "Title", name: "title", widget: "string", tagname: "h1"}
- {label: "Author", name: "author", widget: "string"}
- {label: "Description (for blog list)", name: "description", widget: "text"}
- {label: "Meta Description (defaults to Description)", name: "meta_description", widget: "text", required: false}
- {label: "Twitter Image", name: "twitter_image", widget: "image"}
- {label: "Date", name: "date", widget: "date"}
- {label: "Body", name: "body", widget: "markdown"}
- { label: Title, name: title }
- { label: Author, name: author }
- { label: Description (for blog list), name: description, widget: text }
- { label: Meta Description (defaults to Description), name: meta_description, widget: text, required: false }
- { label: Twitter Image, name: twitter_image, widget: image }
- { label: Date, name: date, widget: date }
- { label: Body, name: body, widget: markdown }
- name: community
label: Community
files:
- name: community
label: Community
file: website/content/pages/community.md
preview_path: "community"
preview_path: community
fields:
- {label: Title, name: title}
- {label: Headline, name: headline}
- {label: Subheading, name: subhead}
- { label: Title, name: title }
- { label: Headline, name: headline }
- { label: Subheading, name: subhead }
- label: Sections
name: sections
widget: list
fields:
- {name: title, label: Title}
- { name: title, label: Title }
- name: channels
label: Channels
widget: list
fields:
- {name: title, label: Title}
- {name: url, label: URL}
- {name: description, label: Description}
- { name: title, label: Title }
- { name: url, label: URL }
- { name: description, label: Description }
- name: updates
label: Updates
files:
@ -78,9 +123,9 @@ collections: # A list of collections the CMS should be able to edit
label: Releases
widget: list
fields:
- {name: version, label: Version}
- {name: date, label: Date, widget: date}
- {name: description, label: Description}
- { name: version, label: Version }
- { name: date, label: Date, widget: date }
- { name: description, label: Description }
- name: notifications
label: Notifications
file: website/data/notifications.yml
@ -90,8 +135,8 @@ collections: # A list of collections the CMS should be able to edit
label: Notifications
widget: list
fields:
- {label: Title, name: title, widget: string, tagname: h1}
- {label: Published, name: published, widget: boolean}
- {label: Loud, name: loud, widget: boolean}
- {label: Message, name: message, widget: text}
- {label: URL, name: url}
- { label: Title, name: title }
- { label: Published, name: published, widget: boolean }
- { label: Loud, name: loud, widget: boolean }
- { label: Message, name: message, widget: text }
- { label: URL, name: url}

View File

@ -1200,16 +1200,15 @@
string-width "^2.0.0"
strip-ansi "^3"
"@reach/router@1.2.1":
version "1.2.1"
resolved "https://registry.yarnpkg.com/@reach/router/-/router-1.2.1.tgz#34ae3541a5ac44fa7796e5506a5d7274a162be4e"
integrity sha512-kTaX08X4g27tzIFQGRukaHmNbtMYDS3LEWIS8+l6OayGIw6Oyo1HIF/JzeuR2FoF9z6oV+x/wJSVSq4v8tcUGQ==
"@reach/router@^1.3.1":
version "1.3.1"
resolved "https://registry.yarnpkg.com/@reach/router/-/router-1.3.1.tgz#0a49f75fa9621323d6e21c803447bcfcde1713b2"
integrity sha512-Ov1j1J+pSgXliJHFL7XWhjyREwc6GxeWfgBTa5MMH5eRmYtHbPhaovba4xKo7aTVCg8fxkt2yDMNSpvwfUP+pA==
dependencies:
create-react-context "^0.2.1"
create-react-context "0.3.0"
invariant "^2.2.3"
prop-types "^15.6.1"
react-lifecycles-compat "^3.0.4"
warning "^3.0.0"
"@sindresorhus/is@^0.14.0":
version "0.14.0"
@ -2186,10 +2185,10 @@ babel-plugin-transform-react-remove-prop-types@^0.4.24:
resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a"
integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA==
babel-preset-gatsby@^0.2.28:
version "0.2.28"
resolved "https://registry.yarnpkg.com/babel-preset-gatsby/-/babel-preset-gatsby-0.2.28.tgz#6bd421e1a18115889e608b2a8fa5076205bacd1a"
integrity sha512-PnQgmGHTgGHgMmTeK1raV5rFk4puUX2bX0L7Ayqomi5xMQqQXLYOeE5bsaB1YIBpdFMdCUgbf9skX7vfqyy7hw==
babel-preset-gatsby@^0.2.29:
version "0.2.29"
resolved "https://registry.yarnpkg.com/babel-preset-gatsby/-/babel-preset-gatsby-0.2.29.tgz#cf50a2ec0e6d44fd715b559bfd5481c4221cab5c"
integrity sha512-asJV/UMq7riYiY4ZhMi83Mbhwwtkvhp9gmmJgJJSJyAWw/tTgAmYan6Udpco3P4Kvd91lj+f8kzXJHT0G2sdwQ==
dependencies:
"@babel/plugin-proposal-class-properties" "^7.7.4"
"@babel/plugin-proposal-nullish-coalescing-operator" "^7.7.4"
@ -2203,6 +2202,7 @@ babel-preset-gatsby@^0.2.28:
babel-plugin-dynamic-import-node "^2.3.0"
babel-plugin-macros "^2.8.0"
babel-plugin-transform-react-remove-prop-types "^0.4.24"
gatsby-core-utils "^1.0.28"
babel-runtime@^6.26.0:
version "6.26.0"
@ -3422,12 +3422,13 @@ create-react-class@^15.5.1, create-react-class@^15.5.2:
loose-envify "^1.3.1"
object-assign "^4.1.1"
create-react-context@^0.2.1:
version "0.2.3"
resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.2.3.tgz#9ec140a6914a22ef04b8b09b7771de89567cb6f3"
create-react-context@0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.3.0.tgz#546dede9dc422def0d3fc2fe03afe0bc0f4f7d8c"
integrity sha512-dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw==
dependencies:
fbjs "^0.8.0"
gud "^1.0.0"
warning "^4.0.3"
cross-fetch@2.2.2:
version "2.2.2"
@ -3695,10 +3696,10 @@ date-now@^0.1.4:
version "0.1.4"
resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
dayjs@^1.8.19:
version "1.8.19"
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.8.19.tgz#5117dc390d8f8e586d53891dbff3fa308f51abfe"
integrity sha512-7kqOoj3oQSmqbvtvGFLU5iYqies+SqUiEGNT0UtUPPxcPYgY1BrkXR0Cq2R9HYSimBXN+xHkEN4Hi399W+Ovlg==
dayjs@^1.8.20:
version "1.8.20"
resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.8.20.tgz#724a5cb6ad1f6fc066b0bd9a800dedcc7886f19e"
integrity sha512-mH0MCDxw6UCGJYxVN78h8ugWycZAO8thkj3bW6vApL5tS0hQplIDdAQcmbvl7n35H0AKdCJQaArTrIQw2xt4Qg==
debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.3, debug@^2.6.6, debug@^2.6.9:
version "2.6.9"
@ -4923,7 +4924,7 @@ faye-websocket@~0.11.1:
dependencies:
websocket-driver ">=0.5.1"
fbjs@^0.8.0, fbjs@^0.8.9:
fbjs@^0.8.9:
version "0.8.17"
resolved "https://registry.yarnpkg.com/fbjs/-/fbjs-0.8.17.tgz#c4d598ead6949112653d6588b01a5cdcd9f90fdd"
dependencies:
@ -5203,10 +5204,10 @@ fuzzy@^0.1.1:
resolved "https://registry.yarnpkg.com/fuzzy/-/fuzzy-0.1.3.tgz#4c76ec2ff0ac1a36a9dccf9a00df8623078d4ed8"
integrity sha1-THbsL/CsGjap3M+aAN+GIweNTtg=
gatsby-cli@^2.8.29:
version "2.8.29"
resolved "https://registry.yarnpkg.com/gatsby-cli/-/gatsby-cli-2.8.29.tgz#53dd79d2ff01d555570cd2a81a51c95be585bd7e"
integrity sha512-HVZmb22D+Qf24rceY37MEzaPOk7v3ffw/tzu8pFkG1IoHLIJumbo2LMSJRvnd2+SUMQf1ZIVQCmbdEuaJ9Fn1A==
gatsby-cli@^2.8.30:
version "2.8.30"
resolved "https://registry.yarnpkg.com/gatsby-cli/-/gatsby-cli-2.8.30.tgz#29655d05890d7c54b04d3fecd97446941e0c0507"
integrity sha512-dEGuvF91EwSzLwBV98NDihtn6e6uZedcPljlx9Mr7ZQLlOhGAVDcWR9KNq0Z1SWeRInwWc3cEdUJ6TUmPa308Q==
dependencies:
"@babel/code-frame" "^7.5.5"
"@babel/runtime" "^7.7.6"
@ -5235,7 +5236,7 @@ gatsby-cli@^2.8.29:
pretty-error "^2.1.1"
progress "^2.0.3"
prompts "^2.3.0"
react "^16.12.0"
react "^16.8.0"
redux "^4.0.4"
resolve-cwd "^2.0.0"
semver "^6.3.0"
@ -5259,10 +5260,10 @@ gatsby-core-utils@^1.0.28:
ci-info "2.0.0"
node-object-hash "^2.0.0"
gatsby-graphiql-explorer@^0.2.33:
version "0.2.33"
resolved "https://registry.yarnpkg.com/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-0.2.33.tgz#0414f50369c82f3b156fbb1b0968d81ca8bc8bc3"
integrity sha512-prc/OU9dcrQQDRswguLuRqlBLGNZO/oadRR0rhmxVPrTVps3RyX4VDYvGBzaMhSfr4tMNAVDYP5iPjaaQz+D8A==
gatsby-graphiql-explorer@^0.2.34:
version "0.2.34"
resolved "https://registry.yarnpkg.com/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-0.2.34.tgz#ed3e8406e7f263687727717481ccee9e5b4cb83c"
integrity sha512-r3JW4NPC69kRV8VTlDYrR9E9ROyw3Po4qKB5C067fE0bRhtU3DTSSf6MT+C97XS+JqKEZAaub0unptB//gnaCw==
dependencies:
"@babel/runtime" "^7.7.6"
@ -5315,10 +5316,10 @@ gatsby-plugin-manifest@2.2.41:
semver "^5.7.1"
sharp "^0.23.4"
gatsby-plugin-netlify-cms@^4.1.38:
version "4.1.38"
resolved "https://registry.yarnpkg.com/gatsby-plugin-netlify-cms/-/gatsby-plugin-netlify-cms-4.1.38.tgz#ddba90b931c9ba73d4906a40bde97aa3716cecc0"
integrity sha512-GqlZBbhHFwR/QIzPr3GlNjdJxYB8zvi6LUjTajBaUj7SX4e5brY9acCFHq8NmfSZc+875L5EV0U0XsiYt/yLpg==
gatsby-plugin-netlify-cms@^4.1.40:
version "4.1.40"
resolved "https://registry.yarnpkg.com/gatsby-plugin-netlify-cms/-/gatsby-plugin-netlify-cms-4.1.40.tgz#6c687d68d0252917f7cfccff896304905fb18857"
integrity sha512-24ShOOO6Q67Y+AGJ6aRa6ptucuZlUjDLtY1o+u8K4rFp7BmTSk29sakRaV0D9KCQ4WmDXDkUovwNNgDC7CsT7A==
dependencies:
"@pieh/friendly-errors-webpack-plugin" "1.7.0-chalk-2"
copy-webpack-plugin "^5.1.0"
@ -5441,10 +5442,10 @@ gatsby-transformer-json@2.2.26:
"@babel/runtime" "^7.7.6"
bluebird "^3.7.2"
gatsby-transformer-remark@2.6.50:
version "2.6.50"
resolved "https://registry.yarnpkg.com/gatsby-transformer-remark/-/gatsby-transformer-remark-2.6.50.tgz#5278c41279f58e2409ab61fa458e0d6d47cfc956"
integrity sha512-TeJ9wBoZB3xTengF8Dzt8+gKnKYLlTHaIp87Lab4nuP9XMTT0GiMsqJwvAFBo4SnOFUa30qNRbz+Fyirk7oPew==
gatsby-transformer-remark@2.6.52:
version "2.6.52"
resolved "https://registry.yarnpkg.com/gatsby-transformer-remark/-/gatsby-transformer-remark-2.6.52.tgz#ab843006fa4e7242452d732d2756b2ccb5f264a4"
integrity sha512-G0Fw2ZHFMiC1KdIR31NSZcQ3+KtghVfWK8FmiExMmN8bZQROyuqrjv1DqhUgg2yChHZKZ14H3hTnVmvCv48shg==
dependencies:
"@babel/runtime" "^7.7.6"
bluebird "^3.7.2"
@ -5468,20 +5469,20 @@ gatsby-transformer-remark@2.6.50:
unist-util-select "^1.5.0"
unist-util-visit "^1.4.1"
gatsby-transformer-yaml@2.2.24:
version "2.2.24"
resolved "https://registry.yarnpkg.com/gatsby-transformer-yaml/-/gatsby-transformer-yaml-2.2.24.tgz#93989ac6cf7a1c22c597f7b6559ccfff17ed8e84"
integrity sha512-6+uQwzIaMRc6WPIFJIaR1MqAULpev8+eo6pdZFm/6/MAMSb9t6A9dge8+V4ahhGhLJr26HI4d2/JpnzLihKTTg==
gatsby-transformer-yaml@2.2.25:
version "2.2.25"
resolved "https://registry.yarnpkg.com/gatsby-transformer-yaml/-/gatsby-transformer-yaml-2.2.25.tgz#4aa432d571a41d39c6cb3c85c9261b7806a98192"
integrity sha512-W+rbrTbpabF74U9B6PcqwbUSvlKPtnUEq+ujx4w8mqbP152ttN15TRFtZHmqQdqupokdHMzq87dTZlD4qkWbzw==
dependencies:
"@babel/runtime" "^7.7.6"
js-yaml "^3.13.1"
lodash "^4.17.15"
unist-util-select "^1.5.0"
gatsby@2.19.12:
version "2.19.12"
resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-2.19.12.tgz#9819d47407386912ad89f8067d69cec4ef7aec23"
integrity sha512-oI76KUEIebmaVOwtHuRINBspLvKHCIOdVPiNdgT/ly05iJLg9OsKd6/eYZ/rO+YYWew8t+MmoMVmRLpaWE2RBQ==
gatsby@2.19.18:
version "2.19.18"
resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-2.19.18.tgz#bc03a806eb577e056d66b7ab5f7ca50070fc14c7"
integrity sha512-DRVak6eh3vCrokdn1taibno9Z/I+XxaWcTdorGVXnS1TCOjXeWJ838f/i3bc+BuuSmoq1V3lOKfggyvtccF74w==
dependencies:
"@babel/code-frame" "^7.5.5"
"@babel/core" "^7.7.5"
@ -5492,7 +5493,7 @@ gatsby@2.19.12:
"@hapi/joi" "^15.1.1"
"@mikaelkristiansson/domready" "^1.0.10"
"@pieh/friendly-errors-webpack-plugin" "1.7.0-chalk-2"
"@reach/router" "1.2.1"
"@reach/router" "^1.3.1"
"@typescript-eslint/eslint-plugin" "^2.11.0"
"@typescript-eslint/parser" "^2.11.0"
address "1.1.2"
@ -5504,7 +5505,7 @@ gatsby@2.19.12:
babel-plugin-add-module-exports "^0.3.3"
babel-plugin-dynamic-import-node "^2.3.0"
babel-plugin-remove-graphql-queries "^2.7.23"
babel-preset-gatsby "^0.2.28"
babel-preset-gatsby "^0.2.29"
better-opn "1.0.0"
better-queue "^3.8.10"
bluebird "^3.7.2"
@ -5542,9 +5543,9 @@ gatsby@2.19.12:
flat "^4.1.0"
fs-exists-cached "1.0.0"
fs-extra "^8.1.0"
gatsby-cli "^2.8.29"
gatsby-cli "^2.8.30"
gatsby-core-utils "^1.0.28"
gatsby-graphiql-explorer "^0.2.33"
gatsby-graphiql-explorer "^0.2.34"
gatsby-link "^2.2.29"
gatsby-plugin-page-creator "^2.1.40"
gatsby-react-router-scroll "^2.1.21"
@ -8382,69 +8383,70 @@ neo-async@^2.6.1:
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==
netlify-cms-app@^2.11.13:
version "2.11.13"
resolved "https://registry.yarnpkg.com/netlify-cms-app/-/netlify-cms-app-2.11.13.tgz#c625fc75a77b62de803ec9b32f600137d17e227a"
integrity sha512-4SbE8+I1ud5RZVDTyXGisiEMptH/45eOVsu5/XofBzOGcOHZDDVegDMHgQyoj8in/GtanNzuL3uYOm2bRV+kng==
netlify-cms-app@^2.11.20:
version "2.11.20"
resolved "https://registry.yarnpkg.com/netlify-cms-app/-/netlify-cms-app-2.11.20.tgz#2fbc12129d6c9ac8e96b6823b6202749152614ea"
integrity sha512-AwK2uN8BDJLFSD9Iy2QVK2ASNWxMotWFEqlez/INoMWWVSx93JD1ZENPYHCcxFxJcFl8Ax6rWmBy8KiY/CDOzA==
dependencies:
"@emotion/core" "^10.0.9"
"@emotion/styled" "^10.0.9"
immutable "^3.7.6"
lodash "^4.17.11"
moment "^2.24.0"
netlify-cms-backend-bitbucket "^2.8.0"
netlify-cms-backend-git-gateway "^2.7.1"
netlify-cms-backend-github "^2.6.5"
netlify-cms-backend-gitlab "^2.5.2"
netlify-cms-backend-test "^2.7.1"
netlify-cms-core "^2.16.0"
netlify-cms-editor-component-image "^2.5.0"
netlify-cms-backend-bitbucket "^2.9.0"
netlify-cms-backend-git-gateway "^2.7.2"
netlify-cms-backend-github "^2.7.1"
netlify-cms-backend-gitlab "^2.6.0"
netlify-cms-backend-test "^2.7.2"
netlify-cms-core "^2.18.4"
netlify-cms-editor-component-image "^2.6.2"
netlify-cms-lib-auth "^2.2.7"
netlify-cms-lib-util "^2.6.2"
netlify-cms-locales "^1.8.0"
netlify-cms-ui-default "^2.8.0"
netlify-cms-lib-util "^2.7.1"
netlify-cms-locales "^1.9.0"
netlify-cms-ui-default "^2.9.1"
netlify-cms-widget-boolean "^2.3.0"
netlify-cms-widget-code "^1.1.3"
netlify-cms-widget-date "^2.4.0"
netlify-cms-widget-datetime "^2.2.5"
netlify-cms-widget-file "^2.5.2"
netlify-cms-widget-image "^2.5.0"
netlify-cms-widget-list "^2.4.1"
netlify-cms-widget-datetime "^2.2.6"
netlify-cms-widget-file "^2.6.2"
netlify-cms-widget-image "^2.6.2"
netlify-cms-widget-list "^2.4.3"
netlify-cms-widget-map "^1.3.3"
netlify-cms-widget-markdown "^2.8.3"
netlify-cms-widget-markdown "^2.9.2"
netlify-cms-widget-number "^2.3.5"
netlify-cms-widget-object "^2.3.1"
netlify-cms-widget-relation "^2.5.0"
netlify-cms-widget-select "^2.5.0"
netlify-cms-widget-relation "^2.5.2"
netlify-cms-widget-select "^2.5.1"
netlify-cms-widget-string "^2.2.3"
netlify-cms-widget-text "^2.3.0"
prop-types "^15.7.2"
react-immutable-proptypes "^2.1.0"
uuid "^3.3.2"
netlify-cms-backend-bitbucket@^2.8.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/netlify-cms-backend-bitbucket/-/netlify-cms-backend-bitbucket-2.8.0.tgz#d06b4e0946a3646910bb3158ff1d237e2dbd1ebd"
integrity sha512-g8Xq7uERSi7bErgMJshAZb+yNj4ZBy3FH3O+DpLdf92kUyrliVUF3BnXfKqD+Xf37PeLSQPMe/Xz5HjeaZ1ehg==
netlify-cms-backend-bitbucket@^2.9.0:
version "2.9.0"
resolved "https://registry.yarnpkg.com/netlify-cms-backend-bitbucket/-/netlify-cms-backend-bitbucket-2.9.0.tgz#06676ad586cbcc34dc1339e52fb0caa5a4a7db6e"
integrity sha512-GgMp1oClfhTeqDOtpy0RVeFwTVKJuBhiYkeyHvNYLg4C3QUHRD4VCTX1qlN6YKn+fLX5YKCj7NV+8X+OlCymkg==
dependencies:
common-tags "^1.8.0"
js-base64 "^2.5.1"
semaphore "^1.1.0"
what-the-diff "^0.6.0"
netlify-cms-backend-git-gateway@^2.7.1:
version "2.7.1"
resolved "https://registry.yarnpkg.com/netlify-cms-backend-git-gateway/-/netlify-cms-backend-git-gateway-2.7.1.tgz#5cf3b1d438275d32f073cdb1b7a684d4194ee3e0"
integrity sha512-ZcSLzp9VwGZtDpG6C9XhsrIyO840Zn+p76+fD+jtZL96OVSN/p2Tmnr1TaeLUIbQh/GPtvuTaR3ht5p8b8M6lA==
netlify-cms-backend-git-gateway@^2.7.2:
version "2.7.2"
resolved "https://registry.yarnpkg.com/netlify-cms-backend-git-gateway/-/netlify-cms-backend-git-gateway-2.7.2.tgz#2085ac9efdfb55b80ef3841ad59519112e8b2e76"
integrity sha512-gwEoNES1pBSe1udtzAfO1IDlLOSIT6ppUTyjxZx5po9bnV5yMCWu/sQK0POFMz0Mcz8qpDPnwkUbtC6X4GVi9Q==
dependencies:
gotrue-js "^0.9.24"
ini "^1.3.5"
jwt-decode "^2.2.0"
minimatch "^3.0.4"
netlify-cms-backend-github@^2.6.5:
version "2.6.5"
resolved "https://registry.yarnpkg.com/netlify-cms-backend-github/-/netlify-cms-backend-github-2.6.5.tgz#081235d20d7ffca1bc032f0b07130f7738b71dce"
integrity sha512-b/EgxlewcLwW727H2ZYY9SHyDgNrt9nLs7qp08NNHI0MhflE7R01PxDaQRPPcqGEuvKXs23/ZAKdjLLdQbjigg==
netlify-cms-backend-github@^2.7.1:
version "2.7.1"
resolved "https://registry.yarnpkg.com/netlify-cms-backend-github/-/netlify-cms-backend-github-2.7.1.tgz#c3d73eeabc49dc9a3a6eee96d3e74939fe8cb584"
integrity sha512-1FV/CwiclNNm6pdIHy+YaVtuV04SrWrJ0qItWe9KIRm20bCr9ad6VYA9yT7tpZQeDPx6AlkiMsnmf3twORPALw==
dependencies:
apollo-cache-inmemory "^1.6.2"
apollo-client "^2.6.3"
@ -8456,23 +8458,23 @@ netlify-cms-backend-github@^2.6.5:
js-base64 "^2.5.1"
semaphore "^1.1.0"
netlify-cms-backend-gitlab@^2.5.2:
version "2.5.2"
resolved "https://registry.yarnpkg.com/netlify-cms-backend-gitlab/-/netlify-cms-backend-gitlab-2.5.2.tgz#e3c3f2f398cac97533205fb812a8551d52796a02"
integrity sha512-iUNjr6+8c2cLPu8lZ77o1oK6rE2Ev7VqQlVEsID/h13/4Safa3secb/8os0VWnB/0Rvgl9seBd5J9CY+aXt02g==
netlify-cms-backend-gitlab@^2.6.0:
version "2.6.0"
resolved "https://registry.yarnpkg.com/netlify-cms-backend-gitlab/-/netlify-cms-backend-gitlab-2.6.0.tgz#b62097326364adc2fcf26e53f48f649e0510559e"
integrity sha512-Kd1KXB5P9LGnjVZl4+tdaGQwnEJRDsE+6acfB0iztyC7uKVrKdWdBEF+3MV7Tf62AwlSCbM8k0qNA2X/Jly1Ow==
dependencies:
js-base64 "^2.5.1"
semaphore "^1.1.0"
netlify-cms-backend-test@^2.7.1:
version "2.7.1"
resolved "https://registry.yarnpkg.com/netlify-cms-backend-test/-/netlify-cms-backend-test-2.7.1.tgz#93fe0571063e131d9f52bdef76a5f1348d3e4b40"
integrity sha512-yDkrR8bqXsd6RJ1eZcMgHq8iax8p/iFpvyKWqCU/YCHjqQXRfX3CeamU46a/CV18Eio4qqhOMul/vMqOsF8xgg==
netlify-cms-backend-test@^2.7.2:
version "2.7.2"
resolved "https://registry.yarnpkg.com/netlify-cms-backend-test/-/netlify-cms-backend-test-2.7.2.tgz#b5895b95de5dbe05576e99f72fe5d182a3e46033"
integrity sha512-E1QkgyI+PsIGFg7rErVIfSaMUqRyah4rJnfwAm3x0+R3omv2tOk+1SfN7HFqdkrnieen5nfNLseZFvKwg5j4Ng==
netlify-cms-core@^2.16.0:
version "2.16.0"
resolved "https://registry.yarnpkg.com/netlify-cms-core/-/netlify-cms-core-2.16.0.tgz#938fd6bd523e7bbfbc3550f9d5563f035656095d"
integrity sha512-hmf7sz48t/606xAeIB3yEG82znSDx0kLkrgLC5VrAdOZWpJRdK5MThC2V+oEZTe2GZQRB5n28MT16u/PtArtIg==
netlify-cms-core@^2.18.4:
version "2.18.4"
resolved "https://registry.yarnpkg.com/netlify-cms-core/-/netlify-cms-core-2.18.4.tgz#7afe694abb1a8bcbeb5fd3e679ee532ef6cba60d"
integrity sha512-aQf8pAC47n/DjZ00q7oweA6CR7BSlS/1Kx8bRqP0AU2Vi6cXrmMSGpQ9t6qh2Sc/3zzvq+wqbN3THTOuJVf5MA==
dependencies:
"@iarna/toml" "2.2.3"
ajv "^6.10.0"
@ -8517,34 +8519,34 @@ netlify-cms-core@^2.16.0:
url "^0.11.0"
what-input "^5.1.4"
netlify-cms-editor-component-image@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/netlify-cms-editor-component-image/-/netlify-cms-editor-component-image-2.5.0.tgz#f43eb0e07c3b541eda524a8adc18cef6cc490a9a"
integrity sha512-dQ04372Xj/tgQKJUUQnrOe8q+DfansUXalAy92mI1X+4l7m+r7SpIrhdvhlo2zclyCtRuOU6VbjCm1Ypb9kj/A==
netlify-cms-editor-component-image@^2.6.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/netlify-cms-editor-component-image/-/netlify-cms-editor-component-image-2.6.2.tgz#aa048ed6379578f8ab6ee00a2fa1eadbb70ddbf4"
integrity sha512-I7427tvMP364seqAFQ10O1nPlIqNBfdUmwE9NjBiuJxYQQ0A22p1fdT3ip2R2YohfYRk4sqOhyq/FZAz9O+o4A==
netlify-cms-lib-auth@^2.2.7:
version "2.2.7"
resolved "https://registry.yarnpkg.com/netlify-cms-lib-auth/-/netlify-cms-lib-auth-2.2.7.tgz#d01793551cf1e2aef9979702710f9e394d839d62"
integrity sha512-ZZtG9ZLDZHK8tvntq6nFp3VpSqbZ8hMx3HNvbTeMaTDFwka8/65w8HEZAddCOORxboHdHDvqKiE7ShCkn6Ni6w==
netlify-cms-lib-util@^2.6.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/netlify-cms-lib-util/-/netlify-cms-lib-util-2.6.2.tgz#06551cf1b0205a0f5fa997aaca31467d9f889f77"
integrity sha512-+RbT2sQW9d+CO3s4puLiVrvALy4e8O6eR5oMHbsp3ip8X4h5C6KbkEKn8T0gF90yE4+oH6NZ0QDppQM8wG19Pg==
netlify-cms-lib-util@^2.7.1:
version "2.7.1"
resolved "https://registry.yarnpkg.com/netlify-cms-lib-util/-/netlify-cms-lib-util-2.7.1.tgz#7fbe323367f9b4635455775be714e1632ed9dcdf"
integrity sha512-NiqFjObuZryI4gMxDiwv3lRxDVFnikeoLw30vR1JzkZZok/hvSVNBxg1aHa7osCcHT6UOASEBPTCxGv+U3ugqA==
dependencies:
js-sha256 "^0.9.0"
localforage "^1.7.3"
semaphore "^1.1.0"
netlify-cms-locales@^1.8.0:
version "1.8.0"
resolved "https://registry.yarnpkg.com/netlify-cms-locales/-/netlify-cms-locales-1.8.0.tgz#43ed74e7c9d0f964eb63c50a311b9072c69cda5b"
integrity sha512-dfEmUu7nm03rT5JrhEE+qrcU+xW9U+ZHbh1KZYKWAJtCnvyBA82AILSWMR8OoLJmWSCJgrMbmQWll+e9Pa2BYw==
netlify-cms-locales@^1.9.0:
version "1.9.0"
resolved "https://registry.yarnpkg.com/netlify-cms-locales/-/netlify-cms-locales-1.9.0.tgz#045b30a4051be867d15d4dc6245f9f2f3992d561"
integrity sha512-3El36xOPAhUUiEOInuqPYiwvsnr4eEbRejxRVPG7O7TVmP+ZWPQJbwlMRErsnUxZQv63CrGsxxoklPPf2XeXBA==
netlify-cms-ui-default@^2.8.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/netlify-cms-ui-default/-/netlify-cms-ui-default-2.8.0.tgz#1bb371e915d9b6c644f4e11dc81bb559e186b730"
integrity sha512-3LibKWDUqJ+WfbebFaRDsK1v3l3HiMviVRvbCcGEnGrEo5Gjkp+6J/njtvMiRCKLp/WBQ4aCCDbETtqv8b9M3w==
netlify-cms-ui-default@^2.9.1:
version "2.9.1"
resolved "https://registry.yarnpkg.com/netlify-cms-ui-default/-/netlify-cms-ui-default-2.9.1.tgz#aa4f79edadf8cc0f683a10bb0e88d71f0fc7aafe"
integrity sha512-o0u0Ln5BlUI/shoCpdQMVVJJsg0PXSVThyyiOeIBknl3k1Rb2yo31RRDKZToNqqpMHCheVI0+WLIsde3Tuthaw==
dependencies:
react-aria-menubutton "^6.0.0"
react-toggled "^1.1.2"
@ -8571,27 +8573,27 @@ netlify-cms-widget-date@^2.4.0:
dependencies:
react-datetime "^2.16.3"
netlify-cms-widget-datetime@^2.2.5:
version "2.2.5"
resolved "https://registry.yarnpkg.com/netlify-cms-widget-datetime/-/netlify-cms-widget-datetime-2.2.5.tgz#a030a09299d2448dc181b31224d55fd76074b893"
integrity sha512-zoCuqkcelNvBwKlv5tJll67rKXFE/tq1W6SlT/f0LbRR78X/CY7jSTuTKbawHYi4XAg4Hhc4NmgKX2C8AWm39g==
netlify-cms-widget-datetime@^2.2.6:
version "2.2.6"
resolved "https://registry.yarnpkg.com/netlify-cms-widget-datetime/-/netlify-cms-widget-datetime-2.2.6.tgz#a5d4b88d96e902439f21156f612f6df510f28edc"
integrity sha512-6hOGEyx+V1gc/88cVEHR29FZQPyYuEk8p0Kg0dsWO/KHspJkzwv0jI91Mad4ATTQD8hBUHKm1adTp6fwcWTQVw==
netlify-cms-widget-file@^2.5.2:
version "2.5.2"
resolved "https://registry.yarnpkg.com/netlify-cms-widget-file/-/netlify-cms-widget-file-2.5.2.tgz#351baa6e74949f3e3220bae10b628f8c01941ca6"
integrity sha512-SAdKy8Cy3cgqjjlRJpEtA4aBoR99ntQAMCkbzYja+/KuREe1MBOuw+hUC624XOcDjEGnpFjvX2FG60T/yM96hg==
netlify-cms-widget-file@^2.6.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/netlify-cms-widget-file/-/netlify-cms-widget-file-2.6.2.tgz#d0c6c327b71cc332dde04c5976efe8903e505716"
integrity sha512-JmhwfO0lTtXEo1zvu9yZFAx9xoLozCkleqtYGEm5gMd6um6perbW+rCAfEKS+ivr+2U7oC0YHLAUAg7pkiJ05g==
dependencies:
common-tags "^1.8.0"
netlify-cms-widget-image@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/netlify-cms-widget-image/-/netlify-cms-widget-image-2.5.0.tgz#7abacbc7b43b7baa92917a3c7887e66f84d5d84f"
integrity sha512-fq/uc0Kixi5V1Sy5YhwWbxmmWUKfFWYvWdRhdASHReqS9i4WXdtdvAiS8xPqRMnN7LfM+NR03E+pX7u1ve2EcQ==
netlify-cms-widget-image@^2.6.2:
version "2.6.2"
resolved "https://registry.yarnpkg.com/netlify-cms-widget-image/-/netlify-cms-widget-image-2.6.2.tgz#de4c7091d0ae5097b369762e45b0e5cac594a188"
integrity sha512-2D9pMSWtxmEDnl8Rg1XjJA0IQREfP3eD6C+aNgsENCXl22tFdCkvhuNq6MrnJSkf4xqkHYs0M8/O1x56OLhmlQ==
netlify-cms-widget-list@^2.4.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/netlify-cms-widget-list/-/netlify-cms-widget-list-2.4.1.tgz#e8596b68a281bc5e8e4e0a30652a9b987119fb49"
integrity sha512-Ilkvj6d3e2T4cTvnUss5S8xTXy3YMoqWjwnqGDlb/K3OKOt3RJlB9dEk6iTw93g0vp9gIXyDd/r887ycUCbcZQ==
netlify-cms-widget-list@^2.4.3:
version "2.4.3"
resolved "https://registry.yarnpkg.com/netlify-cms-widget-list/-/netlify-cms-widget-list-2.4.3.tgz#a1baf13aadbbff14a82851b7529da3769715605e"
integrity sha512-n7G4xgORf2n9qex77PwJ9Mf0kTxH7EmSS23yabhxYyjwXazhhiemlEU0q7CUyK8uZwTiGPJrbkqbOIsbJB4cXA==
dependencies:
react-sortable-hoc "^1.0.0"
@ -8602,10 +8604,10 @@ netlify-cms-widget-map@^1.3.3:
dependencies:
ol "^5.3.1"
netlify-cms-widget-markdown@^2.8.3:
version "2.8.3"
resolved "https://registry.yarnpkg.com/netlify-cms-widget-markdown/-/netlify-cms-widget-markdown-2.8.3.tgz#1ea44b2923db711a795693a4c76c515f1c55bc7c"
integrity sha512-PQsp4tuu6ZC2hFqMmvqElcp0LUblWgzrQZXKY3LkV21/LOhhbMTuJ5QiHdD/LBvVGElFdc1E2lbPmct5TrA5LA==
netlify-cms-widget-markdown@^2.9.2:
version "2.9.2"
resolved "https://registry.yarnpkg.com/netlify-cms-widget-markdown/-/netlify-cms-widget-markdown-2.9.2.tgz#b14725c4be4af1b68091588fcf33525bf9687d1c"
integrity sha512-FYmXKlYKS86VR+MstHloQUvgUVvvDqEIS3/v8ob8zQjXXw8K1XbDvEzTJD3yrhbZq3pzomlbyC1yM5UYQ1HA9A==
dependencies:
is-hotkey "^0.1.4"
mdast-util-definitions "^1.2.3"
@ -8638,17 +8640,17 @@ netlify-cms-widget-object@^2.3.1:
resolved "https://registry.yarnpkg.com/netlify-cms-widget-object/-/netlify-cms-widget-object-2.3.1.tgz#a8adc1f97f5b2772809690b2478007e7e610e407"
integrity sha512-i9NDAfxv1WGEklbPpdU2uIUUH2IP3M6XzQN1kion2eqzoIORlW5lQEuHBRjzvaIAIXIo6PyRbgAPC3xzgedUhA==
netlify-cms-widget-relation@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/netlify-cms-widget-relation/-/netlify-cms-widget-relation-2.5.0.tgz#e837044706cc0ef9a7e42b69919cd71b38765dc3"
integrity sha512-jZZsO4+PUYgiz4VWRVH/cwRnqgdSXWOvFSRLgpDfped4B8jsCEDHp0M07hOiFr2K1p6HOmMnk65TbziA5kG8FQ==
netlify-cms-widget-relation@^2.5.2:
version "2.5.2"
resolved "https://registry.yarnpkg.com/netlify-cms-widget-relation/-/netlify-cms-widget-relation-2.5.2.tgz#1af1813737cb90d0a6793feb862c294a19589000"
integrity sha512-7Gb/ckpoJr6ehKpSn4Zag4UMM926xyZW6jinLb69SwF3UbFuj4o9waxrqX0LhFBYBMAGksryxXeXOI4+I6flVg==
dependencies:
react-select "^2.4.2"
netlify-cms-widget-select@^2.5.0:
version "2.5.0"
resolved "https://registry.yarnpkg.com/netlify-cms-widget-select/-/netlify-cms-widget-select-2.5.0.tgz#f9f75371c4441e7e6b20b052c014ef32e69b3573"
integrity sha512-GDVkls/IV7uRjAPB1N6kjIyzZLWbQdDHzSFJA2srRDLmOya5zphfo7iYRWEmaiASYlYfIsFauEpiS/q95xNi5Q==
netlify-cms-widget-select@^2.5.1:
version "2.5.1"
resolved "https://registry.yarnpkg.com/netlify-cms-widget-select/-/netlify-cms-widget-select-2.5.1.tgz#a4ab47c6dc4204bb42238f35c62973dd69e35092"
integrity sha512-KL4iNqThPVS73uBxVz8KE4wvEsMQGUVZcq5qIm70mlclcMw11XriJr499BUXRqjPAWyKx88zfMthMYz+5Ha6wQ==
dependencies:
react-select "^2.4.2"
@ -10730,7 +10732,7 @@ react-waypoint@^8.1.0:
prop-types "^15.0.0"
react-is "^16.6.3"
react@^16.12.0, react@^16.8.4:
react@^16.12.0, react@^16.8.0, react@^16.8.4:
version "16.12.0"
resolved "https://registry.yarnpkg.com/react/-/react-16.12.0.tgz#0c0a9c6a142429e3614834d5a778e18aa78a0b83"
integrity sha512-fglqy3k5E+81pA8s+7K0/T3DBCF0ZDOher1elBFzF7O6arXJgzyu/FW+COxFvAWXJoJN9KIZbT2LXlukwphYTA==
@ -13465,6 +13467,11 @@ what-input@^5.1.4:
resolved "https://registry.yarnpkg.com/what-input/-/what-input-5.2.6.tgz#ac6f003bf8d3592a0031dea7a03565469b00020b"
integrity sha512-a0BcI5YR7xp87vSzGcbN0IszJKpUQuTmrZaTSQBl7TLDIdKj6rDhluQ7b/7lYGG81gWDvkySsEvwv4BW5an9kg==
what-the-diff@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/what-the-diff/-/what-the-diff-0.6.0.tgz#445cc56a9d8ee9aea0ee1ed943f4957ae009291e"
integrity sha512-8BgQ4uo4cxojRXvCIcqDpH4QHaq0Ksn2P3LYfztylC5LDSwZKuGHf0Wf7sAStjPLTcB8eCB8pJJcPQSWfhZlkg==
whatwg-fetch@2.0.4:
version "2.0.4"
resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f"