Repository: LauraBeatris/laurabeatris.com
Branch: master
Commit: 8e5cc0172603
Files: 85
Total size: 538.7 KB
Directory structure:
gitextract_ydec43yz/
├── .editorconfig
├── .eslintignore
├── .eslintrc.js
├── .gitignore
├── .huskyrc.json
├── .prettierignore
├── CONTRIBUTING.md
├── LICENSE.txt
├── README.md
├── codegen.yml
├── next-env.d.ts
├── next.config.js
├── package.json
├── public/
│ ├── favicons/
│ │ ├── browserconfig.xml
│ │ └── site.webmanifest
│ └── robots.txt
├── src/
│ ├── @types/
│ │ └── index.d.ts
│ ├── __generated__/
│ │ └── graphql/
│ │ └── schema.ts
│ ├── components/
│ │ ├── Base/
│ │ │ ├── Heading/
│ │ │ │ ├── index.tsx
│ │ │ │ └── styles.ts
│ │ │ ├── HighlightLink/
│ │ │ │ ├── index.tsx
│ │ │ │ └── styles.ts
│ │ │ ├── HydrationSkeleton/
│ │ │ │ └── index.tsx
│ │ │ ├── Link/
│ │ │ │ └── index.tsx
│ │ │ ├── Paragraph/
│ │ │ │ ├── index.tsx
│ │ │ │ └── styles.ts
│ │ │ └── Popover/
│ │ │ └── index.tsx
│ │ ├── ContentBox/
│ │ │ └── index.tsx
│ │ ├── ContentList/
│ │ │ └── index.tsx
│ │ ├── GradientLine/
│ │ │ └── index.tsx
│ │ ├── ImageWithCaptions/
│ │ │ └── index.tsx
│ │ ├── Layout/
│ │ │ ├── Container/
│ │ │ │ └── index.tsx
│ │ │ ├── Footer/
│ │ │ │ └── index.tsx
│ │ │ ├── Header/
│ │ │ │ ├── HeaderNavigation.tsx
│ │ │ │ └── index.tsx
│ │ │ └── index.tsx
│ │ ├── LearningJournalList/
│ │ │ └── index.tsx
│ │ ├── PaginationButton/
│ │ │ └── index.tsx
│ │ ├── Project/
│ │ │ ├── ProjectDetailsModal.tsx
│ │ │ └── index.tsx
│ │ ├── ProjectFilters/
│ │ │ └── index.tsx
│ │ ├── ProjectsList/
│ │ │ └── index.tsx
│ │ ├── SingleDateSelector/
│ │ │ ├── index.tsx
│ │ │ └── styles.ts
│ │ ├── Timeline/
│ │ │ ├── Achievements/
│ │ │ │ └── index.tsx
│ │ │ └── index.tsx
│ │ ├── ToggleThemeButton/
│ │ │ └── index.tsx
│ │ └── ToggleThemeIcon/
│ │ └── index.tsx
│ ├── config/
│ │ ├── SEO.ts
│ │ ├── graphQLClient.ts
│ │ └── twitterClient.ts
│ ├── constants/
│ │ ├── links.ts
│ │ └── navigation.ts
│ ├── graphql/
│ │ ├── fragments/
│ │ │ ├── contentFragment.ts
│ │ │ └── stackFragment.ts
│ │ └── queries/
│ │ ├── getAboutMePage.ts
│ │ ├── getHomePage.ts
│ │ ├── getLearningJournalEntry.ts
│ │ ├── getLearningJournalPage.ts
│ │ ├── getTalksPage.ts
│ │ └── getTimeline.ts
│ ├── hooks/
│ │ ├── SWRCacheKeyGetters.ts
│ │ ├── useHasMounted/
│ │ │ └── index.tsx
│ │ ├── useLearningJournalQuery.ts
│ │ └── useTimelineQuery.ts
│ ├── pages/
│ │ ├── _app.tsx
│ │ ├── _document.tsx
│ │ ├── about.tsx
│ │ ├── api/
│ │ │ └── webhooks/
│ │ │ └── learning-journal.ts
│ │ ├── index.tsx
│ │ ├── learning-journal/
│ │ │ ├── [id].tsx
│ │ │ └── index.tsx
│ │ └── talks.tsx
│ ├── scripts/
│ │ └── generate-sitemap.js
│ ├── styles/
│ │ ├── global.ts
│ │ └── theme/
│ │ ├── colorModeVariables.ts
│ │ ├── colors.ts
│ │ ├── components.ts
│ │ ├── config.ts
│ │ ├── fonts.ts
│ │ ├── gradients.ts
│ │ └── index.ts
│ └── utils/
│ └── getDayOfWeek.ts
├── tsconfig.json
└── vercel.json
================================================
FILE CONTENTS
================================================
================================================
FILE: .editorconfig
================================================
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
================================================
FILE: .eslintignore
================================================
# Lint all files except .eslintrc.js
!.eslintrc.js
# Dependencies
node_modules/
# Build Output
out/
# Generated output
src/__generated__
================================================
FILE: .eslintrc.js
================================================
module.exports = {
extends: [
'plugin:react/recommended',
'standard',
'standard-react',
'standard-jsx',
'plugin:@typescript-eslint/recommended',
'plugin:import/errors',
'plugin:import/warnings',
'plugin:import/typescript',
'next'
],
plugins: [
'import'
],
rules: {
'react/react-in-jsx-scope': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/explicit-function-return-type': 'off',
'react/prop-types': 'off',
'@typescript-eslint/no-var-requires': 'off',
'no-console': ['error', { allow: ['warn', 'error'] }],
'import/order': ['error', {
groups: ['builtin', 'external', 'internal'],
'newlines-between': 'always-and-inside-groups'
}],
camelcase: 'off'
},
globals: {
React: 'writable'
},
settings: {
'import/resolver': {
typescript: {},
node: {
extensions: [
'.ts',
'.tsx'
]
}
}
}
}
================================================
FILE: .gitignore
================================================
*.log
.DS_Store
.next
node_modules
.env.local
public/sitemap.xml
.vercel
tsconfig.tsbuildinfo
================================================
FILE: .huskyrc.json
================================================
{
"hooks": {
"pre-push": "yarn lint"
}
}
================================================
FILE: .prettierignore
================================================
.next
.vercel
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing Guidelines
Thanks you so much for your interest in contributing to this project!
## About our deal
Hi! I'm Laura and I'm the creator and maintainer of this project.
If you encounter bugs, please **do** open an issue describing the bug and including steps to easily reproduce it (bonus points for a CodeSandbox that demonstrates the problem).
If you have an idea for an enhancement, go ahead and share it via an issue, but please don't expect a timely response.
## Bug reports
If you encounter a problem with this project, please open an issue. Be sure to include:
- Node and Next versions
- Brief but thorough description of the issue
- Link to a CodeSandbox (or similar) demonstrating the problem (optional, but highly recommended, especially for complex problems)
================================================
FILE: LICENSE.txt
================================================
1. Feel free to take this code as a inspiration to build your portfolio.
2. Do not copy it directly.
3. If you use this code as a inspiration, please credit the author.
Be kind and share your learning with others.
================================================
FILE: README.md
================================================
# laurabeatris.com
[](https://github.com/LauraBeatris)
[](#)
[](https://github.com/LauraBeatris/laurabeatris.com/stargazers)
---
Go check it out 🎉
---
# :pushpin: Table of Contents
* [Running Locally](#construction_worker-running-locally)
* [FAQ](#postbox-faq)
* [Issues](#bug-issues)
* [Contributing](#tada-contributing)
## :construction_worker: Running Locally
Disclaimer: This project fetches data from my personal [GraphCMS](https://graphcms.com/) workspace, thus it's necessary to define the CMS endpoint as a environment variable, otherwise it's not possible to fully execute the scripts bellow
#### Clone repository
```bash
git clone https://github.com/LauraBeatris/laurabeatris.com.git
```
#### Define environment variables
```bash
cp .env.local.example .env.local
```
#### Install dependencies & execute web application in development mode
```bash
yarn
yarn dev
```
Define the environment variables by creating a .env.local file similar to [.env.local.example](https://github.com/LauraBeatris/laurabeatris.com/blob/master/.env.local.example)
# :postbox: Faq
**Question:** What are the technologies used in this project?
**Answer:** [Next.js](https://nextjs.org/), [Chakra UI](https://chakra-ui.com/) and [GraphCMS](https://graphcms.com/)
**Question** Why Next.js instead of other frameworks of React out there?
**Answer** I chose Next.js in order to opt out for different rendering strategies
# :bug: Issues
Feel free to **file a new issue** with a respective title and description. If you already found a solution to your problem, **I would love to review your pull request**!
# :tada: Contributing
Check out the [contributing](https://github.com/LauraBeatris/laurabeatris.com/blob/master/CONTRIBUTING.md) page to see the best places to file issues, start discussions and begin contributing
================================================
FILE: codegen.yml
================================================
overwrite: true
schema: '${NEXT_PUBLIC_GRAPHQL_URL_ENDPOINT}'
documents: "src/graphql/**/*.ts"
generates:
src/__generated__/graphql/schema.ts:
plugins:
- "typescript"
- "typescript-operations"
================================================
FILE: next-env.d.ts
================================================
///
///
// NOTE: This file should not be edited
// see https://nextjs.org/docs/basic-features/typescript for more information.
================================================
FILE: next.config.js
================================================
/** @type {import('next').NextConfig} */
module.exports = {
webpack: (config, { isServer }) => {
config.module.rules.push({
test: /\.(mp3)$/,
use: {
loader: 'file-loader',
options: {
publicPath: '/_next/static/sounds/',
outputPath: 'static/sounds/',
name: '[name].[ext]',
esModule: false
}
}
})
if (isServer) {
require('./src/scripts/generate-sitemap')
}
return config
},
images: {
domains: ['media.graphassets.com']
},
swcMinify: true
}
================================================
FILE: package.json
================================================
{
"name": "portfolio",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "run-p dev:*",
"dev:server": "next dev",
"dev:codegen-watch": "DOTENV_CONFIG_PATH=./.env.local graphql-codegen --config codegen.yml -r dotenv/config",
"build": "next build",
"start": "next start",
"lint:style": "eslint . --ext=.js,.ts,.tsx --fix",
"lint:types": "tsc --noemit",
"lint:unused-exports": "./node_modules/.bin/ts-unused-exports tsconfig.json --allowUnusedTypes --excludePathsFromReport='src/pages;src/__generated__'",
"lint": "run-p lint:*"
},
"dependencies": {
"@chakra-ui/icons": "^1.0.3",
"@chakra-ui/react": "^1.1.5",
"@chakra-ui/theme": "^2.1.8",
"@emotion/react": "^11.1.4",
"@emotion/styled": "^11.0.0",
"@graphcms/rich-text-react-renderer": "^0.4.2",
"@graphcms/utils": "^1.1.0",
"@laurabeatris/chakra-ui-flashless": "^0.2.11",
"@microlink/mql": "^0.10.28",
"axios": "^0.27.2",
"file-loader": "^6.2.0",
"framer-motion": "^3.2.2-rc.1",
"graphql": "^15.4.0",
"graphql-request": "^3.4.0",
"hex-to-rgba": "^2.0.1",
"lodash.union": "^4.6.0",
"lodash.uniq": "^4.5.0",
"luxon": "^1.26.0",
"next": "^12.3.1",
"next-query-params": "^4.0.0",
"next-seo": "^4.17.0",
"react": "17.0.1",
"react-dom": "17.0.1",
"react-icons": "^4.1.0",
"swr": "^1.3.0",
"twitter-api-v2": "^1.12.5",
"use-debounce": "^6.0.0",
"use-lilius": "^2.0.3",
"use-query-params": "^2.1.0",
"use-sound": "^2.0.1"
},
"devDependencies": {
"@graphcms/rich-text-types": "^0.3.1",
"@graphql-codegen/cli": "2.12.0",
"@graphql-codegen/introspection": "2.2.1",
"@graphql-codegen/typescript": "2.7.3",
"@graphql-codegen/typescript-operations": "2.5.3",
"@types/node": "^14.14.22",
"@types/react": "^17.0.0",
"@typescript-eslint/eslint-plugin": "^5.36.2",
"@typescript-eslint/parser": "^5.36.2",
"babel-eslint": "^10.1.0",
"dotenv": "^16.0.2",
"eslint": "^7.5.0",
"eslint-config-next": "^12.3.1",
"eslint-config-standard": "^16.0.2",
"eslint-config-standard-jsx": "^10.0.0",
"eslint-config-standard-react": "^11.0.1",
"eslint-import-resolver-typescript": "^2.3.0",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-jsx-a11y": "^6.3.1",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^4.2.1",
"globby": "^11.0.2",
"husky": "^4.3.8",
"npm-run-all": "^4.1.5",
"prettier": "^2.2.1",
"ts-unused-exports": "^8.0.0",
"typescript": "^4.8.3"
}
}
================================================
FILE: public/favicons/browserconfig.xml
================================================
#F2F2F2
================================================
FILE: public/favicons/site.webmanifest
================================================
{
"name": "Laura Beatris",
"short_name": "laurabeatris.com",
"description": "Product Engineer",
"icons": [
{
"src": "/favicons/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/favicons/android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"background_color": "#F2F2F2",
"theme_color": "#F2F2F2",
"display": "standalone",
"dir": "ltr",
"lang": "en-US",
"orientation": "portrait-primary",
"start_url": "../../index.html"
}
================================================
FILE: public/robots.txt
================================================
User-agent: *
Sitemap: https://laurabeatris.com/sitemap.xml
================================================
FILE: src/@types/index.d.ts
================================================
declare module '*.mp3'
================================================
FILE: src/__generated__/graphql/schema.ts
================================================
export type Maybe = T | null;
export type InputMaybe = Maybe;
export type Exact = { [K in keyof T]: T[K] };
export type MakeOptional = Omit & { [SubKey in K]?: Maybe };
export type MakeMaybe = Omit & { [SubKey in K]: Maybe };
/** All built-in and custom scalars, mapped to their actual values */
export type Scalars = {
ID: string;
String: string;
Boolean: boolean;
Int: number;
Float: number;
Date: any;
DateTime: any;
Hex: any;
Json: any;
Long: any;
RGBAHue: any;
RGBATransparency: any;
RichTextAST: any;
};
export enum _FilterKind {
And = 'AND',
Contains = 'contains',
ContainsAll = 'contains_all',
ContainsNone = 'contains_none',
ContainsSome = 'contains_some',
EndsWith = 'ends_with',
Eq = 'eq',
EqNot = 'eq_not',
Gt = 'gt',
Gte = 'gte',
In = 'in',
JsonPathExists = 'json_path_exists',
JsonValueRecursive = 'json_value_recursive',
Lt = 'lt',
Lte = 'lte',
Not = 'NOT',
NotContains = 'not_contains',
NotEndsWith = 'not_ends_with',
NotIn = 'not_in',
NotStartsWith = 'not_starts_with',
Or = 'OR',
RelationalEvery = 'relational_every',
RelationalNone = 'relational_none',
RelationalSingle = 'relational_single',
RelationalSome = 'relational_some',
Search = 'search',
StartsWith = 'starts_with',
UnionEmpty = 'union_empty',
UnionEvery = 'union_every',
UnionNone = 'union_none',
UnionSingle = 'union_single',
UnionSome = 'union_some'
}
export enum _MutationInputFieldKind {
Enum = 'enum',
Relation = 'relation',
RichText = 'richText',
RichTextWithEmbeds = 'richTextWithEmbeds',
Scalar = 'scalar',
Union = 'union',
Virtual = 'virtual'
}
export enum _MutationKind {
Create = 'create',
Delete = 'delete',
DeleteMany = 'deleteMany',
Publish = 'publish',
PublishMany = 'publishMany',
SchedulePublish = 'schedulePublish',
ScheduleUnpublish = 'scheduleUnpublish',
Unpublish = 'unpublish',
UnpublishMany = 'unpublishMany',
Update = 'update',
UpdateMany = 'updateMany',
Upsert = 'upsert'
}
export enum _OrderDirection {
Asc = 'asc',
Desc = 'desc'
}
export enum _RelationInputCardinality {
Many = 'many',
One = 'one'
}
export enum _RelationInputKind {
Create = 'create',
Update = 'update'
}
export enum _RelationKind {
Regular = 'regular',
Union = 'union'
}
export enum _SystemDateTimeFieldVariation {
Base = 'base',
Combined = 'combined',
Localization = 'localization'
}
/** Controls the content for the about me page */
export type AboutMePage = Entity & Node & {
__typename?: 'AboutMePage';
/** The time the document was created */
createdAt: Scalars['DateTime'];
/** User that created this document */
createdBy?: Maybe;
/** Get the document in other stages */
documentInStages: Array;
/** List of AboutMePage versions */
history: Array;
/** The unique identifier */
id: Scalars['ID'];
/** The time the document was published. Null on documents in draft stage. */
publishedAt?: Maybe;
/** User that last published this document */
publishedBy?: Maybe;
scheduledIn: Array;
/** The sections of a "About Me" page */
sections: Array;
/** System stage field */
stage: Stage;
/** The time the document was updated */
updatedAt: Scalars['DateTime'];
/** User that last updated this document */
updatedBy?: Maybe;
};
/** Controls the content for the about me page */
export type AboutMePageCreatedByArgs = {
forceParentLocale?: InputMaybe;
locales?: InputMaybe>;
};
/** Controls the content for the about me page */
export type AboutMePageDocumentInStagesArgs = {
includeCurrent?: Scalars['Boolean'];
inheritLocale?: Scalars['Boolean'];
stages?: Array;
};
/** Controls the content for the about me page */
export type AboutMePageHistoryArgs = {
limit?: Scalars['Int'];
skip?: Scalars['Int'];
stageOverride?: InputMaybe;
};
/** Controls the content for the about me page */
export type AboutMePagePublishedByArgs = {
forceParentLocale?: InputMaybe;
locales?: InputMaybe>;
};
/** Controls the content for the about me page */
export type AboutMePageScheduledInArgs = {
after?: InputMaybe;
before?: InputMaybe;
first?: InputMaybe;
forceParentLocale?: InputMaybe;
last?: InputMaybe;
locales?: InputMaybe>;
skip?: InputMaybe;
where?: InputMaybe;
};
/** Controls the content for the about me page */
export type AboutMePageSectionsArgs = {
after?: InputMaybe;
before?: InputMaybe;
first?: InputMaybe;
forceParentLocale?: InputMaybe;
last?: InputMaybe;
locales?: InputMaybe>;
orderBy?: InputMaybe;
skip?: InputMaybe;
where?: InputMaybe;
};
/** Controls the content for the about me page */
export type AboutMePageUpdatedByArgs = {
forceParentLocale?: InputMaybe;
locales?: InputMaybe>;
};
export type AboutMePageConnectInput = {
/** Allow to specify document position in list of connected documents, will default to appending at end of list */
position?: InputMaybe;
/** Document to connect */
where: AboutMePageWhereUniqueInput;
};
/** A connection to a list of items. */
export type AboutMePageConnection = {
__typename?: 'AboutMePageConnection';
aggregate: Aggregate;
/** A list of edges. */
edges: Array;
/** Information to aid in pagination. */
pageInfo: PageInfo;
};
export type AboutMePageCreateInput = {
createdAt?: InputMaybe;
sections?: InputMaybe;
updatedAt?: InputMaybe;
};
export type AboutMePageCreateManyInlineInput = {
/** Connect multiple existing AboutMePage documents */
connect?: InputMaybe>;
/** Create and connect multiple existing AboutMePage documents */
create?: InputMaybe>;
};
export type AboutMePageCreateOneInlineInput = {
/** Connect one existing AboutMePage document */
connect?: InputMaybe;
/** Create and connect one AboutMePage document */
create?: InputMaybe;
};
/** An edge in a connection. */
export type AboutMePageEdge = {
__typename?: 'AboutMePageEdge';
/** A cursor for use in pagination. */
cursor: Scalars['String'];
/** The item at the end of the edge. */
node: AboutMePage;
};
/** Identifies documents */
export type AboutMePageManyWhereInput = {
/** Contains search across all appropriate fields. */
_search?: InputMaybe;
/** Logical AND on all given filters. */
AND?: InputMaybe>;
createdAt?: InputMaybe;
/** All values greater than the given value. */
createdAt_gt?: InputMaybe;
/** All values greater than or equal the given value. */
createdAt_gte?: InputMaybe;
/** All values that are contained in given list. */
createdAt_in?: InputMaybe>>;
/** All values less than the given value. */
createdAt_lt?: InputMaybe;
/** All values less than or equal the given value. */
createdAt_lte?: InputMaybe;
/** Any other value that exists and is not equal to the given value. */
createdAt_not?: InputMaybe;
/** All values that are not contained in given list. */
createdAt_not_in?: InputMaybe>>;
createdBy?: InputMaybe;
documentInStages_every?: InputMaybe;
documentInStages_none?: InputMaybe;
documentInStages_some?: InputMaybe;
id?: InputMaybe;
/** All values containing the given string. */
id_contains?: InputMaybe;
/** All values ending with the given string. */
id_ends_with?: InputMaybe;
/** All values that are contained in given list. */
id_in?: InputMaybe>>;
/** Any other value that exists and is not equal to the given value. */
id_not?: InputMaybe;
/** All values not containing the given string. */
id_not_contains?: InputMaybe;
/** All values not ending with the given string */
id_not_ends_with?: InputMaybe;
/** All values that are not contained in given list. */
id_not_in?: InputMaybe>>;
/** All values not starting with the given string. */
id_not_starts_with?: InputMaybe;
/** All values starting with the given string. */
id_starts_with?: InputMaybe;
/** Logical NOT on all given filters combined by AND. */
NOT?: InputMaybe>;
/** Logical OR on all given filters. */
OR?: InputMaybe>;
publishedAt?: InputMaybe;
/** All values greater than the given value. */
publishedAt_gt?: InputMaybe;
/** All values greater than or equal the given value. */
publishedAt_gte?: InputMaybe;
/** All values that are contained in given list. */
publishedAt_in?: InputMaybe>>;
/** All values less than the given value. */
publishedAt_lt?: InputMaybe;
/** All values less than or equal the given value. */
publishedAt_lte?: InputMaybe;
/** Any other value that exists and is not equal to the given value. */
publishedAt_not?: InputMaybe;
/** All values that are not contained in given list. */
publishedAt_not_in?: InputMaybe>>;
publishedBy?: InputMaybe;
scheduledIn_every?: InputMaybe;
scheduledIn_none?: InputMaybe;
scheduledIn_some?: InputMaybe;
sections_every?: InputMaybe;
sections_none?: InputMaybe;
sections_some?: InputMaybe;
updatedAt?: InputMaybe;
/** All values greater than the given value. */
updatedAt_gt?: InputMaybe;
/** All values greater than or equal the given value. */
updatedAt_gte?: InputMaybe;
/** All values that are contained in given list. */
updatedAt_in?: InputMaybe>>;
/** All values less than the given value. */
updatedAt_lt?: InputMaybe;
/** All values less than or equal the given value. */
updatedAt_lte?: InputMaybe;
/** Any other value that exists and is not equal to the given value. */
updatedAt_not?: InputMaybe;
/** All values that are not contained in given list. */
updatedAt_not_in?: InputMaybe>>;
updatedBy?: InputMaybe;
};
export enum AboutMePageOrderByInput {
CreatedAtAsc = 'createdAt_ASC',
CreatedAtDesc = 'createdAt_DESC',
IdAsc = 'id_ASC',
IdDesc = 'id_DESC',
PublishedAtAsc = 'publishedAt_ASC',
PublishedAtDesc = 'publishedAt_DESC',
UpdatedAtAsc = 'updatedAt_ASC',
UpdatedAtDesc = 'updatedAt_DESC'
}
export type AboutMePageUpdateInput = {
sections?: InputMaybe;
};
export type AboutMePageUpdateManyInlineInput = {
/** Connect multiple existing AboutMePage documents */
connect?: InputMaybe>;
/** Create and connect multiple AboutMePage documents */
create?: InputMaybe>;
/** Delete multiple AboutMePage documents */
delete?: InputMaybe>;
/** Disconnect multiple AboutMePage documents */
disconnect?: InputMaybe>;
/** Override currently-connected documents with multiple existing AboutMePage documents */
set?: InputMaybe>;
/** Update multiple AboutMePage documents */
update?: InputMaybe>;
/** Upsert multiple AboutMePage documents */
upsert?: InputMaybe>;
};
export type AboutMePageUpdateManyInput = {
/** No fields in updateMany data input */
_?: InputMaybe;
};
export type AboutMePageUpdateManyWithNestedWhereInput = {
/** Update many input */
data: AboutMePageUpdateManyInput;
/** Document search */
where: AboutMePageWhereInput;
};
export type AboutMePageUpdateOneInlineInput = {
/** Connect existing AboutMePage document */
connect?: InputMaybe;
/** Create and connect one AboutMePage document */
create?: InputMaybe;
/** Delete currently connected AboutMePage document */
delete?: InputMaybe;
/** Disconnect currently connected AboutMePage document */
disconnect?: InputMaybe;
/** Update single AboutMePage document */
update?: InputMaybe;
/** Upsert single AboutMePage document */
upsert?: InputMaybe;
};
export type AboutMePageUpdateWithNestedWhereUniqueInput = {
/** Document to update */
data: AboutMePageUpdateInput;
/** Unique document search */
where: AboutMePageWhereUniqueInput;
};
export type AboutMePageUpsertInput = {
/** Create document if it didn't exist */
create: AboutMePageCreateInput;
/** Update document if it exists */
update: AboutMePageUpdateInput;
};
export type AboutMePageUpsertWithNestedWhereUniqueInput = {
/** Upsert data */
data: AboutMePageUpsertInput;
/** Unique document search */
where: AboutMePageWhereUniqueInput;
};
/** This contains a set of filters that can be used to compare values internally */
export type AboutMePageWhereComparatorInput = {
/** This field can be used to request to check if the entry is outdated by internal comparison */
outdated_to?: InputMaybe;
};
/** Identifies documents */
export type AboutMePageWhereInput = {
/** Contains search across all appropriate fields. */
_search?: InputMaybe;
/** Logical AND on all given filters. */
AND?: InputMaybe>;
createdAt?: InputMaybe;
/** All values greater than the given value. */
createdAt_gt?: InputMaybe;
/** All values greater than or equal the given value. */
createdAt_gte?: InputMaybe;
/** All values that are contained in given list. */
createdAt_in?: InputMaybe>>;
/** All values less than the given value. */
createdAt_lt?: InputMaybe;
/** All values less than or equal the given value. */
createdAt_lte?: InputMaybe;
/** Any other value that exists and is not equal to the given value. */
createdAt_not?: InputMaybe;
/** All values that are not contained in given list. */
createdAt_not_in?: InputMaybe>>;
createdBy?: InputMaybe;
documentInStages_every?: InputMaybe;
documentInStages_none?: InputMaybe;
documentInStages_some?: InputMaybe;
id?: InputMaybe;
/** All values containing the given string. */
id_contains?: InputMaybe;
/** All values ending with the given string. */
id_ends_with?: InputMaybe;
/** All values that are contained in given list. */
id_in?: InputMaybe>>;
/** Any other value that exists and is not equal to the given value. */
id_not?: InputMaybe;
/** All values not containing the given string. */
id_not_contains?: InputMaybe;
/** All values not ending with the given string */
id_not_ends_with?: InputMaybe;
/** All values that are not contained in given list. */
id_not_in?: InputMaybe>>;
/** All values not starting with the given string. */
id_not_starts_with?: InputMaybe;
/** All values starting with the given string. */
id_starts_with?: InputMaybe;
/** Logical NOT on all given filters combined by AND. */
NOT?: InputMaybe>;
/** Logical OR on all given filters. */
OR?: InputMaybe>;
publishedAt?: InputMaybe;
/** All values greater than the given value. */
publishedAt_gt?: InputMaybe;
/** All values greater than or equal the given value. */
publishedAt_gte?: InputMaybe;
/** All values that are contained in given list. */
publishedAt_in?: InputMaybe>>;
/** All values less than the given value. */
publishedAt_lt?: InputMaybe;
/** All values less than or equal the given value. */
publishedAt_lte?: InputMaybe;
/** Any other value that exists and is not equal to the given value. */
publishedAt_not?: InputMaybe;
/** All values that are not contained in given list. */
publishedAt_not_in?: InputMaybe>>;
publishedBy?: InputMaybe;
scheduledIn_every?: InputMaybe;
scheduledIn_none?: InputMaybe;
scheduledIn_some?: InputMaybe;
sections_every?: InputMaybe;
sections_none?: InputMaybe;
sections_some?: InputMaybe;
updatedAt?: InputMaybe;
/** All values greater than the given value. */
updatedAt_gt?: InputMaybe;
/** All values greater than or equal the given value. */
updatedAt_gte?: InputMaybe;
/** All values that are contained in given list. */
updatedAt_in?: InputMaybe>>;
/** All values less than the given value. */
updatedAt_lt?: InputMaybe;
/** All values less than or equal the given value. */
updatedAt_lte?: InputMaybe;
/** Any other value that exists and is not equal to the given value. */
updatedAt_not?: InputMaybe;
/** All values that are not contained in given list. */
updatedAt_not_in?: InputMaybe>>;
updatedBy?: InputMaybe;
};
/** The document in stages filter allows specifying a stage entry to cross compare the same document between different stages */
export type AboutMePageWhereStageInput = {
/** Logical AND on all given filters. */
AND?: InputMaybe>;
/** This field contains fields which can be set as true or false to specify an internal comparison */
compareWithParent?: InputMaybe;
/** Logical NOT on all given filters combined by AND. */
NOT?: InputMaybe>;
/** Logical OR on all given filters. */
OR?: InputMaybe>;
/** Specify the stage to compare with */
stage?: InputMaybe;
};
/** References AboutMePage record uniquely */
export type AboutMePageWhereUniqueInput = {
id?: InputMaybe;
};
export type Achievement = Entity & Node & {
__typename?: 'Achievement';
/** The time the document was created */
createdAt: Scalars['DateTime'];
/** User that created this document */
createdBy?: Maybe;
description?: Maybe;
/** Get the document in other stages */
documentInStages: Array;
/** List of Achievement versions */
history: Array;
/** The unique identifier */
id: Scalars['ID'];
/** The time the document was published. Null on documents in draft stage. */
publishedAt?: Maybe;
/** User that last published this document */
publishedBy?: Maybe;
scheduledIn: Array;
/** System stage field */
stage: Stage;
timeline?: Maybe;
title: Scalars['String'];
/** The time the document was updated */
updatedAt: Scalars['DateTime'];
/** User that last updated this document */
updatedBy?: Maybe;
};
export type AchievementCreatedByArgs = {
forceParentLocale?: InputMaybe;
locales?: InputMaybe>;
};
export type AchievementDocumentInStagesArgs = {
includeCurrent?: Scalars['Boolean'];
inheritLocale?: Scalars['Boolean'];
stages?: Array;
};
export type AchievementHistoryArgs = {
limit?: Scalars['Int'];
skip?: Scalars['Int'];
stageOverride?: InputMaybe;
};
export type AchievementPublishedByArgs = {
forceParentLocale?: InputMaybe;
locales?: InputMaybe>;
};
export type AchievementScheduledInArgs = {
after?: InputMaybe;
before?: InputMaybe;
first?: InputMaybe;
forceParentLocale?: InputMaybe;
last?: InputMaybe;
locales?: InputMaybe>;
skip?: InputMaybe;
where?: InputMaybe;
};
export type AchievementTimelineArgs = {
forceParentLocale?: InputMaybe;
locales?: InputMaybe>;
};
export type AchievementUpdatedByArgs = {
forceParentLocale?: InputMaybe;
locales?: InputMaybe>;
};
export type AchievementConnectInput = {
/** Allow to specify document position in list of connected documents, will default to appending at end of list */
position?: InputMaybe;
/** Document to connect */
where: AchievementWhereUniqueInput;
};
/** A connection to a list of items. */
export type AchievementConnection = {
__typename?: 'AchievementConnection';
aggregate: Aggregate;
/** A list of edges. */
edges: Array;
/** Information to aid in pagination. */
pageInfo: PageInfo;
};
export type AchievementCreateInput = {
createdAt?: InputMaybe;
description?: InputMaybe;
timeline?: InputMaybe;
title: Scalars['String'];
updatedAt?: InputMaybe;
};
export type AchievementCreateManyInlineInput = {
/** Connect multiple existing Achievement documents */
connect?: InputMaybe>;
/** Create and connect multiple existing Achievement documents */
create?: InputMaybe>;
};
export type AchievementCreateOneInlineInput = {
/** Connect one existing Achievement document */
connect?: InputMaybe;
/** Create and connect one Achievement document */
create?: InputMaybe;
};
/** An edge in a connection. */
export type AchievementEdge = {
__typename?: 'AchievementEdge';
/** A cursor for use in pagination. */
cursor: Scalars['String'];
/** The item at the end of the edge. */
node: Achievement;
};
/** Identifies documents */
export type AchievementManyWhereInput = {
/** Contains search across all appropriate fields. */
_search?: InputMaybe;
/** Logical AND on all given filters. */
AND?: InputMaybe>;
createdAt?: InputMaybe;
/** All values greater than the given value. */
createdAt_gt?: InputMaybe;
/** All values greater than or equal the given value. */
createdAt_gte?: InputMaybe;
/** All values that are contained in given list. */
createdAt_in?: InputMaybe>>;
/** All values less than the given value. */
createdAt_lt?: InputMaybe;
/** All values less than or equal the given value. */
createdAt_lte?: InputMaybe;
/** Any other value that exists and is not equal to the given value. */
createdAt_not?: InputMaybe;
/** All values that are not contained in given list. */
createdAt_not_in?: InputMaybe>>;
createdBy?: InputMaybe;
description?: InputMaybe;
/** All values containing the given string. */
description_contains?: InputMaybe;
/** All values ending with the given string. */
description_ends_with?: InputMaybe;
/** All values that are contained in given list. */
description_in?: InputMaybe>>;
/** Any other value that exists and is not equal to the given value. */
description_not?: InputMaybe;
/** All values not containing the given string. */
description_not_contains?: InputMaybe;
/** All values not ending with the given string */
description_not_ends_with?: InputMaybe;
/** All values that are not contained in given list. */
description_not_in?: InputMaybe>>;
/** All values not starting with the given string. */
description_not_starts_with?: InputMaybe;
/** All values starting with the given string. */
description_starts_with?: InputMaybe;
documentInStages_every?: InputMaybe;
documentInStages_none?: InputMaybe;
documentInStages_some?: InputMaybe;
id?: InputMaybe;
/** All values containing the given string. */
id_contains?: InputMaybe;
/** All values ending with the given string. */
id_ends_with?: InputMaybe;
/** All values that are contained in given list. */
id_in?: InputMaybe>>;
/** Any other value that exists and is not equal to the given value. */
id_not?: InputMaybe;
/** All values not containing the given string. */
id_not_contains?: InputMaybe;
/** All values not ending with the given string */
id_not_ends_with?: InputMaybe;
/** All values that are not contained in given list. */
id_not_in?: InputMaybe>>;
/** All values not starting with the given string. */
id_not_starts_with?: InputMaybe;
/** All values starting with the given string. */
id_starts_with?: InputMaybe;
/** Logical NOT on all given filters combined by AND. */
NOT?: InputMaybe>;
/** Logical OR on all given filters. */
OR?: InputMaybe>;
publishedAt?: InputMaybe;
/** All values greater than the given value. */
publishedAt_gt?: InputMaybe;
/** All values greater than or equal the given value. */
publishedAt_gte?: InputMaybe;
/** All values that are contained in given list. */
publishedAt_in?: InputMaybe>>;
/** All values less than the given value. */
publishedAt_lt?: InputMaybe;
/** All values less than or equal the given value. */
publishedAt_lte?: InputMaybe;
/** Any other value that exists and is not equal to the given value. */
publishedAt_not?: InputMaybe