-
-
- setEmail(e.target.value)}
- placeholder="alex@codingcat.dev"
- required
- />
-
-
-
- setPassword(e.target.value)}
- placeholder="******************"
- required
- />
-
-
-
-
+ {full ? (
+
+
) : (
- <>
- {app && firebaseAuthConfig ? (
-
- ) : (
- <>>
- )}
- >
+
+
+
)}
>
);
diff --git a/frontend/admin/src/components/Home/Intro.tsx b/frontend/admin/src/components/Home/Intro.tsx
new file mode 100644
index 000000000..1f6a11c7a
--- /dev/null
+++ b/frontend/admin/src/components/Home/Intro.tsx
@@ -0,0 +1,23 @@
+import dynamic from 'next/dynamic';
+
+const UserSignin = dynamic(() => import('@/components/UserSignin'), {
+ ssr: false,
+ loading: () => (
+ <>
+
+
+ >
+ ),
+});
+
+export default function dIntro() {
+ return (
+ <>
+
+ >
+ );
+}
diff --git a/frontend/admin/src/components/OutsideClick.tsx b/frontend/admin/src/components/OutsideClick.tsx
index 2be0c89ba..5eb37cbec 100644
--- a/frontend/admin/src/components/OutsideClick.tsx
+++ b/frontend/admin/src/components/OutsideClick.tsx
@@ -4,12 +4,12 @@ import PropTypes from 'prop-types';
/**
* Hook that alerts clicks outside of the passed ref
*/
-function useOutsideClick(ref: any, toggle: any, value: any) {
+function useOutsideClick(ref, toggle, value) {
useEffect(() => {
/**
* Alert if clicked on outside of element
*/
- function handleClickOutside(event: any) {
+ function handleClickOutside(event) {
if (ref.current && !ref.current.contains(event.target)) {
toggle(value);
}
@@ -26,7 +26,7 @@ function useOutsideClick(ref: any, toggle: any, value: any) {
/**
* Component that alerts if you click outside of it
*/
-function OutsideClick(props: any) {
+function OutsideClick(props) {
const wrapperRef = useRef(null);
const { toggle, value } = props;
useOutsideClick(wrapperRef, toggle, value);
diff --git a/frontend/admin/src/components/PostsCards.tsx b/frontend/admin/src/components/PostsCards.tsx
new file mode 100644
index 000000000..d8b88e4d1
--- /dev/null
+++ b/frontend/admin/src/components/PostsCards.tsx
@@ -0,0 +1,56 @@
+import Link from 'next/link';
+import Image from 'next/image';
+import PropTypes from 'prop-types';
+function PostsCards({ posts, post_type }) {
+ return (
+ <>
+ {posts.map((post) => (
+
+ ))}
+ >
+ );
+}
+PostsCards.propTypes = {
+ posts: PropTypes.array.isRequired,
+};
+
+export default PostsCards;
diff --git a/frontend/admin/src/components/RecentPostsCards.tsx b/frontend/admin/src/components/RecentPostsCards.tsx
new file mode 100644
index 000000000..d1578cf25
--- /dev/null
+++ b/frontend/admin/src/components/RecentPostsCards.tsx
@@ -0,0 +1,102 @@
+import Link from 'next/link';
+import Image from 'next/image';
+import PropTypes from 'prop-types';
+
+function RecentPostsCards({ recentPosts }) {
+ return (
+ <>
+ {recentPosts.tutorials.map((post) => (
+
+
+
+
+ {post.post_title}
+
+
+ {post.post_excerpt}
+
+
+
+ ))}
+ {recentPosts.post.map((post) => (
+
+
+
+
+ {post.post_title}
+
+
+ {post.post_excerpt}
+
+
+
+ ))}
+ {recentPosts.podcasts.map((post) => (
+
+
+
+
+ {post.post_title}
+
+
+ {post.post_excerpt}
+
+
+
+ ))}
+ >
+ );
+}
+RecentPostsCards.propTypes = {
+ recentPosts: PropTypes.object.isRequired,
+};
+
+export default RecentPostsCards;
diff --git a/frontend/admin/src/components/RecentPostsList.tsx b/frontend/admin/src/components/RecentPostsList.tsx
new file mode 100644
index 000000000..498d5fb94
--- /dev/null
+++ b/frontend/admin/src/components/RecentPostsList.tsx
@@ -0,0 +1,26 @@
+import Link from 'next/link';
+
+import PropTypes from 'prop-types';
+
+function RecentPostsList({ posts }) {
+ return (
+
+ {posts.map((post) => (
+
+ ))}
+
+ );
+}
+RecentPostsList.propTypes = {
+ recentPosts: PropTypes.array.isRequired,
+};
+
+export default RecentPostsList;
diff --git a/frontend/admin/src/components/User/ProfileCard.tsx b/frontend/admin/src/components/User/ProfileCard.tsx
index 983f33055..93b50de52 100644
--- a/frontend/admin/src/components/User/ProfileCard.tsx
+++ b/frontend/admin/src/components/User/ProfileCard.tsx
@@ -1,33 +1,36 @@
import Link from 'next/link';
-import dynamic from 'next/dynamic';
import { useUser } from '@/utils/auth/useUser';
-import Button from '@material-ui/core/Button';
-
-const FirebaseAuth = dynamic(() => import('@/components/FirebaseAuth'), {
- ssr: false,
- loading: () =>
Playing with yarn...
,
-});
-
export default function UserSignin() {
- const { user, signout }: { user: any; signout: any } = useUser();
+ const { user, logout }: { user: any; logout: any } = useUser();
+
+ if (!user) {
+ return (
+
+
You must be signed in to access this page.
+
+
+ Signin
+
+
+
+ );
+ }
return (
- <>
- {user ? (
-
-
You`'`re signed in.
-
- Email: {user.email}
-
-
-
- ) : (
-
- )}
- >
+
+
You're signed in. Email: {user.email}
+
+
);
}
diff --git a/frontend/admin/src/components/UserSignin.tsx b/frontend/admin/src/components/UserSignin.tsx
new file mode 100644
index 000000000..3e7d469f1
--- /dev/null
+++ b/frontend/admin/src/components/UserSignin.tsx
@@ -0,0 +1,150 @@
+import { useState } from 'react';
+
+import dynamic from 'next/dynamic';
+import Link from 'next/link';
+
+import { useUser } from '@/utils/auth/useUser';
+import Drip from '@/components/global/icons/Drip';
+import AJLogo from './global/icons/AJLogo';
+import AJLogoLeft from './global/icons/AJLogoLeft';
+import { sign } from 'crypto';
+
+const FirebaseAuth = dynamic(() => import('@/components/FirebaseAuth'), {
+ ssr: false,
+ loading: () =>
Playing with yarn...
,
+});
+
+export default function UserSignin() {
+ const { user, logout }: { user: any; logout: any } = useUser();
+ const [signin, setSignIn] = useState(false);
+
+ return (
+ <>
+ <>
+
+
+
+
+ {' '}
+
setSignIn(false)}
+ >
+ Sign Up
+
+
+
+ {signin ? (
+
+ ) : (
+
+ )}
+
+
+
setSignIn(true)}
+ >
+ Sign In
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Please choose a password.
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ >
+ );
+}
diff --git a/frontend/admin/src/components/global/icons/AJLogo.tsx b/frontend/admin/src/components/global/icons/AJLogo.tsx
new file mode 100644
index 000000000..79c3a83aa
--- /dev/null
+++ b/frontend/admin/src/components/global/icons/AJLogo.tsx
@@ -0,0 +1,141 @@
+export default function AJLogo({ className = 'block w-12 h-12' }) {
+ return (
+
+ );
+}
diff --git a/frontend/admin/src/components/global/icons/AJLogoLeft.tsx b/frontend/admin/src/components/global/icons/AJLogoLeft.tsx
new file mode 100644
index 000000000..f0bff2071
--- /dev/null
+++ b/frontend/admin/src/components/global/icons/AJLogoLeft.tsx
@@ -0,0 +1,139 @@
+export default function AJLogoLeft({ className = 'block w-12 h-12' }) {
+ return (
+
+ );
+}
diff --git a/frontend/admin/src/components/global/icons/Blog.tsx b/frontend/admin/src/components/global/icons/Blog.tsx
new file mode 100644
index 000000000..33c80a419
--- /dev/null
+++ b/frontend/admin/src/components/global/icons/Blog.tsx
@@ -0,0 +1,194 @@
+export default function Blog() {
+ return (
+
+ );
+}
diff --git a/frontend/admin/src/components/global/icons/Community.tsx b/frontend/admin/src/components/global/icons/Community.tsx
new file mode 100644
index 000000000..9315160df
--- /dev/null
+++ b/frontend/admin/src/components/global/icons/Community.tsx
@@ -0,0 +1,46 @@
+export default function Community() {
+ return (
+
+ );
+}
diff --git a/frontend/admin/src/components/global/icons/Courses.tsx b/frontend/admin/src/components/global/icons/Courses.tsx
new file mode 100644
index 000000000..a2c30da61
--- /dev/null
+++ b/frontend/admin/src/components/global/icons/Courses.tsx
@@ -0,0 +1,46 @@
+export default function Courses() {
+ return (
+
+ );
+}
diff --git a/frontend/admin/src/components/global/icons/Podcasts.tsx b/frontend/admin/src/components/global/icons/Podcasts.tsx
new file mode 100644
index 000000000..73ebd1510
--- /dev/null
+++ b/frontend/admin/src/components/global/icons/Podcasts.tsx
@@ -0,0 +1,356 @@
+export default function Podcasts() {
+ return (
+
+ );
+}
diff --git a/frontend/admin/src/components/global/icons/Tutorials.tsx b/frontend/admin/src/components/global/icons/Tutorials.tsx
new file mode 100644
index 000000000..5c6872eb2
--- /dev/null
+++ b/frontend/admin/src/components/global/icons/Tutorials.tsx
@@ -0,0 +1,46 @@
+export default function Tutorials() {
+ return (
+
+ );
+}
diff --git a/frontend/admin/src/components/global/logos/TitleLogo.tsx b/frontend/admin/src/components/global/logos/TitleLogo.tsx
index 4d1adf1de..8dff71892 100644
--- a/frontend/admin/src/components/global/logos/TitleLogo.tsx
+++ b/frontend/admin/src/components/global/logos/TitleLogo.tsx
@@ -1,5 +1,5 @@
-import AJLogo from '@/components/global/icons/AJPrimary';
-import AJLogoLeft from '@/components/global/icons/AJAlt';
+import AJLogo from '../icons/AJLogo';
+import AJLogoLeft from '../icons/AJLogoLeft';
import SloganNunito from './SloganNunito';
import TitleNunito from './TitleNunito';
diff --git a/frontend/admin/src/components/global/logos/TitleSloganLogo.tsx b/frontend/admin/src/components/global/logos/TitleSloganLogo.tsx
index 11d0e554b..a7c58dbb5 100644
--- a/frontend/admin/src/components/global/logos/TitleSloganLogo.tsx
+++ b/frontend/admin/src/components/global/logos/TitleSloganLogo.tsx
@@ -1,5 +1,5 @@
-import AJLogo from '@/components/global/icons/AJPrimary';
-import AJLogoLeft from '@/components/global/icons/AJAlt';
+import AJLogo from '../icons/AJLogo';
+import AJLogoLeft from '../icons/AJLogoLeft';
import SloganNunito from './SloganNunito';
import TitleNunito from './TitleNunito';
diff --git a/frontend/admin/src/config/firebase.ts b/frontend/admin/src/config/firebase.ts
index 672480d99..611469dd6 100644
--- a/frontend/admin/src/config/firebase.ts
+++ b/frontend/admin/src/config/firebase.ts
@@ -2,13 +2,12 @@ export const serviceAccountKey = {
type: process.env.FIREBASE_SERVICE_TYPE,
projectId: process.env.FIREBASE_SERVICE_PROJECT_ID,
privateKeyId: process.env.FIREBASE_SERVICE_PRIVATE_KEY_ID,
- privateKey: process.env.FIREBASE_SERVICE_PRIVATE_KEY,
+ privateKey: Buffer.from(`${process.env.FIREBASE_SERVICE_PRIVATE_KEY}`,'base64').toString(),
clientEmail: process.env.FIREBASE_SERVICE_CLIENT_EMAIL,
clientOd: process.env.FIREBASE_SERVICE_CLIENT_ID,
authUri: process.env.FIREBASE_SERVICE_AUTH_URI,
tokenUri: process.env.FIREBASE_SERVICE_TOKEN_URI,
- authProviderX509CertUrl:
- process.env.FIREBASE_SERVICE_AUTH_PROVIDER_X509_CERT_URL,
+ authProviderX509CertUrl: process.env.FIREBASE_SERVICE_AUTH_PROVIDER_X509_CERT_URL,
clientX509CertUrl: process.env.FIREBASE_SERVICE_CLIENT_509_CERT_URL,
};
diff --git a/frontend/admin/src/fonts/HennyPenny-Regular.ttf b/frontend/admin/src/fonts/HennyPenny-Regular.ttf
new file mode 100644
index 000000000..77083fbcb
Binary files /dev/null and b/frontend/admin/src/fonts/HennyPenny-Regular.ttf differ
diff --git a/frontend/admin/src/graphql/schema.json~HEAD b/frontend/admin/src/graphql/schema.json~HEAD
new file mode 100644
index 000000000..eabe31a1b
--- /dev/null
+++ b/frontend/admin/src/graphql/schema.json~HEAD
@@ -0,0 +1,6226 @@
+{
+ "data" : {
+ "__schema" : {
+ "queryType" : {
+ "name" : "Query"
+ },
+ "mutationType" : {
+ "name" : "Mutation"
+ },
+ "subscriptionType" : {
+ "name" : "Subscription"
+ },
+ "types" : [ {
+ "kind" : "OBJECT",
+ "name" : "Query",
+ "description" : null,
+ "fields" : [ {
+ "name" : "searchPosts",
+ "description" : null,
+ "args" : [ {
+ "name" : "filter",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "SearchablePostFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "sort",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "SearchablePostSortInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "limit",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "nextToken",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "from",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "SearchablePostConnection",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "getBlog",
+ "description" : null,
+ "args" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Blog",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "listBlogs",
+ "description" : null,
+ "args" : [ {
+ "name" : "filter",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelBlogFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "limit",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "nextToken",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "ModelBlogConnection",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "getPost",
+ "description" : null,
+ "args" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Post",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "listPosts",
+ "description" : null,
+ "args" : [ {
+ "name" : "filter",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelPostFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "limit",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "nextToken",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "ModelPostConnection",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "getComment",
+ "description" : null,
+ "args" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Comment",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "listComments",
+ "description" : null,
+ "args" : [ {
+ "name" : "filter",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCommentFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "limit",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "nextToken",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "ModelCommentConnection",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "getCategory",
+ "description" : null,
+ "args" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Category",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "listCategorys",
+ "description" : null,
+ "args" : [ {
+ "name" : "filter",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCategoryFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "limit",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "nextToken",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "ModelCategoryConnection",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "getVodAsset",
+ "description" : null,
+ "args" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "vodAsset",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "listVodAssets",
+ "description" : null,
+ "args" : [ {
+ "name" : "filter",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelvodAssetFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "limit",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "nextToken",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "ModelvodAssetConnection",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "listVideoObjects",
+ "description" : null,
+ "args" : [ {
+ "name" : "filter",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelvideoObjectFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "limit",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "nextToken",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "ModelvideoObjectConnection",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "getVideoObject",
+ "description" : null,
+ "args" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "videoObject",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "inputFields" : null,
+ "interfaces" : [ ],
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "OBJECT",
+ "name" : "SearchablePostConnection",
+ "description" : null,
+ "fields" : [ {
+ "name" : "items",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "OBJECT",
+ "name" : "Post",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "nextToken",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "total",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "inputFields" : null,
+ "interfaces" : [ ],
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "OBJECT",
+ "name" : "Post",
+ "description" : null,
+ "fields" : [ {
+ "name" : "id",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "post_type",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "post_title",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "post_name",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "post_tags",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "post_content",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "post_excerpt",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "post_status",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "comment_status",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "ping_status",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "comment_count",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "post_featured_image",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "blog",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Blog",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "createdAt",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "AWSDateTime",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "updatedAt",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "AWSDateTime",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "comments",
+ "description" : null,
+ "args" : [ {
+ "name" : "filter",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCommentFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "sortDirection",
+ "description" : null,
+ "type" : {
+ "kind" : "ENUM",
+ "name" : "ModelSortDirection",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "limit",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "nextToken",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "ModelCommentConnection",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "category",
+ "description" : null,
+ "args" : [ {
+ "name" : "filter",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCategoryFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "sortDirection",
+ "description" : null,
+ "type" : {
+ "kind" : "ENUM",
+ "name" : "ModelSortDirection",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "limit",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "nextToken",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "ModelCategoryConnection",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "inputFields" : null,
+ "interfaces" : [ ],
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "description" : "Built-in ID",
+ "fields" : null,
+ "inputFields" : null,
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "description" : "Built-in String",
+ "fields" : null,
+ "inputFields" : null,
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "description" : "Built-in Boolean",
+ "fields" : null,
+ "inputFields" : null,
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "description" : "Built-in Int",
+ "fields" : null,
+ "inputFields" : null,
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "OBJECT",
+ "name" : "Blog",
+ "description" : null,
+ "fields" : [ {
+ "name" : "id",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "title",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "posts",
+ "description" : null,
+ "args" : [ {
+ "name" : "filter",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelPostFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "sortDirection",
+ "description" : null,
+ "type" : {
+ "kind" : "ENUM",
+ "name" : "ModelSortDirection",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "limit",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "nextToken",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "ModelPostConnection",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "createdAt",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "AWSDateTime",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "updatedAt",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "AWSDateTime",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "inputFields" : null,
+ "interfaces" : [ ],
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "OBJECT",
+ "name" : "ModelPostConnection",
+ "description" : null,
+ "fields" : [ {
+ "name" : "items",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "OBJECT",
+ "name" : "Post",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "nextToken",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "inputFields" : null,
+ "interfaces" : [ ],
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelPostFilterInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelIDInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_type",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_title",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_name",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_tags",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_content",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_excerpt",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_status",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelBooleanInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "comment_status",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelBooleanInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "ping_status",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelBooleanInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "comment_count",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelIntInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_featured_image",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "and",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelPostFilterInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "or",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelPostFilterInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "not",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelPostFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelIDInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "ne",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "eq",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "le",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "lt",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "ge",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "gt",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "contains",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "notContains",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "between",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "beginsWith",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "attributeExists",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "attributeType",
+ "description" : null,
+ "type" : {
+ "kind" : "ENUM",
+ "name" : "ModelAttributeTypes",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "size",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelSizeInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "ENUM",
+ "name" : "ModelAttributeTypes",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : null,
+ "interfaces" : null,
+ "enumValues" : [ {
+ "name" : "binary",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "binarySet",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "bool",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "list",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "map",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "number",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "numberSet",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "string",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "stringSet",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "_null",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelSizeInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "ne",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "eq",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "le",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "lt",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "ge",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "gt",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "between",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "ne",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "eq",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "le",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "lt",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "ge",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "gt",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "contains",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "notContains",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "between",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "beginsWith",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "attributeExists",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "attributeType",
+ "description" : null,
+ "type" : {
+ "kind" : "ENUM",
+ "name" : "ModelAttributeTypes",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "size",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelSizeInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelBooleanInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "ne",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "eq",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "attributeExists",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "attributeType",
+ "description" : null,
+ "type" : {
+ "kind" : "ENUM",
+ "name" : "ModelAttributeTypes",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelIntInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "ne",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "eq",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "le",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "lt",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "ge",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "gt",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "between",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "attributeExists",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "attributeType",
+ "description" : null,
+ "type" : {
+ "kind" : "ENUM",
+ "name" : "ModelAttributeTypes",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "ENUM",
+ "name" : "ModelSortDirection",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : null,
+ "interfaces" : null,
+ "enumValues" : [ {
+ "name" : "ASC",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "DESC",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "possibleTypes" : null
+ }, {
+ "kind" : "SCALAR",
+ "name" : "AWSDateTime",
+ "description" : "The `AWSDateTime` scalar type provided by AWS AppSync, represents a valid ***extended*** [ISO 8601 DateTime](https://en.wikipedia.org/wiki/ISO_8601#Combined_date_and_time_representations) string. In other words, this scalar type accepts datetime strings of the form `YYYY-MM-DDThh:mm:ss.SSSZ`. The scalar can also accept \"negative years\" of the form `-YYYY` which correspond to years before `0000`. For example, \"**-2017-01-01T00:00Z**\" and \"**-9999-01-01T00:00Z**\" are both valid datetime strings. The field after the two digit seconds field is a nanoseconds field. It can accept between 1 and 9 digits. So, for example, \"**1970-01-01T12:00:00.2Z**\", \"**1970-01-01T12:00:00.277Z**\" and \"**1970-01-01T12:00:00.123456789Z**\" are all valid datetime strings. The seconds and nanoseconds fields are optional (the seconds field must be specified if the nanoseconds field is to be used). The [time zone offset](https://en.wikipedia.org/wiki/ISO_8601#Time_zone_designators) is compulsory for this scalar. The time zone offset must either be `Z` (representing the UTC time zone) or be in the format `±hh:mm:ss`. The seconds field in the timezone offset will be considered valid even though it is not part of the ISO 8601 standard.",
+ "fields" : null,
+ "inputFields" : null,
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "OBJECT",
+ "name" : "ModelCommentConnection",
+ "description" : null,
+ "fields" : [ {
+ "name" : "items",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "OBJECT",
+ "name" : "Comment",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "nextToken",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "inputFields" : null,
+ "interfaces" : [ ],
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "OBJECT",
+ "name" : "Comment",
+ "description" : null,
+ "fields" : [ {
+ "name" : "id",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "content",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "post",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Post",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "createdAt",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "AWSDateTime",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "updatedAt",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "AWSDateTime",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "owner",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "inputFields" : null,
+ "interfaces" : [ ],
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCommentFilterInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelIDInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "content",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "and",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCommentFilterInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "or",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCommentFilterInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "not",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCommentFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "OBJECT",
+ "name" : "ModelCategoryConnection",
+ "description" : null,
+ "fields" : [ {
+ "name" : "items",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "OBJECT",
+ "name" : "Category",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "nextToken",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "inputFields" : null,
+ "interfaces" : [ ],
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "OBJECT",
+ "name" : "Category",
+ "description" : null,
+ "fields" : [ {
+ "name" : "id",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "name",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "post",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Post",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "createdAt",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "AWSDateTime",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "updatedAt",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "AWSDateTime",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "inputFields" : null,
+ "interfaces" : [ ],
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCategoryFilterInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelIDInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "name",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "and",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCategoryFilterInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "or",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCategoryFilterInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "not",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCategoryFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "SearchablePostFilterInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "SearchableIDFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_type",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "SearchableStringFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_title",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "SearchableStringFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_name",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "SearchableStringFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_tags",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "SearchableStringFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_content",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "SearchableStringFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_excerpt",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "SearchableStringFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_status",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "SearchableBooleanFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "comment_status",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "SearchableBooleanFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "ping_status",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "SearchableBooleanFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "comment_count",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "SearchableIntFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_featured_image",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "SearchableStringFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "and",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "SearchablePostFilterInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "or",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "SearchablePostFilterInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "not",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "SearchablePostFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "SearchableIDFilterInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "ne",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "gt",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "lt",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "gte",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "lte",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "eq",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "match",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "matchPhrase",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "matchPhrasePrefix",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "multiMatch",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "exists",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "wildcard",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "regexp",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "range",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "SearchableStringFilterInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "ne",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "gt",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "lt",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "gte",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "lte",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "eq",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "match",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "matchPhrase",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "matchPhrasePrefix",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "multiMatch",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "exists",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "wildcard",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "regexp",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "range",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "SearchableBooleanFilterInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "eq",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "ne",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "SearchableIntFilterInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "ne",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "gt",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "lt",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "gte",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "lte",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "eq",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "range",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "SearchablePostSortInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "field",
+ "description" : null,
+ "type" : {
+ "kind" : "ENUM",
+ "name" : "SearchablePostSortableFields",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "direction",
+ "description" : null,
+ "type" : {
+ "kind" : "ENUM",
+ "name" : "SearchableSortDirection",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "ENUM",
+ "name" : "SearchablePostSortableFields",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : null,
+ "interfaces" : null,
+ "enumValues" : [ {
+ "name" : "id",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "post_type",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "post_title",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "post_name",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "post_tags",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "post_content",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "post_excerpt",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "post_status",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "comment_status",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "ping_status",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "comment_count",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "post_featured_image",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "possibleTypes" : null
+ }, {
+ "kind" : "ENUM",
+ "name" : "SearchableSortDirection",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : null,
+ "interfaces" : null,
+ "enumValues" : [ {
+ "name" : "asc",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "desc",
+ "description" : null,
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "possibleTypes" : null
+ }, {
+ "kind" : "OBJECT",
+ "name" : "ModelBlogConnection",
+ "description" : null,
+ "fields" : [ {
+ "name" : "items",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "OBJECT",
+ "name" : "Blog",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "nextToken",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "inputFields" : null,
+ "interfaces" : [ ],
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelBlogFilterInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelIDInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "title",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "and",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelBlogFilterInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "or",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelBlogFilterInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "not",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelBlogFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "OBJECT",
+ "name" : "vodAsset",
+ "description" : null,
+ "fields" : [ {
+ "name" : "id",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "title",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "description",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "createdAt",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "AWSDateTime",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "updatedAt",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "AWSDateTime",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "video",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "videoObject",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "inputFields" : null,
+ "interfaces" : [ ],
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "OBJECT",
+ "name" : "videoObject",
+ "description" : null,
+ "fields" : [ {
+ "name" : "id",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "token",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "createdAt",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "AWSDateTime",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "updatedAt",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "AWSDateTime",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "inputFields" : null,
+ "interfaces" : [ ],
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "OBJECT",
+ "name" : "ModelvodAssetConnection",
+ "description" : null,
+ "fields" : [ {
+ "name" : "items",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "OBJECT",
+ "name" : "vodAsset",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "nextToken",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "inputFields" : null,
+ "interfaces" : [ ],
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelvodAssetFilterInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelIDInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "title",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "description",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "and",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelvodAssetFilterInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "or",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelvodAssetFilterInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "not",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelvodAssetFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "OBJECT",
+ "name" : "ModelvideoObjectConnection",
+ "description" : null,
+ "fields" : [ {
+ "name" : "items",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "OBJECT",
+ "name" : "videoObject",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "nextToken",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "inputFields" : null,
+ "interfaces" : [ ],
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelvideoObjectFilterInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelIDInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "token",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "and",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelvideoObjectFilterInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "or",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelvideoObjectFilterInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "not",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelvideoObjectFilterInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "OBJECT",
+ "name" : "Mutation",
+ "description" : null,
+ "fields" : [ {
+ "name" : "createBlog",
+ "description" : null,
+ "args" : [ {
+ "name" : "input",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "CreateBlogInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "condition",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelBlogConditionInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Blog",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "updateBlog",
+ "description" : null,
+ "args" : [ {
+ "name" : "input",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "UpdateBlogInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "condition",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelBlogConditionInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Blog",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "deleteBlog",
+ "description" : null,
+ "args" : [ {
+ "name" : "input",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "DeleteBlogInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "condition",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelBlogConditionInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Blog",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "createPost",
+ "description" : null,
+ "args" : [ {
+ "name" : "input",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "CreatePostInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "condition",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelPostConditionInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Post",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "updatePost",
+ "description" : null,
+ "args" : [ {
+ "name" : "input",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "UpdatePostInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "condition",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelPostConditionInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Post",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "deletePost",
+ "description" : null,
+ "args" : [ {
+ "name" : "input",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "DeletePostInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "condition",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelPostConditionInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Post",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "createComment",
+ "description" : null,
+ "args" : [ {
+ "name" : "input",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "CreateCommentInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "condition",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCommentConditionInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Comment",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "updateComment",
+ "description" : null,
+ "args" : [ {
+ "name" : "input",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "UpdateCommentInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "condition",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCommentConditionInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Comment",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "deleteComment",
+ "description" : null,
+ "args" : [ {
+ "name" : "input",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "DeleteCommentInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "condition",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCommentConditionInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Comment",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "createCategory",
+ "description" : null,
+ "args" : [ {
+ "name" : "input",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "CreateCategoryInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "condition",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCategoryConditionInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Category",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "updateCategory",
+ "description" : null,
+ "args" : [ {
+ "name" : "input",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "UpdateCategoryInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "condition",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCategoryConditionInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Category",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "deleteCategory",
+ "description" : null,
+ "args" : [ {
+ "name" : "input",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "DeleteCategoryInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "condition",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCategoryConditionInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Category",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "createVodAsset",
+ "description" : null,
+ "args" : [ {
+ "name" : "input",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "CreateVodAssetInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "condition",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelvodAssetConditionInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "vodAsset",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "updateVodAsset",
+ "description" : null,
+ "args" : [ {
+ "name" : "input",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "UpdateVodAssetInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "condition",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelvodAssetConditionInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "vodAsset",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "deleteVodAsset",
+ "description" : null,
+ "args" : [ {
+ "name" : "input",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "DeleteVodAssetInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "condition",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelvodAssetConditionInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "vodAsset",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "createVideoObject",
+ "description" : null,
+ "args" : [ {
+ "name" : "input",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "CreateVideoObjectInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "condition",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelvideoObjectConditionInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "videoObject",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "updateVideoObject",
+ "description" : null,
+ "args" : [ {
+ "name" : "input",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "UpdateVideoObjectInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "condition",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelvideoObjectConditionInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "videoObject",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "deleteVideoObject",
+ "description" : null,
+ "args" : [ {
+ "name" : "input",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "DeleteVideoObjectInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "condition",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelvideoObjectConditionInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "videoObject",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "inputFields" : null,
+ "interfaces" : [ ],
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "CreateBlogInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "title",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelBlogConditionInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "title",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "and",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelBlogConditionInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "or",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelBlogConditionInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "not",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelBlogConditionInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "UpdateBlogInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "title",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "DeleteBlogInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "CreatePostInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_type",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_title",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_name",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_tags",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_content",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_excerpt",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_status",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "comment_status",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "ping_status",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "comment_count",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_featured_image",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "postBlogId",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelPostConditionInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "post_type",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_title",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_name",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_tags",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_content",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_excerpt",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_status",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelBooleanInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "comment_status",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelBooleanInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "ping_status",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelBooleanInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "comment_count",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelIntInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_featured_image",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "and",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelPostConditionInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "or",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelPostConditionInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "not",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelPostConditionInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "UpdatePostInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_type",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_title",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_name",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_tags",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_content",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_excerpt",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_status",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "comment_status",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "ping_status",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "comment_count",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Int",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "post_featured_image",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "postBlogId",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "DeletePostInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "CreateCommentInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "content",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "commentPostId",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCommentConditionInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "content",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "and",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCommentConditionInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "or",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCommentConditionInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "not",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCommentConditionInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "UpdateCommentInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "content",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "commentPostId",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "DeleteCommentInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "CreateCategoryInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "name",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "categoryPostId",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCategoryConditionInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "name",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "and",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCategoryConditionInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "or",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCategoryConditionInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "not",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelCategoryConditionInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "UpdateCategoryInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "name",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "categoryPostId",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "DeleteCategoryInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "CreateVodAssetInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "title",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "description",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "vodAssetVideoId",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelvodAssetConditionInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "title",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "description",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "and",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelvodAssetConditionInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "or",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelvodAssetConditionInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "not",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelvodAssetConditionInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "UpdateVodAssetInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "title",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "description",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "vodAssetVideoId",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "DeleteVodAssetInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "CreateVideoObjectInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "token",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelvideoObjectConditionInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "token",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelStringInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "and",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelvideoObjectConditionInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "or",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelvideoObjectConditionInput",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "not",
+ "description" : null,
+ "type" : {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelvideoObjectConditionInput",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "UpdateVideoObjectInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "token",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "DeleteVideoObjectInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "id",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "ID",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "OBJECT",
+ "name" : "Subscription",
+ "description" : null,
+ "fields" : [ {
+ "name" : "onCreateVodAsset",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "vodAsset",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "onUpdateVodAsset",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "vodAsset",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "onDeleteVodAsset",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "vodAsset",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "onCreateComment",
+ "description" : null,
+ "args" : [ {
+ "name" : "owner",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Comment",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "onUpdateComment",
+ "description" : null,
+ "args" : [ {
+ "name" : "owner",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Comment",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "onDeleteComment",
+ "description" : null,
+ "args" : [ {
+ "name" : "owner",
+ "description" : null,
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ } ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Comment",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "onCreateCategory",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Category",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "onUpdateCategory",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Category",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "onDeleteCategory",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "Category",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "onCreateVideoObject",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "videoObject",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "onUpdateVideoObject",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "videoObject",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "onDeleteVideoObject",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "videoObject",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "inputFields" : null,
+ "interfaces" : [ ],
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "SearchableFloatFilterInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "ne",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Float",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "gt",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Float",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "lt",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Float",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "gte",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Float",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "lte",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Float",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "eq",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Float",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "range",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "Float",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "SCALAR",
+ "name" : "Float",
+ "description" : "Built-in Float",
+ "fields" : null,
+ "inputFields" : null,
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "INPUT_OBJECT",
+ "name" : "ModelFloatInput",
+ "description" : null,
+ "fields" : null,
+ "inputFields" : [ {
+ "name" : "ne",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Float",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "eq",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Float",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "le",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Float",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "lt",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Float",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "ge",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Float",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "gt",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Float",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "between",
+ "description" : null,
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "Float",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "attributeExists",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ }, {
+ "name" : "attributeType",
+ "description" : null,
+ "type" : {
+ "kind" : "ENUM",
+ "name" : "ModelAttributeTypes",
+ "ofType" : null
+ },
+ "defaultValue" : null
+ } ],
+ "interfaces" : null,
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "OBJECT",
+ "name" : "__Schema",
+ "description" : "A GraphQL Introspection defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, the entry points for query, mutation, and subscription operations.",
+ "fields" : [ {
+ "name" : "types",
+ "description" : "A list of all types supported by this server.",
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "OBJECT",
+ "name" : "__Type",
+ "ofType" : null
+ }
+ }
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "queryType",
+ "description" : "The type that query operations will be rooted at.",
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "OBJECT",
+ "name" : "__Type",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "mutationType",
+ "description" : "If this server supports mutation, the type that mutation operations will be rooted at.",
+ "args" : [ ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "__Type",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "directives",
+ "description" : "'A list of all directives supported by this server.",
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "OBJECT",
+ "name" : "__Directive",
+ "ofType" : null
+ }
+ }
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "subscriptionType",
+ "description" : "'If this server support subscription, the type that subscription operations will be rooted at.",
+ "args" : [ ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "__Type",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "inputFields" : null,
+ "interfaces" : [ ],
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "OBJECT",
+ "name" : "__Type",
+ "description" : null,
+ "fields" : [ {
+ "name" : "kind",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "ENUM",
+ "name" : "__TypeKind",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "name",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "description",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "fields",
+ "description" : null,
+ "args" : [ {
+ "name" : "includeDeprecated",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "defaultValue" : "false"
+ } ],
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "OBJECT",
+ "name" : "__Field",
+ "ofType" : null
+ }
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "interfaces",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "OBJECT",
+ "name" : "__Type",
+ "ofType" : null
+ }
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "possibleTypes",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "OBJECT",
+ "name" : "__Type",
+ "ofType" : null
+ }
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "enumValues",
+ "description" : null,
+ "args" : [ {
+ "name" : "includeDeprecated",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "defaultValue" : "false"
+ } ],
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "OBJECT",
+ "name" : "__EnumValue",
+ "ofType" : null
+ }
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "inputFields",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "OBJECT",
+ "name" : "__InputValue",
+ "ofType" : null
+ }
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "ofType",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "OBJECT",
+ "name" : "__Type",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "inputFields" : null,
+ "interfaces" : [ ],
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "ENUM",
+ "name" : "__TypeKind",
+ "description" : "An enum describing what kind of type a given __Type is",
+ "fields" : null,
+ "inputFields" : null,
+ "interfaces" : null,
+ "enumValues" : [ {
+ "name" : "SCALAR",
+ "description" : "Indicates this type is a scalar.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "OBJECT",
+ "description" : "Indicates this type is an object. `fields` and `interfaces` are valid fields.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "INTERFACE",
+ "description" : "Indicates this type is an interface. `fields` and `possibleTypes` are valid fields.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "UNION",
+ "description" : "Indicates this type is a union. `possibleTypes` is a valid field.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "ENUM",
+ "description" : "Indicates this type is an enum. `enumValues` is a valid field.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "INPUT_OBJECT",
+ "description" : "Indicates this type is an input object. `inputFields` is a valid field.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "LIST",
+ "description" : "Indicates this type is a list. `ofType` is a valid field.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "NON_NULL",
+ "description" : "Indicates this type is a non-null. `ofType` is a valid field.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "possibleTypes" : null
+ }, {
+ "kind" : "OBJECT",
+ "name" : "__Field",
+ "description" : null,
+ "fields" : [ {
+ "name" : "name",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "description",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "args",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "OBJECT",
+ "name" : "__InputValue",
+ "ofType" : null
+ }
+ }
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "type",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "OBJECT",
+ "name" : "__Type",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "isDeprecated",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "deprecationReason",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "inputFields" : null,
+ "interfaces" : [ ],
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "OBJECT",
+ "name" : "__InputValue",
+ "description" : null,
+ "fields" : [ {
+ "name" : "name",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "description",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "type",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "OBJECT",
+ "name" : "__Type",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "defaultValue",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "inputFields" : null,
+ "interfaces" : [ ],
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "OBJECT",
+ "name" : "__EnumValue",
+ "description" : null,
+ "fields" : [ {
+ "name" : "name",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "description",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "isDeprecated",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "deprecationReason",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "inputFields" : null,
+ "interfaces" : [ ],
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "OBJECT",
+ "name" : "__Directive",
+ "description" : null,
+ "fields" : [ {
+ "name" : "name",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "description",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "locations",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "ENUM",
+ "name" : "__DirectiveLocation",
+ "ofType" : null
+ }
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "args",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "OBJECT",
+ "name" : "__InputValue",
+ "ofType" : null
+ }
+ }
+ }
+ },
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "onOperation",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "isDeprecated" : true,
+ "deprecationReason" : "Use `locations`."
+ }, {
+ "name" : "onFragment",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "isDeprecated" : true,
+ "deprecationReason" : "Use `locations`."
+ }, {
+ "name" : "onField",
+ "description" : null,
+ "args" : [ ],
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ },
+ "isDeprecated" : true,
+ "deprecationReason" : "Use `locations`."
+ } ],
+ "inputFields" : null,
+ "interfaces" : [ ],
+ "enumValues" : null,
+ "possibleTypes" : null
+ }, {
+ "kind" : "ENUM",
+ "name" : "__DirectiveLocation",
+ "description" : "An enum describing valid locations where a directive can be placed",
+ "fields" : null,
+ "inputFields" : null,
+ "interfaces" : null,
+ "enumValues" : [ {
+ "name" : "QUERY",
+ "description" : "Indicates the directive is valid on queries.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "MUTATION",
+ "description" : "Indicates the directive is valid on mutations.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "FIELD",
+ "description" : "Indicates the directive is valid on fields.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "FRAGMENT_DEFINITION",
+ "description" : "Indicates the directive is valid on fragment definitions.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "FRAGMENT_SPREAD",
+ "description" : "Indicates the directive is valid on fragment spreads.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "INLINE_FRAGMENT",
+ "description" : "Indicates the directive is valid on inline fragments.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "SCHEMA",
+ "description" : "Indicates the directive is valid on a schema SDL definition.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "SCALAR",
+ "description" : "Indicates the directive is valid on a scalar SDL definition.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "OBJECT",
+ "description" : "Indicates the directive is valid on an object SDL definition.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "FIELD_DEFINITION",
+ "description" : "Indicates the directive is valid on a field SDL definition.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "ARGUMENT_DEFINITION",
+ "description" : "Indicates the directive is valid on a field argument SDL definition.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "INTERFACE",
+ "description" : "Indicates the directive is valid on an interface SDL definition.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "UNION",
+ "description" : "Indicates the directive is valid on an union SDL definition.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "ENUM",
+ "description" : "Indicates the directive is valid on an enum SDL definition.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "ENUM_VALUE",
+ "description" : "Indicates the directive is valid on an enum value SDL definition.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "INPUT_OBJECT",
+ "description" : "Indicates the directive is valid on an input object SDL definition.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ }, {
+ "name" : "INPUT_FIELD_DEFINITION",
+ "description" : "Indicates the directive is valid on an input object field SDL definition.",
+ "isDeprecated" : false,
+ "deprecationReason" : null
+ } ],
+ "possibleTypes" : null
+ } ],
+ "directives" : [ {
+ "name" : "include",
+ "description" : "Directs the executor to include this field or fragment only when the `if` argument is true",
+ "locations" : [ "FIELD", "FRAGMENT_SPREAD", "INLINE_FRAGMENT" ],
+ "args" : [ {
+ "name" : "if",
+ "description" : "Included when true.",
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ } ],
+ "onOperation" : false,
+ "onFragment" : true,
+ "onField" : true
+ }, {
+ "name" : "skip",
+ "description" : "Directs the executor to skip this field or fragment when the `if`'argument is true.",
+ "locations" : [ "FIELD", "FRAGMENT_SPREAD", "INLINE_FRAGMENT" ],
+ "args" : [ {
+ "name" : "if",
+ "description" : "Skipped when true.",
+ "type" : {
+ "kind" : "NON_NULL",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "Boolean",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ } ],
+ "onOperation" : false,
+ "onFragment" : true,
+ "onField" : true
+ }, {
+ "name" : "defer",
+ "description" : "This directive allows results to be deferred during execution",
+ "locations" : [ "FIELD" ],
+ "args" : [ ],
+ "onOperation" : false,
+ "onFragment" : false,
+ "onField" : true
+ }, {
+ "name" : "aws_subscribe",
+ "description" : "Tells the service which mutation triggers this subscription.",
+ "locations" : [ "FIELD_DEFINITION" ],
+ "args" : [ {
+ "name" : "mutations",
+ "description" : "List of mutations which will trigger this subscription when they are called.",
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ } ],
+ "onOperation" : false,
+ "onFragment" : false,
+ "onField" : false
+ }, {
+ "name" : "aws_publish",
+ "description" : "Tells the service which subscriptions will be published to when this mutation is called. This directive is deprecated use @aws_susbscribe directive instead.",
+ "locations" : [ "FIELD_DEFINITION" ],
+ "args" : [ {
+ "name" : "subscriptions",
+ "description" : "List of subscriptions which will be published to when this mutation is called.",
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ } ],
+ "onOperation" : false,
+ "onFragment" : false,
+ "onField" : false
+ }, {
+ "name" : "aws_iam",
+ "description" : "Tells the service this field/object has access authorized by sigv4 signing.",
+ "locations" : [ "OBJECT", "FIELD_DEFINITION" ],
+ "args" : [ ],
+ "onOperation" : false,
+ "onFragment" : false,
+ "onField" : false
+ }, {
+ "name" : "aws_oidc",
+ "description" : "Tells the service this field/object has access authorized by an OIDC token.",
+ "locations" : [ "OBJECT", "FIELD_DEFINITION" ],
+ "args" : [ ],
+ "onOperation" : false,
+ "onFragment" : false,
+ "onField" : false
+ }, {
+ "name" : "aws_api_key",
+ "description" : "Tells the service this field/object has access authorized by an API key.",
+ "locations" : [ "OBJECT", "FIELD_DEFINITION" ],
+ "args" : [ ],
+ "onOperation" : false,
+ "onFragment" : false,
+ "onField" : false
+ }, {
+ "name" : "aws_auth",
+ "description" : "Directs the schema to enforce authorization on a field",
+ "locations" : [ "FIELD_DEFINITION" ],
+ "args" : [ {
+ "name" : "cognito_groups",
+ "description" : "List of cognito user pool groups which have access on this field",
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ } ],
+ "onOperation" : false,
+ "onFragment" : false,
+ "onField" : false
+ }, {
+ "name" : "deprecated",
+ "description" : null,
+ "locations" : [ "FIELD_DEFINITION", "ENUM_VALUE" ],
+ "args" : [ {
+ "name" : "reason",
+ "description" : null,
+ "type" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ },
+ "defaultValue" : "\"No longer supported\""
+ } ],
+ "onOperation" : false,
+ "onFragment" : false,
+ "onField" : false
+ }, {
+ "name" : "aws_cognito_user_pools",
+ "description" : "Tells the service this field/object has access authorized by a Cognito User Pools token.",
+ "locations" : [ "OBJECT", "FIELD_DEFINITION" ],
+ "args" : [ {
+ "name" : "cognito_groups",
+ "description" : "List of cognito user pool groups which have access on this field",
+ "type" : {
+ "kind" : "LIST",
+ "name" : null,
+ "ofType" : {
+ "kind" : "SCALAR",
+ "name" : "String",
+ "ofType" : null
+ }
+ },
+ "defaultValue" : null
+ } ],
+ "onOperation" : false,
+ "onFragment" : false,
+ "onField" : false
+ } ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/frontend/admin/src/layout/AppMenu.tsx b/frontend/admin/src/layout/AppMenu.tsx
new file mode 100644
index 000000000..1f39fb7e3
--- /dev/null
+++ b/frontend/admin/src/layout/AppMenu.tsx
@@ -0,0 +1,112 @@
+import ActiveLink from '@/components/ActiveLink';
+import TitleLogo from '@/components/global/logos/TitleLogo';
+
+export const AppMenu = (props) => {
+ const { setOverlayMenuActive, overlayMenuActive } = props;
+
+ return (
+
+ );
+};
diff --git a/frontend/admin/src/layout/AppTopbar.tsx b/frontend/admin/src/layout/AppTopbar.tsx
new file mode 100644
index 000000000..8f5b2c9f4
--- /dev/null
+++ b/frontend/admin/src/layout/AppTopbar.tsx
@@ -0,0 +1,280 @@
+import { useState } from 'react';
+import Link from 'next/link';
+import ActiveLink from '@/components/ActiveLink';
+import { Transition } from '@headlessui/react';
+import OutsideClick from '@/components/OutsideClick';
+import TitleLogo from '@/components/global/logos/TitleLogo';
+
+export const AppTopbar = (props) => {
+ const { setOverlayMenuActive, overlayMenuActive } = props;
+
+ const [userMenu, setUserMenu] = useState(false);
+
+ return (
+
+ );
+};
diff --git a/frontend/admin/src/pages/[...permalink].tsx b/frontend/admin/src/pages/[...permalink].tsx
new file mode 100644
index 000000000..4e9d756fe
--- /dev/null
+++ b/frontend/admin/src/pages/[...permalink].tsx
@@ -0,0 +1,130 @@
+import Head from 'next/head';
+import DefaultErrorPage from 'next/error';
+import { useRouter } from 'next/router';
+
+import admin from '@/utils/firebaseAdmin';
+
+import renderToString from 'next-mdx-remote/render-to-string';
+import hydrate from 'next-mdx-remote/hydrate';
+import parse from 'remark-parse';
+import mdx from 'remark-mdx';
+
+import RecentPostsList from '@/components/RecentPostsList';
+
+export default function Post({ post, markdown, recentPosts }) {
+ const router = useRouter();
+ if (router.isFallback) {
+ return
Loading ...
;
+ }
+
+ if (!post) {
+ return (
+ <>
+
+
+
+
+ >
+ );
+ }
+
+ const content = hydrate(markdown);
+ return (
+
+
+
{post.post_title}
+
+ {content}
+
+
+
+
+
+ Recent Posts
+
+
+
+ Recent Tutorials
+
+
+
+ Recent Podcasts
+
+
+
+
+
+ );
+}
+
+export async function getStaticPaths() {
+ const POSTS = [];
+ ['post', 'tutorials', 'podcasts'].forEach(async (postType) => {
+ const posts = await admin
+ .firestore()
+ .collection(postType === 'post' ? 'posts' : postType)
+ .orderBy('post_publish_datetime', 'desc')
+ .get();
+ for (const doc of posts.docs) {
+ POSTS.push({
+ params: {
+ permalink: doc.data().post_permalink.substring(1).split('/'),
+ },
+ });
+ }
+ });
+ return {
+ paths: POSTS,
+ fallback: true,
+ };
+}
+
+export async function getStaticProps({ params }) {
+ const { permalink } = params;
+
+ const posts = await admin
+ .firestore()
+ .collection(permalink.length > 1 ? `${permalink[0]}` : 'posts')
+ .where('post_permalink', '==', `/${permalink.join('/')}`)
+ .get();
+
+ let postData;
+ for (const doc of posts.docs) {
+ postData = doc.data();
+ }
+ const post = posts.docs.length > 0 ? postData : null;
+ const markdown = post
+ ? await renderToString(postData.post_content, {
+ mdxOptions: {
+ remarkPlugins: [parse, mdx],
+ },
+ })
+ : null;
+
+ const recentPosts = { post: [], tutorials: [], podcasts: [] };
+ await Promise.all(
+ Object.keys(recentPosts).map(async (postType) => {
+ const posts = await admin
+ .firestore()
+ .collection(postType === 'post' ? 'posts' : postType)
+ .orderBy('post_publish_datetime', 'desc')
+ .limit(3)
+ .get();
+ for (const doc of posts.docs) {
+ recentPosts[postType].push(doc.data());
+ }
+ })
+ );
+
+ return {
+ props: {
+ post,
+ markdown,
+ recentPosts,
+ },
+ // Next.js will attempt to re-generate the page:
+ // - When a request comes in
+ // - At most once every second
+ revalidate: 1, // In seconds
+ };
+}
diff --git a/frontend/admin/src/pages/_app.tsx b/frontend/admin/src/pages/_app.tsx
index 8ec0291b6..c79e4d0a5 100644
--- a/frontend/admin/src/pages/_app.tsx
+++ b/frontend/admin/src/pages/_app.tsx
@@ -1,75 +1,78 @@
-import '@/styles/globals.css';
-import Head from 'next/head';
-
-import { createMuiTheme, ThemeProvider } from '@material-ui/core/styles';
-import { CacheProvider } from '@emotion/react';
-import CssBaseline from '@material-ui/core/CssBaseline';
-import createCache from '@emotion/cache';
+import '../styles/globals.css';
import { useState } from 'react';
+import { Transition } from '@headlessui/react';
+import router from 'next/router';
+
+import { AppTopbar } from '../layout/AppTopbar';
+import { AppMenu } from '../layout/AppMenu';
+
+import OutsideClick from '@/components/OutsideClick';
-export const cache = createCache({ key: 'css', prepend: true });
+function MyApp({ Component, pageProps }) {
+ const [overlayMenuActive, setOverlayMenuActive] = useState(false);
-function MyApp({ Component, pageProps }: { Component: any; pageProps: any }) {
- const [darkMode, setDarkMode] = useState(true);
- const mode = darkMode ? 'dark' : 'light';
- const background = darkMode
- ? { paper: '#424242', default: '#303030' }
- : { paper: '#fff', default: '#EFE4F4' };
+ let menuClick = false;
- const darkTheme = createMuiTheme({
- components: {
- MuiCssBaseline: {
- styleOverrides: {
- '@global': {
- a: {
- color: darkMode ? 'white' : '#5e1185',
- },
- '.editor-toolbar': {
- backgroundColor: background.paper,
- },
- '.CodeMirror': {
- backgroundColor: background.paper,
- color: darkMode ? 'white' : 'black',
- },
- '.editor-preview-side': {
- backgroundColor: background.paper,
- },
- },
- },
- },
- },
- palette: {
- mode,
- primary: {
- main: '#5e1185',
- },
- secondary: {
- main: '#D11663',
- },
- background,
- },
- });
- const handleThemeChange = () => {
- setDarkMode(!darkMode);
+ const onSidebarClick = () => {
+ menuClick = true;
};
+ const onMenuItemClick = (event) => {
+ if (!event.item.items) {
+ setOverlayMenuActive(false);
+ }
+ };
+ const onShowMenuButton = (event) => {
+ console.log(event);
+ };
+
+ router.events.on('routeChangeComplete', () => setOverlayMenuActive(false));
return (
<>
-
-
- CodingCatDev
-
-
-
- {/* CssBaseline kickstart an elegant, consistent, and simple baseline to build upon. */}
-
-
-
-
+
>
);
}
diff --git a/frontend/admin/src/pages/_document.tsx b/frontend/admin/src/pages/_document.tsx
index c5d75bb80..4cb9d6e6b 100644
--- a/frontend/admin/src/pages/_document.tsx
+++ b/frontend/admin/src/pages/_document.tsx
@@ -1,31 +1,15 @@
-import Document, {
- Html,
- Head,
- Main,
- NextScript,
- DocumentContext,
-} from 'next/document';
-import React from 'react';
-import { ServerStyleSheets } from '@material-ui/core/styles';
-import createEmotionServer from '@emotion/server/create-instance';
-import { cache } from './_app';
-const { extractCritical } = createEmotionServer(cache);
+import Document, { Html, Head, Main, NextScript } from 'next/document';
class MyDocument extends Document {
- static async getInitialProps(ctx: DocumentContext) {
+ static async getInitialProps(ctx) {
const initialProps = await Document.getInitialProps(ctx);
return { ...initialProps };
}
render() {
return (
-
+
-
-
@@ -151,55 +135,3 @@ class MyDocument extends Document {
}
export default MyDocument;
-
-// `getInitialProps` belongs to `_document` (instead of `_app`),
-// it's compatible with static-site generation (SSG).
-MyDocument.getInitialProps = async (ctx) => {
- // Resolution order
- //
- // On the server:
- // 1. app.getInitialProps
- // 2. page.getInitialProps
- // 3. document.getInitialProps
- // 4. app.render
- // 5. page.render
- // 6. document.render
- //
- // On the server with error:
- // 1. document.getInitialProps
- // 2. app.render
- // 3. page.render
- // 4. document.render
- //
- // On the client
- // 1. app.getInitialProps
- // 2. page.getInitialProps
- // 3. app.render
- // 4. page.render
-
- // Render app and page and get the context of the page with collected side effects.
- const sheets = new ServerStyleSheets();
- const originalRenderPage = ctx.renderPage;
-
- ctx.renderPage = () =>
- originalRenderPage({
- enhanceApp: (App) => (props) => sheets.collect(
),
- });
-
- const initialProps = await Document.getInitialProps(ctx);
- const styles = extractCritical(initialProps.html);
- return {
- ...initialProps,
- // Styles fragment is rendered after the app and page rendering finish.
- styles: [
- ...React.Children.toArray(initialProps.styles),
- sheets.getStyleElement(),
- ,
- ],
- };
-};
diff --git a/frontend/admin/src/pages/admin/[type].tsx b/frontend/admin/src/pages/admin/[type].tsx
index c873b4301..49ce740b8 100644
--- a/frontend/admin/src/pages/admin/[type].tsx
+++ b/frontend/admin/src/pages/admin/[type].tsx
@@ -2,57 +2,20 @@ import Head from 'next/head';
import dynamic from 'next/dynamic';
import { withRouter } from 'next/router';
-import Layout from '@/layout/Layout';
-import { Grid } from '@material-ui/core';
+import AdminMenu from '@/components/Admin/AdminMenu';
+import AdminTopBar from '@/components/Admin/AdminTopBar';
-import { PostType } from '@/models/post.model';
-import { useState, useEffect } from 'react';
const EditPosts = dynamic(() => import('@/components/Admin/EditPosts'), {
ssr: false,
- loading: () =>
Loading EditPosts...
,
+ loading: () =>
Climbing a tree...
,
});
-const CreatePost = dynamic(() => import('@/components/Admin/CreatePost'), {
- ssr: false,
-});
-
-function AdminDashboard({
- router,
- handleThemeChange,
- darkMode,
-}: {
- router: any;
- handleThemeChange: any;
- darkMode: boolean;
-}) {
- const [type, setType] = useState(PostType.post);
-
- useEffect(() => {
- const pathType = router.query.type;
- switch (pathType) {
- case 'courses':
- setType(PostType.course);
- break;
- case 'lessons':
- setType(PostType.lesson);
- break;
- case 'tutorials':
- setType(PostType.tutorial);
- break;
- case 'podcasts':
- setType(PostType.podcast);
- break;
- default:
- setType(PostType.post);
- break;
- }
- }, [router]);
-
+function AdminDashboard({ router }) {
const path = `/${router.asPath.substring(
router.asPath.lastIndexOf('/') + 1
)}`;
return (
-
+ <>
{`Admin-${path.substr(1).substr(0, 1).toUpperCase()}${path.substr(
@@ -62,29 +25,32 @@ function AdminDashboard({
-
- {' '}
- {router.asPath === path ? (
-
-
Dashboard
-
Show some welcoming things here.
-
- ) : (
- <>
-
-
-
+
+
+
+
+
+
+ {router.asPath === path ? (
+
+
+ Dashboard
+
+
Show some welcoming things here.
+
+ ) : (
+
+
+
+ )}
- >
- )}
-
-
+
+
+
+ >
);
}
diff --git a/frontend/admin/src/pages/admin/[type]/[id].tsx b/frontend/admin/src/pages/admin/[type]/[id].tsx
index 809c5772d..41c962e48 100644
--- a/frontend/admin/src/pages/admin/[type]/[id].tsx
+++ b/frontend/admin/src/pages/admin/[type]/[id].tsx
@@ -2,57 +2,38 @@ import Head from 'next/head';
import dynamic from 'next/dynamic';
import { withRouter } from 'next/router';
-import Layout from '@/layout/Layout';
-import { useEffect, useState } from 'react';
-import { PostType } from '@/models/post.model';
+import AdminMenu from '@/components/Admin/AdminMenu';
+import AdminTopBar from '@/components/Admin/AdminTopBar';
-// const EditPost = dynamic(() => import('@/components/Admin/EditPost'), {
-// ssr: false,
-// loading: () =>
Loading EditPost...
,
-// });
+const EditPost = dynamic(() => import('@/components/Admin/EditPost'), {
+ ssr: false,
+ loading: () =>
Chasing a mouse...
,
+});
-import EditPost from '@/components/Admin/EditPost';
-
-function AdminDashboard({
- router,
- handleThemeChange,
- darkMode,
-}: {
- router: any;
- handleThemeChange: any;
- darkMode: boolean;
-}) {
- const [type, setType] = useState(PostType.post);
-
- useEffect(() => {
- const pathType = router.query.type;
- switch (pathType) {
- case 'courses':
- setType(PostType.course);
- break;
- case 'lessons':
- setType(PostType.lesson);
- break;
- case 'tutorials':
- setType(PostType.tutorial);
- break;
- case 'podcasts':
- setType(PostType.podcast);
- break;
- default:
- setType(PostType.post);
- break;
- }
- }, [router]);
+function AdminDashboard({ router }) {
return (
-
+ <>
- {`Edit ${router.query.type} | CodingCatDev`}
+ {`Edit ${router.query.type}| CodingCatDev`}
-
-
+
+ >
);
}
diff --git a/frontend/admin/src/pages/admin/index.tsx b/frontend/admin/src/pages/admin/index.tsx
new file mode 100644
index 000000000..e4392c7c0
--- /dev/null
+++ b/frontend/admin/src/pages/admin/index.tsx
@@ -0,0 +1,64 @@
+import Head from 'next/head';
+import dynamic from 'next/dynamic';
+import { withRouter } from 'next/router';
+
+import AdminMenu from '@/components/Admin/AdminMenu';
+import AdminTopBar from '@/components/Admin/AdminTopBar';
+
+const EditPosts = dynamic(() => import('@/components/Admin/EditPosts'), {
+ ssr: false,
+ loading: () =>
Climbing a tree...
,
+});
+
+function AdminDashboard({ router }) {
+ const path = `/${router.asPath.substring(
+ router.asPath.lastIndexOf('/') + 1
+ )}`;
+ return (
+
+
+
+ {`${path.substr(1).substr(0, 1).toUpperCase()}${path.substr(2)}`} |
+ CodingCatDev
+
+
+
+
+
+ <>
+
+
+
+
+
+
+ {router.asPath === path ? (
+
+
+ Dashboard
+
+
+ Show some welcoming things here.
+
+
+ ) : (
+
+
+
+ )}
+
+
+
+
+ >
+
+
+
+
+ );
+}
+
+export default withRouter(AdminDashboard);
diff --git a/frontend/admin/src/pages/api/.gitkeep b/frontend/admin/src/pages/api/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/frontend/admin/src/pages/blog.tsx b/frontend/admin/src/pages/blog.tsx
new file mode 100644
index 000000000..5bd29ba10
--- /dev/null
+++ b/frontend/admin/src/pages/blog.tsx
@@ -0,0 +1,43 @@
+import Head from 'next/head';
+import PostsCards from '@/components/PostsCards';
+
+import admin from '@/utils/firebaseAdmin';
+
+export default function Blog({ posts }) {
+ return (
+
+
+
Blog | CodingCatDev
+
+
+
+
+
+
+
+
+ );
+}
+
+export async function getStaticProps() {
+ const postDocs = await admin
+ .firestore()
+ .collection('posts')
+ .orderBy('post_publish_datetime', 'desc')
+ .get();
+
+ const posts = [];
+ for (const doc of postDocs.docs) {
+ posts.push(doc.data());
+ }
+
+ return {
+ props: {
+ posts,
+ },
+ // Next.js will attempt to re-generate the page:
+ // - When a request comes in
+ // - At most once every second
+ revalidate: 1, // In seconds
+ };
+}
diff --git a/frontend/admin/src/pages/community.tsx b/frontend/admin/src/pages/community.tsx
new file mode 100644
index 000000000..1e141c4f6
--- /dev/null
+++ b/frontend/admin/src/pages/community.tsx
@@ -0,0 +1,17 @@
+import Head from 'next/head';
+
+export default function Tutorials() {
+ return (
+
+
+
Community | CodingCatDev
+
+
+
+ Welcome to the community page!
+
+
+
+
+ );
+}
diff --git a/frontend/admin/src/pages/courses.tsx b/frontend/admin/src/pages/courses.tsx
new file mode 100644
index 000000000..df583d170
--- /dev/null
+++ b/frontend/admin/src/pages/courses.tsx
@@ -0,0 +1,17 @@
+import Head from 'next/head';
+
+export default function Courses() {
+ return (
+
+
+
Courses | CodingCatDev
+
+
+
+ Courses coming soon
+
+
+
+
+ );
+}
diff --git a/frontend/admin/src/pages/design/atoms.tsx b/frontend/admin/src/pages/design/atoms.tsx
new file mode 100644
index 000000000..3ca4d7650
--- /dev/null
+++ b/frontend/admin/src/pages/design/atoms.tsx
@@ -0,0 +1,116 @@
+import Head from 'next/head';
+import AJLogo from '../../components/global/icons/AJLogo';
+
+export default function Blog({ posts }) {
+ return (
+ <>
+
+
Design | CodingCatDev
+
+
+
+
+ {/* Typography */}
+
+
+
+
Henny Penny
+
+
Henny Penny
+ Henny Penny
+ Henny Penny
+ Henny Penny
+ Henny Penny
+ Henny Penny
+
+
+
+
Nunito
+
+
+ The quick brown fox jumps over the lazy dog.
+
+
+ The quick brown fox jumps over the lazy dog.
+
+
+ The quick brown fox jumps over the lazy dog.
+
+
+ The quick brown fox jumps over the lazy dog.
+
+
+ The quick brown fox jumps over the lazy dog.
+
+
+ The quick brown fox jumps over the lazy dog.
+
+
+
+
+
+ {/* Typography */}
+
+
+
+
+
h-1
+
+
h-2
+
+
h-3
+
+
h-4
+
+
h-5
+
+
h-6
+
+
h-8
+
+
h-10
+
+
h-12
+
+
h-16
+
+
h-20
+
+
h-24
+
+
h-32
+
+
h-40
+
+
h-48
+
+
h-56
+
+
h-64
+
+
+
+
+
Nunito
+
+
+ The quick brown fox jumps over the lazy dog.
+
+
+
+
+
+ >
+ );
+}
diff --git a/frontend/admin/src/pages/design/components.tsx b/frontend/admin/src/pages/design/components.tsx
new file mode 100644
index 000000000..5f225035d
--- /dev/null
+++ b/frontend/admin/src/pages/design/components.tsx
@@ -0,0 +1,40 @@
+import Head from 'next/head';
+import AJLogo from '@/components/global/icons/AJLogo';
+import TitleSloganLogo from '@/components/global/logos/TitleSloganLogo';
+import TitleLogo from '@/components/global/logos/TitleLogo';
+
+export default function Blog({ posts }) {
+ return (
+ <>
+
+
Design | CodingCatDev
+
+
+
+ >
+ );
+}
diff --git a/frontend/admin/src/pages/design/index.tsx b/frontend/admin/src/pages/design/index.tsx
new file mode 100644
index 000000000..66e6613d2
--- /dev/null
+++ b/frontend/admin/src/pages/design/index.tsx
@@ -0,0 +1,25 @@
+import Head from 'next/head';
+import Link from 'next/link';
+
+export default function Blog({ posts }) {
+ return (
+
+
+
Design | CodingCatDev
+
+
+
+
+
+
+
+ );
+}
diff --git a/frontend/admin/src/pages/index.tsx b/frontend/admin/src/pages/index.tsx
index 597377061..433bc5be7 100644
--- a/frontend/admin/src/pages/index.tsx
+++ b/frontend/admin/src/pages/index.tsx
@@ -1,37 +1,50 @@
import Head from 'next/head';
-import { withRouter } from 'next/router';
-import Layout from '@/layout/Layout';
+import admin from '@/utils/firebaseAdmin';
-function AdminDashboard({
- router,
- handleThemeChange,
- darkMode,
-}: {
- router: any;
- handleThemeChange: any;
- darkMode: boolean;
-}) {
- const path = `/${router.asPath.substring(
- router.asPath.lastIndexOf('/') + 1
- )}`;
+import RecentPostsCards from '@/components/RecentPostsCards';
+import Intro from '@/components/Home/Intro';
+
+export default function Home({ recentPosts }) {
return (
-
+
-
- {`${path.substr(1).substr(0, 1).toUpperCase()}${path.substr(2)}`} |
- CodingCatDev
-
-
+
CodingCatDev
-
-
-
-
Dashboard
-
Show some welcoming things here.
-
+
+
-
+
+
+
+
+
+
);
}
-export default withRouter(AdminDashboard);
+export async function getStaticProps({ params }) {
+ const recentPosts = { post: [], tutorials: [], podcasts: [] };
+ await Promise.all(
+ Object.keys(recentPosts).map(async (postType) => {
+ const posts = await admin
+ .firestore()
+ .collection(postType === 'post' ? 'posts' : postType)
+ .orderBy('post_publish_datetime', 'desc')
+ .limit(3)
+ .get();
+ for (const doc of posts.docs) {
+ recentPosts[postType].push(doc.data());
+ }
+ })
+ );
+
+ return {
+ props: {
+ recentPosts,
+ },
+ // Next.js will attempt to re-generate the page:
+ // - When a request comes in
+ // - At most once every second
+ revalidate: 1, // In seconds
+ };
+}
diff --git a/frontend/admin/src/pages/podcasts.tsx b/frontend/admin/src/pages/podcasts.tsx
new file mode 100644
index 000000000..d06af26c9
--- /dev/null
+++ b/frontend/admin/src/pages/podcasts.tsx
@@ -0,0 +1,42 @@
+import Head from 'next/head';
+import PostsCards from '@/components/PostsCards';
+import admin from '@/utils/firebaseAdmin';
+
+export default function Podcasts({ posts }) {
+ return (
+
+
+
Podcasts | CodingCatDev
+
+
+
+
+
+
+
+
+ );
+}
+
+export async function getStaticProps() {
+ const postDocs = await admin
+ .firestore()
+ .collection('podcasts')
+ .orderBy('post_publish_datetime', 'desc')
+ .get();
+
+ const posts = [];
+ for (const doc of postDocs.docs) {
+ posts.push(doc.data());
+ }
+
+ return {
+ props: {
+ posts,
+ },
+ // Next.js will attempt to re-generate the page:
+ // - When a request comes in
+ // - At most once every second
+ revalidate: 1, // In seconds
+ };
+}
diff --git a/frontend/admin/src/pages/signin.tsx b/frontend/admin/src/pages/signin.tsx
new file mode 100644
index 000000000..3711c3d2c
--- /dev/null
+++ b/frontend/admin/src/pages/signin.tsx
@@ -0,0 +1,24 @@
+import Head from 'next/head';
+import dynamic from 'next/dynamic';
+
+const FirebaseAuth = dynamic(() => import('@/components/FirebaseAuth'), {
+ ssr: false,
+ loading: () =>
Playing with yarn...
,
+});
+
+export default function Signin() {
+ return (
+
+
+
Signin | CodingCatDev
+
+
+
+
+
+
+
+
+
+ );
+}
diff --git a/frontend/admin/src/pages/tutorials.tsx b/frontend/admin/src/pages/tutorials.tsx
new file mode 100644
index 000000000..41b4cd32d
--- /dev/null
+++ b/frontend/admin/src/pages/tutorials.tsx
@@ -0,0 +1,42 @@
+import Head from 'next/head';
+import PostsCards from '@/components/PostsCards';
+import admin from '@/utils/firebaseAdmin';
+
+export default function Tutorials({ posts }) {
+ return (
+ <>
+
+
Tutorials | CodingCatDev
+
+
+
+
+
+
+
+ >
+ );
+}
+
+export async function getStaticProps() {
+ const postDocs = await admin
+ .firestore()
+ .collection('tutorials')
+ .orderBy('post_publish_datetime', 'desc')
+ .get();
+
+ const posts = [];
+ for (const doc of postDocs.docs) {
+ posts.push(doc.data());
+ }
+
+ return {
+ props: {
+ posts,
+ },
+ // Next.js will attempt to re-generate the page:
+ // - When a request comes in
+ // - At most once every second
+ revalidate: 1, // In seconds
+ };
+}
diff --git a/frontend/admin/src/pages/user/profile.tsx b/frontend/admin/src/pages/user/profile.tsx
index 1cf1b9da0..e7977a4d8 100644
--- a/frontend/admin/src/pages/user/profile.tsx
+++ b/frontend/admin/src/pages/user/profile.tsx
@@ -1,34 +1,25 @@
import Head from 'next/head';
import dynamic from 'next/dynamic';
-import Layout from '@/layout/Layout';
-import { useUser } from '@/utils/auth/useUser';
-
-const FirebaseAuth = dynamic(() => import('@/components/FirebaseAuth'), {
- ssr: false,
- loading: () =>
Playing with yarn...
,
-});
-
const ProfileCard = dynamic(() => import('@/components/User/ProfileCard'), {
ssr: false,
loading: () =>
Chasing my tail..
,
});
-export default function Profile({
- handleThemeChange,
- darkMode,
-}: {
- handleThemeChange: any;
- darkMode: boolean;
-}) {
- const { user, signout }: { user: any; signout: any } = useUser();
-
+export default function Profile() {
return (
-
+
Profile | CodingCatDev
- {user ?
:
}
-
+
+
+
+
+
+
+
);
}
diff --git a/frontend/admin/src/services/api.ts b/frontend/admin/src/services/api.ts
index ba6342961..f185418dc 100644
--- a/frontend/admin/src/services/api.ts
+++ b/frontend/admin/src/services/api.ts
@@ -1,394 +1,57 @@
-import {
- PostType,
- PostStatus,
- PostVisibility,
- CoverMedia,
- MediaSource,
-} from './../models/post.model';
import firebase from 'firebase/app';
-import initFirebase from '@/utils/initFirebase';
-import { docData, collectionData, doc } from 'rxfire/firestore';
-import { httpsCallable } from 'rxfire/functions';
-import { filter, map, switchMap, take } from 'rxjs/operators';
-import { Post, MediaType } from '@/models/post.model';
-import { v4 as uuid } from 'uuid';
-import { from } from 'rxjs';
-import { Course, Section } from '@/models/course.model.ts';
-import { Cloudinary } from '@/models/cloudinary.model';
-import { Video } from '@/models/video.model';
-
-const firestore$ = from(initFirebase()).pipe(
- filter((app) => app !== undefined),
- map((app) => app as firebase.app.App),
- map((app) => app.firestore() as firebase.firestore.Firestore)
-);
+import 'firebase/firestore';
+import 'firebase/auth';
-const functions$ = from(initFirebase()).pipe(
- filter((app) => app !== undefined),
- map((app) => app as firebase.app.App),
- map((app) => app.functions() as firebase.functions.Functions)
-);
+import initFirebase from '@/utils/initFirebase';
+import { docData, collection, collectionData } from 'rxfire/firestore';
+import { map } from 'rxjs/operators';
+initFirebase();
+const firestore = firebase.firestore();
/* POST */
-export const postDataObservable = (path: string) => {
- return firestore$.pipe(
- switchMap((firestore) => docData(firestore.doc(path)))
- );
+
+export const postDataObservable = (id: string) => {
+ return docData(firestore.doc(id));
};
-export const postsDataObservable = (postType: string, limit: number) => {
+export const postsDataObservable = (post_type: string, limit: number) => {
if (limit && limit > 0) {
- return firestore$.pipe(
- switchMap((firestore) =>
- collectionData(
- firestore
- .collection(postType)
- .limit(limit)
- .orderBy('publishedAt', 'desc')
- )
- )
+ return collectionData(
+ firestore.collection(post_type).limit(limit).orderBy('updatedAt', 'desc')
);
} else {
- return firestore$.pipe(
- switchMap((firestore) =>
- collectionData(
- firestore.collection(postType).orderBy('publishedAt', 'desc')
- )
- )
+ return collectionData(
+ firestore.collection(post_type).orderBy('updatedAt', 'desc')
);
}
};
-export const postCreate = (type: PostType, title: string, slug: string) => {
- const id = uuid();
- const uid = firebase.auth().currentUser?.uid;
- const post: Post = {
- id,
- createdAt: firebase.firestore.Timestamp.now(),
- updatedAt: firebase.firestore.Timestamp.now(),
- // publishedAt: firebase.firestore.Timestamp.now(),
- createdBy: uid,
- updatedBy: uid,
- type,
- title,
- titleSearch: title.toLowerCase(),
- status: PostStatus.draft,
- visibility: PostVisibility.private,
- slug,
- };
-
- return firestore$.pipe(
- switchMap((firestore) => {
- const docRef = firebase.firestore().collection('posts').doc(id);
- docRef.set(post);
- return docData(docRef);
- })
- );
-};
-
-export const postUpdate = (id: string, content: string) => {
- return firestore$.pipe(
- switchMap((firestore) =>
- firestore.doc(id).set({ content }, { merge: true })
- )
- );
+export const postUpdate = (id: string, post_content: string) => {
+ firestore.doc(id).set({ post_content }, { merge: true });
};
/* POSTS */
-export const postsByUpdatedAtObservable = (postType: string, limit = 0) => {
- return firestore$.pipe(
- switchMap((firestore) => {
- let ref = firestore
- .collection('posts')
- .where('type', '==', postType)
- .orderBy('updatedAt', 'desc');
-
- if (limit && limit > 0) {
- ref = ref.limit(limit);
- }
-
- return collectionData(ref, 'id').pipe(
- map((docs) =>
- docs.map((d) => {
- return cleanTimestamp(d) as Post;
- })
- )
- );
- })
- );
-};
-
-export const postsByPublishedAtObservable = (postType: string, limit = 0) => {
- return firestore$.pipe(
- switchMap((firestore) => {
- let ref = firestore
- .collection('posts')
- .where('type', '==', postType)
- .where('publishedAt', '!=', null)
- .orderBy('publishedAt', 'desc');
-
- if (limit && limit > 0) {
- ref = ref.limit(limit);
- }
-
- return collectionData(ref, 'id').pipe(
- map((docs) =>
- docs.map((d) => {
- return cleanTimestamp(d) as Post;
- })
- )
- );
- })
- );
-};
-
-export const postsSearchByTitleObservable = (
- postType: string,
- title: string,
- limit = 20
-) => {
- return firestore$.pipe(
- switchMap((firestore) => {
- let ref = firestore
- .collection('posts')
- .where('type', '==', postType)
- .orderBy('titleSearch')
- .startAt(title)
- .endAt(title + '\uf8ff');
-
- if (limit && limit > 0) {
- ref = ref.limit(limit);
- }
-
- return collectionData(ref, 'id').pipe(
- map((docs) =>
- docs.map((d) => {
- return cleanTimestamp(d) as Post;
- })
- )
- );
- })
- );
-};
-
-export const postsSlugUnique = (slug: string) => {
- return firestore$.pipe(
- switchMap((firestore) =>
- collectionData(
- firestore.collection('posts').where('slug', '==', slug)
- ).pipe(map((posts) => (posts.length > 0 ? false : true)))
- )
- );
-};
-
-/* Post History */
-
-export const postHistoryDataObservable = (
- postId: string,
- historyId: string
-) => {
- return firestore$.pipe(
- switchMap((firestore) =>
- docData(firestore.doc(`posts/${postId}/history/${historyId}`))
- )
- );
-};
-
-export const postHistoriesDataObservable = (postId: string) => {
- return firestore$.pipe(
- switchMap((firestore) =>
- collectionData(
- firestore
- .collection(`posts/${postId}/history`)
- .orderBy('updatedAt', 'desc')
+export const postsObservable = (post_type: string, limit: number = null) => {
+ if (limit && limit > 0) {
+ return collection(
+ firestore.collection(post_type).limit(limit).orderBy('updatedAt', 'desc')
+ ).pipe(
+ map((docs) =>
+ docs.map((d) => {
+ return { ...d.data(), id: d.id };
+ })
)
- )
- );
-};
-
-export const postHistoryUpdate = (history: Post) => {
- return firestore$.pipe(
- switchMap((firestore) => {
- const docRef = firestore.doc(
- `posts/${history.postId}/history/${history.id}`
- );
- docRef.set(
- {
- ...history,
- titleSearch: history.title.toLowerCase(),
- updatedAt: firebase.firestore.Timestamp.now(),
- updatedBy: firebase.auth()?.currentUser?.uid,
- },
- { merge: true }
- );
- return docData(docRef);
- })
- );
-};
-
-export const postHistoryCreate = (history: Post) => {
- return firestore$.pipe(
- switchMap((firestore) => {
- const id = uuid();
-
- const docRef = firestore.doc(`posts/${history.postId}/history/${id}`);
- const historyUpdate = { ...history };
- if (historyUpdate.publishedAt) {
- delete historyUpdate.publishedAt;
- }
- docRef.set({
- ...historyUpdate,
- status: PostStatus.draft,
- updatedAt: firebase.firestore.Timestamp.now(),
- updatedBy: firebase.auth()?.currentUser?.uid,
- id: id,
- });
- return docData(docRef);
- })
- );
-};
-
-export const postHistoryPublish = (history: Post) => {
- return firestore$.pipe(
- switchMap((firestore) => {
- const batch = firestore.batch();
- const historyRef = firestore.doc(
- `posts/${history.postId}/history/${history.id}`
- );
- const postRef = firestore.doc(`posts/${history.postId}`);
-
- const update = {
- ...history,
- updatedAt: firebase.firestore.Timestamp.now(),
- updatedBy: firebase.auth()?.currentUser?.uid,
- };
- batch.set(historyRef, update);
- batch.set(postRef, {
- ...update,
- id: history.postId,
- historyId: history.id,
- });
- return from(batch.commit()).pipe(switchMap((b) => docData(historyRef)));
- })
- );
-};
-
-export const postHistoryMediaCreate = (
- history: Post,
- type: MediaType,
- cloudinary?: Cloudinary,
- video?: Video
-) => {
- const mediaId = uuid();
- let coverMedia: CoverMedia;
- if (cloudinary) {
- coverMedia = {
- thumbnail_url: cloudinary.thumbnail_url,
- path: cloudinary.path,
- mediaId,
- public_id: cloudinary.public_id,
- url: cloudinary.url,
- type,
- source: MediaSource.cloudinary,
- };
- } else if (video) {
- coverMedia = {
- mediaId,
- url: video.url,
- type,
- source: MediaSource.video,
- };
- }
-
- return firestore$.pipe(
- switchMap((firestore) => {
- const batch = firestore.batch();
- const mediaRef = firestore.doc(
- `posts/${history.postId}/history/${history.id}/media/${mediaId}`
- );
- batch.set(mediaRef, {
- id: mediaId,
- type,
- cloudinary: cloudinary || null,
- video: video || null,
- });
-
- const historyRef = firestore.doc(
- `posts/${history.postId}/history/${history.id}`
- );
- batch.set(historyRef, {
- ...history,
- updatedAt: firebase.firestore.Timestamp.now(),
- updatedBy: firebase.auth()?.currentUser?.uid,
- [type === MediaType.photo ? 'coverPhoto' : 'coverVideo']: coverMedia,
- });
- return from(batch.commit()).pipe(
- switchMap((b) => docData(historyRef))
- );
- })
- );
-};
-
-/* Cloudinary */
-export const getCloudinarySignature = (params: any) => {
- return functions$.pipe(
- switchMap((functions) =>
- httpsCallable(functions, 'cloudinarysignature').call('params', params)
- )
- );
-};
-
-export const getCloudinaryCookieToken = () => {
- return functions$.pipe(
- switchMap((functions) =>
- httpsCallable(functions, 'cloudinaryCookieToken').call(
- 'params',
- {}
+ );
+ } else {
+ return collection(
+ firestore.collection(post_type).orderBy('updatedAt', 'desc')
+ ).pipe(
+ map((docs) =>
+ docs.map((d) => {
+ return { ...d.data(), id: d.id };
+ })
)
- )
- );
-};
-
-/* Course
- Course is a type of post, but it also has sections, with lessons
-*/
-export const addCourseSection = (history: Course, section: Section) => {
- return firestore$.pipe(
- switchMap((firestore) => {
- const historyRef = firestore.doc(
- `posts/${history.postId}/history/${history.id}`
- );
- historyRef.update({
- sections: firebase.firestore.FieldValue.arrayUnion(section),
- });
- return docData(historyRef);
- })
- );
-};
-
-// User
-export const userProfileDataObservable = (uid: string) => {
- return firestore$.pipe(
- switchMap((firestore) =>
- docData(firestore.doc(`/profiles/${uid}`), uid)
- )
- );
+ );
+ }
};
-
-/* Utilities may be used on front end */
-export function cleanTimestamp(data: FirebaseFirestore.DocumentData) {
- const docData = { ...data };
- Object.keys(docData).map((key) => {
- if (
- typeof docData[key] === 'object' &&
- Object.keys(docData[key]).includes('nanoseconds')
- ) {
- const timestamp: firebase.firestore.Timestamp = docData[key];
- docData[key] = timestamp.toDate().toString();
- } else {
- docData[key] = docData[key];
- }
- });
- return docData;
-}
diff --git a/frontend/admin/src/styles/globals.css b/frontend/admin/src/styles/globals.css
index 651346558..d49bb8f37 100644
--- a/frontend/admin/src/styles/globals.css
+++ b/frontend/admin/src/styles/globals.css
@@ -1,9 +1,42 @@
-/* Needed for displaying correct aspect ratio */
+@import 'tailwindcss/base';
+@import 'tailwindcss/components';
+@import 'tailwindcss/utilities';
-.react-player > div {
- width: 100%;
- height: 100%;
- position: absolute;
- top: 0;
- left: 0;
+@layer base {
+ @font-face {
+ font-family: nunito;
+ font-style: normal;
+ font-weight: 600;
+ src: url(../../node_modules/typeface-nunito-sans/files/nunito-sans-latin-600.woff);
+ }
+ @font-face {
+ font-family: Henny Penny;
+ font-style: normal;
+ font-weight: 400;
+ src: url(../fonts/HennyPenny-Regular.ttf);
+ }
+ h1 {
+ @apply leading-loose text-7xl font-heading;
+ }
+ h2 {
+ @apply text-6xl leading-loose font-heading;
+ }
+ h3 {
+ @apply text-5xl leading-loose font-heading;
+ }
+ h4 {
+ @apply text-4xl leading-loose font-heading;
+ }
+ h5 {
+ @apply text-3xl leading-loose font-heading;
+ }
+ h6 {
+ @apply text-2xl leading-loose font-heading;
+ }
+}
+
+@layer components {
+ .vertical-text-clip {
+ @apply text-transparent bg-clip-text bg-gradient-to-b from-ccd-purples-800 via-ccd-purples-400 to-ccd-reds-500;
+ }
}
diff --git a/frontend/admin/src/utils/auth/firebaseAdmin.ts b/frontend/admin/src/utils/auth/firebaseAdmin.ts
index 345b27f6d..b53ba7b9f 100644
--- a/frontend/admin/src/utils/auth/firebaseAdmin.ts
+++ b/frontend/admin/src/utils/auth/firebaseAdmin.ts
@@ -1,7 +1,7 @@
-import * as admin from 'firebase-admin';
+import * as admin from 'firebase-admin'
-export const verifyIdToken = (token: string) => {
- const firebasePrivateKey = process.env.FIREBASE_PRIVATE_KEY || '';
+export const verifyIdToken = (token) => {
+ const firebasePrivateKey = process.env.FIREBASE_PRIVATE_KEY
if (!admin.apps.length) {
admin.initializeApp({
@@ -12,13 +12,13 @@ export const verifyIdToken = (token: string) => {
privateKey: firebasePrivateKey.replace(/\\n/g, '\n'),
}),
databaseURL: process.env.NEXT_PUBLIC_FIREBASE_DATABASE_URL,
- });
+ })
}
return admin
.auth()
.verifyIdToken(token)
.catch((error) => {
- throw error;
- });
-};
+ throw error
+ })
+}
diff --git a/frontend/admin/src/utils/auth/mapUserData.ts b/frontend/admin/src/utils/auth/mapUserData.ts
index ab3a15335..ff29018c4 100644
--- a/frontend/admin/src/utils/auth/mapUserData.ts
+++ b/frontend/admin/src/utils/auth/mapUserData.ts
@@ -1,11 +1,9 @@
-import firebase from 'firebase/app';
-
-export const mapUserData = async (user: firebase.User) => {
- const { uid, email } = user;
- const token = await user.getIdToken(true);
- return ({
- uid,
+export const mapUserData = async (user) => {
+ const { uid, email } = user
+ const token = await user.getIdToken(true)
+ return {
+ id: uid,
email,
token,
- } as unknown) as firebase.User;
-};
+ }
+}
diff --git a/frontend/admin/src/utils/auth/useUser.tsx b/frontend/admin/src/utils/auth/useUser.tsx
index fa04b4cc7..3b991f8e2 100644
--- a/frontend/admin/src/utils/auth/useUser.tsx
+++ b/frontend/admin/src/utils/auth/useUser.tsx
@@ -1,58 +1,41 @@
import { useEffect, useState } from 'react';
import { useRouter } from 'next/router';
-import initFirebase from '@/utils/initFirebase';
+import firebase from 'firebase/app';
+import 'firebase/auth';
+import initFirebase from '../initFirebase';
import {
removeUserCookie,
setUserCookie,
getUserFromCookie,
} from './userCookies';
import { mapUserData } from './mapUserData';
-import { userProfileDataObservable } from '@/services/api';
-import { Observable } from 'rxjs';
-import { authState } from 'rxfire/auth';
-import { filter, map, switchMap, takeWhile } from 'rxjs/operators';
-import firebase from 'firebase/app';
+
+initFirebase();
+
const useUser = () => {
- const [app, setApp] = useState();
- const [user, setUser] = useState();
- const [
- userProfile,
- setUserProfile,
- ] = useState | null>(null);
+ const [user, setUser] = useState();
const router = useRouter();
- const signout = async () => {
- if (app) {
- return app
- .auth()
- .signOut()
- .then(() => {
- // Sign-out successful.
- router.push('/');
- })
- .catch((e) => {
- console.error(e);
- });
- }
- };
-
- const setDynamicFirebase = async () => {
- const app = await initFirebase();
- if (app) {
- setApp(app);
- }
+ const logout = async () => {
+ return firebase
+ .auth()
+ .signOut()
+ .then(() => {
+ // Sign-out successful.
+ router.push('/');
+ })
+ .catch((e) => {
+ console.error(e);
+ });
};
- useEffect(() => {
- setDynamicFirebase();
- }, []);
-
useEffect(() => {
// Firebase updates the id token every hour, this
// makes sure the react state and the cookie are
// both kept up to date
- if (app) {
- const cancelAuthListener = app.auth().onIdTokenChanged(async (user) => {
+ const cancelAuthListener = firebase
+ .auth()
+ .onIdTokenChanged(async (user) => {
if (user) {
const userData = await mapUserData(user);
setUserCookie(userData);
@@ -63,19 +46,20 @@ const useUser = () => {
}
});
- const userFromCookie = getUserFromCookie();
- if (!userFromCookie) {
- return;
- }
- setUser(userFromCookie);
-
- return () => {
- cancelAuthListener();
- };
+ const userFromCookie = getUserFromCookie();
+ if (!userFromCookie) {
+ return;
}
- }, [app]);
+ setUser(userFromCookie);
+
+ return () => {
+ cancelAuthListener();
+ };
+
+ // eslint-disable-next-line react-hooks/exhaustive-deps
+ }, []);
- return { user, signout, userProfile, app };
+ return { user, logout };
};
export { useUser };
diff --git a/frontend/admin/src/utils/auth/userCookies.ts b/frontend/admin/src/utils/auth/userCookies.ts
index 80af17313..776f02ff4 100644
--- a/frontend/admin/src/utils/auth/userCookies.ts
+++ b/frontend/admin/src/utils/auth/userCookies.ts
@@ -1,20 +1,19 @@
-import cookies from 'js-cookie';
-import firebase from 'firebase/app';
+import cookies from 'js-cookie'
export const getUserFromCookie = () => {
- const cookie = cookies.get('auth');
+ const cookie = cookies.get('auth')
if (!cookie) {
- return;
+ return
}
- return JSON.parse(cookie);
-};
+ return JSON.parse(cookie)
+}
-export const setUserCookie = (user: firebase.User) => {
+export const setUserCookie = (user) => {
cookies.set('auth', user, {
// firebase id tokens expire in one hour
// set cookie expiry to match
expires: 1 / 24,
- });
-};
+ })
+}
-export const removeUserCookie = () => cookies.remove('auth');
+export const removeUserCookie = () => cookies.remove('auth')
diff --git a/frontend/admin/src/utils/firebaseAdmin.ts b/frontend/admin/src/utils/firebaseAdmin.ts
index 30b6b3bff..988627093 100644
--- a/frontend/admin/src/utils/firebaseAdmin.ts
+++ b/frontend/admin/src/utils/firebaseAdmin.ts
@@ -7,7 +7,6 @@ if (admin.apps.length === 0) {
credential: admin.credential.cert(serviceAccountKey),
databaseURL: config.databaseURL,
storageBucket: config.storageBucket,
- projectId: config.projectId,
});
}
diff --git a/frontend/admin/src/utils/initFirebase.ts b/frontend/admin/src/utils/initFirebase.ts
index 751bf72c3..1cd692237 100644
--- a/frontend/admin/src/utils/initFirebase.ts
+++ b/frontend/admin/src/utils/initFirebase.ts
@@ -1,42 +1,19 @@
-import { config } from '@/config/firebase';
+import firebase from 'firebase/app'
-export default async function initFirebase() {
- if (typeof window === 'undefined') {
- return;
- }
- try {
- const firebase = await import('firebase/app');
- await import('firebase/auth');
- await import('firebase/firestore');
- await import('firebase/database');
- await import('firebase/analytics');
- await import('firebase/remote-config');
- await import('firebase/messaging');
- await import('firebase/functions');
- if (!firebase.default.apps.length) {
- firebase.default.initializeApp(config);
- if (process.env.NEXT_PUBLIC_CCD_EMULATED) {
- firebase.default.auth().useEmulator('http://localhost:9099/');
- firebase.default.firestore().useEmulator('localhost', 8080);
- firebase.default.database().useEmulator('localhost', 9000);
- firebase.default.functions().useEmulator('localhost', 5001);
- } else {
- firebase.default.auth();
- firebase.default.firestore();
- firebase.default.database();
- firebase.default.functions();
- }
- firebase.default.analytics();
- firebase.default.remoteConfig();
- firebase.default.messaging();
- }
- return firebase.default.app();
- } catch (err) {
- // we skip the "already exists" message which is
- // not an actual error when we're hot-reloading
- console.log(err);
- if (!/already exists/.test(err.message)) {
- console.error('Firebase initialization error', err.stack);
- }
+const config = {
+ apiKey: process.env.NEXT_PUBLIC_FB_CONFIG_APIKEY,
+ authDomain: process.env.NEXT_PUBLIC_FB_CONFIG_AUTHDOMAIN,
+ databaseURL: process.env.NEXT_PUBLIC_FB_CONFIG_DATABASEURL,
+ projectId: process.env.NEXT_PUBLIC_FB_CONFIG_PROJECTID,
+ storageBucket: process.env.NEXT_PUBLIC_FB_CONFIG_STORAGEBUCKET,
+ messagingSenderId: process.env.NEXT_PUBLIC_FB_CONFIG_MESSAGINGSENDERID,
+ appId: process.env.NEXT_PUBLIC_FB_CONFIG_APPID,
+ measurementId: process.env.NEXT_PUBLIC_FB_CONFIG_MEASUREMENTID
+}
+
+
+export default function initFirebase() {
+ if (!firebase.apps.length) {
+ firebase.initializeApp(config)
}
}
diff --git a/frontend/main/package.json b/frontend/main/package.json
index 23276cc5a..149ceaca7 100644
--- a/frontend/main/package.json
+++ b/frontend/main/package.json
@@ -10,7 +10,7 @@
"analyze": "cross-env ANALYZE=true next build",
"analyze:server": "cross-env BUNDLE_ANALYZE=server next build",
"analyze:browser": "cross-env BUNDLE_ANALYZE=browser next build",
- "lint": "eslint . --quiet --ext .ts,.tsx"
+ "lint": "eslint . --quiet --ext .ts,.tsx && tsc --noEmit"
},
"dependencies": {
"@babel/core": "^7.12.10",
diff --git a/package.json b/package.json
index 07312fda3..9a9b1d404 100644
--- a/package.json
+++ b/package.json
@@ -24,8 +24,7 @@
"dependencies": {},
"husky": {
"hooks": {
- "pre-commit": "npm run lint",
- "pre-push": "npm run build"
+ "pre-commit": "npm run lint"
}
},
"devDependencies": {